[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-ops-www] branch master updated (215a0f6 -> e900a81)
From: |
gnunet |
Subject: |
[taler-taler-ops-www] branch master updated (215a0f6 -> e900a81) |
Date: |
Sat, 24 Feb 2024 23:36:49 +0100 |
This is an automated email from the git hooks/post-receive script.
nora pushed a change to branch master
in repository taler-ops-www.
from 215a0f6 update messages
new d759c24 feat: a bunch of optimization shit
new ce03c28 remove unused gitignore lines
new c896160 remove unused bootstrap js import
new 1dbf01a properly resolve favicon
new 8e3d097 fix: nuke the nonexistent image's import for now
new 650818c remove nonexistent imports, add favicon.png
new b7ae4d0 add links in the image dir as to make stuff resolve
new 5516c53 comment out currently nonexistent locale
new 447ec9c create blank merchants file to not 404
new d288e92 get rid of carousell stuff
new 118e639 parcel changes
new e900a81 Merge branch 'master' of git.taler.net:taler-ops-www
The 12 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.gitignore | 6 +-
.parcelrc | 7 +
Makefile | 34 +-
build-system/parcel-resolver.cjs | 19 +
common/base.j2 | 6 +-
common/header.j2.inc | 19 +-
locale/de/LC_MESSAGES/messages.po | 2 +-
locale/en/LC_MESSAGES/messages.po | 459 ++++++
locale/fr/LC_MESSAGES/messages.po | 2 +-
locale/messages.pot | 2 +-
package.json | 18 +-
pnpm-lock.yaml | 2694 +++++++++++++++++++++++++++---
static/favicon.png | Bin 0 -> 19222 bytes
static/images/favicon.ico | 1 +
static/images/favicon.png | 1 +
static/js/bootstrap.js | 6 -
static/js/carouselscript.js | 53 -
static/js/owl.carousel.js | 3275 -------------------------------------
static/js/owl.script.js | 82 -
static/scss/owl.carousel.scss | 190 ---
20 files changed, 3003 insertions(+), 3873 deletions(-)
create mode 100644 .parcelrc
create mode 100644 build-system/parcel-resolver.cjs
create mode 100644 static/favicon.png
create mode 120000 static/images/favicon.ico
create mode 120000 static/images/favicon.png
delete mode 100644 static/js/bootstrap.js
delete mode 100644 static/js/carouselscript.js
delete mode 100644 static/js/owl.carousel.js
delete mode 100644 static/js/owl.script.js
delete mode 100644 static/scss/owl.carousel.scss
diff --git a/.gitignore b/.gitignore
index 5e440ec..0a4e6d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,9 +16,9 @@ rendered/
# Keep the PNPM lockfile, not the npm one - we only need one lockfile!
package-lock.json
-# Ignore outputted .css files; we generate them from sass files in the scss
directory
-/static/css
-
# Ignore node modules, duh
node_modules
+# Parcel's cache
+.parcel-cache
+dist
diff --git a/.parcelrc b/.parcelrc
new file mode 100644
index 0000000..a2e4064
--- /dev/null
+++ b/.parcelrc
@@ -0,0 +1,7 @@
+{
+ "extends": "@parcel/config-default",
+ "resolvers": [
+ "./build-system/parcel-resolver.cjs",
+ "..."
+ ]
+}
diff --git a/Makefile b/Makefile
index c656a78..4975e91 100644
--- a/Makefile
+++ b/Makefile
@@ -4,12 +4,32 @@ include build-system/config.mk
# All: build HTML pages in all languages.
.PHONY: all
-all: preprocess
+all: build-site build-css optimize-css parcel
+
+# build-unoptimized: Builds without optimizing CSS as to allow for faster
testing
+build-unoptimized: build-site build-css parcel-no-optimize
+
+build-site:
./inc/update-messages
env "BASEURL=$(opt_baseurl)" ./inc/build-site
-preprocess:
- env "NODE_ENV=production" ./build-system/pkgmgr build:css;
+build-css:
+ ./build-system/pkgmgr run build-css;
+optimize-css:
+ ./build-system/pkgmgr run optimize-css;
+
+parcel: prepare-parcel build-parcel postbuild-parcel
+parcel-no-optimize: prepare-parcel build-parcel-no-optimize postbuild-parcel
+
+prepare-parcel:
+ ./build-system/pkgmgr run prepare-parcel;
+build-parcel:
+ ./build-system/pkgmgr run build-parcel;
+build-parcel-no-optimize:
+ ./build-system/pkgmgr run build-parcel-no-optimize;
+postbuild-parcel:
+ ./build-system/pkgmgr run handle-parcel-output;
+ ./build-system/pkgmgr run cleanup-parcel;
.PHONY: run
run: all
@@ -23,7 +43,13 @@ $(error variant is not set)
endif
.PHONY: install
-install: all
+install: all install-files
+
+# install-dev: Same functionality as install, but using build-unoptimized for
faster build times
+install-dev: build-unoptimized install-files
+
+# install-files: The internal install task
+install-files:
$(mkdir) -p $(prefix)/$(variant)
$(cp) -r rendered/* $(prefix)/$(variant)/
$(cp) -r rendered/.well-known/ $(prefix)/$(variant)/
diff --git a/build-system/parcel-resolver.cjs b/build-system/parcel-resolver.cjs
new file mode 100644
index 0000000..e260fa3
--- /dev/null
+++ b/build-system/parcel-resolver.cjs
@@ -0,0 +1,19 @@
+const { Resolver } = require('@parcel/plugin');
+const path = require('path');
+const fs = require('fs');
+
+module.exports = new Resolver({
+ async resolve({ specifier }) {
+ if (specifier.startsWith('/')) {
+ const filePath = path.resolve('rendered', specifier.substring(1));
+ if (fs.existsSync(filePath))
+ return {
+ filePath,
+ };
+ }
+
+ // Let the next resolver in the pipeline handle
+ // this dependency.
+ return null;
+ },
+});
diff --git a/common/base.j2 b/common/base.j2
index 8121999..1d307e0 100644
--- a/common/base.j2
+++ b/common/base.j2
@@ -3,12 +3,12 @@
<head>
<meta charset="UTF-8"/>
<link rel="shortcut icon" href="/favicon.ico">
- <link rel="icon" type="image/svg+xml" href="{{
url_static('images/favicon.svg') }}" sizes="any">
+ <!--<link rel="icon" type="image/svg+xml" href="{{
url_static('images/favicon.svg') }}" sizes="any"
<link rel="icon" type="image/png" href="{{
url_static('images/android-chrome-192x192.png') }}" sizes="192x192">
- <link rel="icon" type="image/png" href="{{
url_static('images/android-chrome-512x512.png') }}" sizes="512x512">
+ <link rel="icon" type="image/png" href="{{
url_static('images/android-chrome-512x512.png') }}" sizes="512x512">>
<link rel="apple-touch-icon" sizes="180x180" href="{{
url_static('images/apple-touch-icon.png') }}">
<meta name="msapplication-TileColor" content="#ffffff">
- <meta name="msapplication-TileImage" content="{{
url_static('images/mstile-150x150.png') }}">
+ <meta name="msapplication-TileImage" content="{{
url_static('images/mstile-150x150.png') }}">-->
<meta property="og:title" content="Taler Operations AG, Biel, Switzerland"
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="{{ url_localized('index.html') }}" />
diff --git a/common/header.j2.inc b/common/header.j2.inc
index 698fcd5..52cacc9 100644
--- a/common/header.j2.inc
+++ b/common/header.j2.inc
@@ -24,11 +24,12 @@
for the JavaScript code in this page.
*/
</script>
-<link rel="icon" type="image/ico" href="/favicon.ico?v=2" />
+
+<link rel="icon" type="image/ico" href="{{ url_static('favicon.ico?v=2') }}" />
<link rel="alternate" hreflang="en" href="{{ self_localized('en') }}" />
<link rel="alternate" hreflang="fr" href="{{ self_localized('fr') }}" />
<link rel="alternate" hreflang="de" href="{{ self_localized('de') }}" />
-<link rel="alternate" hreflang="it" href="{{ self_localized('it') }}" />
+{# <link rel="alternate" hreflang="it" href="{{ self_localized('it') }}" /> #}
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta charset="utf-8" />
@@ -41,13 +42,7 @@
<meta name="author" content="" />
<script src="{{ url_static('js/jquerymin.js') }}"></script>
-<script src="{{ url_static('js/bootstrap.js') }}"></script>
-<script src="{{ url_static('js/carouselscript.js') }}"></script>
-<script src="{{ url_static('js/owl.carousel.js') }}"></script>
-<script src="{{ url_static('js/owl.script.js') }}"></script>
-
-<link href="{{ url_static('css/min/bootstrap5.css') }}" rel="stylesheet" />
-<link href="{{ url_static('css/min/doc.css') }}" rel="stylesheet" />
-<link href="{{ url_static('css/min/fonts.css') }}" rel="stylesheet" />
-<link href="{{ url_static('css/min/owl.carousel.css') }}" rel="stylesheet" />
-<script src="{{ url_static('js/toggle.js') }}" defer></script>
+
+<link href="{{ url_static('css/bootstrap5.css') }}" rel="stylesheet" />
+<link href="{{ url_static('css/doc.css') }}" rel="stylesheet" />
+<link href="{{ url_static('css/fonts.css') }}" rel="stylesheet" />
diff --git a/locale/de/LC_MESSAGES/messages.po
b/locale/de/LC_MESSAGES/messages.po
index f545ad5..82ae398 100644
--- a/locale/de/LC_MESSAGES/messages.po
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2024-02-24 23:34+0100\n"
+"POT-Creation-Date: 2024-02-24 22:02+0100\n"
"PO-Revision-Date: 2024-02-24 20:06+0000\n"
"Last-Translator: Stefan Kügel <skuegel@web.de>\n"
"Language-Team: German <https://weblate.taler.net/projects/taler-ops/website/"
diff --git a/locale/en/LC_MESSAGES/messages.po
b/locale/en/LC_MESSAGES/messages.po
index e69de29..8073a6e 100644
--- a/locale/en/LC_MESSAGES/messages.po
+++ b/locale/en/LC_MESSAGES/messages.po
@@ -0,0 +1,459 @@
+# Translations template for PROJECT.
+# Copyright (C) 2020 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2024-02-24 22:02+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.6.0\n"
+
+#: common/base.j2:18
+msgid "Taler Operations AG, Biel, Switzerland"
+msgstr ""
+
+#: common/footer.j2.inc:15
+msgid "Switzerland"
+msgstr ""
+
+#: common/footer.j2.inc:23
+msgid "Quick Links"
+msgstr ""
+
+#: common/footer.j2.inc:28
+msgid "Taler Operations AG Homepage"
+msgstr ""
+
+#: common/footer.j2.inc:29 common/navigation.j2.inc:34
+msgid "Home"
+msgstr ""
+
+#: common/footer.j2.inc:38 common/navigation.j2.inc:49 template/fees.html.j2:3
+#: template/fees.html.j2:9 template/fees.html.j2:19
+msgid "Fees"
+msgstr ""
+
+#: common/footer.j2.inc:43
+msgid "Terms of Service"
+msgstr ""
+
+#: common/footer.j2.inc:51
+msgid "Partners"
+msgstr ""
+
+#: common/footer.j2.inc:58
+msgid "Taler Consortium"
+msgstr ""
+
+#: common/footer.j2.inc:66
+msgid "Bern University of Applied Sciences"
+msgstr ""
+
+#: common/footer.j2.inc:75
+msgid "NetzBon"
+msgstr ""
+
+#: common/footer.j2.inc:83
+msgid "Contacts"
+msgstr ""
+
+#: common/footer.j2.inc:87
+msgid "Tel:"
+msgstr ""
+
+#: common/footer.j2.inc:92
+msgid "Compliance Officer"
+msgstr ""
+
+#: common/footer.j2.inc:97
+msgid "AML Officer"
+msgstr ""
+
+#: common/footer.j2.inc:110
+msgid "Copyright"
+msgstr ""
+
+#: common/footer.j2.inc:116
+msgid "License"
+msgstr ""
+
+#: common/footer.j2.inc:120
+msgid ""
+"We do not assume any liability for the correctness of contents. We do not "
+"collect any data and do not use cookies. <br />Our web server generates a "
+"log file with IP addresses of visitors. However, these are evaluated "
+"exclusively for troubleshooting or problem mitigation."
+msgstr ""
+
+#: common/navigation.j2.inc:4
+msgid "Skip to main content"
+msgstr ""
+
+#: common/navigation.j2.inc:39 template/index.html.j2:50
+msgid "For Merchants"
+msgstr ""
+
+#: common/navigation.j2.inc:44 template/index.html.j2:40
+msgid "For Users"
+msgstr ""
+
+#: common/navigation.j2.inc:54
+msgid "AGB für eNetzBon (interim!)"
+msgstr ""
+
+#: template/fees.html.j2:11
+msgid ""
+"This <b>Fee Overview</b> is waived for <b>users or merchants</b> making use "
+"of the Taler payment system for <b>eNetzBon</b>."
+msgstr ""
+
+#: template/fees.html.j2:290
+msgid "Costs for sending SMS to users"
+msgstr ""
+
+#: template/index.html.j2:11
+msgid "Welcome to <span>Taler Operations</span>!"
+msgstr ""
+
+#: template/index.html.j2:13
+msgid "Taler Operations runs the GNU Taler payment system in Switzerland."
+msgstr ""
+
+#: template/index.html.j2:15
+msgid ""
+"Taler Operations wird nicht von der Eidgenössischen Finanzmarktaufsicht "
+"(FINMA) beaufsichtigt. Die Deckungssumme (in Schweizer Franken) Ihrer eCHF "
+"wird aber auf einem separaten Bankkonto hinterlegt."
+msgstr ""
+
+#: template/index.html.j2:41
+msgid ""
+"Taler provides the world with a payment solution that definitely makes sense "
+"in a society where privacy, data safety, technical security, and reliability "
+"become more and more crucial for everyone."
+msgstr ""
+
+#: template/index.html.j2:44
+msgid "Pay with Taler"
+msgstr ""
+
+#: template/index.html.j2:51
+msgid ""
+"Taler offers efficient payments and backoffice procedures with security, "
+"privacy and data minimization by design. Payers and payees can rely on "
+"technology, and do not need to purely rely on trust anymore."
+msgstr ""
+
+#: template/index.html.j2:54
+msgid "Integrate"
+msgstr ""
+
+#: template/terms.html.j2:3
+msgid "Taler Operations AG - Terms of Service"
+msgstr ""
+
+#: template/terms.html.j2:9 template/terms.html.j2:18
+msgid "eNetzBon Terms of Service"
+msgstr ""
+
+#: template/terms.html.j2:10
+msgid ""
+"These <b>Terms of Service</b> are applicable to any <b>user or merchant</b> "
+"making use of the Taler payment system for <b>eNetzBon</b>."
+msgstr ""
+
+#: template/terms.html.j2:358
+msgid "Contact"
+msgstr ""
+
+#: template/terms.html.j2:359
+msgid ""
+"You can get into touch with Taler Operations AG via mail or email and on the "
+"phone:"
+msgstr ""
+
+#: template/terms.html.j2:366
+msgid "Reach Us"
+msgstr ""
+
+#: template/terms.html.j2:373
+msgid ""
+"Email Us</h4> <p>Get into touch with us via <br>one of the email contacts "
+"below"
+msgstr ""
+
+#: template/terms.html.j2:380
+msgid "Call Us"
+msgstr ""
+
+#: template/terms.html.j2:381
+msgid "Have a question?"
+msgstr ""
+
+#: template/users.html.j2:3
+msgid "Taler Operations AG - Users"
+msgstr ""
+
+#: template/users.html.j2:11
+msgid "Quick Steps for<span> Users</span>"
+msgstr ""
+
+#: template/users.html.j2:12
+msgid "What do I need to use Taler for payments?"
+msgstr ""
+
+#: template/users.html.j2:14
+msgid "<b>SWISS BANK ACCOUNT</b> with an IBAN beginning with CH**"
+msgstr ""
+
+#: template/users.html.j2:15
+msgid ""
+"<b>PHONE NUMBER</b> beginning with ++41 for withdrawals of Taler's digital "
+"cash into the wallet"
+msgstr ""
+
+#: template/users.html.j2:16
+msgid "<b>TALER WALLET</b> installed for"
+msgstr ""
+
+#: template/users.html.j2:20
+msgid "or a <b>BROWSER WALLET</b>"
+msgstr ""
+
+#: template/users.html.j2:33
+msgid "1. Step:<span> Withdrawal to the wallet</span>"
+msgstr ""
+
+#: template/users.html.j2:34
+msgid ""
+"A desired amount to be withdrawn to the wallet must be added to the wallet's "
+"balance by wiring from your Swiss bank account to the Swiss bank account of "
+"a Taler payment service provider. Your wallet application helps you to do so."
+msgstr ""
+
+#: template/users.html.j2:36
+msgid ""
+"The wallet obtains the withdrawn amount automatically when you are connected "
+"to the internet or a mobile network."
+msgstr ""
+
+#: template/users.html.j2:48
+msgid ""
+"In the wallet, click on \"Get digital cash\", then select the currency, "
+"specify the origin of the money (bank account or another wallet) and choose "
+"a payment service provider."
+msgstr ""
+
+#: template/users.html.j2:50
+msgid ""
+"For Switzerland, you can choose Taler Operations AG as your payment service "
+"provider."
+msgstr ""
+
+#: template/users.html.j2:51
+msgid "Please read the Terms of Service and accept them."
+msgstr ""
+
+#: template/users.html.j2:61
+msgid ""
+"You confirm the withdrawal and the wallet connects to the payment provider "
+"when the device is online and withdraws the chosen amount."
+msgstr ""
+
+#: template/users.html.j2:69
+msgid "All actions mentioned above also apply for the browser wallet."
+msgstr ""
+
+#: template/users.html.j2:70
+msgid ""
+"The withdrawn amount will be shown in the balance. You see the withdrawal in "
+"\"Recent transactions\"."
+msgstr ""
+
+#: template/users.html.j2:84
+msgid "2. Step:<span> Payments from the mobile wallet</span>"
+msgstr ""
+
+#: template/users.html.j2:85
+msgid ""
+"Payments with Taler are possible at point of sale, web shops or at vending "
+"machines that offer Taler as a payment option."
+msgstr ""
+
+#: template/users.html.j2:86
+msgid ""
+"When you want to pay to a seller, you have to scan the QR code shown at the "
+"point of sale."
+msgstr ""
+
+#: template/users.html.j2:87 template/users.html.j2:105
+msgid "You check the message and the amount to pay shown on your device."
+msgstr ""
+
+#: template/users.html.j2:88 template/users.html.j2:106
+msgid ""
+"With one click on \"Pay\" you accept to pay the amount to the seller and get "
+"an electronic receipt of your payment."
+msgstr ""
+
+#: template/users.html.j2:100
+msgid "Payments from the <span>browser wallet</span>"
+msgstr ""
+
+#: template/users.html.j2:102
+msgid "Alternatively, if you have a Taler wallet installed in the browser:"
+msgstr ""
+
+#: template/users.html.j2:104
+msgid ""
+"When you want to pay to a seller, you have to just click on the payment "
+"option to pay with Taler shown on the web site."
+msgstr ""
+
+#: template/users.html.j2:122
+msgid "3. Step:<span> Checking balances in the wallet</span>"
+msgstr ""
+
+#: template/users.html.j2:123
+msgid ""
+"Click on 'Balance\" in the wallet. You will see an overview of digital cash, "
+"withdrawals and payments."
+msgstr ""
+
+#: template/users.html.j2:144
+msgid "Frequently Asked Questions"
+msgstr ""
+
+#: template/users.html.j2:159
+msgid "How do I install a Taler wallet on my browser?"
+msgstr ""
+
+#: template/users.html.j2:163
+msgid ""
+"Please visit the <a href=\"https://wallet.taler.net/\" target=\"_blank\" "
+"rel=\"noopener noreferrer\">Taler wallet install page for browser "
+"extensions</a> and select the wallet matching with your browser type."
+msgstr ""
+
+#: template/users.html.j2:177
+msgid "How do I install a Taler wallet on my phone?"
+msgstr ""
+
+#: template/users.html.j2:181
+msgid ""
+"Please visit an app store matching with your smartphone and select the Taler "
+"app. Above here on this page, you will find links guiding you to the "
+"respective app stores</a>."
+msgstr ""
+
+#: template/users.html.j2:195
+msgid "Where is the balance in my wallet stored?"
+msgstr ""
+
+#: template/users.html.j2:199
+msgid ""
+"Your wallet stores digital cash and thus ultimately your computer holds your "
+"balance. The Taler Exchange keeps funds matching all unspent digital cash in "
+"a settlement account."
+msgstr ""
+
+#: template/users.html.j2:214
+msgid "What if my wallet is lost?"
+msgstr ""
+
+#: template/users.html.j2:218
+msgid ""
+"In case of a compromise of one of your devices, an attacker can spend "
+"digital cash from your wallet. Checking your balance might reveal to you "
+"whether your device has eventually been compromised. If a coin has been "
+"spent, this coin cannot be spent a second time. The Exchange examines every "
+"coin whether it has been spent and thus makes double spending impossible."
+msgstr ""
+
+#: template/users.html.j2:222 template/users.html.j2:242
+msgid ""
+"The risk of losing a wallet can be mitigated by making backups or keeping "
+"the balance reasonably low."
+msgstr ""
+
+#: template/users.html.j2:236
+msgid "What if my computer is hacked?"
+msgstr ""
+
+#: template/users.html.j2:240
+msgid ""
+"Since Taler's digital cash in your wallet is anonymized, the exchange cannot "
+"assist you in recovering a lost or stolen wallet. Just like with a physical "
+"wallet for cash, you are responsible for keeping it safe."
+msgstr ""
+
+#: template/users.html.j2:256
+msgid "How does Taler protect my privacy?"
+msgstr ""
+
+#: template/users.html.j2:260
+msgid ""
+"Your wallet stores digital coins that are <a href=\"https://en.wikipedia.org/"
+"wiki/Blind_signature\">blindly signed</a> by an exchange. The use of a blind "
+"signature protects your privacy as it prevents the exchange from knowing "
+"which coin it signed for which customer."
+msgstr ""
+
+#: template/users.html.j2:276
+msgid "Can I send money to my friends with Taler?"
+msgstr ""
+
+#: template/users.html.j2:280
+msgid ""
+"Taler supports push and pull payments between wallets (also known as peer-to-"
+"peer payments). While the payment appears to be directly between wallets, "
+"technically the operation is intermediated by the payment service provider "
+"which will typically be legally required to identify the recipient of the "
+"funds before allowing the transaction to complete."
+msgstr ""
+
+#: template/users.html.j2:297
+msgid ""
+"To whom would consumers complain to in case of non-conversion or non-"
+"compliance?"
+msgstr ""
+
+#: template/users.html.j2:301
+msgid ""
+"In case that customers or merchants have reason to complain about the Taler "
+"payment system, Taler Operations AG will be their first point of contact. We "
+"are always grateful for your suggestions for improvement and for error "
+"messages. The best way to file these is done via our <a href=\"https://bugs."
+"gnunet.org\" target=\"_blank\" rel=\"noopener noreferrer\">bug tracker</a>. "
+"The ticket system makes it possible to submit reports anonymously. Taler "
+"Operations AG is a member at VQF, a Swiss association for the quality "
+"assurance of financial services (Verein zur Qualitätssicherung von "
+"Finanzdienstleistungen, General-Guisan-Str. 6, 6300 Zug, phone +41 41 763 28 "
+"20) where users could also turn to in case of complaints."
+msgstr ""
+
+#: template/users.html.j2:316
+msgid "More FAQs"
+msgstr ""
+
+#: template/users.html.j2:328
+msgid "I want to use digital cash <br>in my browser!"
+msgstr ""
+
+#: template/users.html.j2:329 template/users.html.j2:336
+msgid "GO"
+msgstr ""
+
+#: template/users.html.j2:335
+msgid "I want to use digital cash <br>on my phone!"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/messages.po
b/locale/fr/LC_MESSAGES/messages.po
index a40c667..8425d0d 100644
--- a/locale/fr/LC_MESSAGES/messages.po
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2024-02-24 23:34+0100\n"
+"POT-Creation-Date: 2024-02-24 22:02+0100\n"
"PO-Revision-Date: 2024-02-12 18:13+0000\n"
"Last-Translator: Stefan Kügel <skuegel@web.de>\n"
"Language-Team: French <https://weblate.taler.net/projects/taler-ops/website/"
diff --git a/locale/messages.pot b/locale/messages.pot
index 1a49856..5527140 100644
--- a/locale/messages.pot
+++ b/locale/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2024-02-24 23:34+0100\n"
+"POT-Creation-Date: 2024-02-24 22:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/package.json b/package.json
index 7539a17..47cf61b 100644
--- a/package.json
+++ b/package.json
@@ -2,13 +2,21 @@
"name": "taler-ops-www",
"description": "Taler Operations WWW",
"scripts": {
- "build:css": "pnpm build:css:sass && pnpm build:css:min",
- "build:css:sass": "sass static/scss:static/css",
- "build:css:min": "esbuild static/css/*.css --sourcemap --minify
--outdir=static/css/min/"
+ "build-css": "sass rendered/scss:rendered/css",
+ "optimize-css": "for file in rendered/css/*.css; do purifycss $file
'rendered/**/*.html' -m -i -o $file.pure.css; mv $file.pure.css $file;done;",
+ "prepare-parcel": "rm -f rendered/index.html && for file in
rendered/**/*.html; do echo \"<a href='$file'>...</a>\" >> rendered/index.html;
done; sed -i 's/rendered/./g' rendered/index.html",
+ "build-parcel": "parcel build rendered/index.html",
+ "build-parcel-no-optimize": "parcel build rendered/index.html
--no-optimize",
+ "handle-parcel-output": "rm -rf rendered && mv dist rendered",
+ "cleanup-parcel": "rm rendered/index.html"
},
"private": true,
"devDependencies": {
- "esbuild": "^0.20.1",
+ "@parcel/config-default": "^2.11.0",
+ "@parcel/plugin": "^2.11.0",
+ "parcel": "^2.11.0",
+ "purify-css": "^1.2.5",
"sass": "^1.71.1"
- }
+ },
+ "browserslist": "> 0.5%, last 4 versions, not dead"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 808dbee..1024859 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,373 +5,2593 @@ settings:
excludeLinksFromLockfile: false
devDependencies:
- esbuild:
- specifier: ^0.20.1
- version: 0.20.1
+ '@parcel/config-default':
+ specifier: ^2.11.0
+ version: 2.11.0(@parcel/core@2.11.0)
+ '@parcel/plugin':
+ specifier: ^2.11.0
+ version: 2.11.0(@parcel/core@2.11.0)
+ parcel:
+ specifier: ^2.11.0
+ version: 2.11.0
+ purify-css:
+ specifier: ^1.2.5
+ version: 1.2.5
sass:
specifier: ^1.71.1
version: 1.71.1
packages:
- /@esbuild/aix-ppc64@0.20.1:
- resolution: {integrity:
sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [aix]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/android-arm64@0.20.1:
- resolution: {integrity:
sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
+ /@babel/code-frame@7.23.5:
+ resolution: {integrity:
sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.23.4
+ chalk: 2.4.2
dev: true
- optional: true
- /@esbuild/android-arm@0.20.1:
- resolution: {integrity:
sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
+ /@babel/helper-validator-identifier@7.22.20:
+ resolution: {integrity:
sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ engines: {node: '>=6.9.0'}
dev: true
- optional: true
- /@esbuild/android-x64@0.20.1:
- resolution: {integrity:
sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
+ /@babel/highlight@7.23.4:
+ resolution: {integrity:
sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.20
+ chalk: 2.4.2
+ js-tokens: 4.0.0
dev: true
- optional: true
- /@esbuild/darwin-arm64@0.20.1:
- resolution: {integrity:
sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
+ /@lezer/common@1.2.1:
+ resolution: {integrity:
sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==}
dev: true
- optional: true
- /@esbuild/darwin-x64@0.20.1:
- resolution: {integrity:
sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
+ /@lezer/lr@1.4.0:
+ resolution: {integrity:
sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==}
+ dependencies:
+ '@lezer/common': 1.2.1
dev: true
- optional: true
- /@esbuild/freebsd-arm64@0.20.1:
- resolution: {integrity:
sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==}
- engines: {node: '>=12'}
+ /@lmdb/lmdb-darwin-arm64@2.8.5:
+ resolution: {integrity:
sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==}
cpu: [arm64]
- os: [freebsd]
+ os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@esbuild/freebsd-x64@0.20.1:
- resolution: {integrity:
sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==}
- engines: {node: '>=12'}
+ /@lmdb/lmdb-darwin-x64@2.8.5:
+ resolution: {integrity:
sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==}
cpu: [x64]
- os: [freebsd]
+ os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-arm64@0.20.1:
- resolution: {integrity:
sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==}
- engines: {node: '>=12'}
+ /@lmdb/lmdb-linux-arm64@2.8.5:
+ resolution: {integrity:
sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-arm@0.20.1:
- resolution: {integrity:
sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==}
- engines: {node: '>=12'}
+ /@lmdb/lmdb-linux-arm@2.8.5:
+ resolution: {integrity:
sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-ia32@0.20.1:
- resolution: {integrity:
sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==}
- engines: {node: '>=12'}
- cpu: [ia32]
+ /@lmdb/lmdb-linux-x64@2.8.5:
+ resolution: {integrity:
sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==}
+ cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-loong64@0.20.1:
- resolution: {integrity:
sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
+ /@lmdb/lmdb-win32-x64@2.8.5:
+ resolution: {integrity:
sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==}
+ cpu: [x64]
+ os: [win32]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-mips64el@0.20.1:
- resolution: {integrity:
sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
+ /@mischnic/json-sourcemap@0.1.1:
+ resolution: {integrity:
sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ '@lezer/common': 1.2.1
+ '@lezer/lr': 1.4.0
+ json5: 2.2.3
+ dev: true
+
+ /@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2:
+ resolution: {integrity:
sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==}
+ cpu: [arm64]
+ os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-ppc64@0.20.1:
- resolution: {integrity:
sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
+ /@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2:
+ resolution: {integrity:
sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==}
+ cpu: [x64]
+ os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-riscv64@0.20.1:
- resolution: {integrity:
sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==}
- engines: {node: '>=12'}
- cpu: [riscv64]
+ /@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2:
+ resolution: {integrity:
sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==}
+ cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-s390x@0.20.1:
- resolution: {integrity:
sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==}
- engines: {node: '>=12'}
- cpu: [s390x]
+ /@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2:
+ resolution: {integrity:
sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==}
+ cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@esbuild/linux-x64@0.20.1:
- resolution: {integrity:
sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==}
- engines: {node: '>=12'}
+ /@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2:
+ resolution: {integrity:
sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@esbuild/netbsd-x64@0.20.1:
- resolution: {integrity:
sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==}
- engines: {node: '>=12'}
+ /@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2:
+ resolution: {integrity:
sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==}
cpu: [x64]
- os: [netbsd]
+ os: [win32]
requiresBuild: true
dev: true
optional: true
- /@esbuild/openbsd-x64@0.20.1:
- resolution: {integrity:
sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
+ /@parcel/bundler-default@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-ZIs0865Lp871ZK83k5I9L4DeeE26muNMrHa7j8bvls6fKBJKAn8djrhfU4XOLyziU4aAOobcPwXU0+npWqs52g==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/graph': 3.1.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/rust': 2.11.0
+ '@parcel/utils': 2.11.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- optional: true
- /@esbuild/sunos-x64@0.20.1:
- resolution: {integrity:
sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
+ /@parcel/cache@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-RSSkGNjO00lJPyftzaC9eaNVs4jMjPSAm0VJNWQ9JSm2n4A9BzQtTFAt1vhJOzzW1UsQvvBge9DdfkB7a2gIOw==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@parcel/core': ^2.11.0
+ dependencies:
+ '@parcel/core': 2.11.0
+ '@parcel/fs': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/logger': 2.11.0
+ '@parcel/utils': 2.11.0
+ lmdb: 2.8.5
dev: true
- optional: true
- /@esbuild/win32-arm64@0.20.1:
- resolution: {integrity:
sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
+ /@parcel/codeframe@2.11.0:
+ resolution: {integrity:
sha512-YHs9g/i5af/sd/JrWAojU9YFbKffcJ3Tx2EJaK0ME8OJsye91UaI/3lxSUYLmJG9e4WLNJtqci8V5FBMz//ZPg==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ chalk: 4.1.2
dev: true
- optional: true
- /@esbuild/win32-ia32@0.20.1:
- resolution: {integrity:
sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
+ /@parcel/compressor-raw@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-RArhBPRTCfz77soX2IECH09NUd76UBWujXiPRcXGPIHK+C3L1cRuzsNcA39QeSb3thz3b99JcozMJ1nkC2Bsgw==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- optional: true
- /@esbuild/win32-x64@0.20.1:
- resolution: {integrity:
sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
+ /@parcel/config-default@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-1e2+qcZkm5/0f4eI20p/DemcYiSxq9d/eyjpTXA7PulJaHbL1wonwUAuy3mvnAvDnLOJmAk/obDVgX1ZfxMGtg==}
+ peerDependencies:
+ '@parcel/core': ^2.11.0
+ dependencies:
+ '@parcel/bundler-default': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/compressor-raw': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/core': 2.11.0
+ '@parcel/namer-default': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/optimizer-css': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/optimizer-htmlnano': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/optimizer-image': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/optimizer-svgo': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/optimizer-swc': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/packager-css': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/packager-html': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/packager-js': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/packager-raw': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/packager-svg': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/packager-wasm': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/reporter-dev-server': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/resolver-default': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/runtime-browser-hmr': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/runtime-js': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/runtime-react-refresh': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/runtime-service-worker': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-babel': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-css': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-html': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-image': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-js': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-json': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-postcss': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-posthtml': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-raw': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-react-refresh-wrap': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/transformer-svg': 2.11.0(@parcel/core@2.11.0)
+ transitivePeerDependencies:
+ - '@swc/helpers'
+ - cssnano
+ - postcss
+ - purgecss
+ - relateurl
+ - srcset
+ - terser
+ - typescript
+ - uncss
dev: true
- optional: true
- /anymatch@3.1.3:
- resolution: {integrity:
sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
- engines: {node: '>= 8'}
+ /@parcel/core@2.11.0:
+ resolution: {integrity:
sha512-Npe0S6hVaqWEwRL+HI7gtOYOaoE5bJQZTgUDhsDoppWbau51jOlRYOZTXuvRK/jxXnze4/S1sdM24xBYAQ5qkw==}
+ engines: {node: '>= 12.0.0'}
dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
+ '@mischnic/json-sourcemap': 0.1.1
+ '@parcel/cache': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/events': 2.11.0
+ '@parcel/fs': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/graph': 3.1.0
+ '@parcel/logger': 2.11.0
+ '@parcel/package-manager': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/profiler': 2.11.0
+ '@parcel/rust': 2.11.0
+ '@parcel/source-map': 2.1.1
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ '@parcel/workers': 2.11.0(@parcel/core@2.11.0)
+ abortcontroller-polyfill: 1.7.5
+ base-x: 3.0.9
+ browserslist: 4.23.0
+ clone: 2.1.2
+ dotenv: 7.0.0
+ dotenv-expand: 5.1.0
+ json5: 2.2.3
+ msgpackr: 1.10.1
+ nullthrows: 1.1.1
+ semver: 7.6.0
dev: true
- /binary-extensions@2.2.0:
- resolution: {integrity:
sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
- engines: {node: '>=8'}
+ /@parcel/diagnostic@2.11.0:
+ resolution: {integrity:
sha512-4dJmOXVL5YGGQRRsQosQbSRONBcboB71mSwaeaEgz3pPdq9QXVPLACkGe/jTXSqa3OnAHu3g5vQLpE1g5xqBqw==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ '@mischnic/json-sourcemap': 0.1.1
+ nullthrows: 1.1.1
dev: true
- /braces@3.0.2:
- resolution: {integrity:
sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
- engines: {node: '>=8'}
+ /@parcel/events@2.11.0:
+ resolution: {integrity:
sha512-K6SOjOrQsz1GdNl2qKBktq7KJ3Q3yxK8WXdmQYo10wG39dr051xtMb38aqieTp4eVhL8Yaq2iJgGkdr11fuBnA==}
+ engines: {node: '>= 12.0.0'}
+ dev: true
+
+ /@parcel/fs@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-zWckdnnovdrgdFX4QYuQV4bbKCsh6IYCkmwaB4yp47rhw1MP0lkBINLt4yFPHBxWXOpElCfxjL+z69c9xJQRBQ==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@parcel/core': ^2.11.0
dependencies:
- fill-range: 7.0.1
+ '@parcel/core': 2.11.0
+ '@parcel/rust': 2.11.0
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ '@parcel/watcher': 2.4.1
+ '@parcel/workers': 2.11.0(@parcel/core@2.11.0)
dev: true
- /chokidar@3.6.0:
- resolution: {integrity:
sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
- engines: {node: '>= 8.10.0'}
+ /@parcel/graph@3.1.0:
+ resolution: {integrity:
sha512-d1dTW5C7A52HgDtoXlyvlET1ypSlmIxSIZOJ1xp3R9L9hgo3h1u3jHNyaoTe/WPkGVe2QnFxh0h+UibVJhu9vg==}
+ engines: {node: '>= 12.0.0'}
dependencies:
- anymatch: 3.1.3
- braces: 3.0.2
- glob-parent: 5.1.2
- is-binary-path: 2.1.0
- is-glob: 4.0.3
- normalize-path: 3.0.0
- readdirp: 3.6.0
- optionalDependencies:
- fsevents: 2.3.3
+ nullthrows: 1.1.1
dev: true
- /esbuild@0.20.1:
- resolution: {integrity:
sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==}
- engines: {node: '>=12'}
- hasBin: true
- requiresBuild: true
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.20.1
- '@esbuild/android-arm': 0.20.1
- '@esbuild/android-arm64': 0.20.1
- '@esbuild/android-x64': 0.20.1
- '@esbuild/darwin-arm64': 0.20.1
- '@esbuild/darwin-x64': 0.20.1
- '@esbuild/freebsd-arm64': 0.20.1
- '@esbuild/freebsd-x64': 0.20.1
- '@esbuild/linux-arm': 0.20.1
- '@esbuild/linux-arm64': 0.20.1
- '@esbuild/linux-ia32': 0.20.1
- '@esbuild/linux-loong64': 0.20.1
- '@esbuild/linux-mips64el': 0.20.1
- '@esbuild/linux-ppc64': 0.20.1
- '@esbuild/linux-riscv64': 0.20.1
- '@esbuild/linux-s390x': 0.20.1
- '@esbuild/linux-x64': 0.20.1
- '@esbuild/netbsd-x64': 0.20.1
- '@esbuild/openbsd-x64': 0.20.1
- '@esbuild/sunos-x64': 0.20.1
- '@esbuild/win32-arm64': 0.20.1
- '@esbuild/win32-ia32': 0.20.1
- '@esbuild/win32-x64': 0.20.1
+ /@parcel/logger@2.11.0:
+ resolution: {integrity:
sha512-HtMEdCq3LKnvv4T2CIskcqlf2gpBvHMm3pkeUFB/hc/7hW/hE1k6/HA2VOQvc0tBsaMpmEx7PCrfrH56usQSyA==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/events': 2.11.0
dev: true
- /fill-range@7.0.1:
- resolution: {integrity:
sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
- engines: {node: '>=8'}
+ /@parcel/markdown-ansi@2.11.0:
+ resolution: {integrity:
sha512-YA60EWbXi6cLOIzcwRC2wijotPauOGQbUi0vSbu0O6/mjQ68kWCMGz0hwZjDRQcPypQVJEIvTgMymLbvumxwhg==}
+ engines: {node: '>= 12.0.0'}
dependencies:
- to-regex-range: 5.0.1
+ chalk: 4.1.2
dev: true
- /fsevents@2.3.3:
- resolution: {integrity:
sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
- requiresBuild: true
+ /@parcel/namer-default@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-DEwBSKSClg4DA2xAWimYkw9bFi7MFb9TdT7/TYZStMTsfYHPWOyyjGR7aVr3Ra4wNb+XX6g4rR41yp3HD6KO7A==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- optional: true
- /glob-parent@5.1.2:
- resolution: {integrity:
sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
+ /@parcel/node-resolver-core@3.2.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-XJRSxCkNbGFWjfmwFdcQZ/qlzWZd35qLtvLz2va8euGL7M5OMEQOv7dsvEhl0R+CC2zcnfFzZwxk78q6ezs8AQ==}
+ engines: {node: '>= 12.0.0'}
dependencies:
- is-glob: 4.0.3
+ '@mischnic/json-sourcemap': 0.1.1
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/fs': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/rust': 2.11.0
+ '@parcel/utils': 2.11.0
+ nullthrows: 1.1.1
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- /immutable@4.3.5:
- resolution: {integrity:
sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==}
+ /@parcel/optimizer-css@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-bV97PRxshHV3dMwOpLRgcP1QNhrVWh6VVDfm2gmWULpvsjoykcPS6vrCFksY5CpQsSvNHqJBzQjWS8FubUI76w==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/source-map': 2.1.1
+ '@parcel/utils': 2.11.0
+ browserslist: 4.23.0
+ lightningcss: 1.24.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- /is-binary-path@2.1.0:
- resolution: {integrity:
sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
- engines: {node: '>=8'}
+ /@parcel/optimizer-htmlnano@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-c20pz4EFF5DNFmqYgptlIj49eT6xjGLkDTdHH3RRzxKovuSXWfYSPs3GED3ZsjVuQyjNQif+/MAk9547F7hrdQ==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
dependencies:
- binary-extensions: 2.2.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ htmlnano: 2.1.0(svgo@2.8.0)
+ nullthrows: 1.1.1
+ posthtml: 0.16.6
+ svgo: 2.8.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ - cssnano
+ - postcss
+ - purgecss
+ - relateurl
+ - srcset
+ - terser
+ - typescript
+ - uncss
dev: true
- /is-extglob@2.1.1:
- resolution: {integrity:
sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
+ /@parcel/optimizer-image@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-jCaJww5QFG2GuNzYW8nlSW+Ea+Cv47TRnOPJNquFIajgfTLJ5ddsWbaNal0GQsL8yNiCBKWd1AV4W0RH9tG0Jg==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ peerDependencies:
+ '@parcel/core': ^2.11.0
+ dependencies:
+ '@parcel/core': 2.11.0
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/rust': 2.11.0
+ '@parcel/utils': 2.11.0
+ '@parcel/workers': 2.11.0(@parcel/core@2.11.0)
dev: true
- /is-glob@4.0.3:
- resolution: {integrity:
sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
+ /@parcel/optimizer-svgo@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-TQpvfBhjV2IsuFHXUolbDS6XWB3DDR2rYTlqlA8LMmuOY7jQd9Bnkl4JnapzWm/bRuzRlzdGjjVCPGL8iShFvA==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
dependencies:
- is-extglob: 2.1.1
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ svgo: 2.8.0
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- /is-number@7.0.0:
- resolution: {integrity:
sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
+ /@parcel/optimizer-swc@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-ftf42F3JyZxJb6nnLlgNGyNQ273YOla4dFGH/tWC8iTwObHUpWe7cMbCGcrSJBvAlsLkZfLpFNAXFxUgxdKyHQ==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/source-map': 2.1.1
+ '@parcel/utils': 2.11.0
+ '@swc/core': 1.4.2
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
+ - '@swc/helpers'
dev: true
- /normalize-path@3.0.0:
- resolution: {integrity:
sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
+ /@parcel/package-manager@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-QzdsrUYlAwIzb8by7WJjqYnbR1MoMKWbtE1MXUeYsZbFusV8B6pOH+lwqNJKS/BFtddZMRPYFueZS2N2fwzjig==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@parcel/core': ^2.11.0
+ dependencies:
+ '@parcel/core': 2.11.0
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/fs': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/logger': 2.11.0
+ '@parcel/node-resolver-core': 3.2.0(@parcel/core@2.11.0)
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ '@parcel/workers': 2.11.0(@parcel/core@2.11.0)
+ semver: 7.6.0
dev: true
- /picomatch@2.3.1:
- resolution: {integrity:
sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
+ /@parcel/packager-css@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-AyIxsp4eL8c22vp2oO2hSRnr3hSVNkARNZc9DG6uXxCc2Is5tUEX0I4PwxWnAx0EI44l+3zX/o414zT8yV9wwQ==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/source-map': 2.1.1
+ '@parcel/utils': 2.11.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- /readdirp@3.6.0:
- resolution: {integrity:
sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
- engines: {node: '>=8.10.0'}
+ /@parcel/packager-html@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-ho5AQ70naTV8IqkKIbKtK+jsXQ5TJfFgtBvmJlyB3YydRMbIc+3g4G0xgIvf15V4uCMw9Md0Sv1W65nQXHPQoA==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
dependencies:
- picomatch: 2.3.1
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ nullthrows: 1.1.1
+ posthtml: 0.16.6
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- /sass@1.71.1:
- resolution: {integrity:
sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==}
- engines: {node: '>=14.0.0'}
- hasBin: true
+ /@parcel/packager-js@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-SxjCsd0xQfg5H73YtVJj9VOpr9s0rwMsSoeykjkatbkEla9NsZajsUkd/bfYf+/0WvEKOrB8oUBo15HkGOgKug==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
dependencies:
- chokidar: 3.6.0
- immutable: 4.3.5
- source-map-js: 1.0.2
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/rust': 2.11.0
+ '@parcel/source-map': 2.1.1
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ globals: 13.24.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- /source-map-js@1.0.2:
- resolution: {integrity:
sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
- engines: {node: '>=0.10.0'}
+ /@parcel/packager-raw@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-2/0JQ8DZrz7cVNXwD6OYoUUtSSnlr4dsz8ZkpFDKsBJhvMHtC78Sq+1EDixDGOMiUcalSEjNsoHtkpq9uNh+Xw==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ transitivePeerDependencies:
+ - '@parcel/core'
dev: true
- /to-regex-range@5.0.1:
- resolution: {integrity:
sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
+ /@parcel/packager-svg@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-2wQBkzLwcaWFGWz8TP+bgsXgiueWPzrjKsWugWdDfq0FbXh8XVeR/599qnus3RFHZy4cH6L6yq/7zxcljtxK8A==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
dependencies:
- is-number: 7.0.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ posthtml: 0.16.6
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/packager-wasm@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-tTy4EbDXeeiZ0oB7L2FWaHSD1mbmYZP6R5HXqkvc5dECGUKPU5Jz6ek2C5AM+HfQdQLKXPQ/Xw3eJnI/AmctVg==}
+ engines: {node: '>=12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/plugin@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-9npuKBlhnPn7oeUpLJGecceg16GkXbvzbr6MNSZiHhkx3IBeITHQXlZnp2zAjUOFreNsYOfifwEF2S4KsARfBQ==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/profiler@2.11.0:
+ resolution: {integrity:
sha512-s10SS09prOdwnaAcjK8M5zO8o+zPJJW5oOqXPNdf6KH4NGD/ue7iOk2xM8QLw6ulSwxE7NDt++lyfW3AXgCZwg==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/events': 2.11.0
+ chrome-trace-event: 1.0.3
+ dev: true
+
+ /@parcel/reporter-cli@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-hY0iO0f+LifgJHDUIjGQJnxLFSkk2jlbfy+kIaft5oI3/IM+UljecfGO+14XH8mYlqRXXPsT09TJe8ZKQzp4ZQ==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ chalk: 4.1.2
+ cli-progress: 3.12.0
+ term-size: 2.2.1
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/reporter-dev-server@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-T4ue1+oLFNdcd9maw8QWQuxzOS2kX2jOrSvYKwYd9oGnqiAr1rpiHYYKJhHng+PF5ybwWkj8dUJfGh2NoQysJA==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/reporter-tracer@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-33q4ftO26OPWHkUpEm0bzzSjW2kHEh6q/JFePwf8W6APTQVruj4mV46+Fh6rxX42ixs92K/QoiE0gYgWZQVDHA==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ chrome-trace-event: 1.0.3
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/resolver-default@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-suZNN2lE5W48LPTwAbG7gnj1IeubkCVEm0XspWXcXUtCzglimNJ8PVVBGx171o5CqDpdbGF3AqHjG9N3uOwXag==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/node-resolver-core': 3.2.0(@parcel/core@2.11.0)
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/runtime-browser-hmr@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-uVwNBtoLMrlPHLvRS05BVhLseduMOpZT36yiIjS0YSBJcC6/otI9AY7ZiDPYmrB5xTqM0R+D554JhPaJHCuocw==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/runtime-js@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-fH3nJoexINz7s4cDzp0Vjsx0k1pMYSa5ch38LbbNqCKTermy0pS0zZuvgfLfHFFP+AMRpFQenrF7h7N3bgDmHw==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/runtime-react-refresh@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-Kfnc7gLjhoephLMnjABrkIkzVfzPrpJlxiJFIleY2Fm57YhmCfKsEYxm3lHOutNaYl1VArW0LKClPH/VHG9vfQ==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ react-error-overlay: 6.0.9
+ react-refresh: 0.9.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/runtime-service-worker@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-c8MaSpSbXIKuN5sA/g4UsrsH1BtBZ6Em+eSxt9AYbdPtWrW+qwCioNVZj9lugBRUzDMjVfJz0yK59nS42hABvw==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/rust@2.11.0:
+ resolution: {integrity:
sha512-UkLWdHOD8Md2YmJDPsqd3yIs9chhdl/ATfV/B/xdPKGmqtNouYpDCRlq+WxMt3mLoYgHEg9UwrWLTebo2rr2iQ==}
+ engines: {node: '>= 12.0.0'}
+ dev: true
+
+ /@parcel/source-map@2.1.1:
+ resolution: {integrity:
sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==}
+ engines: {node: ^12.18.3 || >=14}
+ dependencies:
+ detect-libc: 1.0.3
+ dev: true
+
+ /@parcel/transformer-babel@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-WKGblnp7r426VG+cpeQzc6dj/30EoUaYwyl4OEaigQSJizyuPWTBWTz6FUw+ih1/sg37h+D1BIh9C2FsVzpzbw==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/source-map': 2.1.1
+ '@parcel/utils': 2.11.0
+ browserslist: 4.23.0
+ json5: 2.2.3
+ nullthrows: 1.1.1
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/transformer-css@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-nFmBulF/ErNoafO87JbVrBavjBMNwE/kahbCRVxc2Mvlphz4F4lBW4eDRS5l4xBqFJaNkHr9R55ehLBBilF4Jw==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/source-map': 2.1.1
+ '@parcel/utils': 2.11.0
+ browserslist: 4.23.0
+ lightningcss: 1.24.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/transformer-html@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-90vp7mbvvfqPr9XIINpMcELtywj56f1bxfOkLQgWU1bm22H0FT3i5dqdac++2My0IGDvMwhAEjQfbn4pA579NQ==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/rust': 2.11.0
+ nullthrows: 1.1.1
+ posthtml: 0.16.6
+ posthtml-parser: 0.10.2
+ posthtml-render: 3.0.0
+ semver: 7.6.0
+ srcset: 4.0.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/transformer-image@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-QiZj18UHf3lVFsi65Vz8YbS3ydx9Pe9x8ktMxE1oh9qpznN8lD7gE/Z9DxuTZB84EZ9pKytKwcv5WGXP25xIFg==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ peerDependencies:
+ '@parcel/core': ^2.11.0
+ dependencies:
+ '@parcel/core': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ '@parcel/workers': 2.11.0(@parcel/core@2.11.0)
+ nullthrows: 1.1.1
+ dev: true
+
+ /@parcel/transformer-js@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-G1sv0n8/fJqHqwUs0iVnVdmRY0Kh8kWaDkuWcU/GJBHMGhUnLXKdNwxX2Av9UdBL14bU1nTINfr9qOfnQotXWg==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ peerDependencies:
+ '@parcel/core': ^2.11.0
+ dependencies:
+ '@parcel/core': 2.11.0
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/rust': 2.11.0
+ '@parcel/source-map': 2.1.1
+ '@parcel/utils': 2.11.0
+ '@parcel/workers': 2.11.0(@parcel/core@2.11.0)
+ '@swc/helpers': 0.5.6
+ browserslist: 4.23.0
+ nullthrows: 1.1.1
+ regenerator-runtime: 0.13.11
+ semver: 7.6.0
+ dev: true
+
+ /@parcel/transformer-json@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-Wt/wgSBaRWmPL4gpvjkV0bCBRxFOtsuLNzsm8vYA5poxTFhuLY+AoyQ8S2+xXU4VxwBfdppfIr2Ny3SwGs8xbQ==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ json5: 2.2.3
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/transformer-postcss@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-Ugy8XHBaUptGotsvwzq7gPCvkCopTIqqZ0JZ40Jmy9slGms8wnx06pNHA1Be/RcJwkJ2TbSu+7ncZdgmP5x5GQ==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/rust': 2.11.0
+ '@parcel/utils': 2.11.0
+ clone: 2.1.2
+ nullthrows: 1.1.1
+ postcss-value-parser: 4.2.0
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/transformer-posthtml@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-dMK4p1RRAoIJEjK/Wz9GOLqwHqdD/VQDhMPk+6sUKp5zf2MhSohUstpp5gKsSZivCM3PS2f8k9rgroacJ/ReuA==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ nullthrows: 1.1.1
+ posthtml: 0.16.6
+ posthtml-parser: 0.10.2
+ posthtml-render: 3.0.0
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/transformer-raw@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-2ltp3TgS+cxEqSM1vk5gDtJrYx4KMuRRtbSgSvkdldyOgPhflnLU3/HRz72hXSNGqYOV0/JN0+ocsfPnqR00ug==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/transformer-react-refresh-wrap@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-6pY0CdIgIpXC6XpsDWizf+zLgiuEsJ106HjWLwF7/R72BrvDhLPZ6jRu4UTrnd6bM89KahPw9fZZzjKoA5Efcw==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ react-refresh: 0.9.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/transformer-svg@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-GrTNi04OoQSXsyrB7FqQPeYREscEXFhIBPkyQ0q7WDG/yYynWljiA0kwITCtMjPfv2EDVks292dvM3EcnERRIA==}
+ engines: {node: '>= 12.0.0', parcel: ^2.11.0}
+ dependencies:
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/rust': 2.11.0
+ nullthrows: 1.1.1
+ posthtml: 0.16.6
+ posthtml-parser: 0.10.2
+ posthtml-render: 3.0.0
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/types@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-lN5XlfV9b1s2rli8q1LqsLtu+D4ZwNI3sKmNcL/3tohSfQcF2EgF+MaiANGo9VzXOzoWFHt4dqWjO4OcdyC5tg==}
+ dependencies:
+ '@parcel/cache': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/fs': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/package-manager': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/source-map': 2.1.1
+ '@parcel/workers': 2.11.0(@parcel/core@2.11.0)
+ utility-types: 3.11.0
+ transitivePeerDependencies:
+ - '@parcel/core'
+ dev: true
+
+ /@parcel/utils@2.11.0:
+ resolution: {integrity:
sha512-AcL70cXlIyE7eQdvjQbYxegN5l+skqvlJllxTWg4YkIZe9p8Gmv74jLAeLWh5F+IGl5WRn0TSy9JhNJjIMQGwQ==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ '@parcel/codeframe': 2.11.0
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/logger': 2.11.0
+ '@parcel/markdown-ansi': 2.11.0
+ '@parcel/rust': 2.11.0
+ '@parcel/source-map': 2.1.1
+ chalk: 4.1.2
+ nullthrows: 1.1.1
+ dev: true
+
+ /@parcel/watcher-android-arm64@2.4.1:
+ resolution: {integrity:
sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-darwin-arm64@2.4.1:
+ resolution: {integrity:
sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-darwin-x64@2.4.1:
+ resolution: {integrity:
sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-freebsd-x64@2.4.1:
+ resolution: {integrity:
sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-arm-glibc@2.4.1:
+ resolution: {integrity:
sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-arm64-glibc@2.4.1:
+ resolution: {integrity:
sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-arm64-musl@2.4.1:
+ resolution: {integrity:
sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-x64-glibc@2.4.1:
+ resolution: {integrity:
sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-x64-musl@2.4.1:
+ resolution: {integrity:
sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-win32-arm64@2.4.1:
+ resolution: {integrity:
sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-win32-ia32@2.4.1:
+ resolution: {integrity:
sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-win32-x64@2.4.1:
+ resolution: {integrity:
sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher@2.4.1:
+ resolution: {integrity:
sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==}
+ engines: {node: '>= 10.0.0'}
+ dependencies:
+ detect-libc: 1.0.3
+ is-glob: 4.0.3
+ micromatch: 4.0.5
+ node-addon-api: 7.1.0
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.4.1
+ '@parcel/watcher-darwin-arm64': 2.4.1
+ '@parcel/watcher-darwin-x64': 2.4.1
+ '@parcel/watcher-freebsd-x64': 2.4.1
+ '@parcel/watcher-linux-arm-glibc': 2.4.1
+ '@parcel/watcher-linux-arm64-glibc': 2.4.1
+ '@parcel/watcher-linux-arm64-musl': 2.4.1
+ '@parcel/watcher-linux-x64-glibc': 2.4.1
+ '@parcel/watcher-linux-x64-musl': 2.4.1
+ '@parcel/watcher-win32-arm64': 2.4.1
+ '@parcel/watcher-win32-ia32': 2.4.1
+ '@parcel/watcher-win32-x64': 2.4.1
+ dev: true
+
+ /@parcel/workers@2.11.0(@parcel/core@2.11.0):
+ resolution: {integrity:
sha512-wjybqdSy6Nk0N9iBGsFcp7739W2zvx0WGfVxPVShqhz46pIkPOiFF/iSn+kFu5EmMKTRWeUif42+a6rRZ7pCnQ==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@parcel/core': ^2.11.0
+ dependencies:
+ '@parcel/core': 2.11.0
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/logger': 2.11.0
+ '@parcel/profiler': 2.11.0
+ '@parcel/types': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ nullthrows: 1.1.1
+ dev: true
+
+ /@swc/core-darwin-arm64@1.4.2:
+ resolution: {integrity:
sha512-1uSdAn1MRK5C1m/TvLZ2RDvr0zLvochgrZ2xL+lRzugLlCTlSA+Q4TWtrZaOz+vnnFVliCpw7c7qu0JouhgQIw==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-darwin-x64@1.4.2:
+ resolution: {integrity:
sha512-TYD28+dCQKeuxxcy7gLJUCFLqrwDZnHtC2z7cdeGfZpbI2mbfppfTf2wUPzqZk3gEC96zHd4Yr37V3Tvzar+lQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-linux-arm-gnueabihf@1.4.2:
+ resolution: {integrity:
sha512-Eyqipf7ZPGj0vplKHo8JUOoU1un2sg5PjJMpEesX0k+6HKE2T8pdyeyXODN0YTFqzndSa/J43EEPXm+rHAsLFQ==}
+ engines: {node: '>=10'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-linux-arm64-gnu@1.4.2:
+ resolution: {integrity:
sha512-wZn02DH8VYPv3FC0ub4my52Rttsus/rFw+UUfzdb3tHMHXB66LqN+rR0ssIOZrH6K+VLN6qpTw9VizjyoH0BxA==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-linux-arm64-musl@1.4.2:
+ resolution: {integrity:
sha512-3G0D5z9hUj9bXNcwmA1eGiFTwe5rWkuL3DsoviTj73TKLpk7u64ND0XjEfO0huVv4vVu9H1jodrKb7nvln/dlw==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-linux-x64-gnu@1.4.2:
+ resolution: {integrity:
sha512-LFxn9U8cjmYHw3jrdPNqPAkBGglKE3tCZ8rA7hYyp0BFxuo7L2ZcEnPm4RFpmSCCsExFH+LEJWuMGgWERoktvg==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-linux-x64-musl@1.4.2:
+ resolution: {integrity:
sha512-dp0fAmreeVVYTUcb4u9njTPrYzKnbIH0EhH2qvC9GOYNNREUu2GezSIDgonjOXkHiTCvopG4xU7y56XtXj4VrQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-win32-arm64-msvc@1.4.2:
+ resolution: {integrity:
sha512-HlVIiLMQkzthAdqMslQhDkoXJ5+AOLUSTV6fm6shFKZKqc/9cJvr4S8UveNERL9zUficA36yM3bbfo36McwnvQ==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-win32-ia32-msvc@1.4.2:
+ resolution: {integrity:
sha512-WCF8faPGjCl4oIgugkp+kL9nl3nUATlzKXCEGFowMEmVVCFM0GsqlmGdPp1pjZoWc9tpYanoXQDnp5IvlDSLhA==}
+ engines: {node: '>=10'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-win32-x64-msvc@1.4.2:
+ resolution: {integrity:
sha512-oV71rwiSpA5xre2C5570BhCsg1HF97SNLsZ/12xv7zayGzqr3yvFALFJN8tHKpqUdCB4FGPjoP3JFdV3i+1wUw==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core@1.4.2:
+ resolution: {integrity:
sha512-vWgY07R/eqj1/a0vsRKLI9o9klGZfpLNOVEnrv4nrccxBgYPjcf22IWwAoaBJ+wpA7Q4fVjCUM8lP0m01dpxcg==}
+ engines: {node: '>=10'}
+ requiresBuild: true
+ peerDependencies:
+ '@swc/helpers': ^0.5.0
+ peerDependenciesMeta:
+ '@swc/helpers':
+ optional: true
+ dependencies:
+ '@swc/counter': 0.1.3
+ '@swc/types': 0.1.5
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.4.2
+ '@swc/core-darwin-x64': 1.4.2
+ '@swc/core-linux-arm-gnueabihf': 1.4.2
+ '@swc/core-linux-arm64-gnu': 1.4.2
+ '@swc/core-linux-arm64-musl': 1.4.2
+ '@swc/core-linux-x64-gnu': 1.4.2
+ '@swc/core-linux-x64-musl': 1.4.2
+ '@swc/core-win32-arm64-msvc': 1.4.2
+ '@swc/core-win32-ia32-msvc': 1.4.2
+ '@swc/core-win32-x64-msvc': 1.4.2
+ dev: true
+
+ /@swc/counter@0.1.3:
+ resolution: {integrity:
sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+ dev: true
+
+ /@swc/helpers@0.5.6:
+ resolution: {integrity:
sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==}
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+
+ /@swc/types@0.1.5:
+ resolution: {integrity:
sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
+ dev: true
+
+ /@trysound/sax@0.2.0:
+ resolution: {integrity:
sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
+ engines: {node: '>=10.13.0'}
+ dev: true
+
+ /abortcontroller-polyfill@1.7.5:
+ resolution: {integrity:
sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==}
+ dev: true
+
+ /ansi-regex@2.1.1:
+ resolution: {integrity:
sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /ansi-regex@3.0.1:
+ resolution: {integrity:
sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity:
sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ansi-styles@3.2.1:
+ resolution: {integrity:
sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+ dev: true
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity:
sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+
+ /anymatch@3.1.3:
+ resolution: {integrity:
sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /argparse@2.0.1:
+ resolution: {integrity:
sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: true
+
+ /atob@2.1.2:
+ resolution: {integrity:
sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+ engines: {node: '>= 4.5.0'}
+ hasBin: true
+ dev: true
+
+ /balanced-match@1.0.2:
+ resolution: {integrity:
sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /base-x@3.0.9:
+ resolution: {integrity:
sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: true
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity:
sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /boolbase@1.0.0:
+ resolution: {integrity:
sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+ dev: true
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity:
sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: true
+
+ /braces@3.0.2:
+ resolution: {integrity:
sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /browserslist@4.23.0:
+ resolution: {integrity:
sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001589
+ electron-to-chromium: 1.4.681
+ node-releases: 2.0.14
+ update-browserslist-db: 1.0.13(browserslist@4.23.0)
+ dev: true
+
+ /callsites@3.1.0:
+ resolution: {integrity:
sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /camelcase@4.1.0:
+ resolution: {integrity:
sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /caniuse-lite@1.0.30001589:
+ resolution: {integrity:
sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==}
+ dev: true
+
+ /chalk@2.4.2:
+ resolution: {integrity:
sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+ dev: true
+
+ /chalk@4.1.2:
+ resolution: {integrity:
sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+ dev: true
+
+ /chokidar@3.6.0:
+ resolution: {integrity:
sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /chrome-trace-event@1.0.3:
+ resolution: {integrity:
sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
+ engines: {node: '>=6.0'}
+ dev: true
+
+ /clean-css@4.2.4:
+ resolution: {integrity:
sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==}
+ engines: {node: '>= 4.0'}
+ dependencies:
+ source-map: 0.6.1
+ dev: true
+
+ /cli-progress@3.12.0:
+ resolution: {integrity:
sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==}
+ engines: {node: '>=4'}
+ dependencies:
+ string-width: 4.2.3
+ dev: true
+
+ /cliui@3.2.0:
+ resolution: {integrity:
sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==}
+ dependencies:
+ string-width: 1.0.2
+ strip-ansi: 3.0.1
+ wrap-ansi: 2.1.0
+ dev: true
+
+ /clone@2.1.2:
+ resolution: {integrity:
sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+ dev: true
+
+ /code-point-at@1.1.0:
+ resolution: {integrity:
sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /color-convert@1.9.3:
+ resolution: {integrity:
sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+ dev: true
+
+ /color-convert@2.0.1:
+ resolution: {integrity:
sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: true
+
+ /color-name@1.1.3:
+ resolution: {integrity:
sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+ dev: true
+
+ /color-name@1.1.4:
+ resolution: {integrity:
sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
+
+ /commander@7.2.0:
+ resolution: {integrity:
sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+ dev: true
+
+ /concat-map@0.0.1:
+ resolution: {integrity:
sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ dev: true
+
+ /convert-source-map@0.3.5:
+ resolution: {integrity:
sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg==}
+ dev: true
+
+ /cosmiconfig@8.3.6:
+ resolution: {integrity:
sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ dev: true
+
+ /cross-spawn@5.1.0:
+ resolution: {integrity:
sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
+ dependencies:
+ lru-cache: 4.1.5
+ shebang-command: 1.2.0
+ which: 1.3.1
+ dev: true
+
+ /css-select@4.3.0:
+ resolution: {integrity:
sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 4.3.1
+ domutils: 2.8.0
+ nth-check: 2.1.1
+ dev: true
+
+ /css-tree@1.1.3:
+ resolution: {integrity:
sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ mdn-data: 2.0.14
+ source-map: 0.6.1
+ dev: true
+
+ /css-what@6.1.0:
+ resolution: {integrity:
sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /css@2.2.4:
+ resolution: {integrity:
sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==}
+ dependencies:
+ inherits: 2.0.4
+ source-map: 0.6.1
+ source-map-resolve: 0.5.3
+ urix: 0.1.0
+ dev: true
+
+ /csso@4.2.0:
+ resolution: {integrity:
sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ css-tree: 1.1.3
+ dev: true
+
+ /decamelize@1.2.0:
+ resolution: {integrity:
sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /decode-uri-component@0.2.2:
+ resolution: {integrity:
sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+ dev: true
+
+ /detect-libc@1.0.3:
+ resolution: {integrity:
sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+ dev: true
+
+ /detect-libc@2.0.2:
+ resolution: {integrity:
sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /dom-serializer@1.4.1:
+ resolution: {integrity:
sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ entities: 2.2.0
+ dev: true
+
+ /domelementtype@2.3.0:
+ resolution: {integrity:
sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+ dev: true
+
+ /domhandler@4.3.1:
+ resolution: {integrity:
sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+ dev: true
+
+ /domutils@2.8.0:
+ resolution: {integrity:
sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+ dependencies:
+ dom-serializer: 1.4.1
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ dev: true
+
+ /dotenv-expand@5.1.0:
+ resolution: {integrity:
sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==}
+ dev: true
+
+ /dotenv@7.0.0:
+ resolution: {integrity:
sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /electron-to-chromium@1.4.681:
+ resolution: {integrity:
sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==}
+ dev: true
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity:
sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: true
+
+ /entities@2.2.0:
+ resolution: {integrity:
sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+ dev: true
+
+ /entities@3.0.1:
+ resolution: {integrity:
sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
+ engines: {node: '>=0.12'}
+ dev: true
+
+ /error-ex@1.3.2:
+ resolution: {integrity:
sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ dependencies:
+ is-arrayish: 0.2.1
+ dev: true
+
+ /escalade@3.1.2:
+ resolution: {integrity:
sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp@1.0.5:
+ resolution: {integrity:
sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /execa@0.7.0:
+ resolution: {integrity:
sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==}
+ engines: {node: '>=4'}
+ dependencies:
+ cross-spawn: 5.1.0
+ get-stream: 3.0.0
+ is-stream: 1.1.0
+ npm-run-path: 2.0.2
+ p-finally: 1.0.0
+ signal-exit: 3.0.7
+ strip-eof: 1.0.0
+ dev: true
+
+ /fill-range@7.0.1:
+ resolution: {integrity:
sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /find-up@2.1.0:
+ resolution: {integrity:
sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ locate-path: 2.0.0
+ dev: true
+
+ /fs.realpath@1.0.0:
+ resolution: {integrity:
sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ dev: true
+
+ /fsevents@2.3.3:
+ resolution: {integrity:
sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind@1.1.2:
+ resolution: {integrity:
sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ dev: true
+
+ /get-caller-file@1.0.3:
+ resolution: {integrity:
sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==}
+ dev: true
+
+ /get-port@4.2.0:
+ resolution: {integrity:
sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /get-stream@3.0.0:
+ resolution: {integrity:
sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /glob-parent@5.1.2:
+ resolution: {integrity:
sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob@7.2.3:
+ resolution: {integrity:
sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /globals@13.24.0:
+ resolution: {integrity:
sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.20.2
+ dev: true
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity:
sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: true
+
+ /has-flag@3.0.0:
+ resolution: {integrity:
sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has-flag@4.0.0:
+ resolution: {integrity:
sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /hasown@2.0.1:
+ resolution: {integrity:
sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ function-bind: 1.1.2
+ dev: true
+
+ /hosted-git-info@2.8.9:
+ resolution: {integrity:
sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+ dev: true
+
+ /htmlnano@2.1.0(svgo@2.8.0):
+ resolution: {integrity:
sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==}
+ peerDependencies:
+ cssnano: ^6.0.0
+ postcss: ^8.3.11
+ purgecss: ^5.0.0
+ relateurl: ^0.2.7
+ srcset: 4.0.0
+ svgo: ^3.0.2
+ terser: ^5.10.0
+ uncss: ^0.17.3
+ peerDependenciesMeta:
+ cssnano:
+ optional: true
+ postcss:
+ optional: true
+ purgecss:
+ optional: true
+ relateurl:
+ optional: true
+ srcset:
+ optional: true
+ svgo:
+ optional: true
+ terser:
+ optional: true
+ uncss:
+ optional: true
+ dependencies:
+ cosmiconfig: 8.3.6
+ posthtml: 0.16.6
+ svgo: 2.8.0
+ timsort: 0.3.0
+ transitivePeerDependencies:
+ - typescript
+ dev: true
+
+ /htmlparser2@7.2.0:
+ resolution: {integrity:
sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ domutils: 2.8.0
+ entities: 3.0.1
+ dev: true
+
+ /immutable@4.3.5:
+ resolution: {integrity:
sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==}
+ dev: true
+
+ /import-fresh@3.3.0:
+ resolution: {integrity:
sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+ dev: true
+
+ /inflight@1.0.6:
+ resolution: {integrity:
sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: true
+
+ /inherits@2.0.4:
+ resolution: {integrity:
sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
+
+ /invert-kv@1.0.0:
+ resolution: {integrity:
sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-arrayish@0.2.1:
+ resolution: {integrity:
sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+ dev: true
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity:
sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
+ /is-core-module@2.13.1:
+ resolution: {integrity:
sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
+ dependencies:
+ hasown: 2.0.1
+ dev: true
+
+ /is-extglob@2.1.1:
+ resolution: {integrity:
sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-fullwidth-code-point@1.0.0:
+ resolution: {integrity:
sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ number-is-nan: 1.0.1
+ dev: true
+
+ /is-fullwidth-code-point@2.0.0:
+ resolution: {integrity:
sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity:
sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-glob@4.0.3:
+ resolution: {integrity:
sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-json@2.0.1:
+ resolution: {integrity:
sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==}
+ dev: true
+
+ /is-number@7.0.0:
+ resolution: {integrity:
sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-stream@1.1.0:
+ resolution: {integrity:
sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /isexe@2.0.0:
+ resolution: {integrity:
sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ dev: true
+
+ /js-tokens@4.0.0:
+ resolution: {integrity:
sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /js-yaml@4.1.0:
+ resolution: {integrity:
sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /json-parse-even-better-errors@2.3.1:
+ resolution: {integrity:
sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ dev: true
+
+ /json5@2.2.3:
+ resolution: {integrity:
sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dev: true
+
+ /lcid@1.0.0:
+ resolution: {integrity:
sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ invert-kv: 1.0.0
+ dev: true
+
+ /lightningcss-darwin-arm64@1.24.0:
+ resolution: {integrity:
sha512-rTNPkEiynOu4CfGdd5ZfVOQe2gd2idfQd4EfX1l2ZUUwd+2SwSdbb7cG4rlwfnZckbzCAygm85xkpekRE5/wFw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss-darwin-x64@1.24.0:
+ resolution: {integrity:
sha512-4KCeF2RJjzp9xdGY8zIH68CUtptEg8uz8PfkHvsIdrP4t9t5CIgfDBhiB8AmuO75N6SofdmZexDZIKdy9vA7Ww==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss-freebsd-x64@1.24.0:
+ resolution: {integrity:
sha512-FJAYlek1wXuVTsncNU0C6YD41q126dXcIUm97KAccMn9C4s/JfLSqGWT2gIzAblavPFkyGG2gIADTWp3uWfN1g==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss-linux-arm-gnueabihf@1.24.0:
+ resolution: {integrity:
sha512-N55K6JqzMx7C0hYUu1YmWqhkHwzEJlkQRMA6phY65noO0I1LOAvP4wBIoFWrzRE+O6zL0RmXJ2xppqyTbk3sYw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss-linux-arm64-gnu@1.24.0:
+ resolution: {integrity:
sha512-MqqUB2TpYtFWeBvvf5KExDdClU3YGLW5bHKs50uKKootcvG9KoS7wYwd5UichS+W3mYLc5yXUPGD1DNWbLiYKw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss-linux-arm64-musl@1.24.0:
+ resolution: {integrity:
sha512-5wn4d9tFwa5bS1ao9mLexYVJdh3nn09HNIipsII6ZF7z9ZA5J4dOEhMgKoeCl891axTGTUYd8Kxn+Hn3XUSYRQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss-linux-x64-gnu@1.24.0:
+ resolution: {integrity:
sha512-3j5MdTh+LSDF3o6uDwRjRUgw4J+IfDCVtdkUrJvKxL79qBLUujXY7CTe5X3IQDDLKEe/3wu49r8JKgxr0MfjbQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss-linux-x64-musl@1.24.0:
+ resolution: {integrity:
sha512-HI+rNnvaLz0o36z6Ki0gyG5igVGrJmzczxA5fznr6eFTj3cHORoR/j2q8ivMzNFR4UKJDkTWUH5LMhacwOHWBA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss-win32-x64-msvc@1.24.0:
+ resolution: {integrity:
sha512-oeije/t7OZ5N9vSs6amyW/34wIYoBCpE6HUlsSKcP2SR1CVgx9oKEM00GtQmtqNnYiMIfsSm7+ppMb4NLtD5vg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /lightningcss@1.24.0:
+ resolution: {integrity:
sha512-y36QEEDVx4IM7/yIZNsZJMRREIu26WzTsauIysf5s76YeCmlSbRZS7aC97IGPuoFRnyZ5Wx43OBsQBFB5Ne7ng==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ detect-libc: 1.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.24.0
+ lightningcss-darwin-x64: 1.24.0
+ lightningcss-freebsd-x64: 1.24.0
+ lightningcss-linux-arm-gnueabihf: 1.24.0
+ lightningcss-linux-arm64-gnu: 1.24.0
+ lightningcss-linux-arm64-musl: 1.24.0
+ lightningcss-linux-x64-gnu: 1.24.0
+ lightningcss-linux-x64-musl: 1.24.0
+ lightningcss-win32-x64-msvc: 1.24.0
+ dev: true
+
+ /lines-and-columns@1.2.4:
+ resolution: {integrity:
sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
+
+ /lmdb@2.8.5:
+ resolution: {integrity:
sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==}
+ hasBin: true
+ requiresBuild: true
+ dependencies:
+ msgpackr: 1.10.1
+ node-addon-api: 6.1.0
+ node-gyp-build-optional-packages: 5.1.1
+ ordered-binary: 1.5.1
+ weak-lru-cache: 1.2.2
+ optionalDependencies:
+ '@lmdb/lmdb-darwin-arm64': 2.8.5
+ '@lmdb/lmdb-darwin-x64': 2.8.5
+ '@lmdb/lmdb-linux-arm': 2.8.5
+ '@lmdb/lmdb-linux-arm64': 2.8.5
+ '@lmdb/lmdb-linux-x64': 2.8.5
+ '@lmdb/lmdb-win32-x64': 2.8.5
+ dev: true
+
+ /load-json-file@2.0.0:
+ resolution: {integrity:
sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ graceful-fs: 4.2.11
+ parse-json: 2.2.0
+ pify: 2.3.0
+ strip-bom: 3.0.0
+ dev: true
+
+ /locate-path@2.0.0:
+ resolution: {integrity:
sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
+ engines: {node: '>=4'}
+ dependencies:
+ p-locate: 2.0.0
+ path-exists: 3.0.0
+ dev: true
+
+ /lru-cache@4.1.5:
+ resolution: {integrity:
sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
+ dependencies:
+ pseudomap: 1.0.2
+ yallist: 2.1.2
+ dev: true
+
+ /lru-cache@6.0.0:
+ resolution: {integrity:
sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /mdn-data@2.0.14:
+ resolution: {integrity:
sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
+ dev: true
+
+ /mem@1.1.0:
+ resolution: {integrity:
sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ mimic-fn: 1.2.0
+ dev: true
+
+ /micromatch@4.0.5:
+ resolution: {integrity:
sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /mimic-fn@1.2.0:
+ resolution: {integrity:
sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /minimatch@3.1.2:
+ resolution: {integrity:
sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: true
+
+ /msgpackr-extract@3.0.2:
+ resolution: {integrity:
sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==}
+ hasBin: true
+ requiresBuild: true
+ dependencies:
+ node-gyp-build-optional-packages: 5.0.7
+ optionalDependencies:
+ '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.2
+ '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.2
+ '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.2
+ '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.2
+ '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.2
+ '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.2
+ dev: true
+ optional: true
+
+ /msgpackr@1.10.1:
+ resolution: {integrity:
sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==}
+ optionalDependencies:
+ msgpackr-extract: 3.0.2
+ dev: true
+
+ /node-addon-api@6.1.0:
+ resolution: {integrity:
sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
+ dev: true
+
+ /node-addon-api@7.1.0:
+ resolution: {integrity:
sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==}
+ engines: {node: ^16 || ^18 || >= 20}
+ dev: true
+
+ /node-gyp-build-optional-packages@5.0.7:
+ resolution: {integrity:
sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==}
+ hasBin: true
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /node-gyp-build-optional-packages@5.1.1:
+ resolution: {integrity:
sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==}
+ hasBin: true
+ dependencies:
+ detect-libc: 2.0.2
+ dev: true
+
+ /node-releases@2.0.14:
+ resolution: {integrity:
sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
+ dev: true
+
+ /normalize-package-data@2.5.0:
+ resolution: {integrity:
sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.8
+ semver: 5.7.2
+ validate-npm-package-license: 3.0.4
+ dev: true
+
+ /normalize-path@3.0.0:
+ resolution: {integrity:
sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /npm-run-path@2.0.2:
+ resolution: {integrity:
sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
+ engines: {node: '>=4'}
+ dependencies:
+ path-key: 2.0.1
+ dev: true
+
+ /nth-check@2.1.1:
+ resolution: {integrity:
sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+ dependencies:
+ boolbase: 1.0.0
+ dev: true
+
+ /nullthrows@1.1.1:
+ resolution: {integrity:
sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
+ dev: true
+
+ /number-is-nan@1.0.1:
+ resolution: {integrity:
sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /once@1.4.0:
+ resolution: {integrity:
sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+ dev: true
+
+ /ordered-binary@1.5.1:
+ resolution: {integrity:
sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==}
+ dev: true
+
+ /os-locale@2.1.0:
+ resolution: {integrity:
sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==}
+ engines: {node: '>=4'}
+ dependencies:
+ execa: 0.7.0
+ lcid: 1.0.0
+ mem: 1.1.0
+ dev: true
+
+ /p-finally@1.0.0:
+ resolution: {integrity:
sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /p-limit@1.3.0:
+ resolution: {integrity:
sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
+ engines: {node: '>=4'}
+ dependencies:
+ p-try: 1.0.0
+ dev: true
+
+ /p-locate@2.0.0:
+ resolution: {integrity:
sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
+ engines: {node: '>=4'}
+ dependencies:
+ p-limit: 1.3.0
+ dev: true
+
+ /p-try@1.0.0:
+ resolution: {integrity:
sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /parcel@2.11.0:
+ resolution: {integrity:
sha512-H/RI1/DmuOkL8RuG/EpNPvtzrbF+7jA/R56ydEEm+lqFbYktKB4COR7JXdHkZXRgbSJyimrFB8d0r9+SaRnj0Q==}
+ engines: {node: '>= 12.0.0'}
+ hasBin: true
+ dependencies:
+ '@parcel/config-default': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/core': 2.11.0
+ '@parcel/diagnostic': 2.11.0
+ '@parcel/events': 2.11.0
+ '@parcel/fs': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/logger': 2.11.0
+ '@parcel/package-manager': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/reporter-cli': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/reporter-dev-server': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/reporter-tracer': 2.11.0(@parcel/core@2.11.0)
+ '@parcel/utils': 2.11.0
+ chalk: 4.1.2
+ commander: 7.2.0
+ get-port: 4.2.0
+ transitivePeerDependencies:
+ - '@swc/helpers'
+ - cssnano
+ - postcss
+ - purgecss
+ - relateurl
+ - srcset
+ - terser
+ - typescript
+ - uncss
+ dev: true
+
+ /parent-module@1.0.1:
+ resolution: {integrity:
sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+ dev: true
+
+ /parse-json@2.2.0:
+ resolution: {integrity:
sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ error-ex: 1.3.2
+ dev: true
+
+ /parse-json@5.2.0:
+ resolution: {integrity:
sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+ dev: true
+
+ /path-exists@3.0.0:
+ resolution: {integrity:
sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity:
sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-key@2.0.1:
+ resolution: {integrity:
sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /path-parse@1.0.7:
+ resolution: {integrity:
sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /path-type@2.0.0:
+ resolution: {integrity:
sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ pify: 2.3.0
+ dev: true
+
+ /path-type@4.0.0:
+ resolution: {integrity:
sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /picocolors@1.0.0:
+ resolution: {integrity:
sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ dev: true
+
+ /picomatch@2.3.1:
+ resolution: {integrity:
sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
+
+ /pify@2.3.0:
+ resolution: {integrity:
sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /postcss-value-parser@4.2.0:
+ resolution: {integrity:
sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+ dev: true
+
+ /posthtml-parser@0.10.2:
+ resolution: {integrity:
sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==}
+ engines: {node: '>=12'}
+ dependencies:
+ htmlparser2: 7.2.0
+ dev: true
+
+ /posthtml-parser@0.11.0:
+ resolution: {integrity:
sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==}
+ engines: {node: '>=12'}
+ dependencies:
+ htmlparser2: 7.2.0
+ dev: true
+
+ /posthtml-render@3.0.0:
+ resolution: {integrity:
sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==}
+ engines: {node: '>=12'}
+ dependencies:
+ is-json: 2.0.1
+ dev: true
+
+ /posthtml@0.16.6:
+ resolution: {integrity:
sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ posthtml-parser: 0.11.0
+ posthtml-render: 3.0.0
+ dev: true
+
+ /pseudomap@1.0.2:
+ resolution: {integrity:
sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
+ dev: true
+
+ /purify-css@1.2.5:
+ resolution: {integrity:
sha512-Vy4jRnV2w/kUjTyxzQOKbFkqwUe6RNLuZgIWR/IRQ8nCqRwiFgwC9XiO9+8poq5KL053uWAQnCSbsfihq77zPg==}
+ hasBin: true
+ dependencies:
+ clean-css: 4.2.4
+ glob: 7.2.3
+ rework: 1.0.1
+ uglify-js: 3.17.4
+ yargs: 8.0.2
+ dev: true
+
+ /react-error-overlay@6.0.9:
+ resolution: {integrity:
sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==}
+ dev: true
+
+ /react-refresh@0.9.0:
+ resolution: {integrity:
sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /read-pkg-up@2.0.0:
+ resolution: {integrity:
sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==}
+ engines: {node: '>=4'}
+ dependencies:
+ find-up: 2.1.0
+ read-pkg: 2.0.0
+ dev: true
+
+ /read-pkg@2.0.0:
+ resolution: {integrity:
sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==}
+ engines: {node: '>=4'}
+ dependencies:
+ load-json-file: 2.0.0
+ normalize-package-data: 2.5.0
+ path-type: 2.0.0
+ dev: true
+
+ /readdirp@3.6.0:
+ resolution: {integrity:
sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /regenerator-runtime@0.13.11:
+ resolution: {integrity:
sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
+ dev: true
+
+ /require-directory@2.1.1:
+ resolution: {integrity:
sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /require-main-filename@1.0.1:
+ resolution: {integrity:
sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==}
+ dev: true
+
+ /resolve-from@4.0.0:
+ resolution: {integrity:
sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /resolve-url@0.2.1:
+ resolution: {integrity:
sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
+ deprecated: https://github.com/lydell/resolve-url#deprecated
+ dev: true
+
+ /resolve@1.22.8:
+ resolution: {integrity:
sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.13.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /rework@1.0.1:
+ resolution: {integrity:
sha512-eEjL8FdkdsxApd0yWVZgBGzfCQiT8yqSc2H1p4jpZpQdtz7ohETiDMoje5PlM8I9WgkqkreVxFUKYOiJdVWDXw==}
+ dependencies:
+ convert-source-map: 0.3.5
+ css: 2.2.4
+ dev: true
+
+ /safe-buffer@5.2.1:
+ resolution: {integrity:
sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: true
+
+ /sass@1.71.1:
+ resolution: {integrity:
sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+ dependencies:
+ chokidar: 3.6.0
+ immutable: 4.3.5
+ source-map-js: 1.0.2
+ dev: true
+
+ /semver@5.7.2:
+ resolution: {integrity:
sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+ dev: true
+
+ /semver@7.6.0:
+ resolution: {integrity:
sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
+ /set-blocking@2.0.0:
+ resolution: {integrity:
sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
+ dev: true
+
+ /shebang-command@1.2.0:
+ resolution: {integrity:
sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ shebang-regex: 1.0.0
+ dev: true
+
+ /shebang-regex@1.0.0:
+ resolution: {integrity:
sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /signal-exit@3.0.7:
+ resolution: {integrity:
sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+ dev: true
+
+ /source-map-js@1.0.2:
+ resolution: {integrity:
sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /source-map-resolve@0.5.3:
+ resolution: {integrity:
sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
+ deprecated: See https://github.com/lydell/source-map-resolve#deprecated
+ dependencies:
+ atob: 2.1.2
+ decode-uri-component: 0.2.2
+ resolve-url: 0.2.1
+ source-map-url: 0.4.1
+ urix: 0.1.0
+ dev: true
+
+ /source-map-url@0.4.1:
+ resolution: {integrity:
sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+ dev: true
+
+ /source-map@0.6.1:
+ resolution: {integrity:
sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /spdx-correct@3.2.0:
+ resolution: {integrity:
sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.17
+ dev: true
+
+ /spdx-exceptions@2.5.0:
+ resolution: {integrity:
sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+ dev: true
+
+ /spdx-expression-parse@3.0.1:
+ resolution: {integrity:
sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.17
+ dev: true
+
+ /spdx-license-ids@3.0.17:
+ resolution: {integrity:
sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
+ dev: true
+
+ /srcset@4.0.0:
+ resolution: {integrity:
sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /stable@0.1.8:
+ resolution: {integrity:
sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
+ deprecated: 'Modern JS already guarantees Array#sort() is a stable sort,
so this library is deprecated. See the compatibility table on MDN:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
+ dev: true
+
+ /string-width@1.0.2:
+ resolution: {integrity:
sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ code-point-at: 1.1.0
+ is-fullwidth-code-point: 1.0.0
+ strip-ansi: 3.0.1
+ dev: true
+
+ /string-width@2.1.1:
+ resolution: {integrity:
sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==}
+ engines: {node: '>=4'}
+ dependencies:
+ is-fullwidth-code-point: 2.0.0
+ strip-ansi: 4.0.0
+ dev: true
+
+ /string-width@4.2.3:
+ resolution: {integrity:
sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+ dev: true
+
+ /strip-ansi@3.0.1:
+ resolution: {integrity:
sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ ansi-regex: 2.1.1
+ dev: true
+
+ /strip-ansi@4.0.0:
+ resolution: {integrity:
sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-regex: 3.0.1
+ dev: true
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity:
sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-bom@3.0.0:
+ resolution: {integrity:
sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /strip-eof@1.0.0:
+ resolution: {integrity:
sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /supports-color@5.5.0:
+ resolution: {integrity:
sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+ dev: true
+
+ /supports-color@7.2.0:
+ resolution: {integrity:
sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ dev: true
+
+ /supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity:
sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /svgo@2.8.0:
+ resolution: {integrity:
sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dependencies:
+ '@trysound/sax': 0.2.0
+ commander: 7.2.0
+ css-select: 4.3.0
+ css-tree: 1.1.3
+ csso: 4.2.0
+ picocolors: 1.0.0
+ stable: 0.1.8
+ dev: true
+
+ /term-size@2.2.1:
+ resolution: {integrity:
sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /timsort@0.3.0:
+ resolution: {integrity:
sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==}
+ dev: true
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity:
sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /tslib@2.6.2:
+ resolution: {integrity:
sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ dev: true
+
+ /type-fest@0.20.2:
+ resolution: {integrity:
sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /uglify-js@3.17.4:
+ resolution: {integrity:
sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+ dev: true
+
+ /update-browserslist-db@1.0.13(browserslist@4.23.0):
+ resolution: {integrity:
sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.23.0
+ escalade: 3.1.2
+ picocolors: 1.0.0
+ dev: true
+
+ /urix@0.1.0:
+ resolution: {integrity:
sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
+ deprecated: Please see https://github.com/lydell/urix#deprecated
+ dev: true
+
+ /utility-types@3.11.0:
+ resolution: {integrity:
sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /validate-npm-package-license@3.0.4:
+ resolution: {integrity:
sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+ dev: true
+
+ /weak-lru-cache@1.2.2:
+ resolution: {integrity:
sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==}
+ dev: true
+
+ /which-module@2.0.1:
+ resolution: {integrity:
sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
+ dev: true
+
+ /which@1.3.1:
+ resolution: {integrity:
sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: true
+
+ /wrap-ansi@2.1.0:
+ resolution: {integrity:
sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ string-width: 1.0.2
+ strip-ansi: 3.0.1
+ dev: true
+
+ /wrappy@1.0.2:
+ resolution: {integrity:
sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+ dev: true
+
+ /y18n@3.2.2:
+ resolution: {integrity:
sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==}
+ dev: true
+
+ /yallist@2.1.2:
+ resolution: {integrity:
sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
+ dev: true
+
+ /yallist@4.0.0:
+ resolution: {integrity:
sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ dev: true
+
+ /yargs-parser@7.0.0:
+ resolution: {integrity:
sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==}
+ dependencies:
+ camelcase: 4.1.0
+ dev: true
+
+ /yargs@8.0.2:
+ resolution: {integrity:
sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ==}
+ dependencies:
+ camelcase: 4.1.0
+ cliui: 3.2.0
+ decamelize: 1.2.0
+ get-caller-file: 1.0.3
+ os-locale: 2.1.0
+ read-pkg-up: 2.0.0
+ require-directory: 2.1.1
+ require-main-filename: 1.0.1
+ set-blocking: 2.0.0
+ string-width: 2.1.1
+ which-module: 2.0.1
+ y18n: 3.2.2
+ yargs-parser: 7.0.0
dev: true
diff --git a/static/favicon.png b/static/favicon.png
new file mode 100644
index 0000000..92c26d9
Binary files /dev/null and b/static/favicon.png differ
diff --git a/static/images/favicon.ico b/static/images/favicon.ico
new file mode 120000
index 0000000..cf3a36c
--- /dev/null
+++ b/static/images/favicon.ico
@@ -0,0 +1 @@
+../favicon.ico
\ No newline at end of file
diff --git a/static/images/favicon.png b/static/images/favicon.png
new file mode 120000
index 0000000..4a40dca
--- /dev/null
+++ b/static/images/favicon.png
@@ -0,0 +1 @@
+../favicon.png
\ No newline at end of file
diff --git a/static/js/bootstrap.js b/static/js/bootstrap.js
deleted file mode 100644
index b3b85a6..0000000
--- a/static/js/bootstrap.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Bootstrap v4.5.2 (https://getbootstrap.com/)
- * Copyright 2011-2020 The Bootstrap Authors
(https://github.com/twbs/bootstrap/graphs/contributors)
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof
module?e(exports,require("jquery"),require("popper.js")):"function"==typeof
define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof
globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use
strict";function i(t,e){for(var n=0;n<e.length;n++){var
i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in
i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}fun [...]
diff --git a/static/js/carouselscript.js b/static/js/carouselscript.js
deleted file mode 100644
index ca1ed04..0000000
--- a/static/js/carouselscript.js
+++ /dev/null
@@ -1,53 +0,0 @@
-$(document).ready(function() {
- $(".insitab a").click(function(event) {
- event.preventDefault();
- $(this).parent().addClass("current");
- $(this).parent().siblings().removeClass("current");;
- var tab = $(this).attr("href");
- $(".insignblogtbCont").not(tab).css("display", "none");
- $(tab).fadeIn();
- });
-});
-
-
-
-
-$('.carousel').carousel({
- interval: 5000,
- pause: "false"
-});
-
-$(".navbar-toggler").click(function(){
- $(".navbar-toggler").toggleClass("showtoggle");
-});
-
- // Helper function for add element box list in WOW
- WOW.prototype.addBox = function(element) {
- this.boxes.push(element);
- };
-
- // Init WOW.js and get instance
- var wow = new WOW();
- wow.init();
-
- // Attach scrollSpy to .wow elements for detect view exit events,
- // then reset elements and add again for animation
- $('.wow').on('scrollSpy:exit', function() {
- $(this).css({
- 'visibility': 'hidden',
- 'animation-name': 'none'
- }).removeClass('animated');
- wow.addBox(this);
- }).scrollSpy();
-
-
- $(document).ready(function(){
- $('#open').click(function(){
- $('#hide').slideToggle();
- });
-
- });
-
-
-
-
diff --git a/static/js/owl.carousel.js b/static/js/owl.carousel.js
deleted file mode 100644
index 62b204c..0000000
--- a/static/js/owl.carousel.js
+++ /dev/null
@@ -1,3275 +0,0 @@
-/**
- * Owl Carousel v2.2.0
- * Copyright 2013-2016 David Deutsch
- * Licensed under MIT
(https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE)
- */
-/**
- * Owl carousel
- * @version 2.1.6
- * @author Bartosz Wojciechowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- * @todo Lazy Load Icon
- * @todo prevent animationend bubling
- * @todo itemsScaleUp
- * @todo Test Zepto
- * @todo stagePadding calculate wrong active classes
- */
-;(function($, window, document, undefined) {
-
- /**
- * Creates a carousel.
- * @class The Owl Carousel.
- * @public
- * @param {HTMLElement|jQuery} element - The element to create the
carousel for.
- * @param {Object} [options] - The options
- */
- function Owl(element, options) {
-
- /**
- * Current settings for the carousel.
- * @public
- */
- this.settings = null;
-
- /**
- * Current options set by the caller including defaults.
- * @public
- */
- this.options = $.extend({}, Owl.Defaults, options);
-
- /**
- * Plugin element.
- * @public
- */
- this.$element = $(element);
-
- /**
- * Proxied event handlers.
- * @protected
- */
- this._handlers = {};
-
- /**
- * References to the running plugins of this carousel.
- * @protected
- */
- this._plugins = {};
-
- /**
- * Currently suppressed events to prevent them from beeing
retriggered.
- * @protected
- */
- this._supress = {};
-
- /**
- * Absolute current position.
- * @protected
- */
- this._current = null;
-
- /**
- * Animation speed in milliseconds.
- * @protected
- */
- this._speed = null;
-
- /**
- * Coordinates of all items in pixel.
- * @todo The name of this member is missleading.
- * @protected
- */
- this._coordinates = [];
-
- /**
- * Current breakpoint.
- * @todo Real media queries would be nice.
- * @protected
- */
- this._breakpoint = null;
-
- /**
- * Current width of the plugin element.
- */
- this._width = null;
-
- /**
- * All real items.
- * @protected
- */
- this._items = [];
-
- /**
- * All cloned items.
- * @protected
- */
- this._clones = [];
-
- /**
- * Merge values of all items.
- * @todo Maybe this could be part of a plugin.
- * @protected
- */
- this._mergers = [];
-
- /**
- * Widths of all items.
- */
- this._widths = [];
-
- /**
- * Invalidated parts within the update process.
- * @protected
- */
- this._invalidated = {};
-
- /**
- * Ordered list of workers for the update process.
- * @protected
- */
- this._pipe = [];
-
- /**
- * Current state information for the drag operation.
- * @todo #261
- * @protected
- */
- this._drag = {
- time: null,
- target: null,
- pointer: null,
- stage: {
- start: null,
- current: null
- },
- direction: null
- };
-
- /**
- * Current state information and their tags.
- * @type {Object}
- * @protected
- */
- this._states = {
- current: {},
- tags: {
- 'initializing': [ 'busy' ],
- 'animating': [ 'busy' ],
- 'dragging': [ 'interacting' ]
- }
- };
-
- $.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i,
handler) {
- this._handlers[handler] = $.proxy(this[handler], this);
- }, this));
-
- $.each(Owl.Plugins, $.proxy(function(key, plugin) {
- this._plugins[key.charAt(0).toLowerCase() +
key.slice(1)]
- = new plugin(this);
- }, this));
-
- $.each(Owl.Workers, $.proxy(function(priority, worker) {
- this._pipe.push({
- 'filter': worker.filter,
- 'run': $.proxy(worker.run, this)
- });
- }, this));
-
- this.setup();
- this.initialize();
- }
-
- /**
- * Default options for the carousel.
- * @public
- */
- Owl.Defaults = {
- items: 3,
- loop: false,
- center: false,
- rewind: false,
-
- mouseDrag: true,
- touchDrag: true,
- pullDrag: true,
- freeDrag: false,
-
- margin: 0,
- stagePadding: 0,
-
- merge: false,
- mergeFit: true,
- autoWidth: false,
-
- startPosition: 0,
- rtl: false,
-
- smartSpeed: 250,
- fluidSpeed: false,
- dragEndSpeed: false,
-
- responsive: {},
- responsiveRefreshRate: 200,
- responsiveBaseElement: window,
-
- fallbackEasing: 'swing',
-
- info: false,
-
- nestedItemSelector: false,
- itemElement: 'div',
- stageElement: 'div',
-
- refreshClass: 'owl-refresh',
- loadedClass: 'owl-loaded',
- loadingClass: 'owl-loading',
- rtlClass: 'owl-rtl',
- responsiveClass: 'owl-responsive',
- dragClass: 'owl-drag',
- itemClass: 'owl-item',
- stageClass: 'owl-stage',
- stageOuterClass: 'owl-stage-outer',
- grabClass: 'owl-grab'
- };
-
- /**
- * Enumeration for width.
- * @public
- * @readonly
- * @enum {String}
- */
- Owl.Width = {
- Default: 'default',
- Inner: 'inner',
- Outer: 'outer'
- };
-
- /**
- * Enumeration for types.
- * @public
- * @readonly
- * @enum {String}
- */
- Owl.Type = {
- Event: 'event',
- State: 'state'
- };
-
- /**
- * Contains all registered plugins.
- * @public
- */
- Owl.Plugins = {};
-
- /**
- * List of workers involved in the update process.
- */
- Owl.Workers = [ {
- filter: [ 'width', 'settings' ],
- run: function() {
- this._width = this.$element.width();
- }
- }, {
- filter: [ 'width', 'items', 'settings' ],
- run: function(cache) {
- cache.current = this._items &&
this._items[this.relative(this._current)];
- }
- }, {
- filter: [ 'items', 'settings' ],
- run: function() {
- this.$stage.children('.cloned').remove();
- }
- }, {
- filter: [ 'width', 'items', 'settings' ],
- run: function(cache) {
- var margin = this.settings.margin || '',
- grid = !this.settings.autoWidth,
- rtl = this.settings.rtl,
- css = {
- 'width': 'auto',
- 'margin-left': rtl ? margin : '',
- 'margin-right': rtl ? '' : margin
- };
-
- !grid && this.$stage.children().css(css);
-
- cache.css = css;
- }
- }, {
- filter: [ 'width', 'items', 'settings' ],
- run: function(cache) {
- var width = (this.width() /
this.settings.items).toFixed(3) - this.settings.margin,
- merge = null,
- iterator = this._items.length,
- grid = !this.settings.autoWidth,
- widths = [];
-
- cache.items = {
- merge: false,
- width: width
- };
-
- while (iterator--) {
- merge = this._mergers[iterator];
- merge = this.settings.mergeFit &&
Math.min(merge, this.settings.items) || merge;
-
- cache.items.merge = merge > 1 ||
cache.items.merge;
-
- widths[iterator] = !grid ?
this._items[iterator].width() : width * merge;
- }
-
- this._widths = widths;
- }
- }, {
- filter: [ 'items', 'settings' ],
- run: function() {
- var clones = [],
- items = this._items,
- settings = this.settings,
- // TODO: Should be computed from number of min
width items in stage
- view = Math.max(settings.items * 2, 4),
- size = Math.ceil(items.length / 2) * 2,
- repeat = settings.loop && items.length ?
settings.rewind ? view : Math.max(view, size) : 0,
- append = '',
- prepend = '';
-
- repeat /= 2;
-
- while (repeat--) {
- // Switch to only using appended clones
- clones.push(this.normalize(clones.length / 2,
true));
- append = append + items[clones[clones.length -
1]][0].outerHTML;
- clones.push(this.normalize(items.length - 1 -
(clones.length - 1) / 2, true));
- prepend = items[clones[clones.length -
1]][0].outerHTML + prepend;
- }
-
- this._clones = clones;
-
- $(append).addClass('cloned').appendTo(this.$stage);
- $(prepend).addClass('cloned').prependTo(this.$stage);
- }
- }, {
- filter: [ 'width', 'items', 'settings' ],
- run: function() {
- var rtl = this.settings.rtl ? 1 : -1,
- size = this._clones.length + this._items.length,
- iterator = -1,
- previous = 0,
- current = 0,
- coordinates = [];
-
- while (++iterator < size) {
- previous = coordinates[iterator - 1] || 0;
- current = this._widths[this.relative(iterator)]
+ this.settings.margin;
- coordinates.push(previous + current * rtl);
- }
-
- this._coordinates = coordinates;
- }
- }, {
- filter: [ 'width', 'items', 'settings' ],
- run: function() {
- var padding = this.settings.stagePadding,
- coordinates = this._coordinates,
- css = {
- 'width':
Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,
- 'padding-left': padding || '',
- 'padding-right': padding || ''
- };
-
- this.$stage.css(css);
- }
- }, {
- filter: [ 'width', 'items', 'settings' ],
- run: function(cache) {
- var iterator = this._coordinates.length,
- grid = !this.settings.autoWidth,
- items = this.$stage.children();
-
- if (grid && cache.items.merge) {
- while (iterator--) {
- cache.css.width =
this._widths[this.relative(iterator)];
- items.eq(iterator).css(cache.css);
- }
- } else if (grid) {
- cache.css.width = cache.items.width;
- items.css(cache.css);
- }
- }
- }, {
- filter: [ 'items' ],
- run: function() {
- this._coordinates.length < 1 &&
this.$stage.removeAttr('style');
- }
- }, {
- filter: [ 'width', 'items', 'settings' ],
- run: function(cache) {
- cache.current = cache.current ?
this.$stage.children().index(cache.current) : 0;
- cache.current = Math.max(this.minimum(),
Math.min(this.maximum(), cache.current));
- this.reset(cache.current);
- }
- }, {
- filter: [ 'position' ],
- run: function() {
- this.animate(this.coordinates(this._current));
- }
- }, {
- filter: [ 'width', 'position', 'items', 'settings' ],
- run: function() {
- var rtl = this.settings.rtl ? 1 : -1,
- padding = this.settings.stagePadding * 2,
- begin = this.coordinates(this.current()) +
padding,
- end = begin + this.width() * rtl,
- inner, outer, matches = [], i, n;
-
- for (i = 0, n = this._coordinates.length; i < n; i++) {
- inner = this._coordinates[i - 1] || 0;
- outer = Math.abs(this._coordinates[i]) +
padding * rtl;
-
- if ((this.op(inner, '<=', begin) &&
(this.op(inner, '>', end)))
- || (this.op(outer, '<', begin) &&
this.op(outer, '>', end))) {
- matches.push(i);
- }
- }
-
- this.$stage.children('.active').removeClass('active');
- this.$stage.children(':eq(' + matches.join('), :eq(') +
')').addClass('active');
-
- if (this.settings.center) {
-
this.$stage.children('.center').removeClass('center');
-
this.$stage.children().eq(this.current()).addClass('center');
- }
- }
- } ];
-
- /**
- * Initializes the carousel.
- * @protected
- */
- Owl.prototype.initialize = function() {
- this.enter('initializing');
- this.trigger('initialize');
-
- this.$element.toggleClass(this.settings.rtlClass,
this.settings.rtl);
-
- if (this.settings.autoWidth && !this.is('pre-loading')) {
- var imgs, nestedSelector, width;
- imgs = this.$element.find('img');
- nestedSelector = this.settings.nestedItemSelector ? '.'
+ this.settings.nestedItemSelector : undefined;
- width = this.$element.children(nestedSelector).width();
-
- if (imgs.length && width <= 0) {
- this.preloadAutoWidthImages(imgs);
- }
- }
-
- this.$element.addClass(this.options.loadingClass);
-
- // create stage
- this.$stage = $('<' + this.settings.stageElement + ' class="' +
this.settings.stageClass + '"/>')
- .wrap('<div class="' + this.settings.stageOuterClass +
'"/>');
-
- // append stage
- this.$element.append(this.$stage.parent());
-
- // append content
-
this.replace(this.$element.children().not(this.$stage.parent()));
-
- // check visibility
- if (this.$element.is(':visible')) {
- // update view
- this.refresh();
- } else {
- // invalidate width
- this.invalidate('width');
- }
-
- this.$element
- .removeClass(this.options.loadingClass)
- .addClass(this.options.loadedClass);
-
- // register event handlers
- this.registerEventHandlers();
-
- this.leave('initializing');
- this.trigger('initialized');
- };
-
- /**
- * Setups the current settings.
- * @todo Remove responsive classes. Why should adaptive designs be
brought into IE8?
- * @todo Support for media queries by using `matchMedia` would be nice.
- * @public
- */
- Owl.prototype.setup = function() {
- var viewport = this.viewport(),
- overwrites = this.options.responsive,
- match = -1,
- settings = null;
-
- if (!overwrites) {
- settings = $.extend({}, this.options);
- } else {
- $.each(overwrites, function(breakpoint) {
- if (breakpoint <= viewport && breakpoint >
match) {
- match = Number(breakpoint);
- }
- });
-
- settings = $.extend({}, this.options,
overwrites[match]);
- if (typeof settings.stagePadding === 'function') {
- settings.stagePadding = settings.stagePadding();
- }
- delete settings.responsive;
-
- // responsive class
- if (settings.responsiveClass) {
- this.$element.attr('class',
- this.$element.attr('class').replace(new
RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match)
- );
- }
- }
-
- this.trigger('change', { property: { name: 'settings', value:
settings } });
- this._breakpoint = match;
- this.settings = settings;
- this.invalidate('settings');
- this.trigger('changed', { property: { name: 'settings', value:
this.settings } });
- };
-
- /**
- * Updates option logic if necessery.
- * @protected
- */
- Owl.prototype.optionsLogic = function() {
- if (this.settings.autoWidth) {
- this.settings.stagePadding = false;
- this.settings.merge = false;
- }
- };
-
- /**
- * Prepares an item before add.
- * @todo Rename event parameter `content` to `item`.
- * @protected
- * @returns {jQuery|HTMLElement} - The item container.
- */
- Owl.prototype.prepare = function(item) {
- var event = this.trigger('prepare', { content: item });
-
- if (!event.data) {
- event.data = $('<' + this.settings.itemElement + '/>')
- .addClass(this.options.itemClass).append(item)
- }
-
- this.trigger('prepared', { content: event.data });
-
- return event.data;
- };
-
- /**
- * Updates the view.
- * @public
- */
- Owl.prototype.update = function() {
- var i = 0,
- n = this._pipe.length,
- filter = $.proxy(function(p) { return this[p] },
this._invalidated),
- cache = {};
-
- while (i < n) {
- if (this._invalidated.all ||
$.grep(this._pipe[i].filter, filter).length > 0) {
- this._pipe[i].run(cache);
- }
- i++;
- }
-
- this._invalidated = {};
-
- !this.is('valid') && this.enter('valid');
- };
-
- /**
- * Gets the width of the view.
- * @public
- * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to
return.
- * @returns {Number} - The width of the view in pixel.
- */
- Owl.prototype.width = function(dimension) {
- dimension = dimension || Owl.Width.Default;
- switch (dimension) {
- case Owl.Width.Inner:
- case Owl.Width.Outer:
- return this._width;
- default:
- return this._width - this.settings.stagePadding
* 2 + this.settings.margin;
- }
- };
-
- /**
- * Refreshes the carousel primarily for adaptive purposes.
- * @public
- */
- Owl.prototype.refresh = function() {
- this.enter('refreshing');
- this.trigger('refresh');
-
- this.setup();
-
- this.optionsLogic();
-
- this.$element.addClass(this.options.refreshClass);
-
- this.update();
-
- this.$element.removeClass(this.options.refreshClass);
-
- this.leave('refreshing');
- this.trigger('refreshed');
- };
-
- /**
- * Checks window `resize` event.
- * @protected
- */
- Owl.prototype.onThrottledResize = function() {
- window.clearTimeout(this.resizeTimer);
- this.resizeTimer = window.setTimeout(this._handlers.onResize,
this.settings.responsiveRefreshRate);
- };
-
- /**
- * Checks window `resize` event.
- * @protected
- */
- Owl.prototype.onResize = function() {
- if (!this._items.length) {
- return false;
- }
-
- if (this._width === this.$element.width()) {
- return false;
- }
-
- if (!this.$element.is(':visible')) {
- return false;
- }
-
- this.enter('resizing');
-
- if (this.trigger('resize').isDefaultPrevented()) {
- this.leave('resizing');
- return false;
- }
-
- this.invalidate('width');
-
- this.refresh();
-
- this.leave('resizing');
- this.trigger('resized');
- };
-
- /**
- * Registers event handlers.
- * @todo Check `msPointerEnabled`
- * @todo #261
- * @protected
- */
- Owl.prototype.registerEventHandlers = function() {
- if ($.support.transition) {
- this.$stage.on($.support.transition.end + '.owl.core',
$.proxy(this.onTransitionEnd, this));
- }
-
- if (this.settings.responsive !== false) {
- this.on(window, 'resize',
this._handlers.onThrottledResize);
- }
-
- if (this.settings.mouseDrag) {
- this.$element.addClass(this.options.dragClass);
- this.$stage.on('mousedown.owl.core',
$.proxy(this.onDragStart, this));
- this.$stage.on('dragstart.owl.core
selectstart.owl.core', function() { return false });
- }
-
- if (this.settings.touchDrag){
- this.$stage.on('touchstart.owl.core',
$.proxy(this.onDragStart, this));
- this.$stage.on('touchcancel.owl.core',
$.proxy(this.onDragEnd, this));
- }
- };
-
- /**
- * Handles `touchstart` and `mousedown` events.
- * @todo Horizontal swipe threshold as option
- * @todo #261
- * @protected
- * @param {Event} event - The event arguments.
- */
- Owl.prototype.onDragStart = function(event) {
- var stage = null;
-
- if (event.which === 3) {
- return;
- }
-
- if ($.support.transform) {
- stage = this.$stage.css('transform').replace(/.*\(|\)|
/g, '').split(',');
- stage = {
- x: stage[stage.length === 16 ? 12 : 4],
- y: stage[stage.length === 16 ? 13 : 5]
- };
- } else {
- stage = this.$stage.position();
- stage = {
- x: this.settings.rtl ?
- stage.left + this.$stage.width() -
this.width() + this.settings.margin :
- stage.left,
- y: stage.top
- };
- }
-
- if (this.is('animating')) {
- $.support.transform ? this.animate(stage.x) :
this.$stage.stop()
- this.invalidate('position');
- }
-
- this.$element.toggleClass(this.options.grabClass, event.type
=== 'mousedown');
-
- this.speed(0);
-
- this._drag.time = new Date().getTime();
- this._drag.target = $(event.target);
- this._drag.stage.start = stage;
- this._drag.stage.current = stage;
- this._drag.pointer = this.pointer(event);
-
- $(document).on('mouseup.owl.core touchend.owl.core',
$.proxy(this.onDragEnd, this));
-
- $(document).one('mousemove.owl.core touchmove.owl.core',
$.proxy(function(event) {
- var delta = this.difference(this._drag.pointer,
this.pointer(event));
-
- $(document).on('mousemove.owl.core touchmove.owl.core',
$.proxy(this.onDragMove, this));
-
- if (Math.abs(delta.x) < Math.abs(delta.y) &&
this.is('valid')) {
- return;
- }
-
- event.preventDefault();
-
- this.enter('dragging');
- this.trigger('drag');
- }, this));
- };
-
- /**
- * Handles the `touchmove` and `mousemove` events.
- * @todo #261
- * @protected
- * @param {Event} event - The event arguments.
- */
- Owl.prototype.onDragMove = function(event) {
- var minimum = null,
- maximum = null,
- pull = null,
- delta = this.difference(this._drag.pointer,
this.pointer(event)),
- stage = this.difference(this._drag.stage.start, delta);
-
- if (!this.is('dragging')) {
- return;
- }
-
- event.preventDefault();
-
- if (this.settings.loop) {
- minimum = this.coordinates(this.minimum());
- maximum = this.coordinates(this.maximum() + 1) -
minimum;
- stage.x = (((stage.x - minimum) % maximum + maximum) %
maximum) + minimum;
- } else {
- minimum = this.settings.rtl ?
this.coordinates(this.maximum()) : this.coordinates(this.minimum());
- maximum = this.settings.rtl ?
this.coordinates(this.minimum()) : this.coordinates(this.maximum());
- pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;
- stage.x = Math.max(Math.min(stage.x, minimum + pull),
maximum + pull);
- }
-
- this._drag.stage.current = stage;
-
- this.animate(stage.x);
- };
-
- /**
- * Handles the `touchend` and `mouseup` events.
- * @todo #261
- * @todo Threshold for click event
- * @protected
- * @param {Event} event - The event arguments.
- */
- Owl.prototype.onDragEnd = function(event) {
- var delta = this.difference(this._drag.pointer,
this.pointer(event)),
- stage = this._drag.stage.current,
- direction = delta.x > 0 ^ this.settings.rtl ? 'left' :
'right';
-
- $(document).off('.owl.core');
-
- this.$element.removeClass(this.options.grabClass);
-
- if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {
- this.speed(this.settings.dragEndSpeed ||
this.settings.smartSpeed);
- this.current(this.closest(stage.x, delta.x !== 0 ?
direction : this._drag.direction));
- this.invalidate('position');
- this.update();
-
- this._drag.direction = direction;
-
- if (Math.abs(delta.x) > 3 || new Date().getTime() -
this._drag.time > 300) {
- this._drag.target.one('click.owl.core',
function() { return false; });
- }
- }
-
- if (!this.is('dragging')) {
- return;
- }
-
- this.leave('dragging');
- this.trigger('dragged');
- };
-
- /**
- * Gets absolute position of the closest item for a coordinate.
- * @todo Setting `freeDrag` makes `closest` not reusable. See #165.
- * @protected
- * @param {Number} coordinate - The coordinate in pixel.
- * @param {String} direction - The direction to check for the closest
item. Ether `left` or `right`.
- * @return {Number} - The absolute position of the closest item.
- */
- Owl.prototype.closest = function(coordinate, direction) {
- var position = -1,
- pull = 30,
- width = this.width(),
- coordinates = this.coordinates();
-
- if (!this.settings.freeDrag) {
- // check closest item
- $.each(coordinates, $.proxy(function(index, value) {
- // on a left pull, check on current index
- if (direction === 'left' && coordinate > value
- pull && coordinate < value + pull) {
- position = index;
- // on a right pull, check on previous index
- // to do so, subtract width from value and set
position = index + 1
- } else if (direction === 'right' && coordinate
> value - width - pull && coordinate < value - width + pull) {
- position = index + 1;
- } else if (this.op(coordinate, '<', value)
- && this.op(coordinate, '>',
coordinates[index + 1] || value - width)) {
- position = direction === 'left' ? index
+ 1 : index;
- }
- return position === -1;
- }, this));
- }
-
- if (!this.settings.loop) {
- // non loop boundries
- if (this.op(coordinate, '>',
coordinates[this.minimum()])) {
- position = coordinate = this.minimum();
- } else if (this.op(coordinate, '<',
coordinates[this.maximum()])) {
- position = coordinate = this.maximum();
- }
- }
-
- return position;
- };
-
- /**
- * Animates the stage.
- * @todo #270
- * @public
- * @param {Number} coordinate - The coordinate in pixels.
- */
- Owl.prototype.animate = function(coordinate) {
- var animate = this.speed() > 0;
-
- this.is('animating') && this.onTransitionEnd();
-
- if (animate) {
- this.enter('animating');
- this.trigger('translate');
- }
-
- if ($.support.transform3d && $.support.transition) {
- this.$stage.css({
- transform: 'translate3d(' + coordinate +
'px,0px,0px)',
- transition: (this.speed() / 1000) + 's'
- });
- } else if (animate) {
- this.$stage.animate({
- left: coordinate + 'px'
- }, this.speed(), this.settings.fallbackEasing,
$.proxy(this.onTransitionEnd, this));
- } else {
- this.$stage.css({
- left: coordinate + 'px'
- });
- }
- };
-
- /**
- * Checks whether the carousel is in a specific state or not.
- * @param {String} state - The state to check.
- * @returns {Boolean} - The flag which indicates if the carousel is
busy.
- */
- Owl.prototype.is = function(state) {
- return this._states.current[state] &&
this._states.current[state] > 0;
- };
-
- /**
- * Sets the absolute position of the current item.
- * @public
- * @param {Number} [position] - The new absolute position or nothing to
leave it unchanged.
- * @returns {Number} - The absolute position of the current item.
- */
- Owl.prototype.current = function(position) {
- if (position === undefined) {
- return this._current;
- }
-
- if (this._items.length === 0) {
- return undefined;
- }
-
- position = this.normalize(position);
-
- if (this._current !== position) {
- var event = this.trigger('change', { property: { name:
'position', value: position } });
-
- if (event.data !== undefined) {
- position = this.normalize(event.data);
- }
-
- this._current = position;
-
- this.invalidate('position');
-
- this.trigger('changed', { property: { name: 'position',
value: this._current } });
- }
-
- return this._current;
- };
-
- /**
- * Invalidates the given part of the update routine.
- * @param {String} [part] - The part to invalidate.
- * @returns {Array.<String>} - The invalidated parts.
- */
- Owl.prototype.invalidate = function(part) {
- if ($.type(part) === 'string') {
- this._invalidated[part] = true;
- this.is('valid') && this.leave('valid');
- }
- return $.map(this._invalidated, function(v, i) { return i });
- };
-
- /**
- * Resets the absolute position of the current item.
- * @public
- * @param {Number} position - The absolute position of the new item.
- */
- Owl.prototype.reset = function(position) {
- position = this.normalize(position);
-
- if (position === undefined) {
- return;
- }
-
- this._speed = 0;
- this._current = position;
-
- this.suppress([ 'translate', 'translated' ]);
-
- this.animate(this.coordinates(position));
-
- this.release([ 'translate', 'translated' ]);
- };
-
- /**
- * Normalizes an absolute or a relative position of an item.
- * @public
- * @param {Number} position - The absolute or relative position to
normalize.
- * @param {Boolean} [relative=false] - Whether the given position is
relative or not.
- * @returns {Number} - The normalized position.
- */
- Owl.prototype.normalize = function(position, relative) {
- var n = this._items.length,
- m = relative ? 0 : this._clones.length;
-
- if (!this.isNumeric(position) || n < 1) {
- position = undefined;
- } else if (position < 0 || position >= n + m) {
- position = ((position - m / 2) % n + n) % n + m / 2;
- }
-
- return position;
- };
-
- /**
- * Converts an absolute position of an item into a relative one.
- * @public
- * @param {Number} position - The absolute position to convert.
- * @returns {Number} - The converted position.
- */
- Owl.prototype.relative = function(position) {
- position -= this._clones.length / 2;
- return this.normalize(position, true);
- };
-
- /**
- * Gets the maximum position for the current item.
- * @public
- * @param {Boolean} [relative=false] - Whether to return an absolute
position or a relative position.
- * @returns {Number}
- */
- Owl.prototype.maximum = function(relative) {
- var settings = this.settings,
- maximum = this._coordinates.length,
- iterator,
- reciprocalItemsWidth,
- elementWidth;
-
- if (settings.loop) {
- maximum = this._clones.length / 2 + this._items.length
- 1;
- } else if (settings.autoWidth || settings.merge) {
- iterator = this._items.length;
- reciprocalItemsWidth = this._items[--iterator].width();
- elementWidth = this.$element.width();
- while (iterator--) {
- reciprocalItemsWidth +=
this._items[iterator].width() + this.settings.margin;
- if (reciprocalItemsWidth > elementWidth) {
- break;
- }
- }
- maximum = iterator + 1;
- } else if (settings.center) {
- maximum = this._items.length - 1;
- } else {
- maximum = this._items.length - settings.items;
- }
-
- if (relative) {
- maximum -= this._clones.length / 2;
- }
-
- return Math.max(maximum, 0);
- };
-
- /**
- * Gets the minimum position for the current item.
- * @public
- * @param {Boolean} [relative=false] - Whether to return an absolute
position or a relative position.
- * @returns {Number}
- */
- Owl.prototype.minimum = function(relative) {
- return relative ? 0 : this._clones.length / 2;
- };
-
- /**
- * Gets an item at the specified relative position.
- * @public
- * @param {Number} [position] - The relative position of the item.
- * @return {jQuery|Array.<jQuery>} - The item at the given position or
all items if no position was given.
- */
- Owl.prototype.items = function(position) {
- if (position === undefined) {
- return this._items.slice();
- }
-
- position = this.normalize(position, true);
- return this._items[position];
- };
-
- /**
- * Gets an item at the specified relative position.
- * @public
- * @param {Number} [position] - The relative position of the item.
- * @return {jQuery|Array.<jQuery>} - The item at the given position or
all items if no position was given.
- */
- Owl.prototype.mergers = function(position) {
- if (position === undefined) {
- return this._mergers.slice();
- }
-
- position = this.normalize(position, true);
- return this._mergers[position];
- };
-
- /**
- * Gets the absolute positions of clones for an item.
- * @public
- * @param {Number} [position] - The relative position of the item.
- * @returns {Array.<Number>} - The absolute positions of clones for the
item or all if no position was given.
- */
- Owl.prototype.clones = function(position) {
- var odd = this._clones.length / 2,
- even = odd + this._items.length,
- map = function(index) { return index % 2 === 0 ? even +
index / 2 : odd - (index + 1) / 2 };
-
- if (position === undefined) {
- return $.map(this._clones, function(v, i) { return
map(i) });
- }
-
- return $.map(this._clones, function(v, i) { return v ===
position ? map(i) : null });
- };
-
- /**
- * Sets the current animation speed.
- * @public
- * @param {Number} [speed] - The animation speed in milliseconds or
nothing to leave it unchanged.
- * @returns {Number} - The current animation speed in milliseconds.
- */
- Owl.prototype.speed = function(speed) {
- if (speed !== undefined) {
- this._speed = speed;
- }
-
- return this._speed;
- };
-
- /**
- * Gets the coordinate of an item.
- * @todo The name of this method is missleanding.
- * @public
- * @param {Number} position - The absolute position of the item within
`minimum()` and `maximum()`.
- * @returns {Number|Array.<Number>} - The coordinate of the item in
pixel or all coordinates.
- */
- Owl.prototype.coordinates = function(position) {
- var multiplier = 1,
- newPosition = position - 1,
- coordinate;
-
- if (position === undefined) {
- return $.map(this._coordinates,
$.proxy(function(coordinate, index) {
- return this.coordinates(index);
- }, this));
- }
-
- if (this.settings.center) {
- if (this.settings.rtl) {
- multiplier = -1;
- newPosition = position + 1;
- }
-
- coordinate = this._coordinates[position];
- coordinate += (this.width() - coordinate +
(this._coordinates[newPosition] || 0)) / 2 * multiplier;
- } else {
- coordinate = this._coordinates[newPosition] || 0;
- }
-
- coordinate = Math.ceil(coordinate);
-
- return coordinate;
- };
-
- /**
- * Calculates the speed for a translation.
- * @protected
- * @param {Number} from - The absolute position of the start item.
- * @param {Number} to - The absolute position of the target item.
- * @param {Number} [factor=undefined] - The time factor in milliseconds.
- * @returns {Number} - The time in milliseconds for the translation.
- */
- Owl.prototype.duration = function(from, to, factor) {
- if (factor === 0) {
- return 0;
- }
-
- return Math.min(Math.max(Math.abs(to - from), 1), 6) *
Math.abs((factor || this.settings.smartSpeed));
- };
-
- /**
- * Slides to the specified item.
- * @public
- * @param {Number} position - The position of the item.
- * @param {Number} [speed] - The time in milliseconds for the
transition.
- */
- Owl.prototype.to = function(position, speed) {
- var current = this.current(),
- revert = null,
- distance = position - this.relative(current),
- direction = (distance > 0) - (distance < 0),
- items = this._items.length,
- minimum = this.minimum(),
- maximum = this.maximum();
-
- if (this.settings.loop) {
- if (!this.settings.rewind && Math.abs(distance) > items
/ 2) {
- distance += direction * -1 * items;
- }
-
- position = current + distance;
- revert = ((position - minimum) % items + items) % items
+ minimum;
-
- if (revert !== position && revert - distance <= maximum
&& revert - distance > 0) {
- current = revert - distance;
- position = revert;
- this.reset(current);
- }
- } else if (this.settings.rewind) {
- maximum += 1;
- position = (position % maximum + maximum) % maximum;
- } else {
- position = Math.max(minimum, Math.min(maximum,
position));
- }
-
- this.speed(this.duration(current, position, speed));
- this.current(position);
-
- if (this.$element.is(':visible')) {
- this.update();
- }
- };
-
- /**
- * Slides to the next item.
- * @public
- * @param {Number} [speed] - The time in milliseconds for the
transition.
- */
- Owl.prototype.next = function(speed) {
- speed = speed || false;
- this.to(this.relative(this.current()) + 1, speed);
- };
-
- /**
- * Slides to the previous item.
- * @public
- * @param {Number} [speed] - The time in milliseconds for the
transition.
- */
- Owl.prototype.prev = function(speed) {
- speed = speed || false;
- this.to(this.relative(this.current()) - 1, speed);
- };
-
- /**
- * Handles the end of an animation.
- * @protected
- * @param {Event} event - The event arguments.
- */
- Owl.prototype.onTransitionEnd = function(event) {
-
- // if css2 animation then event object is undefined
- if (event !== undefined) {
- event.stopPropagation();
-
- // Catch only owl-stage transitionEnd event
- if ((event.target || event.srcElement ||
event.originalTarget) !== this.$stage.get(0)) {
- return false;
- }
- }
-
- this.leave('animating');
- this.trigger('translated');
- };
-
- /**
- * Gets viewport width.
- * @protected
- * @return {Number} - The width in pixel.
- */
- Owl.prototype.viewport = function() {
- var width;
- if (this.options.responsiveBaseElement !== window) {
- width = $(this.options.responsiveBaseElement).width();
- } else if (window.innerWidth) {
- width = window.innerWidth;
- } else if (document.documentElement &&
document.documentElement.clientWidth) {
- width = document.documentElement.clientWidth;
- } else {
- throw 'Can not detect viewport width.';
- }
- return width;
- };
-
- /**
- * Replaces the current content.
- * @public
- * @param {HTMLElement|jQuery|String} content - The new content.
- */
- Owl.prototype.replace = function(content) {
- this.$stage.empty();
- this._items = [];
-
- if (content) {
- content = (content instanceof jQuery) ? content :
$(content);
- }
-
- if (this.settings.nestedItemSelector) {
- content = content.find('.' +
this.settings.nestedItemSelector);
- }
-
- content.filter(function() {
- return this.nodeType === 1;
- }).each($.proxy(function(index, item) {
- item = this.prepare(item);
- this.$stage.append(item);
- this._items.push(item);
-
this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge')
* 1 || 1);
- }, this));
-
- this.reset(this.isNumeric(this.settings.startPosition) ?
this.settings.startPosition : 0);
-
- this.invalidate('items');
- };
-
- /**
- * Adds an item.
- * @todo Use `item` instead of `content` for the event arguments.
- * @public
- * @param {HTMLElement|jQuery|String} content - The item content to add.
- * @param {Number} [position] - The relative position at which to
insert the item otherwise the item will be added to the end.
- */
- Owl.prototype.add = function(content, position) {
- var current = this.relative(this._current);
-
- position = position === undefined ? this._items.length :
this.normalize(position, true);
- content = content instanceof jQuery ? content : $(content);
-
- this.trigger('add', { content: content, position: position });
-
- content = this.prepare(content);
-
- if (this._items.length === 0 || position ===
this._items.length) {
- this._items.length === 0 && this.$stage.append(content);
- this._items.length !== 0 && this._items[position -
1].after(content);
- this._items.push(content);
-
this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge')
* 1 || 1);
- } else {
- this._items[position].before(content);
- this._items.splice(position, 0, content);
- this._mergers.splice(position, 0,
content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 ||
1);
- }
-
- this._items[current] &&
this.reset(this._items[current].index());
-
- this.invalidate('items');
-
- this.trigger('added', { content: content, position: position });
- };
-
- /**
- * Removes an item by its position.
- * @todo Use `item` instead of `content` for the event arguments.
- * @public
- * @param {Number} position - The relative position of the item to
remove.
- */
- Owl.prototype.remove = function(position) {
- position = this.normalize(position, true);
-
- if (position === undefined) {
- return;
- }
-
- this.trigger('remove', { content: this._items[position],
position: position });
-
- this._items[position].remove();
- this._items.splice(position, 1);
- this._mergers.splice(position, 1);
-
- this.invalidate('items');
-
- this.trigger('removed', { content: null, position: position });
- };
-
- /**
- * Preloads images with auto width.
- * @todo Replace by a more generic approach
- * @protected
- */
- Owl.prototype.preloadAutoWidthImages = function(images) {
- images.each($.proxy(function(i, element) {
- this.enter('pre-loading');
- element = $(element);
- $(new Image()).one('load', $.proxy(function(e) {
- element.attr('src', e.target.src);
- element.css('opacity', 1);
- this.leave('pre-loading');
- !this.is('pre-loading') &&
!this.is('initializing') && this.refresh();
- }, this)).attr('src', element.attr('src') ||
element.attr('data-src') || element.attr('data-src-retina'));
- }, this));
- };
-
- /**
- * Destroys the carousel.
- * @public
- */
- Owl.prototype.destroy = function() {
-
- this.$element.off('.owl.core');
- this.$stage.off('.owl.core');
- $(document).off('.owl.core');
-
- if (this.settings.responsive !== false) {
- window.clearTimeout(this.resizeTimer);
- this.off(window, 'resize',
this._handlers.onThrottledResize);
- }
-
- for (var i in this._plugins) {
- this._plugins[i].destroy();
- }
-
- this.$stage.children('.cloned').remove();
-
- this.$stage.unwrap();
- this.$stage.children().contents().unwrap();
- this.$stage.children().unwrap();
-
- this.$element
- .removeClass(this.options.refreshClass)
- .removeClass(this.options.loadingClass)
- .removeClass(this.options.loadedClass)
- .removeClass(this.options.rtlClass)
- .removeClass(this.options.dragClass)
- .removeClass(this.options.grabClass)
- .attr('class', this.$element.attr('class').replace(new
RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), ''))
- .removeData('owl.carousel');
- };
-
- /**
- * Operators to calculate right-to-left and left-to-right.
- * @protected
- * @param {Number} [a] - The left side operand.
- * @param {String} [o] - The operator.
- * @param {Number} [b] - The right side operand.
- */
- Owl.prototype.op = function(a, o, b) {
- var rtl = this.settings.rtl;
- switch (o) {
- case '<':
- return rtl ? a > b : a < b;
- case '>':
- return rtl ? a < b : a > b;
- case '>=':
- return rtl ? a <= b : a >= b;
- case '<=':
- return rtl ? a >= b : a <= b;
- default:
- break;
- }
- };
-
- /**
- * Attaches to an internal event.
- * @protected
- * @param {HTMLElement} element - The event source.
- * @param {String} event - The event name.
- * @param {Function} listener - The event handler to attach.
- * @param {Boolean} capture - Wether the event should be handled at the
capturing phase or not.
- */
- Owl.prototype.on = function(element, event, listener, capture) {
- if (element.addEventListener) {
- element.addEventListener(event, listener, capture);
- } else if (element.attachEvent) {
- element.attachEvent('on' + event, listener);
- }
- };
-
- /**
- * Detaches from an internal event.
- * @protected
- * @param {HTMLElement} element - The event source.
- * @param {String} event - The event name.
- * @param {Function} listener - The attached event handler to detach.
- * @param {Boolean} capture - Wether the attached event handler was
registered as a capturing listener or not.
- */
- Owl.prototype.off = function(element, event, listener, capture) {
- if (element.removeEventListener) {
- element.removeEventListener(event, listener, capture);
- } else if (element.detachEvent) {
- element.detachEvent('on' + event, listener);
- }
- };
-
- /**
- * Triggers a public event.
- * @todo Remove `status`, `relatedTarget` should be used instead.
- * @protected
- * @param {String} name - The event name.
- * @param {*} [data=null] - The event data.
- * @param {String} [namespace=carousel] - The event namespace.
- * @param {String} [state] - The state which is associated with the
event.
- * @param {Boolean} [enter=false] - Indicates if the call enters the
specified state or not.
- * @returns {Event} - The event arguments.
- */
- Owl.prototype.trigger = function(name, data, namespace, state, enter) {
- var status = {
- item: { count: this._items.length, index:
this.current() }
- }, handler = $.camelCase(
- $.grep([ 'on', name, namespace ], function(v) { return
v })
- .join('-').toLowerCase()
- ), event = $.Event(
- [ name, 'owl', namespace || 'carousel'
].join('.').toLowerCase(),
- $.extend({ relatedTarget: this }, status, data)
- );
-
- if (!this._supress[name]) {
- $.each(this._plugins, function(name, plugin) {
- if (plugin.onTrigger) {
- plugin.onTrigger(event);
- }
- });
-
- this.register({ type: Owl.Type.Event, name: name });
- this.$element.trigger(event);
-
- if (this.settings && typeof this.settings[handler] ===
'function') {
- this.settings[handler].call(this, event);
- }
- }
-
- return event;
- };
-
- /**
- * Enters a state.
- * @param name - The state name.
- */
- Owl.prototype.enter = function(name) {
- $.each([ name ].concat(this._states.tags[name] || []),
$.proxy(function(i, name) {
- if (this._states.current[name] === undefined) {
- this._states.current[name] = 0;
- }
-
- this._states.current[name]++;
- }, this));
- };
-
- /**
- * Leaves a state.
- * @param name - The state name.
- */
- Owl.prototype.leave = function(name) {
- $.each([ name ].concat(this._states.tags[name] || []),
$.proxy(function(i, name) {
- this._states.current[name]--;
- }, this));
- };
-
- /**
- * Registers an event or state.
- * @public
- * @param {Object} object - The event or state to register.
- */
- Owl.prototype.register = function(object) {
- if (object.type === Owl.Type.Event) {
- if (!$.event.special[object.name]) {
- $.event.special[object.name] = {};
- }
-
- if (!$.event.special[object.name].owl) {
- var _default =
$.event.special[object.name]._default;
- $.event.special[object.name]._default =
function(e) {
- if (_default && _default.apply &&
(!e.namespace || e.namespace.indexOf('owl') === -1)) {
- return _default.apply(this,
arguments);
- }
- return e.namespace &&
e.namespace.indexOf('owl') > -1;
- };
- $.event.special[object.name].owl = true;
- }
- } else if (object.type === Owl.Type.State) {
- if (!this._states.tags[object.name]) {
- this._states.tags[object.name] = object.tags;
- } else {
- this._states.tags[object.name] =
this._states.tags[object.name].concat(object.tags);
- }
-
- this._states.tags[object.name] =
$.grep(this._states.tags[object.name], $.proxy(function(tag, i) {
- return $.inArray(tag,
this._states.tags[object.name]) === i;
- }, this));
- }
- };
-
- /**
- * Suppresses events.
- * @protected
- * @param {Array.<String>} events - The events to suppress.
- */
- Owl.prototype.suppress = function(events) {
- $.each(events, $.proxy(function(index, event) {
- this._supress[event] = true;
- }, this));
- };
-
- /**
- * Releases suppressed events.
- * @protected
- * @param {Array.<String>} events - The events to release.
- */
- Owl.prototype.release = function(events) {
- $.each(events, $.proxy(function(index, event) {
- delete this._supress[event];
- }, this));
- };
-
- /**
- * Gets unified pointer coordinates from event.
- * @todo #261
- * @protected
- * @param {Event} - The `mousedown` or `touchstart` event.
- * @returns {Object} - Contains `x` and `y` coordinates of current
pointer position.
- */
- Owl.prototype.pointer = function(event) {
- var result = { x: null, y: null };
-
- event = event.originalEvent || event || window.event;
-
- event = event.touches && event.touches.length ?
- event.touches[0] : event.changedTouches &&
event.changedTouches.length ?
- event.changedTouches[0] : event;
-
- if (event.pageX) {
- result.x = event.pageX;
- result.y = event.pageY;
- } else {
- result.x = event.clientX;
- result.y = event.clientY;
- }
-
- return result;
- };
-
- /**
- * Determines if the input is a Number or something that can be coerced
to a Number
- * @protected
- * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} -
The input to be tested
- * @returns {Boolean} - An indication if the input is a Number or can
be coerced to a Number
- */
- Owl.prototype.isNumeric = function(number) {
- return !isNaN(parseFloat(number));
- };
-
- /**
- * Gets the difference of two vectors.
- * @todo #261
- * @protected
- * @param {Object} - The first vector.
- * @param {Object} - The second vector.
- * @returns {Object} - The difference.
- */
- Owl.prototype.difference = function(first, second) {
- return {
- x: first.x - second.x,
- y: first.y - second.y
- };
- };
-
- /**
- * The jQuery Plugin for the Owl Carousel
- * @todo Navigation plugin `next` and `prev`
- * @public
- */
- $.fn.owlCarousel = function(option) {
- var args = Array.prototype.slice.call(arguments, 1);
-
- return this.each(function() {
- var $this = $(this),
- data = $this.data('owl.carousel');
-
- if (!data) {
- data = new Owl(this, typeof option == 'object'
&& option);
- $this.data('owl.carousel', data);
-
- $.each([
- 'next', 'prev', 'to', 'destroy',
'refresh', 'replace', 'add', 'remove'
- ], function(i, event) {
- data.register({ type: Owl.Type.Event,
name: event });
- data.$element.on(event +
'.owl.carousel.core', $.proxy(function(e) {
- if (e.namespace &&
e.relatedTarget !== this) {
- this.suppress([ event
]);
- data[event].apply(this,
[].slice.call(arguments, 1));
- this.release([ event ]);
- }
- }, data));
- });
- }
-
- if (typeof option == 'string' && option.charAt(0) !==
'_') {
- data[option].apply(data, args);
- }
- });
- };
-
- /**
- * The constructor for the jQuery Plugin
- * @public
- */
- $.fn.owlCarousel.Constructor = Owl;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * AutoRefresh Plugin
- * @version 2.1.0
- * @author Artus Kolanowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
-
- /**
- * Creates the auto refresh plugin.
- * @class The Auto Refresh Plugin
- * @param {Owl} carousel - The Owl Carousel
- */
- var AutoRefresh = function(carousel) {
- /**
- * Reference to the core.
- * @protected
- * @type {Owl}
- */
- this._core = carousel;
-
- /**
- * Refresh interval.
- * @protected
- * @type {number}
- */
- this._interval = null;
-
- /**
- * Whether the element is currently visible or not.
- * @protected
- * @type {Boolean}
- */
- this._visible = null;
-
- /**
- * All event handlers.
- * @protected
- * @type {Object}
- */
- this._handlers = {
- 'initialized.owl.carousel': $.proxy(function(e) {
- if (e.namespace &&
this._core.settings.autoRefresh) {
- this.watch();
- }
- }, this)
- };
-
- // set default options
- this._core.options = $.extend({}, AutoRefresh.Defaults,
this._core.options);
-
- // register event handlers
- this._core.$element.on(this._handlers);
- };
-
- /**
- * Default options.
- * @public
- */
- AutoRefresh.Defaults = {
- autoRefresh: true,
- autoRefreshInterval: 500
- };
-
- /**
- * Watches the element.
- */
- AutoRefresh.prototype.watch = function() {
- if (this._interval) {
- return;
- }
-
- this._visible = this._core.$element.is(':visible');
- this._interval = window.setInterval($.proxy(this.refresh,
this), this._core.settings.autoRefreshInterval);
- };
-
- /**
- * Refreshes the element.
- */
- AutoRefresh.prototype.refresh = function() {
- if (this._core.$element.is(':visible') === this._visible) {
- return;
- }
-
- this._visible = !this._visible;
-
- this._core.$element.toggleClass('owl-hidden', !this._visible);
-
- this._visible && (this._core.invalidate('width') &&
this._core.refresh());
- };
-
- /**
- * Destroys the plugin.
- */
- AutoRefresh.prototype.destroy = function() {
- var handler, property;
-
- window.clearInterval(this._interval);
-
- for (handler in this._handlers) {
- this._core.$element.off(handler,
this._handlers[handler]);
- }
- for (property in Object.getOwnPropertyNames(this)) {
- typeof this[property] != 'function' && (this[property]
= null);
- }
- };
-
- $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * Lazy Plugin
- * @version 2.1.0
- * @author Bartosz Wojciechowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
-
- /**
- * Creates the lazy plugin.
- * @class The Lazy Plugin
- * @param {Owl} carousel - The Owl Carousel
- */
- var Lazy = function(carousel) {
-
- /**
- * Reference to the core.
- * @protected
- * @type {Owl}
- */
- this._core = carousel;
-
- /**
- * Already loaded items.
- * @protected
- * @type {Array.<jQuery>}
- */
- this._loaded = [];
-
- /**
- * Event handlers.
- * @protected
- * @type {Object}
- */
- this._handlers = {
- 'initialized.owl.carousel change.owl.carousel
resized.owl.carousel': $.proxy(function(e) {
- if (!e.namespace) {
- return;
- }
-
- if (!this._core.settings ||
!this._core.settings.lazyLoad) {
- return;
- }
-
- if ((e.property && e.property.name ==
'position') || e.type == 'initialized') {
- var settings = this._core.settings,
- n = (settings.center &&
Math.ceil(settings.items / 2) || settings.items),
- i = ((settings.center && n *
-1) || 0),
- position = (e.property &&
e.property.value !== undefined ? e.property.value : this._core.current()) + i,
- clones =
this._core.clones().length,
- load = $.proxy(function(i, v) {
this.load(v) }, this);
-
- while (i++ < n) {
- this.load(clones / 2 +
this._core.relative(position));
- clones &&
$.each(this._core.clones(this._core.relative(position)), load);
- position++;
- }
- }
- }, this)
- };
-
- // set the default options
- this._core.options = $.extend({}, Lazy.Defaults,
this._core.options);
-
- // register event handler
- this._core.$element.on(this._handlers);
- };
-
- /**
- * Default options.
- * @public
- */
- Lazy.Defaults = {
- lazyLoad: false
- };
-
- /**
- * Loads all resources of an item at the specified position.
- * @param {Number} position - The absolute position of the item.
- * @protected
- */
- Lazy.prototype.load = function(position) {
- var $item = this._core.$stage.children().eq(position),
- $elements = $item && $item.find('.owl-lazy');
-
- if (!$elements || $.inArray($item.get(0), this._loaded) > -1) {
- return;
- }
-
- $elements.each($.proxy(function(index, element) {
- var $element = $(element), image,
- url = (window.devicePixelRatio > 1 &&
$element.attr('data-src-retina')) || $element.attr('data-src');
-
- this._core.trigger('load', { element: $element, url:
url }, 'lazy');
-
- if ($element.is('img')) {
- $element.one('load.owl.lazy',
$.proxy(function() {
- $element.css('opacity', 1);
- this._core.trigger('loaded', { element:
$element, url: url }, 'lazy');
- }, this)).attr('src', url);
- } else {
- image = new Image();
- image.onload = $.proxy(function() {
- $element.css({
- 'background-image': 'url(' +
url + ')',
- 'opacity': '1'
- });
- this._core.trigger('loaded', { element:
$element, url: url }, 'lazy');
- }, this);
- image.src = url;
- }
- }, this));
-
- this._loaded.push($item.get(0));
- };
-
- /**
- * Destroys the plugin.
- * @public
- */
- Lazy.prototype.destroy = function() {
- var handler, property;
-
- for (handler in this.handlers) {
- this._core.$element.off(handler,
this.handlers[handler]);
- }
- for (property in Object.getOwnPropertyNames(this)) {
- typeof this[property] != 'function' && (this[property]
= null);
- }
- };
-
- $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * AutoHeight Plugin
- * @version 2.1.0
- * @author Bartosz Wojciechowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
-
- /**
- * Creates the auto height plugin.
- * @class The Auto Height Plugin
- * @param {Owl} carousel - The Owl Carousel
- */
- var AutoHeight = function(carousel) {
- /**
- * Reference to the core.
- * @protected
- * @type {Owl}
- */
- this._core = carousel;
-
- /**
- * All event handlers.
- * @protected
- * @type {Object}
- */
- this._handlers = {
- 'initialized.owl.carousel refreshed.owl.carousel':
$.proxy(function(e) {
- if (e.namespace &&
this._core.settings.autoHeight) {
- this.update();
- }
- }, this),
- 'changed.owl.carousel': $.proxy(function(e) {
- if (e.namespace &&
this._core.settings.autoHeight && e.property.name == 'position'){
- this.update();
- }
- }, this),
- 'loaded.owl.lazy': $.proxy(function(e) {
- if (e.namespace &&
this._core.settings.autoHeight
- && e.element.closest('.' +
this._core.settings.itemClass).index() === this._core.current()) {
- this.update();
- }
- }, this)
- };
-
- // set default options
- this._core.options = $.extend({}, AutoHeight.Defaults,
this._core.options);
-
- // register event handlers
- this._core.$element.on(this._handlers);
- };
-
- /**
- * Default options.
- * @public
- */
- AutoHeight.Defaults = {
- autoHeight: false,
- autoHeightClass: 'owl-height'
- };
-
- /**
- * Updates the view.
- */
- AutoHeight.prototype.update = function() {
- var start = this._core._current,
- end = start + this._core.settings.items,
- visible =
this._core.$stage.children().toArray().slice(start, end),
- heights = [],
- maxheight = 0;
-
- $.each(visible, function(index, item) {
- heights.push($(item).height());
- });
-
- maxheight = Math.max.apply(null, heights);
-
- this._core.$stage.parent()
- .height(maxheight)
- .addClass(this._core.settings.autoHeightClass);
- };
-
- AutoHeight.prototype.destroy = function() {
- var handler, property;
-
- for (handler in this._handlers) {
- this._core.$element.off(handler,
this._handlers[handler]);
- }
- for (property in Object.getOwnPropertyNames(this)) {
- typeof this[property] != 'function' && (this[property]
= null);
- }
- };
-
- $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * Video Plugin
- * @version 2.1.0
- * @author Bartosz Wojciechowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
-
- /**
- * Creates the video plugin.
- * @class The Video Plugin
- * @param {Owl} carousel - The Owl Carousel
- */
- var Video = function(carousel) {
- /**
- * Reference to the core.
- * @protected
- * @type {Owl}
- */
- this._core = carousel;
-
- /**
- * Cache all video URLs.
- * @protected
- * @type {Object}
- */
- this._videos = {};
-
- /**
- * Current playing item.
- * @protected
- * @type {jQuery}
- */
- this._playing = null;
-
- /**
- * All event handlers.
- * @todo The cloned content removale is too late
- * @protected
- * @type {Object}
- */
- this._handlers = {
- 'initialized.owl.carousel': $.proxy(function(e) {
- if (e.namespace) {
- this._core.register({ type: 'state',
name: 'playing', tags: [ 'interacting' ] });
- }
- }, this),
- 'resize.owl.carousel': $.proxy(function(e) {
- if (e.namespace && this._core.settings.video &&
this.isInFullScreen()) {
- e.preventDefault();
- }
- }, this),
- 'refreshed.owl.carousel': $.proxy(function(e) {
- if (e.namespace && this._core.is('resizing')) {
- this._core.$stage.find('.cloned
.owl-video-frame').remove();
- }
- }, this),
- 'changed.owl.carousel': $.proxy(function(e) {
- if (e.namespace && e.property.name ===
'position' && this._playing) {
- this.stop();
- }
- }, this),
- 'prepared.owl.carousel': $.proxy(function(e) {
- if (!e.namespace) {
- return;
- }
-
- var $element = $(e.content).find('.owl-video');
-
- if ($element.length) {
- $element.css('display', 'none');
- this.fetch($element, $(e.content));
- }
- }, this)
- };
-
- // set default options
- this._core.options = $.extend({}, Video.Defaults,
this._core.options);
-
- // register event handlers
- this._core.$element.on(this._handlers);
-
- this._core.$element.on('click.owl.video',
'.owl-video-play-icon', $.proxy(function(e) {
- this.play(e);
- }, this));
- };
-
- /**
- * Default options.
- * @public
- */
- Video.Defaults = {
- video: false,
- videoHeight: false,
- videoWidth: false
- };
-
- /**
- * Gets the video ID and the type (YouTube/Vimeo/vzaar only).
- * @protected
- * @param {jQuery} target - The target containing the video data.
- * @param {jQuery} item - The item containing the video.
- */
- Video.prototype.fetch = function(target, item) {
- var type = (function() {
- if (target.attr('data-vimeo-id')) {
- return 'vimeo';
- } else if
(target.attr('data-vzaar-id')) {
- return 'vzaar'
- } else {
- return 'youtube';
- }
- })(),
- id = target.attr('data-vimeo-id') ||
target.attr('data-youtube-id') || target.attr('data-vzaar-id'),
- width = target.attr('data-width') ||
this._core.settings.videoWidth,
- height = target.attr('data-height') ||
this._core.settings.videoHeight,
- url = target.attr('href');
-
- if (url) {
-
- /*
- Parses the id's out of the following
urls (and probably more):
- https://www.youtube.com/watch?v=:id
- https://youtu.be/:id
- https://vimeo.com/:id
- https://vimeo.com/channels/:channel/:id
-
https://vimeo.com/groups/:group/videos/:id
- https://app.vzaar.com/videos/:id
-
- Visual example:
https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F
- */
-
- id =
url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
-
- if (id[3].indexOf('youtu') > -1) {
- type = 'youtube';
- } else if (id[3].indexOf('vimeo') > -1) {
- type = 'vimeo';
- } else if (id[3].indexOf('vzaar') > -1) {
- type = 'vzaar';
- } else {
- throw new Error('Video URL not supported.');
- }
- id = id[6];
- } else {
- throw new Error('Missing video URL.');
- }
-
- this._videos[url] = {
- type: type,
- id: id,
- width: width,
- height: height
- };
-
- item.attr('data-video', url);
-
- this.thumbnail(target, this._videos[url]);
- };
-
- /**
- * Creates video thumbnail.
- * @protected
- * @param {jQuery} target - The target containing the video data.
- * @param {Object} info - The video info object.
- * @see `fetch`
- */
- Video.prototype.thumbnail = function(target, video) {
- var tnLink,
- icon,
- path,
- dimensions = video.width && video.height ?
'style="width:' + video.width + 'px;height:' + video.height + 'px;"' : '',
- customTn = target.find('img'),
- srcType = 'src',
- lazyClass = '',
- settings = this._core.settings,
- create = function(path) {
- icon = '<div
class="owl-video-play-icon"></div>';
-
- if (settings.lazyLoad) {
- tnLink = '<div class="owl-video-tn ' +
lazyClass + '" ' + srcType + '="' + path + '"></div>';
- } else {
- tnLink = '<div class="owl-video-tn"
style="opacity:1;background-image:url(' + path + ')"></div>';
- }
- target.after(tnLink);
- target.after(icon);
- };
-
- // wrap video content into owl-video-wrapper div
- target.wrap('<div class="owl-video-wrapper"' + dimensions +
'></div>');
-
- if (this._core.settings.lazyLoad) {
- srcType = 'data-src';
- lazyClass = 'owl-lazy';
- }
-
- // custom thumbnail
- if (customTn.length) {
- create(customTn.attr(srcType));
- customTn.remove();
- return false;
- }
-
- if (video.type === 'youtube') {
- path = "//img.youtube.com/vi/" + video.id +
"/hqdefault.jpg";
- create(path);
- } else if (video.type === 'vimeo') {
- $.ajax({
- type: 'GET',
- url: '//vimeo.com/api/v2/video/' + video.id +
'.json',
- jsonp: 'callback',
- dataType: 'jsonp',
- success: function(data) {
- path = data[0].thumbnail_large;
- create(path);
- }
- });
- } else if (video.type === 'vzaar') {
- $.ajax({
- type: 'GET',
- url: '//vzaar.com/api/videos/' + video.id +
'.json',
- jsonp: 'callback',
- dataType: 'jsonp',
- success: function(data) {
- path = data.framegrab_url;
- create(path);
- }
- });
- }
- };
-
- /**
- * Stops the current video.
- * @public
- */
- Video.prototype.stop = function() {
- this._core.trigger('stop', null, 'video');
- this._playing.find('.owl-video-frame').remove();
- this._playing.removeClass('owl-video-playing');
- this._playing = null;
- this._core.leave('playing');
- this._core.trigger('stopped', null, 'video');
- };
-
- /**
- * Starts the current video.
- * @public
- * @param {Event} event - The event arguments.
- */
- Video.prototype.play = function(event) {
- var target = $(event.target),
- item = target.closest('.' +
this._core.settings.itemClass),
- video = this._videos[item.attr('data-video')],
- width = video.width || '100%',
- height = video.height || this._core.$stage.height(),
- html;
-
- if (this._playing) {
- return;
- }
-
- this._core.enter('playing');
- this._core.trigger('play', null, 'video');
-
- item = this._core.items(this._core.relative(item.index()));
-
- this._core.reset(item.index());
-
- if (video.type === 'youtube') {
- html = '<iframe width="' + width + '" height="' +
height + '" src="//www.youtube.com/embed/' +
- video.id + '?autoplay=1&v=' + video.id + '"
frameborder="0" allowfullscreen></iframe>';
- } else if (video.type === 'vimeo') {
- html = '<iframe src="//player.vimeo.com/video/' +
video.id +
- '?autoplay=1" width="' + width + '" height="' +
height +
- '" frameborder="0" webkitallowfullscreen
mozallowfullscreen allowfullscreen></iframe>';
- } else if (video.type === 'vzaar') {
- html = '<iframe frameborder="0"' + 'height="' + height
+ '"' + 'width="' + width +
- '" allowfullscreen mozallowfullscreen
webkitAllowFullScreen ' +
- 'src="//view.vzaar.com/' + video.id +
'/player?autoplay=true"></iframe>';
- }
-
- $('<div class="owl-video-frame">' + html +
'</div>').insertAfter(item.find('.owl-video'));
-
- this._playing = item.addClass('owl-video-playing');
- };
-
- /**
- * Checks whether an video is currently in full screen mode or not.
- * @todo Bad style because looks like a readonly method but changes
members.
- * @protected
- * @returns {Boolean}
- */
- Video.prototype.isInFullScreen = function() {
- var element = document.fullscreenElement ||
document.mozFullScreenElement ||
- document.webkitFullscreenElement;
-
- return element &&
$(element).parent().hasClass('owl-video-frame');
- };
-
- /**
- * Destroys the plugin.
- */
- Video.prototype.destroy = function() {
- var handler, property;
-
- this._core.$element.off('click.owl.video');
-
- for (handler in this._handlers) {
- this._core.$element.off(handler,
this._handlers[handler]);
- }
- for (property in Object.getOwnPropertyNames(this)) {
- typeof this[property] != 'function' && (this[property]
= null);
- }
- };
-
- $.fn.owlCarousel.Constructor.Plugins.Video = Video;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * Animate Plugin
- * @version 2.1.0
- * @author Bartosz Wojciechowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
-
- /**
- * Creates the animate plugin.
- * @class The Navigation Plugin
- * @param {Owl} scope - The Owl Carousel
- */
- var Animate = function(scope) {
- this.core = scope;
- this.core.options = $.extend({}, Animate.Defaults,
this.core.options);
- this.swapping = true;
- this.previous = undefined;
- this.next = undefined;
-
- this.handlers = {
- 'change.owl.carousel': $.proxy(function(e) {
- if (e.namespace && e.property.name ==
'position') {
- this.previous = this.core.current();
- this.next = e.property.value;
- }
- }, this),
- 'drag.owl.carousel dragged.owl.carousel
translated.owl.carousel': $.proxy(function(e) {
- if (e.namespace) {
- this.swapping = e.type == 'translated';
- }
- }, this),
- 'translate.owl.carousel': $.proxy(function(e) {
- if (e.namespace && this.swapping &&
(this.core.options.animateOut || this.core.options.animateIn)) {
- this.swap();
- }
- }, this)
- };
-
- this.core.$element.on(this.handlers);
- };
-
- /**
- * Default options.
- * @public
- */
- Animate.Defaults = {
- animateOut: false,
- animateIn: false
- };
-
- /**
- * Toggles the animation classes whenever an translations starts.
- * @protected
- * @returns {Boolean|undefined}
- */
- Animate.prototype.swap = function() {
-
- if (this.core.settings.items !== 1) {
- return;
- }
-
- if (!$.support.animation || !$.support.transition) {
- return;
- }
-
- this.core.speed(0);
-
- var left,
- clear = $.proxy(this.clear, this),
- previous =
this.core.$stage.children().eq(this.previous),
- next = this.core.$stage.children().eq(this.next),
- incoming = this.core.settings.animateIn,
- outgoing = this.core.settings.animateOut;
-
- if (this.core.current() === this.previous) {
- return;
- }
-
- if (outgoing) {
- left = this.core.coordinates(this.previous) -
this.core.coordinates(this.next);
- previous.one($.support.animation.end, clear)
- .css( { 'left': left + 'px' } )
- .addClass('animated owl-animated-out')
- .addClass(outgoing);
- }
-
- if (incoming) {
- next.one($.support.animation.end, clear)
- .addClass('animated owl-animated-in')
- .addClass(incoming);
- }
- };
-
- Animate.prototype.clear = function(e) {
- $(e.target).css( { 'left': '' } )
- .removeClass('animated owl-animated-out
owl-animated-in')
- .removeClass(this.core.settings.animateIn)
- .removeClass(this.core.settings.animateOut);
- this.core.onTransitionEnd();
- };
-
- /**
- * Destroys the plugin.
- * @public
- */
- Animate.prototype.destroy = function() {
- var handler, property;
-
- for (handler in this.handlers) {
- this.core.$element.off(handler, this.handlers[handler]);
- }
- for (property in Object.getOwnPropertyNames(this)) {
- typeof this[property] != 'function' && (this[property]
= null);
- }
- };
-
- $.fn.owlCarousel.Constructor.Plugins.Animate = Animate;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * Autoplay Plugin
- * @version 2.1.0
- * @author Bartosz Wojciechowski
- * @author Artus Kolanowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
-
- /**
- * Creates the autoplay plugin.
- * @class The Autoplay Plugin
- * @param {Owl} scope - The Owl Carousel
- */
- var Autoplay = function(carousel) {
- /**
- * Reference to the core.
- * @protected
- * @type {Owl}
- */
- this._core = carousel;
-
- /**
- * The autoplay timeout.
- * @type {Timeout}
- */
- this._timeout = null;
-
- /**
- * Indicates whenever the autoplay is paused.
- * @type {Boolean}
- */
- this._paused = false;
-
- /**
- * All event handlers.
- * @protected
- * @type {Object}
- */
- this._handlers = {
- 'changed.owl.carousel': $.proxy(function(e) {
- if (e.namespace && e.property.name ===
'settings') {
- if (this._core.settings.autoplay) {
- this.play();
- } else {
- this.stop();
- }
- } else if (e.namespace && e.property.name ===
'position') {
- //console.log('play?', e);
- if (this._core.settings.autoplay) {
- this._setAutoPlayInterval();
- }
- }
- }, this),
- 'initialized.owl.carousel': $.proxy(function(e) {
- if (e.namespace &&
this._core.settings.autoplay) {
- this.play();
- }
- }, this),
- 'play.owl.autoplay': $.proxy(function(e, t, s) {
- if (e.namespace) {
- this.play(t, s);
- }
- }, this),
- 'stop.owl.autoplay': $.proxy(function(e) {
- if (e.namespace) {
- this.stop();
- }
- }, this),
- 'mouseover.owl.autoplay': $.proxy(function() {
- if (this._core.settings.autoplayHoverPause &&
this._core.is('rotating')) {
- this.pause();
- }
- }, this),
- 'mouseleave.owl.autoplay': $.proxy(function() {
- if (this._core.settings.autoplayHoverPause &&
this._core.is('rotating')) {
- this.play();
- }
- }, this),
- 'touchstart.owl.core': $.proxy(function() {
- if (this._core.settings.autoplayHoverPause &&
this._core.is('rotating')) {
- this.pause();
- }
- }, this),
- 'touchend.owl.core': $.proxy(function() {
- if (this._core.settings.autoplayHoverPause) {
- this.play();
- }
- }, this)
- };
-
- // register event handlers
- this._core.$element.on(this._handlers);
-
- // set default options
- this._core.options = $.extend({}, Autoplay.Defaults,
this._core.options);
- };
-
- /**
- * Default options.
- * @public
- */
- Autoplay.Defaults = {
- autoplay: false,
- autoplayTimeout: 5000,
- autoplayHoverPause: false,
- autoplaySpeed: false
- };
-
- /**
- * Starts the autoplay.
- * @public
- * @param {Number} [timeout] - The interval before the next animation
starts.
- * @param {Number} [speed] - The animation speed for the animations.
- */
- Autoplay.prototype.play = function(timeout, speed) {
- this._paused = false;
-
- if (this._core.is('rotating')) {
- return;
- }
-
- this._core.enter('rotating');
-
- this._setAutoPlayInterval();
- };
-
- /**
- * Gets a new timeout
- * @private
- * @param {Number} [timeout] - The interval before the next animation
starts.
- * @param {Number} [speed] - The animation speed for the animations.
- * @return {Timeout}
- */
- Autoplay.prototype._getNextTimeout = function(timeout, speed) {
- if ( this._timeout ) {
- window.clearTimeout(this._timeout);
- }
- return window.setTimeout($.proxy(function() {
- if (this._paused || this._core.is('busy') ||
this._core.is('interacting') || document.hidden) {
- return;
- }
- this._core.next(speed ||
this._core.settings.autoplaySpeed);
- }, this), timeout || this._core.settings.autoplayTimeout);
- };
-
- /**
- * Sets autoplay in motion.
- * @private
- */
- Autoplay.prototype._setAutoPlayInterval = function() {
- this._timeout = this._getNextTimeout();
- };
-
- /**
- * Stops the autoplay.
- * @public
- */
- Autoplay.prototype.stop = function() {
- if (!this._core.is('rotating')) {
- return;
- }
-
- window.clearTimeout(this._timeout);
- this._core.leave('rotating');
- };
-
- /**
- * Stops the autoplay.
- * @public
- */
- Autoplay.prototype.pause = function() {
- if (!this._core.is('rotating')) {
- return;
- }
-
- this._paused = true;
- };
-
- /**
- * Destroys the plugin.
- */
- Autoplay.prototype.destroy = function() {
- var handler, property;
-
- this.stop();
-
- for (handler in this._handlers) {
- this._core.$element.off(handler,
this._handlers[handler]);
- }
- for (property in Object.getOwnPropertyNames(this)) {
- typeof this[property] != 'function' && (this[property]
= null);
- }
- };
-
- $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * Navigation Plugin
- * @version 2.1.0
- * @author Artus Kolanowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
- 'use strict';
-
- /**
- * Creates the navigation plugin.
- * @class The Navigation Plugin
- * @param {Owl} carousel - The Owl Carousel.
- */
- var Navigation = function(carousel) {
- /**
- * Reference to the core.
- * @protected
- * @type {Owl}
- */
- this._core = carousel;
-
- /**
- * Indicates whether the plugin is initialized or not.
- * @protected
- * @type {Boolean}
- */
- this._initialized = false;
-
- /**
- * The current paging indexes.
- * @protected
- * @type {Array}
- */
- this._pages = [];
-
- /**
- * All DOM elements of the user interface.
- * @protected
- * @type {Object}
- */
- this._controls = {};
-
- /**
- * Markup for an indicator.
- * @protected
- * @type {Array.<String>}
- */
- this._templates = [];
-
- /**
- * The carousel element.
- * @type {jQuery}
- */
- this.$element = this._core.$element;
-
- /**
- * Overridden methods of the carousel.
- * @protected
- * @type {Object}
- */
- this._overrides = {
- next: this._core.next,
- prev: this._core.prev,
- to: this._core.to
- };
-
- /**
- * All event handlers.
- * @protected
- * @type {Object}
- */
- this._handlers = {
- 'prepared.owl.carousel': $.proxy(function(e) {
- if (e.namespace &&
this._core.settings.dotsData) {
- this._templates.push('<div class="' +
this._core.settings.dotClass + '">' +
-
$(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') +
'</div>');
- }
- }, this),
- 'added.owl.carousel': $.proxy(function(e) {
- if (e.namespace &&
this._core.settings.dotsData) {
- this._templates.splice(e.position, 0,
this._templates.pop());
- }
- }, this),
- 'remove.owl.carousel': $.proxy(function(e) {
- if (e.namespace &&
this._core.settings.dotsData) {
- this._templates.splice(e.position, 1);
- }
- }, this),
- 'changed.owl.carousel': $.proxy(function(e) {
- if (e.namespace && e.property.name ==
'position') {
- this.draw();
- }
- }, this),
- 'initialized.owl.carousel': $.proxy(function(e) {
- if (e.namespace && !this._initialized) {
- this._core.trigger('initialize', null,
'navigation');
- this.initialize();
- this.update();
- this.draw();
- this._initialized = true;
- this._core.trigger('initialized', null,
'navigation');
- }
- }, this),
- 'refreshed.owl.carousel': $.proxy(function(e) {
- if (e.namespace && this._initialized) {
- this._core.trigger('refresh', null,
'navigation');
- this.update();
- this.draw();
- this._core.trigger('refreshed', null,
'navigation');
- }
- }, this)
- };
-
- // set default options
- this._core.options = $.extend({}, Navigation.Defaults,
this._core.options);
-
- // register event handlers
- this.$element.on(this._handlers);
- };
-
- /**
- * Default options.
- * @public
- * @todo Rename `slideBy` to `navBy`
- */
- Navigation.Defaults = {
- nav: false,
- navText: [ 'prev', 'next' ],
- navSpeed: false,
- navElement: 'div',
- navContainer: false,
- navContainerClass: 'owl-nav',
- navClass: [ 'owl-prev', 'owl-next' ],
- slideBy: 1,
- dotClass: 'owl-dot',
- dotsClass: 'owl-dots',
- dots: true,
- dotsEach: false,
- dotsData: false,
- dotsSpeed: false,
- dotsContainer: false
- };
-
- /**
- * Initializes the layout of the plugin and extends the carousel.
- * @protected
- */
- Navigation.prototype.initialize = function() {
- var override,
- settings = this._core.settings;
-
- // create DOM structure for relative navigation
- this._controls.$relative = (settings.navContainer ?
$(settings.navContainer)
- :
$('<div>').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');
-
- this._controls.$previous = $('<' + settings.navElement + '>')
- .addClass(settings.navClass[0])
- .html(settings.navText[0])
- .prependTo(this._controls.$relative)
- .on('click', $.proxy(function(e) {
- this.prev(settings.navSpeed);
- }, this));
- this._controls.$next = $('<' + settings.navElement + '>')
- .addClass(settings.navClass[1])
- .html(settings.navText[1])
- .appendTo(this._controls.$relative)
- .on('click', $.proxy(function(e) {
- this.next(settings.navSpeed);
- }, this));
-
- // create DOM structure for absolute navigation
- if (!settings.dotsData) {
- this._templates = [ $('<div>')
- .addClass(settings.dotClass)
- .append($('<span>'))
- .prop('outerHTML') ];
- }
-
- this._controls.$absolute = (settings.dotsContainer ?
$(settings.dotsContainer)
- :
$('<div>').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');
-
- this._controls.$absolute.on('click', 'div', $.proxy(function(e)
{
- var index =
$(e.target).parent().is(this._controls.$absolute)
- ? $(e.target).index() :
$(e.target).parent().index();
-
- e.preventDefault();
-
- this.to(index, settings.dotsSpeed);
- }, this));
-
- // override public methods of the carousel
- for (override in this._overrides) {
- this._core[override] = $.proxy(this[override], this);
- }
- };
-
- /**
- * Destroys the plugin.
- * @protected
- */
- Navigation.prototype.destroy = function() {
- var handler, control, property, override;
-
- for (handler in this._handlers) {
- this.$element.off(handler, this._handlers[handler]);
- }
- for (control in this._controls) {
- this._controls[control].remove();
- }
- for (override in this.overides) {
- this._core[override] = this._overrides[override];
- }
- for (property in Object.getOwnPropertyNames(this)) {
- typeof this[property] != 'function' && (this[property]
= null);
- }
- };
-
- /**
- * Updates the internal state.
- * @protected
- */
- Navigation.prototype.update = function() {
- var i, j, k,
- lower = this._core.clones().length / 2,
- upper = lower + this._core.items().length,
- maximum = this._core.maximum(true),
- settings = this._core.settings,
- size = settings.center || settings.autoWidth ||
settings.dotsData
- ? 1 : settings.dotsEach || settings.items;
-
- if (settings.slideBy !== 'page') {
- settings.slideBy = Math.min(settings.slideBy,
settings.items);
- }
-
- if (settings.dots || settings.slideBy == 'page') {
- this._pages = [];
-
- for (i = lower, j = 0, k = 0; i < upper; i++) {
- if (j >= size || j === 0) {
- this._pages.push({
- start: Math.min(maximum, i -
lower),
- end: i - lower + size - 1
- });
- if (Math.min(maximum, i - lower) ===
maximum) {
- break;
- }
- j = 0, ++k;
- }
- j += this._core.mergers(this._core.relative(i));
- }
- }
- };
-
- /**
- * Draws the user interface.
- * @todo The option `dotsData` wont work.
- * @protected
- */
- Navigation.prototype.draw = function() {
- var difference,
- settings = this._core.settings,
- disabled = this._core.items().length <= settings.items,
- index = this._core.relative(this._core.current()),
- loop = settings.loop || settings.rewind;
-
- this._controls.$relative.toggleClass('disabled', !settings.nav
|| disabled);
-
- if (settings.nav) {
- this._controls.$previous.toggleClass('disabled', !loop
&& index <= this._core.minimum(true));
- this._controls.$next.toggleClass('disabled', !loop &&
index >= this._core.maximum(true));
- }
-
- this._controls.$absolute.toggleClass('disabled', !settings.dots
|| disabled);
-
- if (settings.dots) {
- difference = this._pages.length -
this._controls.$absolute.children().length;
-
- if (settings.dotsData && difference !== 0) {
-
this._controls.$absolute.html(this._templates.join(''));
- } else if (difference > 0) {
- this._controls.$absolute.append(new
Array(difference + 1).join(this._templates[0]));
- } else if (difference < 0) {
-
this._controls.$absolute.children().slice(difference).remove();
- }
-
-
this._controls.$absolute.find('.active').removeClass('active');
-
this._controls.$absolute.children().eq($.inArray(this.current(),
this._pages)).addClass('active');
- }
- };
-
- /**
- * Extends event data.
- * @protected
- * @param {Event} event - The event object which gets thrown.
- */
- Navigation.prototype.onTrigger = function(event) {
- var settings = this._core.settings;
-
- event.page = {
- index: $.inArray(this.current(), this._pages),
- count: this._pages.length,
- size: settings && (settings.center ||
settings.autoWidth || settings.dotsData
- ? 1 : settings.dotsEach || settings.items)
- };
- };
-
- /**
- * Gets the current page position of the carousel.
- * @protected
- * @returns {Number}
- */
- Navigation.prototype.current = function() {
- var current = this._core.relative(this._core.current());
- return $.grep(this._pages, $.proxy(function(page, index) {
- return page.start <= current && page.end >= current;
- }, this)).pop();
- };
-
- /**
- * Gets the current succesor/predecessor position.
- * @protected
- * @returns {Number}
- */
- Navigation.prototype.getPosition = function(successor) {
- var position, length,
- settings = this._core.settings;
-
- if (settings.slideBy == 'page') {
- position = $.inArray(this.current(), this._pages);
- length = this._pages.length;
- successor ? ++position : --position;
- position = this._pages[((position % length) + length) %
length].start;
- } else {
- position = this._core.relative(this._core.current());
- length = this._core.items().length;
- successor ? position += settings.slideBy : position -=
settings.slideBy;
- }
-
- return position;
- };
-
- /**
- * Slides to the next item or page.
- * @public
- * @param {Number} [speed=false] - The time in milliseconds for the
transition.
- */
- Navigation.prototype.next = function(speed) {
- $.proxy(this._overrides.to, this._core)(this.getPosition(true),
speed);
- };
-
- /**
- * Slides to the previous item or page.
- * @public
- * @param {Number} [speed=false] - The time in milliseconds for the
transition.
- */
- Navigation.prototype.prev = function(speed) {
- $.proxy(this._overrides.to,
this._core)(this.getPosition(false), speed);
- };
-
- /**
- * Slides to the specified item or page.
- * @public
- * @param {Number} position - The position of the item or page.
- * @param {Number} [speed] - The time in milliseconds for the
transition.
- * @param {Boolean} [standard=false] - Whether to use the standard
behaviour or not.
- */
- Navigation.prototype.to = function(position, speed, standard) {
- var length;
-
- if (!standard && this._pages.length) {
- length = this._pages.length;
- $.proxy(this._overrides.to,
this._core)(this._pages[((position % length) + length) % length].start, speed);
- } else {
- $.proxy(this._overrides.to, this._core)(position,
speed);
- }
- };
-
- $.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * Hash Plugin
- * @version 2.1.0
- * @author Artus Kolanowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
- 'use strict';
-
- /**
- * Creates the hash plugin.
- * @class The Hash Plugin
- * @param {Owl} carousel - The Owl Carousel
- */
- var Hash = function(carousel) {
- /**
- * Reference to the core.
- * @protected
- * @type {Owl}
- */
- this._core = carousel;
-
- /**
- * Hash index for the items.
- * @protected
- * @type {Object}
- */
- this._hashes = {};
-
- /**
- * The carousel element.
- * @type {jQuery}
- */
- this.$element = this._core.$element;
-
- /**
- * All event handlers.
- * @protected
- * @type {Object}
- */
- this._handlers = {
- 'initialized.owl.carousel': $.proxy(function(e) {
- if (e.namespace &&
this._core.settings.startPosition === 'URLHash') {
-
$(window).trigger('hashchange.owl.navigation');
- }
- }, this),
- 'prepared.owl.carousel': $.proxy(function(e) {
- if (e.namespace) {
- var hash =
$(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');
-
- if (!hash) {
- return;
- }
-
- this._hashes[hash] = e.content;
- }
- }, this),
- 'changed.owl.carousel': $.proxy(function(e) {
- if (e.namespace && e.property.name ===
'position') {
- var current =
this._core.items(this._core.relative(this._core.current())),
- hash = $.map(this._hashes,
function(item, hash) {
- return item === current
? hash : null;
- }).join();
-
- if (!hash ||
window.location.hash.slice(1) === hash) {
- return;
- }
-
- window.location.hash = hash;
- }
- }, this)
- };
-
- // set default options
- this._core.options = $.extend({}, Hash.Defaults,
this._core.options);
-
- // register the event handlers
- this.$element.on(this._handlers);
-
- // register event listener for hash navigation
- $(window).on('hashchange.owl.navigation', $.proxy(function(e) {
- var hash = window.location.hash.substring(1),
- items = this._core.$stage.children(),
- position = this._hashes[hash] &&
items.index(this._hashes[hash]);
-
- if (position === undefined || position ===
this._core.current()) {
- return;
- }
-
- this._core.to(this._core.relative(position), false,
true);
- }, this));
- };
-
- /**
- * Default options.
- * @public
- */
- Hash.Defaults = {
- URLhashListener: false
- };
-
- /**
- * Destroys the plugin.
- * @public
- */
- Hash.prototype.destroy = function() {
- var handler, property;
-
- $(window).off('hashchange.owl.navigation');
-
- for (handler in this._handlers) {
- this._core.$element.off(handler,
this._handlers[handler]);
- }
- for (property in Object.getOwnPropertyNames(this)) {
- typeof this[property] != 'function' && (this[property]
= null);
- }
- };
-
- $.fn.owlCarousel.Constructor.Plugins.Hash = Hash;
-
-})(window.Zepto || window.jQuery, window, document);
-
-/**
- * Support Plugin
- *
- * @version 2.1.0
- * @author Vivid Planet Software GmbH
- * @author Artus Kolanowski
- * @author David Deutsch
- * @license The MIT License (MIT)
- */
-;(function($, window, document, undefined) {
-
- var style = $('<support>').get(0).style,
- prefixes = 'Webkit Moz O ms'.split(' '),
- events = {
- transition: {
- end: {
- WebkitTransition: 'webkitTransitionEnd',
- MozTransition: 'transitionend',
- OTransition: 'oTransitionEnd',
- transition: 'transitionend'
- }
- },
- animation: {
- end: {
- WebkitAnimation: 'webkitAnimationEnd',
- MozAnimation: 'animationend',
- OAnimation: 'oAnimationEnd',
- animation: 'animationend'
- }
- }
- },
- tests = {
- csstransforms: function() {
- return !!test('transform');
- },
- csstransforms3d: function() {
- return !!test('perspective');
- },
- csstransitions: function() {
- return !!test('transition');
- },
- cssanimations: function() {
- return !!test('animation');
- }
- };
-
- function test(property, prefixed) {
- var result = false,
- upper = property.charAt(0).toUpperCase() +
property.slice(1);
-
- $.each((property + ' ' + prefixes.join(upper + ' ') +
upper).split(' '), function(i, property) {
- if (style[property] !== undefined) {
- result = prefixed ? property : true;
- return false;
- }
- });
-
- return result;
- }
-
- function prefixed(property) {
- return test(property, true);
- }
-
- if (tests.csstransitions()) {
- /* jshint -W053 */
- $.support.transition = new String(prefixed('transition'))
- $.support.transition.end = events.transition.end[
$.support.transition ];
- }
-
- if (tests.cssanimations()) {
- /* jshint -W053 */
- $.support.animation = new String(prefixed('animation'))
- $.support.animation.end = events.animation.end[
$.support.animation ];
- }
-
- if (tests.csstransforms()) {
- /* jshint -W053 */
- $.support.transform = new String(prefixed('transform'));
- $.support.transform3d = tests.csstransforms3d();
- }
-
-})(window.Zepto || window.jQuery, window, document);
diff --git a/static/js/owl.script.js b/static/js/owl.script.js
deleted file mode 100644
index 37effcc..0000000
--- a/static/js/owl.script.js
+++ /dev/null
@@ -1,82 +0,0 @@
-$(document).ready(function() {
- var owl = $('.leader_innr .owl-carousel');
- owl.owlCarousel({
- margin: 30,
- nav: true,
- dotsEach: true,
- autoplay: true,
- loop: true,
- responsive: {
- 0: {
- items: 1
- },
- 450: {
- items: 2
- },
- 600: {
- items: 2
- },
- 991: {
- items: 3
- },
- 1200: {
- items: 4
- }
- }
- })
- var owl = $('.customrcaro');
- owl.owlCarousel({
- margin: 0,
- nav: true,
- dotsEach: true,
- autoplay: true,
- loop: true,
- responsive: {
- 0: {
- items: 1
- },
- 450: {
- items: 1
- },
- 600: {
- items: 2
- },
- 991: {
- items: 2
- },
- 1200: {
- items: 3
- }
- }
- })
- var owl = $('.momelecte');
- owl.owlCarousel({
- margin: 0,
- nav: true,
- dotsEach: true,
- autoplay: true,
- autoHeight : true,
- loop: true,
- responsive: {
- 0: {
- items: 1
- },
- 450: {
- items: 1
- },
- 600: {
- items: 1
- },
- 991: {
- items: 1
- },
- 1200: {
- items: 1
- }
- }
- })
-
- })
-
-
-
diff --git a/static/scss/owl.carousel.scss b/static/scss/owl.carousel.scss
deleted file mode 100644
index 365f29d..0000000
--- a/static/scss/owl.carousel.scss
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- * Owl Carousel v2.2.0
- * Copyright 2013-2016 David Deutsch
- * Licensed under MIT
(https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE)
- */
-/*
- * Owl Carousel - Core
- */
-.owl-carousel {
- /* display: none; | still looks ok when noscript blocks carousel rendering */
- width: 100%;
- -webkit-tap-highlight-color: transparent;
- /* position relative and z-index fix webkit rendering fonts issue */
- position: relative;
- z-index: 1; }
- .owl-carousel .owl-stage {
- position: relative;
- -ms-touch-action: pan-Y;
- touch-action: pan-y;
- }
- .owl-carousel .owl-stage:after {
- content: ".";
- display: block;
- clear: both;
- visibility: hidden;
- line-height: 0;
- height: 0; }
- .owl-carousel .owl-stage-outer {
- position: relative;
- overflow: hidden;
- /* fix for flashing background */
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate(0, 0, 0);
- }
- .owl-carousel .owl-wrapper,
- .owl-carousel .owl-item {
- -webkit-backface-visibility: hidden;
- -moz-backface-visibility: hidden;
- -ms-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-transform: translate3d(0, 0, 0);
- -moz-transform: translate3d(0, 0, 0);
- -ms-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
- .owl-carousel .owl-item {
- position: relative;
- min-height: 1px;
- float: left;
- backface-visibility: hidden;
- -webkit-backface-visibility: hidden;
- -webkit-tap-highlight-color: transparent;
- -webkit-touch-callout: none;
- }
- .owl-carousel .owl-item img {
- display: block;
- width: 100%; }
- .owl-carousel .owl-nav.disabled,
- .owl-carousel .owl-dots.disabled {
- display: none; }
- .owl-carousel .owl-nav .owl-prev,
- .owl-carousel .owl-nav .owl-next,
- .owl-carousel .owl-dot {
- cursor: pointer;
- cursor: hand;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
- .owl-carousel.owl-loaded {
- display: block; }
- .owl-carousel.owl-loading {
- opacity: 0;
- display: block; }
- .owl-carousel.owl-hidden {
- opacity: 0; }
- .owl-carousel.owl-refresh .owl-item {
- visibility: hidden; }
- .owl-carousel.owl-drag .owl-item {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
- .owl-carousel.owl-grab {
- cursor: move;
- cursor: grab; }
- .owl-carousel.owl-rtl {
- direction: rtl; }
- .owl-carousel.owl-rtl .owl-item {
- float: right; }
-
-/* No Js */
-.no-js .owl-carousel {
- display: block; }
-
-/*
- * Owl Carousel - Animate Plugin
- */
-.owl-carousel .animated {
- -webkit-animation-duration: 1000ms;
- animation-duration: 1000ms;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both; }
-
-.owl-carousel .owl-animated-in {
- z-index: 0; }
-
-.owl-carousel .owl-animated-out {
- z-index: 1; }
-
-.owl-carousel .fadeOut {
- -webkit-animation-name: fadeOut;
- animation-name: fadeOut; }
-
-@-webkit-keyframes fadeOut {
- 0% {
- opacity: 1; }
- 100% {
- opacity: 0; } }
-
-@keyframes fadeOut {
- 0% {
- opacity: 1; }
- 100% {
- opacity: 0; } }
-
-/*
- * Owl Carousel - Auto Height Plugin
- */
-.owl-height {
- transition: height 500ms ease-in-out; }
-
-/*
- * Owl Carousel - Lazy Load Plugin
- */
-.owl-carousel .owl-item .owl-lazy {
- opacity: 0;
- transition: opacity 400ms ease; }
-
-.owl-carousel .owl-item img.owl-lazy {
- -webkit-transform-style: preserve-3d;
- transform-style: preserve-3d; }
-
-/*
- * Owl Carousel - Video Plugin
- */
-.owl-carousel .owl-video-wrapper {
- position: relative;
- height: 100%;
- background: #000; }
-
-.owl-carousel .owl-video-play-icon {
- position: absolute;
- height: 80px;
- width: 80px;
- left: 50%;
- top: 50%;
- margin-left: -40px;
- margin-top: -40px;
- background: url("owl.video.play.png") no-repeat;
- cursor: pointer;
- z-index: 1;
- backface-visibility: hidden;
- -webkit-backface-visibility: hidden;
- transition: -webkit-transform 100ms ease;
- transition: transform 100ms ease; }
-
-.owl-carousel .owl-video-play-icon:hover {
- -webkit-transform: scale(1.3, 1.3);
- -ms-transform: scale(1.3, 1.3);
- transform: scale(1.3, 1.3); }
-
-.owl-carousel .owl-video-playing .owl-video-tn,
-.owl-carousel .owl-video-playing .owl-video-play-icon {
- display: none; }
-
-.owl-carousel .owl-video-tn {
- opacity: 0;
- height: 100%;
- background-position: center center;
- background-repeat: no-repeat;
- background-size: contain;
- transition: opacity 400ms ease; }
-
-.owl-carousel .owl-video-frame {
- position: relative;
- z-index: 1;
- height: 100%;
- width: 100%; }
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taler-ops-www] branch master updated (215a0f6 -> e900a81),
gnunet <=
- [taler-taler-ops-www] 05/12: fix: nuke the nonexistent image's import for now, gnunet, 2024/02/24
- [taler-taler-ops-www] 07/12: add links in the image dir as to make stuff resolve, gnunet, 2024/02/24
- [taler-taler-ops-www] 04/12: properly resolve favicon, gnunet, 2024/02/24
- [taler-taler-ops-www] 02/12: remove unused gitignore lines, gnunet, 2024/02/24
- [taler-taler-ops-www] 03/12: remove unused bootstrap js import, gnunet, 2024/02/24
- [taler-taler-ops-www] 06/12: remove nonexistent imports, add favicon.png, gnunet, 2024/02/24
- [taler-taler-ops-www] 08/12: comment out currently nonexistent locale, gnunet, 2024/02/24
- [taler-taler-ops-www] 01/12: feat: a bunch of optimization shit, gnunet, 2024/02/24
- [taler-taler-ops-www] 10/12: get rid of carousell stuff, gnunet, 2024/02/24
- [taler-taler-ops-www] 09/12: create blank merchants file to not 404, gnunet, 2024/02/24