Spaces:
Running
Running
Evan Lesmez
commited on
Commit
•
adaea7c
1
Parent(s):
e677b67
nbdevify the project
Browse filesUpdate packages.
Add lchain tool and utils tinker page.
Create how to quickstart and usage.
This view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +1 -0
- .gitconfig +11 -0
- .github/workflows/deploy.yaml +14 -0
- .github/workflows/test.yaml +7 -0
- .gitignore +161 -3
- LICENSE +201 -0
- MANIFEST.in +5 -0
- README.md +78 -22
- _proc/.gitignore +1 -0
- _proc/00_engineer_prompt.ipynb +231 -0
- _proc/01_app.ipynb +158 -0
- _proc/02_lchain_tool.ipynb +0 -0
- _proc/03_edamam_api.ipynb +86 -0
- _proc/_docs/app.html +483 -0
- _proc/_docs/edamam_api.html +426 -0
- _proc/_docs/engineer_prompt.html +578 -0
- _proc/_docs/index.html +526 -0
- _proc/_docs/lchain_tool.html +0 -0
- _proc/_docs/robots.txt +1 -0
- _proc/_docs/search.json +0 -0
- _proc/_docs/site_libs/bootstrap/bootstrap-icons.css +2018 -0
- _proc/_docs/site_libs/bootstrap/bootstrap-icons.woff +0 -0
- _proc/_docs/site_libs/bootstrap/bootstrap.min.css +0 -0
- _proc/_docs/site_libs/bootstrap/bootstrap.min.js +7 -0
- _proc/_docs/site_libs/clipboard/clipboard.min.js +7 -0
- _proc/_docs/site_libs/quarto-html/anchor.min.js +9 -0
- _proc/_docs/site_libs/quarto-html/popper.min.js +6 -0
- _proc/_docs/site_libs/quarto-html/quarto-syntax-highlighting.css +203 -0
- _proc/_docs/site_libs/quarto-html/quarto.js +902 -0
- _proc/_docs/site_libs/quarto-html/tippy.css +1 -0
- _proc/_docs/site_libs/quarto-html/tippy.umd.min.js +2 -0
- _proc/_docs/site_libs/quarto-nav/headroom.min.js +7 -0
- _proc/_docs/site_libs/quarto-nav/quarto-nav.js +277 -0
- _proc/_docs/site_libs/quarto-search/autocomplete.umd.js +3 -0
- _proc/_docs/site_libs/quarto-search/fuse.min.js +9 -0
- _proc/_docs/site_libs/quarto-search/quarto-search.js +1140 -0
- _proc/_docs/sitemap.xml +23 -0
- _proc/_docs/styles.css +37 -0
- _proc/_quarto.yml +20 -0
- _proc/index.ipynb +199 -0
- _proc/nbdev.yml +9 -0
- _proc/sidebar.yml +8 -0
- _proc/sidebar.yml.bak +8 -0
- _proc/styles.css +37 -0
- app.py +5 -0
- chatbot/__init__.py +0 -3
- env.example +5 -0
- hface.yaml +11 -0
- lv_recipe_chatbot/__init__.py +1 -0
- lv_recipe_chatbot/_modidx.py +26 -0
.gitattributes
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
*.ipynb merge=nbdev-merge
|
.gitconfig
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Generated by nbdev_install_hooks
|
2 |
+
#
|
3 |
+
# If you need to disable this instrumentation do:
|
4 |
+
# git config --local --unset include.path
|
5 |
+
#
|
6 |
+
# To restore:
|
7 |
+
# git config --local include.path ../.gitconfig
|
8 |
+
#
|
9 |
+
[merge "nbdev-merge"]
|
10 |
+
name = resolve conflicts with nbdev_fix
|
11 |
+
driver = nbdev_merge %O %A %B %P
|
.github/workflows/deploy.yaml
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: Deploy to GitHub Pages
|
2 |
+
|
3 |
+
permissions:
|
4 |
+
contents: write
|
5 |
+
pages: write
|
6 |
+
|
7 |
+
on:
|
8 |
+
push:
|
9 |
+
branches: [ "main", "master" ]
|
10 |
+
workflow_dispatch:
|
11 |
+
jobs:
|
12 |
+
deploy:
|
13 |
+
runs-on: ubuntu-latest
|
14 |
+
steps: [uses: fastai/workflows/quarto-ghp@master]
|
.github/workflows/test.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: CI
|
2 |
+
on: [workflow_dispatch, pull_request, push]
|
3 |
+
|
4 |
+
jobs:
|
5 |
+
test:
|
6 |
+
runs-on: ubuntu-latest
|
7 |
+
steps: [uses: fastai/workflows/nbdev-ci@master]
|
.gitignore
CHANGED
@@ -1,5 +1,163 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.env
|
|
|
2 |
env/
|
3 |
-
|
4 |
-
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*__pycache__
|
2 |
+
*.ipynb_checkpoints
|
3 |
+
|
4 |
+
# Byte-compiled / optimized / DLL files
|
5 |
+
__pycache__/
|
6 |
+
*.py[cod]
|
7 |
+
*$py.class
|
8 |
+
|
9 |
+
# C extensions
|
10 |
+
*.so
|
11 |
+
|
12 |
+
# Distribution / packaging
|
13 |
+
.Python
|
14 |
+
build/
|
15 |
+
develop-eggs/
|
16 |
+
dist/
|
17 |
+
downloads/
|
18 |
+
eggs/
|
19 |
+
.eggs/
|
20 |
+
lib/
|
21 |
+
lib64/
|
22 |
+
parts/
|
23 |
+
sdist/
|
24 |
+
var/
|
25 |
+
wheels/
|
26 |
+
share/python-wheels/
|
27 |
+
*.egg-info/
|
28 |
+
.installed.cfg
|
29 |
+
*.egg
|
30 |
+
MANIFEST
|
31 |
+
|
32 |
+
# PyInstaller
|
33 |
+
# Usually these files are written by a python script from a template
|
34 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
35 |
+
*.manifest
|
36 |
+
*.spec
|
37 |
+
|
38 |
+
# Installer logs
|
39 |
+
pip-log.txt
|
40 |
+
pip-delete-this-directory.txt
|
41 |
+
|
42 |
+
# Unit test / coverage reports
|
43 |
+
htmlcov/
|
44 |
+
.tox/
|
45 |
+
.nox/
|
46 |
+
.coverage
|
47 |
+
.coverage.*
|
48 |
+
.cache
|
49 |
+
nosetests.xml
|
50 |
+
coverage.xml
|
51 |
+
*.cover
|
52 |
+
*.py,cover
|
53 |
+
.hypothesis/
|
54 |
+
.pytest_cache/
|
55 |
+
cover/
|
56 |
+
|
57 |
+
# Translations
|
58 |
+
*.mo
|
59 |
+
*.pot
|
60 |
+
|
61 |
+
# Django stuff:
|
62 |
+
*.log
|
63 |
+
local_settings.py
|
64 |
+
db.sqlite3
|
65 |
+
db.sqlite3-journal
|
66 |
+
|
67 |
+
# Flask stuff:
|
68 |
+
instance/
|
69 |
+
.webassets-cache
|
70 |
+
|
71 |
+
# Scrapy stuff:
|
72 |
+
.scrapy
|
73 |
+
|
74 |
+
# Sphinx documentation
|
75 |
+
docs/_build/
|
76 |
+
|
77 |
+
# PyBuilder
|
78 |
+
.pybuilder/
|
79 |
+
target/
|
80 |
+
|
81 |
+
# Jupyter Notebook
|
82 |
+
.ipynb_checkpoints
|
83 |
+
|
84 |
+
# IPython
|
85 |
+
profile_default/
|
86 |
+
ipython_config.py
|
87 |
+
|
88 |
+
# pyenv
|
89 |
+
# For a library or package, you might want to ignore these files since the code is
|
90 |
+
# intended to run in multiple environments; otherwise, check them in:
|
91 |
+
# .python-version
|
92 |
+
|
93 |
+
# pipenv
|
94 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
95 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
96 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
97 |
+
# install all needed dependencies.
|
98 |
+
#Pipfile.lock
|
99 |
+
|
100 |
+
# poetry
|
101 |
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
102 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
103 |
+
# commonly ignored for libraries.
|
104 |
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
105 |
+
#poetry.lock
|
106 |
+
|
107 |
+
# pdm
|
108 |
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
109 |
+
#pdm.lock
|
110 |
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
111 |
+
# in version control.
|
112 |
+
# https://pdm.fming.dev/#use-with-ide
|
113 |
+
.pdm.toml
|
114 |
+
|
115 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
116 |
+
__pypackages__/
|
117 |
+
|
118 |
+
# Celery stuff
|
119 |
+
celerybeat-schedule
|
120 |
+
celerybeat.pid
|
121 |
+
|
122 |
+
# SageMath parsed files
|
123 |
+
*.sage.py
|
124 |
+
|
125 |
+
# Environments
|
126 |
.env
|
127 |
+
.venv
|
128 |
env/
|
129 |
+
venv/
|
130 |
+
ENV/
|
131 |
+
env.bak/
|
132 |
+
venv.bak/
|
133 |
+
|
134 |
+
# Spyder project settings
|
135 |
+
.spyderproject
|
136 |
+
.spyproject
|
137 |
+
|
138 |
+
# Rope project settings
|
139 |
+
.ropeproject
|
140 |
+
|
141 |
+
# mkdocs documentation
|
142 |
+
/site
|
143 |
+
|
144 |
+
# mypy
|
145 |
+
.mypy_cache/
|
146 |
+
.dmypy.json
|
147 |
+
dmypy.json
|
148 |
+
|
149 |
+
# Pyre type checker
|
150 |
+
.pyre/
|
151 |
+
|
152 |
+
# pytype static type analyzer
|
153 |
+
.pytype/
|
154 |
+
|
155 |
+
# Cython debug symbols
|
156 |
+
cython_debug/
|
157 |
+
|
158 |
+
# PyCharm
|
159 |
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
160 |
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
161 |
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
162 |
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
163 |
+
#.idea/
|
LICENSE
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Apache License
|
2 |
+
Version 2.0, January 2004
|
3 |
+
http://www.apache.org/licenses/
|
4 |
+
|
5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
6 |
+
|
7 |
+
1. Definitions.
|
8 |
+
|
9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
11 |
+
|
12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
13 |
+
the copyright owner that is granting the License.
|
14 |
+
|
15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
16 |
+
other entities that control, are controlled by, or are under common
|
17 |
+
control with that entity. For the purposes of this definition,
|
18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
19 |
+
direction or management of such entity, whether by contract or
|
20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
22 |
+
|
23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
24 |
+
exercising permissions granted by this License.
|
25 |
+
|
26 |
+
"Source" form shall mean the preferred form for making modifications,
|
27 |
+
including but not limited to software source code, documentation
|
28 |
+
source, and configuration files.
|
29 |
+
|
30 |
+
"Object" form shall mean any form resulting from mechanical
|
31 |
+
transformation or translation of a Source form, including but
|
32 |
+
not limited to compiled object code, generated documentation,
|
33 |
+
and conversions to other media types.
|
34 |
+
|
35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
36 |
+
Object form, made available under the License, as indicated by a
|
37 |
+
copyright notice that is included in or attached to the work
|
38 |
+
(an example is provided in the Appendix below).
|
39 |
+
|
40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
41 |
+
form, that is based on (or derived from) the Work and for which the
|
42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
44 |
+
of this License, Derivative Works shall not include works that remain
|
45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
46 |
+
the Work and Derivative Works thereof.
|
47 |
+
|
48 |
+
"Contribution" shall mean any work of authorship, including
|
49 |
+
the original version of the Work and any modifications or additions
|
50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
54 |
+
means any form of electronic, verbal, or written communication sent
|
55 |
+
to the Licensor or its representatives, including but not limited to
|
56 |
+
communication on electronic mailing lists, source code control systems,
|
57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
59 |
+
excluding communication that is conspicuously marked or otherwise
|
60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
61 |
+
|
62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
64 |
+
subsequently incorporated within the Work.
|
65 |
+
|
66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
71 |
+
Work and such Derivative Works in Source or Object form.
|
72 |
+
|
73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
76 |
+
(except as stated in this section) patent license to make, have made,
|
77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
78 |
+
where such license applies only to those patent claims licensable
|
79 |
+
by such Contributor that are necessarily infringed by their
|
80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
82 |
+
institute patent litigation against any entity (including a
|
83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
84 |
+
or a Contribution incorporated within the Work constitutes direct
|
85 |
+
or contributory patent infringement, then any patent licenses
|
86 |
+
granted to You under this License for that Work shall terminate
|
87 |
+
as of the date such litigation is filed.
|
88 |
+
|
89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
90 |
+
Work or Derivative Works thereof in any medium, with or without
|
91 |
+
modifications, and in Source or Object form, provided that You
|
92 |
+
meet the following conditions:
|
93 |
+
|
94 |
+
(a) You must give any other recipients of the Work or
|
95 |
+
Derivative Works a copy of this License; and
|
96 |
+
|
97 |
+
(b) You must cause any modified files to carry prominent notices
|
98 |
+
stating that You changed the files; and
|
99 |
+
|
100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
101 |
+
that You distribute, all copyright, patent, trademark, and
|
102 |
+
attribution notices from the Source form of the Work,
|
103 |
+
excluding those notices that do not pertain to any part of
|
104 |
+
the Derivative Works; and
|
105 |
+
|
106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
107 |
+
distribution, then any Derivative Works that You distribute must
|
108 |
+
include a readable copy of the attribution notices contained
|
109 |
+
within such NOTICE file, excluding those notices that do not
|
110 |
+
pertain to any part of the Derivative Works, in at least one
|
111 |
+
of the following places: within a NOTICE text file distributed
|
112 |
+
as part of the Derivative Works; within the Source form or
|
113 |
+
documentation, if provided along with the Derivative Works; or,
|
114 |
+
within a display generated by the Derivative Works, if and
|
115 |
+
wherever such third-party notices normally appear. The contents
|
116 |
+
of the NOTICE file are for informational purposes only and
|
117 |
+
do not modify the License. You may add Your own attribution
|
118 |
+
notices within Derivative Works that You distribute, alongside
|
119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
120 |
+
that such additional attribution notices cannot be construed
|
121 |
+
as modifying the License.
|
122 |
+
|
123 |
+
You may add Your own copyright statement to Your modifications and
|
124 |
+
may provide additional or different license terms and conditions
|
125 |
+
for use, reproduction, or distribution of Your modifications, or
|
126 |
+
for any such Derivative Works as a whole, provided Your use,
|
127 |
+
reproduction, and distribution of the Work otherwise complies with
|
128 |
+
the conditions stated in this License.
|
129 |
+
|
130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
132 |
+
by You to the Licensor shall be under the terms and conditions of
|
133 |
+
this License, without any additional terms or conditions.
|
134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
135 |
+
the terms of any separate license agreement you may have executed
|
136 |
+
with Licensor regarding such Contributions.
|
137 |
+
|
138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
140 |
+
except as required for reasonable and customary use in describing the
|
141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
142 |
+
|
143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
144 |
+
agreed to in writing, Licensor provides the Work (and each
|
145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
147 |
+
implied, including, without limitation, any warranties or conditions
|
148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
150 |
+
appropriateness of using or redistributing the Work and assume any
|
151 |
+
risks associated with Your exercise of permissions under this License.
|
152 |
+
|
153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
154 |
+
whether in tort (including negligence), contract, or otherwise,
|
155 |
+
unless required by applicable law (such as deliberate and grossly
|
156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
157 |
+
liable to You for damages, including any direct, indirect, special,
|
158 |
+
incidental, or consequential damages of any character arising as a
|
159 |
+
result of this License or out of the use or inability to use the
|
160 |
+
Work (including but not limited to damages for loss of goodwill,
|
161 |
+
work stoppage, computer failure or malfunction, or any and all
|
162 |
+
other commercial damages or losses), even if such Contributor
|
163 |
+
has been advised of the possibility of such damages.
|
164 |
+
|
165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
168 |
+
or other liability obligations and/or rights consistent with this
|
169 |
+
License. However, in accepting such obligations, You may act only
|
170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
171 |
+
of any other Contributor, and only if You agree to indemnify,
|
172 |
+
defend, and hold each Contributor harmless for any liability
|
173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
174 |
+
of your accepting any such warranty or additional liability.
|
175 |
+
|
176 |
+
END OF TERMS AND CONDITIONS
|
177 |
+
|
178 |
+
APPENDIX: How to apply the Apache License to your work.
|
179 |
+
|
180 |
+
To apply the Apache License to your work, attach the following
|
181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
182 |
+
replaced with your own identifying information. (Don't include
|
183 |
+
the brackets!) The text should be enclosed in the appropriate
|
184 |
+
comment syntax for the file format. We also recommend that a
|
185 |
+
file or class name and description of purpose be included on the
|
186 |
+
same "printed page" as the copyright notice for easier
|
187 |
+
identification within third-party archives.
|
188 |
+
|
189 |
+
Copyright 2022, fastai
|
190 |
+
|
191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
192 |
+
you may not use this file except in compliance with the License.
|
193 |
+
You may obtain a copy of the License at
|
194 |
+
|
195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
196 |
+
|
197 |
+
Unless required by applicable law or agreed to in writing, software
|
198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
200 |
+
See the License for the specific language governing permissions and
|
201 |
+
limitations under the License.
|
MANIFEST.in
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
include settings.ini
|
2 |
+
include LICENSE
|
3 |
+
include CONTRIBUTING.md
|
4 |
+
include README.md
|
5 |
+
recursive-exclude * __pycache__
|
README.md
CHANGED
@@ -1,71 +1,127 @@
|
|
1 |
---
|
2 |
-
title:
|
3 |
emoji: 🫑
|
4 |
colorFrom: green
|
5 |
colorTo: indigo
|
6 |
sdk: gradio
|
7 |
sdk_version: 3.23.0
|
8 |
-
app_file:
|
9 |
pinned: false
|
10 |
license: unknown
|
11 |
---
|
|
|
12 |
|
13 |
-
|
14 |
|
15 |
-
|
|
|
16 |
|
17 |
-
##
|
18 |
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
|
|
|
|
|
22 |
cd lv-recipe-chatbot
|
23 |
-
```
|
24 |
|
25 |
Make sure to use the version of python specified in `py_version.txt`
|
26 |
Create a virtual environment.
|
27 |
|
28 |
-
```sh
|
29 |
python3 -m venv env
|
30 |
```
|
31 |
|
32 |
Activate the env and install dependencies.
|
33 |
|
34 |
-
```sh
|
35 |
source env/bin/activate
|
36 |
pip install -r requirements.txt
|
37 |
pip install -r requirements/dev.txt
|
38 |
```
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
Put API secrets in .env
|
41 |
|
42 |
-
```sh
|
43 |
cp .env.example .env
|
44 |
```
|
45 |
|
46 |
Edit .env with your secret key(s). Only `OPEN_AI_KEY` is required.
|
47 |
|
48 |
-
Then start the Gradio demo from within the virtual environment.
|
49 |
|
50 |
-
```sh
|
51 |
-
python3
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
```
|
53 |
|
54 |
## Dependencies
|
55 |
|
56 |
-
If a new dependency for
|
57 |
-
|
|
|
|
|
58 |
Then run:
|
59 |
|
60 |
-
```sh
|
61 |
pipreqs --force
|
62 |
```
|
63 |
|
64 |
-
This will update our `requirements.txt` to include the
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
## Useful links
|
67 |
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
|
|
|
|
|
1 |
---
|
2 |
+
title: lv-recipe-chatbot
|
3 |
emoji: 🫑
|
4 |
colorFrom: green
|
5 |
colorTo: indigo
|
6 |
sdk: gradio
|
7 |
sdk_version: 3.23.0
|
8 |
+
app_file: app.py
|
9 |
pinned: false
|
10 |
license: unknown
|
11 |
---
|
12 |
+
# lv-recipe-chatbot
|
13 |
|
14 |
+
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
15 |
|
16 |
+
This file will become your README and also the index of your
|
17 |
+
documentation.
|
18 |
|
19 |
+
## Install
|
20 |
|
21 |
+
``` sh
|
22 |
+
pip install lv_recipe_chatbot
|
23 |
+
```
|
24 |
+
|
25 |
+
## How to use
|
26 |
+
|
27 |
+
``` python
|
28 |
+
from dotenv import load_dotenv
|
29 |
+
|
30 |
+
load_dotenv()
|
31 |
+
|
32 |
+
app.launch_demo()
|
33 |
+
```
|
34 |
+
|
35 |
+
Running on local URL: http://127.0.0.1:7860
|
36 |
+
|
37 |
+
To create a public link, set `share=True` in `launch()`.
|
38 |
+
|
39 |
+
or
|
40 |
+
|
41 |
+
``` sh
|
42 |
+
python3 app.py
|
43 |
+
```
|
44 |
+
|
45 |
+
## Dev quick-start
|
46 |
|
47 |
+
`git clone` the repo
|
48 |
+
|
49 |
+
``` sh
|
50 |
cd lv-recipe-chatbot
|
51 |
+
```
|
52 |
|
53 |
Make sure to use the version of python specified in `py_version.txt`
|
54 |
Create a virtual environment.
|
55 |
|
56 |
+
``` sh
|
57 |
python3 -m venv env
|
58 |
```
|
59 |
|
60 |
Activate the env and install dependencies.
|
61 |
|
62 |
+
``` sh
|
63 |
source env/bin/activate
|
64 |
pip install -r requirements.txt
|
65 |
pip install -r requirements/dev.txt
|
66 |
```
|
67 |
|
68 |
+
To make the Jupyter environment, git friendly: `nbdev_install_hooks`
|
69 |
+
If you want to render documentation locally, you will want to [install
|
70 |
+
Quarto](https://nbdev.fast.ai/tutorials/tutorial.html#install-quarto).
|
71 |
+
|
72 |
+
`nbdev_install_quarto`
|
73 |
+
|
74 |
Put API secrets in .env
|
75 |
|
76 |
+
``` sh
|
77 |
cp .env.example .env
|
78 |
```
|
79 |
|
80 |
Edit .env with your secret key(s). Only `OPEN_AI_KEY` is required.
|
81 |
|
82 |
+
Then start the Gradio demo from within the virtual environment.
|
83 |
|
84 |
+
``` sh
|
85 |
+
python3 app.py
|
86 |
+
```
|
87 |
+
|
88 |
+
Preview documentation
|
89 |
+
|
90 |
+
``` sh
|
91 |
+
nbdev_preview
|
92 |
```
|
93 |
|
94 |
## Dependencies
|
95 |
|
96 |
+
If a new dependency for development is helpful for developers, add it to
|
97 |
+
`dev.txt`.
|
98 |
+
If it is a dependency for the app that is imported in source code, add
|
99 |
+
it to `core.txt`.
|
100 |
Then run:
|
101 |
|
102 |
+
``` sh
|
103 |
pipreqs --force
|
104 |
```
|
105 |
|
106 |
+
This will update our `requirements.txt` to include the dependency as it
|
107 |
+
should be pinned in the environment.
|
108 |
+
|
109 |
+
## Development
|
110 |
+
|
111 |
+
[quick nbdev tutorial](https://nbdev.fast.ai/tutorials)
|
112 |
+
|
113 |
+
Make changes in `/nbs`.
|
114 |
+
Update the package files with `nbdev_export` then reimport with
|
115 |
+
`pip install -e '.[dev]'`
|
116 |
+
|
117 |
+
Preview doc `nbdev_preview`
|
118 |
+
Build docs, test and update README `nbdev_prepare`
|
119 |
|
120 |
## Useful links
|
121 |
|
122 |
+
- [Task Matrix (Formerly Visual
|
123 |
+
ChatGPT)](https://github.com/microsoft/TaskMatrix)
|
124 |
+
- [LangChain](https://python.langchain.com/en/latest/index.html)
|
125 |
+
- [LLM Prompt Engineering](https://www.promptingguide.ai)
|
126 |
+
- [OpenAI best practices for
|
127 |
+
prompts](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api)
|
_proc/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
/.quarto/
|
_proc/00_engineer_prompt.ipynb
ADDED
@@ -0,0 +1,231 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "raw",
|
5 |
+
"metadata": {},
|
6 |
+
"source": [
|
7 |
+
"---\n",
|
8 |
+
"description: Engineering prompts\n",
|
9 |
+
"output-file: engineer_prompt.html\n",
|
10 |
+
"title: engineer_prompt\n",
|
11 |
+
"\n",
|
12 |
+
"---\n",
|
13 |
+
"\n"
|
14 |
+
]
|
15 |
+
},
|
16 |
+
{
|
17 |
+
"cell_type": "markdown",
|
18 |
+
"metadata": {},
|
19 |
+
"source": [
|
20 |
+
"<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->"
|
21 |
+
]
|
22 |
+
},
|
23 |
+
{
|
24 |
+
"cell_type": "markdown",
|
25 |
+
"metadata": {},
|
26 |
+
"source": [
|
27 |
+
"Setup env"
|
28 |
+
]
|
29 |
+
},
|
30 |
+
{
|
31 |
+
"cell_type": "code",
|
32 |
+
"execution_count": null,
|
33 |
+
"metadata": {
|
34 |
+
"language": "python"
|
35 |
+
},
|
36 |
+
"outputs": [],
|
37 |
+
"source": [
|
38 |
+
"from dotenv import load_dotenv"
|
39 |
+
]
|
40 |
+
},
|
41 |
+
{
|
42 |
+
"cell_type": "code",
|
43 |
+
"execution_count": null,
|
44 |
+
"metadata": {
|
45 |
+
"language": "python"
|
46 |
+
},
|
47 |
+
"outputs": [
|
48 |
+
{
|
49 |
+
"data": {
|
50 |
+
"text/plain": [
|
51 |
+
"True"
|
52 |
+
]
|
53 |
+
},
|
54 |
+
"execution_count": null,
|
55 |
+
"metadata": {},
|
56 |
+
"output_type": "execute_result"
|
57 |
+
}
|
58 |
+
],
|
59 |
+
"source": [
|
60 |
+
"load_dotenv()"
|
61 |
+
]
|
62 |
+
},
|
63 |
+
{
|
64 |
+
"cell_type": "markdown",
|
65 |
+
"metadata": {},
|
66 |
+
"source": [
|
67 |
+
"Evaluate chat backend "
|
68 |
+
]
|
69 |
+
},
|
70 |
+
{
|
71 |
+
"cell_type": "code",
|
72 |
+
"execution_count": null,
|
73 |
+
"metadata": {
|
74 |
+
"language": "python"
|
75 |
+
},
|
76 |
+
"outputs": [
|
77 |
+
{
|
78 |
+
"name": "stderr",
|
79 |
+
"output_type": "stream",
|
80 |
+
"text": [
|
81 |
+
"Anthropic module not found. Install with `pip install anthropic`.\n",
|
82 |
+
"WARNING: While logging your request PromptLayer had the following error: Invalid API key, please check your PromptLayer API key and try again\n"
|
83 |
+
]
|
84 |
+
},
|
85 |
+
{
|
86 |
+
"name": "stdout",
|
87 |
+
"output_type": "stream",
|
88 |
+
"text": [
|
89 |
+
"\n",
|
90 |
+
"\n",
|
91 |
+
"> Entering new ConversationChain chain...\n",
|
92 |
+
"Prompt after formatting:\n",
|
93 |
+
"System: The following is a conversation between a human and a friendly AI chef. \n",
|
94 |
+
"The AI is compassionate to animals and only recommends vegan recipes based on the ingredients, allergies, and other preferences the human has.\n",
|
95 |
+
"\n",
|
96 |
+
"Knowledge: A vegan diet implies a plant-based diet avoiding all animal foods such as meat (including fish, shellfish and insects), dairy, eggs and honey \n",
|
97 |
+
"\n",
|
98 |
+
"Let's think step by step.\n",
|
99 |
+
"If the human messages are unrelated to vegan recipes, remind them of your purpose to recommend vegan recipes.\n",
|
100 |
+
"AI: What ingredients do you wish to cook with?\n",
|
101 |
+
"Human: Ingredients: tofu, pickles, olives, tomatoes, lettuce, bell peppers, carrots, bread\n",
|
102 |
+
"AI: Do you have any allergies I should be aware of?\n",
|
103 |
+
"Human: Allergies: \n",
|
104 |
+
"AI: Do you have any preferences I should consider for the recipe such as preparation time, difficulty, or cuisine region?\n",
|
105 |
+
"Human: Give me a vegan recipe that includes at least a few of the ingredients provided (if any).\n",
|
106 |
+
"Respect the human's allergies (if any).\n",
|
107 |
+
"Follow these other preferences as closely as possible if they are inline with your purpose of recommending vegan recipes:\n",
|
108 |
+
"\n",
|
109 |
+
"###\n",
|
110 |
+
"Preferences: The preparation time should be less than 30 minutes. I really love Thai food!\n",
|
111 |
+
"###\n",
|
112 |
+
"\n",
|
113 |
+
"Output format:\n",
|
114 |
+
"\n",
|
115 |
+
"**Vegan recipe name**\n",
|
116 |
+
"Preparation time (humanized)\n",
|
117 |
+
"\n",
|
118 |
+
"Ingredients (List of ingredients with quantities):\n",
|
119 |
+
"- <quantity and unit> <ingredient>\n",
|
120 |
+
"\n",
|
121 |
+
"Steps (detailed):\n",
|
122 |
+
"1.\n",
|
123 |
+
"2.\n",
|
124 |
+
"3.\n",
|
125 |
+
"...\n",
|
126 |
+
"AI: Sure! How about a vegan Thai tofu lettuce wraps recipe? It should take less than 30 minutes to prepare.\n",
|
127 |
+
"\n",
|
128 |
+
"**Vegan Thai Tofu Lettuce Wraps**\n",
|
129 |
+
"Preparation time: 25 minutes\n",
|
130 |
+
"\n",
|
131 |
+
"Ingredients:\n",
|
132 |
+
"- 1 package firm tofu\n",
|
133 |
+
"- 1/4 cup vegan fish sauce (you can use soy sauce as a substitute)\n",
|
134 |
+
"- 2 tablespoons maple syrup\n",
|
135 |
+
"- 1 tablespoon lime juice\n",
|
136 |
+
"- 1 teaspoon chili paste\n",
|
137 |
+
"- 1 bell pepper, sliced\n",
|
138 |
+
"- 2 carrots, julienned\n",
|
139 |
+
"- 1/4 cup sliced pickles\n",
|
140 |
+
"- 1/4 cup sliced olives\n",
|
141 |
+
"- 6 large lettuce leaves\n",
|
142 |
+
"- 1/4 cup chopped fresh cilantro\n",
|
143 |
+
"\n",
|
144 |
+
"Steps:\n",
|
145 |
+
"1. Preheat a skillet over medium-high heat and add cubed tofu. Cook for about 5-7 minutes, flipping occasionally, until all the pieces are golden brown. Set aside.\n",
|
146 |
+
"2. In a mixing bowl, whisk together the fish sauce (or soy sauce), maple syrup, lime juice, and chili paste until combined.\n",
|
147 |
+
"3. In a large mixing bowl, add the bell pepper, carrots, pickles, olives, and cooked tofu. Pour the dressing over the ingredients, and toss until everything is evenly coated with the sauce.\n",
|
148 |
+
"4. Assemble the lettuce wraps by separating the lettuce leaves and spooning the tofu mixture into each one. Top with fresh cilantro and serve immediately. Enjoy your delicious vegan Thai tofu lettuce wraps!\n",
|
149 |
+
"Human: Recommend a different recipe please.\n",
|
150 |
+
"\n",
|
151 |
+
"> Finished chain.\n",
|
152 |
+
"Of course! How about a Mediterranean-inspired sandwich that includes tofu, olives, and tomatoes?\n",
|
153 |
+
"\n",
|
154 |
+
"**Mediterranean Tofu Sandwich**\n",
|
155 |
+
"Preparation time: 20 minutes\n",
|
156 |
+
"\n",
|
157 |
+
"Ingredients:\n",
|
158 |
+
"- 1 package extra-firm tofu, drained and sliced into 1/2-inch slices\n",
|
159 |
+
"- 2 tablespoons olive oil\n",
|
160 |
+
"- 1 teaspoon dried oregano\n",
|
161 |
+
"- Salt and pepper\n",
|
162 |
+
"- 1/4 cup vegan mayo\n",
|
163 |
+
"- 1 garlic clove, minced\n",
|
164 |
+
"- 2 teaspoons lemon juice\n",
|
165 |
+
"- 1 large tomato, sliced\n",
|
166 |
+
"- 1/4 cup sliced kalamata olives\n",
|
167 |
+
"- 1/4 cup chopped lettuce\n",
|
168 |
+
"- 1/4 cup sliced pickles\n",
|
169 |
+
"- Bread of your choice (I recommend ciabatta)\n",
|
170 |
+
"\n",
|
171 |
+
"Steps:\n",
|
172 |
+
"1. Preheat a skillet over medium-high heat and add the olive oil.\n",
|
173 |
+
"2. Season the tofu slices with oregano, salt, and pepper, then add them to the skillet. Cook for about 5-7 minutes on each side or until golden brown. Set aside.\n",
|
174 |
+
"3. In a small bowl, mix the vegan mayo, minced garlic, and lemon juice. Spread the mixture onto the slices of bread.\n",
|
175 |
+
"4. Layer the tomato slices, cooked tofu, olives, lettuce, and pickles onto the bread. Add salt and pepper to taste.\n",
|
176 |
+
"5. Top with the other slice of bread, slice in half, and enjoy your delicious Mediterranean tofu sandwich!\n"
|
177 |
+
]
|
178 |
+
},
|
179 |
+
{
|
180 |
+
"name": "stderr",
|
181 |
+
"output_type": "stream",
|
182 |
+
"text": [
|
183 |
+
"WARNING: While logging your request PromptLayer had the following error: Invalid API key, please check your PromptLayer API key and try again\n"
|
184 |
+
]
|
185 |
+
}
|
186 |
+
],
|
187 |
+
"source": [
|
188 |
+
"chat = PromptLayerChatOpenAI(temperature=1, pl_tags=[\"langchain\"], return_pl_id=True)\n",
|
189 |
+
"memory = ConversationBufferMemory(return_messages=True)\n",
|
190 |
+
"chat_msgs = init_prompt.format_prompt(\n",
|
191 |
+
" ingredients=\"tofu, pickles, olives, tomatoes, lettuce, bell peppers, carrots, bread\",\n",
|
192 |
+
" allergies=\"\",\n",
|
193 |
+
" recipe_freeform_input=\"The preparation time should be less than 30 minutes. I really love Thai food!\",\n",
|
194 |
+
")\n",
|
195 |
+
"\n",
|
196 |
+
"chat_msgs = chat_msgs.to_messages()\n",
|
197 |
+
"results = chat.generate([chat_msgs])\n",
|
198 |
+
"chat_msgs.extend(\n",
|
199 |
+
" [\n",
|
200 |
+
" results.generations[0][0].message,\n",
|
201 |
+
" MessagesPlaceholder(variable_name=\"history\"),\n",
|
202 |
+
" HumanMessagePromptTemplate.from_template(\"{input}\"),\n",
|
203 |
+
" ]\n",
|
204 |
+
")\n",
|
205 |
+
"open_prompt = ChatPromptTemplate.from_messages(chat_msgs)\n",
|
206 |
+
"conversation = ConversationChain(\n",
|
207 |
+
" llm=chat, verbose=True, memory=memory, prompt=open_prompt\n",
|
208 |
+
")\n",
|
209 |
+
"\n",
|
210 |
+
"result = conversation.predict(input=\"Recommend a different recipe please.\")\n",
|
211 |
+
"print(result)"
|
212 |
+
]
|
213 |
+
}
|
214 |
+
],
|
215 |
+
"metadata": {
|
216 |
+
"kernelspec": {
|
217 |
+
"display_name": "python3",
|
218 |
+
"language": "python",
|
219 |
+
"name": "python3"
|
220 |
+
},
|
221 |
+
"widgets": {
|
222 |
+
"application/vnd.jupyter.widget-state+json": {
|
223 |
+
"state": {},
|
224 |
+
"version_major": 2,
|
225 |
+
"version_minor": 0
|
226 |
+
}
|
227 |
+
}
|
228 |
+
},
|
229 |
+
"nbformat": 4,
|
230 |
+
"nbformat_minor": 4
|
231 |
+
}
|
_proc/01_app.ipynb
ADDED
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "raw",
|
5 |
+
"metadata": {},
|
6 |
+
"source": [
|
7 |
+
"---\n",
|
8 |
+
"description: Gradio app.py\n",
|
9 |
+
"output-file: app.html\n",
|
10 |
+
"title: app\n",
|
11 |
+
"\n",
|
12 |
+
"---\n",
|
13 |
+
"\n"
|
14 |
+
]
|
15 |
+
},
|
16 |
+
{
|
17 |
+
"cell_type": "markdown",
|
18 |
+
"metadata": {},
|
19 |
+
"source": [
|
20 |
+
"<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->"
|
21 |
+
]
|
22 |
+
},
|
23 |
+
{
|
24 |
+
"cell_type": "code",
|
25 |
+
"execution_count": 1,
|
26 |
+
"metadata": {},
|
27 |
+
"outputs": [
|
28 |
+
{
|
29 |
+
"data": {
|
30 |
+
"text/markdown": [
|
31 |
+
"---\n",
|
32 |
+
"\n",
|
33 |
+
"[source](https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/app.py#L23){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
|
34 |
+
"\n",
|
35 |
+
"### ConversationBot\n",
|
36 |
+
"\n",
|
37 |
+
"> ConversationBot ()\n",
|
38 |
+
"\n",
|
39 |
+
"Initialize self. See help(type(self)) for accurate signature."
|
40 |
+
],
|
41 |
+
"text/plain": [
|
42 |
+
"---\n",
|
43 |
+
"\n",
|
44 |
+
"[source](https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/app.py#L23){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
|
45 |
+
"\n",
|
46 |
+
"### ConversationBot\n",
|
47 |
+
"\n",
|
48 |
+
"> ConversationBot ()\n",
|
49 |
+
"\n",
|
50 |
+
"Initialize self. See help(type(self)) for accurate signature."
|
51 |
+
]
|
52 |
+
},
|
53 |
+
"execution_count": 1,
|
54 |
+
"metadata": {},
|
55 |
+
"output_type": "execute_result"
|
56 |
+
}
|
57 |
+
],
|
58 |
+
"source": [
|
59 |
+
"#| echo: false\n",
|
60 |
+
"#| output: asis\n",
|
61 |
+
"show_doc(ConversationBot)"
|
62 |
+
]
|
63 |
+
},
|
64 |
+
{
|
65 |
+
"cell_type": "code",
|
66 |
+
"execution_count": 2,
|
67 |
+
"metadata": {},
|
68 |
+
"outputs": [
|
69 |
+
{
|
70 |
+
"data": {
|
71 |
+
"text/markdown": [
|
72 |
+
"---\n",
|
73 |
+
"\n",
|
74 |
+
"[source](https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/app.py#L86){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
|
75 |
+
"\n",
|
76 |
+
"### launch_demo\n",
|
77 |
+
"\n",
|
78 |
+
"> launch_demo ()"
|
79 |
+
],
|
80 |
+
"text/plain": [
|
81 |
+
"---\n",
|
82 |
+
"\n",
|
83 |
+
"[source](https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/app.py#L86){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
|
84 |
+
"\n",
|
85 |
+
"### launch_demo\n",
|
86 |
+
"\n",
|
87 |
+
"> launch_demo ()"
|
88 |
+
]
|
89 |
+
},
|
90 |
+
"execution_count": 2,
|
91 |
+
"metadata": {},
|
92 |
+
"output_type": "execute_result"
|
93 |
+
}
|
94 |
+
],
|
95 |
+
"source": [
|
96 |
+
"#| echo: false\n",
|
97 |
+
"#| output: asis\n",
|
98 |
+
"show_doc(launch_demo)"
|
99 |
+
]
|
100 |
+
},
|
101 |
+
{
|
102 |
+
"cell_type": "markdown",
|
103 |
+
"metadata": {},
|
104 |
+
"source": [
|
105 |
+
"Load environment for the demo"
|
106 |
+
]
|
107 |
+
},
|
108 |
+
{
|
109 |
+
"cell_type": "code",
|
110 |
+
"execution_count": null,
|
111 |
+
"metadata": {
|
112 |
+
"language": "python"
|
113 |
+
},
|
114 |
+
"outputs": [],
|
115 |
+
"source": [
|
116 |
+
"from dotenv import load_dotenv"
|
117 |
+
]
|
118 |
+
},
|
119 |
+
{
|
120 |
+
"cell_type": "code",
|
121 |
+
"execution_count": null,
|
122 |
+
"metadata": {
|
123 |
+
"language": "python"
|
124 |
+
},
|
125 |
+
"outputs": [
|
126 |
+
{
|
127 |
+
"name": "stdout",
|
128 |
+
"output_type": "stream",
|
129 |
+
"text": [
|
130 |
+
"Running on local URL: http://127.0.0.1:7862\n",
|
131 |
+
"\n",
|
132 |
+
"To create a public link, set `share=True` in `launch()`.\n"
|
133 |
+
]
|
134 |
+
}
|
135 |
+
],
|
136 |
+
"source": [
|
137 |
+
"load_dotenv()\n",
|
138 |
+
"launch_demo()"
|
139 |
+
]
|
140 |
+
}
|
141 |
+
],
|
142 |
+
"metadata": {
|
143 |
+
"kernelspec": {
|
144 |
+
"display_name": "python3",
|
145 |
+
"language": "python",
|
146 |
+
"name": "python3"
|
147 |
+
},
|
148 |
+
"widgets": {
|
149 |
+
"application/vnd.jupyter.widget-state+json": {
|
150 |
+
"state": {},
|
151 |
+
"version_major": 2,
|
152 |
+
"version_minor": 0
|
153 |
+
}
|
154 |
+
}
|
155 |
+
},
|
156 |
+
"nbformat": 4,
|
157 |
+
"nbformat_minor": 4
|
158 |
+
}
|
_proc/02_lchain_tool.ipynb
ADDED
The diff for this file is too large to render.
See raw diff
|
|
_proc/03_edamam_api.ipynb
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "raw",
|
5 |
+
"metadata": {},
|
6 |
+
"source": [
|
7 |
+
"---\n",
|
8 |
+
"description: Tinkering with the [](Edamam API)\n",
|
9 |
+
"output-file: edamam_api.html\n",
|
10 |
+
"title: edamam_api\n",
|
11 |
+
"\n",
|
12 |
+
"---\n",
|
13 |
+
"\n"
|
14 |
+
]
|
15 |
+
},
|
16 |
+
{
|
17 |
+
"cell_type": "markdown",
|
18 |
+
"metadata": {},
|
19 |
+
"source": [
|
20 |
+
"<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->"
|
21 |
+
]
|
22 |
+
},
|
23 |
+
{
|
24 |
+
"cell_type": "code",
|
25 |
+
"execution_count": 1,
|
26 |
+
"metadata": {},
|
27 |
+
"outputs": [
|
28 |
+
{
|
29 |
+
"data": {
|
30 |
+
"text/markdown": [
|
31 |
+
"---\n",
|
32 |
+
"\n",
|
33 |
+
"[source](https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/edamam_api.py#L7){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
|
34 |
+
"\n",
|
35 |
+
"### foo\n",
|
36 |
+
"\n",
|
37 |
+
"> foo ()"
|
38 |
+
],
|
39 |
+
"text/plain": [
|
40 |
+
"---\n",
|
41 |
+
"\n",
|
42 |
+
"[source](https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/edamam_api.py#L7){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
|
43 |
+
"\n",
|
44 |
+
"### foo\n",
|
45 |
+
"\n",
|
46 |
+
"> foo ()"
|
47 |
+
]
|
48 |
+
},
|
49 |
+
"execution_count": 1,
|
50 |
+
"metadata": {},
|
51 |
+
"output_type": "execute_result"
|
52 |
+
}
|
53 |
+
],
|
54 |
+
"source": [
|
55 |
+
"#| echo: false\n",
|
56 |
+
"#| output: asis\n",
|
57 |
+
"show_doc(foo)"
|
58 |
+
]
|
59 |
+
},
|
60 |
+
{
|
61 |
+
"cell_type": "code",
|
62 |
+
"execution_count": null,
|
63 |
+
"metadata": {
|
64 |
+
"language": "python"
|
65 |
+
},
|
66 |
+
"outputs": [],
|
67 |
+
"source": []
|
68 |
+
}
|
69 |
+
],
|
70 |
+
"metadata": {
|
71 |
+
"kernelspec": {
|
72 |
+
"display_name": "python3",
|
73 |
+
"language": "python",
|
74 |
+
"name": "python3"
|
75 |
+
},
|
76 |
+
"widgets": {
|
77 |
+
"application/vnd.jupyter.widget-state+json": {
|
78 |
+
"state": {},
|
79 |
+
"version_major": 2,
|
80 |
+
"version_minor": 0
|
81 |
+
}
|
82 |
+
}
|
83 |
+
},
|
84 |
+
"nbformat": 4,
|
85 |
+
"nbformat_minor": 4
|
86 |
+
}
|
_proc/_docs/app.html
ADDED
@@ -0,0 +1,483 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
3 |
+
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<meta name="generator" content="quarto-1.3.361">
|
6 |
+
|
7 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
8 |
+
|
9 |
+
<meta name="description" content="Gradio app.py">
|
10 |
+
|
11 |
+
<title>lv-recipe-chatbot - app</title>
|
12 |
+
<style>
|
13 |
+
code{white-space: pre-wrap;}
|
14 |
+
span.smallcaps{font-variant: small-caps;}
|
15 |
+
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
16 |
+
div.column{flex: auto; overflow-x: auto;}
|
17 |
+
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
18 |
+
ul.task-list{list-style: none;}
|
19 |
+
ul.task-list li input[type="checkbox"] {
|
20 |
+
width: 0.8em;
|
21 |
+
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
22 |
+
vertical-align: middle;
|
23 |
+
}
|
24 |
+
/* CSS for syntax highlighting */
|
25 |
+
pre > code.sourceCode { white-space: pre; position: relative; }
|
26 |
+
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
27 |
+
pre > code.sourceCode > span:empty { height: 1.2em; }
|
28 |
+
.sourceCode { overflow: visible; }
|
29 |
+
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
30 |
+
div.sourceCode { margin: 1em 0; }
|
31 |
+
pre.sourceCode { margin: 0; }
|
32 |
+
@media screen {
|
33 |
+
div.sourceCode { overflow: auto; }
|
34 |
+
}
|
35 |
+
@media print {
|
36 |
+
pre > code.sourceCode { white-space: pre-wrap; }
|
37 |
+
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
38 |
+
}
|
39 |
+
pre.numberSource code
|
40 |
+
{ counter-reset: source-line 0; }
|
41 |
+
pre.numberSource code > span
|
42 |
+
{ position: relative; left: -4em; counter-increment: source-line; }
|
43 |
+
pre.numberSource code > span > a:first-child::before
|
44 |
+
{ content: counter(source-line);
|
45 |
+
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
46 |
+
border: none; display: inline-block;
|
47 |
+
-webkit-touch-callout: none; -webkit-user-select: none;
|
48 |
+
-khtml-user-select: none; -moz-user-select: none;
|
49 |
+
-ms-user-select: none; user-select: none;
|
50 |
+
padding: 0 4px; width: 4em;
|
51 |
+
}
|
52 |
+
pre.numberSource { margin-left: 3em; padding-left: 4px; }
|
53 |
+
div.sourceCode
|
54 |
+
{ }
|
55 |
+
@media screen {
|
56 |
+
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
57 |
+
}
|
58 |
+
</style>
|
59 |
+
|
60 |
+
|
61 |
+
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
|
62 |
+
<script src="site_libs/quarto-nav/headroom.min.js"></script>
|
63 |
+
<script src="site_libs/clipboard/clipboard.min.js"></script>
|
64 |
+
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
|
65 |
+
<script src="site_libs/quarto-search/fuse.min.js"></script>
|
66 |
+
<script src="site_libs/quarto-search/quarto-search.js"></script>
|
67 |
+
<meta name="quarto:offset" content="./">
|
68 |
+
<script src="site_libs/quarto-html/quarto.js"></script>
|
69 |
+
<script src="site_libs/quarto-html/popper.min.js"></script>
|
70 |
+
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
|
71 |
+
<script src="site_libs/quarto-html/anchor.min.js"></script>
|
72 |
+
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
|
73 |
+
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
74 |
+
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
|
75 |
+
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
76 |
+
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
77 |
+
<script id="quarto-search-options" type="application/json">{
|
78 |
+
"location": "navbar",
|
79 |
+
"copy-button": false,
|
80 |
+
"collapse-after": 3,
|
81 |
+
"panel-placement": "end",
|
82 |
+
"type": "overlay",
|
83 |
+
"limit": 20,
|
84 |
+
"language": {
|
85 |
+
"search-no-results-text": "No results",
|
86 |
+
"search-matching-documents-text": "matching documents",
|
87 |
+
"search-copy-link-title": "Copy link to search",
|
88 |
+
"search-hide-matches-text": "Hide additional matches",
|
89 |
+
"search-more-match-text": "more match in this document",
|
90 |
+
"search-more-matches-text": "more matches in this document",
|
91 |
+
"search-clear-button-title": "Clear",
|
92 |
+
"search-detached-cancel-button-title": "Cancel",
|
93 |
+
"search-submit-button-title": "Submit",
|
94 |
+
"search-label": "Search"
|
95 |
+
}
|
96 |
+
}</script>
|
97 |
+
|
98 |
+
|
99 |
+
<link rel="stylesheet" href="styles.css">
|
100 |
+
<meta property="og:title" content="lv-recipe-chatbot - app">
|
101 |
+
<meta property="og:description" content="Gradio app.py">
|
102 |
+
<meta property="og:site-name" content="lv-recipe-chatbot">
|
103 |
+
<meta name="twitter:title" content="lv-recipe-chatbot - app">
|
104 |
+
<meta name="twitter:description" content="Gradio app.py">
|
105 |
+
<meta name="twitter:card" content="summary">
|
106 |
+
</head>
|
107 |
+
|
108 |
+
<body class="nav-sidebar floating nav-fixed">
|
109 |
+
|
110 |
+
<div id="quarto-search-results"></div>
|
111 |
+
<header id="quarto-header" class="headroom fixed-top">
|
112 |
+
<nav class="navbar navbar-expand-lg navbar-dark ">
|
113 |
+
<div class="navbar-container container-fluid">
|
114 |
+
<div class="navbar-brand-container">
|
115 |
+
<a class="navbar-brand" href="./index.html">
|
116 |
+
<span class="navbar-title">lv-recipe-chatbot</span>
|
117 |
+
</a>
|
118 |
+
</div>
|
119 |
+
<div class="quarto-navbar-tools ms-auto">
|
120 |
+
</div>
|
121 |
+
<div id="quarto-search" class="" title="Search"></div>
|
122 |
+
</div> <!-- /container-fluid -->
|
123 |
+
</nav>
|
124 |
+
<nav class="quarto-secondary-nav">
|
125 |
+
<div class="container-fluid d-flex">
|
126 |
+
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
127 |
+
<i class="bi bi-layout-text-sidebar-reverse"></i>
|
128 |
+
</button>
|
129 |
+
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./app.html">app</a></li></ol></nav>
|
130 |
+
<a class="flex-grow-1" role="button" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
131 |
+
</a>
|
132 |
+
</div>
|
133 |
+
</nav>
|
134 |
+
</header>
|
135 |
+
<!-- content -->
|
136 |
+
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
137 |
+
<!-- sidebar -->
|
138 |
+
<nav id="quarto-sidebar" class="sidebar collapse collapse-horizontal sidebar-navigation floating overflow-auto">
|
139 |
+
<div class="sidebar-menu-container">
|
140 |
+
<ul class="list-unstyled mt-1">
|
141 |
+
<li class="sidebar-item">
|
142 |
+
<div class="sidebar-item-container">
|
143 |
+
<a href="./index.html" class="sidebar-item-text sidebar-link">
|
144 |
+
<span class="menu-text">lv-recipe-chatbot</span></a>
|
145 |
+
</div>
|
146 |
+
</li>
|
147 |
+
<li class="sidebar-item">
|
148 |
+
<div class="sidebar-item-container">
|
149 |
+
<a href="./engineer_prompt.html" class="sidebar-item-text sidebar-link">
|
150 |
+
<span class="menu-text">engineer_prompt</span></a>
|
151 |
+
</div>
|
152 |
+
</li>
|
153 |
+
<li class="sidebar-item">
|
154 |
+
<div class="sidebar-item-container">
|
155 |
+
<a href="./app.html" class="sidebar-item-text sidebar-link active">
|
156 |
+
<span class="menu-text">app</span></a>
|
157 |
+
</div>
|
158 |
+
</li>
|
159 |
+
<li class="sidebar-item">
|
160 |
+
<div class="sidebar-item-container">
|
161 |
+
<a href="./lchain_tool.html" class="sidebar-item-text sidebar-link">
|
162 |
+
<span class="menu-text">lchain_tool</span></a>
|
163 |
+
</div>
|
164 |
+
</li>
|
165 |
+
<li class="sidebar-item">
|
166 |
+
<div class="sidebar-item-container">
|
167 |
+
<a href="./edamam_api.html" class="sidebar-item-text sidebar-link">
|
168 |
+
<span class="menu-text">edamam_api</span></a>
|
169 |
+
</div>
|
170 |
+
</li>
|
171 |
+
</ul>
|
172 |
+
</div>
|
173 |
+
</nav>
|
174 |
+
<div id="quarto-sidebar-glass" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass"></div>
|
175 |
+
<!-- margin-sidebar -->
|
176 |
+
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
177 |
+
<nav id="TOC" role="doc-toc" class="toc-active">
|
178 |
+
<h2 id="toc-title">On this page</h2>
|
179 |
+
|
180 |
+
<ul>
|
181 |
+
<li><a href="#conversationbot" id="toc-conversationbot" class="nav-link active" data-scroll-target="#conversationbot">ConversationBot</a></li>
|
182 |
+
<li><a href="#launch_demo" id="toc-launch_demo" class="nav-link" data-scroll-target="#launch_demo">launch_demo</a></li>
|
183 |
+
</ul>
|
184 |
+
<div class="toc-actions"><div><i class="bi bi-github"></i></div><div class="action-links"><p><a href="https://github.com/animalequality/lv-recipe-chatbot/issues/new" class="toc-action">Report an issue</a></p></div></div></nav>
|
185 |
+
</div>
|
186 |
+
<!-- main -->
|
187 |
+
<main class="content" id="quarto-document-content">
|
188 |
+
|
189 |
+
<header id="title-block-header" class="quarto-title-block default">
|
190 |
+
<div class="quarto-title">
|
191 |
+
<h1 class="title">app</h1>
|
192 |
+
</div>
|
193 |
+
|
194 |
+
<div>
|
195 |
+
<div class="description">
|
196 |
+
Gradio app.py
|
197 |
+
</div>
|
198 |
+
</div>
|
199 |
+
|
200 |
+
|
201 |
+
<div class="quarto-title-meta">
|
202 |
+
|
203 |
+
|
204 |
+
|
205 |
+
|
206 |
+
</div>
|
207 |
+
|
208 |
+
|
209 |
+
</header>
|
210 |
+
|
211 |
+
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
212 |
+
<hr>
|
213 |
+
<p><a href="https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/app.py#L23" target="_blank" style="float:right; font-size:smaller">source</a></p>
|
214 |
+
<section id="conversationbot" class="level3">
|
215 |
+
<h3 class="anchored" data-anchor-id="conversationbot">ConversationBot</h3>
|
216 |
+
<blockquote class="blockquote">
|
217 |
+
<pre><code> ConversationBot ()</code></pre>
|
218 |
+
</blockquote>
|
219 |
+
<p>Initialize self. See help(type(self)) for accurate signature.</p>
|
220 |
+
<hr>
|
221 |
+
<p><a href="https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/app.py#L86" target="_blank" style="float:right; font-size:smaller">source</a></p>
|
222 |
+
</section>
|
223 |
+
<section id="launch_demo" class="level3">
|
224 |
+
<h3 class="anchored" data-anchor-id="launch_demo">launch_demo</h3>
|
225 |
+
<blockquote class="blockquote">
|
226 |
+
<pre><code> launch_demo ()</code></pre>
|
227 |
+
</blockquote>
|
228 |
+
<p>Load environment for the demo</p>
|
229 |
+
<div class="cell">
|
230 |
+
<div class="sourceCode cell-code" id="cb3"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="im">from</span> dotenv <span class="im">import</span> load_dotenv</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
231 |
+
</div>
|
232 |
+
<div class="cell">
|
233 |
+
<div class="sourceCode cell-code" id="cb4"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>load_dotenv()</span>
|
234 |
+
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a>launch_demo()</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
235 |
+
<div class="cell-output cell-output-stdout">
|
236 |
+
<pre><code>Running on local URL: http://127.0.0.1:7862
|
237 |
+
|
238 |
+
To create a public link, set `share=True` in `launch()`.</code></pre>
|
239 |
+
</div>
|
240 |
+
</div>
|
241 |
+
|
242 |
+
|
243 |
+
</section>
|
244 |
+
|
245 |
+
</main> <!-- /main -->
|
246 |
+
<script id="quarto-html-after-body" type="application/javascript">
|
247 |
+
window.document.addEventListener("DOMContentLoaded", function (event) {
|
248 |
+
const toggleBodyColorMode = (bsSheetEl) => {
|
249 |
+
const mode = bsSheetEl.getAttribute("data-mode");
|
250 |
+
const bodyEl = window.document.querySelector("body");
|
251 |
+
if (mode === "dark") {
|
252 |
+
bodyEl.classList.add("quarto-dark");
|
253 |
+
bodyEl.classList.remove("quarto-light");
|
254 |
+
} else {
|
255 |
+
bodyEl.classList.add("quarto-light");
|
256 |
+
bodyEl.classList.remove("quarto-dark");
|
257 |
+
}
|
258 |
+
}
|
259 |
+
const toggleBodyColorPrimary = () => {
|
260 |
+
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
261 |
+
if (bsSheetEl) {
|
262 |
+
toggleBodyColorMode(bsSheetEl);
|
263 |
+
}
|
264 |
+
}
|
265 |
+
toggleBodyColorPrimary();
|
266 |
+
const icon = "";
|
267 |
+
const anchorJS = new window.AnchorJS();
|
268 |
+
anchorJS.options = {
|
269 |
+
placement: 'right',
|
270 |
+
icon: icon
|
271 |
+
};
|
272 |
+
anchorJS.add('.anchored');
|
273 |
+
const isCodeAnnotation = (el) => {
|
274 |
+
for (const clz of el.classList) {
|
275 |
+
if (clz.startsWith('code-annotation-')) {
|
276 |
+
return true;
|
277 |
+
}
|
278 |
+
}
|
279 |
+
return false;
|
280 |
+
}
|
281 |
+
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
282 |
+
text: function(trigger) {
|
283 |
+
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
284 |
+
for (const childEl of codeEl.children) {
|
285 |
+
if (isCodeAnnotation(childEl)) {
|
286 |
+
childEl.remove();
|
287 |
+
}
|
288 |
+
}
|
289 |
+
return codeEl.innerText;
|
290 |
+
}
|
291 |
+
});
|
292 |
+
clipboard.on('success', function(e) {
|
293 |
+
// button target
|
294 |
+
const button = e.trigger;
|
295 |
+
// don't keep focus
|
296 |
+
button.blur();
|
297 |
+
// flash "checked"
|
298 |
+
button.classList.add('code-copy-button-checked');
|
299 |
+
var currentTitle = button.getAttribute("title");
|
300 |
+
button.setAttribute("title", "Copied!");
|
301 |
+
let tooltip;
|
302 |
+
if (window.bootstrap) {
|
303 |
+
button.setAttribute("data-bs-toggle", "tooltip");
|
304 |
+
button.setAttribute("data-bs-placement", "left");
|
305 |
+
button.setAttribute("data-bs-title", "Copied!");
|
306 |
+
tooltip = new bootstrap.Tooltip(button,
|
307 |
+
{ trigger: "manual",
|
308 |
+
customClass: "code-copy-button-tooltip",
|
309 |
+
offset: [0, -8]});
|
310 |
+
tooltip.show();
|
311 |
+
}
|
312 |
+
setTimeout(function() {
|
313 |
+
if (tooltip) {
|
314 |
+
tooltip.hide();
|
315 |
+
button.removeAttribute("data-bs-title");
|
316 |
+
button.removeAttribute("data-bs-toggle");
|
317 |
+
button.removeAttribute("data-bs-placement");
|
318 |
+
}
|
319 |
+
button.setAttribute("title", currentTitle);
|
320 |
+
button.classList.remove('code-copy-button-checked');
|
321 |
+
}, 1000);
|
322 |
+
// clear code selection
|
323 |
+
e.clearSelection();
|
324 |
+
});
|
325 |
+
function tippyHover(el, contentFn) {
|
326 |
+
const config = {
|
327 |
+
allowHTML: true,
|
328 |
+
content: contentFn,
|
329 |
+
maxWidth: 500,
|
330 |
+
delay: 100,
|
331 |
+
arrow: false,
|
332 |
+
appendTo: function(el) {
|
333 |
+
return el.parentElement;
|
334 |
+
},
|
335 |
+
interactive: true,
|
336 |
+
interactiveBorder: 10,
|
337 |
+
theme: 'quarto',
|
338 |
+
placement: 'bottom-start'
|
339 |
+
};
|
340 |
+
window.tippy(el, config);
|
341 |
+
}
|
342 |
+
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
343 |
+
for (var i=0; i<noterefs.length; i++) {
|
344 |
+
const ref = noterefs[i];
|
345 |
+
tippyHover(ref, function() {
|
346 |
+
// use id or data attribute instead here
|
347 |
+
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
348 |
+
try { href = new URL(href).hash; } catch {}
|
349 |
+
const id = href.replace(/^#\/?/, "");
|
350 |
+
const note = window.document.getElementById(id);
|
351 |
+
return note.innerHTML;
|
352 |
+
});
|
353 |
+
}
|
354 |
+
let selectedAnnoteEl;
|
355 |
+
const selectorForAnnotation = ( cell, annotation) => {
|
356 |
+
let cellAttr = 'data-code-cell="' + cell + '"';
|
357 |
+
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
358 |
+
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
359 |
+
return selector;
|
360 |
+
}
|
361 |
+
const selectCodeLines = (annoteEl) => {
|
362 |
+
const doc = window.document;
|
363 |
+
const targetCell = annoteEl.getAttribute("data-target-cell");
|
364 |
+
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
365 |
+
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
366 |
+
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
367 |
+
const lineIds = lines.map((line) => {
|
368 |
+
return targetCell + "-" + line;
|
369 |
+
})
|
370 |
+
let top = null;
|
371 |
+
let height = null;
|
372 |
+
let parent = null;
|
373 |
+
if (lineIds.length > 0) {
|
374 |
+
//compute the position of the single el (top and bottom and make a div)
|
375 |
+
const el = window.document.getElementById(lineIds[0]);
|
376 |
+
top = el.offsetTop;
|
377 |
+
height = el.offsetHeight;
|
378 |
+
parent = el.parentElement.parentElement;
|
379 |
+
if (lineIds.length > 1) {
|
380 |
+
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
381 |
+
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
382 |
+
height = bottom - top;
|
383 |
+
}
|
384 |
+
if (top !== null && height !== null && parent !== null) {
|
385 |
+
// cook up a div (if necessary) and position it
|
386 |
+
let div = window.document.getElementById("code-annotation-line-highlight");
|
387 |
+
if (div === null) {
|
388 |
+
div = window.document.createElement("div");
|
389 |
+
div.setAttribute("id", "code-annotation-line-highlight");
|
390 |
+
div.style.position = 'absolute';
|
391 |
+
parent.appendChild(div);
|
392 |
+
}
|
393 |
+
div.style.top = top - 2 + "px";
|
394 |
+
div.style.height = height + 4 + "px";
|
395 |
+
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
396 |
+
if (gutterDiv === null) {
|
397 |
+
gutterDiv = window.document.createElement("div");
|
398 |
+
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
399 |
+
gutterDiv.style.position = 'absolute';
|
400 |
+
const codeCell = window.document.getElementById(targetCell);
|
401 |
+
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
402 |
+
gutter.appendChild(gutterDiv);
|
403 |
+
}
|
404 |
+
gutterDiv.style.top = top - 2 + "px";
|
405 |
+
gutterDiv.style.height = height + 4 + "px";
|
406 |
+
}
|
407 |
+
selectedAnnoteEl = annoteEl;
|
408 |
+
}
|
409 |
+
};
|
410 |
+
const unselectCodeLines = () => {
|
411 |
+
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
412 |
+
elementsIds.forEach((elId) => {
|
413 |
+
const div = window.document.getElementById(elId);
|
414 |
+
if (div) {
|
415 |
+
div.remove();
|
416 |
+
}
|
417 |
+
});
|
418 |
+
selectedAnnoteEl = undefined;
|
419 |
+
};
|
420 |
+
// Attach click handler to the DT
|
421 |
+
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
422 |
+
for (const annoteDlNode of annoteDls) {
|
423 |
+
annoteDlNode.addEventListener('click', (event) => {
|
424 |
+
const clickedEl = event.target;
|
425 |
+
if (clickedEl !== selectedAnnoteEl) {
|
426 |
+
unselectCodeLines();
|
427 |
+
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
428 |
+
if (activeEl) {
|
429 |
+
activeEl.classList.remove('code-annotation-active');
|
430 |
+
}
|
431 |
+
selectCodeLines(clickedEl);
|
432 |
+
clickedEl.classList.add('code-annotation-active');
|
433 |
+
} else {
|
434 |
+
// Unselect the line
|
435 |
+
unselectCodeLines();
|
436 |
+
clickedEl.classList.remove('code-annotation-active');
|
437 |
+
}
|
438 |
+
});
|
439 |
+
}
|
440 |
+
const findCites = (el) => {
|
441 |
+
const parentEl = el.parentElement;
|
442 |
+
if (parentEl) {
|
443 |
+
const cites = parentEl.dataset.cites;
|
444 |
+
if (cites) {
|
445 |
+
return {
|
446 |
+
el,
|
447 |
+
cites: cites.split(' ')
|
448 |
+
};
|
449 |
+
} else {
|
450 |
+
return findCites(el.parentElement)
|
451 |
+
}
|
452 |
+
} else {
|
453 |
+
return undefined;
|
454 |
+
}
|
455 |
+
};
|
456 |
+
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
457 |
+
for (var i=0; i<bibliorefs.length; i++) {
|
458 |
+
const ref = bibliorefs[i];
|
459 |
+
const citeInfo = findCites(ref);
|
460 |
+
if (citeInfo) {
|
461 |
+
tippyHover(citeInfo.el, function() {
|
462 |
+
var popup = window.document.createElement('div');
|
463 |
+
citeInfo.cites.forEach(function(cite) {
|
464 |
+
var citeDiv = window.document.createElement('div');
|
465 |
+
citeDiv.classList.add('hanging-indent');
|
466 |
+
citeDiv.classList.add('csl-entry');
|
467 |
+
var biblioDiv = window.document.getElementById('ref-' + cite);
|
468 |
+
if (biblioDiv) {
|
469 |
+
citeDiv.innerHTML = biblioDiv.innerHTML;
|
470 |
+
}
|
471 |
+
popup.appendChild(citeDiv);
|
472 |
+
});
|
473 |
+
return popup.innerHTML;
|
474 |
+
});
|
475 |
+
}
|
476 |
+
}
|
477 |
+
});
|
478 |
+
</script>
|
479 |
+
</div> <!-- /content -->
|
480 |
+
|
481 |
+
|
482 |
+
|
483 |
+
</body></html>
|
_proc/_docs/edamam_api.html
ADDED
@@ -0,0 +1,426 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
3 |
+
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<meta name="generator" content="quarto-1.3.361">
|
6 |
+
|
7 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
8 |
+
|
9 |
+
<meta name="description" content="Tinkering with the ">
|
10 |
+
|
11 |
+
<title>lv-recipe-chatbot - edamam_api</title>
|
12 |
+
<style>
|
13 |
+
code{white-space: pre-wrap;}
|
14 |
+
span.smallcaps{font-variant: small-caps;}
|
15 |
+
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
16 |
+
div.column{flex: auto; overflow-x: auto;}
|
17 |
+
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
18 |
+
ul.task-list{list-style: none;}
|
19 |
+
ul.task-list li input[type="checkbox"] {
|
20 |
+
width: 0.8em;
|
21 |
+
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
22 |
+
vertical-align: middle;
|
23 |
+
}
|
24 |
+
</style>
|
25 |
+
|
26 |
+
|
27 |
+
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
|
28 |
+
<script src="site_libs/quarto-nav/headroom.min.js"></script>
|
29 |
+
<script src="site_libs/clipboard/clipboard.min.js"></script>
|
30 |
+
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
|
31 |
+
<script src="site_libs/quarto-search/fuse.min.js"></script>
|
32 |
+
<script src="site_libs/quarto-search/quarto-search.js"></script>
|
33 |
+
<meta name="quarto:offset" content="./">
|
34 |
+
<script src="site_libs/quarto-html/quarto.js"></script>
|
35 |
+
<script src="site_libs/quarto-html/popper.min.js"></script>
|
36 |
+
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
|
37 |
+
<script src="site_libs/quarto-html/anchor.min.js"></script>
|
38 |
+
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
|
39 |
+
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
40 |
+
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
|
41 |
+
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
42 |
+
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
43 |
+
<script id="quarto-search-options" type="application/json">{
|
44 |
+
"location": "navbar",
|
45 |
+
"copy-button": false,
|
46 |
+
"collapse-after": 3,
|
47 |
+
"panel-placement": "end",
|
48 |
+
"type": "overlay",
|
49 |
+
"limit": 20,
|
50 |
+
"language": {
|
51 |
+
"search-no-results-text": "No results",
|
52 |
+
"search-matching-documents-text": "matching documents",
|
53 |
+
"search-copy-link-title": "Copy link to search",
|
54 |
+
"search-hide-matches-text": "Hide additional matches",
|
55 |
+
"search-more-match-text": "more match in this document",
|
56 |
+
"search-more-matches-text": "more matches in this document",
|
57 |
+
"search-clear-button-title": "Clear",
|
58 |
+
"search-detached-cancel-button-title": "Cancel",
|
59 |
+
"search-submit-button-title": "Submit",
|
60 |
+
"search-label": "Search"
|
61 |
+
}
|
62 |
+
}</script>
|
63 |
+
|
64 |
+
|
65 |
+
<link rel="stylesheet" href="styles.css">
|
66 |
+
<meta property="og:title" content="lv-recipe-chatbot - edamam_api">
|
67 |
+
<meta property="og:description" content="Tinkering with the ">
|
68 |
+
<meta property="og:site-name" content="lv-recipe-chatbot">
|
69 |
+
<meta name="twitter:title" content="lv-recipe-chatbot - edamam_api">
|
70 |
+
<meta name="twitter:description" content="Tinkering with the ">
|
71 |
+
<meta name="twitter:card" content="summary">
|
72 |
+
</head>
|
73 |
+
|
74 |
+
<body class="nav-sidebar floating nav-fixed">
|
75 |
+
|
76 |
+
<div id="quarto-search-results"></div>
|
77 |
+
<header id="quarto-header" class="headroom fixed-top">
|
78 |
+
<nav class="navbar navbar-expand-lg navbar-dark ">
|
79 |
+
<div class="navbar-container container-fluid">
|
80 |
+
<div class="navbar-brand-container">
|
81 |
+
<a class="navbar-brand" href="./index.html">
|
82 |
+
<span class="navbar-title">lv-recipe-chatbot</span>
|
83 |
+
</a>
|
84 |
+
</div>
|
85 |
+
<div class="quarto-navbar-tools ms-auto">
|
86 |
+
</div>
|
87 |
+
<div id="quarto-search" class="" title="Search"></div>
|
88 |
+
</div> <!-- /container-fluid -->
|
89 |
+
</nav>
|
90 |
+
<nav class="quarto-secondary-nav">
|
91 |
+
<div class="container-fluid d-flex">
|
92 |
+
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
93 |
+
<i class="bi bi-layout-text-sidebar-reverse"></i>
|
94 |
+
</button>
|
95 |
+
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./edamam_api.html">edamam_api</a></li></ol></nav>
|
96 |
+
<a class="flex-grow-1" role="button" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
97 |
+
</a>
|
98 |
+
</div>
|
99 |
+
</nav>
|
100 |
+
</header>
|
101 |
+
<!-- content -->
|
102 |
+
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
103 |
+
<!-- sidebar -->
|
104 |
+
<nav id="quarto-sidebar" class="sidebar collapse collapse-horizontal sidebar-navigation floating overflow-auto">
|
105 |
+
<div class="sidebar-menu-container">
|
106 |
+
<ul class="list-unstyled mt-1">
|
107 |
+
<li class="sidebar-item">
|
108 |
+
<div class="sidebar-item-container">
|
109 |
+
<a href="./index.html" class="sidebar-item-text sidebar-link">
|
110 |
+
<span class="menu-text">lv-recipe-chatbot</span></a>
|
111 |
+
</div>
|
112 |
+
</li>
|
113 |
+
<li class="sidebar-item">
|
114 |
+
<div class="sidebar-item-container">
|
115 |
+
<a href="./engineer_prompt.html" class="sidebar-item-text sidebar-link">
|
116 |
+
<span class="menu-text">engineer_prompt</span></a>
|
117 |
+
</div>
|
118 |
+
</li>
|
119 |
+
<li class="sidebar-item">
|
120 |
+
<div class="sidebar-item-container">
|
121 |
+
<a href="./app.html" class="sidebar-item-text sidebar-link">
|
122 |
+
<span class="menu-text">app</span></a>
|
123 |
+
</div>
|
124 |
+
</li>
|
125 |
+
<li class="sidebar-item">
|
126 |
+
<div class="sidebar-item-container">
|
127 |
+
<a href="./lchain_tool.html" class="sidebar-item-text sidebar-link">
|
128 |
+
<span class="menu-text">lchain_tool</span></a>
|
129 |
+
</div>
|
130 |
+
</li>
|
131 |
+
<li class="sidebar-item">
|
132 |
+
<div class="sidebar-item-container">
|
133 |
+
<a href="./edamam_api.html" class="sidebar-item-text sidebar-link active">
|
134 |
+
<span class="menu-text">edamam_api</span></a>
|
135 |
+
</div>
|
136 |
+
</li>
|
137 |
+
</ul>
|
138 |
+
</div>
|
139 |
+
</nav>
|
140 |
+
<div id="quarto-sidebar-glass" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass"></div>
|
141 |
+
<!-- margin-sidebar -->
|
142 |
+
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
143 |
+
<nav id="TOC" role="doc-toc" class="toc-active">
|
144 |
+
<h2 id="toc-title">On this page</h2>
|
145 |
+
|
146 |
+
<ul>
|
147 |
+
<li><a href="#foo" id="toc-foo" class="nav-link active" data-scroll-target="#foo">foo</a></li>
|
148 |
+
</ul>
|
149 |
+
<div class="toc-actions"><div><i class="bi bi-github"></i></div><div class="action-links"><p><a href="https://github.com/animalequality/lv-recipe-chatbot/issues/new" class="toc-action">Report an issue</a></p></div></div></nav>
|
150 |
+
</div>
|
151 |
+
<!-- main -->
|
152 |
+
<main class="content" id="quarto-document-content">
|
153 |
+
|
154 |
+
<header id="title-block-header" class="quarto-title-block default">
|
155 |
+
<div class="quarto-title">
|
156 |
+
<h1 class="title">edamam_api</h1>
|
157 |
+
</div>
|
158 |
+
|
159 |
+
<div>
|
160 |
+
<div class="description">
|
161 |
+
Tinkering with the <a href="Edamam API"></a>
|
162 |
+
</div>
|
163 |
+
</div>
|
164 |
+
|
165 |
+
|
166 |
+
<div class="quarto-title-meta">
|
167 |
+
|
168 |
+
|
169 |
+
|
170 |
+
|
171 |
+
</div>
|
172 |
+
|
173 |
+
|
174 |
+
</header>
|
175 |
+
|
176 |
+
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
177 |
+
<hr>
|
178 |
+
<p><a href="https://github.com/animalequality/lv-recipe-chatbot/blob/main/lv_recipe_chatbot/edamam_api.py#L7" target="_blank" style="float:right; font-size:smaller">source</a></p>
|
179 |
+
<section id="foo" class="level3">
|
180 |
+
<h3 class="anchored" data-anchor-id="foo">foo</h3>
|
181 |
+
<blockquote class="blockquote">
|
182 |
+
<pre><code> foo ()</code></pre>
|
183 |
+
</blockquote>
|
184 |
+
|
185 |
+
|
186 |
+
</section>
|
187 |
+
|
188 |
+
</main> <!-- /main -->
|
189 |
+
<script id="quarto-html-after-body" type="application/javascript">
|
190 |
+
window.document.addEventListener("DOMContentLoaded", function (event) {
|
191 |
+
const toggleBodyColorMode = (bsSheetEl) => {
|
192 |
+
const mode = bsSheetEl.getAttribute("data-mode");
|
193 |
+
const bodyEl = window.document.querySelector("body");
|
194 |
+
if (mode === "dark") {
|
195 |
+
bodyEl.classList.add("quarto-dark");
|
196 |
+
bodyEl.classList.remove("quarto-light");
|
197 |
+
} else {
|
198 |
+
bodyEl.classList.add("quarto-light");
|
199 |
+
bodyEl.classList.remove("quarto-dark");
|
200 |
+
}
|
201 |
+
}
|
202 |
+
const toggleBodyColorPrimary = () => {
|
203 |
+
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
204 |
+
if (bsSheetEl) {
|
205 |
+
toggleBodyColorMode(bsSheetEl);
|
206 |
+
}
|
207 |
+
}
|
208 |
+
toggleBodyColorPrimary();
|
209 |
+
const icon = "";
|
210 |
+
const anchorJS = new window.AnchorJS();
|
211 |
+
anchorJS.options = {
|
212 |
+
placement: 'right',
|
213 |
+
icon: icon
|
214 |
+
};
|
215 |
+
anchorJS.add('.anchored');
|
216 |
+
const isCodeAnnotation = (el) => {
|
217 |
+
for (const clz of el.classList) {
|
218 |
+
if (clz.startsWith('code-annotation-')) {
|
219 |
+
return true;
|
220 |
+
}
|
221 |
+
}
|
222 |
+
return false;
|
223 |
+
}
|
224 |
+
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
225 |
+
text: function(trigger) {
|
226 |
+
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
227 |
+
for (const childEl of codeEl.children) {
|
228 |
+
if (isCodeAnnotation(childEl)) {
|
229 |
+
childEl.remove();
|
230 |
+
}
|
231 |
+
}
|
232 |
+
return codeEl.innerText;
|
233 |
+
}
|
234 |
+
});
|
235 |
+
clipboard.on('success', function(e) {
|
236 |
+
// button target
|
237 |
+
const button = e.trigger;
|
238 |
+
// don't keep focus
|
239 |
+
button.blur();
|
240 |
+
// flash "checked"
|
241 |
+
button.classList.add('code-copy-button-checked');
|
242 |
+
var currentTitle = button.getAttribute("title");
|
243 |
+
button.setAttribute("title", "Copied!");
|
244 |
+
let tooltip;
|
245 |
+
if (window.bootstrap) {
|
246 |
+
button.setAttribute("data-bs-toggle", "tooltip");
|
247 |
+
button.setAttribute("data-bs-placement", "left");
|
248 |
+
button.setAttribute("data-bs-title", "Copied!");
|
249 |
+
tooltip = new bootstrap.Tooltip(button,
|
250 |
+
{ trigger: "manual",
|
251 |
+
customClass: "code-copy-button-tooltip",
|
252 |
+
offset: [0, -8]});
|
253 |
+
tooltip.show();
|
254 |
+
}
|
255 |
+
setTimeout(function() {
|
256 |
+
if (tooltip) {
|
257 |
+
tooltip.hide();
|
258 |
+
button.removeAttribute("data-bs-title");
|
259 |
+
button.removeAttribute("data-bs-toggle");
|
260 |
+
button.removeAttribute("data-bs-placement");
|
261 |
+
}
|
262 |
+
button.setAttribute("title", currentTitle);
|
263 |
+
button.classList.remove('code-copy-button-checked');
|
264 |
+
}, 1000);
|
265 |
+
// clear code selection
|
266 |
+
e.clearSelection();
|
267 |
+
});
|
268 |
+
function tippyHover(el, contentFn) {
|
269 |
+
const config = {
|
270 |
+
allowHTML: true,
|
271 |
+
content: contentFn,
|
272 |
+
maxWidth: 500,
|
273 |
+
delay: 100,
|
274 |
+
arrow: false,
|
275 |
+
appendTo: function(el) {
|
276 |
+
return el.parentElement;
|
277 |
+
},
|
278 |
+
interactive: true,
|
279 |
+
interactiveBorder: 10,
|
280 |
+
theme: 'quarto',
|
281 |
+
placement: 'bottom-start'
|
282 |
+
};
|
283 |
+
window.tippy(el, config);
|
284 |
+
}
|
285 |
+
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
286 |
+
for (var i=0; i<noterefs.length; i++) {
|
287 |
+
const ref = noterefs[i];
|
288 |
+
tippyHover(ref, function() {
|
289 |
+
// use id or data attribute instead here
|
290 |
+
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
291 |
+
try { href = new URL(href).hash; } catch {}
|
292 |
+
const id = href.replace(/^#\/?/, "");
|
293 |
+
const note = window.document.getElementById(id);
|
294 |
+
return note.innerHTML;
|
295 |
+
});
|
296 |
+
}
|
297 |
+
let selectedAnnoteEl;
|
298 |
+
const selectorForAnnotation = ( cell, annotation) => {
|
299 |
+
let cellAttr = 'data-code-cell="' + cell + '"';
|
300 |
+
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
301 |
+
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
302 |
+
return selector;
|
303 |
+
}
|
304 |
+
const selectCodeLines = (annoteEl) => {
|
305 |
+
const doc = window.document;
|
306 |
+
const targetCell = annoteEl.getAttribute("data-target-cell");
|
307 |
+
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
308 |
+
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
309 |
+
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
310 |
+
const lineIds = lines.map((line) => {
|
311 |
+
return targetCell + "-" + line;
|
312 |
+
})
|
313 |
+
let top = null;
|
314 |
+
let height = null;
|
315 |
+
let parent = null;
|
316 |
+
if (lineIds.length > 0) {
|
317 |
+
//compute the position of the single el (top and bottom and make a div)
|
318 |
+
const el = window.document.getElementById(lineIds[0]);
|
319 |
+
top = el.offsetTop;
|
320 |
+
height = el.offsetHeight;
|
321 |
+
parent = el.parentElement.parentElement;
|
322 |
+
if (lineIds.length > 1) {
|
323 |
+
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
324 |
+
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
325 |
+
height = bottom - top;
|
326 |
+
}
|
327 |
+
if (top !== null && height !== null && parent !== null) {
|
328 |
+
// cook up a div (if necessary) and position it
|
329 |
+
let div = window.document.getElementById("code-annotation-line-highlight");
|
330 |
+
if (div === null) {
|
331 |
+
div = window.document.createElement("div");
|
332 |
+
div.setAttribute("id", "code-annotation-line-highlight");
|
333 |
+
div.style.position = 'absolute';
|
334 |
+
parent.appendChild(div);
|
335 |
+
}
|
336 |
+
div.style.top = top - 2 + "px";
|
337 |
+
div.style.height = height + 4 + "px";
|
338 |
+
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
339 |
+
if (gutterDiv === null) {
|
340 |
+
gutterDiv = window.document.createElement("div");
|
341 |
+
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
342 |
+
gutterDiv.style.position = 'absolute';
|
343 |
+
const codeCell = window.document.getElementById(targetCell);
|
344 |
+
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
345 |
+
gutter.appendChild(gutterDiv);
|
346 |
+
}
|
347 |
+
gutterDiv.style.top = top - 2 + "px";
|
348 |
+
gutterDiv.style.height = height + 4 + "px";
|
349 |
+
}
|
350 |
+
selectedAnnoteEl = annoteEl;
|
351 |
+
}
|
352 |
+
};
|
353 |
+
const unselectCodeLines = () => {
|
354 |
+
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
355 |
+
elementsIds.forEach((elId) => {
|
356 |
+
const div = window.document.getElementById(elId);
|
357 |
+
if (div) {
|
358 |
+
div.remove();
|
359 |
+
}
|
360 |
+
});
|
361 |
+
selectedAnnoteEl = undefined;
|
362 |
+
};
|
363 |
+
// Attach click handler to the DT
|
364 |
+
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
365 |
+
for (const annoteDlNode of annoteDls) {
|
366 |
+
annoteDlNode.addEventListener('click', (event) => {
|
367 |
+
const clickedEl = event.target;
|
368 |
+
if (clickedEl !== selectedAnnoteEl) {
|
369 |
+
unselectCodeLines();
|
370 |
+
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
371 |
+
if (activeEl) {
|
372 |
+
activeEl.classList.remove('code-annotation-active');
|
373 |
+
}
|
374 |
+
selectCodeLines(clickedEl);
|
375 |
+
clickedEl.classList.add('code-annotation-active');
|
376 |
+
} else {
|
377 |
+
// Unselect the line
|
378 |
+
unselectCodeLines();
|
379 |
+
clickedEl.classList.remove('code-annotation-active');
|
380 |
+
}
|
381 |
+
});
|
382 |
+
}
|
383 |
+
const findCites = (el) => {
|
384 |
+
const parentEl = el.parentElement;
|
385 |
+
if (parentEl) {
|
386 |
+
const cites = parentEl.dataset.cites;
|
387 |
+
if (cites) {
|
388 |
+
return {
|
389 |
+
el,
|
390 |
+
cites: cites.split(' ')
|
391 |
+
};
|
392 |
+
} else {
|
393 |
+
return findCites(el.parentElement)
|
394 |
+
}
|
395 |
+
} else {
|
396 |
+
return undefined;
|
397 |
+
}
|
398 |
+
};
|
399 |
+
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
400 |
+
for (var i=0; i<bibliorefs.length; i++) {
|
401 |
+
const ref = bibliorefs[i];
|
402 |
+
const citeInfo = findCites(ref);
|
403 |
+
if (citeInfo) {
|
404 |
+
tippyHover(citeInfo.el, function() {
|
405 |
+
var popup = window.document.createElement('div');
|
406 |
+
citeInfo.cites.forEach(function(cite) {
|
407 |
+
var citeDiv = window.document.createElement('div');
|
408 |
+
citeDiv.classList.add('hanging-indent');
|
409 |
+
citeDiv.classList.add('csl-entry');
|
410 |
+
var biblioDiv = window.document.getElementById('ref-' + cite);
|
411 |
+
if (biblioDiv) {
|
412 |
+
citeDiv.innerHTML = biblioDiv.innerHTML;
|
413 |
+
}
|
414 |
+
popup.appendChild(citeDiv);
|
415 |
+
});
|
416 |
+
return popup.innerHTML;
|
417 |
+
});
|
418 |
+
}
|
419 |
+
}
|
420 |
+
});
|
421 |
+
</script>
|
422 |
+
</div> <!-- /content -->
|
423 |
+
|
424 |
+
|
425 |
+
|
426 |
+
</body></html>
|
_proc/_docs/engineer_prompt.html
ADDED
@@ -0,0 +1,578 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
3 |
+
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<meta name="generator" content="quarto-1.3.361">
|
6 |
+
|
7 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
8 |
+
|
9 |
+
<meta name="description" content="Engineering prompts">
|
10 |
+
|
11 |
+
<title>lv-recipe-chatbot - engineer_prompt</title>
|
12 |
+
<style>
|
13 |
+
code{white-space: pre-wrap;}
|
14 |
+
span.smallcaps{font-variant: small-caps;}
|
15 |
+
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
16 |
+
div.column{flex: auto; overflow-x: auto;}
|
17 |
+
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
18 |
+
ul.task-list{list-style: none;}
|
19 |
+
ul.task-list li input[type="checkbox"] {
|
20 |
+
width: 0.8em;
|
21 |
+
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
22 |
+
vertical-align: middle;
|
23 |
+
}
|
24 |
+
/* CSS for syntax highlighting */
|
25 |
+
pre > code.sourceCode { white-space: pre; position: relative; }
|
26 |
+
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
27 |
+
pre > code.sourceCode > span:empty { height: 1.2em; }
|
28 |
+
.sourceCode { overflow: visible; }
|
29 |
+
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
30 |
+
div.sourceCode { margin: 1em 0; }
|
31 |
+
pre.sourceCode { margin: 0; }
|
32 |
+
@media screen {
|
33 |
+
div.sourceCode { overflow: auto; }
|
34 |
+
}
|
35 |
+
@media print {
|
36 |
+
pre > code.sourceCode { white-space: pre-wrap; }
|
37 |
+
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
38 |
+
}
|
39 |
+
pre.numberSource code
|
40 |
+
{ counter-reset: source-line 0; }
|
41 |
+
pre.numberSource code > span
|
42 |
+
{ position: relative; left: -4em; counter-increment: source-line; }
|
43 |
+
pre.numberSource code > span > a:first-child::before
|
44 |
+
{ content: counter(source-line);
|
45 |
+
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
46 |
+
border: none; display: inline-block;
|
47 |
+
-webkit-touch-callout: none; -webkit-user-select: none;
|
48 |
+
-khtml-user-select: none; -moz-user-select: none;
|
49 |
+
-ms-user-select: none; user-select: none;
|
50 |
+
padding: 0 4px; width: 4em;
|
51 |
+
}
|
52 |
+
pre.numberSource { margin-left: 3em; padding-left: 4px; }
|
53 |
+
div.sourceCode
|
54 |
+
{ }
|
55 |
+
@media screen {
|
56 |
+
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
57 |
+
}
|
58 |
+
</style>
|
59 |
+
|
60 |
+
|
61 |
+
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
|
62 |
+
<script src="site_libs/quarto-nav/headroom.min.js"></script>
|
63 |
+
<script src="site_libs/clipboard/clipboard.min.js"></script>
|
64 |
+
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
|
65 |
+
<script src="site_libs/quarto-search/fuse.min.js"></script>
|
66 |
+
<script src="site_libs/quarto-search/quarto-search.js"></script>
|
67 |
+
<meta name="quarto:offset" content="./">
|
68 |
+
<script src="site_libs/quarto-html/quarto.js"></script>
|
69 |
+
<script src="site_libs/quarto-html/popper.min.js"></script>
|
70 |
+
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
|
71 |
+
<script src="site_libs/quarto-html/anchor.min.js"></script>
|
72 |
+
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
|
73 |
+
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
74 |
+
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
|
75 |
+
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
76 |
+
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
77 |
+
<script id="quarto-search-options" type="application/json">{
|
78 |
+
"location": "navbar",
|
79 |
+
"copy-button": false,
|
80 |
+
"collapse-after": 3,
|
81 |
+
"panel-placement": "end",
|
82 |
+
"type": "overlay",
|
83 |
+
"limit": 20,
|
84 |
+
"language": {
|
85 |
+
"search-no-results-text": "No results",
|
86 |
+
"search-matching-documents-text": "matching documents",
|
87 |
+
"search-copy-link-title": "Copy link to search",
|
88 |
+
"search-hide-matches-text": "Hide additional matches",
|
89 |
+
"search-more-match-text": "more match in this document",
|
90 |
+
"search-more-matches-text": "more matches in this document",
|
91 |
+
"search-clear-button-title": "Clear",
|
92 |
+
"search-detached-cancel-button-title": "Cancel",
|
93 |
+
"search-submit-button-title": "Submit",
|
94 |
+
"search-label": "Search"
|
95 |
+
}
|
96 |
+
}</script>
|
97 |
+
|
98 |
+
|
99 |
+
<link rel="stylesheet" href="styles.css">
|
100 |
+
<meta property="og:title" content="lv-recipe-chatbot - engineer_prompt">
|
101 |
+
<meta property="og:description" content="Engineering prompts">
|
102 |
+
<meta property="og:site-name" content="lv-recipe-chatbot">
|
103 |
+
<meta name="twitter:title" content="lv-recipe-chatbot - engineer_prompt">
|
104 |
+
<meta name="twitter:description" content="Engineering prompts">
|
105 |
+
<meta name="twitter:card" content="summary">
|
106 |
+
</head>
|
107 |
+
|
108 |
+
<body class="nav-sidebar floating nav-fixed">
|
109 |
+
|
110 |
+
<div id="quarto-search-results"></div>
|
111 |
+
<header id="quarto-header" class="headroom fixed-top">
|
112 |
+
<nav class="navbar navbar-expand-lg navbar-dark ">
|
113 |
+
<div class="navbar-container container-fluid">
|
114 |
+
<div class="navbar-brand-container">
|
115 |
+
<a class="navbar-brand" href="./index.html">
|
116 |
+
<span class="navbar-title">lv-recipe-chatbot</span>
|
117 |
+
</a>
|
118 |
+
</div>
|
119 |
+
<div class="quarto-navbar-tools ms-auto">
|
120 |
+
</div>
|
121 |
+
<div id="quarto-search" class="" title="Search"></div>
|
122 |
+
</div> <!-- /container-fluid -->
|
123 |
+
</nav>
|
124 |
+
<nav class="quarto-secondary-nav">
|
125 |
+
<div class="container-fluid d-flex">
|
126 |
+
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
127 |
+
<i class="bi bi-layout-text-sidebar-reverse"></i>
|
128 |
+
</button>
|
129 |
+
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./engineer_prompt.html">engineer_prompt</a></li></ol></nav>
|
130 |
+
<a class="flex-grow-1" role="button" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
131 |
+
</a>
|
132 |
+
</div>
|
133 |
+
</nav>
|
134 |
+
</header>
|
135 |
+
<!-- content -->
|
136 |
+
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
137 |
+
<!-- sidebar -->
|
138 |
+
<nav id="quarto-sidebar" class="sidebar collapse collapse-horizontal sidebar-navigation floating overflow-auto">
|
139 |
+
<div class="sidebar-menu-container">
|
140 |
+
<ul class="list-unstyled mt-1">
|
141 |
+
<li class="sidebar-item">
|
142 |
+
<div class="sidebar-item-container">
|
143 |
+
<a href="./index.html" class="sidebar-item-text sidebar-link">
|
144 |
+
<span class="menu-text">lv-recipe-chatbot</span></a>
|
145 |
+
</div>
|
146 |
+
</li>
|
147 |
+
<li class="sidebar-item">
|
148 |
+
<div class="sidebar-item-container">
|
149 |
+
<a href="./engineer_prompt.html" class="sidebar-item-text sidebar-link active">
|
150 |
+
<span class="menu-text">engineer_prompt</span></a>
|
151 |
+
</div>
|
152 |
+
</li>
|
153 |
+
<li class="sidebar-item">
|
154 |
+
<div class="sidebar-item-container">
|
155 |
+
<a href="./app.html" class="sidebar-item-text sidebar-link">
|
156 |
+
<span class="menu-text">app</span></a>
|
157 |
+
</div>
|
158 |
+
</li>
|
159 |
+
<li class="sidebar-item">
|
160 |
+
<div class="sidebar-item-container">
|
161 |
+
<a href="./lchain_tool.html" class="sidebar-item-text sidebar-link">
|
162 |
+
<span class="menu-text">lchain_tool</span></a>
|
163 |
+
</div>
|
164 |
+
</li>
|
165 |
+
<li class="sidebar-item">
|
166 |
+
<div class="sidebar-item-container">
|
167 |
+
<a href="./edamam_api.html" class="sidebar-item-text sidebar-link">
|
168 |
+
<span class="menu-text">edamam_api</span></a>
|
169 |
+
</div>
|
170 |
+
</li>
|
171 |
+
</ul>
|
172 |
+
</div>
|
173 |
+
</nav>
|
174 |
+
<div id="quarto-sidebar-glass" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass"></div>
|
175 |
+
<!-- margin-sidebar -->
|
176 |
+
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
177 |
+
|
178 |
+
</div>
|
179 |
+
<!-- main -->
|
180 |
+
<main class="content" id="quarto-document-content">
|
181 |
+
|
182 |
+
<header id="title-block-header" class="quarto-title-block default">
|
183 |
+
<div class="quarto-title">
|
184 |
+
<h1 class="title">engineer_prompt</h1>
|
185 |
+
</div>
|
186 |
+
|
187 |
+
<div>
|
188 |
+
<div class="description">
|
189 |
+
Engineering prompts
|
190 |
+
</div>
|
191 |
+
</div>
|
192 |
+
|
193 |
+
|
194 |
+
<div class="quarto-title-meta">
|
195 |
+
|
196 |
+
|
197 |
+
|
198 |
+
|
199 |
+
</div>
|
200 |
+
|
201 |
+
|
202 |
+
</header>
|
203 |
+
|
204 |
+
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
205 |
+
<p>Setup env</p>
|
206 |
+
<div class="cell">
|
207 |
+
<div class="sourceCode cell-code" id="cb1"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="im">from</span> dotenv <span class="im">import</span> load_dotenv</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
208 |
+
</div>
|
209 |
+
<div class="cell">
|
210 |
+
<div class="sourceCode cell-code" id="cb2"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>load_dotenv()</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
211 |
+
<div class="cell-output cell-output-display">
|
212 |
+
<pre><code>True</code></pre>
|
213 |
+
</div>
|
214 |
+
</div>
|
215 |
+
<p>Evaluate chat backend</p>
|
216 |
+
<div class="cell">
|
217 |
+
<div class="sourceCode cell-code" id="cb4"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>chat <span class="op">=</span> PromptLayerChatOpenAI(temperature<span class="op">=</span><span class="dv">1</span>, pl_tags<span class="op">=</span>[<span class="st">"langchain"</span>], return_pl_id<span class="op">=</span><span class="va">True</span>)</span>
|
218 |
+
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a>memory <span class="op">=</span> ConversationBufferMemory(return_messages<span class="op">=</span><span class="va">True</span>)</span>
|
219 |
+
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a>chat_msgs <span class="op">=</span> init_prompt.format_prompt(</span>
|
220 |
+
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a> ingredients<span class="op">=</span><span class="st">"tofu, pickles, olives, tomatoes, lettuce, bell peppers, carrots, bread"</span>,</span>
|
221 |
+
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a> allergies<span class="op">=</span><span class="st">""</span>,</span>
|
222 |
+
<span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a> recipe_freeform_input<span class="op">=</span><span class="st">"The preparation time should be less than 30 minutes. I really love Thai food!"</span>,</span>
|
223 |
+
<span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a>)</span>
|
224 |
+
<span id="cb4-8"><a href="#cb4-8" aria-hidden="true" tabindex="-1"></a></span>
|
225 |
+
<span id="cb4-9"><a href="#cb4-9" aria-hidden="true" tabindex="-1"></a>chat_msgs <span class="op">=</span> chat_msgs.to_messages()</span>
|
226 |
+
<span id="cb4-10"><a href="#cb4-10" aria-hidden="true" tabindex="-1"></a>results <span class="op">=</span> chat.generate([chat_msgs])</span>
|
227 |
+
<span id="cb4-11"><a href="#cb4-11" aria-hidden="true" tabindex="-1"></a>chat_msgs.extend(</span>
|
228 |
+
<span id="cb4-12"><a href="#cb4-12" aria-hidden="true" tabindex="-1"></a> [</span>
|
229 |
+
<span id="cb4-13"><a href="#cb4-13" aria-hidden="true" tabindex="-1"></a> results.generations[<span class="dv">0</span>][<span class="dv">0</span>].message,</span>
|
230 |
+
<span id="cb4-14"><a href="#cb4-14" aria-hidden="true" tabindex="-1"></a> MessagesPlaceholder(variable_name<span class="op">=</span><span class="st">"history"</span>),</span>
|
231 |
+
<span id="cb4-15"><a href="#cb4-15" aria-hidden="true" tabindex="-1"></a> HumanMessagePromptTemplate.from_template(<span class="st">"</span><span class="sc">{input}</span><span class="st">"</span>),</span>
|
232 |
+
<span id="cb4-16"><a href="#cb4-16" aria-hidden="true" tabindex="-1"></a> ]</span>
|
233 |
+
<span id="cb4-17"><a href="#cb4-17" aria-hidden="true" tabindex="-1"></a>)</span>
|
234 |
+
<span id="cb4-18"><a href="#cb4-18" aria-hidden="true" tabindex="-1"></a>open_prompt <span class="op">=</span> ChatPromptTemplate.from_messages(chat_msgs)</span>
|
235 |
+
<span id="cb4-19"><a href="#cb4-19" aria-hidden="true" tabindex="-1"></a>conversation <span class="op">=</span> ConversationChain(</span>
|
236 |
+
<span id="cb4-20"><a href="#cb4-20" aria-hidden="true" tabindex="-1"></a> llm<span class="op">=</span>chat, verbose<span class="op">=</span><span class="va">True</span>, memory<span class="op">=</span>memory, prompt<span class="op">=</span>open_prompt</span>
|
237 |
+
<span id="cb4-21"><a href="#cb4-21" aria-hidden="true" tabindex="-1"></a>)</span>
|
238 |
+
<span id="cb4-22"><a href="#cb4-22" aria-hidden="true" tabindex="-1"></a></span>
|
239 |
+
<span id="cb4-23"><a href="#cb4-23" aria-hidden="true" tabindex="-1"></a>result <span class="op">=</span> conversation.predict(<span class="bu">input</span><span class="op">=</span><span class="st">"Recommend a different recipe please."</span>)</span>
|
240 |
+
<span id="cb4-24"><a href="#cb4-24" aria-hidden="true" tabindex="-1"></a><span class="bu">print</span>(result)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
241 |
+
<div class="cell-output cell-output-stderr">
|
242 |
+
<pre><code>Anthropic module not found. Install with `pip install anthropic`.
|
243 |
+
WARNING: While logging your request PromptLayer had the following error: Invalid API key, please check your PromptLayer API key and try again
|
244 |
+
WARNING: While logging your request PromptLayer had the following error: Invalid API key, please check your PromptLayer API key and try again</code></pre>
|
245 |
+
</div>
|
246 |
+
<div class="cell-output cell-output-stdout">
|
247 |
+
<pre><code>
|
248 |
+
|
249 |
+
> Entering new ConversationChain chain...
|
250 |
+
Prompt after formatting:
|
251 |
+
System: The following is a conversation between a human and a friendly AI chef.
|
252 |
+
The AI is compassionate to animals and only recommends vegan recipes based on the ingredients, allergies, and other preferences the human has.
|
253 |
+
|
254 |
+
Knowledge: A vegan diet implies a plant-based diet avoiding all animal foods such as meat (including fish, shellfish and insects), dairy, eggs and honey
|
255 |
+
|
256 |
+
Let's think step by step.
|
257 |
+
If the human messages are unrelated to vegan recipes, remind them of your purpose to recommend vegan recipes.
|
258 |
+
AI: What ingredients do you wish to cook with?
|
259 |
+
Human: Ingredients: tofu, pickles, olives, tomatoes, lettuce, bell peppers, carrots, bread
|
260 |
+
AI: Do you have any allergies I should be aware of?
|
261 |
+
Human: Allergies:
|
262 |
+
AI: Do you have any preferences I should consider for the recipe such as preparation time, difficulty, or cuisine region?
|
263 |
+
Human: Give me a vegan recipe that includes at least a few of the ingredients provided (if any).
|
264 |
+
Respect the human's allergies (if any).
|
265 |
+
Follow these other preferences as closely as possible if they are inline with your purpose of recommending vegan recipes:
|
266 |
+
|
267 |
+
###
|
268 |
+
Preferences: The preparation time should be less than 30 minutes. I really love Thai food!
|
269 |
+
###
|
270 |
+
|
271 |
+
Output format:
|
272 |
+
|
273 |
+
**Vegan recipe name**
|
274 |
+
Preparation time (humanized)
|
275 |
+
|
276 |
+
Ingredients (List of ingredients with quantities):
|
277 |
+
- <quantity and unit> <ingredient>
|
278 |
+
|
279 |
+
Steps (detailed):
|
280 |
+
1.
|
281 |
+
2.
|
282 |
+
3.
|
283 |
+
...
|
284 |
+
AI: Sure! How about a vegan Thai tofu lettuce wraps recipe? It should take less than 30 minutes to prepare.
|
285 |
+
|
286 |
+
**Vegan Thai Tofu Lettuce Wraps**
|
287 |
+
Preparation time: 25 minutes
|
288 |
+
|
289 |
+
Ingredients:
|
290 |
+
- 1 package firm tofu
|
291 |
+
- 1/4 cup vegan fish sauce (you can use soy sauce as a substitute)
|
292 |
+
- 2 tablespoons maple syrup
|
293 |
+
- 1 tablespoon lime juice
|
294 |
+
- 1 teaspoon chili paste
|
295 |
+
- 1 bell pepper, sliced
|
296 |
+
- 2 carrots, julienned
|
297 |
+
- 1/4 cup sliced pickles
|
298 |
+
- 1/4 cup sliced olives
|
299 |
+
- 6 large lettuce leaves
|
300 |
+
- 1/4 cup chopped fresh cilantro
|
301 |
+
|
302 |
+
Steps:
|
303 |
+
1. Preheat a skillet over medium-high heat and add cubed tofu. Cook for about 5-7 minutes, flipping occasionally, until all the pieces are golden brown. Set aside.
|
304 |
+
2. In a mixing bowl, whisk together the fish sauce (or soy sauce), maple syrup, lime juice, and chili paste until combined.
|
305 |
+
3. In a large mixing bowl, add the bell pepper, carrots, pickles, olives, and cooked tofu. Pour the dressing over the ingredients, and toss until everything is evenly coated with the sauce.
|
306 |
+
4. Assemble the lettuce wraps by separating the lettuce leaves and spooning the tofu mixture into each one. Top with fresh cilantro and serve immediately. Enjoy your delicious vegan Thai tofu lettuce wraps!
|
307 |
+
Human: Recommend a different recipe please.
|
308 |
+
|
309 |
+
> Finished chain.
|
310 |
+
Of course! How about a Mediterranean-inspired sandwich that includes tofu, olives, and tomatoes?
|
311 |
+
|
312 |
+
**Mediterranean Tofu Sandwich**
|
313 |
+
Preparation time: 20 minutes
|
314 |
+
|
315 |
+
Ingredients:
|
316 |
+
- 1 package extra-firm tofu, drained and sliced into 1/2-inch slices
|
317 |
+
- 2 tablespoons olive oil
|
318 |
+
- 1 teaspoon dried oregano
|
319 |
+
- Salt and pepper
|
320 |
+
- 1/4 cup vegan mayo
|
321 |
+
- 1 garlic clove, minced
|
322 |
+
- 2 teaspoons lemon juice
|
323 |
+
- 1 large tomato, sliced
|
324 |
+
- 1/4 cup sliced kalamata olives
|
325 |
+
- 1/4 cup chopped lettuce
|
326 |
+
- 1/4 cup sliced pickles
|
327 |
+
- Bread of your choice (I recommend ciabatta)
|
328 |
+
|
329 |
+
Steps:
|
330 |
+
1. Preheat a skillet over medium-high heat and add the olive oil.
|
331 |
+
2. Season the tofu slices with oregano, salt, and pepper, then add them to the skillet. Cook for about 5-7 minutes on each side or until golden brown. Set aside.
|
332 |
+
3. In a small bowl, mix the vegan mayo, minced garlic, and lemon juice. Spread the mixture onto the slices of bread.
|
333 |
+
4. Layer the tomato slices, cooked tofu, olives, lettuce, and pickles onto the bread. Add salt and pepper to taste.
|
334 |
+
5. Top with the other slice of bread, slice in half, and enjoy your delicious Mediterranean tofu sandwich!</code></pre>
|
335 |
+
</div>
|
336 |
+
</div>
|
337 |
+
|
338 |
+
|
339 |
+
|
340 |
+
</main> <!-- /main -->
|
341 |
+
<script id="quarto-html-after-body" type="application/javascript">
|
342 |
+
window.document.addEventListener("DOMContentLoaded", function (event) {
|
343 |
+
const toggleBodyColorMode = (bsSheetEl) => {
|
344 |
+
const mode = bsSheetEl.getAttribute("data-mode");
|
345 |
+
const bodyEl = window.document.querySelector("body");
|
346 |
+
if (mode === "dark") {
|
347 |
+
bodyEl.classList.add("quarto-dark");
|
348 |
+
bodyEl.classList.remove("quarto-light");
|
349 |
+
} else {
|
350 |
+
bodyEl.classList.add("quarto-light");
|
351 |
+
bodyEl.classList.remove("quarto-dark");
|
352 |
+
}
|
353 |
+
}
|
354 |
+
const toggleBodyColorPrimary = () => {
|
355 |
+
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
356 |
+
if (bsSheetEl) {
|
357 |
+
toggleBodyColorMode(bsSheetEl);
|
358 |
+
}
|
359 |
+
}
|
360 |
+
toggleBodyColorPrimary();
|
361 |
+
const icon = "";
|
362 |
+
const anchorJS = new window.AnchorJS();
|
363 |
+
anchorJS.options = {
|
364 |
+
placement: 'right',
|
365 |
+
icon: icon
|
366 |
+
};
|
367 |
+
anchorJS.add('.anchored');
|
368 |
+
const isCodeAnnotation = (el) => {
|
369 |
+
for (const clz of el.classList) {
|
370 |
+
if (clz.startsWith('code-annotation-')) {
|
371 |
+
return true;
|
372 |
+
}
|
373 |
+
}
|
374 |
+
return false;
|
375 |
+
}
|
376 |
+
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
377 |
+
text: function(trigger) {
|
378 |
+
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
379 |
+
for (const childEl of codeEl.children) {
|
380 |
+
if (isCodeAnnotation(childEl)) {
|
381 |
+
childEl.remove();
|
382 |
+
}
|
383 |
+
}
|
384 |
+
return codeEl.innerText;
|
385 |
+
}
|
386 |
+
});
|
387 |
+
clipboard.on('success', function(e) {
|
388 |
+
// button target
|
389 |
+
const button = e.trigger;
|
390 |
+
// don't keep focus
|
391 |
+
button.blur();
|
392 |
+
// flash "checked"
|
393 |
+
button.classList.add('code-copy-button-checked');
|
394 |
+
var currentTitle = button.getAttribute("title");
|
395 |
+
button.setAttribute("title", "Copied!");
|
396 |
+
let tooltip;
|
397 |
+
if (window.bootstrap) {
|
398 |
+
button.setAttribute("data-bs-toggle", "tooltip");
|
399 |
+
button.setAttribute("data-bs-placement", "left");
|
400 |
+
button.setAttribute("data-bs-title", "Copied!");
|
401 |
+
tooltip = new bootstrap.Tooltip(button,
|
402 |
+
{ trigger: "manual",
|
403 |
+
customClass: "code-copy-button-tooltip",
|
404 |
+
offset: [0, -8]});
|
405 |
+
tooltip.show();
|
406 |
+
}
|
407 |
+
setTimeout(function() {
|
408 |
+
if (tooltip) {
|
409 |
+
tooltip.hide();
|
410 |
+
button.removeAttribute("data-bs-title");
|
411 |
+
button.removeAttribute("data-bs-toggle");
|
412 |
+
button.removeAttribute("data-bs-placement");
|
413 |
+
}
|
414 |
+
button.setAttribute("title", currentTitle);
|
415 |
+
button.classList.remove('code-copy-button-checked');
|
416 |
+
}, 1000);
|
417 |
+
// clear code selection
|
418 |
+
e.clearSelection();
|
419 |
+
});
|
420 |
+
function tippyHover(el, contentFn) {
|
421 |
+
const config = {
|
422 |
+
allowHTML: true,
|
423 |
+
content: contentFn,
|
424 |
+
maxWidth: 500,
|
425 |
+
delay: 100,
|
426 |
+
arrow: false,
|
427 |
+
appendTo: function(el) {
|
428 |
+
return el.parentElement;
|
429 |
+
},
|
430 |
+
interactive: true,
|
431 |
+
interactiveBorder: 10,
|
432 |
+
theme: 'quarto',
|
433 |
+
placement: 'bottom-start'
|
434 |
+
};
|
435 |
+
window.tippy(el, config);
|
436 |
+
}
|
437 |
+
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
438 |
+
for (var i=0; i<noterefs.length; i++) {
|
439 |
+
const ref = noterefs[i];
|
440 |
+
tippyHover(ref, function() {
|
441 |
+
// use id or data attribute instead here
|
442 |
+
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
443 |
+
try { href = new URL(href).hash; } catch {}
|
444 |
+
const id = href.replace(/^#\/?/, "");
|
445 |
+
const note = window.document.getElementById(id);
|
446 |
+
return note.innerHTML;
|
447 |
+
});
|
448 |
+
}
|
449 |
+
let selectedAnnoteEl;
|
450 |
+
const selectorForAnnotation = ( cell, annotation) => {
|
451 |
+
let cellAttr = 'data-code-cell="' + cell + '"';
|
452 |
+
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
453 |
+
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
454 |
+
return selector;
|
455 |
+
}
|
456 |
+
const selectCodeLines = (annoteEl) => {
|
457 |
+
const doc = window.document;
|
458 |
+
const targetCell = annoteEl.getAttribute("data-target-cell");
|
459 |
+
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
460 |
+
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
461 |
+
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
462 |
+
const lineIds = lines.map((line) => {
|
463 |
+
return targetCell + "-" + line;
|
464 |
+
})
|
465 |
+
let top = null;
|
466 |
+
let height = null;
|
467 |
+
let parent = null;
|
468 |
+
if (lineIds.length > 0) {
|
469 |
+
//compute the position of the single el (top and bottom and make a div)
|
470 |
+
const el = window.document.getElementById(lineIds[0]);
|
471 |
+
top = el.offsetTop;
|
472 |
+
height = el.offsetHeight;
|
473 |
+
parent = el.parentElement.parentElement;
|
474 |
+
if (lineIds.length > 1) {
|
475 |
+
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
476 |
+
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
477 |
+
height = bottom - top;
|
478 |
+
}
|
479 |
+
if (top !== null && height !== null && parent !== null) {
|
480 |
+
// cook up a div (if necessary) and position it
|
481 |
+
let div = window.document.getElementById("code-annotation-line-highlight");
|
482 |
+
if (div === null) {
|
483 |
+
div = window.document.createElement("div");
|
484 |
+
div.setAttribute("id", "code-annotation-line-highlight");
|
485 |
+
div.style.position = 'absolute';
|
486 |
+
parent.appendChild(div);
|
487 |
+
}
|
488 |
+
div.style.top = top - 2 + "px";
|
489 |
+
div.style.height = height + 4 + "px";
|
490 |
+
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
491 |
+
if (gutterDiv === null) {
|
492 |
+
gutterDiv = window.document.createElement("div");
|
493 |
+
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
494 |
+
gutterDiv.style.position = 'absolute';
|
495 |
+
const codeCell = window.document.getElementById(targetCell);
|
496 |
+
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
497 |
+
gutter.appendChild(gutterDiv);
|
498 |
+
}
|
499 |
+
gutterDiv.style.top = top - 2 + "px";
|
500 |
+
gutterDiv.style.height = height + 4 + "px";
|
501 |
+
}
|
502 |
+
selectedAnnoteEl = annoteEl;
|
503 |
+
}
|
504 |
+
};
|
505 |
+
const unselectCodeLines = () => {
|
506 |
+
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
507 |
+
elementsIds.forEach((elId) => {
|
508 |
+
const div = window.document.getElementById(elId);
|
509 |
+
if (div) {
|
510 |
+
div.remove();
|
511 |
+
}
|
512 |
+
});
|
513 |
+
selectedAnnoteEl = undefined;
|
514 |
+
};
|
515 |
+
// Attach click handler to the DT
|
516 |
+
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
517 |
+
for (const annoteDlNode of annoteDls) {
|
518 |
+
annoteDlNode.addEventListener('click', (event) => {
|
519 |
+
const clickedEl = event.target;
|
520 |
+
if (clickedEl !== selectedAnnoteEl) {
|
521 |
+
unselectCodeLines();
|
522 |
+
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
523 |
+
if (activeEl) {
|
524 |
+
activeEl.classList.remove('code-annotation-active');
|
525 |
+
}
|
526 |
+
selectCodeLines(clickedEl);
|
527 |
+
clickedEl.classList.add('code-annotation-active');
|
528 |
+
} else {
|
529 |
+
// Unselect the line
|
530 |
+
unselectCodeLines();
|
531 |
+
clickedEl.classList.remove('code-annotation-active');
|
532 |
+
}
|
533 |
+
});
|
534 |
+
}
|
535 |
+
const findCites = (el) => {
|
536 |
+
const parentEl = el.parentElement;
|
537 |
+
if (parentEl) {
|
538 |
+
const cites = parentEl.dataset.cites;
|
539 |
+
if (cites) {
|
540 |
+
return {
|
541 |
+
el,
|
542 |
+
cites: cites.split(' ')
|
543 |
+
};
|
544 |
+
} else {
|
545 |
+
return findCites(el.parentElement)
|
546 |
+
}
|
547 |
+
} else {
|
548 |
+
return undefined;
|
549 |
+
}
|
550 |
+
};
|
551 |
+
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
552 |
+
for (var i=0; i<bibliorefs.length; i++) {
|
553 |
+
const ref = bibliorefs[i];
|
554 |
+
const citeInfo = findCites(ref);
|
555 |
+
if (citeInfo) {
|
556 |
+
tippyHover(citeInfo.el, function() {
|
557 |
+
var popup = window.document.createElement('div');
|
558 |
+
citeInfo.cites.forEach(function(cite) {
|
559 |
+
var citeDiv = window.document.createElement('div');
|
560 |
+
citeDiv.classList.add('hanging-indent');
|
561 |
+
citeDiv.classList.add('csl-entry');
|
562 |
+
var biblioDiv = window.document.getElementById('ref-' + cite);
|
563 |
+
if (biblioDiv) {
|
564 |
+
citeDiv.innerHTML = biblioDiv.innerHTML;
|
565 |
+
}
|
566 |
+
popup.appendChild(citeDiv);
|
567 |
+
});
|
568 |
+
return popup.innerHTML;
|
569 |
+
});
|
570 |
+
}
|
571 |
+
}
|
572 |
+
});
|
573 |
+
</script>
|
574 |
+
</div> <!-- /content -->
|
575 |
+
|
576 |
+
|
577 |
+
|
578 |
+
<footer class="footer"><div class="nav-footer"><div class="nav-footer-center"><div class="toc-actions"><div><i class="bi bi-github"></i></div><div class="action-links"><p><a href="https://github.com/animalequality/lv-recipe-chatbot/issues/new" class="toc-action">Report an issue</a></p></div></div></div></div></footer></body></html>
|
_proc/_docs/index.html
ADDED
@@ -0,0 +1,526 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
3 |
+
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<meta name="generator" content="quarto-1.3.361">
|
6 |
+
|
7 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
8 |
+
|
9 |
+
<meta name="description" content="An experimental Vegan recipe chatbot">
|
10 |
+
|
11 |
+
<title>lv-recipe-chatbot</title>
|
12 |
+
<style>
|
13 |
+
code{white-space: pre-wrap;}
|
14 |
+
span.smallcaps{font-variant: small-caps;}
|
15 |
+
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
16 |
+
div.column{flex: auto; overflow-x: auto;}
|
17 |
+
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
18 |
+
ul.task-list{list-style: none;}
|
19 |
+
ul.task-list li input[type="checkbox"] {
|
20 |
+
width: 0.8em;
|
21 |
+
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
22 |
+
vertical-align: middle;
|
23 |
+
}
|
24 |
+
/* CSS for syntax highlighting */
|
25 |
+
pre > code.sourceCode { white-space: pre; position: relative; }
|
26 |
+
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
27 |
+
pre > code.sourceCode > span:empty { height: 1.2em; }
|
28 |
+
.sourceCode { overflow: visible; }
|
29 |
+
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
30 |
+
div.sourceCode { margin: 1em 0; }
|
31 |
+
pre.sourceCode { margin: 0; }
|
32 |
+
@media screen {
|
33 |
+
div.sourceCode { overflow: auto; }
|
34 |
+
}
|
35 |
+
@media print {
|
36 |
+
pre > code.sourceCode { white-space: pre-wrap; }
|
37 |
+
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
38 |
+
}
|
39 |
+
pre.numberSource code
|
40 |
+
{ counter-reset: source-line 0; }
|
41 |
+
pre.numberSource code > span
|
42 |
+
{ position: relative; left: -4em; counter-increment: source-line; }
|
43 |
+
pre.numberSource code > span > a:first-child::before
|
44 |
+
{ content: counter(source-line);
|
45 |
+
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
46 |
+
border: none; display: inline-block;
|
47 |
+
-webkit-touch-callout: none; -webkit-user-select: none;
|
48 |
+
-khtml-user-select: none; -moz-user-select: none;
|
49 |
+
-ms-user-select: none; user-select: none;
|
50 |
+
padding: 0 4px; width: 4em;
|
51 |
+
}
|
52 |
+
pre.numberSource { margin-left: 3em; padding-left: 4px; }
|
53 |
+
div.sourceCode
|
54 |
+
{ }
|
55 |
+
@media screen {
|
56 |
+
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
57 |
+
}
|
58 |
+
</style>
|
59 |
+
|
60 |
+
|
61 |
+
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
|
62 |
+
<script src="site_libs/quarto-nav/headroom.min.js"></script>
|
63 |
+
<script src="site_libs/clipboard/clipboard.min.js"></script>
|
64 |
+
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
|
65 |
+
<script src="site_libs/quarto-search/fuse.min.js"></script>
|
66 |
+
<script src="site_libs/quarto-search/quarto-search.js"></script>
|
67 |
+
<meta name="quarto:offset" content="./">
|
68 |
+
<script src="site_libs/quarto-html/quarto.js"></script>
|
69 |
+
<script src="site_libs/quarto-html/popper.min.js"></script>
|
70 |
+
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
|
71 |
+
<script src="site_libs/quarto-html/anchor.min.js"></script>
|
72 |
+
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
|
73 |
+
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
74 |
+
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
|
75 |
+
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
76 |
+
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
77 |
+
<script id="quarto-search-options" type="application/json">{
|
78 |
+
"location": "navbar",
|
79 |
+
"copy-button": false,
|
80 |
+
"collapse-after": 3,
|
81 |
+
"panel-placement": "end",
|
82 |
+
"type": "overlay",
|
83 |
+
"limit": 20,
|
84 |
+
"language": {
|
85 |
+
"search-no-results-text": "No results",
|
86 |
+
"search-matching-documents-text": "matching documents",
|
87 |
+
"search-copy-link-title": "Copy link to search",
|
88 |
+
"search-hide-matches-text": "Hide additional matches",
|
89 |
+
"search-more-match-text": "more match in this document",
|
90 |
+
"search-more-matches-text": "more matches in this document",
|
91 |
+
"search-clear-button-title": "Clear",
|
92 |
+
"search-detached-cancel-button-title": "Cancel",
|
93 |
+
"search-submit-button-title": "Submit",
|
94 |
+
"search-label": "Search"
|
95 |
+
}
|
96 |
+
}</script>
|
97 |
+
|
98 |
+
|
99 |
+
<link rel="stylesheet" href="styles.css">
|
100 |
+
<meta property="og:title" content="lv-recipe-chatbot">
|
101 |
+
<meta property="og:description" content="An experimental Vegan recipe chatbot">
|
102 |
+
<meta property="og:site-name" content="lv-recipe-chatbot">
|
103 |
+
<meta name="twitter:title" content="lv-recipe-chatbot">
|
104 |
+
<meta name="twitter:description" content="An experimental Vegan recipe chatbot">
|
105 |
+
<meta name="twitter:card" content="summary">
|
106 |
+
</head>
|
107 |
+
|
108 |
+
<body class="nav-sidebar floating nav-fixed">
|
109 |
+
|
110 |
+
<div id="quarto-search-results"></div>
|
111 |
+
<header id="quarto-header" class="headroom fixed-top">
|
112 |
+
<nav class="navbar navbar-expand-lg navbar-dark ">
|
113 |
+
<div class="navbar-container container-fluid">
|
114 |
+
<div class="navbar-brand-container">
|
115 |
+
<a class="navbar-brand" href="./index.html">
|
116 |
+
<span class="navbar-title">lv-recipe-chatbot</span>
|
117 |
+
</a>
|
118 |
+
</div>
|
119 |
+
<div class="quarto-navbar-tools ms-auto">
|
120 |
+
</div>
|
121 |
+
<div id="quarto-search" class="" title="Search"></div>
|
122 |
+
</div> <!-- /container-fluid -->
|
123 |
+
</nav>
|
124 |
+
<nav class="quarto-secondary-nav">
|
125 |
+
<div class="container-fluid d-flex">
|
126 |
+
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
127 |
+
<i class="bi bi-layout-text-sidebar-reverse"></i>
|
128 |
+
</button>
|
129 |
+
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">lv-recipe-chatbot</a></li></ol></nav>
|
130 |
+
<a class="flex-grow-1" role="button" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
131 |
+
</a>
|
132 |
+
</div>
|
133 |
+
</nav>
|
134 |
+
</header>
|
135 |
+
<!-- content -->
|
136 |
+
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
137 |
+
<!-- sidebar -->
|
138 |
+
<nav id="quarto-sidebar" class="sidebar collapse collapse-horizontal sidebar-navigation floating overflow-auto">
|
139 |
+
<div class="sidebar-menu-container">
|
140 |
+
<ul class="list-unstyled mt-1">
|
141 |
+
<li class="sidebar-item">
|
142 |
+
<div class="sidebar-item-container">
|
143 |
+
<a href="./index.html" class="sidebar-item-text sidebar-link active">
|
144 |
+
<span class="menu-text">lv-recipe-chatbot</span></a>
|
145 |
+
</div>
|
146 |
+
</li>
|
147 |
+
<li class="sidebar-item">
|
148 |
+
<div class="sidebar-item-container">
|
149 |
+
<a href="./engineer_prompt.html" class="sidebar-item-text sidebar-link">
|
150 |
+
<span class="menu-text">engineer_prompt</span></a>
|
151 |
+
</div>
|
152 |
+
</li>
|
153 |
+
<li class="sidebar-item">
|
154 |
+
<div class="sidebar-item-container">
|
155 |
+
<a href="./app.html" class="sidebar-item-text sidebar-link">
|
156 |
+
<span class="menu-text">app</span></a>
|
157 |
+
</div>
|
158 |
+
</li>
|
159 |
+
<li class="sidebar-item">
|
160 |
+
<div class="sidebar-item-container">
|
161 |
+
<a href="./lchain_tool.html" class="sidebar-item-text sidebar-link">
|
162 |
+
<span class="menu-text">lchain_tool</span></a>
|
163 |
+
</div>
|
164 |
+
</li>
|
165 |
+
<li class="sidebar-item">
|
166 |
+
<div class="sidebar-item-container">
|
167 |
+
<a href="./edamam_api.html" class="sidebar-item-text sidebar-link">
|
168 |
+
<span class="menu-text">edamam_api</span></a>
|
169 |
+
</div>
|
170 |
+
</li>
|
171 |
+
</ul>
|
172 |
+
</div>
|
173 |
+
</nav>
|
174 |
+
<div id="quarto-sidebar-glass" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar,#quarto-sidebar-glass"></div>
|
175 |
+
<!-- margin-sidebar -->
|
176 |
+
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
177 |
+
<nav id="TOC" role="doc-toc" class="toc-active">
|
178 |
+
<h2 id="toc-title">On this page</h2>
|
179 |
+
|
180 |
+
<ul>
|
181 |
+
<li><a href="#install" id="toc-install" class="nav-link active" data-scroll-target="#install">Install</a></li>
|
182 |
+
<li><a href="#how-to-use" id="toc-how-to-use" class="nav-link" data-scroll-target="#how-to-use">How to use</a></li>
|
183 |
+
<li><a href="#dev-quick-start" id="toc-dev-quick-start" class="nav-link" data-scroll-target="#dev-quick-start">Dev quick-start</a></li>
|
184 |
+
<li><a href="#dependencies" id="toc-dependencies" class="nav-link" data-scroll-target="#dependencies">Dependencies</a></li>
|
185 |
+
<li><a href="#development" id="toc-development" class="nav-link" data-scroll-target="#development">Development</a></li>
|
186 |
+
<li><a href="#useful-links" id="toc-useful-links" class="nav-link" data-scroll-target="#useful-links">Useful links</a></li>
|
187 |
+
</ul>
|
188 |
+
<div class="toc-actions"><div><i class="bi bi-github"></i></div><div class="action-links"><p><a href="https://github.com/animalequality/lv-recipe-chatbot/issues/new" class="toc-action">Report an issue</a></p></div></div></nav>
|
189 |
+
</div>
|
190 |
+
<!-- main -->
|
191 |
+
<main class="content" id="quarto-document-content">
|
192 |
+
|
193 |
+
<header id="title-block-header" class="quarto-title-block default">
|
194 |
+
<div class="quarto-title">
|
195 |
+
<h1 class="title">lv-recipe-chatbot</h1>
|
196 |
+
</div>
|
197 |
+
|
198 |
+
<div>
|
199 |
+
<div class="description">
|
200 |
+
An experimental Vegan recipe chatbot
|
201 |
+
</div>
|
202 |
+
</div>
|
203 |
+
|
204 |
+
|
205 |
+
<div class="quarto-title-meta">
|
206 |
+
|
207 |
+
|
208 |
+
|
209 |
+
|
210 |
+
</div>
|
211 |
+
|
212 |
+
|
213 |
+
</header>
|
214 |
+
|
215 |
+
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
216 |
+
<p>This file will become your README and also the index of your documentation.</p>
|
217 |
+
<section id="install" class="level2">
|
218 |
+
<h2 class="anchored" data-anchor-id="install">Install</h2>
|
219 |
+
<div class="sourceCode" id="cb1"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pip</span> install lv_recipe_chatbot</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
220 |
+
</section>
|
221 |
+
<section id="how-to-use" class="level2">
|
222 |
+
<h2 class="anchored" data-anchor-id="how-to-use">How to use</h2>
|
223 |
+
<div class="cell">
|
224 |
+
<div class="sourceCode cell-code" id="cb2"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="im">from</span> dotenv <span class="im">import</span> load_dotenv</span>
|
225 |
+
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a></span>
|
226 |
+
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a>load_dotenv()</span>
|
227 |
+
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a></span>
|
228 |
+
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a>app.launch_demo()</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
229 |
+
<div class="cell-output cell-output-stdout">
|
230 |
+
<pre><code>Running on local URL: http://127.0.0.1:7860
|
231 |
+
|
232 |
+
To create a public link, set `share=True` in `launch()`.</code></pre>
|
233 |
+
</div>
|
234 |
+
</div>
|
235 |
+
<p>or</p>
|
236 |
+
<div class="sourceCode" id="cb4"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">python3</span> app.py</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
237 |
+
</section>
|
238 |
+
<section id="dev-quick-start" class="level2">
|
239 |
+
<h2 class="anchored" data-anchor-id="dev-quick-start">Dev quick-start</h2>
|
240 |
+
<p><code>git clone</code> the repo</p>
|
241 |
+
<div class="sourceCode" id="cb5"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="bu">cd</span> lv-recipe-chatbot</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
242 |
+
<p>Make sure to use the version of python specified in <code>py_version.txt</code><br>
|
243 |
+
Create a virtual environment.</p>
|
244 |
+
<div class="sourceCode" id="cb6"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">python3</span> <span class="at">-m</span> venv env</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
245 |
+
<p>Activate the env and install dependencies.</p>
|
246 |
+
<div class="sourceCode" id="cb7"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="bu">source</span> env/bin/activate</span>
|
247 |
+
<span id="cb7-2"><a href="#cb7-2" aria-hidden="true" tabindex="-1"></a><span class="ex">pip</span> install <span class="at">-r</span> requirements.txt</span>
|
248 |
+
<span id="cb7-3"><a href="#cb7-3" aria-hidden="true" tabindex="-1"></a><span class="ex">pip</span> install <span class="at">-r</span> requirements/dev.txt</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
249 |
+
<p>To make the Jupyter environment, git friendly: <code>nbdev_install_hooks</code><br>
|
250 |
+
If you want to render documentation locally, you will want to <a href="https://nbdev.fast.ai/tutorials/tutorial.html#install-quarto">install Quarto</a>.</p>
|
251 |
+
<p><code>nbdev_install_quarto</code></p>
|
252 |
+
<p>Put API secrets in .env</p>
|
253 |
+
<div class="sourceCode" id="cb8"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cp</span> .env.example .env</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
254 |
+
<p>Edit .env with your secret key(s). Only <code>OPEN_AI_KEY</code> is required.</p>
|
255 |
+
<p>Then start the Gradio demo from within the virtual environment.</p>
|
256 |
+
<div class="sourceCode" id="cb9"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="ex">python3</span> app.py</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
257 |
+
<p>Preview documentation</p>
|
258 |
+
<div class="sourceCode" id="cb10"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="ex">nbdev_preview</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
259 |
+
</section>
|
260 |
+
<section id="dependencies" class="level2">
|
261 |
+
<h2 class="anchored" data-anchor-id="dependencies">Dependencies</h2>
|
262 |
+
<p>If a new dependency for development is helpful for developers, add it to <code>dev.txt</code>.<br>
|
263 |
+
If it is a dependency for the app that is imported in source code, add it to <code>core.txt</code>.<br>
|
264 |
+
Then run:</p>
|
265 |
+
<div class="sourceCode" id="cb11"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pipreqs</span> <span class="at">--force</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
266 |
+
<p>This will update our <code>requirements.txt</code> to include the dependency as it should be pinned in the environment.</p>
|
267 |
+
</section>
|
268 |
+
<section id="development" class="level2">
|
269 |
+
<h2 class="anchored" data-anchor-id="development">Development</h2>
|
270 |
+
<p><a href="https://nbdev.fast.ai/tutorials">quick nbdev tutorial</a></p>
|
271 |
+
<p>Make changes in <code>/nbs</code>.<br>
|
272 |
+
Update the package files with <code>nbdev_export</code> then reimport with <code>pip install -e '.[dev]'</code></p>
|
273 |
+
<p>Preview doc <code>nbdev_preview</code><br>
|
274 |
+
Build docs, test and update README <code>nbdev_prepare</code></p>
|
275 |
+
</section>
|
276 |
+
<section id="useful-links" class="level2">
|
277 |
+
<h2 class="anchored" data-anchor-id="useful-links">Useful links</h2>
|
278 |
+
<ul>
|
279 |
+
<li><a href="https://github.com/microsoft/TaskMatrix">Task Matrix (Formerly Visual ChatGPT)</a></li>
|
280 |
+
<li><a href="https://python.langchain.com/en/latest/index.html">LangChain</a></li>
|
281 |
+
<li><a href="https://www.promptingguide.ai">LLM Prompt Engineering</a></li>
|
282 |
+
<li><a href="https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api">OpenAI best practices for prompts</a></li>
|
283 |
+
</ul>
|
284 |
+
|
285 |
+
|
286 |
+
</section>
|
287 |
+
|
288 |
+
</main> <!-- /main -->
|
289 |
+
<script id="quarto-html-after-body" type="application/javascript">
|
290 |
+
window.document.addEventListener("DOMContentLoaded", function (event) {
|
291 |
+
const toggleBodyColorMode = (bsSheetEl) => {
|
292 |
+
const mode = bsSheetEl.getAttribute("data-mode");
|
293 |
+
const bodyEl = window.document.querySelector("body");
|
294 |
+
if (mode === "dark") {
|
295 |
+
bodyEl.classList.add("quarto-dark");
|
296 |
+
bodyEl.classList.remove("quarto-light");
|
297 |
+
} else {
|
298 |
+
bodyEl.classList.add("quarto-light");
|
299 |
+
bodyEl.classList.remove("quarto-dark");
|
300 |
+
}
|
301 |
+
}
|
302 |
+
const toggleBodyColorPrimary = () => {
|
303 |
+
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
304 |
+
if (bsSheetEl) {
|
305 |
+
toggleBodyColorMode(bsSheetEl);
|
306 |
+
}
|
307 |
+
}
|
308 |
+
toggleBodyColorPrimary();
|
309 |
+
const icon = "";
|
310 |
+
const anchorJS = new window.AnchorJS();
|
311 |
+
anchorJS.options = {
|
312 |
+
placement: 'right',
|
313 |
+
icon: icon
|
314 |
+
};
|
315 |
+
anchorJS.add('.anchored');
|
316 |
+
const isCodeAnnotation = (el) => {
|
317 |
+
for (const clz of el.classList) {
|
318 |
+
if (clz.startsWith('code-annotation-')) {
|
319 |
+
return true;
|
320 |
+
}
|
321 |
+
}
|
322 |
+
return false;
|
323 |
+
}
|
324 |
+
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
325 |
+
text: function(trigger) {
|
326 |
+
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
327 |
+
for (const childEl of codeEl.children) {
|
328 |
+
if (isCodeAnnotation(childEl)) {
|
329 |
+
childEl.remove();
|
330 |
+
}
|
331 |
+
}
|
332 |
+
return codeEl.innerText;
|
333 |
+
}
|
334 |
+
});
|
335 |
+
clipboard.on('success', function(e) {
|
336 |
+
// button target
|
337 |
+
const button = e.trigger;
|
338 |
+
// don't keep focus
|
339 |
+
button.blur();
|
340 |
+
// flash "checked"
|
341 |
+
button.classList.add('code-copy-button-checked');
|
342 |
+
var currentTitle = button.getAttribute("title");
|
343 |
+
button.setAttribute("title", "Copied!");
|
344 |
+
let tooltip;
|
345 |
+
if (window.bootstrap) {
|
346 |
+
button.setAttribute("data-bs-toggle", "tooltip");
|
347 |
+
button.setAttribute("data-bs-placement", "left");
|
348 |
+
button.setAttribute("data-bs-title", "Copied!");
|
349 |
+
tooltip = new bootstrap.Tooltip(button,
|
350 |
+
{ trigger: "manual",
|
351 |
+
customClass: "code-copy-button-tooltip",
|
352 |
+
offset: [0, -8]});
|
353 |
+
tooltip.show();
|
354 |
+
}
|
355 |
+
setTimeout(function() {
|
356 |
+
if (tooltip) {
|
357 |
+
tooltip.hide();
|
358 |
+
button.removeAttribute("data-bs-title");
|
359 |
+
button.removeAttribute("data-bs-toggle");
|
360 |
+
button.removeAttribute("data-bs-placement");
|
361 |
+
}
|
362 |
+
button.setAttribute("title", currentTitle);
|
363 |
+
button.classList.remove('code-copy-button-checked');
|
364 |
+
}, 1000);
|
365 |
+
// clear code selection
|
366 |
+
e.clearSelection();
|
367 |
+
});
|
368 |
+
function tippyHover(el, contentFn) {
|
369 |
+
const config = {
|
370 |
+
allowHTML: true,
|
371 |
+
content: contentFn,
|
372 |
+
maxWidth: 500,
|
373 |
+
delay: 100,
|
374 |
+
arrow: false,
|
375 |
+
appendTo: function(el) {
|
376 |
+
return el.parentElement;
|
377 |
+
},
|
378 |
+
interactive: true,
|
379 |
+
interactiveBorder: 10,
|
380 |
+
theme: 'quarto',
|
381 |
+
placement: 'bottom-start'
|
382 |
+
};
|
383 |
+
window.tippy(el, config);
|
384 |
+
}
|
385 |
+
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
386 |
+
for (var i=0; i<noterefs.length; i++) {
|
387 |
+
const ref = noterefs[i];
|
388 |
+
tippyHover(ref, function() {
|
389 |
+
// use id or data attribute instead here
|
390 |
+
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
391 |
+
try { href = new URL(href).hash; } catch {}
|
392 |
+
const id = href.replace(/^#\/?/, "");
|
393 |
+
const note = window.document.getElementById(id);
|
394 |
+
return note.innerHTML;
|
395 |
+
});
|
396 |
+
}
|
397 |
+
let selectedAnnoteEl;
|
398 |
+
const selectorForAnnotation = ( cell, annotation) => {
|
399 |
+
let cellAttr = 'data-code-cell="' + cell + '"';
|
400 |
+
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
401 |
+
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
402 |
+
return selector;
|
403 |
+
}
|
404 |
+
const selectCodeLines = (annoteEl) => {
|
405 |
+
const doc = window.document;
|
406 |
+
const targetCell = annoteEl.getAttribute("data-target-cell");
|
407 |
+
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
408 |
+
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
409 |
+
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
410 |
+
const lineIds = lines.map((line) => {
|
411 |
+
return targetCell + "-" + line;
|
412 |
+
})
|
413 |
+
let top = null;
|
414 |
+
let height = null;
|
415 |
+
let parent = null;
|
416 |
+
if (lineIds.length > 0) {
|
417 |
+
//compute the position of the single el (top and bottom and make a div)
|
418 |
+
const el = window.document.getElementById(lineIds[0]);
|
419 |
+
top = el.offsetTop;
|
420 |
+
height = el.offsetHeight;
|
421 |
+
parent = el.parentElement.parentElement;
|
422 |
+
if (lineIds.length > 1) {
|
423 |
+
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
424 |
+
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
425 |
+
height = bottom - top;
|
426 |
+
}
|
427 |
+
if (top !== null && height !== null && parent !== null) {
|
428 |
+
// cook up a div (if necessary) and position it
|
429 |
+
let div = window.document.getElementById("code-annotation-line-highlight");
|
430 |
+
if (div === null) {
|
431 |
+
div = window.document.createElement("div");
|
432 |
+
div.setAttribute("id", "code-annotation-line-highlight");
|
433 |
+
div.style.position = 'absolute';
|
434 |
+
parent.appendChild(div);
|
435 |
+
}
|
436 |
+
div.style.top = top - 2 + "px";
|
437 |
+
div.style.height = height + 4 + "px";
|
438 |
+
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
439 |
+
if (gutterDiv === null) {
|
440 |
+
gutterDiv = window.document.createElement("div");
|
441 |
+
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
442 |
+
gutterDiv.style.position = 'absolute';
|
443 |
+
const codeCell = window.document.getElementById(targetCell);
|
444 |
+
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
445 |
+
gutter.appendChild(gutterDiv);
|
446 |
+
}
|
447 |
+
gutterDiv.style.top = top - 2 + "px";
|
448 |
+
gutterDiv.style.height = height + 4 + "px";
|
449 |
+
}
|
450 |
+
selectedAnnoteEl = annoteEl;
|
451 |
+
}
|
452 |
+
};
|
453 |
+
const unselectCodeLines = () => {
|
454 |
+
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
455 |
+
elementsIds.forEach((elId) => {
|
456 |
+
const div = window.document.getElementById(elId);
|
457 |
+
if (div) {
|
458 |
+
div.remove();
|
459 |
+
}
|
460 |
+
});
|
461 |
+
selectedAnnoteEl = undefined;
|
462 |
+
};
|
463 |
+
// Attach click handler to the DT
|
464 |
+
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
465 |
+
for (const annoteDlNode of annoteDls) {
|
466 |
+
annoteDlNode.addEventListener('click', (event) => {
|
467 |
+
const clickedEl = event.target;
|
468 |
+
if (clickedEl !== selectedAnnoteEl) {
|
469 |
+
unselectCodeLines();
|
470 |
+
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
471 |
+
if (activeEl) {
|
472 |
+
activeEl.classList.remove('code-annotation-active');
|
473 |
+
}
|
474 |
+
selectCodeLines(clickedEl);
|
475 |
+
clickedEl.classList.add('code-annotation-active');
|
476 |
+
} else {
|
477 |
+
// Unselect the line
|
478 |
+
unselectCodeLines();
|
479 |
+
clickedEl.classList.remove('code-annotation-active');
|
480 |
+
}
|
481 |
+
});
|
482 |
+
}
|
483 |
+
const findCites = (el) => {
|
484 |
+
const parentEl = el.parentElement;
|
485 |
+
if (parentEl) {
|
486 |
+
const cites = parentEl.dataset.cites;
|
487 |
+
if (cites) {
|
488 |
+
return {
|
489 |
+
el,
|
490 |
+
cites: cites.split(' ')
|
491 |
+
};
|
492 |
+
} else {
|
493 |
+
return findCites(el.parentElement)
|
494 |
+
}
|
495 |
+
} else {
|
496 |
+
return undefined;
|
497 |
+
}
|
498 |
+
};
|
499 |
+
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
500 |
+
for (var i=0; i<bibliorefs.length; i++) {
|
501 |
+
const ref = bibliorefs[i];
|
502 |
+
const citeInfo = findCites(ref);
|
503 |
+
if (citeInfo) {
|
504 |
+
tippyHover(citeInfo.el, function() {
|
505 |
+
var popup = window.document.createElement('div');
|
506 |
+
citeInfo.cites.forEach(function(cite) {
|
507 |
+
var citeDiv = window.document.createElement('div');
|
508 |
+
citeDiv.classList.add('hanging-indent');
|
509 |
+
citeDiv.classList.add('csl-entry');
|
510 |
+
var biblioDiv = window.document.getElementById('ref-' + cite);
|
511 |
+
if (biblioDiv) {
|
512 |
+
citeDiv.innerHTML = biblioDiv.innerHTML;
|
513 |
+
}
|
514 |
+
popup.appendChild(citeDiv);
|
515 |
+
});
|
516 |
+
return popup.innerHTML;
|
517 |
+
});
|
518 |
+
}
|
519 |
+
}
|
520 |
+
});
|
521 |
+
</script>
|
522 |
+
</div> <!-- /content -->
|
523 |
+
|
524 |
+
|
525 |
+
|
526 |
+
</body></html>
|
_proc/_docs/lchain_tool.html
ADDED
The diff for this file is too large to render.
See raw diff
|
|
_proc/_docs/robots.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
Sitemap: https://animalequality.github.io/lv-recipe-chatbot/sitemap.xml
|
_proc/_docs/search.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
_proc/_docs/site_libs/bootstrap/bootstrap-icons.css
ADDED
@@ -0,0 +1,2018 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@font-face {
|
2 |
+
font-display: block;
|
3 |
+
font-family: "bootstrap-icons";
|
4 |
+
src:
|
5 |
+
url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
|
6 |
+
}
|
7 |
+
|
8 |
+
.bi::before,
|
9 |
+
[class^="bi-"]::before,
|
10 |
+
[class*=" bi-"]::before {
|
11 |
+
display: inline-block;
|
12 |
+
font-family: bootstrap-icons !important;
|
13 |
+
font-style: normal;
|
14 |
+
font-weight: normal !important;
|
15 |
+
font-variant: normal;
|
16 |
+
text-transform: none;
|
17 |
+
line-height: 1;
|
18 |
+
vertical-align: -.125em;
|
19 |
+
-webkit-font-smoothing: antialiased;
|
20 |
+
-moz-osx-font-smoothing: grayscale;
|
21 |
+
}
|
22 |
+
|
23 |
+
.bi-123::before { content: "\f67f"; }
|
24 |
+
.bi-alarm-fill::before { content: "\f101"; }
|
25 |
+
.bi-alarm::before { content: "\f102"; }
|
26 |
+
.bi-align-bottom::before { content: "\f103"; }
|
27 |
+
.bi-align-center::before { content: "\f104"; }
|
28 |
+
.bi-align-end::before { content: "\f105"; }
|
29 |
+
.bi-align-middle::before { content: "\f106"; }
|
30 |
+
.bi-align-start::before { content: "\f107"; }
|
31 |
+
.bi-align-top::before { content: "\f108"; }
|
32 |
+
.bi-alt::before { content: "\f109"; }
|
33 |
+
.bi-app-indicator::before { content: "\f10a"; }
|
34 |
+
.bi-app::before { content: "\f10b"; }
|
35 |
+
.bi-archive-fill::before { content: "\f10c"; }
|
36 |
+
.bi-archive::before { content: "\f10d"; }
|
37 |
+
.bi-arrow-90deg-down::before { content: "\f10e"; }
|
38 |
+
.bi-arrow-90deg-left::before { content: "\f10f"; }
|
39 |
+
.bi-arrow-90deg-right::before { content: "\f110"; }
|
40 |
+
.bi-arrow-90deg-up::before { content: "\f111"; }
|
41 |
+
.bi-arrow-bar-down::before { content: "\f112"; }
|
42 |
+
.bi-arrow-bar-left::before { content: "\f113"; }
|
43 |
+
.bi-arrow-bar-right::before { content: "\f114"; }
|
44 |
+
.bi-arrow-bar-up::before { content: "\f115"; }
|
45 |
+
.bi-arrow-clockwise::before { content: "\f116"; }
|
46 |
+
.bi-arrow-counterclockwise::before { content: "\f117"; }
|
47 |
+
.bi-arrow-down-circle-fill::before { content: "\f118"; }
|
48 |
+
.bi-arrow-down-circle::before { content: "\f119"; }
|
49 |
+
.bi-arrow-down-left-circle-fill::before { content: "\f11a"; }
|
50 |
+
.bi-arrow-down-left-circle::before { content: "\f11b"; }
|
51 |
+
.bi-arrow-down-left-square-fill::before { content: "\f11c"; }
|
52 |
+
.bi-arrow-down-left-square::before { content: "\f11d"; }
|
53 |
+
.bi-arrow-down-left::before { content: "\f11e"; }
|
54 |
+
.bi-arrow-down-right-circle-fill::before { content: "\f11f"; }
|
55 |
+
.bi-arrow-down-right-circle::before { content: "\f120"; }
|
56 |
+
.bi-arrow-down-right-square-fill::before { content: "\f121"; }
|
57 |
+
.bi-arrow-down-right-square::before { content: "\f122"; }
|
58 |
+
.bi-arrow-down-right::before { content: "\f123"; }
|
59 |
+
.bi-arrow-down-short::before { content: "\f124"; }
|
60 |
+
.bi-arrow-down-square-fill::before { content: "\f125"; }
|
61 |
+
.bi-arrow-down-square::before { content: "\f126"; }
|
62 |
+
.bi-arrow-down-up::before { content: "\f127"; }
|
63 |
+
.bi-arrow-down::before { content: "\f128"; }
|
64 |
+
.bi-arrow-left-circle-fill::before { content: "\f129"; }
|
65 |
+
.bi-arrow-left-circle::before { content: "\f12a"; }
|
66 |
+
.bi-arrow-left-right::before { content: "\f12b"; }
|
67 |
+
.bi-arrow-left-short::before { content: "\f12c"; }
|
68 |
+
.bi-arrow-left-square-fill::before { content: "\f12d"; }
|
69 |
+
.bi-arrow-left-square::before { content: "\f12e"; }
|
70 |
+
.bi-arrow-left::before { content: "\f12f"; }
|
71 |
+
.bi-arrow-repeat::before { content: "\f130"; }
|
72 |
+
.bi-arrow-return-left::before { content: "\f131"; }
|
73 |
+
.bi-arrow-return-right::before { content: "\f132"; }
|
74 |
+
.bi-arrow-right-circle-fill::before { content: "\f133"; }
|
75 |
+
.bi-arrow-right-circle::before { content: "\f134"; }
|
76 |
+
.bi-arrow-right-short::before { content: "\f135"; }
|
77 |
+
.bi-arrow-right-square-fill::before { content: "\f136"; }
|
78 |
+
.bi-arrow-right-square::before { content: "\f137"; }
|
79 |
+
.bi-arrow-right::before { content: "\f138"; }
|
80 |
+
.bi-arrow-up-circle-fill::before { content: "\f139"; }
|
81 |
+
.bi-arrow-up-circle::before { content: "\f13a"; }
|
82 |
+
.bi-arrow-up-left-circle-fill::before { content: "\f13b"; }
|
83 |
+
.bi-arrow-up-left-circle::before { content: "\f13c"; }
|
84 |
+
.bi-arrow-up-left-square-fill::before { content: "\f13d"; }
|
85 |
+
.bi-arrow-up-left-square::before { content: "\f13e"; }
|
86 |
+
.bi-arrow-up-left::before { content: "\f13f"; }
|
87 |
+
.bi-arrow-up-right-circle-fill::before { content: "\f140"; }
|
88 |
+
.bi-arrow-up-right-circle::before { content: "\f141"; }
|
89 |
+
.bi-arrow-up-right-square-fill::before { content: "\f142"; }
|
90 |
+
.bi-arrow-up-right-square::before { content: "\f143"; }
|
91 |
+
.bi-arrow-up-right::before { content: "\f144"; }
|
92 |
+
.bi-arrow-up-short::before { content: "\f145"; }
|
93 |
+
.bi-arrow-up-square-fill::before { content: "\f146"; }
|
94 |
+
.bi-arrow-up-square::before { content: "\f147"; }
|
95 |
+
.bi-arrow-up::before { content: "\f148"; }
|
96 |
+
.bi-arrows-angle-contract::before { content: "\f149"; }
|
97 |
+
.bi-arrows-angle-expand::before { content: "\f14a"; }
|
98 |
+
.bi-arrows-collapse::before { content: "\f14b"; }
|
99 |
+
.bi-arrows-expand::before { content: "\f14c"; }
|
100 |
+
.bi-arrows-fullscreen::before { content: "\f14d"; }
|
101 |
+
.bi-arrows-move::before { content: "\f14e"; }
|
102 |
+
.bi-aspect-ratio-fill::before { content: "\f14f"; }
|
103 |
+
.bi-aspect-ratio::before { content: "\f150"; }
|
104 |
+
.bi-asterisk::before { content: "\f151"; }
|
105 |
+
.bi-at::before { content: "\f152"; }
|
106 |
+
.bi-award-fill::before { content: "\f153"; }
|
107 |
+
.bi-award::before { content: "\f154"; }
|
108 |
+
.bi-back::before { content: "\f155"; }
|
109 |
+
.bi-backspace-fill::before { content: "\f156"; }
|
110 |
+
.bi-backspace-reverse-fill::before { content: "\f157"; }
|
111 |
+
.bi-backspace-reverse::before { content: "\f158"; }
|
112 |
+
.bi-backspace::before { content: "\f159"; }
|
113 |
+
.bi-badge-3d-fill::before { content: "\f15a"; }
|
114 |
+
.bi-badge-3d::before { content: "\f15b"; }
|
115 |
+
.bi-badge-4k-fill::before { content: "\f15c"; }
|
116 |
+
.bi-badge-4k::before { content: "\f15d"; }
|
117 |
+
.bi-badge-8k-fill::before { content: "\f15e"; }
|
118 |
+
.bi-badge-8k::before { content: "\f15f"; }
|
119 |
+
.bi-badge-ad-fill::before { content: "\f160"; }
|
120 |
+
.bi-badge-ad::before { content: "\f161"; }
|
121 |
+
.bi-badge-ar-fill::before { content: "\f162"; }
|
122 |
+
.bi-badge-ar::before { content: "\f163"; }
|
123 |
+
.bi-badge-cc-fill::before { content: "\f164"; }
|
124 |
+
.bi-badge-cc::before { content: "\f165"; }
|
125 |
+
.bi-badge-hd-fill::before { content: "\f166"; }
|
126 |
+
.bi-badge-hd::before { content: "\f167"; }
|
127 |
+
.bi-badge-tm-fill::before { content: "\f168"; }
|
128 |
+
.bi-badge-tm::before { content: "\f169"; }
|
129 |
+
.bi-badge-vo-fill::before { content: "\f16a"; }
|
130 |
+
.bi-badge-vo::before { content: "\f16b"; }
|
131 |
+
.bi-badge-vr-fill::before { content: "\f16c"; }
|
132 |
+
.bi-badge-vr::before { content: "\f16d"; }
|
133 |
+
.bi-badge-wc-fill::before { content: "\f16e"; }
|
134 |
+
.bi-badge-wc::before { content: "\f16f"; }
|
135 |
+
.bi-bag-check-fill::before { content: "\f170"; }
|
136 |
+
.bi-bag-check::before { content: "\f171"; }
|
137 |
+
.bi-bag-dash-fill::before { content: "\f172"; }
|
138 |
+
.bi-bag-dash::before { content: "\f173"; }
|
139 |
+
.bi-bag-fill::before { content: "\f174"; }
|
140 |
+
.bi-bag-plus-fill::before { content: "\f175"; }
|
141 |
+
.bi-bag-plus::before { content: "\f176"; }
|
142 |
+
.bi-bag-x-fill::before { content: "\f177"; }
|
143 |
+
.bi-bag-x::before { content: "\f178"; }
|
144 |
+
.bi-bag::before { content: "\f179"; }
|
145 |
+
.bi-bar-chart-fill::before { content: "\f17a"; }
|
146 |
+
.bi-bar-chart-line-fill::before { content: "\f17b"; }
|
147 |
+
.bi-bar-chart-line::before { content: "\f17c"; }
|
148 |
+
.bi-bar-chart-steps::before { content: "\f17d"; }
|
149 |
+
.bi-bar-chart::before { content: "\f17e"; }
|
150 |
+
.bi-basket-fill::before { content: "\f17f"; }
|
151 |
+
.bi-basket::before { content: "\f180"; }
|
152 |
+
.bi-basket2-fill::before { content: "\f181"; }
|
153 |
+
.bi-basket2::before { content: "\f182"; }
|
154 |
+
.bi-basket3-fill::before { content: "\f183"; }
|
155 |
+
.bi-basket3::before { content: "\f184"; }
|
156 |
+
.bi-battery-charging::before { content: "\f185"; }
|
157 |
+
.bi-battery-full::before { content: "\f186"; }
|
158 |
+
.bi-battery-half::before { content: "\f187"; }
|
159 |
+
.bi-battery::before { content: "\f188"; }
|
160 |
+
.bi-bell-fill::before { content: "\f189"; }
|
161 |
+
.bi-bell::before { content: "\f18a"; }
|
162 |
+
.bi-bezier::before { content: "\f18b"; }
|
163 |
+
.bi-bezier2::before { content: "\f18c"; }
|
164 |
+
.bi-bicycle::before { content: "\f18d"; }
|
165 |
+
.bi-binoculars-fill::before { content: "\f18e"; }
|
166 |
+
.bi-binoculars::before { content: "\f18f"; }
|
167 |
+
.bi-blockquote-left::before { content: "\f190"; }
|
168 |
+
.bi-blockquote-right::before { content: "\f191"; }
|
169 |
+
.bi-book-fill::before { content: "\f192"; }
|
170 |
+
.bi-book-half::before { content: "\f193"; }
|
171 |
+
.bi-book::before { content: "\f194"; }
|
172 |
+
.bi-bookmark-check-fill::before { content: "\f195"; }
|
173 |
+
.bi-bookmark-check::before { content: "\f196"; }
|
174 |
+
.bi-bookmark-dash-fill::before { content: "\f197"; }
|
175 |
+
.bi-bookmark-dash::before { content: "\f198"; }
|
176 |
+
.bi-bookmark-fill::before { content: "\f199"; }
|
177 |
+
.bi-bookmark-heart-fill::before { content: "\f19a"; }
|
178 |
+
.bi-bookmark-heart::before { content: "\f19b"; }
|
179 |
+
.bi-bookmark-plus-fill::before { content: "\f19c"; }
|
180 |
+
.bi-bookmark-plus::before { content: "\f19d"; }
|
181 |
+
.bi-bookmark-star-fill::before { content: "\f19e"; }
|
182 |
+
.bi-bookmark-star::before { content: "\f19f"; }
|
183 |
+
.bi-bookmark-x-fill::before { content: "\f1a0"; }
|
184 |
+
.bi-bookmark-x::before { content: "\f1a1"; }
|
185 |
+
.bi-bookmark::before { content: "\f1a2"; }
|
186 |
+
.bi-bookmarks-fill::before { content: "\f1a3"; }
|
187 |
+
.bi-bookmarks::before { content: "\f1a4"; }
|
188 |
+
.bi-bookshelf::before { content: "\f1a5"; }
|
189 |
+
.bi-bootstrap-fill::before { content: "\f1a6"; }
|
190 |
+
.bi-bootstrap-reboot::before { content: "\f1a7"; }
|
191 |
+
.bi-bootstrap::before { content: "\f1a8"; }
|
192 |
+
.bi-border-all::before { content: "\f1a9"; }
|
193 |
+
.bi-border-bottom::before { content: "\f1aa"; }
|
194 |
+
.bi-border-center::before { content: "\f1ab"; }
|
195 |
+
.bi-border-inner::before { content: "\f1ac"; }
|
196 |
+
.bi-border-left::before { content: "\f1ad"; }
|
197 |
+
.bi-border-middle::before { content: "\f1ae"; }
|
198 |
+
.bi-border-outer::before { content: "\f1af"; }
|
199 |
+
.bi-border-right::before { content: "\f1b0"; }
|
200 |
+
.bi-border-style::before { content: "\f1b1"; }
|
201 |
+
.bi-border-top::before { content: "\f1b2"; }
|
202 |
+
.bi-border-width::before { content: "\f1b3"; }
|
203 |
+
.bi-border::before { content: "\f1b4"; }
|
204 |
+
.bi-bounding-box-circles::before { content: "\f1b5"; }
|
205 |
+
.bi-bounding-box::before { content: "\f1b6"; }
|
206 |
+
.bi-box-arrow-down-left::before { content: "\f1b7"; }
|
207 |
+
.bi-box-arrow-down-right::before { content: "\f1b8"; }
|
208 |
+
.bi-box-arrow-down::before { content: "\f1b9"; }
|
209 |
+
.bi-box-arrow-in-down-left::before { content: "\f1ba"; }
|
210 |
+
.bi-box-arrow-in-down-right::before { content: "\f1bb"; }
|
211 |
+
.bi-box-arrow-in-down::before { content: "\f1bc"; }
|
212 |
+
.bi-box-arrow-in-left::before { content: "\f1bd"; }
|
213 |
+
.bi-box-arrow-in-right::before { content: "\f1be"; }
|
214 |
+
.bi-box-arrow-in-up-left::before { content: "\f1bf"; }
|
215 |
+
.bi-box-arrow-in-up-right::before { content: "\f1c0"; }
|
216 |
+
.bi-box-arrow-in-up::before { content: "\f1c1"; }
|
217 |
+
.bi-box-arrow-left::before { content: "\f1c2"; }
|
218 |
+
.bi-box-arrow-right::before { content: "\f1c3"; }
|
219 |
+
.bi-box-arrow-up-left::before { content: "\f1c4"; }
|
220 |
+
.bi-box-arrow-up-right::before { content: "\f1c5"; }
|
221 |
+
.bi-box-arrow-up::before { content: "\f1c6"; }
|
222 |
+
.bi-box-seam::before { content: "\f1c7"; }
|
223 |
+
.bi-box::before { content: "\f1c8"; }
|
224 |
+
.bi-braces::before { content: "\f1c9"; }
|
225 |
+
.bi-bricks::before { content: "\f1ca"; }
|
226 |
+
.bi-briefcase-fill::before { content: "\f1cb"; }
|
227 |
+
.bi-briefcase::before { content: "\f1cc"; }
|
228 |
+
.bi-brightness-alt-high-fill::before { content: "\f1cd"; }
|
229 |
+
.bi-brightness-alt-high::before { content: "\f1ce"; }
|
230 |
+
.bi-brightness-alt-low-fill::before { content: "\f1cf"; }
|
231 |
+
.bi-brightness-alt-low::before { content: "\f1d0"; }
|
232 |
+
.bi-brightness-high-fill::before { content: "\f1d1"; }
|
233 |
+
.bi-brightness-high::before { content: "\f1d2"; }
|
234 |
+
.bi-brightness-low-fill::before { content: "\f1d3"; }
|
235 |
+
.bi-brightness-low::before { content: "\f1d4"; }
|
236 |
+
.bi-broadcast-pin::before { content: "\f1d5"; }
|
237 |
+
.bi-broadcast::before { content: "\f1d6"; }
|
238 |
+
.bi-brush-fill::before { content: "\f1d7"; }
|
239 |
+
.bi-brush::before { content: "\f1d8"; }
|
240 |
+
.bi-bucket-fill::before { content: "\f1d9"; }
|
241 |
+
.bi-bucket::before { content: "\f1da"; }
|
242 |
+
.bi-bug-fill::before { content: "\f1db"; }
|
243 |
+
.bi-bug::before { content: "\f1dc"; }
|
244 |
+
.bi-building::before { content: "\f1dd"; }
|
245 |
+
.bi-bullseye::before { content: "\f1de"; }
|
246 |
+
.bi-calculator-fill::before { content: "\f1df"; }
|
247 |
+
.bi-calculator::before { content: "\f1e0"; }
|
248 |
+
.bi-calendar-check-fill::before { content: "\f1e1"; }
|
249 |
+
.bi-calendar-check::before { content: "\f1e2"; }
|
250 |
+
.bi-calendar-date-fill::before { content: "\f1e3"; }
|
251 |
+
.bi-calendar-date::before { content: "\f1e4"; }
|
252 |
+
.bi-calendar-day-fill::before { content: "\f1e5"; }
|
253 |
+
.bi-calendar-day::before { content: "\f1e6"; }
|
254 |
+
.bi-calendar-event-fill::before { content: "\f1e7"; }
|
255 |
+
.bi-calendar-event::before { content: "\f1e8"; }
|
256 |
+
.bi-calendar-fill::before { content: "\f1e9"; }
|
257 |
+
.bi-calendar-minus-fill::before { content: "\f1ea"; }
|
258 |
+
.bi-calendar-minus::before { content: "\f1eb"; }
|
259 |
+
.bi-calendar-month-fill::before { content: "\f1ec"; }
|
260 |
+
.bi-calendar-month::before { content: "\f1ed"; }
|
261 |
+
.bi-calendar-plus-fill::before { content: "\f1ee"; }
|
262 |
+
.bi-calendar-plus::before { content: "\f1ef"; }
|
263 |
+
.bi-calendar-range-fill::before { content: "\f1f0"; }
|
264 |
+
.bi-calendar-range::before { content: "\f1f1"; }
|
265 |
+
.bi-calendar-week-fill::before { content: "\f1f2"; }
|
266 |
+
.bi-calendar-week::before { content: "\f1f3"; }
|
267 |
+
.bi-calendar-x-fill::before { content: "\f1f4"; }
|
268 |
+
.bi-calendar-x::before { content: "\f1f5"; }
|
269 |
+
.bi-calendar::before { content: "\f1f6"; }
|
270 |
+
.bi-calendar2-check-fill::before { content: "\f1f7"; }
|
271 |
+
.bi-calendar2-check::before { content: "\f1f8"; }
|
272 |
+
.bi-calendar2-date-fill::before { content: "\f1f9"; }
|
273 |
+
.bi-calendar2-date::before { content: "\f1fa"; }
|
274 |
+
.bi-calendar2-day-fill::before { content: "\f1fb"; }
|
275 |
+
.bi-calendar2-day::before { content: "\f1fc"; }
|
276 |
+
.bi-calendar2-event-fill::before { content: "\f1fd"; }
|
277 |
+
.bi-calendar2-event::before { content: "\f1fe"; }
|
278 |
+
.bi-calendar2-fill::before { content: "\f1ff"; }
|
279 |
+
.bi-calendar2-minus-fill::before { content: "\f200"; }
|
280 |
+
.bi-calendar2-minus::before { content: "\f201"; }
|
281 |
+
.bi-calendar2-month-fill::before { content: "\f202"; }
|
282 |
+
.bi-calendar2-month::before { content: "\f203"; }
|
283 |
+
.bi-calendar2-plus-fill::before { content: "\f204"; }
|
284 |
+
.bi-calendar2-plus::before { content: "\f205"; }
|
285 |
+
.bi-calendar2-range-fill::before { content: "\f206"; }
|
286 |
+
.bi-calendar2-range::before { content: "\f207"; }
|
287 |
+
.bi-calendar2-week-fill::before { content: "\f208"; }
|
288 |
+
.bi-calendar2-week::before { content: "\f209"; }
|
289 |
+
.bi-calendar2-x-fill::before { content: "\f20a"; }
|
290 |
+
.bi-calendar2-x::before { content: "\f20b"; }
|
291 |
+
.bi-calendar2::before { content: "\f20c"; }
|
292 |
+
.bi-calendar3-event-fill::before { content: "\f20d"; }
|
293 |
+
.bi-calendar3-event::before { content: "\f20e"; }
|
294 |
+
.bi-calendar3-fill::before { content: "\f20f"; }
|
295 |
+
.bi-calendar3-range-fill::before { content: "\f210"; }
|
296 |
+
.bi-calendar3-range::before { content: "\f211"; }
|
297 |
+
.bi-calendar3-week-fill::before { content: "\f212"; }
|
298 |
+
.bi-calendar3-week::before { content: "\f213"; }
|
299 |
+
.bi-calendar3::before { content: "\f214"; }
|
300 |
+
.bi-calendar4-event::before { content: "\f215"; }
|
301 |
+
.bi-calendar4-range::before { content: "\f216"; }
|
302 |
+
.bi-calendar4-week::before { content: "\f217"; }
|
303 |
+
.bi-calendar4::before { content: "\f218"; }
|
304 |
+
.bi-camera-fill::before { content: "\f219"; }
|
305 |
+
.bi-camera-reels-fill::before { content: "\f21a"; }
|
306 |
+
.bi-camera-reels::before { content: "\f21b"; }
|
307 |
+
.bi-camera-video-fill::before { content: "\f21c"; }
|
308 |
+
.bi-camera-video-off-fill::before { content: "\f21d"; }
|
309 |
+
.bi-camera-video-off::before { content: "\f21e"; }
|
310 |
+
.bi-camera-video::before { content: "\f21f"; }
|
311 |
+
.bi-camera::before { content: "\f220"; }
|
312 |
+
.bi-camera2::before { content: "\f221"; }
|
313 |
+
.bi-capslock-fill::before { content: "\f222"; }
|
314 |
+
.bi-capslock::before { content: "\f223"; }
|
315 |
+
.bi-card-checklist::before { content: "\f224"; }
|
316 |
+
.bi-card-heading::before { content: "\f225"; }
|
317 |
+
.bi-card-image::before { content: "\f226"; }
|
318 |
+
.bi-card-list::before { content: "\f227"; }
|
319 |
+
.bi-card-text::before { content: "\f228"; }
|
320 |
+
.bi-caret-down-fill::before { content: "\f229"; }
|
321 |
+
.bi-caret-down-square-fill::before { content: "\f22a"; }
|
322 |
+
.bi-caret-down-square::before { content: "\f22b"; }
|
323 |
+
.bi-caret-down::before { content: "\f22c"; }
|
324 |
+
.bi-caret-left-fill::before { content: "\f22d"; }
|
325 |
+
.bi-caret-left-square-fill::before { content: "\f22e"; }
|
326 |
+
.bi-caret-left-square::before { content: "\f22f"; }
|
327 |
+
.bi-caret-left::before { content: "\f230"; }
|
328 |
+
.bi-caret-right-fill::before { content: "\f231"; }
|
329 |
+
.bi-caret-right-square-fill::before { content: "\f232"; }
|
330 |
+
.bi-caret-right-square::before { content: "\f233"; }
|
331 |
+
.bi-caret-right::before { content: "\f234"; }
|
332 |
+
.bi-caret-up-fill::before { content: "\f235"; }
|
333 |
+
.bi-caret-up-square-fill::before { content: "\f236"; }
|
334 |
+
.bi-caret-up-square::before { content: "\f237"; }
|
335 |
+
.bi-caret-up::before { content: "\f238"; }
|
336 |
+
.bi-cart-check-fill::before { content: "\f239"; }
|
337 |
+
.bi-cart-check::before { content: "\f23a"; }
|
338 |
+
.bi-cart-dash-fill::before { content: "\f23b"; }
|
339 |
+
.bi-cart-dash::before { content: "\f23c"; }
|
340 |
+
.bi-cart-fill::before { content: "\f23d"; }
|
341 |
+
.bi-cart-plus-fill::before { content: "\f23e"; }
|
342 |
+
.bi-cart-plus::before { content: "\f23f"; }
|
343 |
+
.bi-cart-x-fill::before { content: "\f240"; }
|
344 |
+
.bi-cart-x::before { content: "\f241"; }
|
345 |
+
.bi-cart::before { content: "\f242"; }
|
346 |
+
.bi-cart2::before { content: "\f243"; }
|
347 |
+
.bi-cart3::before { content: "\f244"; }
|
348 |
+
.bi-cart4::before { content: "\f245"; }
|
349 |
+
.bi-cash-stack::before { content: "\f246"; }
|
350 |
+
.bi-cash::before { content: "\f247"; }
|
351 |
+
.bi-cast::before { content: "\f248"; }
|
352 |
+
.bi-chat-dots-fill::before { content: "\f249"; }
|
353 |
+
.bi-chat-dots::before { content: "\f24a"; }
|
354 |
+
.bi-chat-fill::before { content: "\f24b"; }
|
355 |
+
.bi-chat-left-dots-fill::before { content: "\f24c"; }
|
356 |
+
.bi-chat-left-dots::before { content: "\f24d"; }
|
357 |
+
.bi-chat-left-fill::before { content: "\f24e"; }
|
358 |
+
.bi-chat-left-quote-fill::before { content: "\f24f"; }
|
359 |
+
.bi-chat-left-quote::before { content: "\f250"; }
|
360 |
+
.bi-chat-left-text-fill::before { content: "\f251"; }
|
361 |
+
.bi-chat-left-text::before { content: "\f252"; }
|
362 |
+
.bi-chat-left::before { content: "\f253"; }
|
363 |
+
.bi-chat-quote-fill::before { content: "\f254"; }
|
364 |
+
.bi-chat-quote::before { content: "\f255"; }
|
365 |
+
.bi-chat-right-dots-fill::before { content: "\f256"; }
|
366 |
+
.bi-chat-right-dots::before { content: "\f257"; }
|
367 |
+
.bi-chat-right-fill::before { content: "\f258"; }
|
368 |
+
.bi-chat-right-quote-fill::before { content: "\f259"; }
|
369 |
+
.bi-chat-right-quote::before { content: "\f25a"; }
|
370 |
+
.bi-chat-right-text-fill::before { content: "\f25b"; }
|
371 |
+
.bi-chat-right-text::before { content: "\f25c"; }
|
372 |
+
.bi-chat-right::before { content: "\f25d"; }
|
373 |
+
.bi-chat-square-dots-fill::before { content: "\f25e"; }
|
374 |
+
.bi-chat-square-dots::before { content: "\f25f"; }
|
375 |
+
.bi-chat-square-fill::before { content: "\f260"; }
|
376 |
+
.bi-chat-square-quote-fill::before { content: "\f261"; }
|
377 |
+
.bi-chat-square-quote::before { content: "\f262"; }
|
378 |
+
.bi-chat-square-text-fill::before { content: "\f263"; }
|
379 |
+
.bi-chat-square-text::before { content: "\f264"; }
|
380 |
+
.bi-chat-square::before { content: "\f265"; }
|
381 |
+
.bi-chat-text-fill::before { content: "\f266"; }
|
382 |
+
.bi-chat-text::before { content: "\f267"; }
|
383 |
+
.bi-chat::before { content: "\f268"; }
|
384 |
+
.bi-check-all::before { content: "\f269"; }
|
385 |
+
.bi-check-circle-fill::before { content: "\f26a"; }
|
386 |
+
.bi-check-circle::before { content: "\f26b"; }
|
387 |
+
.bi-check-square-fill::before { content: "\f26c"; }
|
388 |
+
.bi-check-square::before { content: "\f26d"; }
|
389 |
+
.bi-check::before { content: "\f26e"; }
|
390 |
+
.bi-check2-all::before { content: "\f26f"; }
|
391 |
+
.bi-check2-circle::before { content: "\f270"; }
|
392 |
+
.bi-check2-square::before { content: "\f271"; }
|
393 |
+
.bi-check2::before { content: "\f272"; }
|
394 |
+
.bi-chevron-bar-contract::before { content: "\f273"; }
|
395 |
+
.bi-chevron-bar-down::before { content: "\f274"; }
|
396 |
+
.bi-chevron-bar-expand::before { content: "\f275"; }
|
397 |
+
.bi-chevron-bar-left::before { content: "\f276"; }
|
398 |
+
.bi-chevron-bar-right::before { content: "\f277"; }
|
399 |
+
.bi-chevron-bar-up::before { content: "\f278"; }
|
400 |
+
.bi-chevron-compact-down::before { content: "\f279"; }
|
401 |
+
.bi-chevron-compact-left::before { content: "\f27a"; }
|
402 |
+
.bi-chevron-compact-right::before { content: "\f27b"; }
|
403 |
+
.bi-chevron-compact-up::before { content: "\f27c"; }
|
404 |
+
.bi-chevron-contract::before { content: "\f27d"; }
|
405 |
+
.bi-chevron-double-down::before { content: "\f27e"; }
|
406 |
+
.bi-chevron-double-left::before { content: "\f27f"; }
|
407 |
+
.bi-chevron-double-right::before { content: "\f280"; }
|
408 |
+
.bi-chevron-double-up::before { content: "\f281"; }
|
409 |
+
.bi-chevron-down::before { content: "\f282"; }
|
410 |
+
.bi-chevron-expand::before { content: "\f283"; }
|
411 |
+
.bi-chevron-left::before { content: "\f284"; }
|
412 |
+
.bi-chevron-right::before { content: "\f285"; }
|
413 |
+
.bi-chevron-up::before { content: "\f286"; }
|
414 |
+
.bi-circle-fill::before { content: "\f287"; }
|
415 |
+
.bi-circle-half::before { content: "\f288"; }
|
416 |
+
.bi-circle-square::before { content: "\f289"; }
|
417 |
+
.bi-circle::before { content: "\f28a"; }
|
418 |
+
.bi-clipboard-check::before { content: "\f28b"; }
|
419 |
+
.bi-clipboard-data::before { content: "\f28c"; }
|
420 |
+
.bi-clipboard-minus::before { content: "\f28d"; }
|
421 |
+
.bi-clipboard-plus::before { content: "\f28e"; }
|
422 |
+
.bi-clipboard-x::before { content: "\f28f"; }
|
423 |
+
.bi-clipboard::before { content: "\f290"; }
|
424 |
+
.bi-clock-fill::before { content: "\f291"; }
|
425 |
+
.bi-clock-history::before { content: "\f292"; }
|
426 |
+
.bi-clock::before { content: "\f293"; }
|
427 |
+
.bi-cloud-arrow-down-fill::before { content: "\f294"; }
|
428 |
+
.bi-cloud-arrow-down::before { content: "\f295"; }
|
429 |
+
.bi-cloud-arrow-up-fill::before { content: "\f296"; }
|
430 |
+
.bi-cloud-arrow-up::before { content: "\f297"; }
|
431 |
+
.bi-cloud-check-fill::before { content: "\f298"; }
|
432 |
+
.bi-cloud-check::before { content: "\f299"; }
|
433 |
+
.bi-cloud-download-fill::before { content: "\f29a"; }
|
434 |
+
.bi-cloud-download::before { content: "\f29b"; }
|
435 |
+
.bi-cloud-drizzle-fill::before { content: "\f29c"; }
|
436 |
+
.bi-cloud-drizzle::before { content: "\f29d"; }
|
437 |
+
.bi-cloud-fill::before { content: "\f29e"; }
|
438 |
+
.bi-cloud-fog-fill::before { content: "\f29f"; }
|
439 |
+
.bi-cloud-fog::before { content: "\f2a0"; }
|
440 |
+
.bi-cloud-fog2-fill::before { content: "\f2a1"; }
|
441 |
+
.bi-cloud-fog2::before { content: "\f2a2"; }
|
442 |
+
.bi-cloud-hail-fill::before { content: "\f2a3"; }
|
443 |
+
.bi-cloud-hail::before { content: "\f2a4"; }
|
444 |
+
.bi-cloud-haze-1::before { content: "\f2a5"; }
|
445 |
+
.bi-cloud-haze-fill::before { content: "\f2a6"; }
|
446 |
+
.bi-cloud-haze::before { content: "\f2a7"; }
|
447 |
+
.bi-cloud-haze2-fill::before { content: "\f2a8"; }
|
448 |
+
.bi-cloud-lightning-fill::before { content: "\f2a9"; }
|
449 |
+
.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; }
|
450 |
+
.bi-cloud-lightning-rain::before { content: "\f2ab"; }
|
451 |
+
.bi-cloud-lightning::before { content: "\f2ac"; }
|
452 |
+
.bi-cloud-minus-fill::before { content: "\f2ad"; }
|
453 |
+
.bi-cloud-minus::before { content: "\f2ae"; }
|
454 |
+
.bi-cloud-moon-fill::before { content: "\f2af"; }
|
455 |
+
.bi-cloud-moon::before { content: "\f2b0"; }
|
456 |
+
.bi-cloud-plus-fill::before { content: "\f2b1"; }
|
457 |
+
.bi-cloud-plus::before { content: "\f2b2"; }
|
458 |
+
.bi-cloud-rain-fill::before { content: "\f2b3"; }
|
459 |
+
.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; }
|
460 |
+
.bi-cloud-rain-heavy::before { content: "\f2b5"; }
|
461 |
+
.bi-cloud-rain::before { content: "\f2b6"; }
|
462 |
+
.bi-cloud-slash-fill::before { content: "\f2b7"; }
|
463 |
+
.bi-cloud-slash::before { content: "\f2b8"; }
|
464 |
+
.bi-cloud-sleet-fill::before { content: "\f2b9"; }
|
465 |
+
.bi-cloud-sleet::before { content: "\f2ba"; }
|
466 |
+
.bi-cloud-snow-fill::before { content: "\f2bb"; }
|
467 |
+
.bi-cloud-snow::before { content: "\f2bc"; }
|
468 |
+
.bi-cloud-sun-fill::before { content: "\f2bd"; }
|
469 |
+
.bi-cloud-sun::before { content: "\f2be"; }
|
470 |
+
.bi-cloud-upload-fill::before { content: "\f2bf"; }
|
471 |
+
.bi-cloud-upload::before { content: "\f2c0"; }
|
472 |
+
.bi-cloud::before { content: "\f2c1"; }
|
473 |
+
.bi-clouds-fill::before { content: "\f2c2"; }
|
474 |
+
.bi-clouds::before { content: "\f2c3"; }
|
475 |
+
.bi-cloudy-fill::before { content: "\f2c4"; }
|
476 |
+
.bi-cloudy::before { content: "\f2c5"; }
|
477 |
+
.bi-code-slash::before { content: "\f2c6"; }
|
478 |
+
.bi-code-square::before { content: "\f2c7"; }
|
479 |
+
.bi-code::before { content: "\f2c8"; }
|
480 |
+
.bi-collection-fill::before { content: "\f2c9"; }
|
481 |
+
.bi-collection-play-fill::before { content: "\f2ca"; }
|
482 |
+
.bi-collection-play::before { content: "\f2cb"; }
|
483 |
+
.bi-collection::before { content: "\f2cc"; }
|
484 |
+
.bi-columns-gap::before { content: "\f2cd"; }
|
485 |
+
.bi-columns::before { content: "\f2ce"; }
|
486 |
+
.bi-command::before { content: "\f2cf"; }
|
487 |
+
.bi-compass-fill::before { content: "\f2d0"; }
|
488 |
+
.bi-compass::before { content: "\f2d1"; }
|
489 |
+
.bi-cone-striped::before { content: "\f2d2"; }
|
490 |
+
.bi-cone::before { content: "\f2d3"; }
|
491 |
+
.bi-controller::before { content: "\f2d4"; }
|
492 |
+
.bi-cpu-fill::before { content: "\f2d5"; }
|
493 |
+
.bi-cpu::before { content: "\f2d6"; }
|
494 |
+
.bi-credit-card-2-back-fill::before { content: "\f2d7"; }
|
495 |
+
.bi-credit-card-2-back::before { content: "\f2d8"; }
|
496 |
+
.bi-credit-card-2-front-fill::before { content: "\f2d9"; }
|
497 |
+
.bi-credit-card-2-front::before { content: "\f2da"; }
|
498 |
+
.bi-credit-card-fill::before { content: "\f2db"; }
|
499 |
+
.bi-credit-card::before { content: "\f2dc"; }
|
500 |
+
.bi-crop::before { content: "\f2dd"; }
|
501 |
+
.bi-cup-fill::before { content: "\f2de"; }
|
502 |
+
.bi-cup-straw::before { content: "\f2df"; }
|
503 |
+
.bi-cup::before { content: "\f2e0"; }
|
504 |
+
.bi-cursor-fill::before { content: "\f2e1"; }
|
505 |
+
.bi-cursor-text::before { content: "\f2e2"; }
|
506 |
+
.bi-cursor::before { content: "\f2e3"; }
|
507 |
+
.bi-dash-circle-dotted::before { content: "\f2e4"; }
|
508 |
+
.bi-dash-circle-fill::before { content: "\f2e5"; }
|
509 |
+
.bi-dash-circle::before { content: "\f2e6"; }
|
510 |
+
.bi-dash-square-dotted::before { content: "\f2e7"; }
|
511 |
+
.bi-dash-square-fill::before { content: "\f2e8"; }
|
512 |
+
.bi-dash-square::before { content: "\f2e9"; }
|
513 |
+
.bi-dash::before { content: "\f2ea"; }
|
514 |
+
.bi-diagram-2-fill::before { content: "\f2eb"; }
|
515 |
+
.bi-diagram-2::before { content: "\f2ec"; }
|
516 |
+
.bi-diagram-3-fill::before { content: "\f2ed"; }
|
517 |
+
.bi-diagram-3::before { content: "\f2ee"; }
|
518 |
+
.bi-diamond-fill::before { content: "\f2ef"; }
|
519 |
+
.bi-diamond-half::before { content: "\f2f0"; }
|
520 |
+
.bi-diamond::before { content: "\f2f1"; }
|
521 |
+
.bi-dice-1-fill::before { content: "\f2f2"; }
|
522 |
+
.bi-dice-1::before { content: "\f2f3"; }
|
523 |
+
.bi-dice-2-fill::before { content: "\f2f4"; }
|
524 |
+
.bi-dice-2::before { content: "\f2f5"; }
|
525 |
+
.bi-dice-3-fill::before { content: "\f2f6"; }
|
526 |
+
.bi-dice-3::before { content: "\f2f7"; }
|
527 |
+
.bi-dice-4-fill::before { content: "\f2f8"; }
|
528 |
+
.bi-dice-4::before { content: "\f2f9"; }
|
529 |
+
.bi-dice-5-fill::before { content: "\f2fa"; }
|
530 |
+
.bi-dice-5::before { content: "\f2fb"; }
|
531 |
+
.bi-dice-6-fill::before { content: "\f2fc"; }
|
532 |
+
.bi-dice-6::before { content: "\f2fd"; }
|
533 |
+
.bi-disc-fill::before { content: "\f2fe"; }
|
534 |
+
.bi-disc::before { content: "\f2ff"; }
|
535 |
+
.bi-discord::before { content: "\f300"; }
|
536 |
+
.bi-display-fill::before { content: "\f301"; }
|
537 |
+
.bi-display::before { content: "\f302"; }
|
538 |
+
.bi-distribute-horizontal::before { content: "\f303"; }
|
539 |
+
.bi-distribute-vertical::before { content: "\f304"; }
|
540 |
+
.bi-door-closed-fill::before { content: "\f305"; }
|
541 |
+
.bi-door-closed::before { content: "\f306"; }
|
542 |
+
.bi-door-open-fill::before { content: "\f307"; }
|
543 |
+
.bi-door-open::before { content: "\f308"; }
|
544 |
+
.bi-dot::before { content: "\f309"; }
|
545 |
+
.bi-download::before { content: "\f30a"; }
|
546 |
+
.bi-droplet-fill::before { content: "\f30b"; }
|
547 |
+
.bi-droplet-half::before { content: "\f30c"; }
|
548 |
+
.bi-droplet::before { content: "\f30d"; }
|
549 |
+
.bi-earbuds::before { content: "\f30e"; }
|
550 |
+
.bi-easel-fill::before { content: "\f30f"; }
|
551 |
+
.bi-easel::before { content: "\f310"; }
|
552 |
+
.bi-egg-fill::before { content: "\f311"; }
|
553 |
+
.bi-egg-fried::before { content: "\f312"; }
|
554 |
+
.bi-egg::before { content: "\f313"; }
|
555 |
+
.bi-eject-fill::before { content: "\f314"; }
|
556 |
+
.bi-eject::before { content: "\f315"; }
|
557 |
+
.bi-emoji-angry-fill::before { content: "\f316"; }
|
558 |
+
.bi-emoji-angry::before { content: "\f317"; }
|
559 |
+
.bi-emoji-dizzy-fill::before { content: "\f318"; }
|
560 |
+
.bi-emoji-dizzy::before { content: "\f319"; }
|
561 |
+
.bi-emoji-expressionless-fill::before { content: "\f31a"; }
|
562 |
+
.bi-emoji-expressionless::before { content: "\f31b"; }
|
563 |
+
.bi-emoji-frown-fill::before { content: "\f31c"; }
|
564 |
+
.bi-emoji-frown::before { content: "\f31d"; }
|
565 |
+
.bi-emoji-heart-eyes-fill::before { content: "\f31e"; }
|
566 |
+
.bi-emoji-heart-eyes::before { content: "\f31f"; }
|
567 |
+
.bi-emoji-laughing-fill::before { content: "\f320"; }
|
568 |
+
.bi-emoji-laughing::before { content: "\f321"; }
|
569 |
+
.bi-emoji-neutral-fill::before { content: "\f322"; }
|
570 |
+
.bi-emoji-neutral::before { content: "\f323"; }
|
571 |
+
.bi-emoji-smile-fill::before { content: "\f324"; }
|
572 |
+
.bi-emoji-smile-upside-down-fill::before { content: "\f325"; }
|
573 |
+
.bi-emoji-smile-upside-down::before { content: "\f326"; }
|
574 |
+
.bi-emoji-smile::before { content: "\f327"; }
|
575 |
+
.bi-emoji-sunglasses-fill::before { content: "\f328"; }
|
576 |
+
.bi-emoji-sunglasses::before { content: "\f329"; }
|
577 |
+
.bi-emoji-wink-fill::before { content: "\f32a"; }
|
578 |
+
.bi-emoji-wink::before { content: "\f32b"; }
|
579 |
+
.bi-envelope-fill::before { content: "\f32c"; }
|
580 |
+
.bi-envelope-open-fill::before { content: "\f32d"; }
|
581 |
+
.bi-envelope-open::before { content: "\f32e"; }
|
582 |
+
.bi-envelope::before { content: "\f32f"; }
|
583 |
+
.bi-eraser-fill::before { content: "\f330"; }
|
584 |
+
.bi-eraser::before { content: "\f331"; }
|
585 |
+
.bi-exclamation-circle-fill::before { content: "\f332"; }
|
586 |
+
.bi-exclamation-circle::before { content: "\f333"; }
|
587 |
+
.bi-exclamation-diamond-fill::before { content: "\f334"; }
|
588 |
+
.bi-exclamation-diamond::before { content: "\f335"; }
|
589 |
+
.bi-exclamation-octagon-fill::before { content: "\f336"; }
|
590 |
+
.bi-exclamation-octagon::before { content: "\f337"; }
|
591 |
+
.bi-exclamation-square-fill::before { content: "\f338"; }
|
592 |
+
.bi-exclamation-square::before { content: "\f339"; }
|
593 |
+
.bi-exclamation-triangle-fill::before { content: "\f33a"; }
|
594 |
+
.bi-exclamation-triangle::before { content: "\f33b"; }
|
595 |
+
.bi-exclamation::before { content: "\f33c"; }
|
596 |
+
.bi-exclude::before { content: "\f33d"; }
|
597 |
+
.bi-eye-fill::before { content: "\f33e"; }
|
598 |
+
.bi-eye-slash-fill::before { content: "\f33f"; }
|
599 |
+
.bi-eye-slash::before { content: "\f340"; }
|
600 |
+
.bi-eye::before { content: "\f341"; }
|
601 |
+
.bi-eyedropper::before { content: "\f342"; }
|
602 |
+
.bi-eyeglasses::before { content: "\f343"; }
|
603 |
+
.bi-facebook::before { content: "\f344"; }
|
604 |
+
.bi-file-arrow-down-fill::before { content: "\f345"; }
|
605 |
+
.bi-file-arrow-down::before { content: "\f346"; }
|
606 |
+
.bi-file-arrow-up-fill::before { content: "\f347"; }
|
607 |
+
.bi-file-arrow-up::before { content: "\f348"; }
|
608 |
+
.bi-file-bar-graph-fill::before { content: "\f349"; }
|
609 |
+
.bi-file-bar-graph::before { content: "\f34a"; }
|
610 |
+
.bi-file-binary-fill::before { content: "\f34b"; }
|
611 |
+
.bi-file-binary::before { content: "\f34c"; }
|
612 |
+
.bi-file-break-fill::before { content: "\f34d"; }
|
613 |
+
.bi-file-break::before { content: "\f34e"; }
|
614 |
+
.bi-file-check-fill::before { content: "\f34f"; }
|
615 |
+
.bi-file-check::before { content: "\f350"; }
|
616 |
+
.bi-file-code-fill::before { content: "\f351"; }
|
617 |
+
.bi-file-code::before { content: "\f352"; }
|
618 |
+
.bi-file-diff-fill::before { content: "\f353"; }
|
619 |
+
.bi-file-diff::before { content: "\f354"; }
|
620 |
+
.bi-file-earmark-arrow-down-fill::before { content: "\f355"; }
|
621 |
+
.bi-file-earmark-arrow-down::before { content: "\f356"; }
|
622 |
+
.bi-file-earmark-arrow-up-fill::before { content: "\f357"; }
|
623 |
+
.bi-file-earmark-arrow-up::before { content: "\f358"; }
|
624 |
+
.bi-file-earmark-bar-graph-fill::before { content: "\f359"; }
|
625 |
+
.bi-file-earmark-bar-graph::before { content: "\f35a"; }
|
626 |
+
.bi-file-earmark-binary-fill::before { content: "\f35b"; }
|
627 |
+
.bi-file-earmark-binary::before { content: "\f35c"; }
|
628 |
+
.bi-file-earmark-break-fill::before { content: "\f35d"; }
|
629 |
+
.bi-file-earmark-break::before { content: "\f35e"; }
|
630 |
+
.bi-file-earmark-check-fill::before { content: "\f35f"; }
|
631 |
+
.bi-file-earmark-check::before { content: "\f360"; }
|
632 |
+
.bi-file-earmark-code-fill::before { content: "\f361"; }
|
633 |
+
.bi-file-earmark-code::before { content: "\f362"; }
|
634 |
+
.bi-file-earmark-diff-fill::before { content: "\f363"; }
|
635 |
+
.bi-file-earmark-diff::before { content: "\f364"; }
|
636 |
+
.bi-file-earmark-easel-fill::before { content: "\f365"; }
|
637 |
+
.bi-file-earmark-easel::before { content: "\f366"; }
|
638 |
+
.bi-file-earmark-excel-fill::before { content: "\f367"; }
|
639 |
+
.bi-file-earmark-excel::before { content: "\f368"; }
|
640 |
+
.bi-file-earmark-fill::before { content: "\f369"; }
|
641 |
+
.bi-file-earmark-font-fill::before { content: "\f36a"; }
|
642 |
+
.bi-file-earmark-font::before { content: "\f36b"; }
|
643 |
+
.bi-file-earmark-image-fill::before { content: "\f36c"; }
|
644 |
+
.bi-file-earmark-image::before { content: "\f36d"; }
|
645 |
+
.bi-file-earmark-lock-fill::before { content: "\f36e"; }
|
646 |
+
.bi-file-earmark-lock::before { content: "\f36f"; }
|
647 |
+
.bi-file-earmark-lock2-fill::before { content: "\f370"; }
|
648 |
+
.bi-file-earmark-lock2::before { content: "\f371"; }
|
649 |
+
.bi-file-earmark-medical-fill::before { content: "\f372"; }
|
650 |
+
.bi-file-earmark-medical::before { content: "\f373"; }
|
651 |
+
.bi-file-earmark-minus-fill::before { content: "\f374"; }
|
652 |
+
.bi-file-earmark-minus::before { content: "\f375"; }
|
653 |
+
.bi-file-earmark-music-fill::before { content: "\f376"; }
|
654 |
+
.bi-file-earmark-music::before { content: "\f377"; }
|
655 |
+
.bi-file-earmark-person-fill::before { content: "\f378"; }
|
656 |
+
.bi-file-earmark-person::before { content: "\f379"; }
|
657 |
+
.bi-file-earmark-play-fill::before { content: "\f37a"; }
|
658 |
+
.bi-file-earmark-play::before { content: "\f37b"; }
|
659 |
+
.bi-file-earmark-plus-fill::before { content: "\f37c"; }
|
660 |
+
.bi-file-earmark-plus::before { content: "\f37d"; }
|
661 |
+
.bi-file-earmark-post-fill::before { content: "\f37e"; }
|
662 |
+
.bi-file-earmark-post::before { content: "\f37f"; }
|
663 |
+
.bi-file-earmark-ppt-fill::before { content: "\f380"; }
|
664 |
+
.bi-file-earmark-ppt::before { content: "\f381"; }
|
665 |
+
.bi-file-earmark-richtext-fill::before { content: "\f382"; }
|
666 |
+
.bi-file-earmark-richtext::before { content: "\f383"; }
|
667 |
+
.bi-file-earmark-ruled-fill::before { content: "\f384"; }
|
668 |
+
.bi-file-earmark-ruled::before { content: "\f385"; }
|
669 |
+
.bi-file-earmark-slides-fill::before { content: "\f386"; }
|
670 |
+
.bi-file-earmark-slides::before { content: "\f387"; }
|
671 |
+
.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; }
|
672 |
+
.bi-file-earmark-spreadsheet::before { content: "\f389"; }
|
673 |
+
.bi-file-earmark-text-fill::before { content: "\f38a"; }
|
674 |
+
.bi-file-earmark-text::before { content: "\f38b"; }
|
675 |
+
.bi-file-earmark-word-fill::before { content: "\f38c"; }
|
676 |
+
.bi-file-earmark-word::before { content: "\f38d"; }
|
677 |
+
.bi-file-earmark-x-fill::before { content: "\f38e"; }
|
678 |
+
.bi-file-earmark-x::before { content: "\f38f"; }
|
679 |
+
.bi-file-earmark-zip-fill::before { content: "\f390"; }
|
680 |
+
.bi-file-earmark-zip::before { content: "\f391"; }
|
681 |
+
.bi-file-earmark::before { content: "\f392"; }
|
682 |
+
.bi-file-easel-fill::before { content: "\f393"; }
|
683 |
+
.bi-file-easel::before { content: "\f394"; }
|
684 |
+
.bi-file-excel-fill::before { content: "\f395"; }
|
685 |
+
.bi-file-excel::before { content: "\f396"; }
|
686 |
+
.bi-file-fill::before { content: "\f397"; }
|
687 |
+
.bi-file-font-fill::before { content: "\f398"; }
|
688 |
+
.bi-file-font::before { content: "\f399"; }
|
689 |
+
.bi-file-image-fill::before { content: "\f39a"; }
|
690 |
+
.bi-file-image::before { content: "\f39b"; }
|
691 |
+
.bi-file-lock-fill::before { content: "\f39c"; }
|
692 |
+
.bi-file-lock::before { content: "\f39d"; }
|
693 |
+
.bi-file-lock2-fill::before { content: "\f39e"; }
|
694 |
+
.bi-file-lock2::before { content: "\f39f"; }
|
695 |
+
.bi-file-medical-fill::before { content: "\f3a0"; }
|
696 |
+
.bi-file-medical::before { content: "\f3a1"; }
|
697 |
+
.bi-file-minus-fill::before { content: "\f3a2"; }
|
698 |
+
.bi-file-minus::before { content: "\f3a3"; }
|
699 |
+
.bi-file-music-fill::before { content: "\f3a4"; }
|
700 |
+
.bi-file-music::before { content: "\f3a5"; }
|
701 |
+
.bi-file-person-fill::before { content: "\f3a6"; }
|
702 |
+
.bi-file-person::before { content: "\f3a7"; }
|
703 |
+
.bi-file-play-fill::before { content: "\f3a8"; }
|
704 |
+
.bi-file-play::before { content: "\f3a9"; }
|
705 |
+
.bi-file-plus-fill::before { content: "\f3aa"; }
|
706 |
+
.bi-file-plus::before { content: "\f3ab"; }
|
707 |
+
.bi-file-post-fill::before { content: "\f3ac"; }
|
708 |
+
.bi-file-post::before { content: "\f3ad"; }
|
709 |
+
.bi-file-ppt-fill::before { content: "\f3ae"; }
|
710 |
+
.bi-file-ppt::before { content: "\f3af"; }
|
711 |
+
.bi-file-richtext-fill::before { content: "\f3b0"; }
|
712 |
+
.bi-file-richtext::before { content: "\f3b1"; }
|
713 |
+
.bi-file-ruled-fill::before { content: "\f3b2"; }
|
714 |
+
.bi-file-ruled::before { content: "\f3b3"; }
|
715 |
+
.bi-file-slides-fill::before { content: "\f3b4"; }
|
716 |
+
.bi-file-slides::before { content: "\f3b5"; }
|
717 |
+
.bi-file-spreadsheet-fill::before { content: "\f3b6"; }
|
718 |
+
.bi-file-spreadsheet::before { content: "\f3b7"; }
|
719 |
+
.bi-file-text-fill::before { content: "\f3b8"; }
|
720 |
+
.bi-file-text::before { content: "\f3b9"; }
|
721 |
+
.bi-file-word-fill::before { content: "\f3ba"; }
|
722 |
+
.bi-file-word::before { content: "\f3bb"; }
|
723 |
+
.bi-file-x-fill::before { content: "\f3bc"; }
|
724 |
+
.bi-file-x::before { content: "\f3bd"; }
|
725 |
+
.bi-file-zip-fill::before { content: "\f3be"; }
|
726 |
+
.bi-file-zip::before { content: "\f3bf"; }
|
727 |
+
.bi-file::before { content: "\f3c0"; }
|
728 |
+
.bi-files-alt::before { content: "\f3c1"; }
|
729 |
+
.bi-files::before { content: "\f3c2"; }
|
730 |
+
.bi-film::before { content: "\f3c3"; }
|
731 |
+
.bi-filter-circle-fill::before { content: "\f3c4"; }
|
732 |
+
.bi-filter-circle::before { content: "\f3c5"; }
|
733 |
+
.bi-filter-left::before { content: "\f3c6"; }
|
734 |
+
.bi-filter-right::before { content: "\f3c7"; }
|
735 |
+
.bi-filter-square-fill::before { content: "\f3c8"; }
|
736 |
+
.bi-filter-square::before { content: "\f3c9"; }
|
737 |
+
.bi-filter::before { content: "\f3ca"; }
|
738 |
+
.bi-flag-fill::before { content: "\f3cb"; }
|
739 |
+
.bi-flag::before { content: "\f3cc"; }
|
740 |
+
.bi-flower1::before { content: "\f3cd"; }
|
741 |
+
.bi-flower2::before { content: "\f3ce"; }
|
742 |
+
.bi-flower3::before { content: "\f3cf"; }
|
743 |
+
.bi-folder-check::before { content: "\f3d0"; }
|
744 |
+
.bi-folder-fill::before { content: "\f3d1"; }
|
745 |
+
.bi-folder-minus::before { content: "\f3d2"; }
|
746 |
+
.bi-folder-plus::before { content: "\f3d3"; }
|
747 |
+
.bi-folder-symlink-fill::before { content: "\f3d4"; }
|
748 |
+
.bi-folder-symlink::before { content: "\f3d5"; }
|
749 |
+
.bi-folder-x::before { content: "\f3d6"; }
|
750 |
+
.bi-folder::before { content: "\f3d7"; }
|
751 |
+
.bi-folder2-open::before { content: "\f3d8"; }
|
752 |
+
.bi-folder2::before { content: "\f3d9"; }
|
753 |
+
.bi-fonts::before { content: "\f3da"; }
|
754 |
+
.bi-forward-fill::before { content: "\f3db"; }
|
755 |
+
.bi-forward::before { content: "\f3dc"; }
|
756 |
+
.bi-front::before { content: "\f3dd"; }
|
757 |
+
.bi-fullscreen-exit::before { content: "\f3de"; }
|
758 |
+
.bi-fullscreen::before { content: "\f3df"; }
|
759 |
+
.bi-funnel-fill::before { content: "\f3e0"; }
|
760 |
+
.bi-funnel::before { content: "\f3e1"; }
|
761 |
+
.bi-gear-fill::before { content: "\f3e2"; }
|
762 |
+
.bi-gear-wide-connected::before { content: "\f3e3"; }
|
763 |
+
.bi-gear-wide::before { content: "\f3e4"; }
|
764 |
+
.bi-gear::before { content: "\f3e5"; }
|
765 |
+
.bi-gem::before { content: "\f3e6"; }
|
766 |
+
.bi-geo-alt-fill::before { content: "\f3e7"; }
|
767 |
+
.bi-geo-alt::before { content: "\f3e8"; }
|
768 |
+
.bi-geo-fill::before { content: "\f3e9"; }
|
769 |
+
.bi-geo::before { content: "\f3ea"; }
|
770 |
+
.bi-gift-fill::before { content: "\f3eb"; }
|
771 |
+
.bi-gift::before { content: "\f3ec"; }
|
772 |
+
.bi-github::before { content: "\f3ed"; }
|
773 |
+
.bi-globe::before { content: "\f3ee"; }
|
774 |
+
.bi-globe2::before { content: "\f3ef"; }
|
775 |
+
.bi-google::before { content: "\f3f0"; }
|
776 |
+
.bi-graph-down::before { content: "\f3f1"; }
|
777 |
+
.bi-graph-up::before { content: "\f3f2"; }
|
778 |
+
.bi-grid-1x2-fill::before { content: "\f3f3"; }
|
779 |
+
.bi-grid-1x2::before { content: "\f3f4"; }
|
780 |
+
.bi-grid-3x2-gap-fill::before { content: "\f3f5"; }
|
781 |
+
.bi-grid-3x2-gap::before { content: "\f3f6"; }
|
782 |
+
.bi-grid-3x2::before { content: "\f3f7"; }
|
783 |
+
.bi-grid-3x3-gap-fill::before { content: "\f3f8"; }
|
784 |
+
.bi-grid-3x3-gap::before { content: "\f3f9"; }
|
785 |
+
.bi-grid-3x3::before { content: "\f3fa"; }
|
786 |
+
.bi-grid-fill::before { content: "\f3fb"; }
|
787 |
+
.bi-grid::before { content: "\f3fc"; }
|
788 |
+
.bi-grip-horizontal::before { content: "\f3fd"; }
|
789 |
+
.bi-grip-vertical::before { content: "\f3fe"; }
|
790 |
+
.bi-hammer::before { content: "\f3ff"; }
|
791 |
+
.bi-hand-index-fill::before { content: "\f400"; }
|
792 |
+
.bi-hand-index-thumb-fill::before { content: "\f401"; }
|
793 |
+
.bi-hand-index-thumb::before { content: "\f402"; }
|
794 |
+
.bi-hand-index::before { content: "\f403"; }
|
795 |
+
.bi-hand-thumbs-down-fill::before { content: "\f404"; }
|
796 |
+
.bi-hand-thumbs-down::before { content: "\f405"; }
|
797 |
+
.bi-hand-thumbs-up-fill::before { content: "\f406"; }
|
798 |
+
.bi-hand-thumbs-up::before { content: "\f407"; }
|
799 |
+
.bi-handbag-fill::before { content: "\f408"; }
|
800 |
+
.bi-handbag::before { content: "\f409"; }
|
801 |
+
.bi-hash::before { content: "\f40a"; }
|
802 |
+
.bi-hdd-fill::before { content: "\f40b"; }
|
803 |
+
.bi-hdd-network-fill::before { content: "\f40c"; }
|
804 |
+
.bi-hdd-network::before { content: "\f40d"; }
|
805 |
+
.bi-hdd-rack-fill::before { content: "\f40e"; }
|
806 |
+
.bi-hdd-rack::before { content: "\f40f"; }
|
807 |
+
.bi-hdd-stack-fill::before { content: "\f410"; }
|
808 |
+
.bi-hdd-stack::before { content: "\f411"; }
|
809 |
+
.bi-hdd::before { content: "\f412"; }
|
810 |
+
.bi-headphones::before { content: "\f413"; }
|
811 |
+
.bi-headset::before { content: "\f414"; }
|
812 |
+
.bi-heart-fill::before { content: "\f415"; }
|
813 |
+
.bi-heart-half::before { content: "\f416"; }
|
814 |
+
.bi-heart::before { content: "\f417"; }
|
815 |
+
.bi-heptagon-fill::before { content: "\f418"; }
|
816 |
+
.bi-heptagon-half::before { content: "\f419"; }
|
817 |
+
.bi-heptagon::before { content: "\f41a"; }
|
818 |
+
.bi-hexagon-fill::before { content: "\f41b"; }
|
819 |
+
.bi-hexagon-half::before { content: "\f41c"; }
|
820 |
+
.bi-hexagon::before { content: "\f41d"; }
|
821 |
+
.bi-hourglass-bottom::before { content: "\f41e"; }
|
822 |
+
.bi-hourglass-split::before { content: "\f41f"; }
|
823 |
+
.bi-hourglass-top::before { content: "\f420"; }
|
824 |
+
.bi-hourglass::before { content: "\f421"; }
|
825 |
+
.bi-house-door-fill::before { content: "\f422"; }
|
826 |
+
.bi-house-door::before { content: "\f423"; }
|
827 |
+
.bi-house-fill::before { content: "\f424"; }
|
828 |
+
.bi-house::before { content: "\f425"; }
|
829 |
+
.bi-hr::before { content: "\f426"; }
|
830 |
+
.bi-hurricane::before { content: "\f427"; }
|
831 |
+
.bi-image-alt::before { content: "\f428"; }
|
832 |
+
.bi-image-fill::before { content: "\f429"; }
|
833 |
+
.bi-image::before { content: "\f42a"; }
|
834 |
+
.bi-images::before { content: "\f42b"; }
|
835 |
+
.bi-inbox-fill::before { content: "\f42c"; }
|
836 |
+
.bi-inbox::before { content: "\f42d"; }
|
837 |
+
.bi-inboxes-fill::before { content: "\f42e"; }
|
838 |
+
.bi-inboxes::before { content: "\f42f"; }
|
839 |
+
.bi-info-circle-fill::before { content: "\f430"; }
|
840 |
+
.bi-info-circle::before { content: "\f431"; }
|
841 |
+
.bi-info-square-fill::before { content: "\f432"; }
|
842 |
+
.bi-info-square::before { content: "\f433"; }
|
843 |
+
.bi-info::before { content: "\f434"; }
|
844 |
+
.bi-input-cursor-text::before { content: "\f435"; }
|
845 |
+
.bi-input-cursor::before { content: "\f436"; }
|
846 |
+
.bi-instagram::before { content: "\f437"; }
|
847 |
+
.bi-intersect::before { content: "\f438"; }
|
848 |
+
.bi-journal-album::before { content: "\f439"; }
|
849 |
+
.bi-journal-arrow-down::before { content: "\f43a"; }
|
850 |
+
.bi-journal-arrow-up::before { content: "\f43b"; }
|
851 |
+
.bi-journal-bookmark-fill::before { content: "\f43c"; }
|
852 |
+
.bi-journal-bookmark::before { content: "\f43d"; }
|
853 |
+
.bi-journal-check::before { content: "\f43e"; }
|
854 |
+
.bi-journal-code::before { content: "\f43f"; }
|
855 |
+
.bi-journal-medical::before { content: "\f440"; }
|
856 |
+
.bi-journal-minus::before { content: "\f441"; }
|
857 |
+
.bi-journal-plus::before { content: "\f442"; }
|
858 |
+
.bi-journal-richtext::before { content: "\f443"; }
|
859 |
+
.bi-journal-text::before { content: "\f444"; }
|
860 |
+
.bi-journal-x::before { content: "\f445"; }
|
861 |
+
.bi-journal::before { content: "\f446"; }
|
862 |
+
.bi-journals::before { content: "\f447"; }
|
863 |
+
.bi-joystick::before { content: "\f448"; }
|
864 |
+
.bi-justify-left::before { content: "\f449"; }
|
865 |
+
.bi-justify-right::before { content: "\f44a"; }
|
866 |
+
.bi-justify::before { content: "\f44b"; }
|
867 |
+
.bi-kanban-fill::before { content: "\f44c"; }
|
868 |
+
.bi-kanban::before { content: "\f44d"; }
|
869 |
+
.bi-key-fill::before { content: "\f44e"; }
|
870 |
+
.bi-key::before { content: "\f44f"; }
|
871 |
+
.bi-keyboard-fill::before { content: "\f450"; }
|
872 |
+
.bi-keyboard::before { content: "\f451"; }
|
873 |
+
.bi-ladder::before { content: "\f452"; }
|
874 |
+
.bi-lamp-fill::before { content: "\f453"; }
|
875 |
+
.bi-lamp::before { content: "\f454"; }
|
876 |
+
.bi-laptop-fill::before { content: "\f455"; }
|
877 |
+
.bi-laptop::before { content: "\f456"; }
|
878 |
+
.bi-layer-backward::before { content: "\f457"; }
|
879 |
+
.bi-layer-forward::before { content: "\f458"; }
|
880 |
+
.bi-layers-fill::before { content: "\f459"; }
|
881 |
+
.bi-layers-half::before { content: "\f45a"; }
|
882 |
+
.bi-layers::before { content: "\f45b"; }
|
883 |
+
.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; }
|
884 |
+
.bi-layout-sidebar-inset::before { content: "\f45d"; }
|
885 |
+
.bi-layout-sidebar-reverse::before { content: "\f45e"; }
|
886 |
+
.bi-layout-sidebar::before { content: "\f45f"; }
|
887 |
+
.bi-layout-split::before { content: "\f460"; }
|
888 |
+
.bi-layout-text-sidebar-reverse::before { content: "\f461"; }
|
889 |
+
.bi-layout-text-sidebar::before { content: "\f462"; }
|
890 |
+
.bi-layout-text-window-reverse::before { content: "\f463"; }
|
891 |
+
.bi-layout-text-window::before { content: "\f464"; }
|
892 |
+
.bi-layout-three-columns::before { content: "\f465"; }
|
893 |
+
.bi-layout-wtf::before { content: "\f466"; }
|
894 |
+
.bi-life-preserver::before { content: "\f467"; }
|
895 |
+
.bi-lightbulb-fill::before { content: "\f468"; }
|
896 |
+
.bi-lightbulb-off-fill::before { content: "\f469"; }
|
897 |
+
.bi-lightbulb-off::before { content: "\f46a"; }
|
898 |
+
.bi-lightbulb::before { content: "\f46b"; }
|
899 |
+
.bi-lightning-charge-fill::before { content: "\f46c"; }
|
900 |
+
.bi-lightning-charge::before { content: "\f46d"; }
|
901 |
+
.bi-lightning-fill::before { content: "\f46e"; }
|
902 |
+
.bi-lightning::before { content: "\f46f"; }
|
903 |
+
.bi-link-45deg::before { content: "\f470"; }
|
904 |
+
.bi-link::before { content: "\f471"; }
|
905 |
+
.bi-linkedin::before { content: "\f472"; }
|
906 |
+
.bi-list-check::before { content: "\f473"; }
|
907 |
+
.bi-list-nested::before { content: "\f474"; }
|
908 |
+
.bi-list-ol::before { content: "\f475"; }
|
909 |
+
.bi-list-stars::before { content: "\f476"; }
|
910 |
+
.bi-list-task::before { content: "\f477"; }
|
911 |
+
.bi-list-ul::before { content: "\f478"; }
|
912 |
+
.bi-list::before { content: "\f479"; }
|
913 |
+
.bi-lock-fill::before { content: "\f47a"; }
|
914 |
+
.bi-lock::before { content: "\f47b"; }
|
915 |
+
.bi-mailbox::before { content: "\f47c"; }
|
916 |
+
.bi-mailbox2::before { content: "\f47d"; }
|
917 |
+
.bi-map-fill::before { content: "\f47e"; }
|
918 |
+
.bi-map::before { content: "\f47f"; }
|
919 |
+
.bi-markdown-fill::before { content: "\f480"; }
|
920 |
+
.bi-markdown::before { content: "\f481"; }
|
921 |
+
.bi-mask::before { content: "\f482"; }
|
922 |
+
.bi-megaphone-fill::before { content: "\f483"; }
|
923 |
+
.bi-megaphone::before { content: "\f484"; }
|
924 |
+
.bi-menu-app-fill::before { content: "\f485"; }
|
925 |
+
.bi-menu-app::before { content: "\f486"; }
|
926 |
+
.bi-menu-button-fill::before { content: "\f487"; }
|
927 |
+
.bi-menu-button-wide-fill::before { content: "\f488"; }
|
928 |
+
.bi-menu-button-wide::before { content: "\f489"; }
|
929 |
+
.bi-menu-button::before { content: "\f48a"; }
|
930 |
+
.bi-menu-down::before { content: "\f48b"; }
|
931 |
+
.bi-menu-up::before { content: "\f48c"; }
|
932 |
+
.bi-mic-fill::before { content: "\f48d"; }
|
933 |
+
.bi-mic-mute-fill::before { content: "\f48e"; }
|
934 |
+
.bi-mic-mute::before { content: "\f48f"; }
|
935 |
+
.bi-mic::before { content: "\f490"; }
|
936 |
+
.bi-minecart-loaded::before { content: "\f491"; }
|
937 |
+
.bi-minecart::before { content: "\f492"; }
|
938 |
+
.bi-moisture::before { content: "\f493"; }
|
939 |
+
.bi-moon-fill::before { content: "\f494"; }
|
940 |
+
.bi-moon-stars-fill::before { content: "\f495"; }
|
941 |
+
.bi-moon-stars::before { content: "\f496"; }
|
942 |
+
.bi-moon::before { content: "\f497"; }
|
943 |
+
.bi-mouse-fill::before { content: "\f498"; }
|
944 |
+
.bi-mouse::before { content: "\f499"; }
|
945 |
+
.bi-mouse2-fill::before { content: "\f49a"; }
|
946 |
+
.bi-mouse2::before { content: "\f49b"; }
|
947 |
+
.bi-mouse3-fill::before { content: "\f49c"; }
|
948 |
+
.bi-mouse3::before { content: "\f49d"; }
|
949 |
+
.bi-music-note-beamed::before { content: "\f49e"; }
|
950 |
+
.bi-music-note-list::before { content: "\f49f"; }
|
951 |
+
.bi-music-note::before { content: "\f4a0"; }
|
952 |
+
.bi-music-player-fill::before { content: "\f4a1"; }
|
953 |
+
.bi-music-player::before { content: "\f4a2"; }
|
954 |
+
.bi-newspaper::before { content: "\f4a3"; }
|
955 |
+
.bi-node-minus-fill::before { content: "\f4a4"; }
|
956 |
+
.bi-node-minus::before { content: "\f4a5"; }
|
957 |
+
.bi-node-plus-fill::before { content: "\f4a6"; }
|
958 |
+
.bi-node-plus::before { content: "\f4a7"; }
|
959 |
+
.bi-nut-fill::before { content: "\f4a8"; }
|
960 |
+
.bi-nut::before { content: "\f4a9"; }
|
961 |
+
.bi-octagon-fill::before { content: "\f4aa"; }
|
962 |
+
.bi-octagon-half::before { content: "\f4ab"; }
|
963 |
+
.bi-octagon::before { content: "\f4ac"; }
|
964 |
+
.bi-option::before { content: "\f4ad"; }
|
965 |
+
.bi-outlet::before { content: "\f4ae"; }
|
966 |
+
.bi-paint-bucket::before { content: "\f4af"; }
|
967 |
+
.bi-palette-fill::before { content: "\f4b0"; }
|
968 |
+
.bi-palette::before { content: "\f4b1"; }
|
969 |
+
.bi-palette2::before { content: "\f4b2"; }
|
970 |
+
.bi-paperclip::before { content: "\f4b3"; }
|
971 |
+
.bi-paragraph::before { content: "\f4b4"; }
|
972 |
+
.bi-patch-check-fill::before { content: "\f4b5"; }
|
973 |
+
.bi-patch-check::before { content: "\f4b6"; }
|
974 |
+
.bi-patch-exclamation-fill::before { content: "\f4b7"; }
|
975 |
+
.bi-patch-exclamation::before { content: "\f4b8"; }
|
976 |
+
.bi-patch-minus-fill::before { content: "\f4b9"; }
|
977 |
+
.bi-patch-minus::before { content: "\f4ba"; }
|
978 |
+
.bi-patch-plus-fill::before { content: "\f4bb"; }
|
979 |
+
.bi-patch-plus::before { content: "\f4bc"; }
|
980 |
+
.bi-patch-question-fill::before { content: "\f4bd"; }
|
981 |
+
.bi-patch-question::before { content: "\f4be"; }
|
982 |
+
.bi-pause-btn-fill::before { content: "\f4bf"; }
|
983 |
+
.bi-pause-btn::before { content: "\f4c0"; }
|
984 |
+
.bi-pause-circle-fill::before { content: "\f4c1"; }
|
985 |
+
.bi-pause-circle::before { content: "\f4c2"; }
|
986 |
+
.bi-pause-fill::before { content: "\f4c3"; }
|
987 |
+
.bi-pause::before { content: "\f4c4"; }
|
988 |
+
.bi-peace-fill::before { content: "\f4c5"; }
|
989 |
+
.bi-peace::before { content: "\f4c6"; }
|
990 |
+
.bi-pen-fill::before { content: "\f4c7"; }
|
991 |
+
.bi-pen::before { content: "\f4c8"; }
|
992 |
+
.bi-pencil-fill::before { content: "\f4c9"; }
|
993 |
+
.bi-pencil-square::before { content: "\f4ca"; }
|
994 |
+
.bi-pencil::before { content: "\f4cb"; }
|
995 |
+
.bi-pentagon-fill::before { content: "\f4cc"; }
|
996 |
+
.bi-pentagon-half::before { content: "\f4cd"; }
|
997 |
+
.bi-pentagon::before { content: "\f4ce"; }
|
998 |
+
.bi-people-fill::before { content: "\f4cf"; }
|
999 |
+
.bi-people::before { content: "\f4d0"; }
|
1000 |
+
.bi-percent::before { content: "\f4d1"; }
|
1001 |
+
.bi-person-badge-fill::before { content: "\f4d2"; }
|
1002 |
+
.bi-person-badge::before { content: "\f4d3"; }
|
1003 |
+
.bi-person-bounding-box::before { content: "\f4d4"; }
|
1004 |
+
.bi-person-check-fill::before { content: "\f4d5"; }
|
1005 |
+
.bi-person-check::before { content: "\f4d6"; }
|
1006 |
+
.bi-person-circle::before { content: "\f4d7"; }
|
1007 |
+
.bi-person-dash-fill::before { content: "\f4d8"; }
|
1008 |
+
.bi-person-dash::before { content: "\f4d9"; }
|
1009 |
+
.bi-person-fill::before { content: "\f4da"; }
|
1010 |
+
.bi-person-lines-fill::before { content: "\f4db"; }
|
1011 |
+
.bi-person-plus-fill::before { content: "\f4dc"; }
|
1012 |
+
.bi-person-plus::before { content: "\f4dd"; }
|
1013 |
+
.bi-person-square::before { content: "\f4de"; }
|
1014 |
+
.bi-person-x-fill::before { content: "\f4df"; }
|
1015 |
+
.bi-person-x::before { content: "\f4e0"; }
|
1016 |
+
.bi-person::before { content: "\f4e1"; }
|
1017 |
+
.bi-phone-fill::before { content: "\f4e2"; }
|
1018 |
+
.bi-phone-landscape-fill::before { content: "\f4e3"; }
|
1019 |
+
.bi-phone-landscape::before { content: "\f4e4"; }
|
1020 |
+
.bi-phone-vibrate-fill::before { content: "\f4e5"; }
|
1021 |
+
.bi-phone-vibrate::before { content: "\f4e6"; }
|
1022 |
+
.bi-phone::before { content: "\f4e7"; }
|
1023 |
+
.bi-pie-chart-fill::before { content: "\f4e8"; }
|
1024 |
+
.bi-pie-chart::before { content: "\f4e9"; }
|
1025 |
+
.bi-pin-angle-fill::before { content: "\f4ea"; }
|
1026 |
+
.bi-pin-angle::before { content: "\f4eb"; }
|
1027 |
+
.bi-pin-fill::before { content: "\f4ec"; }
|
1028 |
+
.bi-pin::before { content: "\f4ed"; }
|
1029 |
+
.bi-pip-fill::before { content: "\f4ee"; }
|
1030 |
+
.bi-pip::before { content: "\f4ef"; }
|
1031 |
+
.bi-play-btn-fill::before { content: "\f4f0"; }
|
1032 |
+
.bi-play-btn::before { content: "\f4f1"; }
|
1033 |
+
.bi-play-circle-fill::before { content: "\f4f2"; }
|
1034 |
+
.bi-play-circle::before { content: "\f4f3"; }
|
1035 |
+
.bi-play-fill::before { content: "\f4f4"; }
|
1036 |
+
.bi-play::before { content: "\f4f5"; }
|
1037 |
+
.bi-plug-fill::before { content: "\f4f6"; }
|
1038 |
+
.bi-plug::before { content: "\f4f7"; }
|
1039 |
+
.bi-plus-circle-dotted::before { content: "\f4f8"; }
|
1040 |
+
.bi-plus-circle-fill::before { content: "\f4f9"; }
|
1041 |
+
.bi-plus-circle::before { content: "\f4fa"; }
|
1042 |
+
.bi-plus-square-dotted::before { content: "\f4fb"; }
|
1043 |
+
.bi-plus-square-fill::before { content: "\f4fc"; }
|
1044 |
+
.bi-plus-square::before { content: "\f4fd"; }
|
1045 |
+
.bi-plus::before { content: "\f4fe"; }
|
1046 |
+
.bi-power::before { content: "\f4ff"; }
|
1047 |
+
.bi-printer-fill::before { content: "\f500"; }
|
1048 |
+
.bi-printer::before { content: "\f501"; }
|
1049 |
+
.bi-puzzle-fill::before { content: "\f502"; }
|
1050 |
+
.bi-puzzle::before { content: "\f503"; }
|
1051 |
+
.bi-question-circle-fill::before { content: "\f504"; }
|
1052 |
+
.bi-question-circle::before { content: "\f505"; }
|
1053 |
+
.bi-question-diamond-fill::before { content: "\f506"; }
|
1054 |
+
.bi-question-diamond::before { content: "\f507"; }
|
1055 |
+
.bi-question-octagon-fill::before { content: "\f508"; }
|
1056 |
+
.bi-question-octagon::before { content: "\f509"; }
|
1057 |
+
.bi-question-square-fill::before { content: "\f50a"; }
|
1058 |
+
.bi-question-square::before { content: "\f50b"; }
|
1059 |
+
.bi-question::before { content: "\f50c"; }
|
1060 |
+
.bi-rainbow::before { content: "\f50d"; }
|
1061 |
+
.bi-receipt-cutoff::before { content: "\f50e"; }
|
1062 |
+
.bi-receipt::before { content: "\f50f"; }
|
1063 |
+
.bi-reception-0::before { content: "\f510"; }
|
1064 |
+
.bi-reception-1::before { content: "\f511"; }
|
1065 |
+
.bi-reception-2::before { content: "\f512"; }
|
1066 |
+
.bi-reception-3::before { content: "\f513"; }
|
1067 |
+
.bi-reception-4::before { content: "\f514"; }
|
1068 |
+
.bi-record-btn-fill::before { content: "\f515"; }
|
1069 |
+
.bi-record-btn::before { content: "\f516"; }
|
1070 |
+
.bi-record-circle-fill::before { content: "\f517"; }
|
1071 |
+
.bi-record-circle::before { content: "\f518"; }
|
1072 |
+
.bi-record-fill::before { content: "\f519"; }
|
1073 |
+
.bi-record::before { content: "\f51a"; }
|
1074 |
+
.bi-record2-fill::before { content: "\f51b"; }
|
1075 |
+
.bi-record2::before { content: "\f51c"; }
|
1076 |
+
.bi-reply-all-fill::before { content: "\f51d"; }
|
1077 |
+
.bi-reply-all::before { content: "\f51e"; }
|
1078 |
+
.bi-reply-fill::before { content: "\f51f"; }
|
1079 |
+
.bi-reply::before { content: "\f520"; }
|
1080 |
+
.bi-rss-fill::before { content: "\f521"; }
|
1081 |
+
.bi-rss::before { content: "\f522"; }
|
1082 |
+
.bi-rulers::before { content: "\f523"; }
|
1083 |
+
.bi-save-fill::before { content: "\f524"; }
|
1084 |
+
.bi-save::before { content: "\f525"; }
|
1085 |
+
.bi-save2-fill::before { content: "\f526"; }
|
1086 |
+
.bi-save2::before { content: "\f527"; }
|
1087 |
+
.bi-scissors::before { content: "\f528"; }
|
1088 |
+
.bi-screwdriver::before { content: "\f529"; }
|
1089 |
+
.bi-search::before { content: "\f52a"; }
|
1090 |
+
.bi-segmented-nav::before { content: "\f52b"; }
|
1091 |
+
.bi-server::before { content: "\f52c"; }
|
1092 |
+
.bi-share-fill::before { content: "\f52d"; }
|
1093 |
+
.bi-share::before { content: "\f52e"; }
|
1094 |
+
.bi-shield-check::before { content: "\f52f"; }
|
1095 |
+
.bi-shield-exclamation::before { content: "\f530"; }
|
1096 |
+
.bi-shield-fill-check::before { content: "\f531"; }
|
1097 |
+
.bi-shield-fill-exclamation::before { content: "\f532"; }
|
1098 |
+
.bi-shield-fill-minus::before { content: "\f533"; }
|
1099 |
+
.bi-shield-fill-plus::before { content: "\f534"; }
|
1100 |
+
.bi-shield-fill-x::before { content: "\f535"; }
|
1101 |
+
.bi-shield-fill::before { content: "\f536"; }
|
1102 |
+
.bi-shield-lock-fill::before { content: "\f537"; }
|
1103 |
+
.bi-shield-lock::before { content: "\f538"; }
|
1104 |
+
.bi-shield-minus::before { content: "\f539"; }
|
1105 |
+
.bi-shield-plus::before { content: "\f53a"; }
|
1106 |
+
.bi-shield-shaded::before { content: "\f53b"; }
|
1107 |
+
.bi-shield-slash-fill::before { content: "\f53c"; }
|
1108 |
+
.bi-shield-slash::before { content: "\f53d"; }
|
1109 |
+
.bi-shield-x::before { content: "\f53e"; }
|
1110 |
+
.bi-shield::before { content: "\f53f"; }
|
1111 |
+
.bi-shift-fill::before { content: "\f540"; }
|
1112 |
+
.bi-shift::before { content: "\f541"; }
|
1113 |
+
.bi-shop-window::before { content: "\f542"; }
|
1114 |
+
.bi-shop::before { content: "\f543"; }
|
1115 |
+
.bi-shuffle::before { content: "\f544"; }
|
1116 |
+
.bi-signpost-2-fill::before { content: "\f545"; }
|
1117 |
+
.bi-signpost-2::before { content: "\f546"; }
|
1118 |
+
.bi-signpost-fill::before { content: "\f547"; }
|
1119 |
+
.bi-signpost-split-fill::before { content: "\f548"; }
|
1120 |
+
.bi-signpost-split::before { content: "\f549"; }
|
1121 |
+
.bi-signpost::before { content: "\f54a"; }
|
1122 |
+
.bi-sim-fill::before { content: "\f54b"; }
|
1123 |
+
.bi-sim::before { content: "\f54c"; }
|
1124 |
+
.bi-skip-backward-btn-fill::before { content: "\f54d"; }
|
1125 |
+
.bi-skip-backward-btn::before { content: "\f54e"; }
|
1126 |
+
.bi-skip-backward-circle-fill::before { content: "\f54f"; }
|
1127 |
+
.bi-skip-backward-circle::before { content: "\f550"; }
|
1128 |
+
.bi-skip-backward-fill::before { content: "\f551"; }
|
1129 |
+
.bi-skip-backward::before { content: "\f552"; }
|
1130 |
+
.bi-skip-end-btn-fill::before { content: "\f553"; }
|
1131 |
+
.bi-skip-end-btn::before { content: "\f554"; }
|
1132 |
+
.bi-skip-end-circle-fill::before { content: "\f555"; }
|
1133 |
+
.bi-skip-end-circle::before { content: "\f556"; }
|
1134 |
+
.bi-skip-end-fill::before { content: "\f557"; }
|
1135 |
+
.bi-skip-end::before { content: "\f558"; }
|
1136 |
+
.bi-skip-forward-btn-fill::before { content: "\f559"; }
|
1137 |
+
.bi-skip-forward-btn::before { content: "\f55a"; }
|
1138 |
+
.bi-skip-forward-circle-fill::before { content: "\f55b"; }
|
1139 |
+
.bi-skip-forward-circle::before { content: "\f55c"; }
|
1140 |
+
.bi-skip-forward-fill::before { content: "\f55d"; }
|
1141 |
+
.bi-skip-forward::before { content: "\f55e"; }
|
1142 |
+
.bi-skip-start-btn-fill::before { content: "\f55f"; }
|
1143 |
+
.bi-skip-start-btn::before { content: "\f560"; }
|
1144 |
+
.bi-skip-start-circle-fill::before { content: "\f561"; }
|
1145 |
+
.bi-skip-start-circle::before { content: "\f562"; }
|
1146 |
+
.bi-skip-start-fill::before { content: "\f563"; }
|
1147 |
+
.bi-skip-start::before { content: "\f564"; }
|
1148 |
+
.bi-slack::before { content: "\f565"; }
|
1149 |
+
.bi-slash-circle-fill::before { content: "\f566"; }
|
1150 |
+
.bi-slash-circle::before { content: "\f567"; }
|
1151 |
+
.bi-slash-square-fill::before { content: "\f568"; }
|
1152 |
+
.bi-slash-square::before { content: "\f569"; }
|
1153 |
+
.bi-slash::before { content: "\f56a"; }
|
1154 |
+
.bi-sliders::before { content: "\f56b"; }
|
1155 |
+
.bi-smartwatch::before { content: "\f56c"; }
|
1156 |
+
.bi-snow::before { content: "\f56d"; }
|
1157 |
+
.bi-snow2::before { content: "\f56e"; }
|
1158 |
+
.bi-snow3::before { content: "\f56f"; }
|
1159 |
+
.bi-sort-alpha-down-alt::before { content: "\f570"; }
|
1160 |
+
.bi-sort-alpha-down::before { content: "\f571"; }
|
1161 |
+
.bi-sort-alpha-up-alt::before { content: "\f572"; }
|
1162 |
+
.bi-sort-alpha-up::before { content: "\f573"; }
|
1163 |
+
.bi-sort-down-alt::before { content: "\f574"; }
|
1164 |
+
.bi-sort-down::before { content: "\f575"; }
|
1165 |
+
.bi-sort-numeric-down-alt::before { content: "\f576"; }
|
1166 |
+
.bi-sort-numeric-down::before { content: "\f577"; }
|
1167 |
+
.bi-sort-numeric-up-alt::before { content: "\f578"; }
|
1168 |
+
.bi-sort-numeric-up::before { content: "\f579"; }
|
1169 |
+
.bi-sort-up-alt::before { content: "\f57a"; }
|
1170 |
+
.bi-sort-up::before { content: "\f57b"; }
|
1171 |
+
.bi-soundwave::before { content: "\f57c"; }
|
1172 |
+
.bi-speaker-fill::before { content: "\f57d"; }
|
1173 |
+
.bi-speaker::before { content: "\f57e"; }
|
1174 |
+
.bi-speedometer::before { content: "\f57f"; }
|
1175 |
+
.bi-speedometer2::before { content: "\f580"; }
|
1176 |
+
.bi-spellcheck::before { content: "\f581"; }
|
1177 |
+
.bi-square-fill::before { content: "\f582"; }
|
1178 |
+
.bi-square-half::before { content: "\f583"; }
|
1179 |
+
.bi-square::before { content: "\f584"; }
|
1180 |
+
.bi-stack::before { content: "\f585"; }
|
1181 |
+
.bi-star-fill::before { content: "\f586"; }
|
1182 |
+
.bi-star-half::before { content: "\f587"; }
|
1183 |
+
.bi-star::before { content: "\f588"; }
|
1184 |
+
.bi-stars::before { content: "\f589"; }
|
1185 |
+
.bi-stickies-fill::before { content: "\f58a"; }
|
1186 |
+
.bi-stickies::before { content: "\f58b"; }
|
1187 |
+
.bi-sticky-fill::before { content: "\f58c"; }
|
1188 |
+
.bi-sticky::before { content: "\f58d"; }
|
1189 |
+
.bi-stop-btn-fill::before { content: "\f58e"; }
|
1190 |
+
.bi-stop-btn::before { content: "\f58f"; }
|
1191 |
+
.bi-stop-circle-fill::before { content: "\f590"; }
|
1192 |
+
.bi-stop-circle::before { content: "\f591"; }
|
1193 |
+
.bi-stop-fill::before { content: "\f592"; }
|
1194 |
+
.bi-stop::before { content: "\f593"; }
|
1195 |
+
.bi-stoplights-fill::before { content: "\f594"; }
|
1196 |
+
.bi-stoplights::before { content: "\f595"; }
|
1197 |
+
.bi-stopwatch-fill::before { content: "\f596"; }
|
1198 |
+
.bi-stopwatch::before { content: "\f597"; }
|
1199 |
+
.bi-subtract::before { content: "\f598"; }
|
1200 |
+
.bi-suit-club-fill::before { content: "\f599"; }
|
1201 |
+
.bi-suit-club::before { content: "\f59a"; }
|
1202 |
+
.bi-suit-diamond-fill::before { content: "\f59b"; }
|
1203 |
+
.bi-suit-diamond::before { content: "\f59c"; }
|
1204 |
+
.bi-suit-heart-fill::before { content: "\f59d"; }
|
1205 |
+
.bi-suit-heart::before { content: "\f59e"; }
|
1206 |
+
.bi-suit-spade-fill::before { content: "\f59f"; }
|
1207 |
+
.bi-suit-spade::before { content: "\f5a0"; }
|
1208 |
+
.bi-sun-fill::before { content: "\f5a1"; }
|
1209 |
+
.bi-sun::before { content: "\f5a2"; }
|
1210 |
+
.bi-sunglasses::before { content: "\f5a3"; }
|
1211 |
+
.bi-sunrise-fill::before { content: "\f5a4"; }
|
1212 |
+
.bi-sunrise::before { content: "\f5a5"; }
|
1213 |
+
.bi-sunset-fill::before { content: "\f5a6"; }
|
1214 |
+
.bi-sunset::before { content: "\f5a7"; }
|
1215 |
+
.bi-symmetry-horizontal::before { content: "\f5a8"; }
|
1216 |
+
.bi-symmetry-vertical::before { content: "\f5a9"; }
|
1217 |
+
.bi-table::before { content: "\f5aa"; }
|
1218 |
+
.bi-tablet-fill::before { content: "\f5ab"; }
|
1219 |
+
.bi-tablet-landscape-fill::before { content: "\f5ac"; }
|
1220 |
+
.bi-tablet-landscape::before { content: "\f5ad"; }
|
1221 |
+
.bi-tablet::before { content: "\f5ae"; }
|
1222 |
+
.bi-tag-fill::before { content: "\f5af"; }
|
1223 |
+
.bi-tag::before { content: "\f5b0"; }
|
1224 |
+
.bi-tags-fill::before { content: "\f5b1"; }
|
1225 |
+
.bi-tags::before { content: "\f5b2"; }
|
1226 |
+
.bi-telegram::before { content: "\f5b3"; }
|
1227 |
+
.bi-telephone-fill::before { content: "\f5b4"; }
|
1228 |
+
.bi-telephone-forward-fill::before { content: "\f5b5"; }
|
1229 |
+
.bi-telephone-forward::before { content: "\f5b6"; }
|
1230 |
+
.bi-telephone-inbound-fill::before { content: "\f5b7"; }
|
1231 |
+
.bi-telephone-inbound::before { content: "\f5b8"; }
|
1232 |
+
.bi-telephone-minus-fill::before { content: "\f5b9"; }
|
1233 |
+
.bi-telephone-minus::before { content: "\f5ba"; }
|
1234 |
+
.bi-telephone-outbound-fill::before { content: "\f5bb"; }
|
1235 |
+
.bi-telephone-outbound::before { content: "\f5bc"; }
|
1236 |
+
.bi-telephone-plus-fill::before { content: "\f5bd"; }
|
1237 |
+
.bi-telephone-plus::before { content: "\f5be"; }
|
1238 |
+
.bi-telephone-x-fill::before { content: "\f5bf"; }
|
1239 |
+
.bi-telephone-x::before { content: "\f5c0"; }
|
1240 |
+
.bi-telephone::before { content: "\f5c1"; }
|
1241 |
+
.bi-terminal-fill::before { content: "\f5c2"; }
|
1242 |
+
.bi-terminal::before { content: "\f5c3"; }
|
1243 |
+
.bi-text-center::before { content: "\f5c4"; }
|
1244 |
+
.bi-text-indent-left::before { content: "\f5c5"; }
|
1245 |
+
.bi-text-indent-right::before { content: "\f5c6"; }
|
1246 |
+
.bi-text-left::before { content: "\f5c7"; }
|
1247 |
+
.bi-text-paragraph::before { content: "\f5c8"; }
|
1248 |
+
.bi-text-right::before { content: "\f5c9"; }
|
1249 |
+
.bi-textarea-resize::before { content: "\f5ca"; }
|
1250 |
+
.bi-textarea-t::before { content: "\f5cb"; }
|
1251 |
+
.bi-textarea::before { content: "\f5cc"; }
|
1252 |
+
.bi-thermometer-half::before { content: "\f5cd"; }
|
1253 |
+
.bi-thermometer-high::before { content: "\f5ce"; }
|
1254 |
+
.bi-thermometer-low::before { content: "\f5cf"; }
|
1255 |
+
.bi-thermometer-snow::before { content: "\f5d0"; }
|
1256 |
+
.bi-thermometer-sun::before { content: "\f5d1"; }
|
1257 |
+
.bi-thermometer::before { content: "\f5d2"; }
|
1258 |
+
.bi-three-dots-vertical::before { content: "\f5d3"; }
|
1259 |
+
.bi-three-dots::before { content: "\f5d4"; }
|
1260 |
+
.bi-toggle-off::before { content: "\f5d5"; }
|
1261 |
+
.bi-toggle-on::before { content: "\f5d6"; }
|
1262 |
+
.bi-toggle2-off::before { content: "\f5d7"; }
|
1263 |
+
.bi-toggle2-on::before { content: "\f5d8"; }
|
1264 |
+
.bi-toggles::before { content: "\f5d9"; }
|
1265 |
+
.bi-toggles2::before { content: "\f5da"; }
|
1266 |
+
.bi-tools::before { content: "\f5db"; }
|
1267 |
+
.bi-tornado::before { content: "\f5dc"; }
|
1268 |
+
.bi-trash-fill::before { content: "\f5dd"; }
|
1269 |
+
.bi-trash::before { content: "\f5de"; }
|
1270 |
+
.bi-trash2-fill::before { content: "\f5df"; }
|
1271 |
+
.bi-trash2::before { content: "\f5e0"; }
|
1272 |
+
.bi-tree-fill::before { content: "\f5e1"; }
|
1273 |
+
.bi-tree::before { content: "\f5e2"; }
|
1274 |
+
.bi-triangle-fill::before { content: "\f5e3"; }
|
1275 |
+
.bi-triangle-half::before { content: "\f5e4"; }
|
1276 |
+
.bi-triangle::before { content: "\f5e5"; }
|
1277 |
+
.bi-trophy-fill::before { content: "\f5e6"; }
|
1278 |
+
.bi-trophy::before { content: "\f5e7"; }
|
1279 |
+
.bi-tropical-storm::before { content: "\f5e8"; }
|
1280 |
+
.bi-truck-flatbed::before { content: "\f5e9"; }
|
1281 |
+
.bi-truck::before { content: "\f5ea"; }
|
1282 |
+
.bi-tsunami::before { content: "\f5eb"; }
|
1283 |
+
.bi-tv-fill::before { content: "\f5ec"; }
|
1284 |
+
.bi-tv::before { content: "\f5ed"; }
|
1285 |
+
.bi-twitch::before { content: "\f5ee"; }
|
1286 |
+
.bi-twitter::before { content: "\f5ef"; }
|
1287 |
+
.bi-type-bold::before { content: "\f5f0"; }
|
1288 |
+
.bi-type-h1::before { content: "\f5f1"; }
|
1289 |
+
.bi-type-h2::before { content: "\f5f2"; }
|
1290 |
+
.bi-type-h3::before { content: "\f5f3"; }
|
1291 |
+
.bi-type-italic::before { content: "\f5f4"; }
|
1292 |
+
.bi-type-strikethrough::before { content: "\f5f5"; }
|
1293 |
+
.bi-type-underline::before { content: "\f5f6"; }
|
1294 |
+
.bi-type::before { content: "\f5f7"; }
|
1295 |
+
.bi-ui-checks-grid::before { content: "\f5f8"; }
|
1296 |
+
.bi-ui-checks::before { content: "\f5f9"; }
|
1297 |
+
.bi-ui-radios-grid::before { content: "\f5fa"; }
|
1298 |
+
.bi-ui-radios::before { content: "\f5fb"; }
|
1299 |
+
.bi-umbrella-fill::before { content: "\f5fc"; }
|
1300 |
+
.bi-umbrella::before { content: "\f5fd"; }
|
1301 |
+
.bi-union::before { content: "\f5fe"; }
|
1302 |
+
.bi-unlock-fill::before { content: "\f5ff"; }
|
1303 |
+
.bi-unlock::before { content: "\f600"; }
|
1304 |
+
.bi-upc-scan::before { content: "\f601"; }
|
1305 |
+
.bi-upc::before { content: "\f602"; }
|
1306 |
+
.bi-upload::before { content: "\f603"; }
|
1307 |
+
.bi-vector-pen::before { content: "\f604"; }
|
1308 |
+
.bi-view-list::before { content: "\f605"; }
|
1309 |
+
.bi-view-stacked::before { content: "\f606"; }
|
1310 |
+
.bi-vinyl-fill::before { content: "\f607"; }
|
1311 |
+
.bi-vinyl::before { content: "\f608"; }
|
1312 |
+
.bi-voicemail::before { content: "\f609"; }
|
1313 |
+
.bi-volume-down-fill::before { content: "\f60a"; }
|
1314 |
+
.bi-volume-down::before { content: "\f60b"; }
|
1315 |
+
.bi-volume-mute-fill::before { content: "\f60c"; }
|
1316 |
+
.bi-volume-mute::before { content: "\f60d"; }
|
1317 |
+
.bi-volume-off-fill::before { content: "\f60e"; }
|
1318 |
+
.bi-volume-off::before { content: "\f60f"; }
|
1319 |
+
.bi-volume-up-fill::before { content: "\f610"; }
|
1320 |
+
.bi-volume-up::before { content: "\f611"; }
|
1321 |
+
.bi-vr::before { content: "\f612"; }
|
1322 |
+
.bi-wallet-fill::before { content: "\f613"; }
|
1323 |
+
.bi-wallet::before { content: "\f614"; }
|
1324 |
+
.bi-wallet2::before { content: "\f615"; }
|
1325 |
+
.bi-watch::before { content: "\f616"; }
|
1326 |
+
.bi-water::before { content: "\f617"; }
|
1327 |
+
.bi-whatsapp::before { content: "\f618"; }
|
1328 |
+
.bi-wifi-1::before { content: "\f619"; }
|
1329 |
+
.bi-wifi-2::before { content: "\f61a"; }
|
1330 |
+
.bi-wifi-off::before { content: "\f61b"; }
|
1331 |
+
.bi-wifi::before { content: "\f61c"; }
|
1332 |
+
.bi-wind::before { content: "\f61d"; }
|
1333 |
+
.bi-window-dock::before { content: "\f61e"; }
|
1334 |
+
.bi-window-sidebar::before { content: "\f61f"; }
|
1335 |
+
.bi-window::before { content: "\f620"; }
|
1336 |
+
.bi-wrench::before { content: "\f621"; }
|
1337 |
+
.bi-x-circle-fill::before { content: "\f622"; }
|
1338 |
+
.bi-x-circle::before { content: "\f623"; }
|
1339 |
+
.bi-x-diamond-fill::before { content: "\f624"; }
|
1340 |
+
.bi-x-diamond::before { content: "\f625"; }
|
1341 |
+
.bi-x-octagon-fill::before { content: "\f626"; }
|
1342 |
+
.bi-x-octagon::before { content: "\f627"; }
|
1343 |
+
.bi-x-square-fill::before { content: "\f628"; }
|
1344 |
+
.bi-x-square::before { content: "\f629"; }
|
1345 |
+
.bi-x::before { content: "\f62a"; }
|
1346 |
+
.bi-youtube::before { content: "\f62b"; }
|
1347 |
+
.bi-zoom-in::before { content: "\f62c"; }
|
1348 |
+
.bi-zoom-out::before { content: "\f62d"; }
|
1349 |
+
.bi-bank::before { content: "\f62e"; }
|
1350 |
+
.bi-bank2::before { content: "\f62f"; }
|
1351 |
+
.bi-bell-slash-fill::before { content: "\f630"; }
|
1352 |
+
.bi-bell-slash::before { content: "\f631"; }
|
1353 |
+
.bi-cash-coin::before { content: "\f632"; }
|
1354 |
+
.bi-check-lg::before { content: "\f633"; }
|
1355 |
+
.bi-coin::before { content: "\f634"; }
|
1356 |
+
.bi-currency-bitcoin::before { content: "\f635"; }
|
1357 |
+
.bi-currency-dollar::before { content: "\f636"; }
|
1358 |
+
.bi-currency-euro::before { content: "\f637"; }
|
1359 |
+
.bi-currency-exchange::before { content: "\f638"; }
|
1360 |
+
.bi-currency-pound::before { content: "\f639"; }
|
1361 |
+
.bi-currency-yen::before { content: "\f63a"; }
|
1362 |
+
.bi-dash-lg::before { content: "\f63b"; }
|
1363 |
+
.bi-exclamation-lg::before { content: "\f63c"; }
|
1364 |
+
.bi-file-earmark-pdf-fill::before { content: "\f63d"; }
|
1365 |
+
.bi-file-earmark-pdf::before { content: "\f63e"; }
|
1366 |
+
.bi-file-pdf-fill::before { content: "\f63f"; }
|
1367 |
+
.bi-file-pdf::before { content: "\f640"; }
|
1368 |
+
.bi-gender-ambiguous::before { content: "\f641"; }
|
1369 |
+
.bi-gender-female::before { content: "\f642"; }
|
1370 |
+
.bi-gender-male::before { content: "\f643"; }
|
1371 |
+
.bi-gender-trans::before { content: "\f644"; }
|
1372 |
+
.bi-headset-vr::before { content: "\f645"; }
|
1373 |
+
.bi-info-lg::before { content: "\f646"; }
|
1374 |
+
.bi-mastodon::before { content: "\f647"; }
|
1375 |
+
.bi-messenger::before { content: "\f648"; }
|
1376 |
+
.bi-piggy-bank-fill::before { content: "\f649"; }
|
1377 |
+
.bi-piggy-bank::before { content: "\f64a"; }
|
1378 |
+
.bi-pin-map-fill::before { content: "\f64b"; }
|
1379 |
+
.bi-pin-map::before { content: "\f64c"; }
|
1380 |
+
.bi-plus-lg::before { content: "\f64d"; }
|
1381 |
+
.bi-question-lg::before { content: "\f64e"; }
|
1382 |
+
.bi-recycle::before { content: "\f64f"; }
|
1383 |
+
.bi-reddit::before { content: "\f650"; }
|
1384 |
+
.bi-safe-fill::before { content: "\f651"; }
|
1385 |
+
.bi-safe2-fill::before { content: "\f652"; }
|
1386 |
+
.bi-safe2::before { content: "\f653"; }
|
1387 |
+
.bi-sd-card-fill::before { content: "\f654"; }
|
1388 |
+
.bi-sd-card::before { content: "\f655"; }
|
1389 |
+
.bi-skype::before { content: "\f656"; }
|
1390 |
+
.bi-slash-lg::before { content: "\f657"; }
|
1391 |
+
.bi-translate::before { content: "\f658"; }
|
1392 |
+
.bi-x-lg::before { content: "\f659"; }
|
1393 |
+
.bi-safe::before { content: "\f65a"; }
|
1394 |
+
.bi-apple::before { content: "\f65b"; }
|
1395 |
+
.bi-microsoft::before { content: "\f65d"; }
|
1396 |
+
.bi-windows::before { content: "\f65e"; }
|
1397 |
+
.bi-behance::before { content: "\f65c"; }
|
1398 |
+
.bi-dribbble::before { content: "\f65f"; }
|
1399 |
+
.bi-line::before { content: "\f660"; }
|
1400 |
+
.bi-medium::before { content: "\f661"; }
|
1401 |
+
.bi-paypal::before { content: "\f662"; }
|
1402 |
+
.bi-pinterest::before { content: "\f663"; }
|
1403 |
+
.bi-signal::before { content: "\f664"; }
|
1404 |
+
.bi-snapchat::before { content: "\f665"; }
|
1405 |
+
.bi-spotify::before { content: "\f666"; }
|
1406 |
+
.bi-stack-overflow::before { content: "\f667"; }
|
1407 |
+
.bi-strava::before { content: "\f668"; }
|
1408 |
+
.bi-wordpress::before { content: "\f669"; }
|
1409 |
+
.bi-vimeo::before { content: "\f66a"; }
|
1410 |
+
.bi-activity::before { content: "\f66b"; }
|
1411 |
+
.bi-easel2-fill::before { content: "\f66c"; }
|
1412 |
+
.bi-easel2::before { content: "\f66d"; }
|
1413 |
+
.bi-easel3-fill::before { content: "\f66e"; }
|
1414 |
+
.bi-easel3::before { content: "\f66f"; }
|
1415 |
+
.bi-fan::before { content: "\f670"; }
|
1416 |
+
.bi-fingerprint::before { content: "\f671"; }
|
1417 |
+
.bi-graph-down-arrow::before { content: "\f672"; }
|
1418 |
+
.bi-graph-up-arrow::before { content: "\f673"; }
|
1419 |
+
.bi-hypnotize::before { content: "\f674"; }
|
1420 |
+
.bi-magic::before { content: "\f675"; }
|
1421 |
+
.bi-person-rolodex::before { content: "\f676"; }
|
1422 |
+
.bi-person-video::before { content: "\f677"; }
|
1423 |
+
.bi-person-video2::before { content: "\f678"; }
|
1424 |
+
.bi-person-video3::before { content: "\f679"; }
|
1425 |
+
.bi-person-workspace::before { content: "\f67a"; }
|
1426 |
+
.bi-radioactive::before { content: "\f67b"; }
|
1427 |
+
.bi-webcam-fill::before { content: "\f67c"; }
|
1428 |
+
.bi-webcam::before { content: "\f67d"; }
|
1429 |
+
.bi-yin-yang::before { content: "\f67e"; }
|
1430 |
+
.bi-bandaid-fill::before { content: "\f680"; }
|
1431 |
+
.bi-bandaid::before { content: "\f681"; }
|
1432 |
+
.bi-bluetooth::before { content: "\f682"; }
|
1433 |
+
.bi-body-text::before { content: "\f683"; }
|
1434 |
+
.bi-boombox::before { content: "\f684"; }
|
1435 |
+
.bi-boxes::before { content: "\f685"; }
|
1436 |
+
.bi-dpad-fill::before { content: "\f686"; }
|
1437 |
+
.bi-dpad::before { content: "\f687"; }
|
1438 |
+
.bi-ear-fill::before { content: "\f688"; }
|
1439 |
+
.bi-ear::before { content: "\f689"; }
|
1440 |
+
.bi-envelope-check-1::before { content: "\f68a"; }
|
1441 |
+
.bi-envelope-check-fill::before { content: "\f68b"; }
|
1442 |
+
.bi-envelope-check::before { content: "\f68c"; }
|
1443 |
+
.bi-envelope-dash-1::before { content: "\f68d"; }
|
1444 |
+
.bi-envelope-dash-fill::before { content: "\f68e"; }
|
1445 |
+
.bi-envelope-dash::before { content: "\f68f"; }
|
1446 |
+
.bi-envelope-exclamation-1::before { content: "\f690"; }
|
1447 |
+
.bi-envelope-exclamation-fill::before { content: "\f691"; }
|
1448 |
+
.bi-envelope-exclamation::before { content: "\f692"; }
|
1449 |
+
.bi-envelope-plus-fill::before { content: "\f693"; }
|
1450 |
+
.bi-envelope-plus::before { content: "\f694"; }
|
1451 |
+
.bi-envelope-slash-1::before { content: "\f695"; }
|
1452 |
+
.bi-envelope-slash-fill::before { content: "\f696"; }
|
1453 |
+
.bi-envelope-slash::before { content: "\f697"; }
|
1454 |
+
.bi-envelope-x-1::before { content: "\f698"; }
|
1455 |
+
.bi-envelope-x-fill::before { content: "\f699"; }
|
1456 |
+
.bi-envelope-x::before { content: "\f69a"; }
|
1457 |
+
.bi-explicit-fill::before { content: "\f69b"; }
|
1458 |
+
.bi-explicit::before { content: "\f69c"; }
|
1459 |
+
.bi-git::before { content: "\f69d"; }
|
1460 |
+
.bi-infinity::before { content: "\f69e"; }
|
1461 |
+
.bi-list-columns-reverse::before { content: "\f69f"; }
|
1462 |
+
.bi-list-columns::before { content: "\f6a0"; }
|
1463 |
+
.bi-meta::before { content: "\f6a1"; }
|
1464 |
+
.bi-mortorboard-fill::before { content: "\f6a2"; }
|
1465 |
+
.bi-mortorboard::before { content: "\f6a3"; }
|
1466 |
+
.bi-nintendo-switch::before { content: "\f6a4"; }
|
1467 |
+
.bi-pc-display-horizontal::before { content: "\f6a5"; }
|
1468 |
+
.bi-pc-display::before { content: "\f6a6"; }
|
1469 |
+
.bi-pc-horizontal::before { content: "\f6a7"; }
|
1470 |
+
.bi-pc::before { content: "\f6a8"; }
|
1471 |
+
.bi-playstation::before { content: "\f6a9"; }
|
1472 |
+
.bi-plus-slash-minus::before { content: "\f6aa"; }
|
1473 |
+
.bi-projector-fill::before { content: "\f6ab"; }
|
1474 |
+
.bi-projector::before { content: "\f6ac"; }
|
1475 |
+
.bi-qr-code-scan::before { content: "\f6ad"; }
|
1476 |
+
.bi-qr-code::before { content: "\f6ae"; }
|
1477 |
+
.bi-quora::before { content: "\f6af"; }
|
1478 |
+
.bi-quote::before { content: "\f6b0"; }
|
1479 |
+
.bi-robot::before { content: "\f6b1"; }
|
1480 |
+
.bi-send-check-fill::before { content: "\f6b2"; }
|
1481 |
+
.bi-send-check::before { content: "\f6b3"; }
|
1482 |
+
.bi-send-dash-fill::before { content: "\f6b4"; }
|
1483 |
+
.bi-send-dash::before { content: "\f6b5"; }
|
1484 |
+
.bi-send-exclamation-1::before { content: "\f6b6"; }
|
1485 |
+
.bi-send-exclamation-fill::before { content: "\f6b7"; }
|
1486 |
+
.bi-send-exclamation::before { content: "\f6b8"; }
|
1487 |
+
.bi-send-fill::before { content: "\f6b9"; }
|
1488 |
+
.bi-send-plus-fill::before { content: "\f6ba"; }
|
1489 |
+
.bi-send-plus::before { content: "\f6bb"; }
|
1490 |
+
.bi-send-slash-fill::before { content: "\f6bc"; }
|
1491 |
+
.bi-send-slash::before { content: "\f6bd"; }
|
1492 |
+
.bi-send-x-fill::before { content: "\f6be"; }
|
1493 |
+
.bi-send-x::before { content: "\f6bf"; }
|
1494 |
+
.bi-send::before { content: "\f6c0"; }
|
1495 |
+
.bi-steam::before { content: "\f6c1"; }
|
1496 |
+
.bi-terminal-dash-1::before { content: "\f6c2"; }
|
1497 |
+
.bi-terminal-dash::before { content: "\f6c3"; }
|
1498 |
+
.bi-terminal-plus::before { content: "\f6c4"; }
|
1499 |
+
.bi-terminal-split::before { content: "\f6c5"; }
|
1500 |
+
.bi-ticket-detailed-fill::before { content: "\f6c6"; }
|
1501 |
+
.bi-ticket-detailed::before { content: "\f6c7"; }
|
1502 |
+
.bi-ticket-fill::before { content: "\f6c8"; }
|
1503 |
+
.bi-ticket-perforated-fill::before { content: "\f6c9"; }
|
1504 |
+
.bi-ticket-perforated::before { content: "\f6ca"; }
|
1505 |
+
.bi-ticket::before { content: "\f6cb"; }
|
1506 |
+
.bi-tiktok::before { content: "\f6cc"; }
|
1507 |
+
.bi-window-dash::before { content: "\f6cd"; }
|
1508 |
+
.bi-window-desktop::before { content: "\f6ce"; }
|
1509 |
+
.bi-window-fullscreen::before { content: "\f6cf"; }
|
1510 |
+
.bi-window-plus::before { content: "\f6d0"; }
|
1511 |
+
.bi-window-split::before { content: "\f6d1"; }
|
1512 |
+
.bi-window-stack::before { content: "\f6d2"; }
|
1513 |
+
.bi-window-x::before { content: "\f6d3"; }
|
1514 |
+
.bi-xbox::before { content: "\f6d4"; }
|
1515 |
+
.bi-ethernet::before { content: "\f6d5"; }
|
1516 |
+
.bi-hdmi-fill::before { content: "\f6d6"; }
|
1517 |
+
.bi-hdmi::before { content: "\f6d7"; }
|
1518 |
+
.bi-usb-c-fill::before { content: "\f6d8"; }
|
1519 |
+
.bi-usb-c::before { content: "\f6d9"; }
|
1520 |
+
.bi-usb-fill::before { content: "\f6da"; }
|
1521 |
+
.bi-usb-plug-fill::before { content: "\f6db"; }
|
1522 |
+
.bi-usb-plug::before { content: "\f6dc"; }
|
1523 |
+
.bi-usb-symbol::before { content: "\f6dd"; }
|
1524 |
+
.bi-usb::before { content: "\f6de"; }
|
1525 |
+
.bi-boombox-fill::before { content: "\f6df"; }
|
1526 |
+
.bi-displayport-1::before { content: "\f6e0"; }
|
1527 |
+
.bi-displayport::before { content: "\f6e1"; }
|
1528 |
+
.bi-gpu-card::before { content: "\f6e2"; }
|
1529 |
+
.bi-memory::before { content: "\f6e3"; }
|
1530 |
+
.bi-modem-fill::before { content: "\f6e4"; }
|
1531 |
+
.bi-modem::before { content: "\f6e5"; }
|
1532 |
+
.bi-motherboard-fill::before { content: "\f6e6"; }
|
1533 |
+
.bi-motherboard::before { content: "\f6e7"; }
|
1534 |
+
.bi-optical-audio-fill::before { content: "\f6e8"; }
|
1535 |
+
.bi-optical-audio::before { content: "\f6e9"; }
|
1536 |
+
.bi-pci-card::before { content: "\f6ea"; }
|
1537 |
+
.bi-router-fill::before { content: "\f6eb"; }
|
1538 |
+
.bi-router::before { content: "\f6ec"; }
|
1539 |
+
.bi-ssd-fill::before { content: "\f6ed"; }
|
1540 |
+
.bi-ssd::before { content: "\f6ee"; }
|
1541 |
+
.bi-thunderbolt-fill::before { content: "\f6ef"; }
|
1542 |
+
.bi-thunderbolt::before { content: "\f6f0"; }
|
1543 |
+
.bi-usb-drive-fill::before { content: "\f6f1"; }
|
1544 |
+
.bi-usb-drive::before { content: "\f6f2"; }
|
1545 |
+
.bi-usb-micro-fill::before { content: "\f6f3"; }
|
1546 |
+
.bi-usb-micro::before { content: "\f6f4"; }
|
1547 |
+
.bi-usb-mini-fill::before { content: "\f6f5"; }
|
1548 |
+
.bi-usb-mini::before { content: "\f6f6"; }
|
1549 |
+
.bi-cloud-haze2::before { content: "\f6f7"; }
|
1550 |
+
.bi-device-hdd-fill::before { content: "\f6f8"; }
|
1551 |
+
.bi-device-hdd::before { content: "\f6f9"; }
|
1552 |
+
.bi-device-ssd-fill::before { content: "\f6fa"; }
|
1553 |
+
.bi-device-ssd::before { content: "\f6fb"; }
|
1554 |
+
.bi-displayport-fill::before { content: "\f6fc"; }
|
1555 |
+
.bi-mortarboard-fill::before { content: "\f6fd"; }
|
1556 |
+
.bi-mortarboard::before { content: "\f6fe"; }
|
1557 |
+
.bi-terminal-x::before { content: "\f6ff"; }
|
1558 |
+
.bi-arrow-through-heart-fill::before { content: "\f700"; }
|
1559 |
+
.bi-arrow-through-heart::before { content: "\f701"; }
|
1560 |
+
.bi-badge-sd-fill::before { content: "\f702"; }
|
1561 |
+
.bi-badge-sd::before { content: "\f703"; }
|
1562 |
+
.bi-bag-heart-fill::before { content: "\f704"; }
|
1563 |
+
.bi-bag-heart::before { content: "\f705"; }
|
1564 |
+
.bi-balloon-fill::before { content: "\f706"; }
|
1565 |
+
.bi-balloon-heart-fill::before { content: "\f707"; }
|
1566 |
+
.bi-balloon-heart::before { content: "\f708"; }
|
1567 |
+
.bi-balloon::before { content: "\f709"; }
|
1568 |
+
.bi-box2-fill::before { content: "\f70a"; }
|
1569 |
+
.bi-box2-heart-fill::before { content: "\f70b"; }
|
1570 |
+
.bi-box2-heart::before { content: "\f70c"; }
|
1571 |
+
.bi-box2::before { content: "\f70d"; }
|
1572 |
+
.bi-braces-asterisk::before { content: "\f70e"; }
|
1573 |
+
.bi-calendar-heart-fill::before { content: "\f70f"; }
|
1574 |
+
.bi-calendar-heart::before { content: "\f710"; }
|
1575 |
+
.bi-calendar2-heart-fill::before { content: "\f711"; }
|
1576 |
+
.bi-calendar2-heart::before { content: "\f712"; }
|
1577 |
+
.bi-chat-heart-fill::before { content: "\f713"; }
|
1578 |
+
.bi-chat-heart::before { content: "\f714"; }
|
1579 |
+
.bi-chat-left-heart-fill::before { content: "\f715"; }
|
1580 |
+
.bi-chat-left-heart::before { content: "\f716"; }
|
1581 |
+
.bi-chat-right-heart-fill::before { content: "\f717"; }
|
1582 |
+
.bi-chat-right-heart::before { content: "\f718"; }
|
1583 |
+
.bi-chat-square-heart-fill::before { content: "\f719"; }
|
1584 |
+
.bi-chat-square-heart::before { content: "\f71a"; }
|
1585 |
+
.bi-clipboard-check-fill::before { content: "\f71b"; }
|
1586 |
+
.bi-clipboard-data-fill::before { content: "\f71c"; }
|
1587 |
+
.bi-clipboard-fill::before { content: "\f71d"; }
|
1588 |
+
.bi-clipboard-heart-fill::before { content: "\f71e"; }
|
1589 |
+
.bi-clipboard-heart::before { content: "\f71f"; }
|
1590 |
+
.bi-clipboard-minus-fill::before { content: "\f720"; }
|
1591 |
+
.bi-clipboard-plus-fill::before { content: "\f721"; }
|
1592 |
+
.bi-clipboard-pulse::before { content: "\f722"; }
|
1593 |
+
.bi-clipboard-x-fill::before { content: "\f723"; }
|
1594 |
+
.bi-clipboard2-check-fill::before { content: "\f724"; }
|
1595 |
+
.bi-clipboard2-check::before { content: "\f725"; }
|
1596 |
+
.bi-clipboard2-data-fill::before { content: "\f726"; }
|
1597 |
+
.bi-clipboard2-data::before { content: "\f727"; }
|
1598 |
+
.bi-clipboard2-fill::before { content: "\f728"; }
|
1599 |
+
.bi-clipboard2-heart-fill::before { content: "\f729"; }
|
1600 |
+
.bi-clipboard2-heart::before { content: "\f72a"; }
|
1601 |
+
.bi-clipboard2-minus-fill::before { content: "\f72b"; }
|
1602 |
+
.bi-clipboard2-minus::before { content: "\f72c"; }
|
1603 |
+
.bi-clipboard2-plus-fill::before { content: "\f72d"; }
|
1604 |
+
.bi-clipboard2-plus::before { content: "\f72e"; }
|
1605 |
+
.bi-clipboard2-pulse-fill::before { content: "\f72f"; }
|
1606 |
+
.bi-clipboard2-pulse::before { content: "\f730"; }
|
1607 |
+
.bi-clipboard2-x-fill::before { content: "\f731"; }
|
1608 |
+
.bi-clipboard2-x::before { content: "\f732"; }
|
1609 |
+
.bi-clipboard2::before { content: "\f733"; }
|
1610 |
+
.bi-emoji-kiss-fill::before { content: "\f734"; }
|
1611 |
+
.bi-emoji-kiss::before { content: "\f735"; }
|
1612 |
+
.bi-envelope-heart-fill::before { content: "\f736"; }
|
1613 |
+
.bi-envelope-heart::before { content: "\f737"; }
|
1614 |
+
.bi-envelope-open-heart-fill::before { content: "\f738"; }
|
1615 |
+
.bi-envelope-open-heart::before { content: "\f739"; }
|
1616 |
+
.bi-envelope-paper-fill::before { content: "\f73a"; }
|
1617 |
+
.bi-envelope-paper-heart-fill::before { content: "\f73b"; }
|
1618 |
+
.bi-envelope-paper-heart::before { content: "\f73c"; }
|
1619 |
+
.bi-envelope-paper::before { content: "\f73d"; }
|
1620 |
+
.bi-filetype-aac::before { content: "\f73e"; }
|
1621 |
+
.bi-filetype-ai::before { content: "\f73f"; }
|
1622 |
+
.bi-filetype-bmp::before { content: "\f740"; }
|
1623 |
+
.bi-filetype-cs::before { content: "\f741"; }
|
1624 |
+
.bi-filetype-css::before { content: "\f742"; }
|
1625 |
+
.bi-filetype-csv::before { content: "\f743"; }
|
1626 |
+
.bi-filetype-doc::before { content: "\f744"; }
|
1627 |
+
.bi-filetype-docx::before { content: "\f745"; }
|
1628 |
+
.bi-filetype-exe::before { content: "\f746"; }
|
1629 |
+
.bi-filetype-gif::before { content: "\f747"; }
|
1630 |
+
.bi-filetype-heic::before { content: "\f748"; }
|
1631 |
+
.bi-filetype-html::before { content: "\f749"; }
|
1632 |
+
.bi-filetype-java::before { content: "\f74a"; }
|
1633 |
+
.bi-filetype-jpg::before { content: "\f74b"; }
|
1634 |
+
.bi-filetype-js::before { content: "\f74c"; }
|
1635 |
+
.bi-filetype-jsx::before { content: "\f74d"; }
|
1636 |
+
.bi-filetype-key::before { content: "\f74e"; }
|
1637 |
+
.bi-filetype-m4p::before { content: "\f74f"; }
|
1638 |
+
.bi-filetype-md::before { content: "\f750"; }
|
1639 |
+
.bi-filetype-mdx::before { content: "\f751"; }
|
1640 |
+
.bi-filetype-mov::before { content: "\f752"; }
|
1641 |
+
.bi-filetype-mp3::before { content: "\f753"; }
|
1642 |
+
.bi-filetype-mp4::before { content: "\f754"; }
|
1643 |
+
.bi-filetype-otf::before { content: "\f755"; }
|
1644 |
+
.bi-filetype-pdf::before { content: "\f756"; }
|
1645 |
+
.bi-filetype-php::before { content: "\f757"; }
|
1646 |
+
.bi-filetype-png::before { content: "\f758"; }
|
1647 |
+
.bi-filetype-ppt-1::before { content: "\f759"; }
|
1648 |
+
.bi-filetype-ppt::before { content: "\f75a"; }
|
1649 |
+
.bi-filetype-psd::before { content: "\f75b"; }
|
1650 |
+
.bi-filetype-py::before { content: "\f75c"; }
|
1651 |
+
.bi-filetype-raw::before { content: "\f75d"; }
|
1652 |
+
.bi-filetype-rb::before { content: "\f75e"; }
|
1653 |
+
.bi-filetype-sass::before { content: "\f75f"; }
|
1654 |
+
.bi-filetype-scss::before { content: "\f760"; }
|
1655 |
+
.bi-filetype-sh::before { content: "\f761"; }
|
1656 |
+
.bi-filetype-svg::before { content: "\f762"; }
|
1657 |
+
.bi-filetype-tiff::before { content: "\f763"; }
|
1658 |
+
.bi-filetype-tsx::before { content: "\f764"; }
|
1659 |
+
.bi-filetype-ttf::before { content: "\f765"; }
|
1660 |
+
.bi-filetype-txt::before { content: "\f766"; }
|
1661 |
+
.bi-filetype-wav::before { content: "\f767"; }
|
1662 |
+
.bi-filetype-woff::before { content: "\f768"; }
|
1663 |
+
.bi-filetype-xls-1::before { content: "\f769"; }
|
1664 |
+
.bi-filetype-xls::before { content: "\f76a"; }
|
1665 |
+
.bi-filetype-xml::before { content: "\f76b"; }
|
1666 |
+
.bi-filetype-yml::before { content: "\f76c"; }
|
1667 |
+
.bi-heart-arrow::before { content: "\f76d"; }
|
1668 |
+
.bi-heart-pulse-fill::before { content: "\f76e"; }
|
1669 |
+
.bi-heart-pulse::before { content: "\f76f"; }
|
1670 |
+
.bi-heartbreak-fill::before { content: "\f770"; }
|
1671 |
+
.bi-heartbreak::before { content: "\f771"; }
|
1672 |
+
.bi-hearts::before { content: "\f772"; }
|
1673 |
+
.bi-hospital-fill::before { content: "\f773"; }
|
1674 |
+
.bi-hospital::before { content: "\f774"; }
|
1675 |
+
.bi-house-heart-fill::before { content: "\f775"; }
|
1676 |
+
.bi-house-heart::before { content: "\f776"; }
|
1677 |
+
.bi-incognito::before { content: "\f777"; }
|
1678 |
+
.bi-magnet-fill::before { content: "\f778"; }
|
1679 |
+
.bi-magnet::before { content: "\f779"; }
|
1680 |
+
.bi-person-heart::before { content: "\f77a"; }
|
1681 |
+
.bi-person-hearts::before { content: "\f77b"; }
|
1682 |
+
.bi-phone-flip::before { content: "\f77c"; }
|
1683 |
+
.bi-plugin::before { content: "\f77d"; }
|
1684 |
+
.bi-postage-fill::before { content: "\f77e"; }
|
1685 |
+
.bi-postage-heart-fill::before { content: "\f77f"; }
|
1686 |
+
.bi-postage-heart::before { content: "\f780"; }
|
1687 |
+
.bi-postage::before { content: "\f781"; }
|
1688 |
+
.bi-postcard-fill::before { content: "\f782"; }
|
1689 |
+
.bi-postcard-heart-fill::before { content: "\f783"; }
|
1690 |
+
.bi-postcard-heart::before { content: "\f784"; }
|
1691 |
+
.bi-postcard::before { content: "\f785"; }
|
1692 |
+
.bi-search-heart-fill::before { content: "\f786"; }
|
1693 |
+
.bi-search-heart::before { content: "\f787"; }
|
1694 |
+
.bi-sliders2-vertical::before { content: "\f788"; }
|
1695 |
+
.bi-sliders2::before { content: "\f789"; }
|
1696 |
+
.bi-trash3-fill::before { content: "\f78a"; }
|
1697 |
+
.bi-trash3::before { content: "\f78b"; }
|
1698 |
+
.bi-valentine::before { content: "\f78c"; }
|
1699 |
+
.bi-valentine2::before { content: "\f78d"; }
|
1700 |
+
.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; }
|
1701 |
+
.bi-wrench-adjustable-circle::before { content: "\f78f"; }
|
1702 |
+
.bi-wrench-adjustable::before { content: "\f790"; }
|
1703 |
+
.bi-filetype-json::before { content: "\f791"; }
|
1704 |
+
.bi-filetype-pptx::before { content: "\f792"; }
|
1705 |
+
.bi-filetype-xlsx::before { content: "\f793"; }
|
1706 |
+
.bi-1-circle-1::before { content: "\f794"; }
|
1707 |
+
.bi-1-circle-fill-1::before { content: "\f795"; }
|
1708 |
+
.bi-1-circle-fill::before { content: "\f796"; }
|
1709 |
+
.bi-1-circle::before { content: "\f797"; }
|
1710 |
+
.bi-1-square-fill::before { content: "\f798"; }
|
1711 |
+
.bi-1-square::before { content: "\f799"; }
|
1712 |
+
.bi-2-circle-1::before { content: "\f79a"; }
|
1713 |
+
.bi-2-circle-fill-1::before { content: "\f79b"; }
|
1714 |
+
.bi-2-circle-fill::before { content: "\f79c"; }
|
1715 |
+
.bi-2-circle::before { content: "\f79d"; }
|
1716 |
+
.bi-2-square-fill::before { content: "\f79e"; }
|
1717 |
+
.bi-2-square::before { content: "\f79f"; }
|
1718 |
+
.bi-3-circle-1::before { content: "\f7a0"; }
|
1719 |
+
.bi-3-circle-fill-1::before { content: "\f7a1"; }
|
1720 |
+
.bi-3-circle-fill::before { content: "\f7a2"; }
|
1721 |
+
.bi-3-circle::before { content: "\f7a3"; }
|
1722 |
+
.bi-3-square-fill::before { content: "\f7a4"; }
|
1723 |
+
.bi-3-square::before { content: "\f7a5"; }
|
1724 |
+
.bi-4-circle-1::before { content: "\f7a6"; }
|
1725 |
+
.bi-4-circle-fill-1::before { content: "\f7a7"; }
|
1726 |
+
.bi-4-circle-fill::before { content: "\f7a8"; }
|
1727 |
+
.bi-4-circle::before { content: "\f7a9"; }
|
1728 |
+
.bi-4-square-fill::before { content: "\f7aa"; }
|
1729 |
+
.bi-4-square::before { content: "\f7ab"; }
|
1730 |
+
.bi-5-circle-1::before { content: "\f7ac"; }
|
1731 |
+
.bi-5-circle-fill-1::before { content: "\f7ad"; }
|
1732 |
+
.bi-5-circle-fill::before { content: "\f7ae"; }
|
1733 |
+
.bi-5-circle::before { content: "\f7af"; }
|
1734 |
+
.bi-5-square-fill::before { content: "\f7b0"; }
|
1735 |
+
.bi-5-square::before { content: "\f7b1"; }
|
1736 |
+
.bi-6-circle-1::before { content: "\f7b2"; }
|
1737 |
+
.bi-6-circle-fill-1::before { content: "\f7b3"; }
|
1738 |
+
.bi-6-circle-fill::before { content: "\f7b4"; }
|
1739 |
+
.bi-6-circle::before { content: "\f7b5"; }
|
1740 |
+
.bi-6-square-fill::before { content: "\f7b6"; }
|
1741 |
+
.bi-6-square::before { content: "\f7b7"; }
|
1742 |
+
.bi-7-circle-1::before { content: "\f7b8"; }
|
1743 |
+
.bi-7-circle-fill-1::before { content: "\f7b9"; }
|
1744 |
+
.bi-7-circle-fill::before { content: "\f7ba"; }
|
1745 |
+
.bi-7-circle::before { content: "\f7bb"; }
|
1746 |
+
.bi-7-square-fill::before { content: "\f7bc"; }
|
1747 |
+
.bi-7-square::before { content: "\f7bd"; }
|
1748 |
+
.bi-8-circle-1::before { content: "\f7be"; }
|
1749 |
+
.bi-8-circle-fill-1::before { content: "\f7bf"; }
|
1750 |
+
.bi-8-circle-fill::before { content: "\f7c0"; }
|
1751 |
+
.bi-8-circle::before { content: "\f7c1"; }
|
1752 |
+
.bi-8-square-fill::before { content: "\f7c2"; }
|
1753 |
+
.bi-8-square::before { content: "\f7c3"; }
|
1754 |
+
.bi-9-circle-1::before { content: "\f7c4"; }
|
1755 |
+
.bi-9-circle-fill-1::before { content: "\f7c5"; }
|
1756 |
+
.bi-9-circle-fill::before { content: "\f7c6"; }
|
1757 |
+
.bi-9-circle::before { content: "\f7c7"; }
|
1758 |
+
.bi-9-square-fill::before { content: "\f7c8"; }
|
1759 |
+
.bi-9-square::before { content: "\f7c9"; }
|
1760 |
+
.bi-airplane-engines-fill::before { content: "\f7ca"; }
|
1761 |
+
.bi-airplane-engines::before { content: "\f7cb"; }
|
1762 |
+
.bi-airplane-fill::before { content: "\f7cc"; }
|
1763 |
+
.bi-airplane::before { content: "\f7cd"; }
|
1764 |
+
.bi-alexa::before { content: "\f7ce"; }
|
1765 |
+
.bi-alipay::before { content: "\f7cf"; }
|
1766 |
+
.bi-android::before { content: "\f7d0"; }
|
1767 |
+
.bi-android2::before { content: "\f7d1"; }
|
1768 |
+
.bi-box-fill::before { content: "\f7d2"; }
|
1769 |
+
.bi-box-seam-fill::before { content: "\f7d3"; }
|
1770 |
+
.bi-browser-chrome::before { content: "\f7d4"; }
|
1771 |
+
.bi-browser-edge::before { content: "\f7d5"; }
|
1772 |
+
.bi-browser-firefox::before { content: "\f7d6"; }
|
1773 |
+
.bi-browser-safari::before { content: "\f7d7"; }
|
1774 |
+
.bi-c-circle-1::before { content: "\f7d8"; }
|
1775 |
+
.bi-c-circle-fill-1::before { content: "\f7d9"; }
|
1776 |
+
.bi-c-circle-fill::before { content: "\f7da"; }
|
1777 |
+
.bi-c-circle::before { content: "\f7db"; }
|
1778 |
+
.bi-c-square-fill::before { content: "\f7dc"; }
|
1779 |
+
.bi-c-square::before { content: "\f7dd"; }
|
1780 |
+
.bi-capsule-pill::before { content: "\f7de"; }
|
1781 |
+
.bi-capsule::before { content: "\f7df"; }
|
1782 |
+
.bi-car-front-fill::before { content: "\f7e0"; }
|
1783 |
+
.bi-car-front::before { content: "\f7e1"; }
|
1784 |
+
.bi-cassette-fill::before { content: "\f7e2"; }
|
1785 |
+
.bi-cassette::before { content: "\f7e3"; }
|
1786 |
+
.bi-cc-circle-1::before { content: "\f7e4"; }
|
1787 |
+
.bi-cc-circle-fill-1::before { content: "\f7e5"; }
|
1788 |
+
.bi-cc-circle-fill::before { content: "\f7e6"; }
|
1789 |
+
.bi-cc-circle::before { content: "\f7e7"; }
|
1790 |
+
.bi-cc-square-fill::before { content: "\f7e8"; }
|
1791 |
+
.bi-cc-square::before { content: "\f7e9"; }
|
1792 |
+
.bi-cup-hot-fill::before { content: "\f7ea"; }
|
1793 |
+
.bi-cup-hot::before { content: "\f7eb"; }
|
1794 |
+
.bi-currency-rupee::before { content: "\f7ec"; }
|
1795 |
+
.bi-dropbox::before { content: "\f7ed"; }
|
1796 |
+
.bi-escape::before { content: "\f7ee"; }
|
1797 |
+
.bi-fast-forward-btn-fill::before { content: "\f7ef"; }
|
1798 |
+
.bi-fast-forward-btn::before { content: "\f7f0"; }
|
1799 |
+
.bi-fast-forward-circle-fill::before { content: "\f7f1"; }
|
1800 |
+
.bi-fast-forward-circle::before { content: "\f7f2"; }
|
1801 |
+
.bi-fast-forward-fill::before { content: "\f7f3"; }
|
1802 |
+
.bi-fast-forward::before { content: "\f7f4"; }
|
1803 |
+
.bi-filetype-sql::before { content: "\f7f5"; }
|
1804 |
+
.bi-fire::before { content: "\f7f6"; }
|
1805 |
+
.bi-google-play::before { content: "\f7f7"; }
|
1806 |
+
.bi-h-circle-1::before { content: "\f7f8"; }
|
1807 |
+
.bi-h-circle-fill-1::before { content: "\f7f9"; }
|
1808 |
+
.bi-h-circle-fill::before { content: "\f7fa"; }
|
1809 |
+
.bi-h-circle::before { content: "\f7fb"; }
|
1810 |
+
.bi-h-square-fill::before { content: "\f7fc"; }
|
1811 |
+
.bi-h-square::before { content: "\f7fd"; }
|
1812 |
+
.bi-indent::before { content: "\f7fe"; }
|
1813 |
+
.bi-lungs-fill::before { content: "\f7ff"; }
|
1814 |
+
.bi-lungs::before { content: "\f800"; }
|
1815 |
+
.bi-microsoft-teams::before { content: "\f801"; }
|
1816 |
+
.bi-p-circle-1::before { content: "\f802"; }
|
1817 |
+
.bi-p-circle-fill-1::before { content: "\f803"; }
|
1818 |
+
.bi-p-circle-fill::before { content: "\f804"; }
|
1819 |
+
.bi-p-circle::before { content: "\f805"; }
|
1820 |
+
.bi-p-square-fill::before { content: "\f806"; }
|
1821 |
+
.bi-p-square::before { content: "\f807"; }
|
1822 |
+
.bi-pass-fill::before { content: "\f808"; }
|
1823 |
+
.bi-pass::before { content: "\f809"; }
|
1824 |
+
.bi-prescription::before { content: "\f80a"; }
|
1825 |
+
.bi-prescription2::before { content: "\f80b"; }
|
1826 |
+
.bi-r-circle-1::before { content: "\f80c"; }
|
1827 |
+
.bi-r-circle-fill-1::before { content: "\f80d"; }
|
1828 |
+
.bi-r-circle-fill::before { content: "\f80e"; }
|
1829 |
+
.bi-r-circle::before { content: "\f80f"; }
|
1830 |
+
.bi-r-square-fill::before { content: "\f810"; }
|
1831 |
+
.bi-r-square::before { content: "\f811"; }
|
1832 |
+
.bi-repeat-1::before { content: "\f812"; }
|
1833 |
+
.bi-repeat::before { content: "\f813"; }
|
1834 |
+
.bi-rewind-btn-fill::before { content: "\f814"; }
|
1835 |
+
.bi-rewind-btn::before { content: "\f815"; }
|
1836 |
+
.bi-rewind-circle-fill::before { content: "\f816"; }
|
1837 |
+
.bi-rewind-circle::before { content: "\f817"; }
|
1838 |
+
.bi-rewind-fill::before { content: "\f818"; }
|
1839 |
+
.bi-rewind::before { content: "\f819"; }
|
1840 |
+
.bi-train-freight-front-fill::before { content: "\f81a"; }
|
1841 |
+
.bi-train-freight-front::before { content: "\f81b"; }
|
1842 |
+
.bi-train-front-fill::before { content: "\f81c"; }
|
1843 |
+
.bi-train-front::before { content: "\f81d"; }
|
1844 |
+
.bi-train-lightrail-front-fill::before { content: "\f81e"; }
|
1845 |
+
.bi-train-lightrail-front::before { content: "\f81f"; }
|
1846 |
+
.bi-truck-front-fill::before { content: "\f820"; }
|
1847 |
+
.bi-truck-front::before { content: "\f821"; }
|
1848 |
+
.bi-ubuntu::before { content: "\f822"; }
|
1849 |
+
.bi-unindent::before { content: "\f823"; }
|
1850 |
+
.bi-unity::before { content: "\f824"; }
|
1851 |
+
.bi-universal-access-circle::before { content: "\f825"; }
|
1852 |
+
.bi-universal-access::before { content: "\f826"; }
|
1853 |
+
.bi-virus::before { content: "\f827"; }
|
1854 |
+
.bi-virus2::before { content: "\f828"; }
|
1855 |
+
.bi-wechat::before { content: "\f829"; }
|
1856 |
+
.bi-yelp::before { content: "\f82a"; }
|
1857 |
+
.bi-sign-stop-fill::before { content: "\f82b"; }
|
1858 |
+
.bi-sign-stop-lights-fill::before { content: "\f82c"; }
|
1859 |
+
.bi-sign-stop-lights::before { content: "\f82d"; }
|
1860 |
+
.bi-sign-stop::before { content: "\f82e"; }
|
1861 |
+
.bi-sign-turn-left-fill::before { content: "\f82f"; }
|
1862 |
+
.bi-sign-turn-left::before { content: "\f830"; }
|
1863 |
+
.bi-sign-turn-right-fill::before { content: "\f831"; }
|
1864 |
+
.bi-sign-turn-right::before { content: "\f832"; }
|
1865 |
+
.bi-sign-turn-slight-left-fill::before { content: "\f833"; }
|
1866 |
+
.bi-sign-turn-slight-left::before { content: "\f834"; }
|
1867 |
+
.bi-sign-turn-slight-right-fill::before { content: "\f835"; }
|
1868 |
+
.bi-sign-turn-slight-right::before { content: "\f836"; }
|
1869 |
+
.bi-sign-yield-fill::before { content: "\f837"; }
|
1870 |
+
.bi-sign-yield::before { content: "\f838"; }
|
1871 |
+
.bi-ev-station-fill::before { content: "\f839"; }
|
1872 |
+
.bi-ev-station::before { content: "\f83a"; }
|
1873 |
+
.bi-fuel-pump-diesel-fill::before { content: "\f83b"; }
|
1874 |
+
.bi-fuel-pump-diesel::before { content: "\f83c"; }
|
1875 |
+
.bi-fuel-pump-fill::before { content: "\f83d"; }
|
1876 |
+
.bi-fuel-pump::before { content: "\f83e"; }
|
1877 |
+
.bi-0-circle-fill::before { content: "\f83f"; }
|
1878 |
+
.bi-0-circle::before { content: "\f840"; }
|
1879 |
+
.bi-0-square-fill::before { content: "\f841"; }
|
1880 |
+
.bi-0-square::before { content: "\f842"; }
|
1881 |
+
.bi-rocket-fill::before { content: "\f843"; }
|
1882 |
+
.bi-rocket-takeoff-fill::before { content: "\f844"; }
|
1883 |
+
.bi-rocket-takeoff::before { content: "\f845"; }
|
1884 |
+
.bi-rocket::before { content: "\f846"; }
|
1885 |
+
.bi-stripe::before { content: "\f847"; }
|
1886 |
+
.bi-subscript::before { content: "\f848"; }
|
1887 |
+
.bi-superscript::before { content: "\f849"; }
|
1888 |
+
.bi-trello::before { content: "\f84a"; }
|
1889 |
+
.bi-envelope-at-fill::before { content: "\f84b"; }
|
1890 |
+
.bi-envelope-at::before { content: "\f84c"; }
|
1891 |
+
.bi-regex::before { content: "\f84d"; }
|
1892 |
+
.bi-text-wrap::before { content: "\f84e"; }
|
1893 |
+
.bi-sign-dead-end-fill::before { content: "\f84f"; }
|
1894 |
+
.bi-sign-dead-end::before { content: "\f850"; }
|
1895 |
+
.bi-sign-do-not-enter-fill::before { content: "\f851"; }
|
1896 |
+
.bi-sign-do-not-enter::before { content: "\f852"; }
|
1897 |
+
.bi-sign-intersection-fill::before { content: "\f853"; }
|
1898 |
+
.bi-sign-intersection-side-fill::before { content: "\f854"; }
|
1899 |
+
.bi-sign-intersection-side::before { content: "\f855"; }
|
1900 |
+
.bi-sign-intersection-t-fill::before { content: "\f856"; }
|
1901 |
+
.bi-sign-intersection-t::before { content: "\f857"; }
|
1902 |
+
.bi-sign-intersection-y-fill::before { content: "\f858"; }
|
1903 |
+
.bi-sign-intersection-y::before { content: "\f859"; }
|
1904 |
+
.bi-sign-intersection::before { content: "\f85a"; }
|
1905 |
+
.bi-sign-merge-left-fill::before { content: "\f85b"; }
|
1906 |
+
.bi-sign-merge-left::before { content: "\f85c"; }
|
1907 |
+
.bi-sign-merge-right-fill::before { content: "\f85d"; }
|
1908 |
+
.bi-sign-merge-right::before { content: "\f85e"; }
|
1909 |
+
.bi-sign-no-left-turn-fill::before { content: "\f85f"; }
|
1910 |
+
.bi-sign-no-left-turn::before { content: "\f860"; }
|
1911 |
+
.bi-sign-no-parking-fill::before { content: "\f861"; }
|
1912 |
+
.bi-sign-no-parking::before { content: "\f862"; }
|
1913 |
+
.bi-sign-no-right-turn-fill::before { content: "\f863"; }
|
1914 |
+
.bi-sign-no-right-turn::before { content: "\f864"; }
|
1915 |
+
.bi-sign-railroad-fill::before { content: "\f865"; }
|
1916 |
+
.bi-sign-railroad::before { content: "\f866"; }
|
1917 |
+
.bi-building-add::before { content: "\f867"; }
|
1918 |
+
.bi-building-check::before { content: "\f868"; }
|
1919 |
+
.bi-building-dash::before { content: "\f869"; }
|
1920 |
+
.bi-building-down::before { content: "\f86a"; }
|
1921 |
+
.bi-building-exclamation::before { content: "\f86b"; }
|
1922 |
+
.bi-building-fill-add::before { content: "\f86c"; }
|
1923 |
+
.bi-building-fill-check::before { content: "\f86d"; }
|
1924 |
+
.bi-building-fill-dash::before { content: "\f86e"; }
|
1925 |
+
.bi-building-fill-down::before { content: "\f86f"; }
|
1926 |
+
.bi-building-fill-exclamation::before { content: "\f870"; }
|
1927 |
+
.bi-building-fill-gear::before { content: "\f871"; }
|
1928 |
+
.bi-building-fill-lock::before { content: "\f872"; }
|
1929 |
+
.bi-building-fill-slash::before { content: "\f873"; }
|
1930 |
+
.bi-building-fill-up::before { content: "\f874"; }
|
1931 |
+
.bi-building-fill-x::before { content: "\f875"; }
|
1932 |
+
.bi-building-fill::before { content: "\f876"; }
|
1933 |
+
.bi-building-gear::before { content: "\f877"; }
|
1934 |
+
.bi-building-lock::before { content: "\f878"; }
|
1935 |
+
.bi-building-slash::before { content: "\f879"; }
|
1936 |
+
.bi-building-up::before { content: "\f87a"; }
|
1937 |
+
.bi-building-x::before { content: "\f87b"; }
|
1938 |
+
.bi-buildings-fill::before { content: "\f87c"; }
|
1939 |
+
.bi-buildings::before { content: "\f87d"; }
|
1940 |
+
.bi-bus-front-fill::before { content: "\f87e"; }
|
1941 |
+
.bi-bus-front::before { content: "\f87f"; }
|
1942 |
+
.bi-ev-front-fill::before { content: "\f880"; }
|
1943 |
+
.bi-ev-front::before { content: "\f881"; }
|
1944 |
+
.bi-globe-americas::before { content: "\f882"; }
|
1945 |
+
.bi-globe-asia-australia::before { content: "\f883"; }
|
1946 |
+
.bi-globe-central-south-asia::before { content: "\f884"; }
|
1947 |
+
.bi-globe-europe-africa::before { content: "\f885"; }
|
1948 |
+
.bi-house-add-fill::before { content: "\f886"; }
|
1949 |
+
.bi-house-add::before { content: "\f887"; }
|
1950 |
+
.bi-house-check-fill::before { content: "\f888"; }
|
1951 |
+
.bi-house-check::before { content: "\f889"; }
|
1952 |
+
.bi-house-dash-fill::before { content: "\f88a"; }
|
1953 |
+
.bi-house-dash::before { content: "\f88b"; }
|
1954 |
+
.bi-house-down-fill::before { content: "\f88c"; }
|
1955 |
+
.bi-house-down::before { content: "\f88d"; }
|
1956 |
+
.bi-house-exclamation-fill::before { content: "\f88e"; }
|
1957 |
+
.bi-house-exclamation::before { content: "\f88f"; }
|
1958 |
+
.bi-house-gear-fill::before { content: "\f890"; }
|
1959 |
+
.bi-house-gear::before { content: "\f891"; }
|
1960 |
+
.bi-house-lock-fill::before { content: "\f892"; }
|
1961 |
+
.bi-house-lock::before { content: "\f893"; }
|
1962 |
+
.bi-house-slash-fill::before { content: "\f894"; }
|
1963 |
+
.bi-house-slash::before { content: "\f895"; }
|
1964 |
+
.bi-house-up-fill::before { content: "\f896"; }
|
1965 |
+
.bi-house-up::before { content: "\f897"; }
|
1966 |
+
.bi-house-x-fill::before { content: "\f898"; }
|
1967 |
+
.bi-house-x::before { content: "\f899"; }
|
1968 |
+
.bi-person-add::before { content: "\f89a"; }
|
1969 |
+
.bi-person-down::before { content: "\f89b"; }
|
1970 |
+
.bi-person-exclamation::before { content: "\f89c"; }
|
1971 |
+
.bi-person-fill-add::before { content: "\f89d"; }
|
1972 |
+
.bi-person-fill-check::before { content: "\f89e"; }
|
1973 |
+
.bi-person-fill-dash::before { content: "\f89f"; }
|
1974 |
+
.bi-person-fill-down::before { content: "\f8a0"; }
|
1975 |
+
.bi-person-fill-exclamation::before { content: "\f8a1"; }
|
1976 |
+
.bi-person-fill-gear::before { content: "\f8a2"; }
|
1977 |
+
.bi-person-fill-lock::before { content: "\f8a3"; }
|
1978 |
+
.bi-person-fill-slash::before { content: "\f8a4"; }
|
1979 |
+
.bi-person-fill-up::before { content: "\f8a5"; }
|
1980 |
+
.bi-person-fill-x::before { content: "\f8a6"; }
|
1981 |
+
.bi-person-gear::before { content: "\f8a7"; }
|
1982 |
+
.bi-person-lock::before { content: "\f8a8"; }
|
1983 |
+
.bi-person-slash::before { content: "\f8a9"; }
|
1984 |
+
.bi-person-up::before { content: "\f8aa"; }
|
1985 |
+
.bi-scooter::before { content: "\f8ab"; }
|
1986 |
+
.bi-taxi-front-fill::before { content: "\f8ac"; }
|
1987 |
+
.bi-taxi-front::before { content: "\f8ad"; }
|
1988 |
+
.bi-amd::before { content: "\f8ae"; }
|
1989 |
+
.bi-database-add::before { content: "\f8af"; }
|
1990 |
+
.bi-database-check::before { content: "\f8b0"; }
|
1991 |
+
.bi-database-dash::before { content: "\f8b1"; }
|
1992 |
+
.bi-database-down::before { content: "\f8b2"; }
|
1993 |
+
.bi-database-exclamation::before { content: "\f8b3"; }
|
1994 |
+
.bi-database-fill-add::before { content: "\f8b4"; }
|
1995 |
+
.bi-database-fill-check::before { content: "\f8b5"; }
|
1996 |
+
.bi-database-fill-dash::before { content: "\f8b6"; }
|
1997 |
+
.bi-database-fill-down::before { content: "\f8b7"; }
|
1998 |
+
.bi-database-fill-exclamation::before { content: "\f8b8"; }
|
1999 |
+
.bi-database-fill-gear::before { content: "\f8b9"; }
|
2000 |
+
.bi-database-fill-lock::before { content: "\f8ba"; }
|
2001 |
+
.bi-database-fill-slash::before { content: "\f8bb"; }
|
2002 |
+
.bi-database-fill-up::before { content: "\f8bc"; }
|
2003 |
+
.bi-database-fill-x::before { content: "\f8bd"; }
|
2004 |
+
.bi-database-fill::before { content: "\f8be"; }
|
2005 |
+
.bi-database-gear::before { content: "\f8bf"; }
|
2006 |
+
.bi-database-lock::before { content: "\f8c0"; }
|
2007 |
+
.bi-database-slash::before { content: "\f8c1"; }
|
2008 |
+
.bi-database-up::before { content: "\f8c2"; }
|
2009 |
+
.bi-database-x::before { content: "\f8c3"; }
|
2010 |
+
.bi-database::before { content: "\f8c4"; }
|
2011 |
+
.bi-houses-fill::before { content: "\f8c5"; }
|
2012 |
+
.bi-houses::before { content: "\f8c6"; }
|
2013 |
+
.bi-nvidia::before { content: "\f8c7"; }
|
2014 |
+
.bi-person-vcard-fill::before { content: "\f8c8"; }
|
2015 |
+
.bi-person-vcard::before { content: "\f8c9"; }
|
2016 |
+
.bi-sina-weibo::before { content: "\f8ca"; }
|
2017 |
+
.bi-tencent-qq::before { content: "\f8cb"; }
|
2018 |
+
.bi-wikipedia::before { content: "\f8cc"; }
|
_proc/_docs/site_libs/bootstrap/bootstrap-icons.woff
ADDED
Binary file (164 kB). View file
|
|
_proc/_docs/site_libs/bootstrap/bootstrap.min.css
ADDED
The diff for this file is too large to render.
See raw diff
|
|
_proc/_docs/site_libs/bootstrap/bootstrap.min.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Bootstrap v5.1.3 (https://getbootstrap.com/)
|
3 |
+
* Copyright 2011-2021 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=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=(t,e,i)=>{Object.keys(i).forEach((n=>{const s=i[n],r=e[n],a=r&&o(r)?"element":null==(l=r)?`${l}`:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}))},l=t=>!(!o(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=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?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();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?(p.length||document.addEventListener("DOMContentLoaded",(()=>{p.forEach((t=>t()))})),p.push(e)):e()},_=t=>{"function"==typeof t&&t()},b=(e,i,n=!0)=>{if(!n)return void _(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})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),_(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},v=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,E=/::\d+$/,A={};let T=1;const O={mouseenter:"mouseover",mouseleave:"mouseout"},C=/^(mouseenter|mouseleave)/i,k=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 L(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function x(t){const e=L(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function D(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;s<o;s++){const o=t[n[s]];if(o.originalHandler===e&&o.delegationSelector===i)return o}return null}function S(t,e,i){const n="string"==typeof e,s=n?i:e;let o=P(t);return k.has(o)||(o=t),[n,s,o]}function N(t,e,i,n,s){if("string"!=typeof e||!t)return;if(i||(i=n,n=null),C.test(e)){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=S(e,i,n),l=x(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=L(r,e.replace(y,"")),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(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&j.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&j.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function I(t,e,i,n,s){const o=D(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function P(t){return t=t.replace(w,""),O[t]||t}const j={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=x(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void I(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach((o=>{if(o.includes(n)){const n=s[o];I(t,e,i,n.originalHandler,n.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const n=i.replace(E,"");if(!a||e.includes(n)){const e=h[i];I(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f(),s=P(e),o=e!==s,r=k.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.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)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};class B{constructor(t){(t=r(t))&&(this._element=t,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){b(t,e,i)}static getInstance(t){return H.get(r(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.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class W extends B{static get NAME(){return"alert"}close(){if(j.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(),j.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.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(W,"close"),g(W);const $='[data-bs-toggle="button"]';class z extends B{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=z.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}j.on(document,"click.bs.button.data-api",$,(t=>{t.preventDefault();const e=t.target.closest($);z.getOrCreateInstance(e).toggle()})),g(z);const U={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={};return Object.keys(t.dataset).filter((t=>t.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=q(t.dataset[i])})),e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${F(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={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;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;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=>!c(t)&&l(t)))}},K="carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z},et="slid.bs.carousel",it="active",nt=".active.carousel-item";class st extends B{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return K}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(s(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(nt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,et,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(K,t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&j.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,"mouseenter.bs.carousel",(t=>this.pause(t))),j.on(this._element,"mouseleave.bs.carousel",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach((t=>{j.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()))})),this._pointerEvent?(j.on(this._element,"pointerdown.bs.carousel",(t=>e(t))),j.on(this._element,"pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(j.on(this._element,"touchstart.bs.carousel",(t=>e(t))),j.on(this._element,"touchmove.bs.carousel",(t=>i(t))),j.on(this._element,"touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return v(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(V.findOne(nt,this._element));return j.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e<i.length;e++)if(Number.parseInt(i[e].getAttribute("data-bs-slide-to"),10)===this._getItemIndex(t)){i[e].classList.add(it),i[e].setAttribute("aria-current","true");break}}}_updateInterval(){const t=this._activeElement||V.findOne(nt,this._element);if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(t,e){const i=this._directionToOrder(t),n=V.findOne(nt,this._element),s=this._getItemIndex(n),o=e||this._getItemByOrder(i,n),r=this._getItemIndex(o),a=Boolean(this._interval),l=i===Q,c=l?"carousel-item-start":"carousel-item-end",h=l?"carousel-item-next":"carousel-item-prev",d=this._orderToDirection(i);if(o&&o.classList.contains(it))return void(this._isSliding=!1);if(this._isSliding)return;if(this._triggerSlideEvent(o,d).defaultPrevented)return;if(!n||!o)return;this._isSliding=!0,a&&this.pause(),this._setActiveIndicatorElement(o),this._activeElement=o;const f=()=>{j.trigger(this._element,et,{relatedTarget:o,direction:d,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),u(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(it),n.classList.remove(it,h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove(it),o.classList.add(it),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=st.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){st.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=n(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),st.carouselInterface(e,i),s&&st.getInstance(e).to(s),t.preventDefault()}}j.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",st.dataApiClickHandler),j.on(window,"load.bs.carousel.data-api",(()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;e<i;e++)st.carouselInterface(t[e],st.getInstance(t[e]))})),g(st);const ot="collapse",rt={toggle:!0,parent:null},at={toggle:"boolean",parent:"(null|element)"},lt="show",ct="collapse",ht="collapsing",dt="collapsed",ut=":scope .collapse .collapse",ft='[data-bs-toggle="collapse"]';class pt extends B{constructor(t,e){super(t),this._isTransitioning=!1,this._config=this._getConfig(e),this._triggerArray=[];const n=V.find(ft);for(let t=0,e=n.length;t<e;t++){const e=n[t],s=i(e),o=V.find(s).filter((t=>t===this._element));null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return rt}static get NAME(){return ot}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(ut,this._config.parent);e=V.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((e=>!t.includes(e)))}const i=V.findOne(this._selector);if(e.length){const n=e.find((t=>i!==t));if(t=n?pt.getInstance(n):null,t&&t._isTransitioning)return}if(j.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach((e=>{i!==e&&pt.getOrCreateInstance(e,{toggle:!1}).hide(),t||H.set(e,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[n]="",j.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);const e=this._triggerArray.length;for(let t=0;t<e;t++){const e=this._triggerArray[t],i=n(e);i&&!this._isShown(i)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),j.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_getConfig(t){return(t={...rt,...U.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=r(t.parent),a(ot,t,at),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(ut,this._config.parent);V.find(ft,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=n(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(dt):t.classList.add(dt),t.setAttribute("aria-expanded",e)}))}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,"click.bs.collapse.data-api",ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this);V.find(e).forEach((t=>{pt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),g(pt);var mt="top",gt="bottom",_t="right",bt="left",vt="auto",yt=[mt,gt,_t,bt],wt="start",Et="end",At="clippingParents",Tt="viewport",Ot="popper",Ct="reference",kt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+Et])}),[]),Lt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+Et])}),[]),xt="beforeRead",Dt="read",St="afterRead",Nt="beforeMain",It="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",Bt=[xt,Dt,St,Nt,It,Pt,jt,Mt,Ht];function Rt(t){return t?(t.nodeName||"").toLowerCase():null}function Wt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function $t(t){return t instanceof Wt(t).Element||t instanceof Element}function zt(t){return t instanceof Wt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Wt(t).ShadowRoot||t instanceof ShadowRoot)}const Ft={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];zt(s)&&Rt(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}),{});zt(n)&&Rt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Ut(t){return t.split("-")[0]}function Vt(t,e){var i=t.getBoundingClientRect();return{width:i.width/1,height:i.height/1,top:i.top/1,right:i.right/1,bottom:i.bottom/1,left:i.left/1,x:i.left/1,y:i.top/1}}function Kt(t){var e=Vt(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 Xt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Yt(t){return Wt(t).getComputedStyle(t)}function Qt(t){return["table","td","th"].indexOf(Rt(t))>=0}function Gt(t){return(($t(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zt(t){return"html"===Rt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||Gt(t)}function Jt(t){return zt(t)&&"fixed"!==Yt(t).position?t.offsetParent:null}function te(t){for(var e=Wt(t),i=Jt(t);i&&Qt(i)&&"static"===Yt(i).position;)i=Jt(i);return i&&("html"===Rt(i)||"body"===Rt(i)&&"static"===Yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&zt(t)&&"fixed"===Yt(t).position)return null;for(var i=Zt(t);zt(i)&&["html","body"].indexOf(Rt(i))<0;){var n=Yt(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 ee(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var ie=Math.max,ne=Math.min,se=Math.round;function oe(t,e,i){return ie(t,ne(e,i))}function re(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ae(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const le={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=Ut(i.placement),l=ee(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return re("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ae(t,yt))}(s.padding,i),d=Kt(o),u="y"===l?mt:bt,f="y"===l?gt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=te(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,E=oe(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-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)))&&Xt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ce(t){return t.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function de(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=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:se(se(e*n)/n)||0,y:se(se(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=bt,v=mt,y=window;if(c){var w=te(i),E="clientHeight",A="clientWidth";w===Wt(i)&&"static"!==Yt(w=Gt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==mt&&(s!==bt&&s!==_t||o!==Et)||(v=gt,m-=w[E]-n.height,m*=l?1:-1),s!==bt&&(s!==mt&&s!==gt||o!==Et)||(b=_t,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&he);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}const ue={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:Ut(e.placement),variation:ce(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,de(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,de(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 fe={passive:!0};const pe={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=Wt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,fe)})),a&&l.addEventListener("resize",i.update,fe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,fe)})),a&&l.removeEventListener("resize",i.update,fe)}},data:{}};var me={left:"right",right:"left",bottom:"top",top:"bottom"};function ge(t){return t.replace(/left|right|bottom|top/g,(function(t){return me[t]}))}var _e={start:"end",end:"start"};function be(t){return t.replace(/start|end/g,(function(t){return _e[t]}))}function ve(t){var e=Wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ye(t){return Vt(Gt(t)).left+ve(t).scrollLeft}function we(t){var e=Yt(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(Rt(t))>=0?t.ownerDocument.body:zt(t)&&we(t)?t:Ee(Zt(t))}function Ae(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Wt(n),r=s?[o].concat(o.visualViewport||[],we(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ae(Zt(r)))}function Te(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){return e===Tt?Te(function(t){var e=Wt(t),i=Gt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+ye(t),y:a}}(t)):zt(e)?function(t){var e=Vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Te(function(t){var e,i=Gt(t),n=ve(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ie(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ie(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ye(t),l=-n.scrollTop;return"rtl"===Yt(s||i).direction&&(a+=ie(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Gt(t)))}function Ce(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Ut(s):null,r=s?ce(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case mt:e={x:a,y:i.y-n.height};break;case gt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?ee(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Et: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.boundary,r=void 0===o?At:o,a=i.rootBoundary,l=void 0===a?Tt:a,c=i.elementContext,h=void 0===c?Ot:c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=re("number"!=typeof p?p:ae(p,yt)),g=h===Ot?Ct:Ot,_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Ae(Zt(t)),i=["absolute","fixed"].indexOf(Yt(t).position)>=0&&zt(t)?te(t):t;return $t(i)?e.filter((function(t){return $t(t)&&Xt(t,i)&&"body"!==Rt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Oe(t,i);return e.top=ie(n.top,e.top),e.right=ne(n.right,e.right),e.bottom=ne(n.bottom,e.bottom),e.left=ie(n.left,e.left),e}),Oe(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}($t(b)?b:b.contextElement||Gt(t.elements.popper),r,l),y=Vt(t.elements.reference),w=Ce({reference:y,element:_,strategy:"absolute",placement:s}),E=Te(Object.assign({},_,w)),A=h===Ot?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if(h===Ot&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[_t,gt].indexOf(t)>=0?1:-1,i=[mt,gt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}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?Lt:l,h=ce(n),d=h?a?kt:kt.filter((function(t){return ce(t)===h})):yt,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})[Ut(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const xe={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,_=Ut(g),b=l||(_!==g&&p?function(t){if(Ut(t)===vt)return[];var e=ge(t);return[be(t),e,be(e)]}(g):[ge(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(Ut(i)===vt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O<v.length;O++){var C=v[O],k=Ut(C),L=ce(C)===wt,x=[mt,gt].indexOf(k)>=0,D=x?"width":"height",S=ke(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?_t:bt:L?gt:mt;y[D]>w[D]&&(N=ge(N));var I=ge(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.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 Se(t){return[mt,_t,gt,bt].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=Se(l),d=Se(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})}},Ie={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=Lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Ut(t),s=[bt,mt].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,[bt,_t].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}},Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Ce({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},je={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}),_=Ut(e.placement),b=ce(e.placement),v=!b,y=ee(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?mt:bt,L="y"===y?gt:_t,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P=b===wt?A[x]:T[x],j=b===wt?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?Kt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],$=oe(0,A[x],H[x]),z=v?A[x]/2-I-$-R-O:P-$-R-O,q=v?-A[x]/2+I+$+W+O:j+$+W+O,F=e.elements.arrow&&te(e.elements.arrow),U=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-U,X=E[y]+q-V;if(o){var Y=oe(f?ne(S,K):S,D,f?ie(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?mt:bt,G="x"===y?gt:_t,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=oe(f?ne(J,K):J,Z,f?ie(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function Me(t,e,i){void 0===i&&(i=!1);var n=zt(e);zt(e)&&function(t){var e=t.getBoundingClientRect();e.width,t.offsetWidth,e.height,t.offsetHeight}(e);var s,o,r=Gt(e),a=Vt(t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(n||!n&&!i)&&(("body"!==Rt(e)||we(r))&&(l=(s=e)!==Wt(s)&&zt(s)?{scrollLeft:(o=s).scrollLeft,scrollTop:o.scrollTop}:ve(s)),zt(e)?((c=Vt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=ye(r))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.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 Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Re(){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 We(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?Be:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},Be,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:$t(t)?Ae(t):t.contextElement?Ae(t.contextElement):[],popper:Ae(e)};var r,c,u=function(t){var e=He(t);return Bt.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(Re(e,i)){a.rects={reference:Me(e,te(i),"fixed"===a.options.strategy),popper:Kt(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(!Re(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 $e=We(),ze=We({defaultModifiers:[pe,Pe,ue,Ft]}),qe=We({defaultModifiers:[pe,Pe,ue,Ft,Ie,xe,je,le,Ne]});const Fe=Object.freeze({__proto__:null,popperGenerator:We,detectOverflow:ke,createPopperBase:$e,createPopper:qe,createPopperLite:ze,top:mt,bottom:gt,right:_t,left:bt,auto:vt,basePlacements:yt,start:wt,end:Et,clippingParents:At,viewport:Tt,popper:Ot,reference:Ct,variationPlacements:kt,placements:Lt,beforeRead:xt,read:Dt,afterRead:St,beforeMain:Nt,main:It,afterMain:Pt,beforeWrite:jt,write:Mt,afterWrite:Ht,modifierPhases:Bt,applyStyles:Ft,arrow:le,computeStyles:ue,eventListeners:pe,flip:xe,hide:Ne,offset:Ie,popperOffsets:Pe,preventOverflow:je}),Ue="dropdown",Ve="Escape",Ke="Space",Xe="ArrowUp",Ye="ArrowDown",Qe=new RegExp("ArrowUp|ArrowDown|Escape"),Ge="click.bs.dropdown.data-api",Ze="keydown.bs.dropdown.data-api",Je="show",ti='[data-bs-toggle="dropdown"]',ei=".dropdown-menu",ii=m()?"top-end":"top-start",ni=m()?"top-start":"top-end",si=m()?"bottom-end":"bottom-start",oi=m()?"bottom-start":"bottom-end",ri=m()?"left-start":"right-start",ai=m()?"right-start":"left-start",li={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},ci={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class hi extends B{constructor(t,e){super(t),this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar()}static get Default(){return li}static get DefaultType(){return ci}static get NAME(){return Ue}toggle(){return this._isShown()?this.hide():this.show()}show(){if(c(this._element)||this._isShown(this._menu))return;const t={relatedTarget:this._element};if(j.trigger(this._element,"show.bs.dropdown",t).defaultPrevented)return;const e=hi.getParentFromElement(this._element);this._inNavbar?U.setDataAttribute(this._menu,"popper","none"):this._createPopper(e),"ontouchstart"in document.documentElement&&!e.closest(".navbar-nav")&&[].concat(...document.body.children).forEach((t=>j.on(t,"mouseover",d))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),j.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(c(this._element)||!this._isShown(this._menu))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){j.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},a(Ue,t,this.constructor.DefaultType),"object"==typeof t.reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ue.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:o(this._config.reference)?e=r(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find((t=>"applyStyles"===t.name&&!1===t.enabled));this._popper=qe(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Je)}_getMenuElement(){return V.next(this._element,ei)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_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"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(l);i.length&&v(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.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(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find(ti);for(let i=0,n=e.length;i<n;i++){const n=hi.getInstance(e[i]);if(!n||!1===n._config.autoClose)continue;if(!n._isShown())continue;const s={relatedTarget:n._element};if(t){const e=t.composedPath(),i=e.includes(n._menu);if(e.includes(n._element)||"inside"===n._config.autoClose&&!i||"outside"===n._config.autoClose&&i)continue;if(n._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;"click"===t.type&&(s.clickEvent=t)}n._completeHide(s)}}static getParentFromElement(t){return n(t)||t.parentNode}static dataApiKeydownHandler(t){if(/input|textarea/i.test(t.target.tagName)?t.key===Ke||t.key!==Ve&&(t.key!==Ye&&t.key!==Xe||t.target.closest(ei)):!Qe.test(t.key))return;const e=this.classList.contains(Je);if(!e&&t.key===Ve)return;if(t.preventDefault(),t.stopPropagation(),c(this))return;const i=this.matches(ti)?this:V.prev(this,ti)[0],n=hi.getOrCreateInstance(i);if(t.key!==Ve)return t.key===Xe||t.key===Ye?(e||n.show(),void n._selectMenuItem(t)):void(e&&t.key!==Ke||hi.clearMenus());n.hide()}}j.on(document,Ze,ti,hi.dataApiKeydownHandler),j.on(document,Ze,ei,hi.dataApiKeydownHandler),j.on(document,Ge,hi.clearMenus),j.on(document,"keyup.bs.dropdown.data-api",hi.clearMenus),j.on(document,Ge,ti,(function(t){t.preventDefault(),hi.getOrCreateInstance(this).toggle()})),g(hi);const di=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",ui=".sticky-top";class fi{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,"paddingRight",(e=>e+t)),this._setElementAttributes(di,"paddingRight",(e=>e+t)),this._setElementAttributes(ui,"marginRight",(e=>e-t))}_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)[e];t.style[e]=`${i(Number.parseFloat(s))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(di,"paddingRight"),this._resetElementAttributes(ui,"marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){o(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const pi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mi={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},gi="show",_i="mousedown.bs.backdrop";class bi{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&u(this._getElement()),this._getElement().classList.add(gi),this._emulateAnimation((()=>{_(t)}))):_(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(gi),this._emulateAnimation((()=>{this.dispose(),_(t)}))):_(t)}_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}_getConfig(t){return(t={...pi,..."object"==typeof t?t:{}}).rootElement=r(t.rootElement),a("backdrop",t,mi),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),j.on(this._getElement(),_i,(()=>{_(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(j.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const vi={trapElement:null,autofocus:!0},yi={trapElement:"element",autofocus:"boolean"},wi=".bs.focustrap",Ei="backward";class Ai{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),j.off(document,wi),j.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),j.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,wi))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=V.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===Ei?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ei:"forward")}_getConfig(t){return t={...vi,..."object"==typeof t?t:{}},a("focustrap",t,yi),t}}const Ti="modal",Oi="Escape",Ci={backdrop:!0,keyboard:!0,focus:!0},ki={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Li="hidden.bs.modal",xi="show.bs.modal",Di="resize.bs.modal",Si="click.dismiss.bs.modal",Ni="keydown.dismiss.bs.modal",Ii="mousedown.dismiss.bs.modal",Pi="modal-open",ji="show",Mi="modal-static";class Hi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fi}static get Default(){return Ci}static get NAME(){return Ti}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Pi),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._dialog,Ii,(()=>{j.one(this._element,"mouseup.dismiss.bs.modal",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if(j.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(ji),j.off(this._element,Si),j.off(this._dialog,Ii),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>j.off(t,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_getConfig(t){return t={...Ci,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Ti,t,ki),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||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,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add(ji),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?j.on(this._element,Ni,(t=>{this._config.keyboard&&t.key===Oi?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Oi||this._triggerBackdropTransition()})):j.off(this._element,Ni)}_setResizeEvent(){this._isShown?j.on(window,Di,(()=>this._adjustDialog())):j.off(window,Di)}_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(Pi),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,Li)}))}_showBackdrop(t){j.on(this._element,Si,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains(Mi)||(n||(i.overflowY="hidden"),t.add(Mi),this._queueCallback((()=>{t.remove(Mi),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,xi,(t=>{t.defaultPrevented||j.one(e,Li,(()=>{l(this)&&this.focus()}))}));const i=V.findOne(".modal.show");i&&Hi.getInstance(i).hide(),Hi.getOrCreateInstance(e).toggle(this)})),R(Hi),g(Hi);const Bi="offcanvas",Ri={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},$i="show",zi=".offcanvas.show",qi="hidden.bs.offcanvas";class Fi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Bi}static get Default(){return Ri}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($i),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),j.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fi).reset(),j.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ri,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Bi,t,Wi),t}_initializeBackDrop(){return new bi({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_addEventListeners(){j.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=Fi.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)}}))}}j.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;j.one(e,qi,(()=>{l(this)&&this.focus()}));const i=V.findOne(zi);i&&i!==e&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(e).toggle(this)})),j.on(window,"load.bs.offcanvas.data-api",(()=>V.find(zi).forEach((t=>Fi.getOrCreateInstance(t).show())))),R(Fi),g(Fi);const Ui=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Vi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ki=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Xi=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Ui.has(i)||Boolean(Vi.test(t.nodeValue)||Ki.test(t.nodeValue));const n=e.filter((t=>t instanceof RegExp));for(let t=0,e=n.length;t<e;t++)if(n[t].test(i))return!0;return!1};function Yi(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(let t=0,i=s.length;t<i;t++){const i=s[t],n=i.nodeName.toLowerCase();if(!Object.keys(e).includes(n)){i.remove();continue}const o=[].concat(...i.attributes),r=[].concat(e["*"]||[],e[n]||[]);o.forEach((t=>{Xi(t,r)||i.removeAttribute(t.nodeName)}))}return n.body.innerHTML}const Qi="tooltip",Gi=new Set(["sanitize","allowList","sanitizeFn"]),Zi={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ji={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},tn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["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:[]},popperConfig:null},en={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},nn="fade",sn="show",on="show",rn="out",an=".tooltip-inner",ln=".modal",cn="hide.bs.modal",hn="hover",dn="focus";class un extends B{constructor(t,e){if(void 0===Fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return tn}static get NAME(){return Qi}static get Event(){return en}static get DefaultType(){return Zi}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ln),cn,this._hideModalHandler),this.tip&&this.tip.remove(),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=j.trigger(this._element,this.constructor.Event.SHOW),e=h(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(an).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add(nn);const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;H.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),j.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=qe(this._element,n,this._getPopperConfig(r)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{j.on(t,"mouseover",d)}));const c=this.tip.classList.contains(nn);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,j.trigger(this._element,this.constructor.Event.SHOWN),t===rn&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const t=this.getTipElement();if(j.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(nn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==on&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(nn,sn),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),an)}_sanitizeAndSetContent(t,e,i){const n=V.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return o(e)?(e=r(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Yi(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_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"function"==typeof t?t.call(this._element):t}_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:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ji[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((t=>{if("click"===t)j.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;j.on(this._element,e,this._config.selector,(t=>this._enter(t))),j.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ln),cn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?dn:hn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===on?e._hoverState=on:(clearTimeout(e._timeout),e._hoverState=on,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===on&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?dn:hn]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=rn,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===rn&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Gi.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:r(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()),a(Qi,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yi(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn={...un.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'},pn={...un.DefaultType,content:"(string|element|function)"},mn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class gn extends un{static get Default(){return fn}static get NAME(){return"popover"}static get Event(){return mn}static get DefaultType(){return pn}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=gn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(gn);const _n="scrollspy",bn={offset:10,method:"auto",target:""},vn={offset:"number",method:"string",target:"(string|element)"},yn="active",wn=".nav-link, .list-group-item, .dropdown-item",En="position";class An extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,"scroll.bs.scrollspy",(()=>this._process())),this.refresh(),this._process()}static get Default(){return bn}static get NAME(){return _n}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":En,e="auto"===this._config.method?t:this._config.method,n=e===En?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(wn,this._config.target).map((t=>{const s=i(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[U[e](o).top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){j.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...bn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=r(t.target)||document.documentElement,a(_n,t,vn),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t<this._offsets[e+1])&&this._activate(this._targets[e])}}_activate(t){this._activeTarget=t,this._clear();const e=wn.split(",").map((e=>`${e}[data-bs-target="${t}"],${e}[href="${t}"]`)),i=V.findOne(e.join(","),this._config.target);i.classList.add(yn),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add(yn):V.parents(i,".nav, .list-group").forEach((t=>{V.prev(t,".nav-link, .list-group-item").forEach((t=>t.classList.add(yn))),V.prev(t,".nav-item").forEach((t=>{V.children(t,".nav-link").forEach((t=>t.classList.add(yn)))}))})),j.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(wn,this._config.target).filter((t=>t.classList.contains(yn))).forEach((t=>t.classList.remove(yn)))}static jQueryInterface(t){return this.each((function(){const e=An.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(window,"load.bs.scrollspy.data-api",(()=>{V.find('[data-bs-spy="scroll"]').forEach((t=>new An(t)))})),g(An);const Tn="active",On="fade",Cn="show",kn=".active",Ln=":scope > li > .active";class xn extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Tn))return;let t;const e=n(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?Ln:kn;t=V.find(e,i),t=t[t.length-1]}const s=t?j.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(j.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const o=()=>{j.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),j.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const n=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,kn):V.find(Ln,e))[0],s=i&&n&&n.classList.contains(On),o=()=>this._transitionComplete(t,n,i);n&&s?(n.classList.remove(Cn),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove(Tn);const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove(Tn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add(Tn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),u(t),t.classList.contains(On)&&t.classList.add(Cn);let n=t.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach((t=>t.classList.add(Tn))),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this)||xn.getOrCreateInstance(this).show()})),g(xn);const Dn="toast",Sn="hide",Nn="show",In="showing",Pn={animation:"boolean",autohide:"boolean",delay:"number"},jn={animation:!0,autohide:!0,delay:5e3};class Mn extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Pn}static get Default(){return jn}static get NAME(){return Dn}show(){j.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Sn),u(this._element),this._element.classList.add(Nn),this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.remove(In),j.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(Nn)&&(j.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.add(Sn),this._element.classList.remove(In),this._element.classList.remove(Nn),j.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Nn)&&this._element.classList.remove(Nn),super.dispose()}_getConfig(t){return t={...jn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},a(Dn,t,this.constructor.DefaultType),t}_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(){j.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),j.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),j.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=Mn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Mn),g(Mn),{Alert:W,Button:z,Carousel:st,Collapse:pt,Dropdown:hi,Modal:Hi,Offcanvas:Fi,Popover:gn,ScrollSpy:An,Tab:xn,Toast:Mn,Tooltip:un}}));
|
7 |
+
//# sourceMappingURL=bootstrap.bundle.min.js.map
|
_proc/_docs/site_libs/clipboard/clipboard.min.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* clipboard.js v2.0.11
|
3 |
+
* https://clipboardjs.com/
|
4 |
+
*
|
5 |
+
* Licensed MIT © Zeno Rocha
|
6 |
+
*/
|
7 |
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c("copy")),n};function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==l(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?f(t,{container:o}):e?"cut"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}},{key:"cut",value:function(t){return a(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===p(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",t=s({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:n,text:t,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return m("action",t)}},{key:"defaultTarget",value:function(t){t=m("target",t);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(t){return m("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&d(t.prototype,e),n&&d(t,n),r}()},828:function(t){var e;"undefined"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var u=n(828);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=u(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},879:function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var f=n(879),l=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!f.string(e))throw new TypeError("Second argument must be a String");if(!f.fn(n))throw new TypeError("Third argument must be a Function");if(f.node(t))return c=e,a=n,(u=t).addEventListener(c,a),{destroy:function(){u.removeEventListener(c,a)}};if(f.nodeList(t))return o=t,r=e,i=n,Array.prototype.forEach.call(o,function(t){t.addEventListener(r,i)}),{destroy:function(){Array.prototype.forEach.call(o,function(t){t.removeEventListener(r,i)})}};if(f.string(t))return t=t,e=e,n=n,l(document.body,t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,u,c,a}},817:function(t){t.exports=function(t){var e,n="SELECT"===t.nodeName?(t.focus(),t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?((e=t.hasAttribute("readonly"))||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute("readonly"),t.value):(t.hasAttribute("contenteditable")&&t.focus(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,u=o.length;i<u;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},r={},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(686).default;function o(t){if(r[t])return r[t].exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}var n,r});
|
_proc/_docs/site_libs/quarto-html/anchor.min.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
|
2 |
+
//
|
3 |
+
// AnchorJS - v4.3.1 - 2021-04-17
|
4 |
+
// https://www.bryanbraun.com/anchorjs/
|
5 |
+
// Copyright (c) 2021 Bryan Braun; Licensed MIT
|
6 |
+
//
|
7 |
+
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
|
8 |
+
!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function d(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function w(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],d(this.options),this.isTouchDevice=function(){return Boolean("ontouchstart"in window||window.TouchEvent||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,o,i,n,s,a,c,r,l,h,u,p=[];if(d(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),0===(e=w(A=A||"h2, h3, h4, h5, h6")).length)return this;for(null===document.head.querySelector("style.anchorjs")&&((u=document.createElement("style")).className="anchorjs",u.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(u):document.head.insertBefore(u,A),u.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",u.sheet.cssRules.length),u.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",u.sheet.cssRules.length),u.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",u.sheet.cssRules.length),u.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',u.sheet.cssRules.length)),u=document.querySelectorAll("[id]"),t=[].map.call(u,function(A){return A.id}),i=0;i<e.length;i++)if(this.hasAnchorJSLink(e[i]))p.push(i);else{if(e[i].hasAttribute("id"))o=e[i].getAttribute("id");else if(e[i].hasAttribute("data-anchor-id"))o=e[i].getAttribute("data-anchor-id");else{for(c=a=this.urlify(e[i].textContent),s=0;n=t.indexOf(c=void 0!==n?a+"-"+s:c),s+=1,-1!==n;);n=void 0,t.push(c),e[i].setAttribute("id",c),o=c}(r=document.createElement("a")).className="anchorjs-link "+this.options.class,r.setAttribute("aria-label",this.options.ariaLabel),r.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(r.title=this.options.titleText),h=document.querySelector("base")?window.location.pathname+window.location.search:"",h=this.options.base||h,r.href=h+"#"+o,"always"===l&&(r.style.opacity="1"),""===this.options.icon&&(r.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(r.style.lineHeight="inherit")),"left"===this.options.placement?(r.style.position="absolute",r.style.marginLeft="-1em",r.style.paddingRight=".5em",e[i].insertBefore(r,e[i].firstChild)):(r.style.paddingLeft=".375em",e[i].appendChild(r))}for(i=0;i<p.length;i++)e.splice(p[i]-i,1);return this.elements=this.elements.concat(e),this},this.remove=function(A){for(var e,t,o=w(A),i=0;i<o.length;i++)(t=o[i].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(o[i]))&&this.elements.splice(e,1),o[i].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){var e=document.createElement("textarea");return e.innerHTML=A,A=e.value,this.options.truncate||d(this.options),A.trim().replace(/'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}});
|
9 |
+
// @license-end
|
_proc/_docs/site_libs/quarto-html/popper.min.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @popperjs/core v2.11.4 - MIT License
|
3 |
+
*/
|
4 |
+
|
5 |
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),i=w(e);i&&x(i)&&"static"===d(i).position;)i=w(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===d(i).position)?n:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;var n=g(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(p(n))<0;){var i=d(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function V(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function N(e,r){return r===W?V(function(e){var n=t(e),r=u(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,f=0;return o&&(i=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=o.offsetLeft,f=o.offsetTop)),{width:i,height:a,x:s+l(e),y:f}}(e)):n(r)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(r):V(function(e){var t,n=u(e),r=c(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+l(e),p=-r.scrollTop;return"rtl"===d(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:p}}(u(e)))}function I(e,t,o){var s="clippingParents"===t?function(e){var t=b(g(e)),o=["absolute","fixed"].indexOf(d(e).position)>=0&&r(e)?O(e):e;return n(o)?t.filter((function(e){return n(e)&&q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),f=[].concat(s,[o]),c=f[0],u=f.reduce((function(t,n){var r=N(e,n);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),N(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function _(e){return e.split("-")[1]}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?_(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case j:t={x:s,y:n.y-r.height};break;case E:t={x:s,y:n.y+n.height};break;case D:t={x:n.x+n.width,y:f};break;case A:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?F(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case M:t[c]=t[c]-(n[p]/2-r[p]/2);break;case k:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function z(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function X(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Y(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.boundary,s=void 0===a?"clippingParents":a,c=r.rootBoundary,p=void 0===c?W:c,l=r.elementContext,d=void 0===l?B:l,h=r.altBoundary,m=void 0!==h&&h,v=r.padding,g=void 0===v?0:v,y=z("number"!=typeof g?g:X(g,P)),b=d===B?"reference":B,x=e.rects.popper,w=e.elements[m?b:d],O=I(n(w)?w:w.contextElement||u(e.elements.popper),s,p),A=f(e.elements.reference),L=U({reference:A,element:x,strategy:"absolute",placement:i}),M=V(Object.assign({},x,L)),k=d===B?M:A,H={top:O.top-k.top+y.top,bottom:k.bottom-O.bottom+y.bottom,left:O.left-k.left+y.left,right:k.right-O.right+y.right},T=e.modifiersData.offset;if(d===B&&T){var R=T[i];Object.keys(H).forEach((function(e){var t=[D,E].indexOf(e)>=0?1:-1,n=[j,E].indexOf(e)>=0?"y":"x";H[e]+=R[n]*t}))}return H}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function K(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,o=void 0===r?[]:r,i=t.defaultOptions,a=void 0===i?G:i;return function(e,t,r){void 0===r&&(r=a);var i,s,f={placement:"bottom",orderedModifiers:[],options:Object.assign({},G,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},c=[],p=!1,u={state:f,setOptions:function(r){var i="function"==typeof r?r(f.options):r;l(),f.options=Object.assign({},a,f.options,i),f.scrollParents={reference:n(e)?b(e):e.contextElement?b(e.contextElement):[],popper:b(t)};var s,p,d=function(e){var t=S(e);return R.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((s=[].concat(o,f.options.modifiers),p=s.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(p).map((function(e){return p[e]}))));return f.orderedModifiers=d.filter((function(e){return e.enabled})),f.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"==typeof o){var i=o({state:f,name:t,instance:u,options:r}),a=function(){};c.push(i||a)}})),u.update()},forceUpdate:function(){if(!p){var e=f.elements,t=e.reference,n=e.popper;if(J(t,n)){f.rects={reference:m(t,O(n),"fixed"===f.options.strategy),popper:v(n)},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach((function(e){return f.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<f.orderedModifiers.length;r++)if(!0!==f.reset){var o=f.orderedModifiers[r],i=o.fn,a=o.options,s=void 0===a?{}:a,c=o.name;"function"==typeof i&&(f=i({state:f,options:s,name:c,instance:u})||f)}else f.reset=!1,r=-1}}},update:(i=function(){return new Promise((function(e){u.forceUpdate(),e(f)}))},function(){return s||(s=new Promise((function(e){Promise.resolve().then((function(){s=void 0,e(i())}))}))),s}),destroy:function(){l(),p=!0}};if(!J(e,t))return u;function l(){c.forEach((function(e){return e()})),c=[]}return u.setOptions(r).then((function(e){!p&&r.onFirstUpdate&&r.onFirstUpdate(e)})),u}}var Q={passive:!0};var Z={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,r=e.instance,o=e.options,i=o.scroll,a=void 0===i||i,s=o.resize,f=void 0===s||s,c=t(n.elements.popper),p=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&p.forEach((function(e){e.addEventListener("scroll",r.update,Q)})),f&&c.addEventListener("resize",r.update,Q),function(){a&&p.forEach((function(e){e.removeEventListener("scroll",r.update,Q)})),f&&c.removeEventListener("resize",r.update,Q)}},data:{}};var $={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=U({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},ee={top:"auto",right:"auto",bottom:"auto",left:"auto"};function te(e){var n,r=e.popper,o=e.popperRect,i=e.placement,a=e.variation,f=e.offsets,c=e.position,p=e.gpuAcceleration,l=e.adaptive,h=e.roundOffsets,m=e.isFixed,v=f.x,g=void 0===v?0:v,y=f.y,b=void 0===y?0:y,x="function"==typeof h?h({x:g,y:b}):{x:g,y:b};g=x.x,b=x.y;var w=f.hasOwnProperty("x"),L=f.hasOwnProperty("y"),P=A,M=j,W=window;if(l){var B=O(r),H="clientHeight",T="clientWidth";if(B===t(r)&&"static"!==d(B=u(r)).position&&"absolute"===c&&(H="scrollHeight",T="scrollWidth"),B=B,i===j||(i===A||i===D)&&a===k)M=E,b-=(m&&B===W&&W.visualViewport?W.visualViewport.height:B[H])-o.height,b*=p?1:-1;if(i===A||(i===j||i===E)&&a===k)P=D,g-=(m&&B===W&&W.visualViewport?W.visualViewport.width:B[T])-o.width,g*=p?1:-1}var R,S=Object.assign({position:c},l&&ee),C=!0===h?function(e){var t=e.x,n=e.y,r=window.devicePixelRatio||1;return{x:s(t*r)/r||0,y:s(n*r)/r||0}}({x:g,y:b}):{x:g,y:b};return g=C.x,b=C.y,p?Object.assign({},S,((R={})[M]=L?"0":"",R[P]=w?"0":"",R.transform=(W.devicePixelRatio||1)<=1?"translate("+g+"px, "+b+"px)":"translate3d("+g+"px, "+b+"px, 0)",R)):Object.assign({},S,((n={})[M]=L?b+"px":"",n[P]=w?g+"px":"",n.transform="",n))}var ne={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:C(t.placement),variation:_(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,te(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,te(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var re={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];r(i)&&p(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});r(o)&&p(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};var oe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=T.reduce((function(e,n){return e[n]=function(e,t,n){var r=C(e),o=[A,j].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[A,D].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function fe(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?T:f,p=_(r),u=p?s?H:H.filter((function(e){return _(e)===p})):P,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=Y(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var pe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,g=C(v),y=f||(g===v||!h?[ae(v)]:function(e){if(C(e)===L)return[];var t=ae(e);return[fe(e),t,fe(t)]}(v)),b=[v].concat(y).reduce((function(e,n){return e.concat(C(n)===L?ce(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,P=!0,k=b[0],W=0;W<b.length;W++){var B=b[W],H=C(B),T=_(B)===M,R=[j,E].indexOf(H)>=0,S=R?"width":"height",q=Y(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),V=R?T?D:A:T?E:j;x[S]>w[S]&&(V=ae(V));var N=ae(V),I=[];if(i&&I.push(q[H]<=0),s&&I.push(q[V]<=0,q[N]<=0),I.every((function(e){return e}))){k=B,P=!1;break}O.set(B,I)}if(P)for(var F=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},U=h?3:1;U>0;U--){if("break"===F(U))break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return i(e,a(t,n))}var le={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,g=n.tetherOffset,y=void 0===g?0:g,b=Y(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=_(t.placement),L=!w,P=F(x),k="x"===P?"y":"x",W=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,q={x:0,y:0};if(W){if(s){var V,N="y"===P?j:A,I="y"===P?E:D,U="y"===P?"height":"width",z=W[P],X=z+b[N],G=z-b[I],J=m?-H[U]/2:0,K=w===M?B[U]:H[U],Q=w===M?-H[U]:-B[U],Z=t.elements.arrow,$=m&&Z?v(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=ue(0,B[U],$[U]),oe=L?B[U]/2-J-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=L?-B[U]/2+J+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&O(t.elements.arrow),se=ae?"y"===P?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(V=null==S?void 0:S[P])?V:0,ce=z+ie-fe,pe=ue(m?a(X,z+oe-fe-se):X,z,m?i(G,ce):G);W[P]=pe,q[P]=pe-z}if(c){var le,de="x"===P?j:A,he="x"===P?E:D,me=W[k],ve="y"===k?"height":"width",ge=me+b[de],ye=me-b[he],be=-1!==[j,A].indexOf(x),xe=null!=(le=null==S?void 0:S[k])?le:0,we=be?ge:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ye,je=m&&be?function(e,t,n){var r=ue(e,t,n);return r>n?n:r}(we,me,Oe):ue(m?we:ge,me,m?Oe:ye);W[k]=je,q[k]=je-me}t.modifiersData[r]=q}},requiresIfExists:["offset"]};var de={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=F(s),c=[A,D].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return z("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:X(e,P))}(o.padding,n),u=v(i),l="y"===f?j:A,d="y"===f?E:D,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],g=O(i),y=g?"y"===f?g.clientHeight||0:g.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],L=y/2-u[c]/2+b,M=ue(x,L,w),k=f;n.modifiersData[r]=((t={})[k]=M,t.centerOffset=M-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&q(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[j,D,E,A].some((function(t){return e[t]>=0}))}var ve={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Y(t,{elementContext:"reference"}),s=Y(t,{altBoundary:!0}),f=he(a,r),c=he(s,o,i),p=me(f),u=me(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},ge=K({defaultModifiers:[Z,$,ne,re]}),ye=[Z,$,ne,re,oe,pe,le,de,ve],be=K({defaultModifiers:ye});e.applyStyles=re,e.arrow=de,e.computeStyles=ne,e.createPopper=be,e.createPopperLite=ge,e.defaultModifiers=ye,e.detectOverflow=Y,e.eventListeners=Z,e.flip=pe,e.hide=ve,e.offset=oe,e.popperGenerator=K,e.popperOffsets=$,e.preventOverflow=le,Object.defineProperty(e,"__esModule",{value:!0})}));
|
6 |
+
|
_proc/_docs/site_libs/quarto-html/quarto-syntax-highlighting.css
ADDED
@@ -0,0 +1,203 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* quarto syntax highlight colors */
|
2 |
+
:root {
|
3 |
+
--quarto-hl-ot-color: #003B4F;
|
4 |
+
--quarto-hl-at-color: #657422;
|
5 |
+
--quarto-hl-ss-color: #20794D;
|
6 |
+
--quarto-hl-an-color: #5E5E5E;
|
7 |
+
--quarto-hl-fu-color: #4758AB;
|
8 |
+
--quarto-hl-st-color: #20794D;
|
9 |
+
--quarto-hl-cf-color: #003B4F;
|
10 |
+
--quarto-hl-op-color: #5E5E5E;
|
11 |
+
--quarto-hl-er-color: #AD0000;
|
12 |
+
--quarto-hl-bn-color: #AD0000;
|
13 |
+
--quarto-hl-al-color: #AD0000;
|
14 |
+
--quarto-hl-va-color: #111111;
|
15 |
+
--quarto-hl-bu-color: inherit;
|
16 |
+
--quarto-hl-ex-color: inherit;
|
17 |
+
--quarto-hl-pp-color: #AD0000;
|
18 |
+
--quarto-hl-in-color: #5E5E5E;
|
19 |
+
--quarto-hl-vs-color: #20794D;
|
20 |
+
--quarto-hl-wa-color: #5E5E5E;
|
21 |
+
--quarto-hl-do-color: #5E5E5E;
|
22 |
+
--quarto-hl-im-color: #00769E;
|
23 |
+
--quarto-hl-ch-color: #20794D;
|
24 |
+
--quarto-hl-dt-color: #AD0000;
|
25 |
+
--quarto-hl-fl-color: #AD0000;
|
26 |
+
--quarto-hl-co-color: #5E5E5E;
|
27 |
+
--quarto-hl-cv-color: #5E5E5E;
|
28 |
+
--quarto-hl-cn-color: #8f5902;
|
29 |
+
--quarto-hl-sc-color: #5E5E5E;
|
30 |
+
--quarto-hl-dv-color: #AD0000;
|
31 |
+
--quarto-hl-kw-color: #003B4F;
|
32 |
+
}
|
33 |
+
|
34 |
+
/* other quarto variables */
|
35 |
+
:root {
|
36 |
+
--quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
37 |
+
}
|
38 |
+
|
39 |
+
pre > code.sourceCode > span {
|
40 |
+
color: #003B4F;
|
41 |
+
}
|
42 |
+
|
43 |
+
code span {
|
44 |
+
color: #003B4F;
|
45 |
+
}
|
46 |
+
|
47 |
+
code.sourceCode > span {
|
48 |
+
color: #003B4F;
|
49 |
+
}
|
50 |
+
|
51 |
+
div.sourceCode,
|
52 |
+
div.sourceCode pre.sourceCode {
|
53 |
+
color: #003B4F;
|
54 |
+
}
|
55 |
+
|
56 |
+
code span.ot {
|
57 |
+
color: #003B4F;
|
58 |
+
font-style: inherit;
|
59 |
+
}
|
60 |
+
|
61 |
+
code span.at {
|
62 |
+
color: #657422;
|
63 |
+
font-style: inherit;
|
64 |
+
}
|
65 |
+
|
66 |
+
code span.ss {
|
67 |
+
color: #20794D;
|
68 |
+
font-style: inherit;
|
69 |
+
}
|
70 |
+
|
71 |
+
code span.an {
|
72 |
+
color: #5E5E5E;
|
73 |
+
font-style: inherit;
|
74 |
+
}
|
75 |
+
|
76 |
+
code span.fu {
|
77 |
+
color: #4758AB;
|
78 |
+
font-style: inherit;
|
79 |
+
}
|
80 |
+
|
81 |
+
code span.st {
|
82 |
+
color: #20794D;
|
83 |
+
font-style: inherit;
|
84 |
+
}
|
85 |
+
|
86 |
+
code span.cf {
|
87 |
+
color: #003B4F;
|
88 |
+
font-style: inherit;
|
89 |
+
}
|
90 |
+
|
91 |
+
code span.op {
|
92 |
+
color: #5E5E5E;
|
93 |
+
font-style: inherit;
|
94 |
+
}
|
95 |
+
|
96 |
+
code span.er {
|
97 |
+
color: #AD0000;
|
98 |
+
font-style: inherit;
|
99 |
+
}
|
100 |
+
|
101 |
+
code span.bn {
|
102 |
+
color: #AD0000;
|
103 |
+
font-style: inherit;
|
104 |
+
}
|
105 |
+
|
106 |
+
code span.al {
|
107 |
+
color: #AD0000;
|
108 |
+
font-style: inherit;
|
109 |
+
}
|
110 |
+
|
111 |
+
code span.va {
|
112 |
+
color: #111111;
|
113 |
+
font-style: inherit;
|
114 |
+
}
|
115 |
+
|
116 |
+
code span.bu {
|
117 |
+
font-style: inherit;
|
118 |
+
}
|
119 |
+
|
120 |
+
code span.ex {
|
121 |
+
font-style: inherit;
|
122 |
+
}
|
123 |
+
|
124 |
+
code span.pp {
|
125 |
+
color: #AD0000;
|
126 |
+
font-style: inherit;
|
127 |
+
}
|
128 |
+
|
129 |
+
code span.in {
|
130 |
+
color: #5E5E5E;
|
131 |
+
font-style: inherit;
|
132 |
+
}
|
133 |
+
|
134 |
+
code span.vs {
|
135 |
+
color: #20794D;
|
136 |
+
font-style: inherit;
|
137 |
+
}
|
138 |
+
|
139 |
+
code span.wa {
|
140 |
+
color: #5E5E5E;
|
141 |
+
font-style: italic;
|
142 |
+
}
|
143 |
+
|
144 |
+
code span.do {
|
145 |
+
color: #5E5E5E;
|
146 |
+
font-style: italic;
|
147 |
+
}
|
148 |
+
|
149 |
+
code span.im {
|
150 |
+
color: #00769E;
|
151 |
+
font-style: inherit;
|
152 |
+
}
|
153 |
+
|
154 |
+
code span.ch {
|
155 |
+
color: #20794D;
|
156 |
+
font-style: inherit;
|
157 |
+
}
|
158 |
+
|
159 |
+
code span.dt {
|
160 |
+
color: #AD0000;
|
161 |
+
font-style: inherit;
|
162 |
+
}
|
163 |
+
|
164 |
+
code span.fl {
|
165 |
+
color: #AD0000;
|
166 |
+
font-style: inherit;
|
167 |
+
}
|
168 |
+
|
169 |
+
code span.co {
|
170 |
+
color: #5E5E5E;
|
171 |
+
font-style: inherit;
|
172 |
+
}
|
173 |
+
|
174 |
+
code span.cv {
|
175 |
+
color: #5E5E5E;
|
176 |
+
font-style: italic;
|
177 |
+
}
|
178 |
+
|
179 |
+
code span.cn {
|
180 |
+
color: #8f5902;
|
181 |
+
font-style: inherit;
|
182 |
+
}
|
183 |
+
|
184 |
+
code span.sc {
|
185 |
+
color: #5E5E5E;
|
186 |
+
font-style: inherit;
|
187 |
+
}
|
188 |
+
|
189 |
+
code span.dv {
|
190 |
+
color: #AD0000;
|
191 |
+
font-style: inherit;
|
192 |
+
}
|
193 |
+
|
194 |
+
code span.kw {
|
195 |
+
color: #003B4F;
|
196 |
+
font-style: inherit;
|
197 |
+
}
|
198 |
+
|
199 |
+
.prevent-inlining {
|
200 |
+
content: "</";
|
201 |
+
}
|
202 |
+
|
203 |
+
/*# sourceMappingURL=debc5d5d77c3f9108843748ff7464032.css.map */
|
_proc/_docs/site_libs/quarto-html/quarto.js
ADDED
@@ -0,0 +1,902 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const sectionChanged = new CustomEvent("quarto-sectionChanged", {
|
2 |
+
detail: {},
|
3 |
+
bubbles: true,
|
4 |
+
cancelable: false,
|
5 |
+
composed: false,
|
6 |
+
});
|
7 |
+
|
8 |
+
const layoutMarginEls = () => {
|
9 |
+
// Find any conflicting margin elements and add margins to the
|
10 |
+
// top to prevent overlap
|
11 |
+
const marginChildren = window.document.querySelectorAll(
|
12 |
+
".column-margin.column-container > * "
|
13 |
+
);
|
14 |
+
|
15 |
+
let lastBottom = 0;
|
16 |
+
for (const marginChild of marginChildren) {
|
17 |
+
if (marginChild.offsetParent !== null) {
|
18 |
+
// clear the top margin so we recompute it
|
19 |
+
marginChild.style.marginTop = null;
|
20 |
+
const top = marginChild.getBoundingClientRect().top + window.scrollY;
|
21 |
+
console.log({
|
22 |
+
childtop: marginChild.getBoundingClientRect().top,
|
23 |
+
scroll: window.scrollY,
|
24 |
+
top,
|
25 |
+
lastBottom,
|
26 |
+
});
|
27 |
+
if (top < lastBottom) {
|
28 |
+
const margin = lastBottom - top;
|
29 |
+
marginChild.style.marginTop = `${margin}px`;
|
30 |
+
}
|
31 |
+
const styles = window.getComputedStyle(marginChild);
|
32 |
+
const marginTop = parseFloat(styles["marginTop"]);
|
33 |
+
|
34 |
+
console.log({
|
35 |
+
top,
|
36 |
+
height: marginChild.getBoundingClientRect().height,
|
37 |
+
marginTop,
|
38 |
+
total: top + marginChild.getBoundingClientRect().height + marginTop,
|
39 |
+
});
|
40 |
+
lastBottom = top + marginChild.getBoundingClientRect().height + marginTop;
|
41 |
+
}
|
42 |
+
}
|
43 |
+
};
|
44 |
+
|
45 |
+
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
46 |
+
// Recompute the position of margin elements anytime the body size changes
|
47 |
+
if (window.ResizeObserver) {
|
48 |
+
const resizeObserver = new window.ResizeObserver(
|
49 |
+
throttle(layoutMarginEls, 50)
|
50 |
+
);
|
51 |
+
resizeObserver.observe(window.document.body);
|
52 |
+
}
|
53 |
+
|
54 |
+
const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]');
|
55 |
+
const sidebarEl = window.document.getElementById("quarto-sidebar");
|
56 |
+
const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left");
|
57 |
+
const marginSidebarEl = window.document.getElementById(
|
58 |
+
"quarto-margin-sidebar"
|
59 |
+
);
|
60 |
+
// function to determine whether the element has a previous sibling that is active
|
61 |
+
const prevSiblingIsActiveLink = (el) => {
|
62 |
+
const sibling = el.previousElementSibling;
|
63 |
+
if (sibling && sibling.tagName === "A") {
|
64 |
+
return sibling.classList.contains("active");
|
65 |
+
} else {
|
66 |
+
return false;
|
67 |
+
}
|
68 |
+
};
|
69 |
+
|
70 |
+
// fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior)
|
71 |
+
function fireSlideEnter(e) {
|
72 |
+
const event = window.document.createEvent("Event");
|
73 |
+
event.initEvent("slideenter", true, true);
|
74 |
+
window.document.dispatchEvent(event);
|
75 |
+
}
|
76 |
+
const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]');
|
77 |
+
tabs.forEach((tab) => {
|
78 |
+
tab.addEventListener("shown.bs.tab", fireSlideEnter);
|
79 |
+
});
|
80 |
+
|
81 |
+
// fire slideEnter for tabby tab activations (for htmlwidget resize behavior)
|
82 |
+
document.addEventListener("tabby", fireSlideEnter, false);
|
83 |
+
|
84 |
+
// Track scrolling and mark TOC links as active
|
85 |
+
// get table of contents and sidebar (bail if we don't have at least one)
|
86 |
+
const tocLinks = tocEl
|
87 |
+
? [...tocEl.querySelectorAll("a[data-scroll-target]")]
|
88 |
+
: [];
|
89 |
+
const makeActive = (link) => tocLinks[link].classList.add("active");
|
90 |
+
const removeActive = (link) => tocLinks[link].classList.remove("active");
|
91 |
+
const removeAllActive = () =>
|
92 |
+
[...Array(tocLinks.length).keys()].forEach((link) => removeActive(link));
|
93 |
+
|
94 |
+
// activate the anchor for a section associated with this TOC entry
|
95 |
+
tocLinks.forEach((link) => {
|
96 |
+
link.addEventListener("click", () => {
|
97 |
+
if (link.href.indexOf("#") !== -1) {
|
98 |
+
const anchor = link.href.split("#")[1];
|
99 |
+
const heading = window.document.querySelector(
|
100 |
+
`[data-anchor-id=${anchor}]`
|
101 |
+
);
|
102 |
+
if (heading) {
|
103 |
+
// Add the class
|
104 |
+
heading.classList.add("reveal-anchorjs-link");
|
105 |
+
|
106 |
+
// function to show the anchor
|
107 |
+
const handleMouseout = () => {
|
108 |
+
heading.classList.remove("reveal-anchorjs-link");
|
109 |
+
heading.removeEventListener("mouseout", handleMouseout);
|
110 |
+
};
|
111 |
+
|
112 |
+
// add a function to clear the anchor when the user mouses out of it
|
113 |
+
heading.addEventListener("mouseout", handleMouseout);
|
114 |
+
}
|
115 |
+
}
|
116 |
+
});
|
117 |
+
});
|
118 |
+
|
119 |
+
const sections = tocLinks.map((link) => {
|
120 |
+
const target = link.getAttribute("data-scroll-target");
|
121 |
+
if (target.startsWith("#")) {
|
122 |
+
return window.document.getElementById(decodeURI(`${target.slice(1)}`));
|
123 |
+
} else {
|
124 |
+
return window.document.querySelector(decodeURI(`${target}`));
|
125 |
+
}
|
126 |
+
});
|
127 |
+
|
128 |
+
const sectionMargin = 200;
|
129 |
+
let currentActive = 0;
|
130 |
+
// track whether we've initialized state the first time
|
131 |
+
let init = false;
|
132 |
+
|
133 |
+
const updateActiveLink = () => {
|
134 |
+
// The index from bottom to top (e.g. reversed list)
|
135 |
+
let sectionIndex = -1;
|
136 |
+
if (
|
137 |
+
window.innerHeight + window.pageYOffset >=
|
138 |
+
window.document.body.offsetHeight
|
139 |
+
) {
|
140 |
+
sectionIndex = 0;
|
141 |
+
} else {
|
142 |
+
sectionIndex = [...sections].reverse().findIndex((section) => {
|
143 |
+
if (section) {
|
144 |
+
return window.pageYOffset >= section.offsetTop - sectionMargin;
|
145 |
+
} else {
|
146 |
+
return false;
|
147 |
+
}
|
148 |
+
});
|
149 |
+
}
|
150 |
+
if (sectionIndex > -1) {
|
151 |
+
const current = sections.length - sectionIndex - 1;
|
152 |
+
if (current !== currentActive) {
|
153 |
+
removeAllActive();
|
154 |
+
currentActive = current;
|
155 |
+
makeActive(current);
|
156 |
+
if (init) {
|
157 |
+
window.dispatchEvent(sectionChanged);
|
158 |
+
}
|
159 |
+
init = true;
|
160 |
+
}
|
161 |
+
}
|
162 |
+
};
|
163 |
+
|
164 |
+
const inHiddenRegion = (top, bottom, hiddenRegions) => {
|
165 |
+
for (const region of hiddenRegions) {
|
166 |
+
if (top <= region.bottom && bottom >= region.top) {
|
167 |
+
return true;
|
168 |
+
}
|
169 |
+
}
|
170 |
+
return false;
|
171 |
+
};
|
172 |
+
|
173 |
+
const categorySelector = "header.quarto-title-block .quarto-category";
|
174 |
+
const activateCategories = (href) => {
|
175 |
+
// Find any categories
|
176 |
+
// Surround them with a link pointing back to:
|
177 |
+
// #category=Authoring
|
178 |
+
try {
|
179 |
+
const categoryEls = window.document.querySelectorAll(categorySelector);
|
180 |
+
for (const categoryEl of categoryEls) {
|
181 |
+
const categoryText = categoryEl.textContent;
|
182 |
+
if (categoryText) {
|
183 |
+
const link = `${href}#category=${encodeURIComponent(categoryText)}`;
|
184 |
+
const linkEl = window.document.createElement("a");
|
185 |
+
linkEl.setAttribute("href", link);
|
186 |
+
for (const child of categoryEl.childNodes) {
|
187 |
+
linkEl.append(child);
|
188 |
+
}
|
189 |
+
categoryEl.appendChild(linkEl);
|
190 |
+
}
|
191 |
+
}
|
192 |
+
} catch {
|
193 |
+
// Ignore errors
|
194 |
+
}
|
195 |
+
};
|
196 |
+
function hasTitleCategories() {
|
197 |
+
return window.document.querySelector(categorySelector) !== null;
|
198 |
+
}
|
199 |
+
|
200 |
+
function offsetRelativeUrl(url) {
|
201 |
+
const offset = getMeta("quarto:offset");
|
202 |
+
return offset ? offset + url : url;
|
203 |
+
}
|
204 |
+
|
205 |
+
function offsetAbsoluteUrl(url) {
|
206 |
+
const offset = getMeta("quarto:offset");
|
207 |
+
const baseUrl = new URL(offset, window.location);
|
208 |
+
|
209 |
+
const projRelativeUrl = url.replace(baseUrl, "");
|
210 |
+
if (projRelativeUrl.startsWith("/")) {
|
211 |
+
return projRelativeUrl;
|
212 |
+
} else {
|
213 |
+
return "/" + projRelativeUrl;
|
214 |
+
}
|
215 |
+
}
|
216 |
+
|
217 |
+
// read a meta tag value
|
218 |
+
function getMeta(metaName) {
|
219 |
+
const metas = window.document.getElementsByTagName("meta");
|
220 |
+
for (let i = 0; i < metas.length; i++) {
|
221 |
+
if (metas[i].getAttribute("name") === metaName) {
|
222 |
+
return metas[i].getAttribute("content");
|
223 |
+
}
|
224 |
+
}
|
225 |
+
return "";
|
226 |
+
}
|
227 |
+
|
228 |
+
async function findAndActivateCategories() {
|
229 |
+
const currentPagePath = offsetAbsoluteUrl(window.location.href);
|
230 |
+
const response = await fetch(offsetRelativeUrl("listings.json"));
|
231 |
+
if (response.status == 200) {
|
232 |
+
return response.json().then(function (listingPaths) {
|
233 |
+
const listingHrefs = [];
|
234 |
+
for (const listingPath of listingPaths) {
|
235 |
+
const pathWithoutLeadingSlash = listingPath.listing.substring(1);
|
236 |
+
for (const item of listingPath.items) {
|
237 |
+
if (
|
238 |
+
item === currentPagePath ||
|
239 |
+
item === currentPagePath + "index.html"
|
240 |
+
) {
|
241 |
+
// Resolve this path against the offset to be sure
|
242 |
+
// we already are using the correct path to the listing
|
243 |
+
// (this adjusts the listing urls to be rooted against
|
244 |
+
// whatever root the page is actually running against)
|
245 |
+
const relative = offsetRelativeUrl(pathWithoutLeadingSlash);
|
246 |
+
const baseUrl = window.location;
|
247 |
+
const resolvedPath = new URL(relative, baseUrl);
|
248 |
+
listingHrefs.push(resolvedPath.pathname);
|
249 |
+
break;
|
250 |
+
}
|
251 |
+
}
|
252 |
+
}
|
253 |
+
|
254 |
+
// Look up the tree for a nearby linting and use that if we find one
|
255 |
+
const nearestListing = findNearestParentListing(
|
256 |
+
offsetAbsoluteUrl(window.location.pathname),
|
257 |
+
listingHrefs
|
258 |
+
);
|
259 |
+
if (nearestListing) {
|
260 |
+
activateCategories(nearestListing);
|
261 |
+
} else {
|
262 |
+
// See if the referrer is a listing page for this item
|
263 |
+
const referredRelativePath = offsetAbsoluteUrl(document.referrer);
|
264 |
+
const referrerListing = listingHrefs.find((listingHref) => {
|
265 |
+
const isListingReferrer =
|
266 |
+
listingHref === referredRelativePath ||
|
267 |
+
listingHref === referredRelativePath + "index.html";
|
268 |
+
return isListingReferrer;
|
269 |
+
});
|
270 |
+
|
271 |
+
if (referrerListing) {
|
272 |
+
// Try to use the referrer if possible
|
273 |
+
activateCategories(referrerListing);
|
274 |
+
} else if (listingHrefs.length > 0) {
|
275 |
+
// Otherwise, just fall back to the first listing
|
276 |
+
activateCategories(listingHrefs[0]);
|
277 |
+
}
|
278 |
+
}
|
279 |
+
});
|
280 |
+
}
|
281 |
+
}
|
282 |
+
if (hasTitleCategories()) {
|
283 |
+
findAndActivateCategories();
|
284 |
+
}
|
285 |
+
|
286 |
+
const findNearestParentListing = (href, listingHrefs) => {
|
287 |
+
if (!href || !listingHrefs) {
|
288 |
+
return undefined;
|
289 |
+
}
|
290 |
+
// Look up the tree for a nearby linting and use that if we find one
|
291 |
+
const relativeParts = href.substring(1).split("/");
|
292 |
+
while (relativeParts.length > 0) {
|
293 |
+
const path = relativeParts.join("/");
|
294 |
+
for (const listingHref of listingHrefs) {
|
295 |
+
if (listingHref.startsWith(path)) {
|
296 |
+
return listingHref;
|
297 |
+
}
|
298 |
+
}
|
299 |
+
relativeParts.pop();
|
300 |
+
}
|
301 |
+
|
302 |
+
return undefined;
|
303 |
+
};
|
304 |
+
|
305 |
+
const manageSidebarVisiblity = (el, placeholderDescriptor) => {
|
306 |
+
let isVisible = true;
|
307 |
+
let elRect;
|
308 |
+
|
309 |
+
return (hiddenRegions) => {
|
310 |
+
if (el === null) {
|
311 |
+
return;
|
312 |
+
}
|
313 |
+
|
314 |
+
// Find the last element of the TOC
|
315 |
+
const lastChildEl = el.lastElementChild;
|
316 |
+
|
317 |
+
if (lastChildEl) {
|
318 |
+
// Converts the sidebar to a menu
|
319 |
+
const convertToMenu = () => {
|
320 |
+
for (const child of el.children) {
|
321 |
+
child.style.opacity = 0;
|
322 |
+
child.style.overflow = "hidden";
|
323 |
+
}
|
324 |
+
|
325 |
+
nexttick(() => {
|
326 |
+
const toggleContainer = window.document.createElement("div");
|
327 |
+
toggleContainer.style.width = "100%";
|
328 |
+
toggleContainer.classList.add("zindex-over-content");
|
329 |
+
toggleContainer.classList.add("quarto-sidebar-toggle");
|
330 |
+
toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom
|
331 |
+
toggleContainer.id = placeholderDescriptor.id;
|
332 |
+
toggleContainer.style.position = "fixed";
|
333 |
+
|
334 |
+
const toggleIcon = window.document.createElement("i");
|
335 |
+
toggleIcon.classList.add("quarto-sidebar-toggle-icon");
|
336 |
+
toggleIcon.classList.add("bi");
|
337 |
+
toggleIcon.classList.add("bi-caret-down-fill");
|
338 |
+
|
339 |
+
const toggleTitle = window.document.createElement("div");
|
340 |
+
const titleEl = window.document.body.querySelector(
|
341 |
+
placeholderDescriptor.titleSelector
|
342 |
+
);
|
343 |
+
if (titleEl) {
|
344 |
+
toggleTitle.append(
|
345 |
+
titleEl.textContent || titleEl.innerText,
|
346 |
+
toggleIcon
|
347 |
+
);
|
348 |
+
}
|
349 |
+
toggleTitle.classList.add("zindex-over-content");
|
350 |
+
toggleTitle.classList.add("quarto-sidebar-toggle-title");
|
351 |
+
toggleContainer.append(toggleTitle);
|
352 |
+
|
353 |
+
const toggleContents = window.document.createElement("div");
|
354 |
+
toggleContents.classList = el.classList;
|
355 |
+
toggleContents.classList.add("zindex-over-content");
|
356 |
+
toggleContents.classList.add("quarto-sidebar-toggle-contents");
|
357 |
+
for (const child of el.children) {
|
358 |
+
if (child.id === "toc-title") {
|
359 |
+
continue;
|
360 |
+
}
|
361 |
+
|
362 |
+
const clone = child.cloneNode(true);
|
363 |
+
clone.style.opacity = 1;
|
364 |
+
clone.style.display = null;
|
365 |
+
toggleContents.append(clone);
|
366 |
+
}
|
367 |
+
toggleContents.style.height = "0px";
|
368 |
+
const positionToggle = () => {
|
369 |
+
// position the element (top left of parent, same width as parent)
|
370 |
+
if (!elRect) {
|
371 |
+
elRect = el.getBoundingClientRect();
|
372 |
+
}
|
373 |
+
toggleContainer.style.left = `${elRect.left}px`;
|
374 |
+
toggleContainer.style.top = `${elRect.top}px`;
|
375 |
+
toggleContainer.style.width = `${elRect.width}px`;
|
376 |
+
};
|
377 |
+
positionToggle();
|
378 |
+
|
379 |
+
toggleContainer.append(toggleContents);
|
380 |
+
el.parentElement.prepend(toggleContainer);
|
381 |
+
|
382 |
+
// Process clicks
|
383 |
+
let tocShowing = false;
|
384 |
+
// Allow the caller to control whether this is dismissed
|
385 |
+
// when it is clicked (e.g. sidebar navigation supports
|
386 |
+
// opening and closing the nav tree, so don't dismiss on click)
|
387 |
+
const clickEl = placeholderDescriptor.dismissOnClick
|
388 |
+
? toggleContainer
|
389 |
+
: toggleTitle;
|
390 |
+
|
391 |
+
const closeToggle = () => {
|
392 |
+
if (tocShowing) {
|
393 |
+
toggleContainer.classList.remove("expanded");
|
394 |
+
toggleContents.style.height = "0px";
|
395 |
+
tocShowing = false;
|
396 |
+
}
|
397 |
+
};
|
398 |
+
|
399 |
+
// Get rid of any expanded toggle if the user scrolls
|
400 |
+
window.document.addEventListener(
|
401 |
+
"scroll",
|
402 |
+
throttle(() => {
|
403 |
+
closeToggle();
|
404 |
+
}, 50)
|
405 |
+
);
|
406 |
+
|
407 |
+
// Handle positioning of the toggle
|
408 |
+
window.addEventListener(
|
409 |
+
"resize",
|
410 |
+
throttle(() => {
|
411 |
+
elRect = undefined;
|
412 |
+
positionToggle();
|
413 |
+
}, 50)
|
414 |
+
);
|
415 |
+
|
416 |
+
window.addEventListener("quarto-hrChanged", () => {
|
417 |
+
elRect = undefined;
|
418 |
+
});
|
419 |
+
|
420 |
+
// Process the click
|
421 |
+
clickEl.onclick = () => {
|
422 |
+
if (!tocShowing) {
|
423 |
+
toggleContainer.classList.add("expanded");
|
424 |
+
toggleContents.style.height = null;
|
425 |
+
tocShowing = true;
|
426 |
+
} else {
|
427 |
+
closeToggle();
|
428 |
+
}
|
429 |
+
};
|
430 |
+
});
|
431 |
+
};
|
432 |
+
|
433 |
+
// Converts a sidebar from a menu back to a sidebar
|
434 |
+
const convertToSidebar = () => {
|
435 |
+
for (const child of el.children) {
|
436 |
+
child.style.opacity = 1;
|
437 |
+
child.style.overflow = null;
|
438 |
+
}
|
439 |
+
|
440 |
+
const placeholderEl = window.document.getElementById(
|
441 |
+
placeholderDescriptor.id
|
442 |
+
);
|
443 |
+
if (placeholderEl) {
|
444 |
+
placeholderEl.remove();
|
445 |
+
}
|
446 |
+
|
447 |
+
el.classList.remove("rollup");
|
448 |
+
};
|
449 |
+
|
450 |
+
if (isReaderMode()) {
|
451 |
+
convertToMenu();
|
452 |
+
isVisible = false;
|
453 |
+
} else {
|
454 |
+
// Find the top and bottom o the element that is being managed
|
455 |
+
const elTop = el.offsetTop;
|
456 |
+
const elBottom =
|
457 |
+
elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight;
|
458 |
+
|
459 |
+
if (!isVisible) {
|
460 |
+
// If the element is current not visible reveal if there are
|
461 |
+
// no conflicts with overlay regions
|
462 |
+
if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) {
|
463 |
+
convertToSidebar();
|
464 |
+
isVisible = true;
|
465 |
+
}
|
466 |
+
} else {
|
467 |
+
// If the element is visible, hide it if it conflicts with overlay regions
|
468 |
+
// and insert a placeholder toggle (or if we're in reader mode)
|
469 |
+
if (inHiddenRegion(elTop, elBottom, hiddenRegions)) {
|
470 |
+
convertToMenu();
|
471 |
+
isVisible = false;
|
472 |
+
}
|
473 |
+
}
|
474 |
+
}
|
475 |
+
}
|
476 |
+
};
|
477 |
+
};
|
478 |
+
|
479 |
+
const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]');
|
480 |
+
for (const tabEl of tabEls) {
|
481 |
+
const id = tabEl.getAttribute("data-bs-target");
|
482 |
+
if (id) {
|
483 |
+
const columnEl = document.querySelector(
|
484 |
+
`${id} .column-margin, .tabset-margin-content`
|
485 |
+
);
|
486 |
+
if (columnEl)
|
487 |
+
tabEl.addEventListener("shown.bs.tab", function (event) {
|
488 |
+
const el = event.srcElement;
|
489 |
+
if (el) {
|
490 |
+
const visibleCls = `${el.id}-margin-content`;
|
491 |
+
// walk up until we find a parent tabset
|
492 |
+
let panelTabsetEl = el.parentElement;
|
493 |
+
while (panelTabsetEl) {
|
494 |
+
if (panelTabsetEl.classList.contains("panel-tabset")) {
|
495 |
+
break;
|
496 |
+
}
|
497 |
+
panelTabsetEl = panelTabsetEl.parentElement;
|
498 |
+
}
|
499 |
+
|
500 |
+
if (panelTabsetEl) {
|
501 |
+
const prevSib = panelTabsetEl.previousElementSibling;
|
502 |
+
if (
|
503 |
+
prevSib &&
|
504 |
+
prevSib.classList.contains("tabset-margin-container")
|
505 |
+
) {
|
506 |
+
const childNodes = prevSib.querySelectorAll(
|
507 |
+
".tabset-margin-content"
|
508 |
+
);
|
509 |
+
for (const childEl of childNodes) {
|
510 |
+
if (childEl.classList.contains(visibleCls)) {
|
511 |
+
childEl.classList.remove("collapse");
|
512 |
+
} else {
|
513 |
+
childEl.classList.add("collapse");
|
514 |
+
}
|
515 |
+
}
|
516 |
+
}
|
517 |
+
}
|
518 |
+
}
|
519 |
+
|
520 |
+
layoutMarginEls();
|
521 |
+
});
|
522 |
+
}
|
523 |
+
}
|
524 |
+
|
525 |
+
// Manage the visibility of the toc and the sidebar
|
526 |
+
const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, {
|
527 |
+
id: "quarto-toc-toggle",
|
528 |
+
titleSelector: "#toc-title",
|
529 |
+
dismissOnClick: true,
|
530 |
+
});
|
531 |
+
const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, {
|
532 |
+
id: "quarto-sidebarnav-toggle",
|
533 |
+
titleSelector: ".title",
|
534 |
+
dismissOnClick: false,
|
535 |
+
});
|
536 |
+
let tocLeftScrollVisibility;
|
537 |
+
if (leftTocEl) {
|
538 |
+
tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, {
|
539 |
+
id: "quarto-lefttoc-toggle",
|
540 |
+
titleSelector: "#toc-title",
|
541 |
+
dismissOnClick: true,
|
542 |
+
});
|
543 |
+
}
|
544 |
+
|
545 |
+
// Find the first element that uses formatting in special columns
|
546 |
+
const conflictingEls = window.document.body.querySelectorAll(
|
547 |
+
'[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]'
|
548 |
+
);
|
549 |
+
|
550 |
+
// Filter all the possibly conflicting elements into ones
|
551 |
+
// the do conflict on the left or ride side
|
552 |
+
const arrConflictingEls = Array.from(conflictingEls);
|
553 |
+
const leftSideConflictEls = arrConflictingEls.filter((el) => {
|
554 |
+
if (el.tagName === "ASIDE") {
|
555 |
+
return false;
|
556 |
+
}
|
557 |
+
return Array.from(el.classList).find((className) => {
|
558 |
+
return (
|
559 |
+
className !== "column-body" &&
|
560 |
+
className.startsWith("column-") &&
|
561 |
+
!className.endsWith("right") &&
|
562 |
+
!className.endsWith("container") &&
|
563 |
+
className !== "column-margin"
|
564 |
+
);
|
565 |
+
});
|
566 |
+
});
|
567 |
+
const rightSideConflictEls = arrConflictingEls.filter((el) => {
|
568 |
+
if (el.tagName === "ASIDE") {
|
569 |
+
return true;
|
570 |
+
}
|
571 |
+
|
572 |
+
const hasMarginCaption = Array.from(el.classList).find((className) => {
|
573 |
+
return className == "margin-caption";
|
574 |
+
});
|
575 |
+
if (hasMarginCaption) {
|
576 |
+
return true;
|
577 |
+
}
|
578 |
+
|
579 |
+
return Array.from(el.classList).find((className) => {
|
580 |
+
return (
|
581 |
+
className !== "column-body" &&
|
582 |
+
!className.endsWith("container") &&
|
583 |
+
className.startsWith("column-") &&
|
584 |
+
!className.endsWith("left")
|
585 |
+
);
|
586 |
+
});
|
587 |
+
});
|
588 |
+
|
589 |
+
const kOverlapPaddingSize = 10;
|
590 |
+
function toRegions(els) {
|
591 |
+
return els.map((el) => {
|
592 |
+
const boundRect = el.getBoundingClientRect();
|
593 |
+
const top =
|
594 |
+
boundRect.top +
|
595 |
+
document.documentElement.scrollTop -
|
596 |
+
kOverlapPaddingSize;
|
597 |
+
return {
|
598 |
+
top,
|
599 |
+
bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize,
|
600 |
+
};
|
601 |
+
});
|
602 |
+
}
|
603 |
+
|
604 |
+
let hasObserved = false;
|
605 |
+
const visibleItemObserver = (els) => {
|
606 |
+
let visibleElements = [...els];
|
607 |
+
const intersectionObserver = new IntersectionObserver(
|
608 |
+
(entries, _observer) => {
|
609 |
+
entries.forEach((entry) => {
|
610 |
+
if (entry.isIntersecting) {
|
611 |
+
if (visibleElements.indexOf(entry.target) === -1) {
|
612 |
+
visibleElements.push(entry.target);
|
613 |
+
}
|
614 |
+
} else {
|
615 |
+
visibleElements = visibleElements.filter((visibleEntry) => {
|
616 |
+
return visibleEntry !== entry;
|
617 |
+
});
|
618 |
+
}
|
619 |
+
});
|
620 |
+
|
621 |
+
if (!hasObserved) {
|
622 |
+
hideOverlappedSidebars();
|
623 |
+
}
|
624 |
+
hasObserved = true;
|
625 |
+
},
|
626 |
+
{}
|
627 |
+
);
|
628 |
+
els.forEach((el) => {
|
629 |
+
intersectionObserver.observe(el);
|
630 |
+
});
|
631 |
+
|
632 |
+
return {
|
633 |
+
getVisibleEntries: () => {
|
634 |
+
return visibleElements;
|
635 |
+
},
|
636 |
+
};
|
637 |
+
};
|
638 |
+
|
639 |
+
const rightElementObserver = visibleItemObserver(rightSideConflictEls);
|
640 |
+
const leftElementObserver = visibleItemObserver(leftSideConflictEls);
|
641 |
+
|
642 |
+
const hideOverlappedSidebars = () => {
|
643 |
+
marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries()));
|
644 |
+
sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries()));
|
645 |
+
if (tocLeftScrollVisibility) {
|
646 |
+
tocLeftScrollVisibility(
|
647 |
+
toRegions(leftElementObserver.getVisibleEntries())
|
648 |
+
);
|
649 |
+
}
|
650 |
+
};
|
651 |
+
|
652 |
+
window.quartoToggleReader = () => {
|
653 |
+
// Applies a slow class (or removes it)
|
654 |
+
// to update the transition speed
|
655 |
+
const slowTransition = (slow) => {
|
656 |
+
const manageTransition = (id, slow) => {
|
657 |
+
const el = document.getElementById(id);
|
658 |
+
if (el) {
|
659 |
+
if (slow) {
|
660 |
+
el.classList.add("slow");
|
661 |
+
} else {
|
662 |
+
el.classList.remove("slow");
|
663 |
+
}
|
664 |
+
}
|
665 |
+
};
|
666 |
+
|
667 |
+
manageTransition("TOC", slow);
|
668 |
+
manageTransition("quarto-sidebar", slow);
|
669 |
+
};
|
670 |
+
const readerMode = !isReaderMode();
|
671 |
+
setReaderModeValue(readerMode);
|
672 |
+
|
673 |
+
// If we're entering reader mode, slow the transition
|
674 |
+
if (readerMode) {
|
675 |
+
slowTransition(readerMode);
|
676 |
+
}
|
677 |
+
highlightReaderToggle(readerMode);
|
678 |
+
hideOverlappedSidebars();
|
679 |
+
|
680 |
+
// If we're exiting reader mode, restore the non-slow transition
|
681 |
+
if (!readerMode) {
|
682 |
+
slowTransition(!readerMode);
|
683 |
+
}
|
684 |
+
};
|
685 |
+
|
686 |
+
const highlightReaderToggle = (readerMode) => {
|
687 |
+
const els = document.querySelectorAll(".quarto-reader-toggle");
|
688 |
+
if (els) {
|
689 |
+
els.forEach((el) => {
|
690 |
+
if (readerMode) {
|
691 |
+
el.classList.add("reader");
|
692 |
+
} else {
|
693 |
+
el.classList.remove("reader");
|
694 |
+
}
|
695 |
+
});
|
696 |
+
}
|
697 |
+
};
|
698 |
+
|
699 |
+
const setReaderModeValue = (val) => {
|
700 |
+
if (window.location.protocol !== "file:") {
|
701 |
+
window.localStorage.setItem("quarto-reader-mode", val);
|
702 |
+
} else {
|
703 |
+
localReaderMode = val;
|
704 |
+
}
|
705 |
+
};
|
706 |
+
|
707 |
+
const isReaderMode = () => {
|
708 |
+
if (window.location.protocol !== "file:") {
|
709 |
+
return window.localStorage.getItem("quarto-reader-mode") === "true";
|
710 |
+
} else {
|
711 |
+
return localReaderMode;
|
712 |
+
}
|
713 |
+
};
|
714 |
+
let localReaderMode = null;
|
715 |
+
|
716 |
+
const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded");
|
717 |
+
const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1;
|
718 |
+
|
719 |
+
// Walk the TOC and collapse/expand nodes
|
720 |
+
// Nodes are expanded if:
|
721 |
+
// - they are top level
|
722 |
+
// - they have children that are 'active' links
|
723 |
+
// - they are directly below an link that is 'active'
|
724 |
+
const walk = (el, depth) => {
|
725 |
+
// Tick depth when we enter a UL
|
726 |
+
if (el.tagName === "UL") {
|
727 |
+
depth = depth + 1;
|
728 |
+
}
|
729 |
+
|
730 |
+
// It this is active link
|
731 |
+
let isActiveNode = false;
|
732 |
+
if (el.tagName === "A" && el.classList.contains("active")) {
|
733 |
+
isActiveNode = true;
|
734 |
+
}
|
735 |
+
|
736 |
+
// See if there is an active child to this element
|
737 |
+
let hasActiveChild = false;
|
738 |
+
for (child of el.children) {
|
739 |
+
hasActiveChild = walk(child, depth) || hasActiveChild;
|
740 |
+
}
|
741 |
+
|
742 |
+
// Process the collapse state if this is an UL
|
743 |
+
if (el.tagName === "UL") {
|
744 |
+
if (tocOpenDepth === -1 && depth > 1) {
|
745 |
+
el.classList.add("collapse");
|
746 |
+
} else if (
|
747 |
+
depth <= tocOpenDepth ||
|
748 |
+
hasActiveChild ||
|
749 |
+
prevSiblingIsActiveLink(el)
|
750 |
+
) {
|
751 |
+
el.classList.remove("collapse");
|
752 |
+
} else {
|
753 |
+
el.classList.add("collapse");
|
754 |
+
}
|
755 |
+
|
756 |
+
// untick depth when we leave a UL
|
757 |
+
depth = depth - 1;
|
758 |
+
}
|
759 |
+
return hasActiveChild || isActiveNode;
|
760 |
+
};
|
761 |
+
|
762 |
+
// walk the TOC and expand / collapse any items that should be shown
|
763 |
+
|
764 |
+
if (tocEl) {
|
765 |
+
walk(tocEl, 0);
|
766 |
+
updateActiveLink();
|
767 |
+
}
|
768 |
+
|
769 |
+
// Throttle the scroll event and walk peridiocally
|
770 |
+
window.document.addEventListener(
|
771 |
+
"scroll",
|
772 |
+
throttle(() => {
|
773 |
+
if (tocEl) {
|
774 |
+
updateActiveLink();
|
775 |
+
walk(tocEl, 0);
|
776 |
+
}
|
777 |
+
if (!isReaderMode()) {
|
778 |
+
hideOverlappedSidebars();
|
779 |
+
}
|
780 |
+
}, 5)
|
781 |
+
);
|
782 |
+
window.addEventListener(
|
783 |
+
"resize",
|
784 |
+
throttle(() => {
|
785 |
+
if (!isReaderMode()) {
|
786 |
+
hideOverlappedSidebars();
|
787 |
+
}
|
788 |
+
}, 10)
|
789 |
+
);
|
790 |
+
hideOverlappedSidebars();
|
791 |
+
highlightReaderToggle(isReaderMode());
|
792 |
+
});
|
793 |
+
|
794 |
+
// grouped tabsets
|
795 |
+
window.addEventListener("pageshow", (_event) => {
|
796 |
+
function getTabSettings() {
|
797 |
+
const data = localStorage.getItem("quarto-persistent-tabsets-data");
|
798 |
+
if (!data) {
|
799 |
+
localStorage.setItem("quarto-persistent-tabsets-data", "{}");
|
800 |
+
return {};
|
801 |
+
}
|
802 |
+
if (data) {
|
803 |
+
return JSON.parse(data);
|
804 |
+
}
|
805 |
+
}
|
806 |
+
|
807 |
+
function setTabSettings(data) {
|
808 |
+
localStorage.setItem(
|
809 |
+
"quarto-persistent-tabsets-data",
|
810 |
+
JSON.stringify(data)
|
811 |
+
);
|
812 |
+
}
|
813 |
+
|
814 |
+
function setTabState(groupName, groupValue) {
|
815 |
+
const data = getTabSettings();
|
816 |
+
data[groupName] = groupValue;
|
817 |
+
setTabSettings(data);
|
818 |
+
}
|
819 |
+
|
820 |
+
function toggleTab(tab, active) {
|
821 |
+
const tabPanelId = tab.getAttribute("aria-controls");
|
822 |
+
const tabPanel = document.getElementById(tabPanelId);
|
823 |
+
if (active) {
|
824 |
+
tab.classList.add("active");
|
825 |
+
tabPanel.classList.add("active");
|
826 |
+
} else {
|
827 |
+
tab.classList.remove("active");
|
828 |
+
tabPanel.classList.remove("active");
|
829 |
+
}
|
830 |
+
}
|
831 |
+
|
832 |
+
function toggleAll(selectedGroup, selectorsToSync) {
|
833 |
+
for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
|
834 |
+
const active = selectedGroup === thisGroup;
|
835 |
+
for (const tab of tabs) {
|
836 |
+
toggleTab(tab, active);
|
837 |
+
}
|
838 |
+
}
|
839 |
+
}
|
840 |
+
|
841 |
+
function findSelectorsToSyncByLanguage() {
|
842 |
+
const result = {};
|
843 |
+
const tabs = Array.from(
|
844 |
+
document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
|
845 |
+
);
|
846 |
+
for (const item of tabs) {
|
847 |
+
const div = item.parentElement.parentElement.parentElement;
|
848 |
+
const group = div.getAttribute("data-group");
|
849 |
+
if (!result[group]) {
|
850 |
+
result[group] = {};
|
851 |
+
}
|
852 |
+
const selectorsToSync = result[group];
|
853 |
+
const value = item.innerHTML;
|
854 |
+
if (!selectorsToSync[value]) {
|
855 |
+
selectorsToSync[value] = [];
|
856 |
+
}
|
857 |
+
selectorsToSync[value].push(item);
|
858 |
+
}
|
859 |
+
return result;
|
860 |
+
}
|
861 |
+
|
862 |
+
function setupSelectorSync() {
|
863 |
+
const selectorsToSync = findSelectorsToSyncByLanguage();
|
864 |
+
Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
|
865 |
+
Object.entries(tabSetsByValue).forEach(([value, items]) => {
|
866 |
+
items.forEach((item) => {
|
867 |
+
item.addEventListener("click", (_event) => {
|
868 |
+
setTabState(group, value);
|
869 |
+
toggleAll(value, selectorsToSync[group]);
|
870 |
+
});
|
871 |
+
});
|
872 |
+
});
|
873 |
+
});
|
874 |
+
return selectorsToSync;
|
875 |
+
}
|
876 |
+
|
877 |
+
const selectorsToSync = setupSelectorSync();
|
878 |
+
for (const [group, selectedName] of Object.entries(getTabSettings())) {
|
879 |
+
const selectors = selectorsToSync[group];
|
880 |
+
// it's possible that stale state gives us empty selections, so we explicitly check here.
|
881 |
+
if (selectors) {
|
882 |
+
toggleAll(selectedName, selectors);
|
883 |
+
}
|
884 |
+
}
|
885 |
+
});
|
886 |
+
|
887 |
+
function throttle(func, wait) {
|
888 |
+
let waiting = false;
|
889 |
+
return function () {
|
890 |
+
if (!waiting) {
|
891 |
+
func.apply(this, arguments);
|
892 |
+
waiting = true;
|
893 |
+
setTimeout(function () {
|
894 |
+
waiting = false;
|
895 |
+
}, wait);
|
896 |
+
}
|
897 |
+
};
|
898 |
+
}
|
899 |
+
|
900 |
+
function nexttick(func) {
|
901 |
+
return setTimeout(func, 0);
|
902 |
+
}
|
_proc/_docs/site_libs/quarto-html/tippy.css
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
|
_proc/_docs/site_libs/quarto-html/tippy.umd.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='<svg width="16" height="6" xmlns="http://www.w3.org/2000/svg"><path d="M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z"></svg>',F}));
|
2 |
+
|
_proc/_docs/site_libs/quarto-nav/headroom.min.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
|
3 |
+
* Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
|
4 |
+
* License: MIT
|
5 |
+
*/
|
6 |
+
|
7 |
+
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=l<t?"down":"up",a.distance=Math.abs(t-l),a.isOutOfBounds=t<0||o<t+n,a.top=t<=s.offset[a.direction],a.bottom=o<=t+n,a.toleranceExceeded=a.distance>s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s});
|
_proc/_docs/site_libs/quarto-nav/quarto-nav.js
ADDED
@@ -0,0 +1,277 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const headroomChanged = new CustomEvent("quarto-hrChanged", {
|
2 |
+
detail: {},
|
3 |
+
bubbles: true,
|
4 |
+
cancelable: false,
|
5 |
+
composed: false,
|
6 |
+
});
|
7 |
+
|
8 |
+
window.document.addEventListener("DOMContentLoaded", function () {
|
9 |
+
let init = false;
|
10 |
+
|
11 |
+
// Manage the back to top button, if one is present.
|
12 |
+
let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
13 |
+
const scrollDownBuffer = 5;
|
14 |
+
const scrollUpBuffer = 35;
|
15 |
+
const btn = document.getElementById("quarto-back-to-top");
|
16 |
+
const hideBackToTop = () => {
|
17 |
+
btn.style.display = "none";
|
18 |
+
};
|
19 |
+
const showBackToTop = () => {
|
20 |
+
btn.style.display = "inline-block";
|
21 |
+
};
|
22 |
+
if (btn) {
|
23 |
+
window.document.addEventListener(
|
24 |
+
"scroll",
|
25 |
+
function () {
|
26 |
+
const currentScrollTop =
|
27 |
+
window.pageYOffset || document.documentElement.scrollTop;
|
28 |
+
|
29 |
+
// Shows and hides the button 'intelligently' as the user scrolls
|
30 |
+
if (currentScrollTop - scrollDownBuffer > lastScrollTop) {
|
31 |
+
hideBackToTop();
|
32 |
+
lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
|
33 |
+
} else if (currentScrollTop < lastScrollTop - scrollUpBuffer) {
|
34 |
+
showBackToTop();
|
35 |
+
lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
|
36 |
+
}
|
37 |
+
|
38 |
+
// Show the button at the bottom, hides it at the top
|
39 |
+
if (currentScrollTop <= 0) {
|
40 |
+
hideBackToTop();
|
41 |
+
} else if (
|
42 |
+
window.innerHeight + currentScrollTop >=
|
43 |
+
document.body.offsetHeight
|
44 |
+
) {
|
45 |
+
showBackToTop();
|
46 |
+
}
|
47 |
+
},
|
48 |
+
false
|
49 |
+
);
|
50 |
+
}
|
51 |
+
|
52 |
+
function throttle(func, wait) {
|
53 |
+
var timeout;
|
54 |
+
return function () {
|
55 |
+
const context = this;
|
56 |
+
const args = arguments;
|
57 |
+
const later = function () {
|
58 |
+
clearTimeout(timeout);
|
59 |
+
timeout = null;
|
60 |
+
func.apply(context, args);
|
61 |
+
};
|
62 |
+
|
63 |
+
if (!timeout) {
|
64 |
+
timeout = setTimeout(later, wait);
|
65 |
+
}
|
66 |
+
};
|
67 |
+
}
|
68 |
+
|
69 |
+
function headerOffset() {
|
70 |
+
// Set an offset if there is are fixed top navbar
|
71 |
+
const headerEl = window.document.querySelector("header.fixed-top");
|
72 |
+
if (headerEl) {
|
73 |
+
return headerEl.clientHeight;
|
74 |
+
} else {
|
75 |
+
return 0;
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
function footerOffset() {
|
80 |
+
const footerEl = window.document.querySelector("footer.footer");
|
81 |
+
if (footerEl) {
|
82 |
+
return footerEl.clientHeight;
|
83 |
+
} else {
|
84 |
+
return 0;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
function updateDocumentOffsetWithoutAnimation() {
|
89 |
+
updateDocumentOffset(false);
|
90 |
+
}
|
91 |
+
|
92 |
+
function updateDocumentOffset(animated) {
|
93 |
+
// set body offset
|
94 |
+
const topOffset = headerOffset();
|
95 |
+
const bodyOffset = topOffset + footerOffset();
|
96 |
+
const bodyEl = window.document.body;
|
97 |
+
bodyEl.setAttribute("data-bs-offset", topOffset);
|
98 |
+
bodyEl.style.paddingTop = topOffset + "px";
|
99 |
+
|
100 |
+
// deal with sidebar offsets
|
101 |
+
const sidebars = window.document.querySelectorAll(
|
102 |
+
".sidebar, .headroom-target"
|
103 |
+
);
|
104 |
+
sidebars.forEach((sidebar) => {
|
105 |
+
if (!animated) {
|
106 |
+
sidebar.classList.add("notransition");
|
107 |
+
// Remove the no transition class after the animation has time to complete
|
108 |
+
setTimeout(function () {
|
109 |
+
sidebar.classList.remove("notransition");
|
110 |
+
}, 201);
|
111 |
+
}
|
112 |
+
|
113 |
+
if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) {
|
114 |
+
sidebar.style.top = "0";
|
115 |
+
sidebar.style.maxHeight = "100vh";
|
116 |
+
} else {
|
117 |
+
sidebar.style.top = topOffset + "px";
|
118 |
+
sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)";
|
119 |
+
}
|
120 |
+
});
|
121 |
+
|
122 |
+
// allow space for footer
|
123 |
+
const mainContainer = window.document.querySelector(".quarto-container");
|
124 |
+
if (mainContainer) {
|
125 |
+
mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)";
|
126 |
+
}
|
127 |
+
|
128 |
+
// link offset
|
129 |
+
let linkStyle = window.document.querySelector("#quarto-target-style");
|
130 |
+
if (!linkStyle) {
|
131 |
+
linkStyle = window.document.createElement("style");
|
132 |
+
linkStyle.setAttribute("id", "quarto-target-style");
|
133 |
+
window.document.head.appendChild(linkStyle);
|
134 |
+
}
|
135 |
+
while (linkStyle.firstChild) {
|
136 |
+
linkStyle.removeChild(linkStyle.firstChild);
|
137 |
+
}
|
138 |
+
if (topOffset > 0) {
|
139 |
+
linkStyle.appendChild(
|
140 |
+
window.document.createTextNode(`
|
141 |
+
section:target::before {
|
142 |
+
content: "";
|
143 |
+
display: block;
|
144 |
+
height: ${topOffset}px;
|
145 |
+
margin: -${topOffset}px 0 0;
|
146 |
+
}`)
|
147 |
+
);
|
148 |
+
}
|
149 |
+
if (init) {
|
150 |
+
window.dispatchEvent(headroomChanged);
|
151 |
+
}
|
152 |
+
init = true;
|
153 |
+
}
|
154 |
+
|
155 |
+
// initialize headroom
|
156 |
+
var header = window.document.querySelector("#quarto-header");
|
157 |
+
if (header && window.Headroom) {
|
158 |
+
const headroom = new window.Headroom(header, {
|
159 |
+
tolerance: 5,
|
160 |
+
onPin: function () {
|
161 |
+
const sidebars = window.document.querySelectorAll(
|
162 |
+
".sidebar, .headroom-target"
|
163 |
+
);
|
164 |
+
sidebars.forEach((sidebar) => {
|
165 |
+
sidebar.classList.remove("sidebar-unpinned");
|
166 |
+
});
|
167 |
+
updateDocumentOffset();
|
168 |
+
},
|
169 |
+
onUnpin: function () {
|
170 |
+
const sidebars = window.document.querySelectorAll(
|
171 |
+
".sidebar, .headroom-target"
|
172 |
+
);
|
173 |
+
sidebars.forEach((sidebar) => {
|
174 |
+
sidebar.classList.add("sidebar-unpinned");
|
175 |
+
});
|
176 |
+
updateDocumentOffset();
|
177 |
+
},
|
178 |
+
});
|
179 |
+
headroom.init();
|
180 |
+
|
181 |
+
let frozen = false;
|
182 |
+
window.quartoToggleHeadroom = function () {
|
183 |
+
if (frozen) {
|
184 |
+
headroom.unfreeze();
|
185 |
+
frozen = false;
|
186 |
+
} else {
|
187 |
+
headroom.freeze();
|
188 |
+
frozen = true;
|
189 |
+
}
|
190 |
+
};
|
191 |
+
}
|
192 |
+
|
193 |
+
window.addEventListener(
|
194 |
+
"hashchange",
|
195 |
+
function (e) {
|
196 |
+
if (
|
197 |
+
getComputedStyle(document.documentElement).scrollBehavior !== "smooth"
|
198 |
+
) {
|
199 |
+
window.scrollTo(0, window.pageYOffset - headerOffset());
|
200 |
+
}
|
201 |
+
},
|
202 |
+
false
|
203 |
+
);
|
204 |
+
|
205 |
+
// Observe size changed for the header
|
206 |
+
const headerEl = window.document.querySelector("header.fixed-top");
|
207 |
+
if (headerEl && window.ResizeObserver) {
|
208 |
+
const observer = new window.ResizeObserver(
|
209 |
+
updateDocumentOffsetWithoutAnimation
|
210 |
+
);
|
211 |
+
observer.observe(headerEl, {
|
212 |
+
attributes: true,
|
213 |
+
childList: true,
|
214 |
+
characterData: true,
|
215 |
+
});
|
216 |
+
} else {
|
217 |
+
window.addEventListener(
|
218 |
+
"resize",
|
219 |
+
throttle(updateDocumentOffsetWithoutAnimation, 50)
|
220 |
+
);
|
221 |
+
}
|
222 |
+
setTimeout(updateDocumentOffsetWithoutAnimation, 250);
|
223 |
+
|
224 |
+
// fixup index.html links if we aren't on the filesystem
|
225 |
+
if (window.location.protocol !== "file:") {
|
226 |
+
const links = window.document.querySelectorAll("a");
|
227 |
+
for (let i = 0; i < links.length; i++) {
|
228 |
+
if (links[i].href) {
|
229 |
+
links[i].href = links[i].href.replace(/\/index\.html/, "/");
|
230 |
+
}
|
231 |
+
}
|
232 |
+
|
233 |
+
// Fixup any sharing links that require urls
|
234 |
+
// Append url to any sharing urls
|
235 |
+
const sharingLinks = window.document.querySelectorAll(
|
236 |
+
"a.sidebar-tools-main-item"
|
237 |
+
);
|
238 |
+
for (let i = 0; i < sharingLinks.length; i++) {
|
239 |
+
const sharingLink = sharingLinks[i];
|
240 |
+
const href = sharingLink.getAttribute("href");
|
241 |
+
if (href) {
|
242 |
+
sharingLink.setAttribute(
|
243 |
+
"href",
|
244 |
+
href.replace("|url|", window.location.href)
|
245 |
+
);
|
246 |
+
}
|
247 |
+
}
|
248 |
+
|
249 |
+
// Scroll the active navigation item into view, if necessary
|
250 |
+
const navSidebar = window.document.querySelector("nav#quarto-sidebar");
|
251 |
+
if (navSidebar) {
|
252 |
+
// Find the active item
|
253 |
+
const activeItem = navSidebar.querySelector("li.sidebar-item a.active");
|
254 |
+
if (activeItem) {
|
255 |
+
// Wait for the scroll height and height to resolve by observing size changes on the
|
256 |
+
// nav element that is scrollable
|
257 |
+
const resizeObserver = new ResizeObserver((_entries) => {
|
258 |
+
// The bottom of the element
|
259 |
+
const elBottom = activeItem.offsetTop;
|
260 |
+
const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight;
|
261 |
+
|
262 |
+
// The element height and scroll height are the same, then we are still loading
|
263 |
+
if (viewBottom !== navSidebar.scrollHeight) {
|
264 |
+
// Determine if the item isn't visible and scroll to it
|
265 |
+
if (elBottom >= viewBottom) {
|
266 |
+
navSidebar.scrollTop = elBottom;
|
267 |
+
}
|
268 |
+
|
269 |
+
// stop observing now since we've completed the scroll
|
270 |
+
resizeObserver.unobserve(navSidebar);
|
271 |
+
}
|
272 |
+
});
|
273 |
+
resizeObserver.observe(navSidebar);
|
274 |
+
}
|
275 |
+
}
|
276 |
+
}
|
277 |
+
});
|
_proc/_docs/site_libs/quarto-search/autocomplete.umd.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
/*! @algolia/autocomplete-js 1.7.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
|
2 |
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?t(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function u(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],u=!0,a=!1;try{for(n=n.call(e);!(u=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);u=!0);}catch(e){a=!0,o=e}finally{try{u||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||l(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e){return{current:e}}function f(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,o)}),t)}}function d(e){return e.reduce((function(e,t){return e.concat(t)}),[])}var m=0;function v(){return"autocomplete-".concat(m++)}function h(e,t){return t.reduce((function(e,t){return e&&e[t]}),e)}function g(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}var y=function(){},b="1.7.3",O=[{segment:"autocomplete-core",version:b}];function _(e,t){var n=t;return{then:function(t,r){return _(e.then(j(t,n,e),j(r,n,e)),n)},catch:function(t){return _(e.catch(j(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),_(e.finally(j(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function P(e){return _(e,{isCanceled:!1,onCancelList:[]})}function j(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function w(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){I(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:y},e);return Promise.resolve(t)})))}))}function A(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,i=0;!1===r;){var u=t.collections[o];if(u===n){r=!0;break}i+=u.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}var C=/((gt|sm)-|galaxy nexus)|samsung[- ]/i;function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){x(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,i){var u=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(Object(n),!0).forEach((function(t){q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o);o=e(o,{type:r,props:t,payload:i}),n({state:o,prevState:u})},pendingRequests:(r=[],{add:function(e){return r.push(e),e.finally((function(){r=r.filter((function(t){return t!==e}))}))},cancelAll:function(){r.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===r.length}})}}function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function L(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?T(Object(n),!0).forEach((function(t){B(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function B(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F(e){return function(e){if(Array.isArray(e))return M(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return M(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function U(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function H(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?U(Object(n),!0).forEach((function(t){V(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function $(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e){return function(e){if(Array.isArray(e))return G(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return G(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return G(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function G(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function K(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function J(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?K(Object(n),!0).forEach((function(t){Y(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e){return Boolean(e.execute)}function Z(e,t){return n=e,Boolean(null==n?void 0:n.execute)?J(J({},e),{},{requests:e.queries.map((function(n){return{query:n,sourceId:t,transformResponse:e.transformResponse}}))}):{items:e,sourceId:t};var n}function ee(e){var t=e.reduce((function(e,t){if(!X(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,i=t.requests,u=e.find((function(e){return X(t)&&X(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(u){var a;(a=u.items).push.apply(a,z(i))}else{var c={execute:r,requesterId:o,items:i,searchClient:n};e.push(c)}return e}),[]).map((function(e){if(!X(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return d(e)}))}function te(e,t){return t.map((function(t){var n=e.filter((function(e){return e.sourceId===t.sourceId})),r=n.map((function(e){return e.items})),o=n[0].transformResponse,i=o?o(function(e){var t=e.map((function(e){var t;return k(k({},e),{},{hits:null===(t=e.hits)||void 0===t?void 0:t.map((function(t){return k(k({},t),{},{__autocomplete_indexName:e.index,__autocomplete_queryID:e.queryID})}))})}));return{results:t,hits:t.map((function(e){return e.hits})).filter(Boolean),facetHits:t.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}}(r)):r;return i.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:i}}))}var ne=["event","nextState","props","query","refresh","store"];function re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?re(Object(n),!0).forEach((function(t){ie(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):re(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ue(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ae,ce,le,se=null,pe=(ae=-1,ce=-1,le=void 0,function(e){var t=++ae;return Promise.resolve(e).then((function(e){return le&&t<ce?le:(ce=t,le=e,e)}))});function fe(e){var t=e.event,n=e.nextState,r=void 0===n?{}:n,o=e.props,i=e.query,u=e.refresh,a=e.store,c=ue(e,ne);se&&o.environment.clearTimeout(se);var l=c.setCollections,s=c.setIsOpen,p=c.setQuery,f=c.setActiveItemId,m=c.setStatus;if(p(i),f(o.defaultActiveItemId),!i&&!1===o.openOnFocus){var v,h=a.getState().collections.map((function(e){return oe(oe({},e),{},{items:[]})}));m("idle"),l(h),s(null!==(v=r.isOpen)&&void 0!==v?v:o.shouldPanelOpen({state:a.getState()}));var g=P(pe(h).then((function(){return Promise.resolve()})));return a.pendingRequests.add(g)}m("loading"),se=o.environment.setTimeout((function(){m("stalled")}),o.stallThreshold);var y=P(pe(o.getSources(oe({query:i,refresh:u,state:a.getState()},c)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(oe({query:i,refresh:u,state:a.getState()},c))).then((function(t){return Z(t,e.sourceId)}))}))).then(ee).then((function(t){return te(t,e)})).then((function(e){return function(e){var t=e.collections,n=e.props,r=e.state,o=t.reduce((function(e,t){return Q(Q({},e),{},$({},t.source.sourceId,Q(Q({},t.source),{},{getItems:function(){return d(t.items)}})))}),{});return d(n.reshape({sources:Object.values(o),sourcesBySourceId:o,state:r})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:a.getState()})}))})))).then((function(e){var n;m("idle"),l(e);var p=o.shouldPanelOpen({state:a.getState()});s(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!i&&p||p);var f=A(a.getState());if(null!==a.getState().activeItemId&&f){var d=f.item,v=f.itemInputValue,h=f.itemUrl,g=f.source;g.onActive(oe({event:t,item:d,itemInputValue:v,itemUrl:h,refresh:u,source:g,state:a.getState()},c))}})).finally((function(){m("idle"),se&&o.environment.clearTimeout(se)}));return a.pendingRequests.add(y)}var de=["event","props","refresh","store"];function me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ve(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?me(Object(n),!0).forEach((function(t){he(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):me(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function he(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ge(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ye=["props","refresh","store"],be=["inputElement","formElement","panelElement"],Oe=["inputElement"],_e=["inputElement","maxLength"],Pe=["item","source"];function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function we(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?je(Object(n),!0).forEach((function(t){Se(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):je(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Se(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ie(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ee(e){var t=e.props,n=e.refresh,r=e.store,o=Ie(e,ye);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function u(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return we({onTouchStart:u,onMouseDown:u,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},Ie(e,be))},getRootProps:function(e){return we({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){return e.inputElement,we({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(we({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(u=e.inputElement)||void 0===u||u.blur()},onReset:function(i){var u;i.preventDefault(),t.onReset(we({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},Ie(e,Oe))},getLabelProps:function(e){return we({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){var i;function u(e){(t.openOnFocus||Boolean(r.getState().query))&&fe(we({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a=e||{};a.inputElement;var c=a.maxLength,l=void 0===c?512:c,s=Ie(a,_e),p=A(r.getState()),f=function(e){return Boolean(e&&e.match(C))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),d=null!=p&&p.itemUrl&&!f?"go":"search";return we({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:d,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){fe(we({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=ge(e,de);if("ArrowUp"===t.key||"ArrowDown"===t.key){var u=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},a=function(){var e=A(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,u=e.itemInputValue,a=e.itemUrl,c=e.source;c.onActive(ve({event:t,item:n,itemInputValue:u,itemUrl:a,refresh:r,source:c,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?fe(ve({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),a(),setTimeout(u,0)})):(o.dispatch(t.key,{}),a(),u())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var c=A(o.getState()),l=c.item,s=c.itemInputValue,p=c.itemUrl,f=c.source;if(t.metaKey||t.ctrlKey)void 0!==p&&(f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:p,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==p&&(f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:p,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==p)return f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),void n.navigator.navigate({itemUrl:p,item:l,state:o.getState()});fe(ve({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i))}))}}}(we({event:e,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:y,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},s)},getPanelProps:function(e){return we({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){return we({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var i=e.item,u=e.source,a=Ie(e,Pe);return we({id:"".concat(t.id,"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=A(r.getState());if(null!==r.getState().activeItemId&&t){var u=t.item,a=t.itemInputValue,c=t.itemUrl,l=t.source;l.onActive(we({event:e,item:u,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),c=u.getItemUrl({item:i,state:r.getState()});(c?Promise.resolve():fe(we({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(we({event:e,item:i,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:r.getState()},o))}))}},a)}}}function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ae(Object(n),!0).forEach((function(t){De(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function De(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ke(e){var t,n,r,o,i=e.plugins,u=e.options,a=null===(t=((null===(n=u.__autocomplete_metadata)||void 0===n?void 0:n.userAgents)||[])[0])||void 0===t?void 0:t.segment,c=a?De({},a,Object.keys((null===(r=u.__autocomplete_metadata)||void 0===r?void 0:r.options)||{})):{};return{plugins:i.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:Ce({"autocomplete-core":Object.keys(u)},c),ua:O.concat((null===(o=u.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function xe(e){var t,n=e.state;return!1===n.isOpen||null===n.activeItemId?null:(null===(t=A(n))||void 0===t?void 0:t.itemInputValue)||null}function Ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ne(Object(n),!0).forEach((function(t){Re(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ne(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Re(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Te=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return qe(qe({},e),{},{activeItemId:t.payload});case"setQuery":return qe(qe({},e),{},{query:t.payload,completion:null});case"setCollections":return qe(qe({},e),{},{collections:t.payload});case"setIsOpen":return qe(qe({},e),{},{isOpen:t.payload});case"setStatus":return qe(qe({},e),{},{status:t.payload});case"setContext":return qe(qe({},e),{},{context:qe(qe({},e.context),t.payload)});case"ArrowDown":var n=qe(qe({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:w(1,e.activeItemId,g(e),t.props.defaultActiveItemId)});return qe(qe({},n),{},{completion:xe({state:n})});case"ArrowUp":var r=qe(qe({},e),{},{activeItemId:w(-1,e.activeItemId,g(e),t.props.defaultActiveItemId)});return qe(qe({},r),{},{completion:xe({state:r})});case"Escape":return e.isOpen?qe(qe({},e),{},{activeItemId:null,isOpen:!1,completion:null}):qe(qe({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return qe(qe({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return qe(qe({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return qe(qe({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:qe(qe({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return qe(qe({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function Le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Be(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Le(Object(n),!0).forEach((function(t){Fe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Le(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Fe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Me(e){var t=[],n=function(e,t){var n,r="undefined"!=typeof window?window:{},o=e.plugins||[];return H(H({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,environment:r,shouldPanelOpen:function(e){return g(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:v(),plugins:o,initialState:H({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(F(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return E(e,n)}))).then((function(e){return d(e)})).then((function(e){return e.map((function(e){return H(H({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:H({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}(e,t),r=R(Te,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(Be({prevState:t,state:r,refresh:u},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return L(L({},e),{},{items:d(e.items).map((function(e){return L(L({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),i=Ee(Be({props:n,refresh:u,store:r},o));function u(){return fe(Be({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,query:r.getState().query,refresh:u,store:r},o))}return n.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,Be(Be({},o),{},{refresh:u,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var i=o.document.createElement("meta"),u=o.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(r),u.appendChild(i)}),0)}}({metadata:ke({plugins:n.plugins,options:e}),environment:n.environment}),Be(Be({refresh:u},i),o)}var Ue=function(e,t,n,r){var o;t[0]=0;for(var i=1;i<t.length;i++){var u=t[i++],a=t[i]?(t[0]|=u?1:2,n[t[i++]]):t[++i];3===u?r[0]=a:4===u?r[1]=Object.assign(r[1]||{},a):5===u?(r[1]=r[1]||{})[t[++i]]=a:6===u?r[1][t[++i]]+=a+"":u?(o=e.apply(a,Ue(e,a,n,["",null])),r.push(o),a[0]?t[0]|=2:(t[i-2]=0,t[i]=o)):r.push(a)}return r},He=new Map;function Ve(e){var t=He.get(this);return t||(t=new Map,He.set(this,t)),(t=Ue(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,r=1,o="",i="",u=[0],a=function(e){1===r&&(e||(o=o.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?u.push(0,e,o):3===r&&(e||o)?(u.push(3,e,o),r=2):2===r&&"..."===o&&e?u.push(4,e,0):2===r&&o&&!e?u.push(5,0,!0,o):r>=5&&((o||!e&&5===r)&&(u.push(r,0,o,n),r=6),e&&(u.push(r,e,0,n),r=6)),o=""},c=0;c<e.length;c++){c&&(1===r&&a(),a(c));for(var l=0;l<e[c].length;l++)t=e[c][l],1===r?"<"===t?(a(),u=[u],r=3):o+=t:4===r?"--"===o&&">"===t?(r=1,o=""):o=t+o[0]:i?t===i?i="":o+=t:'"'===t||"'"===t?i=t:">"===t?(a(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[c][l+1])?(a(),3===r&&(u=u[0]),r=u,(u=u[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),r=2):o+=t),3===r&&"!--"===o&&(r=4,u=u[0])}return a(),u}(e)),t),arguments,[])).length>1?t:t[0]}var We=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function Qe(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function $e(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];r!==o&&(e[n]=[r,o].filter(Boolean).join(" "))})),e}),{})}var ze=function(e){return e&&"object"===r(e)&&"[object Object]"===Object.prototype.toString.call(e)};function Ge(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];Array.isArray(r)&&Array.isArray(o)?e[n]=r.concat.apply(r,c(o)):ze(r)&&ze(o)?e[n]=Ge(r,o):e[n]=o})),e}),{})}function Ke(e,t){return Object.entries(e).reduce((function(e,r){var i=a(r,2),u=i[0],c=i[1];return t({key:u,value:c})?n(n({},e),{},o({},u,c)):e}),{})}var Je=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function Ye(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function Xe(e){this._listeners[e.type](e)}function Ze(e,t,n){var r,o,i=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)i&&n[t]===i[t]||Ye(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||Je.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?i||e.addEventListener(t,Xe,r):e.removeEventListener(t,Xe,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function et(e){return"onChange"===e?"onInput":e}function tt(e,t){for(var n in t)Ze(e,et(n),t[n])}function nt(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||Ze(e,et(n),t[n])}var rt=["children"];function ot(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,i=u(n,rt),a=e.document.createElement(t);return tt(a,i),a.append.apply(a,c(o)),a}}var it=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"],ut=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='<circle\n cx="50"\n cy="50"\n fill="none"\n r="35"\n stroke="currentColor"\n stroke-dasharray="164.93361431346415 56.97787143782138"\n stroke-width="6"\n>\n <animateTransform\n attributeName="transform"\n type="rotate"\n repeatCount="indefinite"\n dur="1s"\n values="0 50 50;90 50 50;180 50 50;360 50 50"\n keyTimes="0;0.40;0.65;1"\n />\n</circle>',t},at=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n};function ct(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.classNames,i=e.environment,a=e.isDetached,c=e.placeholder,l=void 0===c?"Search":c,s=e.propGetters,p=e.setIsModalOpen,f=e.state,d=e.translations,m=ot(i),v=s.getRootProps(n({state:f,props:t.getRootProps({})},r)),h=m("div",n({class:o.root},v)),g=m("div",{class:o.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),y=m("div",{class:o.detachedOverlay,children:[g],onMouseDown:function(){p(!1),t.setIsOpen(!1)}}),b=s.getLabelProps(n({state:f,props:t.getLabelProps({})},r)),O=m("button",{class:o.submitButton,type:"submit",title:d.submitButtonTitle,children:[at({environment:i})]}),_=m("label",n({class:o.label,children:[O]},b)),P=m("button",{class:o.clearButton,type:"reset",title:d.clearButtonTitle,children:[We({environment:i})]}),j=m("div",{class:o.loadingIndicator,children:[ut({environment:i})]}),w=function(e){var t=e.autocompleteScopeApi,r=e.environment;e.classNames;var o=e.getInputProps,i=e.getInputPropsCore,a=e.isDetached,c=e.state,l=u(e,it),s=ot(r)("input",l),p=o(n({state:c,props:i({inputElement:s}),inputElement:s},t));return tt(s,n(n({},p),{},{onKeyDown:function(e){a&&"Tab"===e.key||p.onKeyDown(e)}})),s}({class:o.input,environment:i,state:f,getInputProps:s.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:r,isDetached:a}),S=m("div",{class:o.inputWrapperPrefix,children:[_,j]}),I=m("div",{class:o.inputWrapperSuffix,children:[P]}),E=m("div",{class:o.inputWrapper,children:[w]}),A=s.getFormProps(n({state:f,props:t.getFormProps({inputElement:w})},r)),C=m("form",n({class:o.form,children:[S,E,I]},A)),D=s.getPanelProps(n({state:f,props:t.getPanelProps({})},r)),k=m("div",n({class:o.panel},D));if(a){var x=m("div",{class:o.detachedSearchButtonIcon,children:[at({environment:i})]}),N=m("div",{class:o.detachedSearchButtonPlaceholder,textContent:l}),q=m("button",{type:"button",class:o.detachedSearchButton,onClick:function(){p(!0)},children:[x,N]}),R=m("button",{type:"button",class:o.detachedCancelButton,textContent:d.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),p(!1)}}),T=m("div",{class:o.detachedFormContainer,children:[C,R]});g.appendChild(T),h.appendChild(q)}else h.appendChild(C);return{detachedContainer:g,detachedOverlay:y,inputWrapper:E,input:w,root:h,form:C,label:_,submitButton:O,clearButton:P,loadingIndicator:j,panel:k}}var lt,st,pt,ft,dt,mt,vt={},ht=[],gt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function yt(e,t){for(var n in t)e[n]=t[n];return e}function bt(e){var t=e.parentNode;t&&t.removeChild(e)}function Ot(e,t,n){var r,o,i,u={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:u[i]=t[i];if(arguments.length>2&&(u.children=arguments.length>3?lt.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===u[i]&&(u[i]=e.defaultProps[i]);return _t(e,u,r,o,null)}function _t(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++pt:o};return null==o&&null!=st.vnode&&st.vnode(i),i}function Pt(e){return e.children}function jt(e,t){this.props=e,this.context=t}function wt(e,t){if(null==t)return e.__?wt(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?wt(e):null}function St(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return St(e)}}function It(e){(!e.__d&&(e.__d=!0)&&ft.push(e)&&!Et.__r++||mt!==st.debounceRendering)&&((mt=st.debounceRendering)||dt)(Et)}function Et(){for(var e;Et.__r=ft.length;)e=ft.sort((function(e,t){return e.__v.__b-t.__v.__b})),ft=[],e.some((function(e){var t,n,r,o,i,u;e.__d&&(i=(o=(t=e).__v).__e,(u=t.__P)&&(n=[],(r=yt({},o)).__v=o.__v+1,Rt(u,o,r,t.__n,void 0!==u.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?wt(o):i,o.__h),Tt(n,o),o.__e!=i&&St(o)))}))}function At(e,t,n,r,o,i,u,a,c,l){var s,p,f,d,m,v,h,g=r&&r.__k||ht,y=g.length;for(n.__k=[],s=0;s<t.length;s++)if(null!=(d=n.__k[s]=null==(d=t[s])||"boolean"==typeof d?null:"string"==typeof d||"number"==typeof d||"bigint"==typeof d?_t(null,d,null,null,d):Array.isArray(d)?_t(Pt,{children:d},null,null,null):d.__b>0?_t(d.type,d.props,d.key,null,d.__v):d)){if(d.__=n,d.__b=n.__b+1,null===(f=g[s])||f&&d.key==f.key&&d.type===f.type)g[s]=void 0;else for(p=0;p<y;p++){if((f=g[p])&&d.key==f.key&&d.type===f.type){g[p]=void 0;break}f=null}Rt(e,d,f=f||vt,o,i,u,a,c,l),m=d.__e,(p=d.ref)&&f.ref!=p&&(h||(h=[]),f.ref&&h.push(f.ref,null,d),h.push(p,d.__c||m,d)),null!=m?(null==v&&(v=m),"function"==typeof d.type&&d.__k===f.__k?d.__d=c=Ct(d,c,e):c=Dt(e,d,f,g,m,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=wt(f))}for(n.__e=v,s=y;s--;)null!=g[s]&&("function"==typeof n.type&&null!=g[s].__e&&g[s].__e==n.__d&&(n.__d=wt(r,s+1)),Ft(g[s],g[s]));if(h)for(s=0;s<h.length;s++)Bt(h[s],h[++s],h[++s])}function Ct(e,t,n){for(var r,o=e.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=e,t="function"==typeof r.type?Ct(r,t,n):Dt(n,r,r,o,r.__e,t));return t}function Dt(e,t,n,r,o,i){var u,a,c;if(void 0!==t.__d)u=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),u=null;else{for(a=i,c=0;(a=a.nextSibling)&&c<r.length;c+=2)if(a==o)break e;e.insertBefore(o,i),u=i}return void 0!==u?u:o.nextSibling}function kt(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||gt.test(t)?n:n+"px"}function xt(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||kt(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||kt(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?qt:Nt,i):e.removeEventListener(t,i?qt:Nt,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function Nt(e){this.l[e.type+!1](st.event?st.event(e):e)}function qt(e){this.l[e.type+!0](st.event?st.event(e):e)}function Rt(e,t,n,r,o,i,u,a,c){var l,s,p,f,d,m,v,h,g,y,b,O=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(l=st.__b)&&l(t);try{e:if("function"==typeof O){if(h=t.props,g=(l=O.contextType)&&r[l.__c],y=l?g?g.props.value:l.__:r,n.__c?v=(s=t.__c=n.__c).__=s.__E:("prototype"in O&&O.prototype.render?t.__c=s=new O(h,y):(t.__c=s=new jt(h,y),s.constructor=O,s.render=Mt),g&&g.sub(s),s.props=h,s.state||(s.state={}),s.context=y,s.__n=r,p=s.__d=!0,s.__h=[]),null==s.__s&&(s.__s=s.state),null!=O.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=yt({},s.__s)),yt(s.__s,O.getDerivedStateFromProps(h,s.__s))),f=s.props,d=s.state,p)null==O.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==O.getDerivedStateFromProps&&h!==f&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(h,y),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(h,s.__s,y)||t.__v===n.__v){s.props=h,s.state=s.__s,t.__v!==n.__v&&(s.__d=!1),s.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),s.__h.length&&u.push(s);break e}null!=s.componentWillUpdate&&s.componentWillUpdate(h,s.__s,y),null!=s.componentDidUpdate&&s.__h.push((function(){s.componentDidUpdate(f,d,m)}))}s.context=y,s.props=h,s.state=s.__s,(l=st.__r)&&l(t),s.__d=!1,s.__v=t,s.__P=e,l=s.render(s.props,s.state,s.context),s.state=s.__s,null!=s.getChildContext&&(r=yt(yt({},r),s.getChildContext())),p||null==s.getSnapshotBeforeUpdate||(m=s.getSnapshotBeforeUpdate(f,d)),b=null!=l&&l.type===Pt&&null==l.key?l.props.children:l,At(e,Array.isArray(b)?b:[b],t,n,r,o,i,u,a,c),s.base=t.__e,t.__h=null,s.__h.length&&u.push(s),v&&(s.__E=s.__=null),s.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Lt(n.__e,t,n,r,o,i,u,c);(l=st.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=i)&&(t.__e=a,t.__h=!!c,i[i.indexOf(a)]=null),st.__e(e,t,n)}}function Tt(e,t){st.__c&&st.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){st.__e(e,t.__v)}}))}function Lt(e,t,n,r,o,i,u,a){var c,l,s,p=n.props,f=t.props,d=t.type,m=0;if("svg"===d&&(o=!0),null!=i)for(;m<i.length;m++)if((c=i[m])&&"setAttribute"in c==!!d&&(d?c.localName===d:3===c.nodeType)){e=c,i[m]=null;break}if(null==e){if(null===d)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,f.is&&f),i=null,a=!1}if(null===d)p===f||a&&e.data===f||(e.data=f);else{if(i=i&<.call(e.childNodes),l=(p=n.props||vt).dangerouslySetInnerHTML,s=f.dangerouslySetInnerHTML,!a){if(null!=i)for(p={},m=0;m<e.attributes.length;m++)p[e.attributes[m].name]=e.attributes[m].value;(s||l)&&(s&&(l&&s.__html==l.__html||s.__html===e.innerHTML)||(e.innerHTML=s&&s.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||xt(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||xt(e,i,t[i],n[i],r)}(e,f,p,o,a),s)t.__k=[];else if(m=t.props.children,At(e,Array.isArray(m)?m:[m],t,n,r,o&&"foreignObject"!==d,i,u,i?i[0]:n.__k&&wt(n,0),a),null!=i)for(m=i.length;m--;)null!=i[m]&&bt(i[m]);a||("value"in f&&void 0!==(m=f.value)&&(m!==p.value||m!==e.value||"progress"===d&&!m)&&xt(e,"value",m,p.value,!1),"checked"in f&&void 0!==(m=f.checked)&&m!==e.checked&&xt(e,"checked",m,p.checked,!1))}return e}function Bt(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){st.__e(e,n)}}function Ft(e,t,n){var r,o;if(st.unmount&&st.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Bt(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){st.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Ft(r[o],t,"function"!=typeof e.type);n||null==e.__e||bt(e.__e),e.__e=e.__d=void 0}function Mt(e,t,n){return this.constructor(e,n)}lt=ht.slice,st={__e:function(e,t){for(var n,r,o;t=t.__;)if((n=t.__c)&&!n.__)try{if((r=n.constructor)&&null!=r.getDerivedStateFromError&&(n.setState(r.getDerivedStateFromError(e)),o=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(e),o=n.__d),o)return n.__E=n}catch(t){e=t}throw e}},pt=0,jt.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=yt({},this.state),"function"==typeof e&&(e=e(yt({},n),this.props)),e&&yt(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),It(this))},jt.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),It(this))},jt.prototype.render=Pt,ft=[],dt="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Et.__r=0;var Ut="__aa-highlight__",Ht="__/aa-highlight__";function Vt(e){var t=e.highlightedValue.split(Ut),n=t.shift(),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Ht);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Wt(e){return function(e){if(Array.isArray(e))return Qt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Qt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Qt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function $t(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=h(t,["_highlightResult"].concat(Wt(r),["value"]));return"string"!=typeof o&&(o=h(t,r)||""),Vt({highlightedValue:o})}var zt={"&":"&","<":"<",">":">",""":'"',"'":"'"},Gt=new RegExp(/\w/i),Kt=/&(amp|quot|lt|gt|#39);/g,Jt=RegExp(Kt.source);function Yt(e,t){var n,r,o,i=e[t],u=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,a=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Gt.test((o=i.value)&&Jt.test(o)?o.replace(Kt,(function(e){return zt[e]})):o)||a!==u?i.isHighlighted:a}function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Zt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xt(Object(n),!0).forEach((function(t){en(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function en(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tn(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return Zt(Zt({},t),{},{isHighlighted:!Yt(e,n)})})):e.map((function(e){return Zt(Zt({},e),{},{isHighlighted:!1})}))}function nn(e){return function(e){if(Array.isArray(e))return rn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return rn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function rn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function on(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=h(t,["_snippetResult"].concat(nn(r),["value"]));return"string"!=typeof o&&(o=h(t,r)||""),Vt({highlightedValue:o})}function un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function an(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?un(Object(n),!0).forEach((function(t){cn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):un(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function cn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ln=["params"];function sn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function pn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sn(Object(n),!0).forEach((function(t){fn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function fn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function mn(e){return function(e){if(Array.isArray(e))return vn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return vn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return vn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function hn(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,i=e.tagName,u=void 0===i?"mark":i;return t(n,{},$t({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(u,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Highlight",r}function gn(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,i=e.attribute,u=e.tagName,a=void 0===u?"mark":u;return t(n,{},(r={hit:o,attribute:i},tn($t(r))).map((function(e,n){return e.isHighlighted?t(a,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseHighlight",r}function yn(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,i=e.attribute,u=e.tagName,a=void 0===u?"mark":u;return t(n,{},(r={hit:o,attribute:i},tn(on(r))).map((function(e,n){return e.isHighlighted?t(a,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseSnippet",r}function bn(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,i=e.tagName,u=void 0===i?"mark":i;return t(n,{},on({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(u,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Snippet",r}var On=["classNames","container","getEnvironmentProps","getFormProps","getInputProps","getItemProps","getLabelProps","getListProps","getPanelProps","getRootProps","panelContainer","panelPlacement","render","renderNoResults","renderer","detachedMediaQuery","components","translations"],_n={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},Pn=function(e,t){var n=e.children;(0,e.render)(n,t)},jn={createElement:Ot,Fragment:Pt,render:function(e,t,n){var r,o,i;st.__&&st.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Rt(t,e=(!r&&n||t).__k=Ot(Pt,null,[e]),o||vt,vt,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?lt.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Tt(i,e)}};function wn(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,i=n.getBoundingClientRect(),u=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+i.top+i.height;switch(t){case"start":return{top:u,left:i.left};case"end":return{top:u,right:o.document.documentElement.clientWidth-(i.left+i.width)};case"full-width":return{top:u,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var a=r.getBoundingClientRect();return{top:u,left:a.left,right:o.document.documentElement.clientWidth-(a.left+a.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}var Sn=[{segment:"autocomplete-js",version:b}],In=["components"];var En=function(e,t){function n(t){return e({searchClient:t.searchClient,queries:t.requests.map((function(e){return e.query}))}).then((function(e){return e.map((function(e,n){var r=t.requests[n];return{items:e,sourceId:r.sourceId,transformResponse:r.transformResponse}}))}))}return function(e){return function(r){return an(an({requesterId:t,execute:n},e),r)}}}((function(e){return function(e){var t=e.searchClient,n=e.queries,r=e.userAgents,o=void 0===r?[]:r;return"function"==typeof t.addAlgoliaAgent&&[].concat(mn(O),mn(o)).forEach((function(e){var n=e.segment,r=e.version;t.addAlgoliaAgent(n,r)})),t.search(n.map((function(e){var t=e.params;return pn(pn({},dn(e,ln)),{},{params:pn({hitsPerPage:5,highlightPreTag:Ut,highlightPostTag:Ht},t)})}))).then((function(e){return e.results}))}(n(n({},e),{},{userAgents:Sn}))}),"algolia");var An=En({transformResponse:function(e){return e.hits}});e.autocomplete=function(e){var t,r=function(){var e=[],t=[];function n(n){e.push(n);var r=n();t.push(r)}return{runEffect:n,cleanupEffects:function(){var e=t;t=[],e.forEach((function(e){e()}))},runEffects:function(){var t=e;e=[],t.forEach((function(e){n(e)}))}}}(),a=r.runEffect,c=r.cleanupEffects,l=r.runEffects,s=(t=[],{reactive:function(e){var n=e(),r={_fn:e,_ref:{current:n},get value(){return this._ref.current},set value(e){this._ref.current=e}};return t.push(r),r},runReactives:function(){t.forEach((function(e){e._ref.current=e._fn()}))}}),d=s.reactive,m=s.runReactives,h=p(!1),y=p(e),b=p(void 0),O=d((function(){return function(e){var t,r=e.classNames,o=e.container,i=e.getEnvironmentProps,a=e.getFormProps,c=e.getInputProps,l=e.getItemProps,s=e.getLabelProps,p=e.getListProps,f=e.getPanelProps,d=e.getRootProps,m=e.panelContainer,h=e.panelPlacement,g=e.render,y=e.renderNoResults,b=e.renderer,O=e.detachedMediaQuery,_=e.components,P=e.translations,j=u(e,On),w="undefined"!=typeof window?window:{},S=Qe(w,o);S.tagName;var I=n(n({},jn),b),E={Highlight:hn(I),ReverseHighlight:gn(I),ReverseSnippet:yn(I),Snippet:bn(I)};return{renderer:{classNames:$e(_n,null!=r?r:{}),container:S,getEnvironmentProps:null!=i?i:function(e){return e.props},getFormProps:null!=a?a:function(e){return e.props},getInputProps:null!=c?c:function(e){return e.props},getItemProps:null!=l?l:function(e){return e.props},getLabelProps:null!=s?s:function(e){return e.props},getListProps:null!=p?p:function(e){return e.props},getPanelProps:null!=f?f:function(e){return e.props},getRootProps:null!=d?d:function(e){return e.props},panelContainer:m?Qe(w,m):w.document.body,panelPlacement:null!=h?h:"input-wrapper-width",render:null!=g?g:Pn,renderNoResults:y,renderer:I,detachedMediaQuery:null!=O?O:getComputedStyle(w.document.documentElement).getPropertyValue("--aa-detached-media-query"),components:n(n({},E),_),translations:n(n({},{clearButtonTitle:"Clear",detachedCancelButtonText:"Cancel",submitButtonTitle:"Submit"}),P)},core:n(n({},j),{},{id:null!==(t=j.id)&&void 0!==t?t:v(),environment:w})}}(y.current)})),_=d((function(){return O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches})),P=d((function(){return Me(n(n({},O.value.core),{},{onStateChange:function(e){var t,n,r;h.current=e.state.collections.some((function(e){return e.source.templates.noResults})),null===(t=b.current)||void 0===t||t.call(b,e),null===(n=(r=O.value.core).onStateChange)||void 0===n||n.call(r,e)},shouldPanelOpen:y.current.shouldPanelOpen||function(e){var t=e.state;if(_.value)return!0;var n=g(t)>0;if(!O.value.core.openOnFocus&&!t.query)return n;var r=Boolean(h.current||O.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:Sn,options:e}}))})),j=p(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},O.value.core.initialState)),w={getEnvironmentProps:O.value.renderer.getEnvironmentProps,getFormProps:O.value.renderer.getFormProps,getInputProps:O.value.renderer.getInputProps,getItemProps:O.value.renderer.getItemProps,getLabelProps:O.value.renderer.getLabelProps,getListProps:O.value.renderer.getListProps,getPanelProps:O.value.renderer.getPanelProps,getRootProps:O.value.renderer.getRootProps},S={setActiveItemId:P.value.setActiveItemId,setQuery:P.value.setQuery,setCollections:P.value.setCollections,setIsOpen:P.value.setIsOpen,setStatus:P.value.setStatus,setContext:P.value.setContext,refresh:P.value.refresh},I=d((function(){return Ve.bind(O.value.renderer.renderer.createElement)})),E=d((function(){return ct({autocomplete:P.value,autocompleteScopeApi:S,classNames:O.value.renderer.classNames,environment:O.value.core.environment,isDetached:_.value,placeholder:O.value.core.placeholder,propGetters:w,setIsModalOpen:k,state:j.current,translations:O.value.renderer.translations})}));function A(){tt(E.value.panel,{style:_.value?{}:wn({panelPlacement:O.value.renderer.panelPlacement,container:E.value.root,form:E.value.form,environment:O.value.core.environment})})}function C(e){j.current=e;var t={autocomplete:P.value,autocompleteScopeApi:S,classNames:O.value.renderer.classNames,components:O.value.renderer.components,container:O.value.renderer.container,html:I.value,dom:E.value,panelContainer:_.value?E.value.detachedContainer:O.value.renderer.panelContainer,propGetters:w,state:j.current,renderer:O.value.renderer.renderer},r=!g(e)&&!h.current&&O.value.renderer.renderNoResults||O.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,i=e.propGetters,u=e.state;nt(o.root,i.getRootProps(n({state:u,props:t.getRootProps({})},r))),nt(o.input,i.getInputProps(n({state:u,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),tt(o.label,{hidden:"stalled"===u.status}),tt(o.loadingIndicator,{hidden:"stalled"!==u.status}),tt(o.clearButton,{hidden:!u.query})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,u=t.classNames,a=t.html,c=t.dom,l=t.panelContainer,s=t.propGetters,p=t.state,f=t.components,d=t.renderer;if(p.isOpen){l.contains(c.panel)||"loading"===p.status||l.appendChild(c.panel),c.panel.classList.toggle("aa-Panel--stalled","stalled"===p.status);var m=p.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var c=e.source,l=e.items;return d.createElement("section",{key:t,className:u.source,"data-autocomplete-source-id":c.sourceId},c.templates.header&&d.createElement("div",{className:u.sourceHeader},c.templates.header({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:a})),c.templates.noResults&&0===l.length?d.createElement("div",{className:u.sourceNoResults},c.templates.noResults({components:f,createElement:d.createElement,Fragment:d.Fragment,source:c,state:p,html:a})):d.createElement("ul",i({className:u.list},s.getListProps(n({state:p,props:r.getListProps({})},o))),l.map((function(e){var t=r.getItemProps({item:e,source:c});return d.createElement("li",i({key:t.id,className:u.item},s.getItemProps(n({state:p,props:t},o))),c.templates.item({components:f,createElement:d.createElement,Fragment:d.Fragment,item:e,state:p,html:a}))}))),c.templates.footer&&d.createElement("div",{className:u.sourceFooter},c.templates.footer({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:a})))})),v=d.createElement(d.Fragment,null,d.createElement("div",{className:u.panelLayout},m),d.createElement("div",{className:"aa-GradientBottom"})),h=m.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:v,state:p,sections:m,elements:h},d),{},{components:f,html:a},o),c.panel)}else l.contains(c.panel)&&l.removeChild(c.panel)}(r,t)}function D(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c();var t=O.value.renderer,n=t.components,r=u(t,In);y.current=Ge(r,O.value.core,{components:Ke(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),m(),l(),P.value.refresh().then((function(){C(j.current)}))}function k(e){requestAnimationFrame((function(){var t=O.value.core.environment.document.body.contains(E.value.detachedOverlay);e!==t&&(e?(O.value.core.environment.document.body.appendChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.add("aa-Detached"),E.value.input.focus()):(O.value.core.environment.document.body.removeChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.remove("aa-Detached"),P.value.setQuery(""),P.value.refresh()))}))}return a((function(){var e=P.value.getEnvironmentProps({formElement:E.value.form,panelElement:E.value.panel,inputElement:E.value.input});return tt(O.value.core.environment,e),function(){tt(O.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),a((function(){var e=_.value?O.value.core.environment.document.body:O.value.renderer.panelContainer,t=_.value?E.value.detachedOverlay:E.value.panel;return _.value&&j.current.isOpen&&k(!0),C(j.current),function(){e.contains(t)&&e.removeChild(t)}})),a((function(){var e=O.value.renderer.container;return e.appendChild(E.value.root),function(){e.removeChild(E.value.root)}})),a((function(){var e=f((function(e){C(e.state)}),0);return b.current=function(t){var n=t.state,r=t.prevState;(_.value&&r.isOpen!==n.isOpen&&k(n.isOpen),_.value||!n.isOpen||r.isOpen||A(),n.query!==r.query)&&O.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){b.current=void 0}})),a((function(){var e=f((function(){var e=_.value;_.value=O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches,e!==_.value?D({}):requestAnimationFrame(A)}),20);return O.value.core.environment.addEventListener("resize",e),function(){O.value.core.environment.removeEventListener("resize",e)}})),a((function(){if(!_.value)return function(){};function e(e){E.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=O.value.core.environment.matchMedia(getComputedStyle(O.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),a((function(){return requestAnimationFrame(A),function(){}})),n(n({},S),{},{update:D,destroy:function(){c()}})},e.getAlgoliaFacets=function(e){var t=En({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=An,Object.defineProperty(e,"__esModule",{value:!0})}));
|
3 |
+
|
_proc/_docs/site_libs/quarto-search/fuse.min.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)
|
3 |
+
*
|
4 |
+
* Copyright (c) 2022 Kiro Risk (http://kiro.me)
|
5 |
+
* All Rights Reserved. Apache Software License 2.0
|
6 |
+
*
|
7 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
8 |
+
*/
|
9 |
+
var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){c(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&u(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function f(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){return Array.isArray?Array.isArray(e):"[object Array]"===b(e)}function g(e){return"string"==typeof e}function y(e){return"number"==typeof e}function p(e){return!0===e||!1===e||function(e){return m(e)&&null!==e}(e)&&"[object Boolean]"==b(e)}function m(e){return"object"===n(e)}function k(e){return null!=e}function M(e){return!e.trim().length}function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var x=function(e){return"Invalid value for key ".concat(e)},w=function(e){return"Pattern length exceeds max of ".concat(e,".")},L=Object.prototype.hasOwnProperty,S=function(){function e(t){var n=this;r(this,e),this._keys=[],this._keyMap={};var i=0;t.forEach((function(e){var t=_(e);i+=t.weight,n._keys.push(t),n._keyMap[t.id]=t,i+=t.weight})),this._keys.forEach((function(e){e.weight/=i}))}return o(e,[{key:"get",value:function(e){return this._keyMap[e]}},{key:"keys",value:function(){return this._keys}},{key:"toJSON",value:function(){return JSON.stringify(this._keys)}}]),e}();function _(e){var t=null,n=null,r=null,i=1,o=null;if(g(e)||v(e))r=e,t=O(e),n=j(e);else{if(!L.call(e,"name"))throw new Error(function(e){return"Missing ".concat(e," property in key")}("name"));var c=e.name;if(r=c,L.call(e,"weight")&&(i=e.weight)<=0)throw new Error(function(e){return"Property 'weight' in key '".concat(e,"' must be a positive integer")}(c));t=O(c),n=j(c),o=e.getFn}return{path:t,id:n,weight:i,src:r,getFn:o}}function O(e){return v(e)?e:e.split(".")}function j(e){return v(e)?e.join("."):e}var A={useExtendedSearch:!1,getFn:function(e,t){var n=[],r=!1;return function e(t,i,o){if(k(t))if(i[o]){var c=t[i[o]];if(!k(c))return;if(o===i.length-1&&(g(c)||y(c)||p(c)))n.push(function(e){return null==e?"":function(e){if("string"==typeof e)return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(e)}(c));else if(v(c)){r=!0;for(var a=0,s=c.length;a<s;a+=1)e(c[a],i,o+1)}else i.length&&e(c,i,o+1)}else n.push(t)}(e,g(t)?t.split("."):t,0),r?n:n[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},I=t(t(t(t({},{isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:function(e,t){return e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1}}),{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1}),{location:0,threshold:.6,distance:100}),A),C=/[^ ]+/g;function E(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(C).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}var $=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?I.getFn:n,o=t.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o;r(this,e),this.norm=E(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t<n;t+=1)this.records[t].i-=1}},{key:"getValueForItemAtKeyId",value:function(e,t){return e[this._keysMap[t]]}},{key:"size",value:function(){return this.records.length}},{key:"_addString",value:function(e,t){if(k(e)&&!M(e)){var n={v:e,i:t,n:this.norm.get(e)};this.records.push(n)}}},{key:"_addObject",value:function(e,t){var n=this,r={i:t,$:{}};this.keys.forEach((function(t,i){var o=t.getFn?t.getFn(e):n.getFn(e,t.path);if(k(o))if(v(o))!function(){for(var e=[],t=[{nestedArrIndex:-1,value:o}];t.length;){var c=t.pop(),a=c.nestedArrIndex,s=c.value;if(k(s))if(g(s)&&!M(s)){var u={v:s,i:a,n:n.norm.get(s)};e.push(u)}else v(s)&&s.forEach((function(e,n){t.push({nestedArrIndex:n,value:e})}))}r.$[i]=e}();else if(g(o)&&!M(o)){var c={v:o,n:n.norm.get(o)};r.$[i]=c}})),this.records.push(r)}},{key:"toJSON",value:function(){return{keys:this.keys,records:this.records}}}]),e}();function F(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?I.getFn:r,o=n.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o,a=new $({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(_)),a.setSources(t),a.create(),a}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?I.distance:s,h=t.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}function N(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o<c;o+=1){var a=e[o];a&&-1===r?r=o:a||-1===r||((i=o-1)-r+1>=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}var P=32;function W(e){for(var t={},n=0,r=e.length;n<r;n+=1){var i=e.charAt(n);t[i]=(t[i]||0)|1<<r-n-1}return t}var T=function(){function e(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?I.location:o,a=i.threshold,s=void 0===a?I.threshold:a,u=i.distance,h=void 0===u?I.distance:u,l=i.includeMatches,f=void 0===l?I.includeMatches:l,d=i.findAllMatches,v=void 0===d?I.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?I.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?I.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?I.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},x=this.pattern.length;if(x>P){for(var w=0,L=x%P,S=x-L;w<S;)b(this.pattern.substr(w,P),w),w+=P;if(L){var _=x-P;b(this.pattern.substr(_),_)}}else b(this.pattern,0)}}return o(e,[{key:"searchIn",value:function(e){var t=this.options,n=t.isCaseSensitive,r=t.includeMatches;if(n||(e=e.toLowerCase()),this.pattern===e){var i={isMatch:!0,score:0};return r&&(i.indices=[[0,e.length-1]]),i}var o=this.options,c=o.location,a=o.distance,s=o.threshold,u=o.findAllMatches,h=o.minMatchCharLength,l=o.ignoreLocation,d=[],v=0,g=!1;this.chunks.forEach((function(t){var n=t.pattern,i=t.alphabet,o=t.startIndex,y=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?I.location:i,c=r.distance,a=void 0===c?I.distance:c,s=r.threshold,u=void 0===s?I.threshold:s,h=r.findAllMatches,l=void 0===h?I.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?I.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?I.includeMatches:v,y=r.ignoreLocation,p=void 0===y?I.ignoreLocation:y;if(t.length>P)throw new Error(w(P));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,L=b,S=d>1||g,_=S?Array(M):[];(m=e.indexOf(t,L))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),L=m+k,S)for(var j=0;j<k;)_[m+j]=1,j+=1}L=-1;for(var A=[],C=1,E=k+M,$=1<<k-1,F=0;F<k;F+=1){for(var W=0,T=E;W<T;)R(t,{errors:F,currentLocation:b+T,expectedLocation:b,distance:a,ignoreLocation:p})<=x?W=T:E=T,T=Math.floor((E-W)/2+W);E=T;var z=Math.max(1,b-T+1),D=l?M:Math.min(b+T,M)+k,K=Array(D+2);K[D+1]=(1<<F)-1;for(var q=D;q>=z;q-=1){var B=q-1,J=n[e.charAt(B)];if(S&&(_[B]=+!!J),K[q]=(K[q+1]<<1|1)&J,F&&(K[q]|=(A[q+1]|A[q])<<1|1|A[q+1]),K[q]&$&&(C=R(t,{errors:F,currentLocation:B,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(L=B)<=b)break;z=Math.max(1,2*b-L)}}if(R(t,{errors:F+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;A=K}var U={isMatch:L>=0,score:Math.max(.001,C)};if(S){var V=N(_,d);V.length?g&&(U.indices=V):U.isMatch=!1}return U}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:l}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(f(d),f(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),z=function(){function e(t){r(this,e),this.pattern=t}return o(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return D(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return D(e,this.singleRegex)}}]),e}();function D(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),n}(z),q=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),n}(z),B=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),n}(z),J=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),n}(z),U=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),n}(z),V=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),n}(z),G=function(e){a(n,e);var t=l(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?I.location:c,s=o.threshold,u=void 0===s?I.threshold:s,h=o.distance,l=void 0===h?I.distance:h,f=o.includeMatches,d=void 0===f?I.includeMatches:f,v=o.findAllMatches,g=void 0===v?I.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?I.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?I.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?I.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(z),H=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(z),Q=[K,H,B,J,V,U,q,G],X=Q.length,Y=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Y).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i<o;i+=1){for(var c=n[i],a=!1,s=-1;!a&&++s<X;){var u=Q[s],h=u.isMultiMatch(c);h&&(r.push(new u(h,t)),a=!0)}if(!a)for(s=-1;++s<X;){var l=Q[s],f=l.isSingleMatch(c);if(f){r.push(new l(f,t));break}}}return r}))}var ee=new Set([G.type,H.type]),te=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?I.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?I.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?I.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?I.findAllMatches:f,v=n.location,g=void 0===v?I.location:v,y=n.threshold,p=void 0===y?I.threshold:y,m=n.distance,k=void 0===m?I.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=Z(this.pattern,this.options)}return o(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a<s;a+=1){var u=t[a];o.length=0,i=0;for(var h=0,l=u.length;h<l;h+=1){var d=u[h],v=d.search(e),g=v.isMatch,y=v.indices,p=v.score;if(!g){c=0,i=0,o.length=0;break}if(i+=1,c+=p,r){var m=d.constructor.type;ee.has(m)?o=[].concat(f(o),f(y)):o.push(y)}}if(i){var k={isMatch:!0,score:c/i};return r&&(k.indices=o),k}}return{isMatch:!1,score:1}}}],[{key:"condition",value:function(e,t){return t.useExtendedSearch}}]),e}(),ne=[];function re(e,t){for(var n=0,r=ne.length;n<r;n+=1){var i=ne[n];if(i.condition(e,t))return new i(e,t)}return new T(e,t)}var ie="$and",oe="$or",ce="$path",ae="$val",se=function(e){return!(!e[ie]&&!e[oe])},ue=function(e){return!!e[ce]},he=function(e){return!v(e)&&m(e)&&!se(e)},le=function(e){return c({},ie,Object.keys(e).map((function(t){return c({},t,e[t])})))};function fe(e,t){var n=t.ignoreFieldNorm,r=void 0===n?I.ignoreFieldNorm:n;e.forEach((function(e){var t=1;e.matches.forEach((function(e){var n=e.key,i=e.norm,o=e.score,c=n?n.weight:null;t*=Math.pow(0===o&&c?Number.EPSILON:o,(c||1)*(r?1:i))})),e.score=t}))}function de(e,t){var n=e.matches;t.matches=[],k(n)&&n.forEach((function(e){if(k(e.indices)&&e.indices.length){var n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?I.includeMatches:r,o=n.includeScore,c=void 0===o?I.includeScore:o,a=[];return i&&a.push(de),c&&a.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ye=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},I),i),this.options.useExtendedSearch,this._keyStore=new S(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof $))throw new Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n<r;n+=1){var i=this._docs[n];e(i,n)&&(this.removeAt(n),n-=1,r-=1,t.push(i))}return t}},{key:"removeAt",value:function(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}},{key:"getIndex",value:function(){return this._myIndex}},{key:"search",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return fe(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),ge(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=re(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n,i=function e(n){var i=Object.keys(n),o=ue(n);if(!o&&i.length>1&&!se(n))return e(le(n));if(he(n)){var c=o?n[ce]:i[0],a=o?n[ae]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return r&&(s.searcher=re(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return se(e)||(e=le(e)),i(e)}(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u<h;u+=1){var l=e(n.children[u],r,i);if(l.length)s.push.apply(s,f(l));else if(n.operator===ie)return[]}return s},i=this._myIndex.records,o={},c=[];return i.forEach((function(e){var t=e.$,i=e.i;if(k(t)){var a=r(n,t,i);a.length&&(o[i]||(o[i]={idx:i,item:t,matches:[]},c.push(o[i])),a.forEach((function(e){var t,n=e.matches;(t=o[i].matches).push.apply(t,f(n))})))}})),c}},{key:"_searchObjectList",value:function(e){var t=this,n=re(e,this.options),r=this._myIndex,i=r.keys,o=r.records,c=[];return o.forEach((function(e){var r=e.$,o=e.i;if(k(r)){var a=[];i.forEach((function(e,i){a.push.apply(a,f(t._findMatches({key:e,value:r[i],searcher:n})))})),a.length&&c.push({idx:o,item:r,matches:a})}})),c}},{key:"_findMatches",value:function(e){var t=e.key,n=e.value,r=e.searcher;if(!k(n))return[];var i=[];if(v(n))n.forEach((function(e){var n=e.v,o=e.i,c=e.n;if(k(n)){var a=r.searchIn(n),s=a.isMatch,u=a.score,h=a.indices;s&&i.push({score:u,key:t,value:n,idx:o,norm:c,indices:h})}}));else{var o=n.v,c=n.n,a=r.searchIn(o),s=a.isMatch,u=a.score,h=a.indices;s&&i.push({score:u,key:t,value:o,norm:c,indices:h})}return i}}]),e}();return ye.version="6.6.2",ye.createIndex=F,ye.parseIndex=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?I.getFn:n,i=t.fieldNormWeight,o=void 0===i?I.fieldNormWeight:i,c=e.keys,a=e.records,s=new $({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ye.config=I,function(){ne.push.apply(ne,arguments)}(te),ye},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t();
|
_proc/_docs/site_libs/quarto-search/quarto-search.js
ADDED
@@ -0,0 +1,1140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const kQueryArg = "q";
|
2 |
+
const kResultsArg = "show-results";
|
3 |
+
|
4 |
+
// If items don't provide a URL, then both the navigator and the onSelect
|
5 |
+
// function aren't called (and therefore, the default implementation is used)
|
6 |
+
//
|
7 |
+
// We're using this sentinel URL to signal to those handlers that this
|
8 |
+
// item is a more item (along with the type) and can be handled appropriately
|
9 |
+
const kItemTypeMoreHref = "0767FDFD-0422-4E5A-BC8A-3BE11E5BBA05";
|
10 |
+
|
11 |
+
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
12 |
+
// Ensure that search is available on this page. If it isn't,
|
13 |
+
// should return early and not do anything
|
14 |
+
var searchEl = window.document.getElementById("quarto-search");
|
15 |
+
if (!searchEl) return;
|
16 |
+
|
17 |
+
const { autocomplete } = window["@algolia/autocomplete-js"];
|
18 |
+
|
19 |
+
let quartoSearchOptions = {};
|
20 |
+
let language = {};
|
21 |
+
const searchOptionEl = window.document.getElementById(
|
22 |
+
"quarto-search-options"
|
23 |
+
);
|
24 |
+
if (searchOptionEl) {
|
25 |
+
const jsonStr = searchOptionEl.textContent;
|
26 |
+
quartoSearchOptions = JSON.parse(jsonStr);
|
27 |
+
language = quartoSearchOptions.language;
|
28 |
+
}
|
29 |
+
|
30 |
+
// note the search mode
|
31 |
+
if (quartoSearchOptions.type === "overlay") {
|
32 |
+
searchEl.classList.add("type-overlay");
|
33 |
+
} else {
|
34 |
+
searchEl.classList.add("type-textbox");
|
35 |
+
}
|
36 |
+
|
37 |
+
// Used to determine highlighting behavior for this page
|
38 |
+
// A `q` query param is expected when the user follows a search
|
39 |
+
// to this page
|
40 |
+
const currentUrl = new URL(window.location);
|
41 |
+
const query = currentUrl.searchParams.get(kQueryArg);
|
42 |
+
const showSearchResults = currentUrl.searchParams.get(kResultsArg);
|
43 |
+
const mainEl = window.document.querySelector("main");
|
44 |
+
|
45 |
+
// highlight matches on the page
|
46 |
+
if (query !== null && mainEl) {
|
47 |
+
// perform any highlighting
|
48 |
+
highlight(escapeRegExp(query), mainEl);
|
49 |
+
|
50 |
+
// fix up the URL to remove the q query param
|
51 |
+
const replacementUrl = new URL(window.location);
|
52 |
+
replacementUrl.searchParams.delete(kQueryArg);
|
53 |
+
window.history.replaceState({}, "", replacementUrl);
|
54 |
+
}
|
55 |
+
|
56 |
+
// function to clear highlighting on the page when the search query changes
|
57 |
+
// (e.g. if the user edits the query or clears it)
|
58 |
+
let highlighting = true;
|
59 |
+
const resetHighlighting = (searchTerm) => {
|
60 |
+
if (mainEl && highlighting && query !== null && searchTerm !== query) {
|
61 |
+
clearHighlight(query, mainEl);
|
62 |
+
highlighting = false;
|
63 |
+
}
|
64 |
+
};
|
65 |
+
|
66 |
+
// Clear search highlighting when the user scrolls sufficiently
|
67 |
+
const resetFn = () => {
|
68 |
+
resetHighlighting("");
|
69 |
+
window.removeEventListener("quarto-hrChanged", resetFn);
|
70 |
+
window.removeEventListener("quarto-sectionChanged", resetFn);
|
71 |
+
};
|
72 |
+
|
73 |
+
// Register this event after the initial scrolling and settling of events
|
74 |
+
// on the page
|
75 |
+
window.addEventListener("quarto-hrChanged", resetFn);
|
76 |
+
window.addEventListener("quarto-sectionChanged", resetFn);
|
77 |
+
|
78 |
+
// Responsively switch to overlay mode if the search is present on the navbar
|
79 |
+
// Note that switching the sidebar to overlay mode requires more coordinate (not just
|
80 |
+
// the media query since we generate different HTML for sidebar overlays than we do
|
81 |
+
// for sidebar input UI)
|
82 |
+
const detachedMediaQuery =
|
83 |
+
quartoSearchOptions.type === "overlay" ? "all" : "(max-width: 991px)";
|
84 |
+
|
85 |
+
// If configured, include the analytics client to send insights
|
86 |
+
const plugins = configurePlugins(quartoSearchOptions);
|
87 |
+
|
88 |
+
let lastState = null;
|
89 |
+
const { setIsOpen, setQuery, setCollections } = autocomplete({
|
90 |
+
container: searchEl,
|
91 |
+
detachedMediaQuery: detachedMediaQuery,
|
92 |
+
defaultActiveItemId: 0,
|
93 |
+
panelContainer: "#quarto-search-results",
|
94 |
+
panelPlacement: quartoSearchOptions["panel-placement"],
|
95 |
+
debug: false,
|
96 |
+
openOnFocus: true,
|
97 |
+
plugins,
|
98 |
+
classNames: {
|
99 |
+
form: "d-flex",
|
100 |
+
},
|
101 |
+
translations: {
|
102 |
+
clearButtonTitle: language["search-clear-button-title"],
|
103 |
+
detachedCancelButtonText: language["search-detached-cancel-button-title"],
|
104 |
+
submitButtonTitle: language["search-submit-button-title"],
|
105 |
+
},
|
106 |
+
initialState: {
|
107 |
+
query,
|
108 |
+
},
|
109 |
+
getItemUrl({ item }) {
|
110 |
+
return item.href;
|
111 |
+
},
|
112 |
+
onStateChange({ state }) {
|
113 |
+
// Perhaps reset highlighting
|
114 |
+
resetHighlighting(state.query);
|
115 |
+
|
116 |
+
// If the panel just opened, ensure the panel is positioned properly
|
117 |
+
if (state.isOpen) {
|
118 |
+
if (lastState && !lastState.isOpen) {
|
119 |
+
setTimeout(() => {
|
120 |
+
positionPanel(quartoSearchOptions["panel-placement"]);
|
121 |
+
}, 150);
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
// Perhaps show the copy link
|
126 |
+
showCopyLink(state.query, quartoSearchOptions);
|
127 |
+
|
128 |
+
lastState = state;
|
129 |
+
},
|
130 |
+
reshape({ sources, state }) {
|
131 |
+
return sources.map((source) => {
|
132 |
+
try {
|
133 |
+
const items = source.getItems();
|
134 |
+
|
135 |
+
// Validate the items
|
136 |
+
validateItems(items);
|
137 |
+
|
138 |
+
// group the items by document
|
139 |
+
const groupedItems = new Map();
|
140 |
+
items.forEach((item) => {
|
141 |
+
const hrefParts = item.href.split("#");
|
142 |
+
const baseHref = hrefParts[0];
|
143 |
+
const isDocumentItem = hrefParts.length === 1;
|
144 |
+
|
145 |
+
const items = groupedItems.get(baseHref);
|
146 |
+
if (!items) {
|
147 |
+
groupedItems.set(baseHref, [item]);
|
148 |
+
} else {
|
149 |
+
// If the href for this item matches the document
|
150 |
+
// exactly, place this item first as it is the item that represents
|
151 |
+
// the document itself
|
152 |
+
if (isDocumentItem) {
|
153 |
+
items.unshift(item);
|
154 |
+
} else {
|
155 |
+
items.push(item);
|
156 |
+
}
|
157 |
+
groupedItems.set(baseHref, items);
|
158 |
+
}
|
159 |
+
});
|
160 |
+
|
161 |
+
const reshapedItems = [];
|
162 |
+
let count = 1;
|
163 |
+
for (const [_key, value] of groupedItems) {
|
164 |
+
const firstItem = value[0];
|
165 |
+
reshapedItems.push({
|
166 |
+
...firstItem,
|
167 |
+
type: kItemTypeDoc,
|
168 |
+
});
|
169 |
+
|
170 |
+
const collapseMatches = quartoSearchOptions["collapse-after"];
|
171 |
+
const collapseCount =
|
172 |
+
typeof collapseMatches === "number" ? collapseMatches : 1;
|
173 |
+
|
174 |
+
if (value.length > 1) {
|
175 |
+
const target = `search-more-${count}`;
|
176 |
+
const isExpanded =
|
177 |
+
state.context.expanded &&
|
178 |
+
state.context.expanded.includes(target);
|
179 |
+
|
180 |
+
const remainingCount = value.length - collapseCount;
|
181 |
+
|
182 |
+
for (let i = 1; i < value.length; i++) {
|
183 |
+
if (collapseMatches && i === collapseCount) {
|
184 |
+
reshapedItems.push({
|
185 |
+
target,
|
186 |
+
title: isExpanded
|
187 |
+
? language["search-hide-matches-text"]
|
188 |
+
: remainingCount === 1
|
189 |
+
? `${remainingCount} ${language["search-more-match-text"]}`
|
190 |
+
: `${remainingCount} ${language["search-more-matches-text"]}`,
|
191 |
+
type: kItemTypeMore,
|
192 |
+
href: kItemTypeMoreHref,
|
193 |
+
});
|
194 |
+
}
|
195 |
+
|
196 |
+
if (isExpanded || !collapseMatches || i < collapseCount) {
|
197 |
+
reshapedItems.push({
|
198 |
+
...value[i],
|
199 |
+
type: kItemTypeItem,
|
200 |
+
target,
|
201 |
+
});
|
202 |
+
}
|
203 |
+
}
|
204 |
+
}
|
205 |
+
count += 1;
|
206 |
+
}
|
207 |
+
|
208 |
+
return {
|
209 |
+
...source,
|
210 |
+
getItems() {
|
211 |
+
return reshapedItems;
|
212 |
+
},
|
213 |
+
};
|
214 |
+
} catch (error) {
|
215 |
+
// Some form of error occurred
|
216 |
+
return {
|
217 |
+
...source,
|
218 |
+
getItems() {
|
219 |
+
return [
|
220 |
+
{
|
221 |
+
title: error.name || "An Error Occurred While Searching",
|
222 |
+
text:
|
223 |
+
error.message ||
|
224 |
+
"An unknown error occurred while attempting to perform the requested search.",
|
225 |
+
type: kItemTypeError,
|
226 |
+
},
|
227 |
+
];
|
228 |
+
},
|
229 |
+
};
|
230 |
+
}
|
231 |
+
});
|
232 |
+
},
|
233 |
+
navigator: {
|
234 |
+
navigate({ itemUrl }) {
|
235 |
+
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
|
236 |
+
window.location.assign(itemUrl);
|
237 |
+
}
|
238 |
+
},
|
239 |
+
navigateNewTab({ itemUrl }) {
|
240 |
+
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
|
241 |
+
const windowReference = window.open(itemUrl, "_blank", "noopener");
|
242 |
+
if (windowReference) {
|
243 |
+
windowReference.focus();
|
244 |
+
}
|
245 |
+
}
|
246 |
+
},
|
247 |
+
navigateNewWindow({ itemUrl }) {
|
248 |
+
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
|
249 |
+
window.open(itemUrl, "_blank", "noopener");
|
250 |
+
}
|
251 |
+
},
|
252 |
+
},
|
253 |
+
getSources({ state, setContext, setActiveItemId, refresh }) {
|
254 |
+
return [
|
255 |
+
{
|
256 |
+
sourceId: "documents",
|
257 |
+
getItemUrl({ item }) {
|
258 |
+
if (item.href) {
|
259 |
+
return offsetURL(item.href);
|
260 |
+
} else {
|
261 |
+
return undefined;
|
262 |
+
}
|
263 |
+
},
|
264 |
+
onSelect({
|
265 |
+
item,
|
266 |
+
state,
|
267 |
+
setContext,
|
268 |
+
setIsOpen,
|
269 |
+
setActiveItemId,
|
270 |
+
refresh,
|
271 |
+
}) {
|
272 |
+
if (item.type === kItemTypeMore) {
|
273 |
+
toggleExpanded(item, state, setContext, setActiveItemId, refresh);
|
274 |
+
|
275 |
+
// Toggle more
|
276 |
+
setIsOpen(true);
|
277 |
+
}
|
278 |
+
},
|
279 |
+
getItems({ query }) {
|
280 |
+
if (query === null || query === "") {
|
281 |
+
return [];
|
282 |
+
}
|
283 |
+
|
284 |
+
const limit = quartoSearchOptions.limit;
|
285 |
+
if (quartoSearchOptions.algolia) {
|
286 |
+
return algoliaSearch(query, limit, quartoSearchOptions.algolia);
|
287 |
+
} else {
|
288 |
+
// Fuse search options
|
289 |
+
const fuseSearchOptions = {
|
290 |
+
isCaseSensitive: false,
|
291 |
+
shouldSort: true,
|
292 |
+
minMatchCharLength: 2,
|
293 |
+
limit: limit,
|
294 |
+
};
|
295 |
+
|
296 |
+
return readSearchData().then(function (fuse) {
|
297 |
+
return fuseSearch(query, fuse, fuseSearchOptions);
|
298 |
+
});
|
299 |
+
}
|
300 |
+
},
|
301 |
+
templates: {
|
302 |
+
noResults({ createElement }) {
|
303 |
+
const hasQuery = lastState.query;
|
304 |
+
|
305 |
+
return createElement(
|
306 |
+
"div",
|
307 |
+
{
|
308 |
+
class: `quarto-search-no-results${
|
309 |
+
hasQuery ? "" : " no-query"
|
310 |
+
}`,
|
311 |
+
},
|
312 |
+
language["search-no-results-text"]
|
313 |
+
);
|
314 |
+
},
|
315 |
+
header({ items, createElement }) {
|
316 |
+
// count the documents
|
317 |
+
const count = items.filter((item) => {
|
318 |
+
return item.type === kItemTypeDoc;
|
319 |
+
}).length;
|
320 |
+
|
321 |
+
if (count > 0) {
|
322 |
+
return createElement(
|
323 |
+
"div",
|
324 |
+
{ class: "search-result-header" },
|
325 |
+
`${count} ${language["search-matching-documents-text"]}`
|
326 |
+
);
|
327 |
+
} else {
|
328 |
+
return createElement(
|
329 |
+
"div",
|
330 |
+
{ class: "search-result-header-no-results" },
|
331 |
+
``
|
332 |
+
);
|
333 |
+
}
|
334 |
+
},
|
335 |
+
footer({ _items, createElement }) {
|
336 |
+
if (
|
337 |
+
quartoSearchOptions.algolia &&
|
338 |
+
quartoSearchOptions.algolia["show-logo"]
|
339 |
+
) {
|
340 |
+
const libDir = quartoSearchOptions.algolia["libDir"];
|
341 |
+
const logo = createElement("img", {
|
342 |
+
src: offsetURL(
|
343 |
+
`${libDir}/quarto-search/search-by-algolia.svg`
|
344 |
+
),
|
345 |
+
class: "algolia-search-logo",
|
346 |
+
});
|
347 |
+
return createElement(
|
348 |
+
"a",
|
349 |
+
{ href: "http://www.algolia.com/" },
|
350 |
+
logo
|
351 |
+
);
|
352 |
+
}
|
353 |
+
},
|
354 |
+
|
355 |
+
item({ item, createElement }) {
|
356 |
+
return renderItem(
|
357 |
+
item,
|
358 |
+
createElement,
|
359 |
+
state,
|
360 |
+
setActiveItemId,
|
361 |
+
setContext,
|
362 |
+
refresh
|
363 |
+
);
|
364 |
+
},
|
365 |
+
},
|
366 |
+
},
|
367 |
+
];
|
368 |
+
},
|
369 |
+
});
|
370 |
+
|
371 |
+
window.quartoOpenSearch = () => {
|
372 |
+
setIsOpen(false);
|
373 |
+
setIsOpen(true);
|
374 |
+
focusSearchInput();
|
375 |
+
};
|
376 |
+
|
377 |
+
// Remove the labeleledby attribute since it is pointing
|
378 |
+
// to a non-existent label
|
379 |
+
if (quartoSearchOptions.type === "overlay") {
|
380 |
+
const inputEl = window.document.querySelector(
|
381 |
+
"#quarto-search .aa-Autocomplete"
|
382 |
+
);
|
383 |
+
if (inputEl) {
|
384 |
+
inputEl.removeAttribute("aria-labelledby");
|
385 |
+
}
|
386 |
+
}
|
387 |
+
|
388 |
+
// If the main document scrolls dismiss the search results
|
389 |
+
// (otherwise, since they're floating in the document they can scroll with the document)
|
390 |
+
window.document.body.onscroll = () => {
|
391 |
+
setIsOpen(false);
|
392 |
+
};
|
393 |
+
|
394 |
+
if (showSearchResults) {
|
395 |
+
setIsOpen(true);
|
396 |
+
focusSearchInput();
|
397 |
+
}
|
398 |
+
});
|
399 |
+
|
400 |
+
function configurePlugins(quartoSearchOptions) {
|
401 |
+
const autocompletePlugins = [];
|
402 |
+
const algoliaOptions = quartoSearchOptions.algolia;
|
403 |
+
if (
|
404 |
+
algoliaOptions &&
|
405 |
+
algoliaOptions["analytics-events"] &&
|
406 |
+
algoliaOptions["search-only-api-key"] &&
|
407 |
+
algoliaOptions["application-id"]
|
408 |
+
) {
|
409 |
+
const apiKey = algoliaOptions["search-only-api-key"];
|
410 |
+
const appId = algoliaOptions["application-id"];
|
411 |
+
|
412 |
+
// Aloglia insights may not be loaded because they require cookie consent
|
413 |
+
// Use deferred loading so events will start being recorded when/if consent
|
414 |
+
// is granted.
|
415 |
+
const algoliaInsightsDeferredPlugin = deferredLoadPlugin(() => {
|
416 |
+
if (
|
417 |
+
window.aa &&
|
418 |
+
window["@algolia/autocomplete-plugin-algolia-insights"]
|
419 |
+
) {
|
420 |
+
window.aa("init", {
|
421 |
+
appId,
|
422 |
+
apiKey,
|
423 |
+
useCookie: true,
|
424 |
+
});
|
425 |
+
|
426 |
+
const { createAlgoliaInsightsPlugin } =
|
427 |
+
window["@algolia/autocomplete-plugin-algolia-insights"];
|
428 |
+
// Register the insights client
|
429 |
+
const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({
|
430 |
+
insightsClient: window.aa,
|
431 |
+
onItemsChange({ insights, insightsEvents }) {
|
432 |
+
const events = insightsEvents.map((event) => {
|
433 |
+
const maxEvents = event.objectIDs.slice(0, 20);
|
434 |
+
return {
|
435 |
+
...event,
|
436 |
+
objectIDs: maxEvents,
|
437 |
+
};
|
438 |
+
});
|
439 |
+
|
440 |
+
insights.viewedObjectIDs(...events);
|
441 |
+
},
|
442 |
+
});
|
443 |
+
return algoliaInsightsPlugin;
|
444 |
+
}
|
445 |
+
});
|
446 |
+
|
447 |
+
// Add the plugin
|
448 |
+
autocompletePlugins.push(algoliaInsightsDeferredPlugin);
|
449 |
+
return autocompletePlugins;
|
450 |
+
}
|
451 |
+
}
|
452 |
+
|
453 |
+
// For plugins that may not load immediately, create a wrapper
|
454 |
+
// plugin and forward events and plugin data once the plugin
|
455 |
+
// is initialized. This is useful for cases like cookie consent
|
456 |
+
// which may prevent the analytics insights event plugin from initializing
|
457 |
+
// immediately.
|
458 |
+
function deferredLoadPlugin(createPlugin) {
|
459 |
+
let plugin = undefined;
|
460 |
+
let subscribeObj = undefined;
|
461 |
+
const wrappedPlugin = () => {
|
462 |
+
if (!plugin && subscribeObj) {
|
463 |
+
plugin = createPlugin();
|
464 |
+
if (plugin && plugin.subscribe) {
|
465 |
+
plugin.subscribe(subscribeObj);
|
466 |
+
}
|
467 |
+
}
|
468 |
+
return plugin;
|
469 |
+
};
|
470 |
+
|
471 |
+
return {
|
472 |
+
subscribe: (obj) => {
|
473 |
+
subscribeObj = obj;
|
474 |
+
},
|
475 |
+
onStateChange: (obj) => {
|
476 |
+
const plugin = wrappedPlugin();
|
477 |
+
if (plugin && plugin.onStateChange) {
|
478 |
+
plugin.onStateChange(obj);
|
479 |
+
}
|
480 |
+
},
|
481 |
+
onSubmit: (obj) => {
|
482 |
+
const plugin = wrappedPlugin();
|
483 |
+
if (plugin && plugin.onSubmit) {
|
484 |
+
plugin.onSubmit(obj);
|
485 |
+
}
|
486 |
+
},
|
487 |
+
onReset: (obj) => {
|
488 |
+
const plugin = wrappedPlugin();
|
489 |
+
if (plugin && plugin.onReset) {
|
490 |
+
plugin.onReset(obj);
|
491 |
+
}
|
492 |
+
},
|
493 |
+
getSources: (obj) => {
|
494 |
+
const plugin = wrappedPlugin();
|
495 |
+
if (plugin && plugin.getSources) {
|
496 |
+
return plugin.getSources(obj);
|
497 |
+
} else {
|
498 |
+
return Promise.resolve([]);
|
499 |
+
}
|
500 |
+
},
|
501 |
+
data: (obj) => {
|
502 |
+
const plugin = wrappedPlugin();
|
503 |
+
if (plugin && plugin.data) {
|
504 |
+
plugin.data(obj);
|
505 |
+
}
|
506 |
+
},
|
507 |
+
};
|
508 |
+
}
|
509 |
+
|
510 |
+
function validateItems(items) {
|
511 |
+
// Validate the first item
|
512 |
+
if (items.length > 0) {
|
513 |
+
const item = items[0];
|
514 |
+
const missingFields = [];
|
515 |
+
if (item.href == undefined) {
|
516 |
+
missingFields.push("href");
|
517 |
+
}
|
518 |
+
if (!item.title == undefined) {
|
519 |
+
missingFields.push("title");
|
520 |
+
}
|
521 |
+
if (!item.text == undefined) {
|
522 |
+
missingFields.push("text");
|
523 |
+
}
|
524 |
+
|
525 |
+
if (missingFields.length === 1) {
|
526 |
+
throw {
|
527 |
+
name: `Error: Search index is missing the <code>${missingFields[0]}</code> field.`,
|
528 |
+
message: `The items being returned for this search do not include all the required fields. Please ensure that your index items include the <code>${missingFields[0]}</code> field or use <code>index-fields</code> in your <code>_quarto.yml</code> file to specify the field names.`,
|
529 |
+
};
|
530 |
+
} else if (missingFields.length > 1) {
|
531 |
+
const missingFieldList = missingFields
|
532 |
+
.map((field) => {
|
533 |
+
return `<code>${field}</code>`;
|
534 |
+
})
|
535 |
+
.join(", ");
|
536 |
+
|
537 |
+
throw {
|
538 |
+
name: `Error: Search index is missing the following fields: ${missingFieldList}.`,
|
539 |
+
message: `The items being returned for this search do not include all the required fields. Please ensure that your index items includes the following fields: ${missingFieldList}, or use <code>index-fields</code> in your <code>_quarto.yml</code> file to specify the field names.`,
|
540 |
+
};
|
541 |
+
}
|
542 |
+
}
|
543 |
+
}
|
544 |
+
|
545 |
+
let lastQuery = null;
|
546 |
+
function showCopyLink(query, options) {
|
547 |
+
const language = options.language;
|
548 |
+
lastQuery = query;
|
549 |
+
// Insert share icon
|
550 |
+
const inputSuffixEl = window.document.body.querySelector(
|
551 |
+
".aa-Form .aa-InputWrapperSuffix"
|
552 |
+
);
|
553 |
+
|
554 |
+
if (inputSuffixEl) {
|
555 |
+
let copyButtonEl = window.document.body.querySelector(
|
556 |
+
".aa-Form .aa-InputWrapperSuffix .aa-CopyButton"
|
557 |
+
);
|
558 |
+
|
559 |
+
if (copyButtonEl === null) {
|
560 |
+
copyButtonEl = window.document.createElement("button");
|
561 |
+
copyButtonEl.setAttribute("class", "aa-CopyButton");
|
562 |
+
copyButtonEl.setAttribute("type", "button");
|
563 |
+
copyButtonEl.setAttribute("title", language["search-copy-link-title"]);
|
564 |
+
copyButtonEl.onmousedown = (e) => {
|
565 |
+
e.preventDefault();
|
566 |
+
e.stopPropagation();
|
567 |
+
};
|
568 |
+
|
569 |
+
const linkIcon = "bi-clipboard";
|
570 |
+
const checkIcon = "bi-check2";
|
571 |
+
|
572 |
+
const shareIconEl = window.document.createElement("i");
|
573 |
+
shareIconEl.setAttribute("class", `bi ${linkIcon}`);
|
574 |
+
copyButtonEl.appendChild(shareIconEl);
|
575 |
+
inputSuffixEl.prepend(copyButtonEl);
|
576 |
+
|
577 |
+
const clipboard = new window.ClipboardJS(".aa-CopyButton", {
|
578 |
+
text: function (_trigger) {
|
579 |
+
const copyUrl = new URL(window.location);
|
580 |
+
copyUrl.searchParams.set(kQueryArg, lastQuery);
|
581 |
+
copyUrl.searchParams.set(kResultsArg, "1");
|
582 |
+
return copyUrl.toString();
|
583 |
+
},
|
584 |
+
});
|
585 |
+
clipboard.on("success", function (e) {
|
586 |
+
// Focus the input
|
587 |
+
|
588 |
+
// button target
|
589 |
+
const button = e.trigger;
|
590 |
+
const icon = button.querySelector("i.bi");
|
591 |
+
|
592 |
+
// flash "checked"
|
593 |
+
icon.classList.add(checkIcon);
|
594 |
+
icon.classList.remove(linkIcon);
|
595 |
+
setTimeout(function () {
|
596 |
+
icon.classList.remove(checkIcon);
|
597 |
+
icon.classList.add(linkIcon);
|
598 |
+
}, 1000);
|
599 |
+
});
|
600 |
+
}
|
601 |
+
|
602 |
+
// If there is a query, show the link icon
|
603 |
+
if (copyButtonEl) {
|
604 |
+
if (lastQuery && options["copy-button"]) {
|
605 |
+
copyButtonEl.style.display = "flex";
|
606 |
+
} else {
|
607 |
+
copyButtonEl.style.display = "none";
|
608 |
+
}
|
609 |
+
}
|
610 |
+
}
|
611 |
+
}
|
612 |
+
|
613 |
+
/* Search Index Handling */
|
614 |
+
// create the index
|
615 |
+
var fuseIndex = undefined;
|
616 |
+
async function readSearchData() {
|
617 |
+
// Initialize the search index on demand
|
618 |
+
if (fuseIndex === undefined) {
|
619 |
+
// create fuse index
|
620 |
+
const options = {
|
621 |
+
keys: [
|
622 |
+
{ name: "title", weight: 20 },
|
623 |
+
{ name: "section", weight: 20 },
|
624 |
+
{ name: "text", weight: 10 },
|
625 |
+
],
|
626 |
+
ignoreLocation: true,
|
627 |
+
threshold: 0.1,
|
628 |
+
};
|
629 |
+
const fuse = new window.Fuse([], options);
|
630 |
+
|
631 |
+
// fetch the main search.json
|
632 |
+
const response = await fetch(offsetURL("search.json"));
|
633 |
+
if (response.status == 200) {
|
634 |
+
return response.json().then(function (searchDocs) {
|
635 |
+
searchDocs.forEach(function (searchDoc) {
|
636 |
+
fuse.add(searchDoc);
|
637 |
+
});
|
638 |
+
fuseIndex = fuse;
|
639 |
+
return fuseIndex;
|
640 |
+
});
|
641 |
+
} else {
|
642 |
+
return Promise.reject(
|
643 |
+
new Error(
|
644 |
+
"Unexpected status from search index request: " + response.status
|
645 |
+
)
|
646 |
+
);
|
647 |
+
}
|
648 |
+
}
|
649 |
+
return fuseIndex;
|
650 |
+
}
|
651 |
+
|
652 |
+
function inputElement() {
|
653 |
+
return window.document.body.querySelector(".aa-Form .aa-Input");
|
654 |
+
}
|
655 |
+
|
656 |
+
function focusSearchInput() {
|
657 |
+
setTimeout(() => {
|
658 |
+
const inputEl = inputElement();
|
659 |
+
if (inputEl) {
|
660 |
+
inputEl.focus();
|
661 |
+
}
|
662 |
+
}, 50);
|
663 |
+
}
|
664 |
+
|
665 |
+
/* Panels */
|
666 |
+
const kItemTypeDoc = "document";
|
667 |
+
const kItemTypeMore = "document-more";
|
668 |
+
const kItemTypeItem = "document-item";
|
669 |
+
const kItemTypeError = "error";
|
670 |
+
|
671 |
+
function renderItem(
|
672 |
+
item,
|
673 |
+
createElement,
|
674 |
+
state,
|
675 |
+
setActiveItemId,
|
676 |
+
setContext,
|
677 |
+
refresh
|
678 |
+
) {
|
679 |
+
switch (item.type) {
|
680 |
+
case kItemTypeDoc:
|
681 |
+
return createDocumentCard(
|
682 |
+
createElement,
|
683 |
+
"file-richtext",
|
684 |
+
item.title,
|
685 |
+
item.section,
|
686 |
+
item.text,
|
687 |
+
item.href
|
688 |
+
);
|
689 |
+
case kItemTypeMore:
|
690 |
+
return createMoreCard(
|
691 |
+
createElement,
|
692 |
+
item,
|
693 |
+
state,
|
694 |
+
setActiveItemId,
|
695 |
+
setContext,
|
696 |
+
refresh
|
697 |
+
);
|
698 |
+
case kItemTypeItem:
|
699 |
+
return createSectionCard(
|
700 |
+
createElement,
|
701 |
+
item.section,
|
702 |
+
item.text,
|
703 |
+
item.href
|
704 |
+
);
|
705 |
+
case kItemTypeError:
|
706 |
+
return createErrorCard(createElement, item.title, item.text);
|
707 |
+
default:
|
708 |
+
return undefined;
|
709 |
+
}
|
710 |
+
}
|
711 |
+
|
712 |
+
function createDocumentCard(createElement, icon, title, section, text, href) {
|
713 |
+
const iconEl = createElement("i", {
|
714 |
+
class: `bi bi-${icon} search-result-icon`,
|
715 |
+
});
|
716 |
+
const titleEl = createElement("p", { class: "search-result-title" }, title);
|
717 |
+
const titleContainerEl = createElement(
|
718 |
+
"div",
|
719 |
+
{ class: "search-result-title-container" },
|
720 |
+
[iconEl, titleEl]
|
721 |
+
);
|
722 |
+
|
723 |
+
const textEls = [];
|
724 |
+
if (section) {
|
725 |
+
const sectionEl = createElement(
|
726 |
+
"p",
|
727 |
+
{ class: "search-result-section" },
|
728 |
+
section
|
729 |
+
);
|
730 |
+
textEls.push(sectionEl);
|
731 |
+
}
|
732 |
+
const descEl = createElement("p", {
|
733 |
+
class: "search-result-text",
|
734 |
+
dangerouslySetInnerHTML: {
|
735 |
+
__html: text,
|
736 |
+
},
|
737 |
+
});
|
738 |
+
textEls.push(descEl);
|
739 |
+
|
740 |
+
const textContainerEl = createElement(
|
741 |
+
"div",
|
742 |
+
{ class: "search-result-text-container" },
|
743 |
+
textEls
|
744 |
+
);
|
745 |
+
|
746 |
+
const containerEl = createElement(
|
747 |
+
"div",
|
748 |
+
{
|
749 |
+
class: "search-result-container",
|
750 |
+
},
|
751 |
+
[titleContainerEl, textContainerEl]
|
752 |
+
);
|
753 |
+
|
754 |
+
const linkEl = createElement(
|
755 |
+
"a",
|
756 |
+
{
|
757 |
+
href: offsetURL(href),
|
758 |
+
class: "search-result-link",
|
759 |
+
},
|
760 |
+
containerEl
|
761 |
+
);
|
762 |
+
|
763 |
+
const classes = ["search-result-doc", "search-item"];
|
764 |
+
if (!section) {
|
765 |
+
classes.push("document-selectable");
|
766 |
+
}
|
767 |
+
|
768 |
+
return createElement(
|
769 |
+
"div",
|
770 |
+
{
|
771 |
+
class: classes.join(" "),
|
772 |
+
},
|
773 |
+
linkEl
|
774 |
+
);
|
775 |
+
}
|
776 |
+
|
777 |
+
function createMoreCard(
|
778 |
+
createElement,
|
779 |
+
item,
|
780 |
+
state,
|
781 |
+
setActiveItemId,
|
782 |
+
setContext,
|
783 |
+
refresh
|
784 |
+
) {
|
785 |
+
const moreCardEl = createElement(
|
786 |
+
"div",
|
787 |
+
{
|
788 |
+
class: "search-result-more search-item",
|
789 |
+
onClick: (e) => {
|
790 |
+
// Handle expanding the sections by adding the expanded
|
791 |
+
// section to the list of expanded sections
|
792 |
+
toggleExpanded(item, state, setContext, setActiveItemId, refresh);
|
793 |
+
e.stopPropagation();
|
794 |
+
},
|
795 |
+
},
|
796 |
+
item.title
|
797 |
+
);
|
798 |
+
|
799 |
+
return moreCardEl;
|
800 |
+
}
|
801 |
+
|
802 |
+
function toggleExpanded(item, state, setContext, setActiveItemId, refresh) {
|
803 |
+
const expanded = state.context.expanded || [];
|
804 |
+
if (expanded.includes(item.target)) {
|
805 |
+
setContext({
|
806 |
+
expanded: expanded.filter((target) => target !== item.target),
|
807 |
+
});
|
808 |
+
} else {
|
809 |
+
setContext({ expanded: [...expanded, item.target] });
|
810 |
+
}
|
811 |
+
|
812 |
+
refresh();
|
813 |
+
setActiveItemId(item.__autocomplete_id);
|
814 |
+
}
|
815 |
+
|
816 |
+
function createSectionCard(createElement, section, text, href) {
|
817 |
+
const sectionEl = createSection(createElement, section, text, href);
|
818 |
+
return createElement(
|
819 |
+
"div",
|
820 |
+
{
|
821 |
+
class: "search-result-doc-section search-item",
|
822 |
+
},
|
823 |
+
sectionEl
|
824 |
+
);
|
825 |
+
}
|
826 |
+
|
827 |
+
function createSection(createElement, title, text, href) {
|
828 |
+
const descEl = createElement("p", {
|
829 |
+
class: "search-result-text",
|
830 |
+
dangerouslySetInnerHTML: {
|
831 |
+
__html: text,
|
832 |
+
},
|
833 |
+
});
|
834 |
+
|
835 |
+
const titleEl = createElement("p", { class: "search-result-section" }, title);
|
836 |
+
const linkEl = createElement(
|
837 |
+
"a",
|
838 |
+
{
|
839 |
+
href: offsetURL(href),
|
840 |
+
class: "search-result-link",
|
841 |
+
},
|
842 |
+
[titleEl, descEl]
|
843 |
+
);
|
844 |
+
return linkEl;
|
845 |
+
}
|
846 |
+
|
847 |
+
function createErrorCard(createElement, title, text) {
|
848 |
+
const descEl = createElement("p", {
|
849 |
+
class: "search-error-text",
|
850 |
+
dangerouslySetInnerHTML: {
|
851 |
+
__html: text,
|
852 |
+
},
|
853 |
+
});
|
854 |
+
|
855 |
+
const titleEl = createElement("p", {
|
856 |
+
class: "search-error-title",
|
857 |
+
dangerouslySetInnerHTML: {
|
858 |
+
__html: `<i class="bi bi-exclamation-circle search-error-icon"></i> ${title}`,
|
859 |
+
},
|
860 |
+
});
|
861 |
+
const errorEl = createElement("div", { class: "search-error" }, [
|
862 |
+
titleEl,
|
863 |
+
descEl,
|
864 |
+
]);
|
865 |
+
return errorEl;
|
866 |
+
}
|
867 |
+
|
868 |
+
function positionPanel(pos) {
|
869 |
+
const panelEl = window.document.querySelector(
|
870 |
+
"#quarto-search-results .aa-Panel"
|
871 |
+
);
|
872 |
+
const inputEl = window.document.querySelector(
|
873 |
+
"#quarto-search .aa-Autocomplete"
|
874 |
+
);
|
875 |
+
|
876 |
+
if (panelEl && inputEl) {
|
877 |
+
panelEl.style.top = `${Math.round(panelEl.offsetTop)}px`;
|
878 |
+
if (pos === "start") {
|
879 |
+
panelEl.style.left = `${Math.round(inputEl.left)}px`;
|
880 |
+
} else {
|
881 |
+
panelEl.style.right = `${Math.round(inputEl.offsetRight)}px`;
|
882 |
+
}
|
883 |
+
}
|
884 |
+
}
|
885 |
+
|
886 |
+
/* Highlighting */
|
887 |
+
// highlighting functions
|
888 |
+
function highlightMatch(query, text) {
|
889 |
+
if (text) {
|
890 |
+
const start = text.toLowerCase().indexOf(query.toLowerCase());
|
891 |
+
if (start !== -1) {
|
892 |
+
const startMark = "<mark class='search-match'>";
|
893 |
+
const endMark = "</mark>";
|
894 |
+
|
895 |
+
const end = start + query.length;
|
896 |
+
text =
|
897 |
+
text.slice(0, start) +
|
898 |
+
startMark +
|
899 |
+
text.slice(start, end) +
|
900 |
+
endMark +
|
901 |
+
text.slice(end);
|
902 |
+
const startInfo = clipStart(text, start);
|
903 |
+
const endInfo = clipEnd(
|
904 |
+
text,
|
905 |
+
startInfo.position + startMark.length + endMark.length
|
906 |
+
);
|
907 |
+
text =
|
908 |
+
startInfo.prefix +
|
909 |
+
text.slice(startInfo.position, endInfo.position) +
|
910 |
+
endInfo.suffix;
|
911 |
+
|
912 |
+
return text;
|
913 |
+
} else {
|
914 |
+
return text;
|
915 |
+
}
|
916 |
+
} else {
|
917 |
+
return text;
|
918 |
+
}
|
919 |
+
}
|
920 |
+
|
921 |
+
function clipStart(text, pos) {
|
922 |
+
const clipStart = pos - 50;
|
923 |
+
if (clipStart < 0) {
|
924 |
+
// This will just return the start of the string
|
925 |
+
return {
|
926 |
+
position: 0,
|
927 |
+
prefix: "",
|
928 |
+
};
|
929 |
+
} else {
|
930 |
+
// We're clipping before the start of the string, walk backwards to the first space.
|
931 |
+
const spacePos = findSpace(text, pos, -1);
|
932 |
+
return {
|
933 |
+
position: spacePos.position,
|
934 |
+
prefix: "",
|
935 |
+
};
|
936 |
+
}
|
937 |
+
}
|
938 |
+
|
939 |
+
function clipEnd(text, pos) {
|
940 |
+
const clipEnd = pos + 200;
|
941 |
+
if (clipEnd > text.length) {
|
942 |
+
return {
|
943 |
+
position: text.length,
|
944 |
+
suffix: "",
|
945 |
+
};
|
946 |
+
} else {
|
947 |
+
const spacePos = findSpace(text, clipEnd, 1);
|
948 |
+
return {
|
949 |
+
position: spacePos.position,
|
950 |
+
suffix: spacePos.clipped ? "…" : "",
|
951 |
+
};
|
952 |
+
}
|
953 |
+
}
|
954 |
+
|
955 |
+
function findSpace(text, start, step) {
|
956 |
+
let stepPos = start;
|
957 |
+
while (stepPos > -1 && stepPos < text.length) {
|
958 |
+
const char = text[stepPos];
|
959 |
+
if (char === " " || char === "," || char === ":") {
|
960 |
+
return {
|
961 |
+
position: step === 1 ? stepPos : stepPos - step,
|
962 |
+
clipped: stepPos > 1 && stepPos < text.length,
|
963 |
+
};
|
964 |
+
}
|
965 |
+
stepPos = stepPos + step;
|
966 |
+
}
|
967 |
+
|
968 |
+
return {
|
969 |
+
position: stepPos - step,
|
970 |
+
clipped: false,
|
971 |
+
};
|
972 |
+
}
|
973 |
+
|
974 |
+
// removes highlighting as implemented by the mark tag
|
975 |
+
function clearHighlight(searchterm, el) {
|
976 |
+
const childNodes = el.childNodes;
|
977 |
+
for (let i = childNodes.length - 1; i >= 0; i--) {
|
978 |
+
const node = childNodes[i];
|
979 |
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
980 |
+
if (
|
981 |
+
node.tagName === "MARK" &&
|
982 |
+
node.innerText.toLowerCase() === searchterm.toLowerCase()
|
983 |
+
) {
|
984 |
+
el.replaceChild(document.createTextNode(node.innerText), node);
|
985 |
+
} else {
|
986 |
+
clearHighlight(searchterm, node);
|
987 |
+
}
|
988 |
+
}
|
989 |
+
}
|
990 |
+
}
|
991 |
+
|
992 |
+
function escapeRegExp(string) {
|
993 |
+
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
|
994 |
+
}
|
995 |
+
|
996 |
+
// highlight matches
|
997 |
+
function highlight(term, el) {
|
998 |
+
const termRegex = new RegExp(term, "ig");
|
999 |
+
const childNodes = el.childNodes;
|
1000 |
+
|
1001 |
+
// walk back to front avoid mutating elements in front of us
|
1002 |
+
for (let i = childNodes.length - 1; i >= 0; i--) {
|
1003 |
+
const node = childNodes[i];
|
1004 |
+
|
1005 |
+
if (node.nodeType === Node.TEXT_NODE) {
|
1006 |
+
// Search text nodes for text to highlight
|
1007 |
+
const text = node.nodeValue;
|
1008 |
+
|
1009 |
+
let startIndex = 0;
|
1010 |
+
let matchIndex = text.search(termRegex);
|
1011 |
+
if (matchIndex > -1) {
|
1012 |
+
const markFragment = document.createDocumentFragment();
|
1013 |
+
while (matchIndex > -1) {
|
1014 |
+
const prefix = text.slice(startIndex, matchIndex);
|
1015 |
+
markFragment.appendChild(document.createTextNode(prefix));
|
1016 |
+
|
1017 |
+
const mark = document.createElement("mark");
|
1018 |
+
mark.appendChild(
|
1019 |
+
document.createTextNode(
|
1020 |
+
text.slice(matchIndex, matchIndex + term.length)
|
1021 |
+
)
|
1022 |
+
);
|
1023 |
+
markFragment.appendChild(mark);
|
1024 |
+
|
1025 |
+
startIndex = matchIndex + term.length;
|
1026 |
+
matchIndex = text.slice(startIndex).search(new RegExp(term, "ig"));
|
1027 |
+
if (matchIndex > -1) {
|
1028 |
+
matchIndex = startIndex + matchIndex;
|
1029 |
+
}
|
1030 |
+
}
|
1031 |
+
if (startIndex < text.length) {
|
1032 |
+
markFragment.appendChild(
|
1033 |
+
document.createTextNode(text.slice(startIndex, text.length))
|
1034 |
+
);
|
1035 |
+
}
|
1036 |
+
|
1037 |
+
el.replaceChild(markFragment, node);
|
1038 |
+
}
|
1039 |
+
} else if (node.nodeType === Node.ELEMENT_NODE) {
|
1040 |
+
// recurse through elements
|
1041 |
+
highlight(term, node);
|
1042 |
+
}
|
1043 |
+
}
|
1044 |
+
}
|
1045 |
+
|
1046 |
+
/* Link Handling */
|
1047 |
+
// get the offset from this page for a given site root relative url
|
1048 |
+
function offsetURL(url) {
|
1049 |
+
var offset = getMeta("quarto:offset");
|
1050 |
+
return offset ? offset + url : url;
|
1051 |
+
}
|
1052 |
+
|
1053 |
+
// read a meta tag value
|
1054 |
+
function getMeta(metaName) {
|
1055 |
+
var metas = window.document.getElementsByTagName("meta");
|
1056 |
+
for (let i = 0; i < metas.length; i++) {
|
1057 |
+
if (metas[i].getAttribute("name") === metaName) {
|
1058 |
+
return metas[i].getAttribute("content");
|
1059 |
+
}
|
1060 |
+
}
|
1061 |
+
return "";
|
1062 |
+
}
|
1063 |
+
|
1064 |
+
function algoliaSearch(query, limit, algoliaOptions) {
|
1065 |
+
const { getAlgoliaResults } = window["@algolia/autocomplete-preset-algolia"];
|
1066 |
+
|
1067 |
+
const applicationId = algoliaOptions["application-id"];
|
1068 |
+
const searchOnlyApiKey = algoliaOptions["search-only-api-key"];
|
1069 |
+
const indexName = algoliaOptions["index-name"];
|
1070 |
+
const indexFields = algoliaOptions["index-fields"];
|
1071 |
+
const searchClient = window.algoliasearch(applicationId, searchOnlyApiKey);
|
1072 |
+
const searchParams = algoliaOptions["params"];
|
1073 |
+
const searchAnalytics = !!algoliaOptions["analytics-events"];
|
1074 |
+
|
1075 |
+
return getAlgoliaResults({
|
1076 |
+
searchClient,
|
1077 |
+
queries: [
|
1078 |
+
{
|
1079 |
+
indexName: indexName,
|
1080 |
+
query,
|
1081 |
+
params: {
|
1082 |
+
hitsPerPage: limit,
|
1083 |
+
clickAnalytics: searchAnalytics,
|
1084 |
+
...searchParams,
|
1085 |
+
},
|
1086 |
+
},
|
1087 |
+
],
|
1088 |
+
transformResponse: (response) => {
|
1089 |
+
if (!indexFields) {
|
1090 |
+
return response.hits.map((hit) => {
|
1091 |
+
return hit.map((item) => {
|
1092 |
+
return {
|
1093 |
+
...item,
|
1094 |
+
text: highlightMatch(query, item.text),
|
1095 |
+
};
|
1096 |
+
});
|
1097 |
+
});
|
1098 |
+
} else {
|
1099 |
+
const remappedHits = response.hits.map((hit) => {
|
1100 |
+
return hit.map((item) => {
|
1101 |
+
const newItem = { ...item };
|
1102 |
+
["href", "section", "title", "text"].forEach((keyName) => {
|
1103 |
+
const mappedName = indexFields[keyName];
|
1104 |
+
if (
|
1105 |
+
mappedName &&
|
1106 |
+
item[mappedName] !== undefined &&
|
1107 |
+
mappedName !== keyName
|
1108 |
+
) {
|
1109 |
+
newItem[keyName] = item[mappedName];
|
1110 |
+
delete newItem[mappedName];
|
1111 |
+
}
|
1112 |
+
});
|
1113 |
+
newItem.text = highlightMatch(query, newItem.text);
|
1114 |
+
return newItem;
|
1115 |
+
});
|
1116 |
+
});
|
1117 |
+
return remappedHits;
|
1118 |
+
}
|
1119 |
+
},
|
1120 |
+
});
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
function fuseSearch(query, fuse, fuseOptions) {
|
1124 |
+
return fuse.search(query, fuseOptions).map((result) => {
|
1125 |
+
const addParam = (url, name, value) => {
|
1126 |
+
const anchorParts = url.split("#");
|
1127 |
+
const baseUrl = anchorParts[0];
|
1128 |
+
const sep = baseUrl.search("\\?") > 0 ? "&" : "?";
|
1129 |
+
anchorParts[0] = baseUrl + sep + name + "=" + value;
|
1130 |
+
return anchorParts.join("#");
|
1131 |
+
};
|
1132 |
+
|
1133 |
+
return {
|
1134 |
+
title: result.item.title,
|
1135 |
+
section: result.item.section,
|
1136 |
+
href: addParam(result.item.href, kQueryArg, query),
|
1137 |
+
text: highlightMatch(query, result.item.text),
|
1138 |
+
};
|
1139 |
+
});
|
1140 |
+
}
|
_proc/_docs/sitemap.xml
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
3 |
+
<url>
|
4 |
+
<loc>https://animalequality.github.io/lv-recipe-chatbot/app.html</loc>
|
5 |
+
<lastmod>2023-06-07T04:08:48.274Z</lastmod>
|
6 |
+
</url>
|
7 |
+
<url>
|
8 |
+
<loc>https://animalequality.github.io/lv-recipe-chatbot/index.html</loc>
|
9 |
+
<lastmod>2023-06-07T04:10:36.549Z</lastmod>
|
10 |
+
</url>
|
11 |
+
<url>
|
12 |
+
<loc>https://animalequality.github.io/lv-recipe-chatbot/lchain_tool.html</loc>
|
13 |
+
<lastmod>2023-06-07T04:08:31.310Z</lastmod>
|
14 |
+
</url>
|
15 |
+
<url>
|
16 |
+
<loc>https://animalequality.github.io/lv-recipe-chatbot/edamam_api.html</loc>
|
17 |
+
<lastmod>2023-06-07T04:08:31.486Z</lastmod>
|
18 |
+
</url>
|
19 |
+
<url>
|
20 |
+
<loc>https://animalequality.github.io/lv-recipe-chatbot/engineer_prompt.html</loc>
|
21 |
+
<lastmod>2023-06-06T21:27:32.002Z</lastmod>
|
22 |
+
</url>
|
23 |
+
</urlset>
|
_proc/_docs/styles.css
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.cell {
|
2 |
+
margin-bottom: 1rem;
|
3 |
+
}
|
4 |
+
|
5 |
+
.cell > .sourceCode {
|
6 |
+
margin-bottom: 0;
|
7 |
+
}
|
8 |
+
|
9 |
+
.cell-output > pre {
|
10 |
+
margin-bottom: 0;
|
11 |
+
}
|
12 |
+
|
13 |
+
.cell-output > pre, .cell-output > .sourceCode > pre, .cell-output-stdout > pre {
|
14 |
+
margin-left: 0.8rem;
|
15 |
+
margin-top: 0;
|
16 |
+
background: none;
|
17 |
+
border-left: 2px solid lightsalmon;
|
18 |
+
border-top-left-radius: 0;
|
19 |
+
border-top-right-radius: 0;
|
20 |
+
}
|
21 |
+
|
22 |
+
.cell-output > .sourceCode {
|
23 |
+
border: none;
|
24 |
+
}
|
25 |
+
|
26 |
+
.cell-output > .sourceCode {
|
27 |
+
background: none;
|
28 |
+
margin-top: 0;
|
29 |
+
}
|
30 |
+
|
31 |
+
div.description {
|
32 |
+
padding-left: 2px;
|
33 |
+
padding-top: 5px;
|
34 |
+
font-style: italic;
|
35 |
+
font-size: 135%;
|
36 |
+
opacity: 70%;
|
37 |
+
}
|
_proc/_quarto.yml
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
project:
|
2 |
+
type: website
|
3 |
+
|
4 |
+
format:
|
5 |
+
html:
|
6 |
+
theme: cosmo
|
7 |
+
css: styles.css
|
8 |
+
toc: true
|
9 |
+
|
10 |
+
website:
|
11 |
+
twitter-card: true
|
12 |
+
open-graph: true
|
13 |
+
repo-actions: [issue]
|
14 |
+
navbar:
|
15 |
+
background: primary
|
16 |
+
search: true
|
17 |
+
sidebar:
|
18 |
+
style: floating
|
19 |
+
|
20 |
+
metadata-files: [nbdev.yml, sidebar.yml]
|
_proc/index.ipynb
ADDED
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "raw",
|
5 |
+
"metadata": {},
|
6 |
+
"source": [
|
7 |
+
"---\n",
|
8 |
+
"description: An experimental Vegan recipe chatbot\n",
|
9 |
+
"output-file: index.html\n",
|
10 |
+
"title: lv-recipe-chatbot\n",
|
11 |
+
"\n",
|
12 |
+
"---\n",
|
13 |
+
"\n"
|
14 |
+
]
|
15 |
+
},
|
16 |
+
{
|
17 |
+
"cell_type": "markdown",
|
18 |
+
"metadata": {},
|
19 |
+
"source": [
|
20 |
+
"<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->"
|
21 |
+
]
|
22 |
+
},
|
23 |
+
{
|
24 |
+
"cell_type": "markdown",
|
25 |
+
"metadata": {},
|
26 |
+
"source": [
|
27 |
+
"This file will become your README and also the index of your documentation."
|
28 |
+
]
|
29 |
+
},
|
30 |
+
{
|
31 |
+
"cell_type": "markdown",
|
32 |
+
"metadata": {},
|
33 |
+
"source": [
|
34 |
+
"## Install"
|
35 |
+
]
|
36 |
+
},
|
37 |
+
{
|
38 |
+
"cell_type": "markdown",
|
39 |
+
"metadata": {},
|
40 |
+
"source": [
|
41 |
+
"```sh\n",
|
42 |
+
"pip install lv_recipe_chatbot\n",
|
43 |
+
"```"
|
44 |
+
]
|
45 |
+
},
|
46 |
+
{
|
47 |
+
"cell_type": "markdown",
|
48 |
+
"metadata": {},
|
49 |
+
"source": [
|
50 |
+
"## How to use"
|
51 |
+
]
|
52 |
+
},
|
53 |
+
{
|
54 |
+
"cell_type": "code",
|
55 |
+
"execution_count": null,
|
56 |
+
"metadata": {
|
57 |
+
"language": "python"
|
58 |
+
},
|
59 |
+
"outputs": [
|
60 |
+
{
|
61 |
+
"name": "stdout",
|
62 |
+
"output_type": "stream",
|
63 |
+
"text": [
|
64 |
+
"Running on local URL: http://127.0.0.1:7860\n",
|
65 |
+
"\n",
|
66 |
+
"To create a public link, set `share=True` in `launch()`.\n"
|
67 |
+
]
|
68 |
+
}
|
69 |
+
],
|
70 |
+
"source": [
|
71 |
+
"from dotenv import load_dotenv\n",
|
72 |
+
"\n",
|
73 |
+
"load_dotenv()\n",
|
74 |
+
"\n",
|
75 |
+
"app.launch_demo()"
|
76 |
+
]
|
77 |
+
},
|
78 |
+
{
|
79 |
+
"cell_type": "markdown",
|
80 |
+
"metadata": {},
|
81 |
+
"source": [
|
82 |
+
"or \n",
|
83 |
+
"```sh\n",
|
84 |
+
"python3 app.py\n",
|
85 |
+
"```"
|
86 |
+
]
|
87 |
+
},
|
88 |
+
{
|
89 |
+
"cell_type": "markdown",
|
90 |
+
"metadata": {},
|
91 |
+
"source": [
|
92 |
+
"## Dev quick-start\n",
|
93 |
+
"\n",
|
94 |
+
"`git clone` the repo \n",
|
95 |
+
"\n",
|
96 |
+
"```sh\n",
|
97 |
+
"cd lv-recipe-chatbot\n",
|
98 |
+
"``` \n",
|
99 |
+
"\n",
|
100 |
+
"Make sure to use the version of python specified in `py_version.txt` \n",
|
101 |
+
"Create a virtual environment.\n",
|
102 |
+
"\n",
|
103 |
+
"```sh\n",
|
104 |
+
"python3 -m venv env\n",
|
105 |
+
"```\n",
|
106 |
+
"\n",
|
107 |
+
"Activate the env and install dependencies.\n",
|
108 |
+
"\n",
|
109 |
+
"```sh\n",
|
110 |
+
"source env/bin/activate\n",
|
111 |
+
"pip install -r requirements.txt\n",
|
112 |
+
"pip install -r requirements/dev.txt\n",
|
113 |
+
"```\n",
|
114 |
+
"\n",
|
115 |
+
"To make the Jupyter environment, git friendly: `nbdev_install_hooks` \n",
|
116 |
+
"If you want to render documentation locally, you will want to [install Quarto](https://nbdev.fast.ai/tutorials/tutorial.html#install-quarto).\n",
|
117 |
+
"\n",
|
118 |
+
"`nbdev_install_quarto` \n",
|
119 |
+
"\n",
|
120 |
+
"Put API secrets in .env\n",
|
121 |
+
"\n",
|
122 |
+
"```sh\n",
|
123 |
+
"cp .env.example .env\n",
|
124 |
+
"```\n",
|
125 |
+
"\n",
|
126 |
+
"Edit .env with your secret key(s). Only `OPEN_AI_KEY` is required.\n",
|
127 |
+
"\n",
|
128 |
+
"Then start the Gradio demo from within the virtual environment. \n",
|
129 |
+
"\n",
|
130 |
+
"```sh\n",
|
131 |
+
"python3 app.py\n",
|
132 |
+
"```\n",
|
133 |
+
"\n",
|
134 |
+
"Preview documentation\n",
|
135 |
+
"\n",
|
136 |
+
"```sh\n",
|
137 |
+
"nbdev_preview\n",
|
138 |
+
"```\n",
|
139 |
+
"\n",
|
140 |
+
"## Dependencies\n",
|
141 |
+
"\n",
|
142 |
+
"If a new dependency for development is helpful for developers, add it to `dev.txt`. \n",
|
143 |
+
"If it is a dependency for the app that is imported in source code, add it to `core.txt`. \n",
|
144 |
+
"Then run:\n",
|
145 |
+
"\n",
|
146 |
+
"```sh\n",
|
147 |
+
"pipreqs --force\n",
|
148 |
+
"```\n",
|
149 |
+
"\n",
|
150 |
+
"This will update our `requirements.txt` to include the dependency as it should be pinned in the environment. \n",
|
151 |
+
"\n",
|
152 |
+
"\n",
|
153 |
+
"## Development\n",
|
154 |
+
"\n",
|
155 |
+
"[quick nbdev tutorial](https://nbdev.fast.ai/tutorials)\n",
|
156 |
+
"\n",
|
157 |
+
"Make changes in `/nbs`. \n",
|
158 |
+
"Update the package files with `nbdev_export` then reimport with `pip install -e '.[dev]'`\n",
|
159 |
+
"\n",
|
160 |
+
"Preview doc `nbdev_preview` \n",
|
161 |
+
"Build docs, test and update README `nbdev_prepare`\n",
|
162 |
+
"\n",
|
163 |
+
"\n",
|
164 |
+
"\n",
|
165 |
+
"## Useful links\n",
|
166 |
+
"\n",
|
167 |
+
"* [Task Matrix (Formerly Visual ChatGPT)](https://github.com/microsoft/TaskMatrix)\n",
|
168 |
+
"* [LangChain](https://python.langchain.com/en/latest/index.html)\n",
|
169 |
+
"* [LLM Prompt Engineering](https://www.promptingguide.ai)\n",
|
170 |
+
"* [OpenAI best practices for prompts](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api)"
|
171 |
+
]
|
172 |
+
},
|
173 |
+
{
|
174 |
+
"cell_type": "code",
|
175 |
+
"execution_count": null,
|
176 |
+
"metadata": {
|
177 |
+
"language": "python"
|
178 |
+
},
|
179 |
+
"outputs": [],
|
180 |
+
"source": []
|
181 |
+
}
|
182 |
+
],
|
183 |
+
"metadata": {
|
184 |
+
"kernelspec": {
|
185 |
+
"display_name": "python3",
|
186 |
+
"language": "python",
|
187 |
+
"name": "python3"
|
188 |
+
},
|
189 |
+
"widgets": {
|
190 |
+
"application/vnd.jupyter.widget-state+json": {
|
191 |
+
"state": {},
|
192 |
+
"version_major": 2,
|
193 |
+
"version_minor": 0
|
194 |
+
}
|
195 |
+
}
|
196 |
+
},
|
197 |
+
"nbformat": 4,
|
198 |
+
"nbformat_minor": 4
|
199 |
+
}
|
_proc/nbdev.yml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
project:
|
2 |
+
output-dir: _docs
|
3 |
+
|
4 |
+
website:
|
5 |
+
title: "lv-recipe-chatbot"
|
6 |
+
site-url: "https://animalequality.github.io/lv-recipe-chatbot"
|
7 |
+
description: "An experimental Vegan recipe chatbot"
|
8 |
+
repo-branch: main
|
9 |
+
repo-url: "https://github.com/animalequality/lv-recipe-chatbot"
|
_proc/sidebar.yml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
website:
|
2 |
+
sidebar:
|
3 |
+
contents:
|
4 |
+
- index.ipynb
|
5 |
+
- 00_engineer_prompt.ipynb
|
6 |
+
- 01_app.ipynb
|
7 |
+
- 02_lchain_tool.ipynb
|
8 |
+
- 03_edamam_api.ipynb
|
_proc/sidebar.yml.bak
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
website:
|
2 |
+
sidebar:
|
3 |
+
contents:
|
4 |
+
- index.ipynb
|
5 |
+
- 00_engineer_prompt.ipynb
|
6 |
+
- 01_app.ipynb
|
7 |
+
- 02_lchain_tool.ipynb
|
8 |
+
- 03_edamam_api.ipynb
|
_proc/styles.css
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.cell {
|
2 |
+
margin-bottom: 1rem;
|
3 |
+
}
|
4 |
+
|
5 |
+
.cell > .sourceCode {
|
6 |
+
margin-bottom: 0;
|
7 |
+
}
|
8 |
+
|
9 |
+
.cell-output > pre {
|
10 |
+
margin-bottom: 0;
|
11 |
+
}
|
12 |
+
|
13 |
+
.cell-output > pre, .cell-output > .sourceCode > pre, .cell-output-stdout > pre {
|
14 |
+
margin-left: 0.8rem;
|
15 |
+
margin-top: 0;
|
16 |
+
background: none;
|
17 |
+
border-left: 2px solid lightsalmon;
|
18 |
+
border-top-left-radius: 0;
|
19 |
+
border-top-right-radius: 0;
|
20 |
+
}
|
21 |
+
|
22 |
+
.cell-output > .sourceCode {
|
23 |
+
border: none;
|
24 |
+
}
|
25 |
+
|
26 |
+
.cell-output > .sourceCode {
|
27 |
+
background: none;
|
28 |
+
margin-top: 0;
|
29 |
+
}
|
30 |
+
|
31 |
+
div.description {
|
32 |
+
padding-left: 2px;
|
33 |
+
padding-top: 5px;
|
34 |
+
font-style: italic;
|
35 |
+
font-size: 135%;
|
36 |
+
opacity: 70%;
|
37 |
+
}
|
app.py
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from lv_recipe_chatbot.app import launch_demo
|
2 |
+
# for Hugging Face
|
3 |
+
|
4 |
+
if __name__ == "__main__":
|
5 |
+
launch_demo()
|
chatbot/__init__.py
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
from dotenv import load_dotenv
|
2 |
-
|
3 |
-
load_dotenv()
|
|
|
|
|
|
|
|
env.example
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
OPENAI_API_KEY = ""
|
2 |
+
PROMPTLAYER_API_KEY = ""
|
3 |
+
GRADIO_DEMO_USERNAME = ""
|
4 |
+
GRADIO_DEMO_PASSWORD = ""
|
5 |
+
SERPAPI_API_KEY = ""
|
hface.yaml
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: lv-recipe-chatbot
|
3 |
+
emoji: 🫑
|
4 |
+
colorFrom: green
|
5 |
+
colorTo: indigo
|
6 |
+
sdk: gradio
|
7 |
+
sdk_version: 3.23.0
|
8 |
+
app_file: app.py
|
9 |
+
pinned: false
|
10 |
+
license: unknown
|
11 |
+
---
|
lv_recipe_chatbot/__init__.py
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
__version__ = "0.0.1"
|
lv_recipe_chatbot/_modidx.py
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Autogenerated by nbdev
|
2 |
+
|
3 |
+
d = { 'settings': { 'branch': 'main',
|
4 |
+
'doc_baseurl': '/lv-recipe-chatbot',
|
5 |
+
'doc_host': 'https://animalequality.github.io',
|
6 |
+
'git_url': 'https://github.com/animalequality/lv-recipe-chatbot',
|
7 |
+
'lib_path': 'lv_recipe_chatbot'},
|
8 |
+
'syms': { 'lv_recipe_chatbot.app': { 'lv_recipe_chatbot.app.ConversationBot': ('app.html#conversationbot', 'lv_recipe_chatbot/app.py'),
|
9 |
+
'lv_recipe_chatbot.app.ConversationBot.__init__': ( 'app.html#conversationbot.__init__',
|
10 |
+
'lv_recipe_chatbot/app.py'),
|
11 |
+
'lv_recipe_chatbot.app.ConversationBot._get_bot_response': ( 'app.html#conversationbot._get_bot_response',
|
12 |
+
'lv_recipe_chatbot/app.py'),
|
13 |
+
'lv_recipe_chatbot.app.ConversationBot.init_conversation': ( 'app.html#conversationbot.init_conversation',
|
14 |
+
'lv_recipe_chatbot/app.py'),
|
15 |
+
'lv_recipe_chatbot.app.ConversationBot.reset': ( 'app.html#conversationbot.reset',
|
16 |
+
'lv_recipe_chatbot/app.py'),
|
17 |
+
'lv_recipe_chatbot.app.ConversationBot.respond': ( 'app.html#conversationbot.respond',
|
18 |
+
'lv_recipe_chatbot/app.py'),
|
19 |
+
'lv_recipe_chatbot.app.launch_demo': ('app.html#launch_demo', 'lv_recipe_chatbot/app.py')},
|
20 |
+
'lv_recipe_chatbot.edamam_api': { 'lv_recipe_chatbot.edamam_api.foo': ( 'edamam_api.html#foo',
|
21 |
+
'lv_recipe_chatbot/edamam_api.py')},
|
22 |
+
'lv_recipe_chatbot.engineer_prompt': {},
|
23 |
+
'lv_recipe_chatbot.lchain_tool': { 'lv_recipe_chatbot.lchain_tool.RecipeSerpAPIWrapper': ( 'lchain_tool.html#recipeserpapiwrapper',
|
24 |
+
'lv_recipe_chatbot/lchain_tool.py'),
|
25 |
+
'lv_recipe_chatbot.lchain_tool.RecipeSerpAPIWrapper._process_response': ( 'lchain_tool.html#recipeserpapiwrapper._process_response',
|
26 |
+
'lv_recipe_chatbot/lchain_tool.py')}}}
|