diff --git a/LICENSE b/LICENSE deleted file mode 100644 index cea7250..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Dario Weinberger & Raphael Payet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 8b00592..0000000 --- a/README.md +++ /dev/null @@ -1,105 +0,0 @@ -
- -

- -

- -

- - Website - - Website - - - - -

- -
- -
- -Wikipedia article comparison tool. This tool allows you to compare the data contained in the infoboxes as well as statistics of 2 different wikipedia articles. - - -## Demo - - - - -
- - -

Access online demo : [radar.dariow.fr](https://radar.dariow.fr)

- -
- - -## Dependencies - - -We use docker containers, so it will be necessary to have Docker and Docker compose. - -Installation Guides: -- [docker](https://docs.docker.com/) -- [docker-compose](https://docs.docker.com/compose/install/) - -## Install -Configure logins and passwords in the ".env" located in the root of the project (PLEASE USE STRONG PASSWORDS): - -```yml -# Root password -DATABASE_ROOT_PASSWORD=changeme # NEED TO CHANGE ! - -# User to use -DATABASE_USER=radar - -# User password -DATABASE_PASSWORD=changeme # NEED TO CHANGE ! - -# Database name -DATABASE=rappaurio - -``` - -And do the same for the ".env" inside the "app-rappaurio" folder : - -```yml -# Root password -DATABASE_ROOT_PASSWORD=changeme # NEED TO CHANGE ! - -# MariaDB hostname -DATABASE_HOST=db - -# User to use -DATABASE_USER=radar - -# User password -DATABASE_PASSWORD=changeme # NEED TO CHANGE ! - -# Database name -DATABASE=rappaurio - -# Token private Key -JWT_SECRET=hsdgbniojksdgoijosidgjoisdg # NEED TO CHANGE ! - -JWT_EXPIRES_IN=86400000 -JWT_COOKIE_EXPIRES_IN=86400000 -``` - -Building images using docker-compose.yml: - -```shell -docker-compose build -``` -Launching containers using the docker-compose.yml file: - -```shell -docker-compose up -d - -``` - -The site is now available locally on https://localhost:8888 - -Or at the ip address of your machine [https://\:8888]() diff --git a/app-rappaurio/.env b/app-rappaurio/.env deleted file mode 100644 index 4132a86..0000000 --- a/app-rappaurio/.env +++ /dev/null @@ -1,20 +0,0 @@ -# Root password -DATABASE_ROOT_PASSWORD=changeme # NEED TO CHANGE ! - -# MariaDB hostname -DATABASE_HOST=db - -# User to use -DATABASE_USER=radar - -# User password -DATABASE_PASSWORD=changeme # NEED TO CHANGE ! - -# Database name -DATABASE=rappaurio - -# Token private Key -JWT_SECRET=hsdgbniojksdgoijosidgjoisdg # NEED TO CHANGE ! - -JWT_EXPIRES_IN=86400000 -JWT_COOKIE_EXPIRES_IN=86400000 \ No newline at end of file diff --git a/app-rappaurio/Dockerfile b/app-rappaurio/Dockerfile deleted file mode 100644 index cf6c278..0000000 --- a/app-rappaurio/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -# pull the Node.js Docker image -FROM node:alpine - -# create the directory inside the container -WORKDIR /usr/src/app - -# copy the package.json files from local machine to the workdir in container -COPY package*.json ./ - -# run npm install in our local machine -RUN npm install - -# copy the generated modules and all other files to the container -COPY . . - -# our app is running on port 5000 within the container, so need to expose it -EXPOSE 5000 - -# the command that starts our app -CMD ["npm", "start"] diff --git a/app-rappaurio/app.js b/app-rappaurio/app.js deleted file mode 100644 index a5aabf4..0000000 --- a/app-rappaurio/app.js +++ /dev/null @@ -1,63 +0,0 @@ -var createError = require('http-errors'); -var express = require('express'); -var path = require('path'); -var cookieParser = require('cookie-parser'); -var logger = require('morgan'); -const mysql = require('mysql'); -const dotenv = require('dotenv'); - -var app = express(); - -dotenv.config({ path : './.env'}) - -// Create database connection -const db = mysql.createConnection({ - host: process.env.DATABASE_HOST, - user: process.env.DATABASE_USER, - password: process.env.DATABASE_PASSWORD, - database: process.env.DATABASE -}); - - -// Connecting our databse and checking everything works fine -db.connect( (error)=>{ - if(error){ - console.log(error) - } - else{ - console.log("MySQL database connected...") - } -}) - -// view engine setup -app.set('views', path.join(__dirname, 'views')); -app.set('view engine', 'hbs'); - -app.use(logger('dev')); -app.use(express.json()); -app.use(express.urlencoded({ extended: false })); -app.use(cookieParser()); -app.use(express.static(path.join(__dirname, 'public'))); - -// Define Routes -app.use('/', require('./server/routes/index')); -app.use('/auth', require('./server/routes/auth')); - - -// catch 404 and forward to error handler -app.use(function(req, res, next) { - next(createError(404)); -}); - -// error handler -app.use(function(err, req, res, next) { - // set locals, only providing error in development - res.locals.message = err.message; - res.locals.error = req.app.get('env') === 'development' ? err : {}; - - // render the error page - res.status(err.status || 500); - res.render('contains/404'); -}); - -module.exports = app; diff --git a/app-rappaurio/bin/www b/app-rappaurio/bin/www deleted file mode 100644 index 3d610e0..0000000 --- a/app-rappaurio/bin/www +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env node - -/** - * Module dependencies. - */ - -var app = require('../app'); -var debug = require('debug')('app-rappaurio:server'); -var http = require('http'); - -/** - * Get port from environment and store in Express. - */ - -var port = normalizePort(process.env.PORT || '5000'); -app.set('port', port); -console.log("Server started on port : " + port); - -/** - * Create HTTP server. - */ - -var server = http.createServer(app); - -/** - * Listen on provided port, on all network interfaces. - */ - -server.listen(port); -server.on('error', onError); -server.on('listening', onListening); - -/** - * Normalize a port into a number, string, or false. - */ - -function normalizePort(val) { - var port = parseInt(val, 10); - - if (isNaN(port)) { - // named pipe - return val; - } - - if (port >= 0) { - // port number - return port; - } - - return false; -} - -/** - * Event listener for HTTP server "error" event. - */ - -function onError(error) { - if (error.syscall !== 'listen') { - throw error; - } - - var bind = typeof port === 'string' - ? 'Pipe ' + port - : 'Port ' + port; - - // handle specific listen errors with friendly messages - switch (error.code) { - case 'EACCES': - console.error(bind + ' requires elevated privileges'); - process.exit(1); - break; - case 'EADDRINUSE': - console.error(bind + ' is already in use'); - process.exit(1); - break; - default: - throw error; - } -} - -/** - * Event listener for HTTP server "listening" event. - */ - -function onListening() { - var addr = server.address(); - var bind = typeof addr === 'string' - ? 'pipe ' + addr - : 'port ' + addr.port; - debug('Listening on ' + bind); -} diff --git a/app-rappaurio/package-lock.json b/app-rappaurio/package-lock.json deleted file mode 100644 index c3ede18..0000000 --- a/app-rappaurio/package-lock.json +++ /dev/null @@ -1,1292 +0,0 @@ -{ - "name": "app-rappaurio", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "app-rappaurio", - "version": "0.0.0", - "dependencies": { - "axios": "^1.5.1", - "bcryptjs": "^2.4.3", - "cookie-parser": "~1.4.4", - "debug": "~2.6.9", - "dotenv": "^16.3.1", - "express": "^4.18.2", - "hbs": "^4.2.0", - "http-errors": "~1.6.3", - "jsonwebtoken": "^9.0.2", - "morgan": "~1.9.1", - "mysql": "^2.18.1", - "wikiapi": "^1.19.4" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" - }, - "node_modules/bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "engines": { - "node": "*" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/body-parser/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/body-parser/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/cejs": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/cejs/-/cejs-4.5.5.tgz", - "integrity": "sha512-226z/O8jdaPl0Byk7JZvpblvrlWxc010Uz1Ev+hHcJwvRaM9T8pL8eVyp3qlMSq4V6eVI9mBzsETcFVooLov/g==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", - "dependencies": { - "cookie": "0.4.1", - "cookie-signature": "1.0.6" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/express/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/express/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/express/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==" - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hbs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.2.0.tgz", - "integrity": "sha512-dQwHnrfWlTk5PvG9+a45GYpg0VpX47ryKF8dULVd6DtwOE6TEcYQXQ5QM6nyOx/h7v3bvEQbdn19EDAcfUAgZg==", - "dependencies": { - "handlebars": "4.7.7", - "walk": "2.3.15" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/morgan": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", - "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", - "dependencies": { - "basic-auth": "~2.0.0", - "debug": "2.6.9", - "depd": "~1.1.2", - "on-finished": "~2.3.0", - "on-headers": "~1.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/mysql": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", - "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", - "dependencies": { - "bignumber.js": "9.0.0", - "readable-stream": "2.3.7", - "safe-buffer": "5.1.2", - "sqlstring": "2.3.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/raw-body/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/raw-body/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/send/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sqlstring": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", - "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "dependencies": { - "foreachasync": "^3.0.0" - } - }, - "node_modules/wikiapi": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/wikiapi/-/wikiapi-1.19.4.tgz", - "integrity": "sha512-gh6M026re+FxkQS6DEjTTii/zs3VGvCT8HYkIG17NsNGPW9hiZT8uWovU/uu0JUKZ3OXdy+JD94Jk4ko++AZ8Q==", - "dependencies": { - "cejs": "latest" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } -} diff --git a/app-rappaurio/package.json b/app-rappaurio/package.json deleted file mode 100644 index 818aacc..0000000 --- a/app-rappaurio/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "app-rappaurio", - "version": "1.2.0", - "description": "Require nodejs 14 or higher", - "main": "app.js", - "private": true, - "scripts": { - "start": "node ./bin/www" - }, - "author": "Dario WEINBERGER & Raphael PAYET", - "license": "ISC", - "dependencies": { - "axios": "^1.5.1", - "bcryptjs": "^2.4.3", - "cookie-parser": "~1.4.4", - "debug": "~2.6.9", - "dotenv": "^16.3.1", - "express": "^4.18.2", - "hbs": "^4.2.0", - "http-errors": "~1.6.3", - "jsonwebtoken": "^9.0.2", - "morgan": "~1.9.1", - "mysql": "^2.18.1", - "wikiapi": "^1.19.4" - } -} diff --git a/app-rappaurio/public/images/blog-details-02.jpg b/app-rappaurio/public/images/blog-details-02.jpg deleted file mode 100644 index 19b8ffb..0000000 Binary files a/app-rappaurio/public/images/blog-details-02.jpg and /dev/null differ diff --git a/app-rappaurio/public/images/icon.png b/app-rappaurio/public/images/icon.png deleted file mode 100644 index f68e072..0000000 Binary files a/app-rappaurio/public/images/icon.png and /dev/null differ diff --git a/app-rappaurio/public/images/log-wiki-cust.png b/app-rappaurio/public/images/log-wiki-cust.png deleted file mode 100644 index 3556d37..0000000 Binary files a/app-rappaurio/public/images/log-wiki-cust.png and /dev/null differ diff --git a/app-rappaurio/public/images/log-wiki.svg b/app-rappaurio/public/images/log-wiki.svg deleted file mode 100644 index 4375542..0000000 --- a/app-rappaurio/public/images/log-wiki.svg +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app-rappaurio/public/images/logo-2.svg b/app-rappaurio/public/images/logo-2.svg deleted file mode 100644 index 38be9ee..0000000 --- a/app-rappaurio/public/images/logo-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app-rappaurio/public/images/logo.svg b/app-rappaurio/public/images/logo.svg deleted file mode 100644 index 433375d..0000000 --- a/app-rappaurio/public/images/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app-rappaurio/public/images/wikipedia-dark.png b/app-rappaurio/public/images/wikipedia-dark.png deleted file mode 100644 index f038bcb..0000000 Binary files a/app-rappaurio/public/images/wikipedia-dark.png and /dev/null differ diff --git a/app-rappaurio/public/images/wikipedia.png b/app-rappaurio/public/images/wikipedia.png deleted file mode 100644 index 0c7f025..0000000 Binary files a/app-rappaurio/public/images/wikipedia.png and /dev/null differ diff --git a/app-rappaurio/public/js/bundle.js b/app-rappaurio/public/js/bundle.js deleted file mode 100644 index 16110aa..0000000 --- a/app-rappaurio/public/js/bundle.js +++ /dev/null @@ -1,16 +0,0 @@ -(()=>{var __webpack_modules__=({"./src/js/index.js":/*!*************************!*\ -!*** ./src/js/index.js ***! -\*************************/((__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_glightbox_dist_css_glightbox_min_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/glightbox/dist/css/glightbox.min.css */ \"./node_modules/glightbox/dist/css/glightbox.min.css\");\n/* harmony import */ var _css_animate_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../css/animate.css */ \"./src/css/animate.css\");\n/* harmony import */ var _css_style_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../css/style.css */ \"./src/css/style.css\");\n/* harmony import */ var glightbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! glightbox */ \"./node_modules/glightbox/dist/js/glightbox.min.js\");\n/* harmony import */ var glightbox__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(glightbox__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var wowjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! wowjs */ \"./node_modules/wowjs/dist/wow.js\");\n/* harmony import */ var wowjs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(wowjs__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nwindow.wow = new (wowjs__WEBPACK_IMPORTED_MODULE_4___default().WOW)({\n live: false\n});\nwindow.wow.init({\n offset: 50\n}); //========= glightbox\n\nvar lightbox = glightbox__WEBPACK_IMPORTED_MODULE_3___default()({\n href: 'https://www.youtube.com/watch?v=r44RKWyfcFw&fbclid=IwAR21beSJORalzmzokxDRcGfkZA1AtRTE__l5N4r09HcGS5Y6vOluyouM9EM',\n type: 'video',\n source: 'youtube',\n //vimeo, youtube or local\n width: 900,\n autoplayVideos: true\n});\n\n(function () {\n 'use strict'; // ==== darkToggler\n\n var darkTogglerCheckbox = document.querySelector('#darkToggler');\n var html = document.querySelector('html');\n\n var darkModeToggler = function darkModeToggler() {\n darkTogglerCheckbox.checked ? html.classList.remove('dark') : html.classList.add('dark');\n };\n\n darkModeToggler();\n darkTogglerCheckbox.addEventListener('click', darkModeToggler); // ======= Sticky\n\n window.onscroll = function () {\n var ud_header = document.querySelector('.header');\n var sticky = ud_header.offsetTop;\n\n if (window.pageYOffset > sticky) {\n ud_header.classList.add('sticky');\n } else {\n ud_header.classList.remove('sticky');\n } // show or hide the back-top-top button\n\n\n var backToTop = document.querySelector('.back-to-top');\n\n if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {\n backToTop.style.display = 'flex';\n } else {\n backToTop.style.display = 'none';\n }\n }; // ===== responsive navbar\n\n\n var navbarToggler = document.querySelector('#navbarToggler');\n var navbarCollapse = document.querySelector('#navbarCollapse');\n navbarToggler.addEventListener('click', function () {\n navbarToggler.classList.toggle('navbarTogglerActive');\n navbarCollapse.classList.toggle('hidden');\n }); //===== close navbar-collapse when a clicked\n\n document.querySelectorAll('#navbarCollapse ul li:not(.submenu-item) a').forEach(function (e) {\n return e.addEventListener('click', function () {\n navbarToggler.classList.remove('navbarTogglerActive');\n navbarCollapse.classList.add('hidden');\n });\n }); // ===== Sub-menu\n\n var submenuItems = document.querySelectorAll('.submenu-item');\n submenuItems.forEach(function (el) {\n el.querySelector('a').addEventListener('click', function () {\n el.querySelector('.submenu').classList.toggle('hidden');\n });\n }); // ===== Faq accordion\n\n var faqs = document.querySelectorAll('.single-faq');\n faqs.forEach(function (el) {\n el.querySelector('.faq-btn').addEventListener('click', function () {\n el.querySelector('.icon').classList.toggle('rotate-180');\n el.querySelector('.faq-content').classList.toggle('hidden');\n });\n }); // ====== scroll top js\n\n function scrollTo(element) {\n var to = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;\n var start = element.scrollTop;\n var change = to - start;\n var increment = 20;\n var currentTime = 0;\n\n var animateScroll = function animateScroll() {\n currentTime += increment;\n var val = Math.easeInOutQuad(currentTime, start, change, duration);\n element.scrollTop = val;\n\n if (currentTime < duration) {\n setTimeout(animateScroll, increment);\n }\n };\n\n animateScroll();\n }\n\n Math.easeInOutQuad = function (t, b, c, d) {\n t /= d / 2;\n if (t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n };\n\n document.querySelector('.back-to-top').onclick = function () {\n scrollTo(document.documentElement);\n };\n})(); // Document Loaded\n\n\ndocument.addEventListener('DOMContentLoaded', function () {});\n\n//# sourceURL=webpack://startup-tailwind/./src/js/index.js?");}),"./node_modules/glightbox/dist/js/glightbox.min.js":/*!*********************************************************!*\ -!*** ./node_modules/glightbox/dist/js/glightbox.min.js ***! -\*********************************************************/(function(module){eval("!function(e,t){ true?module.exports=t():0}(this,(function(){\"use strict\";function e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e[s]=e[s]||[],l={all:n,evt:null,found:null};return t&&i&&P(n)>0&&o(n,(function(e,n){if(e.eventName==t&&e.fn.toString()==i.toString())return l.found=!0,l.evt=n,!1})),l}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.onElement,n=t.withCallback,s=t.avoidDuplicate,l=void 0===s||s,a=t.once,h=void 0!==a&&a,d=t.useCapture,c=void 0!==d&&d,u=arguments.length>2?arguments[2]:void 0,g=i||[];function v(e){T(n)&&n.call(u,e,this),h&&v.destroy()}return C(g)&&(g=document.querySelectorAll(g)),v.destroy=function(){o(g,(function(t){var i=r(t,e,v);i.found&&i.all.splice(i.evt,1),t.removeEventListener&&t.removeEventListener(e,v,c)}))},o(g,(function(t){var i=r(t,e,v);(t.addEventListener&&l&&!i.found||!l)&&(t.addEventListener(e,v,c),i.all.push({eventName:e,fn:v}))})),v}function h(e,t){o(t.split(\" \"),(function(t){return e.classList.add(t)}))}function d(e,t){o(t.split(\" \"),(function(t){return e.classList.remove(t)}))}function c(e,t){return e.classList.contains(t)}function u(e,t){for(;e!==document.body;){if(!(e=e.parentElement))return!1;if(\"function\"==typeof e.matches?e.matches(t):e.msMatchesSelector(t))return e}}function g(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||\"\"===t)return!1;if(\"none\"===t)return T(i)&&i(),!1;var n=x(),s=t.split(\" \");o(s,(function(t){h(e,\"g\"+t)})),a(n,{onElement:e,avoidDuplicate:!1,once:!0,withCallback:function(e,t){o(s,(function(e){d(t,\"g\"+e)})),T(i)&&i()}})}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";if(\"\"===t)return e.style.webkitTransform=\"\",e.style.MozTransform=\"\",e.style.msTransform=\"\",e.style.OTransform=\"\",e.style.transform=\"\",!1;e.style.webkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t,e.style.transform=t}function f(e){e.style.display=\"block\"}function p(e){e.style.display=\"none\"}function m(e){var t=document.createDocumentFragment(),i=document.createElement(\"div\");for(i.innerHTML=e;i.firstChild;)t.appendChild(i.firstChild);return t}function y(){return{width:window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,height:window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}}function x(){var e,t=document.createElement(\"fakeelement\"),i={animation:\"animationend\",OAnimation:\"oAnimationEnd\",MozAnimation:\"animationend\",WebkitAnimation:\"webkitAnimationEnd\"};for(e in i)if(void 0!==t.style[e])return i[e]}function b(e,t,i,n){if(e())t();else{var s;i||(i=100);var l=setInterval((function(){e()&&(clearInterval(l),s&&clearTimeout(s),t())}),i);n&&(s=setTimeout((function(){clearInterval(l)}),n))}}function S(e,t,i){if(I(e))console.error(\"Inject assets error\");else if(T(t)&&(i=t,t=!1),C(t)&&t in window)T(i)&&i();else{var n;if(-1!==e.indexOf(\".css\")){if((n=document.querySelectorAll('link[href=\"'+e+'\"]'))&&n.length>0)return void(T(i)&&i());var s=document.getElementsByTagName(\"head\")[0],l=s.querySelectorAll('link[rel=\"stylesheet\"]'),o=document.createElement(\"link\");return o.rel=\"stylesheet\",o.type=\"text/css\",o.href=e,o.media=\"all\",l?s.insertBefore(o,l[0]):s.appendChild(o),void(T(i)&&i())}if((n=document.querySelectorAll('script[src=\"'+e+'\"]'))&&n.length>0){if(T(i)){if(C(t))return b((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}}else{var r=document.createElement(\"script\");r.type=\"text/javascript\",r.src=e,r.onload=function(){if(T(i)){if(C(t))return b((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}},document.body.appendChild(r)}}}function w(){return\"navigator\"in window&&window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i)}function T(e){return\"function\"==typeof e}function C(e){return\"string\"==typeof e}function k(e){return!(!e||!e.nodeType||1!=e.nodeType)}function E(e){return Array.isArray(e)}function A(e){return e&&e.length&&isFinite(e.length)}function L(t){return\"object\"===e(t)&&null!=t&&!T(t)&&!E(t)}function I(e){return null==e}function O(e,t){return null!==e&&hasOwnProperty.call(e,t)}function P(e){if(L(e)){if(e.keys)return e.keys().length;var t=0;for(var i in e)O(e,i)&&t++;return t}return e.length}function M(e){return!isNaN(parseFloat(e))&&isFinite(e)}function z(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,t=document.querySelectorAll(\".gbtn[data-taborder]:not(.disabled)\");if(!t.length)return!1;if(1==t.length)return t[0];\"string\"==typeof e&&(e=parseInt(e));var i=[];o(t,(function(e){i.push(e.getAttribute(\"data-taborder\"))}));var n=Math.max.apply(Math,i.map((function(e){return parseInt(e)}))),s=e<0?1:e+1;s>n&&(s=\"1\");var l=i.filter((function(e){return e>=parseInt(s)})),r=l.sort()[0];return document.querySelector('.gbtn[data-taborder=\"'.concat(r,'\"]'))}function X(e){if(e.events.hasOwnProperty(\"keyboard\"))return!1;e.events.keyboard=a(\"keydown\",{onElement:window,withCallback:function(t,i){var n=(t=t||window.event).keyCode;if(9==n){var s=document.querySelector(\".gbtn.focused\");if(!s){var l=!(!document.activeElement||!document.activeElement.nodeName)&&document.activeElement.nodeName.toLocaleLowerCase();if(\"input\"==l||\"textarea\"==l||\"button\"==l)return}t.preventDefault();var o=document.querySelectorAll(\".gbtn[data-taborder]\");if(!o||o.length<=0)return;if(!s){var r=z();return void(r&&(r.focus(),h(r,\"focused\")))}var a=z(s.getAttribute(\"data-taborder\"));d(s,\"focused\"),a&&(a.focus(),h(a,\"focused\"))}39==n&&e.nextSlide(),37==n&&e.prevSlide(),27==n&&e.close()}})}function Y(e){return Math.sqrt(e.x*e.x+e.y*e.y)}function q(e,t){var i=function(e,t){var i=Y(e)*Y(t);if(0===i)return 0;var n=function(e,t){return e.x*t.x+e.y*t.y}(e,t)/i;return n>1&&(n=1),Math.acos(n)}(e,t);return function(e,t){return e.x*t.y-t.x*e.y}(e,t)>0&&(i*=-1),180*i/Math.PI}var N=function(){function e(i){t(this,e),this.handlers=[],this.el=i}return n(e,[{key:\"add\",value:function(e){this.handlers.push(e)}},{key:\"del\",value:function(e){e||(this.handlers=[]);for(var t=this.handlers.length;t>=0;t--)this.handlers[t]===e&&this.handlers.splice(t,1)}},{key:\"dispatch\",value:function(){for(var e=0,t=this.handlers.length;e=0)console.log(\"ignore drag for this touched element\",e.target.nodeName.toLowerCase());else{this.now=Date.now(),this.x1=e.touches[0].pageX,this.y1=e.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(e,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&this.delta<=250&&Math.abs(this.preTapPosition.x-this.x1)<30&&Math.abs(this.preTapPosition.y-this.y1)<30,this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var t=this.preV;if(e.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:e.touches[1].pageX-this.x1,y:e.touches[1].pageY-this.y1};t.x=i.x,t.y=i.y,this.pinchStartLen=Y(t),this.multipointStart.dispatch(e,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(e,this.element),this._preventTap=!0}.bind(this),750)}}}},{key:\"move\",value:function(e){if(e.touches){var t=this.preV,i=e.touches.length,n=e.touches[0].pageX,s=e.touches[0].pageY;if(this.isDoubleTap=!1,i>1){var l=e.touches[1].pageX,o=e.touches[1].pageY,r={x:e.touches[1].pageX-n,y:e.touches[1].pageY-s};null!==t.x&&(this.pinchStartLen>0&&(e.zoom=Y(r)/this.pinchStartLen,this.pinch.dispatch(e,this.element)),e.angle=q(r,t),this.rotate.dispatch(e,this.element)),t.x=r.x,t.y=r.y,null!==this.x2&&null!==this.sx2?(e.deltaX=(n-this.x2+l-this.sx2)/2,e.deltaY=(s-this.y2+o-this.sy2)/2):(e.deltaX=0,e.deltaY=0),this.twoFingerPressMove.dispatch(e,this.element),this.sx2=l,this.sy2=o}else{if(null!==this.x2){e.deltaX=n-this.x2,e.deltaY=s-this.y2;var a=Math.abs(this.x1-this.x2),h=Math.abs(this.y1-this.y2);(a>10||h>10)&&(this._preventTap=!0)}else e.deltaX=0,e.deltaY=0;this.pressMove.dispatch(e,this.element)}this.touchMove.dispatch(e,this.element),this._cancelLongTap(),this.x2=n,this.y2=s,i>1&&e.preventDefault()}}},{key:\"end\",value:function(e){if(e.changedTouches){this._cancelLongTap();var t=this;e.touches.length<2&&(this.multipointEnd.dispatch(e,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(e.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){t.swipe.dispatch(e,t.element)}),0)):(this.tapTimeout=setTimeout((function(){t._preventTap||t.tap.dispatch(e,t.element),t.isDoubleTap&&(t.doubleTap.dispatch(e,t.element),t.isDoubleTap=!1)}),0),t.isDoubleTap||(t.singleTapTimeout=setTimeout((function(){t.singleTap.dispatch(e,t.element)}),250))),this.touchEnd.dispatch(e,this.element),this.preV.x=0,this.preV.y=0,this.zoom=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}}},{key:\"cancelAll\",value:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.tapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)}},{key:\"cancel\",value:function(e){this.cancelAll(),this.touchCancel.dispatch(e,this.element)}},{key:\"_cancelLongTap\",value:function(){clearTimeout(this.longTapTimeout)}},{key:\"_cancelSingleTap\",value:function(){clearTimeout(this.singleTapTimeout)}},{key:\"_swipeDirection\",value:function(e,t,i,n){return Math.abs(e-t)>=Math.abs(i-n)?e-t>0?\"Left\":\"Right\":i-n>0?\"Up\":\"Down\"}},{key:\"on\",value:function(e,t){this[e]&&this[e].add(t)}},{key:\"off\",value:function(e,t){this[e]&&this[e].del(t)}},{key:\"destroy\",value:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.tapTimeout&&clearTimeout(this.tapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener(\"touchstart\",this.start),this.element.removeEventListener(\"touchmove\",this.move),this.element.removeEventListener(\"touchend\",this.end),this.element.removeEventListener(\"touchcancel\",this.cancel),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.tap.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV=this.pinchStartLen=this.zoom=this.isDoubleTap=this.delta=this.last=this.now=this.tapTimeout=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.tap=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener(\"scroll\",this._cancelAllHandler),null}}]),e}();function W(e){var t=function(){var e,t=document.createElement(\"fakeelement\"),i={transition:\"transitionend\",OTransition:\"oTransitionEnd\",MozTransition:\"transitionend\",WebkitTransition:\"webkitTransitionEnd\"};for(e in i)if(void 0!==t.style[e])return i[e]}(),i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,n=c(e,\"gslide-media\")?e:e.querySelector(\".gslide-media\"),s=u(n,\".ginner-container\"),l=e.querySelector(\".gslide-description\");i>769&&(n=s),h(n,\"greset\"),v(n,\"translate3d(0, 0, 0)\"),a(t,{onElement:n,once:!0,withCallback:function(e,t){d(n,\"greset\")}}),n.style.opacity=\"\",l&&(l.style.opacity=\"\")}function B(e){if(e.events.hasOwnProperty(\"touch\"))return!1;var t,i,n,s=y(),l=s.width,o=s.height,r=!1,a=null,g=null,f=null,p=!1,m=1,x=1,b=!1,S=!1,w=null,T=null,C=null,k=null,E=0,A=0,L=!1,I=!1,O={},P={},M=0,z=0,X=document.getElementById(\"glightbox-slider\"),Y=document.querySelector(\".goverlay\"),q=new _(X,{touchStart:function(t){if(r=!0,(c(t.targetTouches[0].target,\"ginner-container\")||u(t.targetTouches[0].target,\".gslide-desc\")||\"a\"==t.targetTouches[0].target.nodeName.toLowerCase())&&(r=!1),u(t.targetTouches[0].target,\".gslide-inline\")&&!c(t.targetTouches[0].target.parentNode,\"gslide-inline\")&&(r=!1),r){if(P=t.targetTouches[0],O.pageX=t.targetTouches[0].pageX,O.pageY=t.targetTouches[0].pageY,M=t.targetTouches[0].clientX,z=t.targetTouches[0].clientY,a=e.activeSlide,g=a.querySelector(\".gslide-media\"),n=a.querySelector(\".gslide-inline\"),f=null,c(g,\"gslide-image\")&&(f=g.querySelector(\"img\")),(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)>769&&(g=a.querySelector(\".ginner-container\")),d(Y,\"greset\"),t.pageX>20&&t.pageXo){var a=O.pageX-P.pageX;if(Math.abs(a)<=13)return!1}p=!0;var h,d=s.targetTouches[0].clientX,c=s.targetTouches[0].clientY,u=M-d,m=z-c;if(Math.abs(u)>Math.abs(m)?(L=!1,I=!0):(I=!1,L=!0),t=P.pageX-O.pageX,E=100*t/l,i=P.pageY-O.pageY,A=100*i/o,L&&f&&(h=1-Math.abs(i)/o,Y.style.opacity=h,e.settings.touchFollowAxis&&(E=0)),I&&(h=1-Math.abs(t)/l,g.style.opacity=h,e.settings.touchFollowAxis&&(A=0)),!f)return v(g,\"translate3d(\".concat(E,\"%, 0, 0)\"));v(g,\"translate3d(\".concat(E,\"%, \").concat(A,\"%, 0)\"))}},touchEnd:function(){if(r){if(p=!1,S||b)return C=w,void(k=T);var t=Math.abs(parseInt(A)),i=Math.abs(parseInt(E));if(!(t>29&&f))return t<29&&i<25?(h(Y,\"greset\"),Y.style.opacity=1,W(g)):void 0;e.close()}},multipointEnd:function(){setTimeout((function(){b=!1}),50)},multipointStart:function(){b=!0,m=x||1},pinch:function(e){if(!f||p)return!1;b=!0,f.scaleX=f.scaleY=m*e.zoom;var t=m*e.zoom;if(S=!0,t<=1)return S=!1,t=1,k=null,C=null,w=null,T=null,void f.setAttribute(\"style\",\"\");t>4.5&&(t=4.5),f.style.transform=\"scale3d(\".concat(t,\", \").concat(t,\", 1)\"),x=t},pressMove:function(e){if(S&&!b){var t=P.pageX-O.pageX,i=P.pageY-O.pageY;C&&(t+=C),k&&(i+=k),w=t,T=i;var n=\"translate3d(\".concat(t,\"px, \").concat(i,\"px, 0)\");x&&(n+=\" scale3d(\".concat(x,\", \").concat(x,\", 1)\")),v(f,n)}},swipe:function(t){if(!S)if(b)b=!1;else{if(\"Left\"==t.direction){if(e.index==e.elements.length-1)return W(g);e.nextSlide()}if(\"Right\"==t.direction){if(0==e.index)return W(g);e.prevSlide()}}}});e.events.touch=q}var H=function(){function e(i,n){var s=this,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(t(this,e),this.img=i,this.slide=n,this.onclose=l,this.img.setZoomEvents)return!1;this.active=!1,this.zoomedIn=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.img.addEventListener(\"mousedown\",(function(e){return s.dragStart(e)}),!1),this.img.addEventListener(\"mouseup\",(function(e){return s.dragEnd(e)}),!1),this.img.addEventListener(\"mousemove\",(function(e){return s.drag(e)}),!1),this.img.addEventListener(\"click\",(function(e){return s.slide.classList.contains(\"dragging-nav\")?(s.zoomOut(),!1):s.zoomedIn?void(s.zoomedIn&&!s.dragging&&s.zoomOut()):s.zoomIn()}),!1),this.img.setZoomEvents=!0}return n(e,[{key:\"zoomIn\",value:function(){var e=this.widowWidth();if(!(this.zoomedIn||e<=768)){var t=this.img;if(t.setAttribute(\"data-style\",t.getAttribute(\"style\")),t.style.maxWidth=t.naturalWidth+\"px\",t.style.maxHeight=t.naturalHeight+\"px\",t.naturalWidth>e){var i=e/2-t.naturalWidth/2;this.setTranslate(this.img.parentNode,i,0)}this.slide.classList.add(\"zoomed\"),this.zoomedIn=!0}}},{key:\"zoomOut\",value:function(){this.img.parentNode.setAttribute(\"style\",\"\"),this.img.setAttribute(\"style\",this.img.getAttribute(\"data-style\")),this.slide.classList.remove(\"zoomed\"),this.zoomedIn=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.onclose&&\"function\"==typeof this.onclose&&this.onclose()}},{key:\"dragStart\",value:function(e){e.preventDefault(),this.zoomedIn?(\"touchstart\"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset),e.target===this.img&&(this.active=!0,this.img.classList.add(\"dragging\"))):this.active=!1}},{key:\"dragEnd\",value:function(e){var t=this;e.preventDefault(),this.initialX=this.currentX,this.initialY=this.currentY,this.active=!1,setTimeout((function(){t.dragging=!1,t.img.isDragging=!1,t.img.classList.remove(\"dragging\")}),100)}},{key:\"drag\",value:function(e){this.active&&(e.preventDefault(),\"touchmove\"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.img.isDragging=!0,this.dragging=!0,this.setTranslate(this.img,this.currentX,this.currentY))}},{key:\"onMove\",value:function(e){if(this.zoomedIn){var t=e.clientX-this.img.naturalWidth/2,i=e.clientY-this.img.naturalHeight/2;this.setTranslate(this.img,t,i)}}},{key:\"setTranslate\",value:function(e,t,i){e.style.transform=\"translate3d(\"+t+\"px, \"+i+\"px, 0)\"}},{key:\"widowWidth\",value:function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}}]),e}(),V=function(){function e(){var i=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e);var s=n.dragEl,l=n.toleranceX,o=void 0===l?40:l,r=n.toleranceY,a=void 0===r?65:r,h=n.slide,d=void 0===h?null:h,c=n.instance,u=void 0===c?null:c;this.el=s,this.active=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.direction=null,this.lastDirection=null,this.toleranceX=o,this.toleranceY=a,this.toleranceReached=!1,this.dragContainer=this.el,this.slide=d,this.instance=u,this.el.addEventListener(\"mousedown\",(function(e){return i.dragStart(e)}),!1),this.el.addEventListener(\"mouseup\",(function(e){return i.dragEnd(e)}),!1),this.el.addEventListener(\"mousemove\",(function(e){return i.drag(e)}),!1)}return n(e,[{key:\"dragStart\",value:function(e){if(this.slide.classList.contains(\"zoomed\"))this.active=!1;else{\"touchstart\"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset);var t=e.target.nodeName.toLowerCase();e.target.classList.contains(\"nodrag\")||u(e.target,\".nodrag\")||-1!==[\"input\",\"select\",\"textarea\",\"button\",\"a\"].indexOf(t)?this.active=!1:(e.preventDefault(),(e.target===this.el||\"img\"!==t&&u(e.target,\".gslide-inline\"))&&(this.active=!0,this.el.classList.add(\"dragging\"),this.dragContainer=u(e.target,\".ginner-container\")))}}},{key:\"dragEnd\",value:function(e){var t=this;e&&e.preventDefault(),this.initialX=0,this.initialY=0,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.active=!1,this.doSlideChange&&(this.instance.preventOutsideClick=!0,\"right\"==this.doSlideChange&&this.instance.prevSlide(),\"left\"==this.doSlideChange&&this.instance.nextSlide()),this.doSlideClose&&this.instance.close(),this.toleranceReached||this.setTranslate(this.dragContainer,0,0,!0),setTimeout((function(){t.instance.preventOutsideClick=!1,t.toleranceReached=!1,t.lastDirection=null,t.dragging=!1,t.el.isDragging=!1,t.el.classList.remove(\"dragging\"),t.slide.classList.remove(\"dragging-nav\"),t.dragContainer.style.transform=\"\",t.dragContainer.style.transition=\"\"}),100)}},{key:\"drag\",value:function(e){if(this.active){e.preventDefault(),this.slide.classList.add(\"dragging-nav\"),\"touchmove\"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.el.isDragging=!0,this.dragging=!0,this.doSlideChange=!1,this.doSlideClose=!1;var t=Math.abs(this.currentX),i=Math.abs(this.currentY);if(t>0&&t>=Math.abs(this.currentY)&&(!this.lastDirection||\"x\"==this.lastDirection)){this.yOffset=0,this.lastDirection=\"x\",this.setTranslate(this.dragContainer,this.currentX,0);var n=this.shouldChange();if(!this.instance.settings.dragAutoSnap&&n&&(this.doSlideChange=n),this.instance.settings.dragAutoSnap&&n)return this.instance.preventOutsideClick=!0,this.toleranceReached=!0,this.active=!1,this.instance.preventOutsideClick=!0,this.dragEnd(null),\"right\"==n&&this.instance.prevSlide(),void(\"left\"==n&&this.instance.nextSlide())}if(this.toleranceY>0&&i>0&&i>=t&&(!this.lastDirection||\"y\"==this.lastDirection)){this.xOffset=0,this.lastDirection=\"y\",this.setTranslate(this.dragContainer,0,this.currentY);var s=this.shouldClose();return!this.instance.settings.dragAutoSnap&&s&&(this.doSlideClose=!0),void(this.instance.settings.dragAutoSnap&&s&&this.instance.close())}}}},{key:\"shouldChange\",value:function(){var e=!1;if(Math.abs(this.currentX)>=this.toleranceX){var t=this.currentX>0?\"right\":\"left\";(\"left\"==t&&this.slide!==this.slide.parentNode.lastChild||\"right\"==t&&this.slide!==this.slide.parentNode.firstChild)&&(e=t)}return e}},{key:\"shouldClose\",value:function(){var e=!1;return Math.abs(this.currentY)>=this.toleranceY&&(e=!0),e}},{key:\"setTranslate\",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e.style.transition=n?\"all .2s ease\":\"\",e.style.transform=\"translate3d(\".concat(t,\"px, \").concat(i,\"px, 0)\")}}]),e}();function j(e,t,i,n){var s=e.querySelector(\".gslide-media\"),l=new Image,o=\"gSlideTitle_\"+i,r=\"gSlideDesc_\"+i;l.addEventListener(\"load\",(function(){T(n)&&n()}),!1),l.src=t.href,\"\"!=t.sizes&&\"\"!=t.srcset&&(l.sizes=t.sizes,l.srcset=t.srcset),l.alt=\"\",I(t.alt)||\"\"===t.alt||(l.alt=t.alt),\"\"!==t.title&&l.setAttribute(\"aria-labelledby\",o),\"\"!==t.description&&l.setAttribute(\"aria-describedby\",r),t.hasOwnProperty(\"_hasCustomWidth\")&&t._hasCustomWidth&&(l.style.width=t.width),t.hasOwnProperty(\"_hasCustomHeight\")&&t._hasCustomHeight&&(l.style.height=t.height),s.insertBefore(l,s.firstChild)}function F(e,t,i,n){var s=this,l=e.querySelector(\".ginner-container\"),o=\"gvideo\"+i,r=e.querySelector(\".gslide-media\"),a=this.getAllPlayers();h(l,\"gvideo-container\"),r.insertBefore(m('
'),r.firstChild);var d=e.querySelector(\".gvideo-wrapper\");S(this.settings.plyr.css,\"Plyr\");var c=t.href,u=null==t?void 0:t.videoProvider,g=!1;r.style.maxWidth=t.width,S(this.settings.plyr.js,\"Plyr\",(function(){if(!u&&c.match(/vimeo\\.com\\/([0-9]*)/)&&(u=\"vimeo\"),!u&&(c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/watch\\?v=([a-zA-Z0-9\\-_]+)/)||c.match(/youtu\\.be\\/([a-zA-Z0-9\\-_]+)/)||c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/embed\\/([a-zA-Z0-9\\-_]+)/))&&(u=\"youtube\"),\"local\"===u||!u){u=\"local\";var l='\")}var r=g||m('
'));h(d,\"\".concat(u,\"-video gvideo\")),d.appendChild(r),d.setAttribute(\"data-id\",o),d.setAttribute(\"data-index\",i);var v=O(s.settings.plyr,\"config\")?s.settings.plyr.config:{},f=new Plyr(\"#\"+o,v);f.on(\"ready\",(function(e){a[o]=e.detail.plyr,T(n)&&n()})),b((function(){return e.querySelector(\"iframe\")&&\"true\"==e.querySelector(\"iframe\").dataset.ready}),(function(){s.resize(e)})),f.on(\"enterfullscreen\",R),f.on(\"exitfullscreen\",R)}))}function R(e){var t=u(e.target,\".gslide-media\");\"enterfullscreen\"===e.type&&h(t,\"fullscreen\"),\"exitfullscreen\"===e.type&&d(t,\"fullscreen\")}function G(e,t,i,n){var s,l=this,o=e.querySelector(\".gslide-media\"),r=!(!O(t,\"href\")||!t.href)&&t.href.split(\"#\").pop().trim(),d=!(!O(t,\"content\")||!t.content)&&t.content;if(d&&(C(d)&&(s=m('
'.concat(d,\"
\"))),k(d))){\"none\"==d.style.display&&(d.style.display=\"block\");var c=document.createElement(\"div\");c.className=\"ginlined-content\",c.appendChild(d),s=c}if(r){var u=document.getElementById(r);if(!u)return!1;var g=u.cloneNode(!0);g.style.height=t.height,g.style.maxWidth=t.width,h(g,\"ginlined-content\"),s=g}if(!s)return console.error(\"Unable to append inline slide content\",t),!1;o.style.height=t.height,o.style.width=t.width,o.appendChild(s),this.events[\"inlineclose\"+r]=a(\"click\",{onElement:o.querySelectorAll(\".gtrigger-close\"),withCallback:function(e){e.preventDefault(),l.close()}}),T(n)&&n()}function Z(e,t,i,n){var s=e.querySelector(\".gslide-media\"),l=function(e){var t=e.url,i=e.allow,n=e.callback,s=e.appendTo,l=document.createElement(\"iframe\");return l.className=\"vimeo-video gvideo\",l.src=t,l.style.width=\"100%\",l.style.height=\"100%\",i&&l.setAttribute(\"allow\",i),l.onload=function(){l.onload=null,h(l,\"node-ready\"),T(n)&&n()},s&&s.appendChild(l),l}({url:t.href,callback:n});s.parentNode.style.maxWidth=t.width,s.parentNode.style.height=t.height,s.appendChild(l)}var U=function(){function e(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),this.defaults={href:\"\",sizes:\"\",srcset:\"\",title:\"\",type:\"\",videoProvider:\"\",description:\"\",alt:\"\",descPosition:\"bottom\",effect:\"\",width:\"\",height:\"\",content:!1,zoomable:!0,draggable:!0},L(i)&&(this.defaults=l(this.defaults,i))}return n(e,[{key:\"sourceType\",value:function(e){var t=e;if(null!==(e=e.toLowerCase()).match(/\\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/))return\"image\";if(e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/watch\\?v=([a-zA-Z0-9\\-_]+)/)||e.match(/youtu\\.be\\/([a-zA-Z0-9\\-_]+)/)||e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/embed\\/([a-zA-Z0-9\\-_]+)/))return\"video\";if(e.match(/vimeo\\.com\\/([0-9]*)/))return\"video\";if(null!==e.match(/\\.(mp4|ogg|webm|mov)/))return\"video\";if(null!==e.match(/\\.(mp3|wav|wma|aac|ogg)/))return\"audio\";if(e.indexOf(\"#\")>-1&&\"\"!==t.split(\"#\").pop().trim())return\"inline\";return e.indexOf(\"goajax=true\")>-1?\"ajax\":\"external\"}},{key:\"parseConfig\",value:function(e,t){var i=this,n=l({descPosition:t.descPosition},this.defaults);if(L(e)&&!k(e)){O(e,\"type\")||(O(e,\"content\")&&e.content?e.type=\"inline\":O(e,\"href\")&&(e.type=this.sourceType(e.href)));var s=l(n,e);return this.setSize(s,t),s}var r=\"\",a=e.getAttribute(\"data-glightbox\"),h=e.nodeName.toLowerCase();if(\"a\"===h&&(r=e.href),\"img\"===h&&(r=e.src,n.alt=e.alt),n.href=r,o(n,(function(s,l){O(t,l)&&\"width\"!==l&&(n[l]=t[l]);var o=e.dataset[l];I(o)||(n[l]=i.sanitizeValue(o))})),n.content&&(n.type=\"inline\"),!n.type&&r&&(n.type=this.sourceType(r)),I(a)){if(!n.title&&\"a\"==h){var d=e.title;I(d)||\"\"===d||(n.title=d)}if(!n.title&&\"img\"==h){var c=e.alt;I(c)||\"\"===c||(n.title=c)}}else{var u=[];o(n,(function(e,t){u.push(\";\\\\s?\"+t)})),u=u.join(\"\\\\s?:|\"),\"\"!==a.trim()&&o(n,(function(e,t){var s=a,l=new RegExp(\"s?\"+t+\"s?:s?(.*?)(\"+u+\"s?:|$)\"),o=s.match(l);if(o&&o.length&&o[1]){var r=o[1].trim().replace(/;\\s*$/,\"\");n[t]=i.sanitizeValue(r)}}))}if(n.description&&\".\"===n.description.substring(0,1)){var g;try{g=document.querySelector(n.description).innerHTML}catch(e){if(!(e instanceof DOMException))throw e}g&&(n.description=g)}if(!n.description){var v=e.querySelector(\".glightbox-desc\");v&&(n.description=v.innerHTML)}return this.setSize(n,t,e),this.slideConfig=n,n}},{key:\"setSize\",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=\"video\"==e.type?this.checkSize(t.videosWidth):this.checkSize(t.width),s=this.checkSize(t.height);return e.width=O(e,\"width\")&&\"\"!==e.width?this.checkSize(e.width):n,e.height=O(e,\"height\")&&\"\"!==e.height?this.checkSize(e.height):s,i&&\"image\"==e.type&&(e._hasCustomWidth=!!i.dataset.width,e._hasCustomHeight=!!i.dataset.height),e}},{key:\"checkSize\",value:function(e){return M(e)?\"\".concat(e,\"px\"):e}},{key:\"sanitizeValue\",value:function(e){return\"true\"!==e&&\"false\"!==e?e:\"true\"===e}}]),e}(),$=function(){function e(i,n,s){t(this,e),this.element=i,this.instance=n,this.index=s}return n(e,[{key:\"setContent\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(c(t,\"loaded\"))return!1;var n=this.instance.settings,s=this.slideConfig,l=w();T(n.beforeSlideLoad)&&n.beforeSlideLoad({index:this.index,slide:t,player:!1});var o=s.type,r=s.descPosition,a=t.querySelector(\".gslide-media\"),d=t.querySelector(\".gslide-title\"),u=t.querySelector(\".gslide-desc\"),g=t.querySelector(\".gdesc-inner\"),v=i,f=\"gSlideTitle_\"+this.index,p=\"gSlideDesc_\"+this.index;if(T(n.afterSlideLoad)&&(v=function(){T(i)&&i(),n.afterSlideLoad({index:e.index,slide:t,player:e.instance.getSlidePlayerInstance(e.index)})}),\"\"==s.title&&\"\"==s.description?g&&g.parentNode.parentNode.removeChild(g.parentNode):(d&&\"\"!==s.title?(d.id=f,d.innerHTML=s.title):d.parentNode.removeChild(d),u&&\"\"!==s.description?(u.id=p,l&&n.moreLength>0?(s.smallDescription=this.slideShortDesc(s.description,n.moreLength,n.moreText),u.innerHTML=s.smallDescription,this.descriptionEvents(u,s)):u.innerHTML=s.description):u.parentNode.removeChild(u),h(a.parentNode,\"desc-\".concat(r)),h(g.parentNode,\"description-\".concat(r))),h(a,\"gslide-\".concat(o)),h(t,\"loaded\"),\"video\"!==o){if(\"external\"!==o)return\"inline\"===o?(G.apply(this.instance,[t,s,this.index,v]),void(s.draggable&&new V({dragEl:t.querySelector(\".gslide-inline\"),toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:this.instance}))):void(\"image\"!==o?T(v)&&v():j(t,s,this.index,(function(){var i=t.querySelector(\"img\");s.draggable&&new V({dragEl:i,toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:e.instance}),s.zoomable&&i.naturalWidth>i.offsetWidth&&(h(i,\"zoomable\"),new H(i,t,(function(){e.instance.resize()}))),T(v)&&v()})));Z.apply(this,[t,s,this.index,v])}else F.apply(this.instance,[t,s,this.index,v])}},{key:\"slideShortDesc\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=document.createElement(\"div\");n.innerHTML=e;var s=n.innerText,l=i;if((e=s.trim()).length<=t)return e;var o=e.substr(0,t-1);return l?(n=null,o+'... '+i+\"\"):o}},{key:\"descriptionEvents\",value:function(e,t){var i=this,n=e.querySelector(\".desc-more\");if(!n)return!1;a(\"click\",{onElement:n,withCallback:function(e,n){e.preventDefault();var s=document.body,l=u(n,\".gslide-desc\");if(!l)return!1;l.innerHTML=t.description,h(s,\"gdesc-open\");var o=a(\"click\",{onElement:[s,u(l,\".gslide-description\")],withCallback:function(e,n){\"a\"!==e.target.nodeName.toLowerCase()&&(d(s,\"gdesc-open\"),h(s,\"gdesc-closed\"),l.innerHTML=t.smallDescription,i.descriptionEvents(l,t),setTimeout((function(){d(s,\"gdesc-closed\")}),400),o.destroy())}})}})}},{key:\"create\",value:function(){return m(this.instance.settings.slideHTML)}},{key:\"getConfig\",value:function(){k(this.element)||this.element.hasOwnProperty(\"draggable\")||(this.element.draggable=this.instance.settings.draggable);var e=new U(this.instance.settings.slideExtraAttributes);return this.slideConfig=e.parseConfig(this.element,this.instance.settings),this.slideConfig}}]),e}(),J=w(),K=null!==w()||void 0!==document.createTouch||\"ontouchstart\"in window||\"onmsgesturechange\"in window||navigator.msMaxTouchPoints,Q=document.getElementsByTagName(\"html\")[0],ee={selector:\".glightbox\",elements:null,skin:\"clean\",theme:\"clean\",closeButton:!0,startAt:null,autoplayVideos:!0,autofocusVideos:!0,descPosition:\"bottom\",width:\"900px\",height:\"506px\",videosWidth:\"960px\",beforeSlideChange:null,afterSlideChange:null,beforeSlideLoad:null,afterSlideLoad:null,slideInserted:null,slideRemoved:null,slideExtraAttributes:null,onOpen:null,onClose:null,loop:!1,zoomable:!0,draggable:!0,dragAutoSnap:!1,dragToleranceX:40,dragToleranceY:65,preload:!0,oneSlidePerOpen:!1,touchNavigation:!0,touchFollowAxis:!0,keyboardNavigation:!0,closeOnOutsideClick:!0,plugins:!1,plyr:{css:\"https://cdn.plyr.io/3.6.12/plyr.css\",js:\"https://cdn.plyr.io/3.6.12/plyr.js\",config:{ratio:\"16:9\",fullscreen:{enabled:!0,iosNative:!0},youtube:{noCookie:!0,rel:0,showinfo:0,iv_load_policy:3},vimeo:{byline:!1,portrait:!1,title:!1,transparent:!1}}},openEffect:\"zoom\",closeEffect:\"zoom\",slideEffect:\"slide\",moreText:\"See more\",moreLength:60,cssEfects:{fade:{in:\"fadeIn\",out:\"fadeOut\"},zoom:{in:\"zoomIn\",out:\"zoomOut\"},slide:{in:\"slideInRight\",out:\"slideOutLeft\"},slideBack:{in:\"slideInLeft\",out:\"slideOutRight\"},none:{in:\"none\",out:\"none\"}},svg:{close:'',next:' ',prev:''},slideHTML:'
\\n
\\n
\\n
\\n
\\n
\\n
\\n

\\n
\\n
\\n
\\n
\\n
\\n
',lightboxHTML:'
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
'},te=function(){function e(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),this.customOptions=i,this.settings=l(ee,i),this.effectsClasses=this.getAnimationClasses(),this.videoPlayers={},this.apiEvents=[],this.fullElementsList=!1}return n(e,[{key:\"init\",value:function(){var e=this,t=this.getSelector();t&&(this.baseEvents=a(\"click\",{onElement:t,withCallback:function(t,i){t.preventDefault(),e.open(i)}})),this.elements=this.getElements()}},{key:\"open\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(0===this.elements.length)return!1;this.activeSlide=null,this.prevActiveSlideIndex=null,this.prevActiveSlide=null;var i=M(t)?t:this.settings.startAt;if(k(e)){var n=e.getAttribute(\"data-gallery\");n&&(this.fullElementsList=this.elements,this.elements=this.getGalleryElements(this.elements,n)),I(i)&&(i=this.getElementIndex(e))<0&&(i=0)}M(i)||(i=0),this.build(),g(this.overlay,\"none\"===this.settings.openEffect?\"none\":this.settings.cssEfects.fade.in);var s=document.body,l=window.innerWidth-document.documentElement.clientWidth;if(l>0){var o=document.createElement(\"style\");o.type=\"text/css\",o.className=\"gcss-styles\",o.innerText=\".gscrollbar-fixer {margin-right: \".concat(l,\"px}\"),document.head.appendChild(o),h(s,\"gscrollbar-fixer\")}h(s,\"glightbox-open\"),h(Q,\"glightbox-open\"),J&&(h(document.body,\"glightbox-mobile\"),this.settings.slideEffect=\"slide\"),this.showSlide(i,!0),1===this.elements.length?(h(this.prevButton,\"glightbox-button-hidden\"),h(this.nextButton,\"glightbox-button-hidden\")):(d(this.prevButton,\"glightbox-button-hidden\"),d(this.nextButton,\"glightbox-button-hidden\")),this.lightboxOpen=!0,this.trigger(\"open\"),T(this.settings.onOpen)&&this.settings.onOpen(),K&&this.settings.touchNavigation&&B(this),this.settings.keyboardNavigation&&X(this)}},{key:\"openAt\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.open(null,e)}},{key:\"showSlide\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];f(this.loader),this.index=parseInt(t);var n=this.slidesContainer.querySelector(\".current\");n&&d(n,\"current\"),this.slideAnimateOut();var s=this.slidesContainer.querySelectorAll(\".gslide\")[t];if(c(s,\"loaded\"))this.slideAnimateIn(s,i),p(this.loader);else{f(this.loader);var l=this.elements[t],o={index:this.index,slide:s,slideNode:s,slideConfig:l.slideConfig,slideIndex:this.index,trigger:l.node,player:null};this.trigger(\"slide_before_load\",o),l.instance.setContent(s,(function(){p(e.loader),e.resize(),e.slideAnimateIn(s,i),e.trigger(\"slide_after_load\",o)}))}this.slideDescription=s.querySelector(\".gslide-description\"),this.slideDescriptionContained=this.slideDescription&&c(this.slideDescription.parentNode,\"gslide-media\"),this.settings.preload&&(this.preloadSlide(t+1),this.preloadSlide(t-1)),this.updateNavigationClasses(),this.activeSlide=s}},{key:\"preloadSlide\",value:function(e){var t=this;if(e<0||e>this.elements.length-1)return!1;if(I(this.elements[e]))return!1;var i=this.slidesContainer.querySelectorAll(\".gslide\")[e];if(c(i,\"loaded\"))return!1;var n=this.elements[e],s=n.type,l={index:e,slide:i,slideNode:i,slideConfig:n.slideConfig,slideIndex:e,trigger:n.node,player:null};this.trigger(\"slide_before_load\",l),\"video\"===s||\"external\"===s?setTimeout((function(){n.instance.setContent(i,(function(){t.trigger(\"slide_after_load\",l)}))}),200):n.instance.setContent(i,(function(){t.trigger(\"slide_after_load\",l)}))}},{key:\"prevSlide\",value:function(){this.goToSlide(this.index-1)}},{key:\"nextSlide\",value:function(){this.goToSlide(this.index+1)}},{key:\"goToSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.prevActiveSlide=this.activeSlide,this.prevActiveSlideIndex=this.index,!this.loop()&&(e<0||e>this.elements.length-1))return!1;e<0?e=this.elements.length-1:e>=this.elements.length&&(e=0),this.showSlide(e)}},{key:\"insertSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;t<0&&(t=this.elements.length);var i=new $(e,this,t),n=i.getConfig(),s=l({},n),o=i.create(),r=this.elements.length-1;s.index=t,s.node=!1,s.instance=i,s.slideConfig=n,this.elements.splice(t,0,s);var a=null,h=null;if(this.slidesContainer){if(t>r)this.slidesContainer.appendChild(o);else{var d=this.slidesContainer.querySelectorAll(\".gslide\")[t];this.slidesContainer.insertBefore(o,d)}(this.settings.preload&&0==this.index&&0==t||this.index-1==t||this.index+1==t)&&this.preloadSlide(t),0===this.index&&0===t&&(this.index=1),this.updateNavigationClasses(),a=this.slidesContainer.querySelectorAll(\".gslide\")[t],h=this.getSlidePlayerInstance(t),s.slideNode=a}this.trigger(\"slide_inserted\",{index:t,slide:a,slideNode:a,slideConfig:n,slideIndex:t,trigger:null,player:h}),T(this.settings.slideInserted)&&this.settings.slideInserted({index:t,slide:a,player:h})}},{key:\"removeSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;if(e<0||e>this.elements.length-1)return!1;var t=this.slidesContainer&&this.slidesContainer.querySelectorAll(\".gslide\")[e];t&&(this.getActiveSlideIndex()==e&&(e==this.elements.length-1?this.prevSlide():this.nextSlide()),t.parentNode.removeChild(t)),this.elements.splice(e,1),this.trigger(\"slide_removed\",e),T(this.settings.slideRemoved)&&this.settings.slideRemoved(e)}},{key:\"slideAnimateIn\",value:function(e,t){var i=this,n=e.querySelector(\".gslide-media\"),s=e.querySelector(\".gslide-description\"),l={index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlide,slideConfig:I(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:I(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},o={index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideConfig:this.elements[this.index].slideConfig,slideIndex:this.index,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)};if(n.offsetWidth>0&&s&&(p(s),s.style.display=\"\"),d(e,this.effectsClasses),t)g(e,this.settings.cssEfects[this.settings.openEffect].in,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger(\"slide_changed\",{prev:l,current:o}),T(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}));else{var r=this.settings.slideEffect,a=\"none\"!==r?this.settings.cssEfects[r].in:r;this.prevActiveSlideIndex>this.index&&\"slide\"==this.settings.slideEffect&&(a=this.settings.cssEfects.slideBack.in),g(e,a,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger(\"slide_changed\",{prev:l,current:o}),T(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}))}setTimeout((function(){i.resize(e)}),100),h(e,\"current\")}},{key:\"slideAnimateOut\",value:function(){if(!this.prevActiveSlide)return!1;var e=this.prevActiveSlide;d(e,this.effectsClasses),h(e,\"prev\");var t=this.settings.slideEffect,i=\"none\"!==t?this.settings.cssEfects[t].out:t;this.slidePlayerPause(e),this.trigger(\"slide_before_change\",{prev:{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlideIndex,slideConfig:I(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:I(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},current:{index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideIndex:this.index,slideConfig:this.elements[this.index].slideConfig,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)}}),T(this.settings.beforeSlideChange)&&this.settings.beforeSlideChange.apply(this,[{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},{index:this.index,slide:this.activeSlide,player:this.getSlidePlayerInstance(this.index)}]),this.prevActiveSlideIndex>this.index&&\"slide\"==this.settings.slideEffect&&(i=this.settings.cssEfects.slideBack.out),g(e,i,(function(){var t=e.querySelector(\".ginner-container\"),i=e.querySelector(\".gslide-media\"),n=e.querySelector(\".gslide-description\");t.style.transform=\"\",i.style.transform=\"\",d(i,\"greset\"),i.style.opacity=\"\",n&&(n.style.opacity=\"\"),d(e,\"prev\")}))}},{key:\"getAllPlayers\",value:function(){return this.videoPlayers}},{key:\"getSlidePlayerInstance\",value:function(e){var t=\"gvideo\"+e,i=this.getAllPlayers();return!(!O(i,t)||!i[t])&&i[t]}},{key:\"stopSlideVideo\",value:function(e){if(k(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}console.log(\"stopSlideVideo is deprecated, use slidePlayerPause\");var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:\"slidePlayerPause\",value:function(e){if(k(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:\"playSlideVideo\",value:function(e){if(k(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}console.log(\"playSlideVideo is deprecated, use slidePlayerPlay\");var i=this.getSlidePlayerInstance(e);i&&!i.playing&&i.play()}},{key:\"slidePlayerPlay\",value:function(e){var t;if(!J||null!==(t=this.settings.plyr.config)&&void 0!==t&&t.muted){if(k(e)){var i=e.querySelector(\".gvideo-wrapper\");i&&(e=i.getAttribute(\"data-index\"))}var n=this.getSlidePlayerInstance(e);n&&!n.playing&&(n.play(),this.settings.autofocusVideos&&n.elements.container.focus())}}},{key:\"setElements\",value:function(e){var t=this;this.settings.elements=!1;var i=[];e&&e.length&&o(e,(function(e,n){var s=new $(e,t,n),o=s.getConfig(),r=l({},o);r.slideConfig=o,r.instance=s,r.index=n,i.push(r)})),this.elements=i,this.lightboxOpen&&(this.slidesContainer.innerHTML=\"\",this.elements.length&&(o(this.elements,(function(){var e=m(t.settings.slideHTML);t.slidesContainer.appendChild(e)})),this.showSlide(0,!0)))}},{key:\"getElementIndex\",value:function(e){var t=!1;return o(this.elements,(function(i,n){if(O(i,\"node\")&&i.node==e)return t=n,!0})),t}},{key:\"getElements\",value:function(){var e=this,t=[];this.elements=this.elements?this.elements:[],!I(this.settings.elements)&&E(this.settings.elements)&&this.settings.elements.length&&o(this.settings.elements,(function(i,n){var s=new $(i,e,n),o=s.getConfig(),r=l({},o);r.node=!1,r.index=n,r.instance=s,r.slideConfig=o,t.push(r)}));var i=!1;return this.getSelector()&&(i=document.querySelectorAll(this.getSelector())),i?(o(i,(function(i,n){var s=new $(i,e,n),o=s.getConfig(),r=l({},o);r.node=i,r.index=n,r.instance=s,r.slideConfig=o,r.gallery=i.getAttribute(\"data-gallery\"),t.push(r)})),t):t}},{key:\"getGalleryElements\",value:function(e,t){return e.filter((function(e){return e.gallery==t}))}},{key:\"getSelector\",value:function(){return!this.settings.elements&&(this.settings.selector&&\"data-\"==this.settings.selector.substring(0,5)?\"*[\".concat(this.settings.selector,\"]\"):this.settings.selector)}},{key:\"getActiveSlide\",value:function(){return this.slidesContainer.querySelectorAll(\".gslide\")[this.index]}},{key:\"getActiveSlideIndex\",value:function(){return this.index}},{key:\"getAnimationClasses\",value:function(){var e=[];for(var t in this.settings.cssEfects)if(this.settings.cssEfects.hasOwnProperty(t)){var i=this.settings.cssEfects[t];e.push(\"g\".concat(i.in)),e.push(\"g\".concat(i.out))}return e.join(\" \")}},{key:\"build\",value:function(){var e=this;if(this.built)return!1;var t=document.body.childNodes,i=[];o(t,(function(e){e.parentNode==document.body&&\"#\"!==e.nodeName.charAt(0)&&e.hasAttribute&&!e.hasAttribute(\"aria-hidden\")&&(i.push(e),e.setAttribute(\"aria-hidden\",\"true\"))}));var n=O(this.settings.svg,\"next\")?this.settings.svg.next:\"\",s=O(this.settings.svg,\"prev\")?this.settings.svg.prev:\"\",l=O(this.settings.svg,\"close\")?this.settings.svg.close:\"\",r=this.settings.lightboxHTML;r=m(r=(r=(r=r.replace(/{nextSVG}/g,n)).replace(/{prevSVG}/g,s)).replace(/{closeSVG}/g,l)),document.body.appendChild(r);var d=document.getElementById(\"glightbox-body\");this.modal=d;var g=d.querySelector(\".gclose\");this.prevButton=d.querySelector(\".gprev\"),this.nextButton=d.querySelector(\".gnext\"),this.overlay=d.querySelector(\".goverlay\"),this.loader=d.querySelector(\".gloader\"),this.slidesContainer=document.getElementById(\"glightbox-slider\"),this.bodyHiddenChildElms=i,this.events={},h(this.modal,\"glightbox-\"+this.settings.skin),this.settings.closeButton&&g&&(this.events.close=a(\"click\",{onElement:g,withCallback:function(t,i){t.preventDefault(),e.close()}})),g&&!this.settings.closeButton&&g.parentNode.removeChild(g),this.nextButton&&(this.events.next=a(\"click\",{onElement:this.nextButton,withCallback:function(t,i){t.preventDefault(),e.nextSlide()}})),this.prevButton&&(this.events.prev=a(\"click\",{onElement:this.prevButton,withCallback:function(t,i){t.preventDefault(),e.prevSlide()}})),this.settings.closeOnOutsideClick&&(this.events.outClose=a(\"click\",{onElement:d,withCallback:function(t,i){e.preventOutsideClick||c(document.body,\"glightbox-mobile\")||u(t.target,\".ginner-container\")||u(t.target,\".gbtn\")||c(t.target,\"gnext\")||c(t.target,\"gprev\")||e.close()}})),o(this.elements,(function(t,i){e.slidesContainer.appendChild(t.instance.create()),t.slideNode=e.slidesContainer.querySelectorAll(\".gslide\")[i]})),K&&h(document.body,\"glightbox-touch\"),this.events.resize=a(\"resize\",{onElement:window,withCallback:function(){e.resize()}}),this.built=!0}},{key:\"resize\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if((e=e||this.activeSlide)&&!c(e,\"zoomed\")){var t=y(),i=e.querySelector(\".gvideo-wrapper\"),n=e.querySelector(\".gslide-image\"),s=this.slideDescription,l=t.width,o=t.height;if(l<=768?h(document.body,\"glightbox-mobile\"):d(document.body,\"glightbox-mobile\"),i||n){var r=!1;if(s&&(c(s,\"description-bottom\")||c(s,\"description-top\"))&&!c(s,\"gabsolute\")&&(r=!0),n)if(l<=768)n.querySelector(\"img\");else if(r){var a=s.offsetHeight,u=n.querySelector(\"img\");u.setAttribute(\"style\",\"max-height: calc(100vh - \".concat(a,\"px)\")),s.setAttribute(\"style\",\"max-width: \".concat(u.offsetWidth,\"px;\"))}if(i){var g=O(this.settings.plyr.config,\"ratio\")?this.settings.plyr.config.ratio:\"\";if(!g){var v=i.clientWidth,f=i.clientHeight,p=v/f;g=\"\".concat(v/p,\":\").concat(f/p)}var m=g.split(\":\"),x=this.settings.videosWidth,b=this.settings.videosWidth,S=(b=M(x)||-1!==x.indexOf(\"px\")?parseInt(x):-1!==x.indexOf(\"vw\")?l*parseInt(x)/100:-1!==x.indexOf(\"vh\")?o*parseInt(x)/100:-1!==x.indexOf(\"%\")?l*parseInt(x)/100:parseInt(i.clientWidth))/(parseInt(m[0])/parseInt(m[1]));if(S=Math.floor(S),r&&(o-=s.offsetHeight),b>l||S>o||ob){var w=i.offsetWidth,T=i.offsetHeight,C=o/T,k={width:w*C,height:T*C};i.parentNode.setAttribute(\"style\",\"max-width: \".concat(k.width,\"px\")),r&&s.setAttribute(\"style\",\"max-width: \".concat(k.width,\"px;\"))}else i.parentNode.style.maxWidth=\"\".concat(x),r&&s.setAttribute(\"style\",\"max-width: \".concat(x,\";\"))}}}}},{key:\"reload\",value:function(){this.init()}},{key:\"updateNavigationClasses\",value:function(){var e=this.loop();d(this.nextButton,\"disabled\"),d(this.prevButton,\"disabled\"),0==this.index&&this.elements.length-1==0?(h(this.prevButton,\"disabled\"),h(this.nextButton,\"disabled\")):0!==this.index||e?this.index!==this.elements.length-1||e||h(this.nextButton,\"disabled\"):h(this.prevButton,\"disabled\")}},{key:\"loop\",value:function(){var e=O(this.settings,\"loopAtEnd\")?this.settings.loopAtEnd:null;return e=O(this.settings,\"loop\")?this.settings.loop:e,e}},{key:\"close\",value:function(){var e=this;if(!this.lightboxOpen){if(this.events){for(var t in this.events)this.events.hasOwnProperty(t)&&this.events[t].destroy();this.events=null}return!1}if(this.closing)return!1;this.closing=!0,this.slidePlayerPause(this.activeSlide),this.fullElementsList&&(this.elements=this.fullElementsList),this.bodyHiddenChildElms.length&&o(this.bodyHiddenChildElms,(function(e){e.removeAttribute(\"aria-hidden\")})),h(this.modal,\"glightbox-closing\"),g(this.overlay,\"none\"==this.settings.openEffect?\"none\":this.settings.cssEfects.fade.out),g(this.activeSlide,this.settings.cssEfects[this.settings.closeEffect].out,(function(){if(e.activeSlide=null,e.prevActiveSlideIndex=null,e.prevActiveSlide=null,e.built=!1,e.events){for(var t in e.events)e.events.hasOwnProperty(t)&&e.events[t].destroy();e.events=null}var i=document.body;d(Q,\"glightbox-open\"),d(i,\"glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer\"),e.modal.parentNode.removeChild(e.modal),e.trigger(\"close\"),T(e.settings.onClose)&&e.settings.onClose();var n=document.querySelector(\".gcss-styles\");n&&n.parentNode.removeChild(n),e.lightboxOpen=!1,e.closing=null}))}},{key:\"destroy\",value:function(){this.close(),this.clearAllEvents(),this.baseEvents&&this.baseEvents.destroy()}},{key:\"on\",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!T(t))throw new TypeError(\"Event name and callback must be defined\");this.apiEvents.push({evt:e,once:i,callback:t})}},{key:\"once\",value:function(e,t){this.on(e,t,!0)}},{key:\"trigger\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=[];o(this.apiEvents,(function(t,s){var l=t.evt,o=t.once,r=t.callback;l==e&&(r(i),o&&n.push(s))})),n.length&&o(n,(function(e){return t.apiEvents.splice(e,1)}))}},{key:\"clearAllEvents\",value:function(){this.apiEvents.splice(0,this.apiEvents.length)}},{key:\"version\",value:function(){return\"3.1.0\"}}]),e}();return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new te(e);return t.init(),t}}));\n\n//# sourceURL=webpack://startup-tailwind/./node_modules/glightbox/dist/js/glightbox.min.js?");}),"./node_modules/glightbox/dist/css/glightbox.min.css":/*!***********************************************************!*\ -!*** ./node_modules/glightbox/dist/css/glightbox.min.css ***! -\***********************************************************/((__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://startup-tailwind/./node_modules/glightbox/dist/css/glightbox.min.css?");}),"./src/css/animate.css":/*!*****************************!*\ -!*** ./src/css/animate.css ***! -\*****************************/((__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://startup-tailwind/./src/css/animate.css?");}),"./src/css/style.css":/*!***************************!*\ -!*** ./src/css/style.css ***! -\***************************/((__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://startup-tailwind/./src/css/style.css?");}),"./node_modules/wowjs/dist/wow.js":/*!****************************************!*\ -!*** ./node_modules/wowjs/dist/wow.js ***! -\****************************************/(function(){eval("(function() {\n var MutationObserver, Util, WeakMap, getComputedStyle, getComputedStyleRX,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n Util = (function() {\n function Util() {}\n\n Util.prototype.extend = function(custom, defaults) {\n var key, value;\n for (key in defaults) {\n value = defaults[key];\n if (custom[key] == null) {\n custom[key] = value;\n }\n }\n return custom;\n };\n\n Util.prototype.isMobile = function(agent) {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent);\n };\n\n Util.prototype.createEvent = function(event, bubble, cancel, detail) {\n var customEvent;\n if (bubble == null) {\n bubble = false;\n }\n if (cancel == null) {\n cancel = false;\n }\n if (detail == null) {\n detail = null;\n }\n if (document.createEvent != null) {\n customEvent = document.createEvent('CustomEvent');\n customEvent.initCustomEvent(event, bubble, cancel, detail);\n } else if (document.createEventObject != null) {\n customEvent = document.createEventObject();\n customEvent.eventType = event;\n } else {\n customEvent.eventName = event;\n }\n return customEvent;\n };\n\n Util.prototype.emitEvent = function(elem, event) {\n if (elem.dispatchEvent != null) {\n return elem.dispatchEvent(event);\n } else if (event in (elem != null)) {\n return elem[event]();\n } else if ((\"on\" + event) in (elem != null)) {\n return elem[\"on\" + event]();\n }\n };\n\n Util.prototype.addEvent = function(elem, event, fn) {\n if (elem.addEventListener != null) {\n return elem.addEventListener(event, fn, false);\n } else if (elem.attachEvent != null) {\n return elem.attachEvent(\"on\" + event, fn);\n } else {\n return elem[event] = fn;\n }\n };\n\n Util.prototype.removeEvent = function(elem, event, fn) {\n if (elem.removeEventListener != null) {\n return elem.removeEventListener(event, fn, false);\n } else if (elem.detachEvent != null) {\n return elem.detachEvent(\"on\" + event, fn);\n } else {\n return delete elem[event];\n }\n };\n\n Util.prototype.innerHeight = function() {\n if ('innerHeight' in window) {\n return window.innerHeight;\n } else {\n return document.documentElement.clientHeight;\n }\n };\n\n return Util;\n\n })();\n\n WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() {\n function WeakMap() {\n this.keys = [];\n this.values = [];\n }\n\n WeakMap.prototype.get = function(key) {\n var i, item, j, len, ref;\n ref = this.keys;\n for (i = j = 0, len = ref.length; j < len; i = ++j) {\n item = ref[i];\n if (item === key) {\n return this.values[i];\n }\n }\n };\n\n WeakMap.prototype.set = function(key, value) {\n var i, item, j, len, ref;\n ref = this.keys;\n for (i = j = 0, len = ref.length; j < len; i = ++j) {\n item = ref[i];\n if (item === key) {\n this.values[i] = value;\n return;\n }\n }\n this.keys.push(key);\n return this.values.push(value);\n };\n\n return WeakMap;\n\n })());\n\n MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() {\n function MutationObserver() {\n if (typeof console !== \"undefined\" && console !== null) {\n console.warn('MutationObserver is not supported by your browser.');\n }\n if (typeof console !== \"undefined\" && console !== null) {\n console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');\n }\n }\n\n MutationObserver.notSupported = true;\n\n MutationObserver.prototype.observe = function() {};\n\n return MutationObserver;\n\n })());\n\n getComputedStyle = this.getComputedStyle || function(el, pseudo) {\n this.getPropertyValue = function(prop) {\n var ref;\n if (prop === 'float') {\n prop = 'styleFloat';\n }\n if (getComputedStyleRX.test(prop)) {\n prop.replace(getComputedStyleRX, function(_, _char) {\n return _char.toUpperCase();\n });\n }\n return ((ref = el.currentStyle) != null ? ref[prop] : void 0) || null;\n };\n return this;\n };\n\n getComputedStyleRX = /(\\-([a-z]){1})/g;\n\n this.WOW = (function() {\n WOW.prototype.defaults = {\n boxClass: 'wow',\n animateClass: 'animated',\n offset: 0,\n mobile: true,\n live: true,\n callback: null,\n scrollContainer: null\n };\n\n function WOW(options) {\n if (options == null) {\n options = {};\n }\n this.scrollCallback = bind(this.scrollCallback, this);\n this.scrollHandler = bind(this.scrollHandler, this);\n this.resetAnimation = bind(this.resetAnimation, this);\n this.start = bind(this.start, this);\n this.scrolled = true;\n this.config = this.util().extend(options, this.defaults);\n if (options.scrollContainer != null) {\n this.config.scrollContainer = document.querySelector(options.scrollContainer);\n }\n this.animationNameCache = new WeakMap();\n this.wowEvent = this.util().createEvent(this.config.boxClass);\n }\n\n WOW.prototype.init = function() {\n var ref;\n this.element = window.document.documentElement;\n if ((ref = document.readyState) === \"interactive\" || ref === \"complete\") {\n this.start();\n } else {\n this.util().addEvent(document, 'DOMContentLoaded', this.start);\n }\n return this.finished = [];\n };\n\n WOW.prototype.start = function() {\n var box, j, len, ref;\n this.stopped = false;\n this.boxes = (function() {\n var j, len, ref, results;\n ref = this.element.querySelectorAll(\".\" + this.config.boxClass);\n results = [];\n for (j = 0, len = ref.length; j < len; j++) {\n box = ref[j];\n results.push(box);\n }\n return results;\n }).call(this);\n this.all = (function() {\n var j, len, ref, results;\n ref = this.boxes;\n results = [];\n for (j = 0, len = ref.length; j < len; j++) {\n box = ref[j];\n results.push(box);\n }\n return results;\n }).call(this);\n if (this.boxes.length) {\n if (this.disabled()) {\n this.resetStyle();\n } else {\n ref = this.boxes;\n for (j = 0, len = ref.length; j < len; j++) {\n box = ref[j];\n this.applyStyle(box, true);\n }\n }\n }\n if (!this.disabled()) {\n this.util().addEvent(this.config.scrollContainer || window, 'scroll', this.scrollHandler);\n this.util().addEvent(window, 'resize', this.scrollHandler);\n this.interval = setInterval(this.scrollCallback, 50);\n }\n if (this.config.live) {\n return new MutationObserver((function(_this) {\n return function(records) {\n var k, len1, node, record, results;\n results = [];\n for (k = 0, len1 = records.length; k < len1; k++) {\n record = records[k];\n results.push((function() {\n var l, len2, ref1, results1;\n ref1 = record.addedNodes || [];\n results1 = [];\n for (l = 0, len2 = ref1.length; l < len2; l++) {\n node = ref1[l];\n results1.push(this.doSync(node));\n }\n return results1;\n }).call(_this));\n }\n return results;\n };\n })(this)).observe(document.body, {\n childList: true,\n subtree: true\n });\n }\n };\n\n WOW.prototype.stop = function() {\n this.stopped = true;\n this.util().removeEvent(this.config.scrollContainer || window, 'scroll', this.scrollHandler);\n this.util().removeEvent(window, 'resize', this.scrollHandler);\n if (this.interval != null) {\n return clearInterval(this.interval);\n }\n };\n\n WOW.prototype.sync = function(element) {\n if (MutationObserver.notSupported) {\n return this.doSync(this.element);\n }\n };\n\n WOW.prototype.doSync = function(element) {\n var box, j, len, ref, results;\n if (element == null) {\n element = this.element;\n }\n if (element.nodeType !== 1) {\n return;\n }\n element = element.parentNode || element;\n ref = element.querySelectorAll(\".\" + this.config.boxClass);\n results = [];\n for (j = 0, len = ref.length; j < len; j++) {\n box = ref[j];\n if (indexOf.call(this.all, box) < 0) {\n this.boxes.push(box);\n this.all.push(box);\n if (this.stopped || this.disabled()) {\n this.resetStyle();\n } else {\n this.applyStyle(box, true);\n }\n results.push(this.scrolled = true);\n } else {\n results.push(void 0);\n }\n }\n return results;\n };\n\n WOW.prototype.show = function(box) {\n this.applyStyle(box);\n box.className = box.className + \" \" + this.config.animateClass;\n if (this.config.callback != null) {\n this.config.callback(box);\n }\n this.util().emitEvent(box, this.wowEvent);\n this.util().addEvent(box, 'animationend', this.resetAnimation);\n this.util().addEvent(box, 'oanimationend', this.resetAnimation);\n this.util().addEvent(box, 'webkitAnimationEnd', this.resetAnimation);\n this.util().addEvent(box, 'MSAnimationEnd', this.resetAnimation);\n return box;\n };\n\n WOW.prototype.applyStyle = function(box, hidden) {\n var delay, duration, iteration;\n duration = box.getAttribute('data-wow-duration');\n delay = box.getAttribute('data-wow-delay');\n iteration = box.getAttribute('data-wow-iteration');\n return this.animate((function(_this) {\n return function() {\n return _this.customStyle(box, hidden, duration, delay, iteration);\n };\n })(this));\n };\n\n WOW.prototype.animate = (function() {\n if ('requestAnimationFrame' in window) {\n return function(callback) {\n return window.requestAnimationFrame(callback);\n };\n } else {\n return function(callback) {\n return callback();\n };\n }\n })();\n\n WOW.prototype.resetStyle = function() {\n var box, j, len, ref, results;\n ref = this.boxes;\n results = [];\n for (j = 0, len = ref.length; j < len; j++) {\n box = ref[j];\n results.push(box.style.visibility = 'visible');\n }\n return results;\n };\n\n WOW.prototype.resetAnimation = function(event) {\n var target;\n if (event.type.toLowerCase().indexOf('animationend') >= 0) {\n target = event.target || event.srcElement;\n return target.className = target.className.replace(this.config.animateClass, '').trim();\n }\n };\n\n WOW.prototype.customStyle = function(box, hidden, duration, delay, iteration) {\n if (hidden) {\n this.cacheAnimationName(box);\n }\n box.style.visibility = hidden ? 'hidden' : 'visible';\n if (duration) {\n this.vendorSet(box.style, {\n animationDuration: duration\n });\n }\n if (delay) {\n this.vendorSet(box.style, {\n animationDelay: delay\n });\n }\n if (iteration) {\n this.vendorSet(box.style, {\n animationIterationCount: iteration\n });\n }\n this.vendorSet(box.style, {\n animationName: hidden ? 'none' : this.cachedAnimationName(box)\n });\n return box;\n };\n\n WOW.prototype.vendors = [\"moz\", \"webkit\"];\n\n WOW.prototype.vendorSet = function(elem, properties) {\n var name, results, value, vendor;\n results = [];\n for (name in properties) {\n value = properties[name];\n elem[\"\" + name] = value;\n results.push((function() {\n var j, len, ref, results1;\n ref = this.vendors;\n results1 = [];\n for (j = 0, len = ref.length; j < len; j++) {\n vendor = ref[j];\n results1.push(elem[\"\" + vendor + (name.charAt(0).toUpperCase()) + (name.substr(1))] = value);\n }\n return results1;\n }).call(this));\n }\n return results;\n };\n\n WOW.prototype.vendorCSS = function(elem, property) {\n var j, len, ref, result, style, vendor;\n style = getComputedStyle(elem);\n result = style.getPropertyCSSValue(property);\n ref = this.vendors;\n for (j = 0, len = ref.length; j < len; j++) {\n vendor = ref[j];\n result = result || style.getPropertyCSSValue(\"-\" + vendor + \"-\" + property);\n }\n return result;\n };\n\n WOW.prototype.animationName = function(box) {\n var animationName, error;\n try {\n animationName = this.vendorCSS(box, 'animation-name').cssText;\n } catch (error) {\n animationName = getComputedStyle(box).getPropertyValue('animation-name');\n }\n if (animationName === 'none') {\n return '';\n } else {\n return animationName;\n }\n };\n\n WOW.prototype.cacheAnimationName = function(box) {\n return this.animationNameCache.set(box, this.animationName(box));\n };\n\n WOW.prototype.cachedAnimationName = function(box) {\n return this.animationNameCache.get(box);\n };\n\n WOW.prototype.scrollHandler = function() {\n return this.scrolled = true;\n };\n\n WOW.prototype.scrollCallback = function() {\n var box;\n if (this.scrolled) {\n this.scrolled = false;\n this.boxes = (function() {\n var j, len, ref, results;\n ref = this.boxes;\n results = [];\n for (j = 0, len = ref.length; j < len; j++) {\n box = ref[j];\n if (!(box)) {\n continue;\n }\n if (this.isVisible(box)) {\n this.show(box);\n continue;\n }\n results.push(box);\n }\n return results;\n }).call(this);\n if (!(this.boxes.length || this.config.live)) {\n return this.stop();\n }\n }\n };\n\n WOW.prototype.offsetTop = function(element) {\n var top;\n while (element.offsetTop === void 0) {\n element = element.parentNode;\n }\n top = element.offsetTop;\n while (element = element.offsetParent) {\n top += element.offsetTop;\n }\n return top;\n };\n\n WOW.prototype.isVisible = function(box) {\n var bottom, offset, top, viewBottom, viewTop;\n offset = box.getAttribute('data-wow-offset') || this.config.offset;\n viewTop = (this.config.scrollContainer && this.config.scrollContainer.scrollTop) || window.pageYOffset;\n viewBottom = viewTop + Math.min(this.element.clientHeight, this.util().innerHeight()) - offset;\n top = this.offsetTop(box);\n bottom = top + box.clientHeight;\n return top <= viewBottom && bottom >= viewTop;\n };\n\n WOW.prototype.util = function() {\n return this._util != null ? this._util : this._util = new Util();\n };\n\n WOW.prototype.disabled = function() {\n return !this.config.mobile && this.util().isMobile(navigator.userAgent);\n };\n\n return WOW;\n\n })();\n\n}).call(this);\n\n\n//# sourceURL=webpack://startup-tailwind/./node_modules/wowjs/dist/wow.js?");})});var __webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(cachedModule!==undefined){return cachedModule.exports;} -var module=__webpack_module_cache__[moduleId]={exports:{}};__webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__);return module.exports;} -(()=>{__webpack_require__.n=(module)=>{var getter=module&&module.__esModule?()=>(module['default']):()=>(module);__webpack_require__.d(getter,{a:getter});return getter;};})();(()=>{__webpack_require__.d=(exports,definition)=>{for(var key in definition){if(__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)){Object.defineProperty(exports,key,{enumerable:true,get:definition[key]});}}};})();(()=>{__webpack_require__.o=(obj,prop)=>(Object.prototype.hasOwnProperty.call(obj,prop))})();(()=>{__webpack_require__.r=(exports)=>{if(typeof Symbol!=='undefined'&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});} -Object.defineProperty(exports,'__esModule',{value:true});};})();var __webpack_exports__=__webpack_require__("./src/js/index.js");})(); diff --git a/app-rappaurio/public/js/custom.js b/app-rappaurio/public/js/custom.js deleted file mode 100644 index b3aa895..0000000 --- a/app-rappaurio/public/js/custom.js +++ /dev/null @@ -1,368 +0,0 @@ - -// === SCROLL MENU === -const pageLink = document.querySelectorAll('.menu-scroll'); - -pageLink.forEach((elem) => { - elem.addEventListener('click', (e) => { - e.preventDefault(); - document.querySelector(elem.getAttribute('href')).scrollIntoView({ - behavior: 'smooth', - offsetTop: 1 - 60, - }); - }); -}); - -// section menu active -function onScroll(event) { - const sections = document.querySelectorAll('.menu-scroll'); - const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; - - for (let i = 0; i < sections.length; i++) { - const currLink = sections[i]; - const val = currLink.getAttribute('href'); - const refElement = document.querySelector(val); - const scrollTopMinus = scrollPos + 73; - if (refElement.offsetTop <= scrollTopMinus && refElement.offsetTop + refElement.offsetHeight > scrollTopMinus) { - document.querySelector('.menu-scroll').classList.remove('active'); - currLink.classList.add('active'); - } else { - currLink.classList.remove('active'); - } - } -} - -window.document.addEventListener('scroll', onScroll); - -// === FOOTER DYNAMIC === - -// Sélectionnez le footer par son ID -const footer = document.getElementById('leFooter'); - -// Fonction pour positionner le footer en bas de la page -function positionFooter() { - const windowHeight = window.innerHeight; - const bodyHeight = document.body.clientHeight; - const footerHeight = footer.clientHeight; - - if (bodyHeight < windowHeight) { - footer.style.position = 'absolute'; - footer.style.bottom = '0'; - } else { - footer.style.position = 'static'; - } -} - -// Appelez la fonction lors du chargement de la page et lorsque la fenêtre est redimensionnée -window.addEventListener('load', positionFooter); -window.addEventListener('resize', positionFooter); - - -// === MODE SOMBRE +> LOCAL STORAGE === - -// Fonction pour lire la valeur du thème depuis localStorage -function getThemeLocalStorage() { - return localStorage.getItem('theme'); -} - -// Fonction pour définir le thème dans localStorage -function setThemeLocalStorage(theme) { - localStorage.setItem('theme', theme); -} - -// Fonction pour mettre à jour la classe sur le en fonction du thème -function updateThemeClass() { - const darkTogglerCheckbox = document.querySelector('#darkToggler'); - const html = document.querySelector('html'); - const theme = getThemeLocalStorage(); - - // Appliquer la classe en fonction de la valeur de localStorage - if (theme === 'dark') { - darkTogglerCheckbox.checked = true; - html.classList.add('dark'); - } else { - darkTogglerCheckbox.checked = false; - html.classList.remove('dark'); - } -} - -// Appeler la fonction d'initialisation de la gestion du thème -updateThemeClass(); - -// Gérer le changement de thème lorsque l'utilisateur clique sur la case à cocher -const darkTogglerCheckbox = document.querySelector('#darkToggler'); -darkTogglerCheckbox.addEventListener('click', function () { - if (darkTogglerCheckbox.checked) { - setThemeLocalStorage('dark'); - } else { - setThemeLocalStorage('light'); - } -}); - -// === ENVOIE FORMULAIRE AVEC AJAX === - -// Attendre que le document soit prêt -$(document).ready(function () { - - // Sélectionnez le formulaire de COMPARAISON par son ID - $('#formulaire-comp').submit(function (e) { - - // Fait scroll une fois le formulaire envoyé - $(document).ready(function () { - // Sélectionnez le lien par son ID - - $('html, body').animate({ - scrollTop: $('#resultat').offset().top - }, 1000); // 1000 millisecondes (1 seconde) pour l'animation - }); - - // Empêchez la soumission normale du formulaire - e.preventDefault(); - - // Affiche le chargement - $('#loading').removeClass('hidden'); - - $('#articleIntrouvable').addClass('hidden'); - $('#articleContainer1').addClass('hidden'); - $('#articleContainer2').addClass('hidden'); - - // Reste du code pour gérer la soumission du formulaire - //console.log('Formulaire soumis !'); - - // Récupérez les valeurs des champs du formulaire - const articleTitle1 = $('#articleTitle1').val(); - const articleTitle2 = $('#articleTitle2').val(); - - // Créez un objet JavaScript avec les données à envoyer au serveur - const formData = { - articleTitle1: articleTitle1, - articleTitle2: articleTitle2 - }; - - // Utilisez AJAX pour envoyer les données au serveur - $.ajax({ - type: 'POST', - url: '/search', - data: formData, - dataType: 'json', - success: function (response) { - console.log(response); - - $('#loading').addClass('hidden'); - $('#articleIntrouvable').removeClass('hidden'); - - // Mettez à jour la section HTML avec les données reçues ici - - // Vérifiez si response.articleInfo1 existe et contient les informations nécessaires - if (response.articleInfo1) { - $('#articleInfo1Title').html(response.articleInfo1.title); - - // Article 1 - $('#articleInfo1Title').html(response.articleInfo1.title); - $('#articleInfo1url').attr('href', response.articleInfo1.url); - $('#articleInfo1extract').html(response.articleInfo1.extract); - $('#articleInfo1lastEdit').html(response.articleInfo1.lastEdit); - $('#articleInfo1numRevisions').html(response.articleInfo1.numRevisions); - $('#articleInfo1pageSize').html(response.articleInfo1.pageSize); - $('#articleInfo1firstRevisionUser').html(response.articleInfo1.firstRevisionUser); - $('#articleInfo1latestRevisionId').html(response.articleInfo1.latestRevisionId); - $('#articleInfo1pageId').html(response.articleInfo1.pageId); - $('#articleInfo1latestVersion').html(response.articleInfo1.latestVersion); - $('#articleInfo1wordCount').html(response.articleInfo1.wordCount); - $('#articleInfo1charCount').html(response.articleInfo1.charCount); - $('#articleInfo1lastContributor').html(response.articleInfo1.lastContributor); - $('#articleInfo1image').attr('href', response.articleInfo1.image); - $('#articleInfo1image img').attr('src', response.articleInfo1.image); - - // Récupérez la valeur de l'image - const articleInfo1ImageValue = response.articleInfo1.image; - - // Récupérez l'élément image par son ID - const articleInfo1Image = document.getElementById("articleInfo1image"); - - if (articleInfo1ImageValue === "Non disponible") { - // Si la valeur est "Non disponible", masquez l'élément - articleInfo1Image.style.display = "none"; - } else { - // Sinon, affichez l'élément - articleInfo1Image.style.display = "block"; // Vous pouvez utiliser "inline" si nécessaire - // Assurez-vous de définir la source de l'image ici en fonction de votre logique - articleInfo1Image.src = articleInfo1ImageValue; - } - - - const infoboxContainer1 = document.getElementById("infoboxcontainer1"); - // Supprimer le contenu précédent de l'infobox - while (infoboxContainer1.firstChild) { - infoboxContainer1.removeChild(infoboxContainer1.firstChild); - } - // Ajouter les nouvelles informations pour articleInfo1 - const infoboxData1 = response.articleInfo1.infobox; - Object.entries(infoboxData1).forEach(([key, value]) => { - const ligne = document.createElement("tr"); - ligne.innerHTML = `${key} ${value}`; - infoboxContainer1.appendChild(ligne); - }); - } else { - // Traitez le cas où response.articleInfo1 n'existe pas - } - - - // Vérifiez si response.articleInfo2 existe et contient les informations nécessaires - if (response.articleInfo2) { - $('#articleInfo2Title').html(response.articleInfo2.title); - - // Article 2 - $('#articleInfo2Title').html(response.articleInfo2.title); - $('#articleInfo2url').attr('href', response.articleInfo2.url); - $('#articleInfo2extract').html(response.articleInfo2.extract); - $('#articleInfo2lastEdit').html(response.articleInfo2.lastEdit); - $('#articleInfo2numRevisions').html(response.articleInfo2.numRevisions); - $('#articleInfo2pageSize').html(response.articleInfo2.pageSize); - $('#articleInfo2firstRevisionUser').html(response.articleInfo2.firstRevisionUser); - $('#articleInfo2latestRevisionId').html(response.articleInfo2.latestRevisionId); - $('#articleInfo2pageId').html(response.articleInfo2.pageId); - $('#articleInfo2latestVersion').html(response.articleInfo2.latestVersion); - $('#articleInfo2wordCount').html(response.articleInfo2.wordCount); - $('#articleInfo2charCount').html(response.articleInfo2.charCount); - $('#articleInfo2lastContributor').html(response.articleInfo2.lastContributor); - $('#articleInfo2image').attr('href', response.articleInfo2.image); - $('#articleInfo2image img').attr('src', response.articleInfo2.image); - - - // Récupérez la valeur de l'image - const articleInfo2ImageValue = response.articleInfo2.image; - - // Récupérez l'élément image par son ID - const articleInfo2Image = document.getElementById("articleInfo2image"); - - if (articleInfo2ImageValue === "Non disponible") { - // Si la valeur est "Non disponible", masquez l'élément - articleInfo2Image.style.display = "none"; - } else { - // Sinon, affichez l'élément - articleInfo2Image.style.display = "block"; // Vous pouvez utiliser "inline" si nécessaire - // Assurez-vous de définir la source de l'image ici en fonction de votre logique - articleInfo2Image.src = articleInfo2ImageValue; - } - - const infoboxContainer2 = document.getElementById("infoboxcontainer2"); - // Supprimer le contenu précédent de l'infobox - while (infoboxContainer2.firstChild) { - infoboxContainer2.removeChild(infoboxContainer2.firstChild); - } - // Ajouter les nouvelles informations pour articleInfo2 - const infoboxData2 = response.articleInfo2.infobox; - Object.entries(infoboxData2).forEach(([key, value]) => { - const ligne = document.createElement("tr"); - ligne.innerHTML = `${key} ${value}`; - infoboxContainer2.appendChild(ligne); - }); - } else { - // Traitez le cas où response.articleInfo2 n'existe pas - } - - // Vérifiez si toutes les informations nécessaires sont disponibles - const allInfoAvailable = checkIfAllInfoAvailable(response); - - if (allInfoAvailable) { - $('#articleContainer1').removeClass('hidden'); - $('#articleContainer2').removeClass('hidden'); - $('#articleIntrouvable').addClass('hidden'); - - $(document).ready(function () { - // Sélectionnez le lien par son ID - $('html, body').animate({ - scrollTop: $('#resultat').offset().top - }, 1000); // 1000 millisecondes (1 seconde) pour l'animation - }); - - } else { - // Traitez le cas où certaines informations ne sont pas disponibles - const articleIntrouvable = document.getElementById("articleIntrouvable"); - let errorMessage = ""; - - if (!response.articleInfo1 && !response.articleInfo2) { - errorMessage += "Les articles " + - '' + articleTitle1 + " et " + - '' + articleTitle2 + " sont introuvables."; - } - else { - - if (!response.articleInfo1) { - errorMessage += "L'article " + '' + articleTitle1 + " est introuvable."; - } - - if (!response.articleInfo2) { - errorMessage += "L'article " + '' + articleTitle2 + " est introuvable."; - } - } - - articleIntrouvable.innerHTML = errorMessage; - } - - }, - - error: function (error) { - console.error('Erreur lors de la recherche d\'informations sur les articles :', error); - - // Ajoutez une console.log pour vérifier si cette partie du code est exécutée - console.log('Erreur AJAX'); - - // Sélectionnez le div d'erreur par son ID - const articleIntrouvable = document.getElementById("articleIntrouvable"); - - // Mettez à jour le contenu du div avec un message d'erreur - articleIntrouvable.textContent = "Aucun article n'a été trouvé."; - - // Assurez-vous de masquer les conteneurs d'articles - $('#articleContainer1').addClass('hidden'); - $('#articleContainer2').addClass('hidden'); - } - - }); - }); - -}); - -function checkIfAllInfoAvailable(response) { - // Vérifiez si response.articleInfo1 contient toutes les informations nécessaires - const articleInfo1 = response.articleInfo1; - if (!articleInfo1) { - return false; // Si articleInfo1 est absent, retournez false - } - // Ajoutez ici des vérifications spécifiques pour les propriétés nécessaires dans articleInfo1 - if (!articleInfo1.title || !articleInfo1.url || !articleInfo1.extract || !articleInfo1.lastEdit) { - return false; // Si l'une des propriétés nécessaires est absente, retournez false - } - - // Vérifiez si response.articleInfo2 contient toutes les informations nécessaires - const articleInfo2 = response.articleInfo2; - if (!articleInfo2) { - return false; // Si articleInfo2 est absent, retournez false - } - // Ajoutez ici des vérifications spécifiques pour les propriétés nécessaires dans articleInfo2 - if (!articleInfo2.title || !articleInfo2.url || !articleInfo2.extract || !articleInfo2.lastEdit) { - return false; // Si l'une des propriétés nécessaires est absente, retournez false - } - - // Si toutes les vérifications sont passées, cela signifie que toutes les informations nécessaires sont disponibles - return true; -} - -// === SMOOTH SCROLL ~(^^)~ - -// Fait scroll jusqu'au formulaire de comparaison -$(document).ready(function () { - // Sélectionnez le lien par son ID - $('#letzgooo').click(function (e) { - e.preventDefault(); // Empêchez le comportement de clic par défaut - - $('html, body').animate({ - scrollTop: $('#comparaison').offset().top - }, 1000); // 1000 millisecondes (1 seconde) pour l'animation - }); -}); - - - - diff --git a/app-rappaurio/public/stylesheets/style.css b/app-rappaurio/public/stylesheets/style.css deleted file mode 100644 index f35fe85..0000000 --- a/app-rappaurio/public/stylesheets/style.css +++ /dev/null @@ -1,3867 +0,0 @@ -/*!***************************************************************************************************************!*\ -!*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/css/style.css ***! -\***************************************************************************************************************/ -@import "https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"; - -/*!***********************************************************************************************************************************************!*\ -!*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/glightbox/dist/css/glightbox.min.css ***! -\***********************************************************************************************************************************************/ -.glightbox-container { - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - z-index: 999999 !important; - overflow: hidden; - touch-action: none; - -webkit-text-size-adjust: 100%; - -moz-text-size-adjust: 100%; - text-size-adjust: 100%; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - outline: 0 -} - -.glightbox-container.inactive { - display: none -} - -.glightbox-container .gcontainer { - position: relative; - width: 100%; - height: 100%; - z-index: 9999; - overflow: hidden -} - -.glightbox-container .gslider { - transition: transform .4s ease; - height: 100%; - left: 0; - top: 0; - width: 100%; - position: relative; - overflow: hidden; - display: flex !important; - justify-content: center; - align-items: center; - transform: translate3d(0, 0, 0) -} - -.glightbox-container .gslide { - width: 100%; - position: absolute; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - display: flex; - align-items: center; - justify-content: center; - opacity: 0 -} - -.glightbox-container .gslide.current { - opacity: 1; - z-index: 99999; - position: relative -} - -.glightbox-container .gslide.prev { - opacity: 1; - z-index: 9999 -} - -.glightbox-container .gslide-inner-content { - width: 100% -} - -.glightbox-container .ginner-container { - position: relative; - width: 100%; - display: flex; - justify-content: center; - flex-direction: column; - max-width: 100%; - margin: auto; - height: 100vh -} - -.glightbox-container .ginner-container.gvideo-container { - width: 100% -} - -.glightbox-container .ginner-container.desc-bottom, -.glightbox-container .ginner-container.desc-top { - flex-direction: column -} - -.glightbox-container .ginner-container.desc-left, -.glightbox-container .ginner-container.desc-right { - max-width: 100% !important -} - -.gslide iframe, -.gslide video { - outline: 0 !important; - border: none; - min-height: 165px; - -webkit-overflow-scrolling: touch; - touch-action: auto -} - -.gslide:not(.current) { - pointer-events: none -} - -.gslide-image { - align-items: center -} - -.gslide-image img { - max-height: 100vh; - display: block; - padding: 0; - float: none; - outline: 0; - border: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - max-width: 100vw; - width: auto; - height: auto; - -o-object-fit: cover; - object-fit: cover; - touch-action: none; - margin: auto; - min-width: 200px -} - -.desc-bottom .gslide-image img, -.desc-top .gslide-image img { - width: auto -} - -.desc-left .gslide-image img, -.desc-right .gslide-image img { - width: auto; - max-width: 100% -} - -.gslide-image img.zoomable { - position: relative -} - -.gslide-image img.dragging { - cursor: grabbing !important; - transition: none -} - -.gslide-video { - position: relative; - max-width: 100vh; - width: 100% !important -} - -.gslide-video .plyr__poster-enabled.plyr--loading .plyr__poster { - display: none -} - -.gslide-video .gvideo-wrapper { - width: 100%; - margin: auto -} - -.gslide-video::before { - content: ''; - position: absolute; - width: 100%; - height: 100%; - background: rgba(255, 0, 0, .34); - display: none -} - -.gslide-video.playing::before { - display: none -} - -.gslide-video.fullscreen { - max-width: 100% !important; - min-width: 100%; - height: 75vh -} - -.gslide-video.fullscreen video { - max-width: 100% !important; - width: 100% !important -} - -.gslide-inline { - background: #fff; - text-align: left; - max-height: calc(100vh - 40px); - overflow: auto; - max-width: 100%; - margin: auto -} - -.gslide-inline .ginlined-content { - padding: 20px; - width: 100% -} - -.gslide-inline .dragging { - cursor: grabbing !important; - transition: none -} - -.ginlined-content { - overflow: auto; - display: block !important; - opacity: 1 -} - -.gslide-external { - display: flex; - width: 100%; - min-width: 100%; - background: #fff; - padding: 0; - overflow: auto; - max-height: 75vh; - height: 100% -} - -.gslide-media { - display: flex; - width: auto -} - -.zoomed .gslide-media { - box-shadow: none !important -} - -.desc-bottom .gslide-media, -.desc-top .gslide-media { - margin: 0 auto; - flex-direction: column -} - -.gslide-description { - position: relative; - flex: 1 0 100% -} - -.gslide-description.description-left, -.gslide-description.description-right { - max-width: 100% -} - -.gslide-description.description-bottom, -.gslide-description.description-top { - margin: 0 auto; - width: 100% -} - -.gslide-description p { - margin-bottom: 12px -} - -.gslide-description p:last-child { - margin-bottom: 0 -} - -.zoomed .gslide-description { - display: none -} - -.glightbox-button-hidden { - display: none -} - -.glightbox-mobile .glightbox-container .gslide-description { - height: auto !important; - width: 100%; - position: absolute; - bottom: 0; - padding: 19px 11px; - max-width: 100vw !important; - order: 2 !important; - max-height: 78vh; - overflow: auto !important; - background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .75) 100%); - transition: opacity .3s linear; - padding-bottom: 50px -} - -.glightbox-mobile .glightbox-container .gslide-title { - color: #fff; - font-size: 1em -} - -.glightbox-mobile .glightbox-container .gslide-desc { - color: #a1a1a1 -} - -.glightbox-mobile .glightbox-container .gslide-desc a { - color: #fff; - font-weight: 700 -} - -.glightbox-mobile .glightbox-container .gslide-desc * { - color: inherit -} - -.glightbox-mobile .glightbox-container .gslide-desc .desc-more { - color: #fff; - opacity: .4 -} - -.gdesc-open .gslide-media { - transition: opacity .5s ease; - opacity: .4 -} - -.gdesc-open .gdesc-inner { - padding-bottom: 30px -} - -.gdesc-closed .gslide-media { - transition: opacity .5s ease; - opacity: 1 -} - -.greset { - transition: all .3s ease -} - -.gabsolute { - position: absolute -} - -.grelative { - position: relative -} - -.glightbox-desc { - display: none !important -} - -.glightbox-open { - overflow: hidden -} - -.gloader { - height: 25px; - width: 25px; - animation: lightboxLoader .8s infinite linear; - border: 2px solid #fff; - border-right-color: transparent; - border-radius: 50%; - position: absolute; - display: block; - z-index: 9999; - left: 0; - right: 0; - margin: 0 auto; - top: 47% -} - -.goverlay { - width: 100%; - height: calc(100vh + 1px); - position: fixed; - top: -1px; - left: 0; - background: #000; - will-change: opacity -} - -.glightbox-mobile .goverlay { - background: #000 -} - -.gclose, -.gnext, -.gprev { - z-index: 99999; - cursor: pointer; - width: 26px; - height: 44px; - border: none; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column -} - -.gclose svg, -.gnext svg, -.gprev svg { - display: block; - width: 25px; - height: auto; - margin: 0; - padding: 0 -} - -.gclose.disabled, -.gnext.disabled, -.gprev.disabled { - opacity: .1 -} - -.gclose .garrow, -.gnext .garrow, -.gprev .garrow { - stroke: #fff -} - -.gbtn.focused { - outline: 2px solid #0f3d81 -} - -iframe.wait-autoplay { - opacity: 0 -} - -.glightbox-closing .gclose, -.glightbox-closing .gnext, -.glightbox-closing .gprev { - opacity: 0 !important -} - -.glightbox-clean .gslide-description { - background: #fff -} - -.glightbox-clean .gdesc-inner { - padding: 22px 20px -} - -.glightbox-clean .gslide-title { - font-size: 1em; - font-weight: 400; - font-family: arial; - color: #000; - margin-bottom: 19px; - line-height: 1.4em -} - -.glightbox-clean .gslide-desc { - font-size: .86em; - margin-bottom: 0; - font-family: arial; - line-height: 1.4em -} - -.glightbox-clean .gslide-video { - background: #000 -} - -.glightbox-clean .gclose, -.glightbox-clean .gnext, -.glightbox-clean .gprev { - background-color: rgba(0, 0, 0, .75); - border-radius: 4px -} - -.glightbox-clean .gclose path, -.glightbox-clean .gnext path, -.glightbox-clean .gprev path { - fill: #fff -} - -.glightbox-clean .gprev { - position: absolute; - top: -100%; - left: 30px; - width: 40px; - height: 50px -} - -.glightbox-clean .gnext { - position: absolute; - top: -100%; - right: 30px; - width: 40px; - height: 50px -} - -.glightbox-clean .gclose { - width: 35px; - height: 35px; - top: 15px; - right: 10px; - position: absolute -} - -.glightbox-clean .gclose svg { - width: 18px; - height: auto -} - -.glightbox-clean .gclose:hover { - opacity: 1 -} - -.gfadeIn { - animation: gfadeIn .5s ease -} - -.gfadeOut { - animation: gfadeOut .5s ease -} - -.gslideOutLeft { - animation: gslideOutLeft .3s ease -} - -.gslideInLeft { - animation: gslideInLeft .3s ease -} - -.gslideOutRight { - animation: gslideOutRight .3s ease -} - -.gslideInRight { - animation: gslideInRight .3s ease -} - -.gzoomIn { - animation: gzoomIn .5s ease -} - -.gzoomOut { - animation: gzoomOut .5s ease -} - -@keyframes lightboxLoader { - 0% { - transform: rotate(0) - } - - 100% { - transform: rotate(360deg) - } -} - -@keyframes gfadeIn { - from { - opacity: 0 - } - - to { - opacity: 1 - } -} - -@keyframes gfadeOut { - from { - opacity: 1 - } - - to { - opacity: 0 - } -} - -@keyframes gslideInLeft { - from { - opacity: 0; - transform: translate3d(-60%, 0, 0) - } - - to { - visibility: visible; - transform: translate3d(0, 0, 0); - opacity: 1 - } -} - -@keyframes gslideOutLeft { - from { - opacity: 1; - visibility: visible; - transform: translate3d(0, 0, 0) - } - - to { - transform: translate3d(-60%, 0, 0); - opacity: 0; - visibility: hidden - } -} - -@keyframes gslideInRight { - from { - opacity: 0; - visibility: visible; - transform: translate3d(60%, 0, 0) - } - - to { - transform: translate3d(0, 0, 0); - opacity: 1 - } -} - -@keyframes gslideOutRight { - from { - opacity: 1; - visibility: visible; - transform: translate3d(0, 0, 0) - } - - to { - transform: translate3d(60%, 0, 0); - opacity: 0 - } -} - -@keyframes gzoomIn { - from { - opacity: 0; - transform: scale3d(.3, .3, .3) - } - - to { - opacity: 1 - } -} - -@keyframes gzoomOut { - from { - opacity: 1 - } - - 50% { - opacity: 0; - transform: scale3d(.3, .3, .3) - } - - to { - opacity: 0 - } -} - -@media(min-width:769px) { - .glightbox-container .ginner-container { - width: auto; - height: auto; - flex-direction: row - } - - .glightbox-container .ginner-container.desc-top .gslide-description { - order: 0 - } - - .glightbox-container .ginner-container.desc-top .gslide-image, - .glightbox-container .ginner-container.desc-top .gslide-image img { - order: 1 - } - - .glightbox-container .ginner-container.desc-left .gslide-description { - order: 0 - } - - .glightbox-container .ginner-container.desc-left .gslide-image { - order: 1 - } - - .gslide-image img { - max-height: 97vh; - max-width: 100% - } - - .gslide-image img.zoomable { - cursor: zoom-in - } - - .zoomed .gslide-image img.zoomable { - cursor: grab - } - - .gslide-inline { - max-height: 95vh - } - - .gslide-external { - max-height: 100vh - } - - .gslide-description.description-left, - .gslide-description.description-right { - max-width: 275px - } - - .glightbox-open { - height: auto - } - - .goverlay { - background: rgba(0, 0, 0, .92) - } - - .glightbox-clean .gslide-media { - box-shadow: 1px 2px 9px 0 rgba(0, 0, 0, .65) - } - - .glightbox-clean .description-left .gdesc-inner, - .glightbox-clean .description-right .gdesc-inner { - position: absolute; - height: 100%; - overflow-y: auto - } - - .glightbox-clean .gclose, - .glightbox-clean .gnext, - .glightbox-clean .gprev { - background-color: rgba(0, 0, 0, .32) - } - - .glightbox-clean .gclose:hover, - .glightbox-clean .gnext:hover, - .glightbox-clean .gprev:hover { - background-color: rgba(0, 0, 0, .7) - } - - .glightbox-clean .gprev { - top: 45% - } - - .glightbox-clean .gnext { - top: 45% - } -} - -@media(min-width:992px) { - .glightbox-clean .gclose { - opacity: .7; - right: 20px - } -} - -@media screen and (max-height:420px) { - .goverlay { - background: #000 - } -} - -/*!*****************************************************************************************************************!*\ -!*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/css/animate.css ***! -\*****************************************************************************************************************/ -@charset "UTF-8"; - -/*!* animate.css -https://daneden.github.io/animate.css/ -* Version - 3.7.2 -* Licensed under the MIT license - http://opensource.org/licenses/MIT -* -* Copyright (c) 2019 Daniel Eden*/ -@keyframes fadeIn { - from { - opacity: 0 - } - - to { - opacity: 1 - } -} - -.fadeIn { - animation-name: fadeIn -} - -@keyframes fadeInDown { - from { - opacity: 0; - transform: translate3d(0, -20px, 0) - } - - to { - opacity: 1; - transform: translate3d(0, 0, 0) - } -} - -.fadeInDown { - animation-name: fadeInDown -} - -@keyframes fadeInLeft { - from { - opacity: 0; - transform: translate3d(-20px, 0, 0) - } - - to { - opacity: 1; - transform: translate3d(0, 0, 0) - } -} - -.fadeInLeft { - animation-name: fadeInLeft -} - -@keyframes fadeInRight { - from { - opacity: 0; - transform: translate3d(20px, 0, 0) - } - - to { - opacity: 1; - transform: translate3d(0, 0, 0) - } -} - -.fadeInRight { - animation-name: fadeInRight -} - -@keyframes fadeInUp { - from { - opacity: 0; - transform: translate3d(0, 20px, 0) - } - - to { - opacity: 1; - transform: translate3d(0, 0, 0) - } -} - -.fadeInUp { - animation-name: fadeInUp -} - -.animated { - animation-duration: 1s; - animation-fill-mode: both -} - -.animated.infinite { - animation-iteration-count: infinite -} - -.animated.delay-1s { - animation-delay: 1s -} - -.animated.delay-2s { - animation-delay: 2s -} - -.animated.delay-3s { - animation-delay: 3s -} - -.animated.delay-4s { - animation-delay: 4s -} - -.animated.delay-5s { - animation-delay: 5s -} - -.animated.fast { - animation-duration: 800ms -} - -.animated.faster { - animation-duration: 500ms -} - -.animated.slow { - animation-duration: 2s -} - -.animated.slower { - animation-duration: 3s -} - -@media(print), -(prefers-reduced-motion:reduce) { - .animated { - animation-duration: 1ms !important; - transition-duration: 1ms !important; - animation-iteration-count: 1 !important - } -} - -/*!*******************************************************************************************************************!*\ -!*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/css/style.css (1) ***! -\*******************************************************************************************************************/ -*, -::before, -::after { - box-sizing: border-box; - border-width: 0; - border-style: solid; - border-color: currentColor -} - -::before, -::after { - --tw-content: '' -} - -html { - line-height: 1.5; - -webkit-text-size-adjust: 100%; - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, segoe ui, Roboto, helvetica neue, Arial, noto sans, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol, noto color emoji -} - -body { - margin: 0; - line-height: inherit -} - -hr { - height: 0; - color: inherit; - border-top-width: 1px -} - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit -} - -a { - color: inherit; - text-decoration: inherit -} - -b, -strong { - font-weight: bolder -} - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, liberation mono, courier new, monospace; - font-size: 1em -} - -small { - font-size: 80% -} - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline -} - -sub { - bottom: -.25em -} - -sup { - top: -.5em -} - -table { - text-indent: 0; - border-color: inherit; - border-collapse: collapse; - width: 100%; - color: #ffffffbe; - font-family: Arial, sans-serif; - font-size: 14px; - text-align: left; - border-radius: 10px; - border-bottom: 4px solid #1d214400; - overflow: hidden; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); - margin: auto; - margin-top: 50px; - margin-bottom: 50px; -} - -table th { - background-color: #313d46; - padding-left: 8px; - color: #ffffff; - font-weight: bold; - border-top: 1px solid #ffffff00; - border-bottom: 1px solid #1D2144; - border-width: 10%; - text-transform: uppercase; - padding: 10px; -} - - -table td { - background-color: #3b4857; - padding: 10px; - border-bottom: 1px solid #1D2144; - font-weight: bold; - width: 65%; - white-space: pre-wrap; - word-break: break-word; - overflow-wrap: break-word; -} - - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - font-size: 100%; - font-weight: inherit; - line-height: inherit; - color: inherit; - margin: 0; - padding: 0 -} - -button, -select { - text-transform: none -} - -button, -[type=button], -[type=reset], -[type=submit] { - -webkit-appearance: button; - background-color: transparent; - background-image: none -} - -:-moz-focusring { - outline: auto -} - -:-moz-ui-invalid { - box-shadow: none -} - -progress { - vertical-align: baseline -} - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto -} - -[type=search] { - -webkit-appearance: textfield; - outline-offset: -2px -} - -::-webkit-search-decoration { - -webkit-appearance: none -} - -::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit -} - -summary { - display: list-item -} - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0 -} - -fieldset { - margin: 0; - padding: 0 -} - -legend { - padding: 0 -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0 -} - -textarea { - resize: vertical -} - -input::-moz-placeholder, -textarea::-moz-placeholder { - opacity: 1; - color: #9ca3af -} - -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { - opacity: 1; - color: #9ca3af -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - color: #9ca3af -} - -button, -[role=button] { - cursor: pointer -} - -:disabled { - cursor: default -} - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - vertical-align: middle -} - -img, -video { - max-width: 100%; - height: auto -} - -body { - font-family: inter, sans-serif -} - -*, -::before, -::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: -} - -.container { - width: 100%; - margin-right: auto; - margin-left: auto; - padding-right: 1rem; - padding-left: 1rem -} - -@media(min-width:540px) { - .container { - max-width: 540px - } -} - -@media(min-width:720px) { - .container { - max-width: 720px - } -} - -@media(min-width:960px) { - .container { - max-width: 960px - } -} - -@media(min-width:1140px) { - .container { - max-width: 1140px - } -} - -@media(min-width:1320px) { - .container { - max-width: 1320px - } -} - -input[type=checkbox]:checked~label span svg { - display: inline-flex -} - -.sticky { - position: fixed !important; - z-index: 9999 !important; - background-color: rgb(255 255 255/var(--tw-bg-opacity)) !important; - --tw-bg-opacity: 0.8 !important; - transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter !important; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter !important; - transition-timing-function: cubic-bezier(.4, 0, .2, 1) !important; - transition-duration: 150ms !important -} - -.dark .sticky { - background-color: rgb(74 108 247/var(--tw-bg-opacity)) !important; - --tw-bg-opacity: 0.2 !important -} - -.sticky { - -webkit-backdrop-filter: blur(5px); - backdrop-filter: blur(5px); - box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, .1) -} - -.sticky .header-logo { - padding-top: 1.25rem; - padding-bottom: 1.25rem -} - -@media(min-width:960px) { - .sticky .header-logo { - padding-top: .5rem; - padding-bottom: .5rem - } -} - -.sticky .menu-scroll.active { - opacity: .7 -} - -.navbarTogglerActive>span:nth-child(1) { - top: 7px; - --tw-rotate: 45deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.navbarTogglerActive>span:nth-child(2) { - opacity: 0 -} - -.navbarTogglerActive>span:nth-child(3) { - top: -8px; - --tw-rotate: 135deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -input#togglePlan:checked~.dot { - --tw-translate-x: 100%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -input#checkboxLabel:checked~.box span { - opacity: 1 -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0 -} - -.fixed { - position: fixed -} - -.absolute { - position: absolute -} - -.relative { - position: relative -} - -.sticky { - position: sticky -} - -.top-0 { - top: 0 -} - -.left-0 { - left: 0 -} - -.right-4 { - right: 1rem -} - -.top-1\/2 { - top: 50% -} - -.top-full { - top: 100% -} - -.bottom-0 { - bottom: 0 -} - -.right-0 { - right: 0 -} - -.top-14 { - top: 3.5rem -} - -.bottom-24 { - bottom: 6rem -} - -.bottom-8 { - bottom: 2rem -} - -.right-8 { - right: 2rem -} - -.left-auto { - left: auto -} - -.top-6 { - top: 1.5rem -} - -.right-6 { - right: 1.5rem -} - -.top-5 { - top: 1.25rem -} - -.bottom-5 { - bottom: 1.25rem -} - -.top-\[-4px\] { - top: -4px -} - -.z-40 { - z-index: 40 -} - -.z-10 { - z-index: 10 -} - -.z-\[-1\] { - z-index: -1 -} - -.z-\[999\] { - z-index: 999 -} - -.m-0 { - margin: 0 -} - -.mx-\[-16px\] { - margin-left: -16px; - margin-right: -16px -} - -.my-\[6px\] { - margin-top: 6px; - margin-bottom: 6px -} - -.mx-8 { - margin-left: 2rem; - margin-right: 2rem -} - -.mx-auto { - margin-left: auto; - margin-right: auto -} - -.-mx-3 { - margin-left: -.75rem; - margin-right: -.75rem -} - -.mx-1 { - margin-left: .25rem; - margin-right: .25rem -} - -.mx-2 { - margin-left: .5rem; - margin-right: .5rem -} - -.mx-3 { - margin-left: .75rem; - margin-right: .75rem -} - -.mx-\[-12px\] { - margin-left: -12px; - margin-right: -12px -} - -.mb-9 { - margin-bottom: 2.25rem -} - -.mb-4 { - margin-bottom: 1rem -} - -.mb-10 { - margin-bottom: 2.5rem -} - -.mb-16 { - margin-bottom: 4rem -} - -.mb-8 { - margin-bottom: 2rem -} - -.mr-6 { - margin-right: 1.5rem -} - -.mt-\[6px\] { - margin-top: 6px -} - -.mb-12 { - margin-bottom: 3rem -} - -.mb-5 { - margin-bottom: 1.25rem -} - -.mr-3 { - margin-right: .75rem -} - -.mb-6 { - margin-bottom: 1.5rem -} - -.mb-11 { - margin-bottom: 2.75rem -} - -.mr-4 { - margin-right: 1rem -} - -.mb-1 { - margin-bottom: .25rem -} - -.mr-10 { - margin-right: 2.5rem -} - -.mr-5 { - margin-right: 1.25rem -} - -.mb-2 { - margin-bottom: .5rem -} - -.mb-3 { - margin-bottom: .75rem -} - -.ml-3 { - margin-left: .75rem -} - -.mt-12 { - margin-top: 3rem -} - -.mb-\[6px\] { - margin-bottom: 6px -} - -.mb-\[100px\] { - margin-bottom: 100px -} - -.mb-\[70px\] { - margin-bottom: 70px -} - -.mb-20 { - margin-bottom: 5rem -} - -.mr-1 { - margin-right: .25rem -} - -.ml-4 { - margin-left: 1rem -} - -.mb-7 { - margin-bottom: 1.75rem -} - -.mt-1 { - margin-top: .25rem -} - -.block { - display: block -} - -.inline-block { - display: inline-block -} - -.flex { - display: flex -} - -.inline-flex { - display: inline-flex -} - -.hidden { - display: none -} - -.h-\[2px\] { - height: 2px -} - -.h-9 { - height: 2.25rem -} - -.h-5 { - height: 1.25rem -} - -.h-10 { - height: 2.5rem -} - -.h-3 { - height: .75rem -} - -.h-2 { - height: .5rem -} - -.h-\[30px\] { - height: 30px -} - -.h-\[40px\] { - height: 40px -} - -.h-full { - height: 100% -} - -.h-\[50px\] { - height: 50px -} - -.h-\[75px\] { - height: 75px -} - -.h-\[70px\] { - height: 70px -} - -.h-7 { - height: 1.75rem -} - -.h-4 { - height: 1rem -} - -.h-\[18px\] { - height: 18px -} - -.h-\[1px\] { - height: 1px -} - -.w-full { - width: 100% -} - -.w-60 { - width: 15rem -} - -.w-\[30px\] { - width: 30px -} - -.w-\[250px\] { - width: 250px -} - -.w-9 { - width: 2.25rem -} - -.w-5 { - width: 1.25rem -} - -.w-10 { - width: 2.5rem -} - -.w-3 { - width: .75rem -} - -.w-2 { - width: .5rem -} - -.w-\[70px\] { - width: 70px -} - -.w-14 { - width: 3.5rem -} - -.w-7 { - width: 1.75rem -} - -.w-4 { - width: 1rem -} - -.min-w-\[36px\] { - min-width: 36px -} - -.max-w-full { - max-width: 100% -} - -.max-w-\[250px\] { - max-width: 250px -} - -.max-w-\[530px\] { - max-width: 530px -} - -.max-w-\[360px\] { - max-width: 360px -} - -.max-w-\[570px\] { - max-width: 570px -} - -.max-w-\[470px\] { - max-width: 470px -} - -.max-w-\[40px\] { - max-width: 40px -} - -.max-w-\[50px\] { - max-width: 50px -} - -.max-w-\[85px\] { - max-width: 85px -} - -.max-w-\[770px\] { - max-width: 770px -} - -.max-w-\[655px\] { - max-width: 655px -} - -.max-w-\[18px\] { - max-width: 18px -} - -.max-w-\[500px\] { - max-width: 500px -} - -.max-w-\[70px\] { - max-width: 70px -} - -.max-w-\[60px\] { - max-width: 60px -} - -.translate-y-\[-50\%\] { - --tw-translate-y: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.rotate-45 { - --tw-rotate: 45deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.rotate-180 { - --tw-rotate: 180deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.transform { - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.cursor-pointer { - cursor: pointer -} - -.cursor-not-allowed { - cursor: not-allowed -} - -.select-none { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none -} - -.resize-none { - resize: none -} - -.list-inside { - list-style-position: inside -} - -.list-disc { - list-style-type: disc -} - -.flex-wrap { - flex-wrap: wrap -} - -.items-center { - align-items: center -} - -.justify-end { - justify-content: flex-end -} - -.justify-center { - justify-content: center -} - -.justify-between { - justify-content: space-between -} - -.overflow-hidden { - overflow: hidden -} - -.rounded-lg { - border-radius: .5rem -} - -.rounded-md { - border-radius: .375rem -} - -.rounded { - border-radius: .25rem -} - -.rounded-full { - border-radius: 9999px -} - -.border { - border-width: 1px -} - -.border-t { - border-top-width: 1px -} - -.border-l { - border-left-width: 1px -} - -.border-t-2 { - border-top-width: 2px -} - -.border-r-2 { - border-right-width: 2px -} - -.border-b { - border-bottom-width: 1px -} - -.border-r { - border-right-width: 1px -} - -.border-white { - --tw-border-opacity: 1; - border-color: rgb(255 255 255/var(--tw-border-opacity)) -} - -.border-body-color { - --tw-border-opacity: 1; - border-color: rgb(149 156 177/var(--tw-border-opacity)) -} - -.border-transparent { - border-color: transparent -} - -.border-primary { - --tw-border-opacity: 1; - border-color: rgb(74 108 247/var(--tw-border-opacity)) -} - -.border-opacity-\[\.15\] { - --tw-border-opacity: .15 -} - -.border-opacity-10 { - --tw-border-opacity: 0.1 -} - -.border-opacity-25 { - --tw-border-opacity: 0.25 -} - -.border-opacity-20 { - --tw-border-opacity: 0.2 -} - -.bg-transparent { - background-color: transparent -} - -.bg-dark { - --tw-bg-opacity: 1; - background-color: rgb(29 33 68/var(--tw-bg-opacity)) -} - -.bg-white { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255/var(--tw-bg-opacity)) -} - -.bg-primary { - --tw-bg-opacity: 1; - background-color: rgb(74 108 247/var(--tw-bg-opacity)) -} - -.bg-body-color { - --tw-bg-opacity: 1; - background-color: rgb(149 156 177/var(--tw-bg-opacity)) -} - -.bg-black { - --tw-bg-opacity: 1; - background-color: rgb(9 14 52/var(--tw-bg-opacity)) -} - -.bg-\[\#1D2144\] { - --tw-bg-opacity: 1; - background-color: rgb(29 33 68/var(--tw-bg-opacity)) -} - -.bg-opacity-5 { - --tw-bg-opacity: 0.05 -} - -.bg-opacity-10 { - --tw-bg-opacity: 0.1 -} - -.bg-opacity-\[15\%\] { - --tw-bg-opacity: 15% -} - -.bg-opacity-\[3\%\] { - --tw-bg-opacity: 3% -} - -.bg-opacity-75 { - --tw-bg-opacity: 0.75 -} - -.fill-current { - fill: currentColor -} - -.stroke-current { - stroke: currentColor -} - -.object-cover { - -o-object-fit: cover; - object-fit: cover -} - -.object-center { - -o-object-position: center; - object-position: center -} - -.p-4 { - padding: 1rem -} - -.p-8 { - padding: 2rem -} - -.p-6 { - padding: 1.5rem -} - -.p-11 { - padding: 2.75rem -} - -.p-3 { - padding: .75rem -} - -.p-12 { - padding: 3rem -} - -.px-4 { - padding-left: 1rem; - padding-right: 1rem -} - -.py-8 { - padding-top: 2rem; - padding-bottom: 2rem -} - -.px-3 { - padding-left: .75rem; - padding-right: .75rem -} - -.py-\[6px\] { - padding-top: 6px; - padding-bottom: 6px -} - -.py-5 { - padding-top: 1.25rem; - padding-bottom: 1.25rem -} - -.py-2 { - padding-top: .5rem; - padding-bottom: .5rem -} - -.py-\[10px\] { - padding-top: 10px; - padding-bottom: 10px -} - -.py-3 { - padding-top: .75rem; - padding-bottom: .75rem -} - -.px-7 { - padding-left: 1.75rem; - padding-right: 1.75rem -} - -.px-8 { - padding-left: 2rem; - padding-right: 2rem -} - -.px-5 { - padding-left: 1.25rem; - padding-right: 1.25rem -} - -.py-4 { - padding-top: 1rem; - padding-bottom: 1rem -} - -.py-6 { - padding-top: 1.5rem; - padding-bottom: 1.5rem -} - -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem -} - -.px-9 { - padding-left: 2.25rem; - padding-right: 2.25rem -} - -.py-\[120px\] { - padding-top: 120px; - padding-bottom: 120px -} - -.py-\[15px\] { - padding-top: 15px; - padding-bottom: 15px -} - -.py-10 { - padding-top: 2.5rem; - padding-bottom: 2.5rem -} - -.pr-16 { - padding-right: 4rem -} - -.pt-\[180px\] { - padding-top: 180px -} - -.pb-\[120px\] { - padding-bottom: 120px -} - -.pt-\[100px\] { - padding-top: 100px -} - -.pt-\[150px\] { - padding-top: 150px -} - -.pr-1 { - padding-right: .25rem -} - -.pt-\[120px\] { - padding-top: 120px -} - -.pb-\[100px\] { - padding-bottom: 100px -} - -.pb-4 { - padding-bottom: 1rem -} - -.pb-6 { - padding-bottom: 1.5rem -} - -.pr-5 { - padding-right: 1.25rem -} - -.pt-8 { - padding-top: 2rem -} - -.pb-11 { - padding-bottom: 2.75rem -} - -.pb-20 { - padding-bottom: 5rem -} - -.pb-\[110px\] { - padding-bottom: 110px -} - -.pb-\[50px\] { - padding-bottom: 50px -} - -.pr-\[10px\] { - padding-right: 10px -} - -.pt-16 { - padding-top: 4rem -} - -.pb-8 { - padding-bottom: 2rem -} - -.text-center { - text-align: center -} - -.text-alert{ - color: #ff0000; - background-color: #fd00001c; -} - -.text-info{ - color: #148f33; - background-color: #14eb0027; -} - -.bienvenu-msg{ - padding: 20px; - width: 40%; - margin-bottom: 60px; - font-weight: bold; - font-size:larger; - min-width: 160px; -} - -.mt-6{ - margin-top: 30px; -} - -.text-end { - text-align: end -} - -.text-base { - font-size: 1rem; - line-height: 1.5rem -} - -.text-sm { - font-size: .875rem; - line-height: 1.25rem -} - -.text-3xl { - font-size: 1.875rem; - line-height: 2.25rem -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem -} - -.text-2xl { - font-size: 1.5rem; - line-height: 2rem -} - -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem -} - -.text-xs { - font-size: .75rem; - line-height: 1rem -} - -.font-bold { - font-weight: 700 -} - -.font-medium { - font-weight: 500 -} - -.font-semibold { - font-weight: 600 -} - -.italic { - font-style: italic -} - -.leading-relaxed { - line-height: 1.625 -} - -.leading-tight { - line-height: 1.25 -} - -.leading-snug { - line-height: 1.375 -} - -.text-dark { - --tw-text-opacity: 1; - color: rgb(29 33 68/var(--tw-text-opacity)) -} - -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255/var(--tw-text-opacity)) -} - -.text-black { - --tw-text-opacity: 1; - color: rgb(9 14 52/var(--tw-text-opacity)) -} - -.text-body-color { - --tw-text-opacity: 1; - color: rgb(149 156 177/var(--tw-text-opacity)) -} - -.text-\[\#CED3F6\] { - --tw-text-opacity: 1; - color: rgb(206 211 246/var(--tw-text-opacity)) -} - -.text-primary { - --tw-text-opacity: 1; - color: rgb(74 108 247/var(--tw-text-opacity)) -} - -.text-yellow { - --tw-text-opacity: 1; - color: rgb(251 176 64/var(--tw-text-opacity)) -} - -.underline { - -webkit-text-decoration-line: underline; - text-decoration-line: underline -} - -.placeholder-body-color::-moz-placeholder { - --tw-placeholder-opacity: 1; - color: rgb(149 156 177/var(--tw-placeholder-opacity)) -} - -.placeholder-body-color:-ms-input-placeholder { - --tw-placeholder-opacity: 1; - color: rgb(149 156 177/var(--tw-placeholder-opacity)) -} - -.placeholder-body-color::placeholder { - --tw-placeholder-opacity: 1; - color: rgb(149 156 177/var(--tw-placeholder-opacity)) -} - -.opacity-70 { - opacity: .7 -} - -.opacity-0 { - opacity: 0 -} - -.shadow-lg { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-signUp { - --tw-shadow: 0px 5px 10px rgba(4, 10, 34, 0.2); - --tw-shadow-colored: 0px 5px 10px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-md { - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-one { - --tw-shadow: 0px 2px 3px rgba(7, 7, 77, 0.05); - --tw-shadow-colored: 0px 2px 3px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-inner { - --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.outline-none { - outline: 2px solid transparent; - outline-offset: 2px -} - -.ring-primary { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(74 108 247 / var(--tw-ring-opacity)) -} - -.grayscale { - --tw-grayscale: grayscale(100%); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) -} - -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) -} - -.transition-\[top\] { - transition-property: top; - transition-timing-function: cubic-bezier(.4, 0, .2, 1); - transition-duration: 150ms -} - -.transition { - transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(.4, 0, .2, 1); - transition-duration: 150ms -} - -.duration-300 { - transition-duration: 300ms -} - -.ease-in-out { - transition-timing-function: cubic-bezier(.4, 0, .2, 1) -} - -.after\:absolute::after { - content: var(--tw-content); - position: absolute -} - -.after\:right-1::after { - content: var(--tw-content); - right: .25rem -} - -.after\:top-1\/2::after { - content: var(--tw-content); - top: 50% -} - -.after\:mt-\[-2px\]::after { - content: var(--tw-content); - margin-top: -2px -} - -.after\:h-2::after { - content: var(--tw-content); - height: .5rem -} - -.after\:w-2::after { - content: var(--tw-content); - width: .5rem -} - -.after\:translate-y-\[-50\%\]::after { - content: var(--tw-content); - --tw-translate-y: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.after\:rotate-45::after { - content: var(--tw-content); - --tw-rotate: 45deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.after\:border-b-2::after { - content: var(--tw-content); - border-bottom-width: 2px -} - -.after\:border-r-2::after { - content: var(--tw-content); - border-right-width: 2px -} - -.after\:border-current::after { - content: var(--tw-content); - border-color: currentColor -} - -.hover\:bg-white:hover { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255/var(--tw-bg-opacity)) -} - -.hover\:bg-primary:hover { - --tw-bg-opacity: 1; - background-color: rgb(74 108 247/var(--tw-bg-opacity)) -} - -.hover\:bg-opacity-90:hover { - --tw-bg-opacity: 0.9 -} - -.hover\:bg-opacity-80:hover { - --tw-bg-opacity: 0.8 -} - -.hover\:bg-opacity-100:hover { - --tw-bg-opacity: 1 -} - -.hover\:bg-opacity-20:hover { - --tw-bg-opacity: 0.2 -} - -.hover\:text-primary:hover { - --tw-text-opacity: 1; - color: rgb(74 108 247/var(--tw-text-opacity)) -} - -.hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255/var(--tw-text-opacity)) -} - -.hover\:underline:hover { - -webkit-text-decoration-line: underline; - text-decoration-line: underline -} - -.hover\:opacity-70:hover { - opacity: .7 -} - -.hover\:opacity-100:hover { - opacity: 1 -} - -.hover\:shadow-signUp:hover { - --tw-shadow: 0px 5px 10px rgba(4, 10, 34, 0.2); - --tw-shadow-colored: 0px 5px 10px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.hover\:grayscale-0:hover { - --tw-grayscale: grayscale(0); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) -} - -.focus\:border-primary:focus { - --tw-border-opacity: 1; - border-color: rgb(74 108 247/var(--tw-border-opacity)) -} - -.focus\:border-opacity-100:focus { - --tw-border-opacity: 1 -} - -.focus\:ring-2:focus { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) -} - -.focus-visible\:shadow-none:focus-visible { - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.group:hover .group-hover\:opacity-70 { - opacity: .7 -} - -.group:hover .group-hover\:opacity-100 { - opacity: 1 -} - -.dark .dark\:block { - display: block -} - -.dark .dark\:hidden { - display: none -} - -.dark .dark\:border-white { - --tw-border-opacity: 1; - border-color: rgb(255 255 255/var(--tw-border-opacity)) -} - -.dark .dark\:border-opacity-10 { - --tw-border-opacity: 0.1 -} - -.dark .dark\:border-opacity-25 { - --tw-border-opacity: 0.25 -} - -.dark .dark\:bg-black { - --tw-bg-opacity: 1; - background-color: rgb(9 14 52/var(--tw-bg-opacity)) -} - -.dark .dark\:bg-white { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255/var(--tw-bg-opacity)) -} - -.dark .dark\:bg-dark { - --tw-bg-opacity: 1; - background-color: rgb(29 33 68/var(--tw-bg-opacity)) -} - -.dark .dark\:bg-\[\#242B51\] { - --tw-bg-opacity: 1; - background-color: rgb(36 43 81/var(--tw-bg-opacity)) -} - -.dark .dark\:bg-primary { - --tw-bg-opacity: 1; - background-color: rgb(74 108 247/var(--tw-bg-opacity)) -} - -.dark .dark\:bg-\[\#1D2144\] { - --tw-bg-opacity: 1; - background-color: rgb(29 33 68/var(--tw-bg-opacity)) -} - -.dark .dark\:bg-opacity-5 { - --tw-bg-opacity: 0.05 -} - -.dark .dark\:bg-opacity-10 { - --tw-bg-opacity: 0.1 -} - -.dark .dark\:text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255/var(--tw-text-opacity)) -} - -.dark .dark\:text-body-color { - --tw-text-opacity: 1; - color: rgb(149 156 177/var(--tw-text-opacity)) -} - -.dark .dark\:opacity-90 { - opacity: .9 -} - -.dark .dark\:opacity-60 { - opacity: .6 -} - -.dark .dark\:shadow-signUp { - --tw-shadow: 0px 5px 10px rgba(4, 10, 34, 0.2); - --tw-shadow-colored: 0px 5px 10px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.dark .dark\:hover\:bg-opacity-20:hover { - --tw-bg-opacity: 0.2 -} - -.dark .dark\:hover\:text-primary:hover { - --tw-text-opacity: 1; - color: rgb(74 108 247/var(--tw-text-opacity)) -} - -.dark .dark\:hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255/var(--tw-text-opacity)) -} - -.dark .dark\:hover\:opacity-100:hover { - opacity: 1 -} - -@media(min-width:540px) { - .sm\:mx-4 { - margin-left: 1rem; - margin-right: 1rem - } - - .sm\:ml-3 { - margin-left: .75rem - } - - .sm\:block { - display: block - } - - .sm\:flex { - display: flex - } - - .sm\:w-1\/2 { - width: 50% - } - - .sm\:justify-end { - justify-content: flex-end - } - - .sm\:p-8 { - padding: 2rem - } - - .sm\:p-11 { - padding: 2.75rem - } - - .sm\:p-\[55px\] { - padding: 55px - } - - .sm\:p-\[60px\] { - padding: 60px - } - - .sm\:px-10 { - padding-left: 2.5rem; - padding-right: 2.5rem - } - - .sm\:text-right { - text-align: right - } - - .sm\:text-4xl { - font-size: 2.25rem; - line-height: 2.5rem - } - - .sm\:text-lg { - font-size: 1.125rem; - line-height: 1.75rem - } - - .sm\:text-3xl { - font-size: 1.875rem; - line-height: 2.25rem - } - - .sm\:text-2xl { - font-size: 1.5rem; - line-height: 2rem - } - - .sm\:leading-relaxed { - line-height: 1.625 - } - - .sm\:leading-tight { - line-height: 1.25 - } -} - -@media(min-width:720px) { - .md\:mb-0 { - margin-bottom: 0 - } - - .md\:block { - display: block - } - - .md\:h-14 { - height: 3.5rem - } - - .md\:h-6 { - height: 1.5rem - } - - .md\:w-14 { - width: 3.5rem - } - - .md\:w-6 { - width: 1.5rem - } - - .md\:w-1\/2 { - width: 50% - } - - .md\:w-8\/12 { - width: 66.666667% - } - - .md\:w-4\/12 { - width: 33.333333% - } - - .md\:w-2\/3 { - width: 66.666667% - } - - .md\:justify-end { - justify-content: flex-end - } - - .md\:p-9 { - padding: 2.25rem - } - - .md\:px-9 { - padding-left: 2.25rem; - padding-right: 2.25rem - } - - .md\:py-8 { - padding-top: 2rem; - padding-bottom: 2rem - } - - .md\:px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem - } - - .md\:py-\[40px\] { - padding-top: 40px; - padding-bottom: 40px - } - - .md\:px-\[50px\] { - padding-left: 50px; - padding-right: 50px - } - - .md\:pt-\[150px\] { - padding-top: 150px - } - - .md\:pb-\[120px\] { - padding-bottom: 120px - } - - .md\:text-\[45px\] { - font-size: 45px - } - - .md\:text-5xl { - font-size: 3rem; - line-height: 1 - } - - .md\:text-xl { - font-size: 1.25rem; - line-height: 1.75rem - } - - .md\:text-lg { - font-size: 1.125rem; - line-height: 1.75rem - } - - .md\:leading-tight { - line-height: 1.25 - } - - .md\:leading-relaxed { - line-height: 1.625 - } -} - -@media(min-width:960px) { - .lg\:invisible { - visibility: hidden - } - - .lg\:static { - position: static - } - - .lg\:absolute { - position: absolute - } - - .lg\:top-\[110\%\] { - top: 110% - } - - .lg\:mr-0 { - margin-right: 0 - } - - .lg\:ml-8 { - margin-left: 2rem - } - - .lg\:mb-0 { - margin-bottom: 0 - } - - .lg\:ml-0 { - margin-left: 0 - } - - .lg\:mt-0 { - margin-top: 0 - } - - .lg\:mb-3 { - margin-bottom: .75rem - } - - .lg\:mb-5 { - margin-bottom: 1.25rem - } - - .lg\:block { - display: block - } - - .lg\:flex { - display: flex - } - - .lg\:inline-flex { - display: inline-flex - } - - .lg\:hidden { - display: none - } - - .lg\:w-full { - width: 100% - } - - .lg\:w-4\/12 { - width: 33.333333% - } - - .lg\:w-2\/12 { - width: 16.666667% - } - - .lg\:w-7\/12 { - width: 58.333333% - } - - .lg\:w-5\/12 { - width: 41.666667% - } - - .lg\:w-1\/2 { - width: 50% - } - - .lg\:w-8\/12 { - width: 66.666667% - } - - .lg\:w-1\/3 { - width: 33.333333% - } - - .lg\:max-w-full { - max-width: 100% - } - - .lg\:max-w-\[130px\] { - max-width: 130px - } - - .lg\:bg-transparent { - background-color: transparent - } - - .lg\:p-8 { - padding: 2rem - } - - .lg\:p-11 { - padding: 2.75rem - } - - .lg\:py-0 { - padding-top: 0; - padding-bottom: 0 - } - - .lg\:px-4 { - padding-left: 1rem; - padding-right: 1rem - } - - .lg\:py-6 { - padding-top: 1.5rem; - padding-bottom: 1.5rem - } - - .lg\:px-0 { - padding-left: 0; - padding-right: 0 - } - - .lg\:px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem - } - - .lg\:px-8 { - padding-left: 2rem; - padding-right: 2rem - } - - .lg\:px-5 { - padding-left: 1.25rem; - padding-right: 1.25rem - } - - .lg\:pl-0 { - padding-left: 0 - } - - .lg\:pr-4 { - padding-right: 1rem - } - - .lg\:pr-0 { - padding-right: 0 - } - - .lg\:text-left { - text-align: left - } - - .lg\:text-right { - text-align: right - } - - .lg\:text-4xl { - font-size: 2.25rem; - line-height: 2.5rem - } - - .lg\:text-xl { - font-size: 1.25rem; - line-height: 1.75rem - } - - .lg\:text-base { - font-size: 1rem; - line-height: 1.5rem - } - - .lg\:text-2xl { - font-size: 1.5rem; - line-height: 2rem - } - - .lg\:leading-tight { - line-height: 1.25 - } - - .lg\:leading-relaxed { - line-height: 1.625 - } - - .lg\:opacity-0 { - opacity: 0 - } - - .lg\:shadow-none { - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) - } - - .lg\:shadow-lg { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) - } - - .lg\:after\:right-0::after { - content: var(--tw-content); - right: 0 - } - - .group:hover .lg\:group-hover\:visible { - visibility: visible - } - - .group:hover .lg\:group-hover\:top-full { - top: 100% - } - - .dark .lg\:dark\:bg-transparent { - background-color: transparent - } -} - -@media(min-width:1140px) { - .xl\:mx-6 { - margin-left: 1.5rem; - margin-right: 1.5rem - } - - .xl\:ml-12 { - margin-left: 3rem - } - - .xl\:mr-3 { - margin-right: .75rem - } - - .xl\:mb-0 { - margin-bottom: 0 - } - - .xl\:flex { - display: flex - } - - .xl\:w-5\/12 { - width: 41.666667% - } - - .xl\:w-2\/12 { - width: 16.666667% - } - - .xl\:w-3\/12 { - width: 25% - } - - .xl\:w-1\/2 { - width: 50% - } - - .xl\:w-1\/3 { - width: 33.333333% - } - - .xl\:max-w-\[150px\] { - max-width: 150px - } - - .xl\:p-9 { - padding: 2.25rem - } - - .xl\:p-11 { - padding: 2.75rem - } - - .xl\:p-\[55px\] { - padding: 55px - } - - .xl\:p-\[50px\] { - padding: 50px - } - - .xl\:px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem - } - - .xl\:px-9 { - padding-left: 2.25rem; - padding-right: 2.25rem - } - - .xl\:py-8 { - padding-top: 2rem; - padding-bottom: 2rem - } - - .xl\:px-5 { - padding-left: 1.25rem; - padding-right: 1.25rem - } - - .xl\:px-8 { - padding-left: 2rem; - padding-right: 2rem - } - - .xl\:pr-3 { - padding-right: .75rem - } - - .xl\:pt-\[180px\] { - padding-top: 180px - } - - .xl\:pb-\[160px\] { - padding-bottom: 160px - } - - .xl\:text-\[45px\] { - font-size: 45px - } - - .xl\:text-2xl { - font-size: 1.5rem; - line-height: 2rem - } - - .xl\:text-lg { - font-size: 1.125rem; - line-height: 1.75rem - } - - .xl\:text-3xl { - font-size: 1.875rem; - line-height: 2.25rem - } - - .xl\:leading-tight { - line-height: 1.25 - } - - .xl\:leading-relaxed { - line-height: 1.625 - } -} - -@media(min-width:1320px) { - .\32xl\:mx-8 { - margin-left: 2rem; - margin-right: 2rem - } - - .\32xl\:mr-5 { - margin-right: 1.25rem - } - - .\32xl\:max-w-\[160px\] { - max-width: 160px - } - - .\32xl\:p-8 { - padding: 2rem - } - - .\32xl\:py-\[60px\] { - padding-top: 60px; - padding-bottom: 60px - } - - .\32xl\:px-\[70px\] { - padding-left: 70px; - padding-right: 70px - } - - .\32xl\:pr-5 { - padding-right: 1.25rem - } - - .\32xl\:pt-\[210px\] { - padding-top: 210px - } - - .\32xl\:pb-\[200px\] { - padding-bottom: 200px - } -} - - -@keyframes ldio-jzq166pp4c { - 0% { - transform: rotate(0) - } - - 100% { - transform: rotate(360deg) - } -} - -.ldio-jzq166pp4c div { - box-sizing: border-box !important -} - -.ldio-jzq166pp4c>div { - position: absolute; - width: 72px; - height: 72px; - top: 14px; - left: 14px; - border-radius: 50%; - border: 8px solid #000; - border-color: #6677e4 transparent #6677e4 transparent; - animation: ldio-jzq166pp4c 1.4492753623188404s linear infinite; -} - -.ldio-jzq166pp4c>div:nth-child(2) { - border-color: transparent -} - -.ldio-jzq166pp4c>div:nth-child(2) div { - position: absolute; - width: 100%; - height: 100%; - transform: rotate(45deg); -} - -.ldio-jzq166pp4c>div:nth-child(2) div:before, -.ldio-jzq166pp4c>div:nth-child(2) div:after { - content: ""; - display: block; - position: absolute; - width: 8px; - height: 8px; - top: -8px; - left: 24px; - background: #6677e4; - border-radius: 50%; - box-shadow: 0 64px 0 0 #6677e4; -} - -.ldio-jzq166pp4c>div:nth-child(2) div:after { - left: -8px; - top: 24px; - box-shadow: 64px 0 0 0 #6677e4; -} - -.loadingio-spinner-dual-ring-4e7xs5jqq4d { - width: 84px; - height: 84px; - display: inline-block; - overflow: hidden; - background: transparent; -} - -.ldio-jzq166pp4c { - width: 100%; - height: 100%; - position: relative; - transform: translateZ(0) scale(0.84); - backface-visibility: hidden; - transform-origin: 0 0; -} - -.ldio-jzq166pp4c div { - box-sizing: content-box; -} - - -@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@400;500&display=swap); - -:root { - --cookieBannerLight: #ffffff; - --cookieBannerDark: #393d4d -} - -#cookieBanner * { - margin: 0; - padding: 0; - text-decoration: none; - list-style: none; - font-family: Poppins, sans-serif; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -#cookieBanner a, -#cookieBanner button { - cursor: pointer; - color: inherit; - font-family: inherit -} - -#cookieBanner button { - outline: 0; - border: none; - -moz-appearance: none; - appearance: none; - -webkit-appearance: none; - appearance: none -} - -#cookieBanner em, -#cookieBanner strong { - font-weight: 700; - font-family: inherit -} - -#cookieBanner a:hover { - text-decoration: none; - cursor: pointer -} - -#cookieBanner a:focus, -#cookieBanner input:focus { - outline: 0; - list-style: none -} - -#cookieBanner.light { - background-color: #fff; - background-color: var(--cookieBannerLight); - color: #393d4d; - color: var(--cookieBannerDark) -} - -#cookieBanner.light p, -#cookieBanner.light ul { - color: #393d4d; - color: var(--cookieBannerDark) -} - -#cookieBanner.light h5 { - color: var(--cookieBannerDark) -} - -#cookieBanner.light button#cookieReject { - background: #fff; - background: var(--cookieBannerLight) -} - -#cookieBanner.dark { - background-color: #393d4d; - background-color: var(--cookieBannerDark); - color: #fff; - color: var(--cookieBannerLight) -} - -#cookieBanner.dark p, -#cookieBanner.dark ul { - color: #fff; - color: var(--cookieBannerLight) -} - -#cookieBanner.dark h5 { - color: #fff; - color: var(--cookieBannerLight) -} - -#cookieBanner.dark button#cookieReject { - background: 0 0; - color: #fff; - color: var(--cookieBannerLight); - border: 1px solid #fff; - border: 1px solid var(--cookieBannerLight) -} - -#cookieBanner { - -webkit-box-sizing: border-box; - box-sizing: border-box; - position: fixed; - padding: 20px; - border-radius: 10px; - -webkit-box-shadow: 0 6px 6px rgba(0, 0, 0, .25); - box-shadow: 0 6px 6px rgba(0, 0, 0, .25); - font-family: inherit; - z-index: 999997 -} - -#cookieBanner #closeIcon { - width: 20px; - height: 20px; - cursor: pointer; - color: #bfb9b9; - overflow: hidden; - opacity: .85; - z-index: 999999; - position: absolute; - top: 4px; - right: 4px -} - -#cookieBanner svg { - display: block -} - -#cookieBanner.display-left { - left: 30px; - bottom: 30px; - max-width: 395px -} - -#cookieBanner.display-right { - right: 30px; - bottom: 30px; - max-width: 395px -} - -#cookieBanner.display-top { - top: 30px; - width: 800px; - left: 50%; - margin-left: -400px -} - -#cookieBanner.display-bottom { - bottom: 30px; - width: 800px; - left: 50%; - margin-left: -400px -} - -#cookieBanner.display-bottom .content-wrap, -#cookieBanner.display-top .content-wrap { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center -} - -#cookieBanner.display-bottom .msg-wrap, -#cookieBanner.display-top .msg-wrap { - max-width: 65%; - width: 100% -} - -#cookieBanner.display-bottom .msg-wrap, -#cookieBanner.display-top .msg-wrap { - margin-bottom: 0 -} - -#cookieBanner.display-bottom #cookieSettings, -#cookieBanner.display-top #cookieSettings { - margin-bottom: 0 -} - -#cookieBanner.display-bottom #cookieTypes, -#cookieBanner.display-top #cookieTypes { - margin-top: 20px -} - -#cookieBanner .btn-wrap { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - font-weight: 700; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin: 0 -5px 0 -5px; - -ms-flex-wrap: wrap; - flex-wrap: wrap -} - -#cookieBanner .btn-wrap button { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - padding: 0 7px; - margin: 0 5px 10px 5px; - border-radius: 20px; - cursor: pointer; - white-space: nowrap; - min-width: 130px; - line-height: 36px; - border: none; - font-family: inherit; - font-size: 16px; - -webkit-transition: -webkit-box-shadow .3s; - transition: -webkit-box-shadow .3s; - -o-transition: box-shadow .3s; - transition: box-shadow .3s; - transition: box-shadow .3s, -webkit-box-shadow .3s -} - -#cookieBanner .btn-wrap button:hover { - -webkit-transition: -webkit-box-shadow .4s cubic-bezier(.25, .8, .25, 1), -webkit-transform .4s cubic-bezier(.25, .8, .25, 1); - transition: -webkit-box-shadow .4s cubic-bezier(.25, .8, .25, 1), -webkit-transform .4s cubic-bezier(.25, .8, .25, 1); - -o-transition: box-shadow .4s cubic-bezier(.25, .8, .25, 1), transform .4s cubic-bezier(.25, .8, .25, 1); - transition: box-shadow .4s cubic-bezier(.25, .8, .25, 1), transform .4s cubic-bezier(.25, .8, .25, 1); - transition: box-shadow .4s cubic-bezier(.25, .8, .25, 1), transform .4s cubic-bezier(.25, .8, .25, 1), -webkit-box-shadow .4s cubic-bezier(.25, .8, .25, 1), -webkit-transform .4s cubic-bezier(.25, .8, .25, 1); - -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .3); - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .3); - -webkit-transform: translate3d(0, -1px, 0); - transform: translate3d(0, -1px, 0) -} - -#cookieBanner #cookieSettings { - font-size: 12px; - font-weight: 700; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - text-transform: uppercase; - cursor: pointer; - font-weight: 400; - margin-bottom: 20px -} - -#cookieBanner #cookieSettings svg { - vertical-align: middle; - margin-right: 8px -} - -#cookieBanner h4 { - font-family: inherit; - font-weight: 700; - font-size: 18px -} - -#cookieBanner .title-wrap { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - margin-bottom: 10px -} - -#cookieBanner .title-wrap svg { - margin-right: 10px -} - -#cookieBanner h5 { - font-family: inherit; - font-weight: 700; - font-size: 12px; - margin-bottom: 10px; - text-transform: uppercase -} - -#cookieBanner p, -#cookieBanner ul { - font-size: 14px; - margin-bottom: 20px -} - -#cookieBanner p:last-child { - margin-bottom: 0; - text-align: left -} - -#cookieBanner li { - width: 49%; - display: inline-block -} - -#cookieBanner a { - text-decoration: none; - font-size: 14px; - padding-bottom: 2px; - border-bottom: 1px dotted rgba(255, 255, 255, .75); - -webkit-transition: all .3s ease-in; - -o-transition: all .3s ease-in; - transition: all .3s ease-in -} - -#cookieTypes label { - text-transform: uppercase; - font-size: 13px -} - -#cookieBanner button:disabled { - opacity: .3 -} - -#cookieBanner input[type=checkbox] { - -webkit-appearance: auto; - -moz-appearance: auto; - appearance: auto; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeSpeed; - width: 14px; - height: 14px; - margin: 4px 10px 0 0; - display: block; - float: left; - position: relative; - outline: 0; - border: none -} - -#cookieBanner input[type=checkbox]:checked:after { - background: #d3d3d3; - content: "\2714"; - color: grey -} - -#cookieBanner input[type=checkbox]:after { - content: ""; - vertical-align: middle; - text-align: center; - line-height: 13px; - position: absolute; - cursor: pointer; - height: 14px; - width: 14px; - left: 0; - top: 0; - font-size: 10px; - background: #d3d3d3 -} - -#cookieBanner.display-bottom.full-width-true, -#cookieBanner.display-top.full-width-true { - width: 100%; - max-width: 100%; - left: auto; - right: auto; - bottom: auto; - top: 0; - border-radius: 0; - margin: auto -} - -#cookieBanner.display-bottom.full-width-true { - bottom: 0; - top: auto; - -webkit-box-shadow: 0 -3px 3px rgb(0 0 0 / 25%); - box-shadow: 0 -3px 3px rgb(0 0 0 / 25%) -} - -#cookieBanner.display-bottom.full-width-true .title-wrap, -#cookieBanner.display-top.full-width-true .title-wrap { - display: none -} - -#cookieBanner.display-bottom.full-width-true .btn-wrap button, -#cookieBanner.display-top.full-width-true .btn-wrap button { - margin-bottom: 10px -} - -@media only screen and (max-width:800px) { - - #cookieBanner.display-bottom, - #cookieBanner.display-top { - width: 100%; - max-width: 100%; - left: auto; - right: auto; - bottom: auto; - top: 0; - border-radius: 0; - margin: auto - } - - #cookieBanner.display-bottom { - bottom: 0; - top: auto; - -webkit-box-shadow: 0 -3px 3px rgb(0 0 0 / 25%); - box-shadow: 0 -3px 3px rgb(0 0 0 / 25%) - } - - #cookieBanner.display-bottom .btn-wrap button, - #cookieBanner.display-top .btn-wrap button { - margin-bottom: 10px - } - - #cookieBanner.display-bottom .msg-wrap, - #cookieBanner.display-top .msg-wrap { - margin-right: 20px - } -} - -@media only screen and (max-width:600px) { - - #cookieBanner.display-left, - #cookieBanner.display-right { - width: 100%; - max-width: 100%; - left: auto; - right: auto; - bottom: 0; - border-radius: 0; - -webkit-box-shadow: 0 -3px 3px rgb(0 0 0 / 25%); - box-shadow: 0 -3px 3px rgb(0 0 0 / 25%) - } - - #cookieBanner.display-bottom .content-wrap, - #cookieBanner.display-top .content-wrap { - display: block - } - - #cookieBanner.display-bottom .msg-wrap, - #cookieBanner.display-top .msg-wrap { - max-width: 100% - } - - #cookieBanner.display-bottom #cookieSettings, - #cookieBanner.display-top #cookieSettings { - margin-bottom: 20px - } -} - -#cookieBlur { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.87); - z-index: 9999; - transition: opacity 0.3s ease-in-out; - opacity: 1; - pointer-events: all; -} \ No newline at end of file diff --git a/app-rappaurio/server/controllers/auth.js b/app-rappaurio/server/controllers/auth.js deleted file mode 100644 index d775cea..0000000 --- a/app-rappaurio/server/controllers/auth.js +++ /dev/null @@ -1,162 +0,0 @@ -const mysql = require('mysql'); -const jwt = require('jsonwebtoken'); -const bcrypt = require('bcryptjs'); -const { promisify } = require('util'); - -const db = mysql.createConnection({ - host: process.env.DATABASE_HOST, - user: process.env.DATABASE_USER, - password: process.env.DATABASE_PASSWORD, - database: process.env.DATABASE -}); - -exports.login = async (req, res) => { - try { - const { email, password } = req.body; - if (!email || !password) { - return res.status(400).render('contains/connexion', { - message: 'Veuillez entrer un email et un mot de passe' - }) - } - - db.query('SELECT * FROM users WHERE email = ?', [email], async (error, result) => { - console.log(result) - if (!result || result.length == 0 || !(await bcrypt.compare(password, result[0].password))) { - res.status(401).render('contains/connexion', { - message: 'Email ou Mot de passe incorrect' - }) - } - else { - const id = result[0].id; - // creating a token - const token = jwt.sign({ id: id }, process.env.JWT_SECRET, { - expiresIn: process.env.JWT_EXPIRES_IN - }); - - console.log("The token is : " + token); - - // when does our token expires - const cookieOptions = { - expires: new Date( - Date.now() + process.env.JWT_COOKIE_EXPIRES_IN * 24 * 60 * 60 * 1000 - ), - // just to prevent if someone is not messing with our cookies - httpOnly: true - } - // we can use any name here in res.cookie(name , token , cookieoptions ) ; - // after a user is loged in we put cookie in browser - res.cookie('jwt', token, cookieOptions); - res.status(200).redirect('/'); - } - }) - } catch (error) { - console.log(error); - } - -} - -exports.register = (req, res) => { - console.log(req.body); - - // de-structuring in javaScript.... - const { name, email, password } = req.body; - - db.query('SELECT email FROM users WHERE email = ?', [email], async (error, result) => { - if (error) { - console.log(error); - } - if (result.length > 0) { - return res.render('contains/inscription', { - message: 'Cet email est déjà utilisé' - }) - } - - let hashedPassword = await bcrypt.hash(password, 8); - - console.log(hashedPassword); - - db.query('INSERT INTO users SET ?', { name: name, email: email, password: hashedPassword }, (error, result) => { - if (error) { - console.log(error); - } - else { - console.log(result); - - db.query('SELECT * FROM users WHERE email = ?', [email], async (error, result) => { - console.log(result) - - const id = result[0].id; - // creating a token - const token = jwt.sign({ id: id }, process.env.JWT_SECRET, { - expiresIn: process.env.JWT_EXPIRES_IN - }); - - console.log("The token is : " + token); - - // when does our token expires - const cookieOptions = { - expires: new Date( - Date.now() + process.env.JWT_COOKIE_EXPIRES_IN * 24 * 60 * 60 * 1000 - ), - // just to prevent if someone is not messing with our cookies - httpOnly: true - } - // we can use any name here in res.cookie(name , token , cookieoptions ) ; - // after a user is loged in we put cookie in browser - res.cookie('jwt', token, cookieOptions); - res.status(200).redirect('/'); - - }) - - - } - }); - }) - -} - -exports.isLoggedIn = async (req, res, next) => { - - console.log(req.cookies); - if (req.cookies.jwt) { - try { - // step 1 : Verify the token - const decoded = await promisify(jwt.verify)( - req.cookies.jwt, - process.env.JWT_SECRET - ) - - //console.log(decoded); - - const userId = decoded.id; - req.userId = userId; - - // step 2: check if the user still exists - db.query('SELECT * FROM users WHERE id = ?', [decoded.id], (error, result) => { - console.log(result); - - if (!result) { - return next(); - } - req.user = result[0]; - return next(); - }); - - } catch (error) { - console.log(error); - return next(); - } - } - else { - next(); - } -} - - -exports.logout = async (req, res) => { - res.cookie('jwt', 'déconnecté', { - expires: new Date(Date.now() + 2 * 1000), - httpOnly: true - }); - res.status(200).redirect('/'); -} \ No newline at end of file diff --git a/app-rappaurio/server/controllers/historiqueController.js b/app-rappaurio/server/controllers/historiqueController.js deleted file mode 100644 index a0a2088..0000000 --- a/app-rappaurio/server/controllers/historiqueController.js +++ /dev/null @@ -1,21 +0,0 @@ -const mysql = require('mysql'); - -// Créez une connexion à la base de données -const db = mysql.createConnection({ - host: process.env.DATABASE_HOST, - user: process.env.DATABASE_USER, - password: process.env.DATABASE_PASSWORD, - database: process.env.DATABASE -}); - -// Fonction pour récupérer les données depuis la base de données -exports.getHistoriqueData = (userId, callback) => { - db.query('SELECT * FROM search WHERE id = ? LIMIT 50', [userId], (error, results) => { - if (error) { - console.error('Erreur lors de la récupération des données depuis la base de données :', error); - callback(error, null); - } else { - callback(null, results); - } - }); -}; diff --git a/app-rappaurio/server/controllers/searchController.js b/app-rappaurio/server/controllers/searchController.js deleted file mode 100644 index efae80e..0000000 --- a/app-rappaurio/server/controllers/searchController.js +++ /dev/null @@ -1,27 +0,0 @@ -// searchController.js - -const mysql = require('mysql'); - -// Créez une connexion à la base de données -const db = mysql.createConnection({ - host: process.env.DATABASE_HOST, - user: process.env.DATABASE_USER, - password: process.env.DATABASE_PASSWORD, - database: process.env.DATABASE -}); - -// Fonction pour insérer les données de recherche dans la base de données -exports.insertSearchData = (userId, articleTitle1, articleTitle2, callback) => { - db.query('INSERT INTO search (id, article1, article2) VALUES (?, ?, ?)', [userId, articleTitle1, articleTitle2], (error, result) => { - if (error) { - console.error('Erreur lors de l\'insertion des données dans la base de données :', error); - // Vous pouvez gérer l'erreur en appelant le callback avec l'erreur - callback(error, null); - } else { - // Les données ont été insérées avec succès - console.log('Données insérées avec succès dans la base de données.'); - // Appelez le callback avec succès - callback(null, result); - } - }); -}; diff --git a/app-rappaurio/server/functions/compare.js b/app-rappaurio/server/functions/compare.js deleted file mode 100644 index 122e70f..0000000 --- a/app-rappaurio/server/functions/compare.js +++ /dev/null @@ -1,165 +0,0 @@ -const Wikiapi = require('wikiapi'); -const wiki = new Wikiapi('fr'); -const axios = require('axios'); - - -// == Functions - -// Fonction de nettoyage personnalisée (pour infobox) -function cleanInfoboxText(text) { - // Supprimer les balises HTML - const cleanedText = text.replace(/<\/?[^>]+(>|$)/g, ""); - - // Supprimer les caractères '{' et '}' - const cleanedTextWithoutBraces = cleanedText.replace(/[{}]/g, ""); - - // Supprimer le caractère '|' - const cleanedTextWithoutPipe = cleanedTextWithoutBraces.replace(/\|/g, ""); - - // Supprimer les caractères '[' et ']' - const finalText = cleanedTextWithoutPipe.replace(/[\[\]]/g, ""); - - return finalText.trim(); -} - -// Fonction pour récupérer les informations d'un article depuis l'API MediaWiki -async function fetchArticleInfoFromAPI(articleTitle) { - try { - // Définir les paramètres de la requête pour obtenir les suggestions de titre - const suggestionParams = new URLSearchParams({ - action: 'opensearch', - search: articleTitle, - format: 'json', - }); - - // Effectuer la requête GET pour obtenir les suggestions de titre - const suggestionResponse = await axios.get(`https://fr.wikipedia.org/w/api.php?${suggestionParams.toString()}`); - const suggestionData = suggestionResponse.data; - - // Vérifier s'il y a des suggestions de titre - if (Array.isArray(suggestionData[1]) && suggestionData[1].length > 0) { - // Utiliser le premier titre suggéré comme titre de l'article - articleTitle = suggestionData[1][0]; - } - - // Répéter la requête pour obtenir les informations de l'article avec le titre corrigé ou suggéré - const params = new URLSearchParams({ - action: 'query', - titles: articleTitle, - format: 'json', - prop: 'extracts|info|revisions|pageimages', // Ajoutez 'pageimages' pour obtenir les informations sur l'image - inprop: 'url', - explaintext: true, - rvprop: 'timestamp|user|size|ids', - rvlimit: 1, - piprop: 'original', // Spécifiez 'original' pour obtenir l'URL de l'image originale - }); - - // Effectuer la requête GET à l'API MediaWiki - const response = await axios.get(`https://fr.wikipedia.org/w/api.php?${params.toString()}`); - const data = response.data; - - // ==== RECHERCHE INFOBOX ==== - - let infobox = {}; - - // Vérifiez si articleTitle est défini et non vide - if (articleTitle) { - const page_data = await wiki.page(articleTitle); - const parsed = page_data.parse(); - - // Filtre des données compliquée à représentée - const variablesExclues = ['image', 'blason', 'drapeau', 'logo', 'légende', 'carte', 'légende-carte', '_', 'statut', 1, 2, 3, 4, 5, 6, 7, 8, 9]; - - // Lire les modèles Infobox, les convertir en JSON. - parsed.each('template', (template_token) => { - if (template_token.name.startsWith('Infobox')) { - const parameters = template_token.parameters; - for (const key of Object.keys(parameters)) { - const value = parameters[key]; - if (value !== '' && !variablesExclues.some(excluded => key.includes(excluded))) { - infobox[key] = cleanInfoboxText(value.toString()); // Appliquer la fonction de nettoyage ici - } - } - return parsed.each.exit; - } - }); - - // Vérifiez si l'infobox est vide - if (Object.keys(infobox).length === 0) { - console.log("Warning : Pas d'infobox"); - infobox = { - Erreur: "Pas d'infobox sur wikipédia" - }; - } - - } else { - return null; - } - - // ------------------------------------------------------------ - - // Vérifier si 'query' existe dans les données - if (data.query) { - // Obtenir la première page (il peut y avoir plusieurs résultats, nous prenons le premier) - const page = Object.values(data.query.pages)[0]; - - if (page.missing !== undefined) { - console.log(`Warning : l'article "${articleTitle}" n'a pas été trouvé.`); - return null; - } else { - - // Fonction pour limiter le texte à 300 caractères et s'arrêter au dernier point - function limitTextTo300Chars(text) { - if (text.length <= 300) { - // Si le texte est déjà inférieur ou égal à 300 caractères, retournez-le tel quel - return text; - } else { - // Trouvez le dernier point dans les 300 premiers caractères - const truncatedText = text.substring(0, 300); - const lastPeriodIndex = truncatedText.lastIndexOf('.'); - - if (lastPeriodIndex !== -1) { - // S'il y a un point dans les 300 premiers caractères, coupez le texte jusqu'à ce point - return truncatedText.substring(0, lastPeriodIndex + 1); - } else { - // S'il n'y a pas de point, retournez simplement les 200 premiers caractères - return truncatedText; - } - } - } - - // Extraire les informations - const articleInfo = { - url: page.fullurl, - title: page.title, - extract: page.extract ? limitTextTo300Chars(page.extract) : 'Non disponible', - lastEdit: page.revisions ? new Date(page.revisions[0].timestamp).toLocaleString() : 'Non disponible', - numRevisions: page.revisions ? page.revisions[0].revid : 'Non disponible', - pageSize: page.revisions ? page.revisions[0].size : 'Non disponible', - firstRevisionUser: page.revisions ? page.revisions[0].user : 'Non disponible', - latestRevisionId: page.revisions ? page.revisions[0].revid : 'Non disponible', - pageId: page.pageid ? page.pageid : 'Non disponible', - latestVersion: page.revisions ? page.revisions[0].parentid : 'Non disponible', - wordCount: page.extract ? page.extract.split(/\s+/).length : 'Non disponible', - charCount: page.extract ? page.extract.length : 'Non disponible', - lastContributor: page.revisions ? page.revisions[0].user : 'Non disponible', - image: page.original ? page.original.source : 'Non disponible', - infobox, - }; - - return articleInfo; - } - } else { - console.log(`Warning : l'article "${articleTitle}" n'a pas été trouvé.`); - return null; - } - } catch (error) { - console.error('Erreur : lors de la récupération des informations depuis l\'API :', error); - return null; - } -} - -module.exports = { - fetchArticleInfoFromAPI - }; \ No newline at end of file diff --git a/app-rappaurio/server/routes/auth.js b/app-rappaurio/server/routes/auth.js deleted file mode 100644 index 14c2a41..0000000 --- a/app-rappaurio/server/routes/auth.js +++ /dev/null @@ -1,14 +0,0 @@ -const express = require('express'); -const authController = require('../controllers/auth'); -const router = express.Router(); - - - -router.post('/inscription' , authController.register); - -router.post('/connexion' , authController.login); - -router.get('/deconnexion' , authController.logout) - - -module.exports = router ; \ No newline at end of file diff --git a/app-rappaurio/server/routes/index.js b/app-rappaurio/server/routes/index.js deleted file mode 100644 index 8bf10f6..0000000 --- a/app-rappaurio/server/routes/index.js +++ /dev/null @@ -1,83 +0,0 @@ -var express = require('express'); -const authController = require('../controllers/auth') -const searchController = require('../controllers/searchController'); -const historiqueController = require('../controllers/historiqueController'); -const { fetchArticleInfoFromAPI } = require('../functions/compare'); - -var router = express.Router(); - -/* GET home page. */ -router.get('/', authController.isLoggedIn, (req, res, next) => { - res.render('contains/index', { user_details: req.user }); -}); - - -// inscription page -router.get('/inscription', (req, res) => { - res.render('contains/inscription') -}); - -router.get('/connexion', (req, res) => { - res.render('contains/connexion') -}); - - -router.get('/historique', authController.isLoggedIn, (req, res) => { - console.log(req.user); - - if (req.user) { - const userId = req.user.id; - historiqueController.getHistoriqueData(userId, (error, historiqueData) => { - if (error) { - console.error('Erreur lors de la récupération des données depuis la base de données :', error); - res.status(500).json({ error: 'Une erreur s\'est produite lors de la récupération des données.' }); - } else { - - res.render('contains/historique', { - user_details: req.user, - historiqueData: historiqueData - }); - } - }); - } else { - res.redirect('/connexion'); - } -}); - - -// Send search for articles -router.post('/search', authController.isLoggedIn, async (req, res) => { - try { - // Récupérez les données du formulaire depuis req.body - const articleTitle1 = req.body.articleTitle1; - const articleTitle2 = req.body.articleTitle2; - - // Utilisez la fonction pour récupérer les informations des articles - const articleInfo1 = await fetchArticleInfoFromAPI(articleTitle1); - const articleInfo2 = await fetchArticleInfoFromAPI(articleTitle2); - - // Récupérez l'ID de l'utilisateur - const userId = req.userId; - - // Utilisez la fonction du contrôleur pour insérer les données - - if (userId) { - searchController.insertSearchData(userId, articleTitle1, articleTitle2, (error, result) => { - if (error) { - console.error('Erreur lors de l\'insertion des données dans la base de données :', error); - res.status(500).json({ error: 'Une erreur s\'est produite lors de l\'enregistrement des données.' }); - } else { - } - }); - } - - // Renvoyez la réponse au format JSON - res.json({ articleInfo1, articleInfo2 }); - } catch (error) { - console.error('Erreur lors de la recherche d\'informations sur les articles :', error); - res.status(500).json({ error: 'Une erreur s\'est produite lors de la recherche d\'informations sur les articles.' }); - } -}); - - -module.exports = router; diff --git a/app-rappaurio/views/contains/404.hbs b/app-rappaurio/views/contains/404.hbs deleted file mode 100644 index aa95a3f..0000000 --- a/app-rappaurio/views/contains/404.hbs +++ /dev/null @@ -1,71 +0,0 @@ - -
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Oups ! La page n'a pas été trouvée. -

-

- La page que vous avez demandée peut avoir été déplacée, supprimée ou n'a jamais existé. Vous avez peut-être suivi un lien incorrect ou une URL mal orthographiée. -

- - page d'accueil - -
-
-
-
-
- diff --git a/app-rappaurio/views/contains/connexion.hbs b/app-rappaurio/views/contains/connexion.hbs deleted file mode 100644 index e624041..0000000 --- a/app-rappaurio/views/contains/connexion.hbs +++ /dev/null @@ -1,90 +0,0 @@ -
-
-
-
-
-

- Connexion à votre compte -

- - -
-
- - -
-
- - -
-
- * champs obligatoires -
- - -
- - -
- - -
- -
- -
- - - -

- Vous n'avez pas de compte? - Inscription -

- - {{#if message }} -

{{message}}

- {{/if}} - -
-
-
-
-
\ No newline at end of file diff --git a/app-rappaurio/views/contains/historique.hbs b/app-rappaurio/views/contains/historique.hbs deleted file mode 100644 index 0007421..0000000 --- a/app-rappaurio/views/contains/historique.hbs +++ /dev/null @@ -1,34 +0,0 @@ -
-
-
-
- - - - - - - - - - - - - - - {{#each historiqueData }} - - - - - {{/each}} - -
Article 1Article 2
{{this.article1}}{{this.article2}}
- - - -
-
-
-
\ No newline at end of file diff --git a/app-rappaurio/views/contains/index.hbs b/app-rappaurio/views/contains/index.hbs deleted file mode 100644 index 854114b..0000000 --- a/app-rappaurio/views/contains/index.hbs +++ /dev/null @@ -1,455 +0,0 @@ - - -
-
-
-
-
-

- Comparateur d'articles Wikipédia -

- logo wikipedia - -

- Bienvenue sur notre outil de comparaison d'articles Wikipédia ! Cet outil permet de comparer les - données contenues dans les infoboîtes ainsi que les statistiques liées aux utilisateurs tels que - les - vues et le nombre de contributions. -

- -
-
-
-
-
- - - - -
- - -
-
-
-
- -

- Articles à Comparer -

-

- Completer les champs suivant : -

- - -
-
-
-
- - - - -
-
-
-
- - -
-
- -
- -
- * champs obligatoires -
-
- -
-
- -
-
- - - - -
-
-
- - - - - - - - - - - - - - - - - - - -
-
-
- -
- - - - \ No newline at end of file diff --git a/app-rappaurio/views/contains/inscription.hbs b/app-rappaurio/views/contains/inscription.hbs deleted file mode 100644 index d2c29a3..0000000 --- a/app-rappaurio/views/contains/inscription.hbs +++ /dev/null @@ -1,94 +0,0 @@ -
-
-
-
-
-

- Créez votre compte -

-
-
- - -
-
- - -
-
- - -
- -
- * champs obligatoires -
- - - - - -
- -
- -
-

- Déjà un compte? - Connexion -

- - {{#if message }} -

{{message}}

- {{/if}} - -
-
-
-
-
\ No newline at end of file diff --git a/app-rappaurio/views/layout.hbs b/app-rappaurio/views/layout.hbs deleted file mode 100644 index 6fa14fd..0000000 --- a/app-rappaurio/views/layout.hbs +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - - - Rappaurio - Wiki - - - - - - - - - - - -
-
-
- -
-
- - -
- - -
- {{#if user_details }} - - {{else}} - - - {{/if}} -
- -
-
- - -
-
-
-
- - - {{{body}}} - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index db200e5..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,44 +0,0 @@ -version: "3.8" -services: - nodejs: # Service pour nodejs - networks: - - rappaurio-net - build: - context: ./app-rappaurio - volumes: - - ./app-rappaurio:/user/src/app - ports: - - "5000:5000" - restart: unless-stopped - - nginx: # Service serveur web - networks: - - rappaurio-net - build: - context: ./nginx - volumes: - - ./nginx/default.conf:/etc/nginx/conf.d/default.conf - ports: - - "8888:80" - restart: unless-stopped - - - db: - image: mariadb:latest - networks: - - rappaurio-net - env_file: - - .env # fichier contenant les mot de passes - environment: - MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD} - MYSQL_DATABASE: ${DATABASE} - MYSQL_USER: ${DATABASE_USER} - MYSQL_PASSWORD: ${DATABASE_PASSWORD} - volumes: - - ./mariadb/mysql:/var/lib/mysql - - ./mariadb:/docker-entrypoint-initdb.d - command: --init-file /docker-entrypoint-initdb.d/rappaurio.sql - restart: unless-stopped - -networks: - rappaurio-net: \ No newline at end of file diff --git a/img/.gitkeep b/img/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/img/Diagramme_architecture.png b/img/Diagramme_architecture.png deleted file mode 100644 index 67b80e0..0000000 Binary files a/img/Diagramme_architecture.png and /dev/null differ diff --git a/img/Diagramme_exigence.vpd_v1.png b/img/Diagramme_exigence.vpd_v1.png deleted file mode 100644 index 122937d..0000000 Binary files a/img/Diagramme_exigence.vpd_v1.png and /dev/null differ diff --git a/img/demo.gif b/img/demo.gif deleted file mode 100644 index 52eb9e4..0000000 Binary files a/img/demo.gif and /dev/null differ diff --git a/img/logo.svg b/img/logo.svg deleted file mode 100644 index c277e3a..0000000 --- a/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mariadb/rappaurio.sql b/mariadb/rappaurio.sql deleted file mode 100644 index 38e19e2..0000000 --- a/mariadb/rappaurio.sql +++ /dev/null @@ -1,29 +0,0 @@ - -/* -By Dario Weinberger & Raphael Payet -©2023 -*/ - --- Utiliser la base de données -USE rappaurio; - --- Créer la table "User" -CREATE TABLE `users` ( - `id` int(255) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `email` varchar(255) NOT NULL, - `password` varchar(255) NOT NULL, - PRIMARY KEY (`id`) -); - --- Créer la table "Search" -CREATE TABLE `search` ( - `id_search` int(11) NOT NULL AUTO_INCREMENT, - `id` int(11) DEFAULT NULL, - `article1` varchar(255) NOT NULL, - `article2` varchar(255) NOT NULL, - `date` timestamp NULL DEFAULT current_timestamp(), - PRIMARY KEY (`id_search`), - KEY `id` (`id`), - CONSTRAINT `search_ibfk_1` FOREIGN KEY (`id`) REFERENCES `users` (`id`) -); diff --git a/nginx/Dockerfile b/nginx/Dockerfile deleted file mode 100644 index ce14e86..0000000 --- a/nginx/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM nginx -COPY default.conf /etc/nginx/conf.d/default.conf diff --git a/nginx/default.conf b/nginx/default.conf deleted file mode 100644 index 9261b65..0000000 --- a/nginx/default.conf +++ /dev/null @@ -1,10 +0,0 @@ -server { - location / { - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_pass http://nodejs:5000; - } -}