diff --git a/.github/docker-image.yml b/.github/docker-image.yml
deleted file mode 100644
index c4e743e..0000000
--- a/.github/docker-image.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-name: Build, publish and deploy docker image
-
-on: [push]
-
-env:
- REGISTRY: ghcr.io
- IMAGE_NAME: ${{ github.repository }}
-
-jobs:
- build-push:
- name: Build and push docker image
- runs-on: ubuntu-latest
- permissions:
- contents: read
- packages: write
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Log in to the Container registry
- uses: docker/login-action@v2
- with:
- registry: ${{ env.REGISTRY }}
- username: ${{ github.actor }}
- password: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Extract metadata (tags, labels) for Docker
- id: meta
- uses: docker/metadata-action@v3
- with:
- images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
-
- - name: Build and push Docker image
- uses: docker/build-push-action@v3
- with:
- context: .
- push: true
- tags: ${{ steps.meta.outputs.tags }}
- labels: ${{ steps.meta.outputs.labels }}
- deploy:
- name: Deploy docker image
- runs-on: ubuntu-latest
- needs: [build-push]
- steps:
- - name: Execute ssh commands
- uses: appleboy/ssh-action@master
- with:
- host: ${{ secrets.HOST }}
- username: ${{ secrets.USER }}
- password: ${{ secrets.PASSWORD }}
- script: |
- cd /root/docker-compose/image-uploader
- docker-compose down
- docker pull ghcr.io/vascyt/image-uploader:main
- docker-compose up -d
- docker image prune -f
diff --git a/.gitignore b/.gitignore
index a142270..55d33d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
node_modules
-plans.txt
\ No newline at end of file
+data/*
+public/css/style.css.map
diff --git a/package-lock.json b/package-lock.json
index 4b1818c..e69de29 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,1615 +0,0 @@
-{
- "name": "imagizer",
- "version": "2.0.0",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "imagizer",
- "version": "2.0.0",
- "license": "ISC",
- "dependencies": {
- "cors": "^2.8.5",
- "ejs": "^3.1.8",
- "express": "^4.18.2",
- "fs": "^0.0.1-security",
- "multer": "^1.4.5-lts.1"
- },
- "devDependencies": {}
- },
- "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/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
- },
- "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/async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/body-parser": {
- "version": "1.20.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
- "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "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.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "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/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "engines": [
- "node >= 0.8"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "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-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.6.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "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/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/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/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/ejs": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
- "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "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.19.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
- "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.2",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.6.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/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
- "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "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/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/fs": {
- "version": "0.0.1-security",
- "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
- "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
- },
- "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.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "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-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "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/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/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.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "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/jake": {
- "version": "10.8.5",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
- "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
- "dependencies": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.1",
- "minimatch": "^3.0.4"
- },
- "bin": {
- "jake": "bin/cli.js"
- },
- "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/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/multer": {
- "version": "1.4.5-lts.1",
- "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
- "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
- "dependencies": {
- "append-field": "^1.0.0",
- "busboy": "^1.0.0",
- "concat-stream": "^1.5.2",
- "mkdirp": "^0.5.4",
- "object-assign": "^4.1.1",
- "type-is": "^1.6.4",
- "xtend": "^4.0.0"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "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/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "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/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/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.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "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/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/readable-stream/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/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/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "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/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/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.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "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/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/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "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/string_decoder/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/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "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/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
- },
- "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/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- }
- },
- "dependencies": {
- "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==",
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- }
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
- },
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "body-parser": {
- "version": "1.20.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
- "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
- "requires": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "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.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- }
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "requires": {
- "streamsearch": "^1.1.0"
- }
- },
- "bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "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==",
- "requires": {
- "safe-buffer": "5.2.1"
- }
- },
- "content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
- },
- "cookie": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "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=="
- },
- "cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "requires": {
- "object-assign": "^4",
- "vary": "^1"
- }
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
- },
- "destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
- },
- "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=="
- },
- "ejs": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
- "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
- "requires": {
- "jake": "^10.8.5"
- }
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
- },
- "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=="
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
- },
- "express": {
- "version": "4.19.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
- "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
- "requires": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.2",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.6.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"
- }
- },
- "filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "requires": {
- "minimatch": "^5.0.1"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
- "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "requires": {
- "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"
- }
- },
- "forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
- },
- "fs": {
- "version": "0.0.1-security",
- "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
- "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
- },
- "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==",
- "requires": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- }
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "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=="
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "jake": {
- "version": "10.8.5",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
- "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
- "requires": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.1",
- "minimatch": "^3.0.4"
- }
- },
- "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=="
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
- },
- "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==",
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
- },
- "mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "requires": {
- "minimist": "^1.2.6"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "multer": {
- "version": "1.4.5-lts.1",
- "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
- "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
- "requires": {
- "append-field": "^1.0.0",
- "busboy": "^1.0.0",
- "concat-stream": "^1.5.2",
- "mkdirp": "^0.5.4",
- "object-assign": "^4.1.1",
- "type-is": "^1.6.4",
- "xtend": "^4.0.0"
- }
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
- },
- "object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
- },
- "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==",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
- },
- "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=="
- },
- "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=="
- },
- "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==",
- "requires": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- }
- },
- "qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "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=="
- },
- "raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "requires": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- }
- },
- "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==",
- "requires": {
- "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"
- },
- "dependencies": {
- "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=="
- }
- }
- },
- "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=="
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "requires": {
- "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"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- }
- }
- },
- "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==",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- }
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
- },
- "streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
- },
- "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==",
- "requires": {
- "safe-buffer": "~5.1.0"
- },
- "dependencies": {
- "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=="
- }
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "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=="
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
- }
- }
-}
diff --git a/package.json b/package.json
index 929152c..be49609 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "imagizer",
- "version": "2.0.0",
+ "version": "2.1.0",
"description": "Simple Image Content Delivery Network made in NodeJS",
"main": "index.js",
"scripts": {
@@ -8,23 +8,29 @@
"clean": "rm -f data/*",
"dev": "nodemon index.js"
},
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/birajrai/Imagizer.git"
+ },
"dependencies": {
"cors": "^2.8.5",
- "ejs": "^3.1.8",
+ "ejs": "^3.1.9",
"express": "^4.18.2",
"fs": "^0.0.1-security",
"multer": "^1.4.5-lts.1"
},
- "devDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/birajrai/imagizer.git"
- },
- "keywords": [],
"author": "birajrai",
"license": "ISC",
"bugs": {
- "url": "https://github.com/birajrai/imagizer/issues"
+ "url": "https://github.com/birajrai/Imagizer/issues"
},
- "homepage": "https://github.com/birajrai/imagizer#readme"
+ "homepage": "https://github.com/birajrai/Imagizer#readme",
+ "keywords": [
+ "Imagizer",
+ "Express",
+ "Cors",
+ "EJS",
+ "FS",
+ "Multer"
+ ]
}
diff --git a/public/css/style.css b/public/css/style.css
index 977c796..0b9cc07 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -1,47 +1,125 @@
-* {
+html, body, h1, h2, h3, p {
margin: 0;
padding: 0;
- outline: none;
- user-select: none;
- font-family: Poppins;
}
body {
- background: #000000;
+ font-family: "Arial", sans-serif;
+ background-color: #f0f0f0;
+ color: #333;
}
-.imagizer {
- font-weight: bold;
- font-size: 40px;
- text-align: center;
- color: white;
- padding: 180px;
-}
-.sumbit {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- text-align: center;
+
+.container {
+ max-width: 1200px;
+ margin: 0 auto;
}
-.anti-a {
+.navbar {
+ background-color: #5865f2;
+ padding: 10px 0;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+}
+.navbar .container {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+.navbar .container .navbar-logo {
+ display: flex;
+ align-items: center;
+ color: #fff;
text-decoration: none;
- color: white;
+ font-size: 24px;
+ font-weight: bold;
}
-label {
- font-size: 16px;
- color: white;
- backdrop-filter: blur(3px);
+.navbar .container .navbar-logo .logo-img {
+ margin-right: 10px;
+ max-height: 24px;
+}
+.navbar .container .navbar-links {
+ list-style: none;
+ display: flex;
+ gap: 20px;
}
-label:hover {
- color: red;
+.navbar .container .navbar-links li a {
+ color: #fff;
+ text-decoration: none;
font-weight: bold;
+ font-size: 16px;
+ transition: color 0.3s;
+}
+.navbar .container .navbar-links li a:hover {
+ color: #45a049;
+}
+
+.submit {
+ text-align: center;
+ margin-top: 40px;
+}
+.submit #submit {
+ display: block;
+}
+.submit .upload-button {
+ display: inline-block;
+ padding: 15px 30px;
+ background-color: #4caf50;
+ color: #fff;
+ cursor: pointer;
+ border: 2px solid #45a049;
+ border-radius: 5px;
+ margin-bottom: 20px;
+ transition: background-color 0.3s, transform 0.3s ease-in-out;
+}
+.submit .upload-button:hover {
+ background-color: #45a049;
+ border-color: #4caf50;
+ transform: scale(1.05);
+}
+
+.features {
+ background-color: #fff;
+ padding: 40px 20px;
+ opacity: 0;
+ transform: translateY(20px);
+}
+.features.visible {
+ opacity: 1;
+ transform: translateY(0);
+ transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
}
-.footer {
- padding-right: 50px;
- padding-top: 190px;
- text-align: right;
+.features .feature-heading {
+ text-align: center;
+ font-size: 32px;
+ margin-bottom: 20px;
+}
+.features .feature-items {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-evenly;
}
-.swal2-popup .swal2-styled:focus {
- box-shadow: none !important;
+@media (max-width: 768px) {
+ .features .feature-items {
+ flex-direction: column;
+ align-items: center;
+ }
+}
+.features .feature-items .feature-item {
+ width: calc(25% - 20px);
+ margin: 0 10px;
+ text-align: center;
+ margin-bottom: 30px;
+}
+.features .feature-items .feature-item h3 {
+ color: #5865f2;
+ font-size: 24px;
+ margin-bottom: 10px;
+}
+.features .feature-items .feature-item p {
+ font-size: 16px;
+ color: #555;
}
+@media (max-width: 1200px) {
+ .features .feature-items .feature-item {
+ width: calc(33.33% - 20px);
+ }
+}/*# sourceMappingURL=style.css.map */
\ No newline at end of file
diff --git a/public/css/style.scss b/public/css/style.scss
new file mode 100644
index 0000000..67c96da
--- /dev/null
+++ b/public/css/style.scss
@@ -0,0 +1,143 @@
+// Reset some default margin and padding
+html, body, h1, h2, h3, p {
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ font-family: "Arial", sans-serif;
+ background-color: #f0f0f0;
+ color: #333;
+}
+
+.container {
+ max-width: 1200px;
+ margin: 0 auto;
+}
+
+.navbar {
+ background-color: #5865f2;
+ padding: 10px 0;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+
+ .container {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .navbar-logo {
+ display: flex;
+ align-items: center;
+ color: #fff;
+ text-decoration: none;
+ font-size: 24px;
+ font-weight: bold;
+
+ .logo-img {
+ margin-right: 10px;
+ max-height: 24px;
+ }
+ }
+
+ .navbar-links {
+ list-style: none;
+ display: flex;
+ gap: 20px;
+
+ li {
+ a {
+ color: #fff;
+ text-decoration: none;
+ font-weight: bold;
+ font-size: 16px;
+ transition: color 0.3s;
+
+ &:hover {
+ color: #45a049;
+ }
+ }
+ }
+ }
+ }
+}
+
+.submit {
+ text-align: center;
+ margin-top: 40px;
+
+ #submit {
+ display: block;
+ }
+
+ .upload-button {
+ display: inline-block;
+ padding: 15px 30px;
+ background-color: #4caf50;
+ color: #fff;
+ cursor: pointer;
+ border: 2px solid #45a049;
+ border-radius: 5px;
+ margin-bottom: 20px;
+ transition: background-color 0.3s, transform 0.3s ease-in-out;
+
+ &:hover {
+ background-color: #45a049;
+ border-color: #4caf50;
+ transform: scale(1.05);
+ }
+ }
+}
+
+.features {
+ background-color: #fff;
+ padding: 40px 20px;
+ opacity: 0;
+ transform: translateY(20px);
+
+ &.visible {
+ opacity: 1;
+ transform: translateY(0);
+ transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
+ }
+
+ .feature-heading {
+ text-align: center;
+ font-size: 32px;
+ margin-bottom: 20px;
+ }
+
+ .feature-items {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-evenly;
+
+ @media (max-width: 768px) {
+ flex-direction: column;
+ align-items: center;
+ }
+
+ .feature-item {
+ width: calc(25% - 20px); // 20px margin between items
+ margin: 0 10px;
+ text-align: center;
+ margin-bottom: 30px;
+
+ h3 {
+ color: #5865f2;
+ font-size: 24px;
+ margin-bottom: 10px;
+ }
+
+ p {
+ font-size: 16px;
+ color: #555;
+ }
+ }
+
+ @media (max-width: 1200px) {
+ .feature-item {
+ width: calc(33.33% - 20px); // 20px margin between items
+ }
+ }
+ }
+}
diff --git a/public/js/alert.js b/public/js/alert.js
index fa3ec1a..fd75e94 100644
--- a/public/js/alert.js
+++ b/public/js/alert.js
@@ -1,2137 +1 @@
-!(function (e, t) {
- "object" == typeof exports && "undefined" != typeof module
- ? (module.exports = t())
- : "function" == typeof define && define.amd
- ? define(t)
- : ((e =
- "undefined" != typeof globalThis ? globalThis : e || self).Sweetalert2 =
- t());
-})(this, function () {
- "use strict";
- var e = {
- awaitingPromise: new WeakMap(),
- promise: new WeakMap(),
- innerParams: new WeakMap(),
- domCache: new WeakMap(),
- };
- const t = (e) => {
- const t = {};
- for (const n in e) t[e[n]] = "swal2-" + e[n];
- return t;
- },
- n = t([
- "container",
- "shown",
- "height-auto",
- "iosfix",
- "popup",
- "modal",
- "no-backdrop",
- "no-transition",
- "toast",
- "toast-shown",
- "show",
- "hide",
- "close",
- "title",
- "html-container",
- "actions",
- "confirm",
- "deny",
- "cancel",
- "default-outline",
- "footer",
- "icon",
- "icon-content",
- "image",
- "input",
- "file",
- "range",
- "select",
- "radio",
- "checkbox",
- "label",
- "textarea",
- "inputerror",
- "input-label",
- "validation-message",
- "progress-steps",
- "active-progress-step",
- "progress-step",
- "progress-step-line",
- "loader",
- "loading",
- "styled",
- "top",
- "top-start",
- "top-end",
- "top-left",
- "top-right",
- "center",
- "center-start",
- "center-end",
- "center-left",
- "center-right",
- "bottom",
- "bottom-start",
- "bottom-end",
- "bottom-left",
- "bottom-right",
- "grow-row",
- "grow-column",
- "grow-fullscreen",
- "rtl",
- "timer-progress-bar",
- "timer-progress-bar-container",
- "scrollbar-measure",
- "icon-success",
- "icon-warning",
- "icon-info",
- "icon-question",
- "icon-error",
- "no-war",
- ]),
- o = t(["success", "warning", "info", "question", "error"]),
- i = (e) => e.charAt(0).toUpperCase() + e.slice(1),
- s = (e) => {
- console.warn(`SweetAlert2: ${"object" == typeof e ? e.join(" ") : e}`);
- },
- r = (e) => {
- console.error(`SweetAlert2: ${e}`);
- },
- a = [],
- l = (e, t) => {
- var n;
- (n = `"${e}" is deprecated and will be removed in the next major release. Please use "${t}" instead.`),
- a.includes(n) || (a.push(n), s(n));
- },
- c = (e) => ("function" == typeof e ? e() : e),
- u = (e) => e && "function" == typeof e.toPromise,
- d = (e) => (u(e) ? e.toPromise() : Promise.resolve(e)),
- p = (e) => e && Promise.resolve(e) === e,
- m = () => document.body.querySelector(`.${n.container}`),
- g = (e) => {
- const t = m();
- return t ? t.querySelector(e) : null;
- },
- h = (e) => g(`.${e}`),
- f = () => h(n.popup),
- b = () => h(n.icon),
- y = () => h(n.title),
- w = () => h(n["html-container"]),
- v = () => h(n.image),
- C = () => h(n["progress-steps"]),
- A = () => h(n["validation-message"]),
- k = () => g(`.${n.actions} .${n.confirm}`),
- B = () => g(`.${n.actions} .${n.deny}`),
- P = () => g(`.${n.loader}`),
- x = () => g(`.${n.actions} .${n.cancel}`),
- E = () => h(n.actions),
- $ = () => h(n.footer),
- T = () => h(n["timer-progress-bar"]),
- S = () => h(n.close),
- L = () => {
- const e = Array.from(
- f().querySelectorAll(
- '[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'
- )
- ).sort((e, t) => {
- const n = parseInt(e.getAttribute("tabindex")),
- o = parseInt(t.getAttribute("tabindex"));
- return n > o ? 1 : n < o ? -1 : 0;
- }),
- t = Array.from(
- f().querySelectorAll(
- '\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n'
- )
- ).filter((e) => "-1" !== e.getAttribute("tabindex"));
- return ((e) => {
- const t = [];
- for (let n = 0; n < e.length; n++)
- -1 === t.indexOf(e[n]) && t.push(e[n]);
- return t;
- })(e.concat(t)).filter((e) => Z(e));
- },
- O = () =>
- I(document.body, n.shown) &&
- !I(document.body, n["toast-shown"]) &&
- !I(document.body, n["no-backdrop"]),
- j = () => f() && I(f(), n.toast),
- M = { previousBodyPadding: null },
- H = (e, t) => {
- if (((e.textContent = ""), t)) {
- const n = new DOMParser().parseFromString(t, "text/html");
- Array.from(n.querySelector("head").childNodes).forEach((t) => {
- e.appendChild(t);
- }),
- Array.from(n.querySelector("body").childNodes).forEach((t) => {
- t instanceof HTMLVideoElement || t instanceof HTMLAudioElement
- ? e.appendChild(t.cloneNode(!0))
- : e.appendChild(t);
- });
- }
- },
- I = (e, t) => {
- if (!t) return !1;
- const n = t.split(/\s+/);
- for (let t = 0; t < n.length; t++)
- if (!e.classList.contains(n[t])) return !1;
- return !0;
- },
- q = (e, t, i) => {
- if (
- (((e, t) => {
- Array.from(e.classList).forEach((i) => {
- Object.values(n).includes(i) ||
- Object.values(o).includes(i) ||
- Object.values(t.showClass).includes(i) ||
- e.classList.remove(i);
- });
- })(e, t),
- t.customClass && t.customClass[i])
- ) {
- if ("string" != typeof t.customClass[i] && !t.customClass[i].forEach)
- return void s(
- `Invalid type of customClass.${i}! Expected string or iterable object, got "${typeof t
- .customClass[i]}"`
- );
- F(e, t.customClass[i]);
- }
- },
- D = (e, t) => {
- if (!t) return null;
- switch (t) {
- case "select":
- case "textarea":
- case "file":
- return e.querySelector(`.${n.popup} > .${n[t]}`);
- case "checkbox":
- return e.querySelector(`.${n.popup} > .${n.checkbox} input`);
- case "radio":
- return (
- e.querySelector(`.${n.popup} > .${n.radio} input:checked`) ||
- e.querySelector(`.${n.popup} > .${n.radio} input:first-child`)
- );
- case "range":
- return e.querySelector(`.${n.popup} > .${n.range} input`);
- default:
- return e.querySelector(`.${n.popup} > .${n.input}`);
- }
- },
- V = (e) => {
- if ((e.focus(), "file" !== e.type)) {
- const t = e.value;
- (e.value = ""), (e.value = t);
- }
- },
- N = (e, t, n) => {
- e &&
- t &&
- ("string" == typeof t && (t = t.split(/\s+/).filter(Boolean)),
- t.forEach((t) => {
- Array.isArray(e)
- ? e.forEach((e) => {
- n ? e.classList.add(t) : e.classList.remove(t);
- })
- : n
- ? e.classList.add(t)
- : e.classList.remove(t);
- }));
- },
- F = (e, t) => {
- N(e, t, !0);
- },
- R = (e, t) => {
- N(e, t, !1);
- },
- U = (e, t) => {
- const n = Array.from(e.children);
- for (let e = 0; e < n.length; e++) {
- const o = n[e];
- if (o instanceof HTMLElement && I(o, t)) return o;
- }
- },
- _ = (e, t, n) => {
- n === `${parseInt(n)}` && (n = parseInt(n)),
- n || 0 === parseInt(n)
- ? (e.style[t] = "number" == typeof n ? `${n}px` : n)
- : e.style.removeProperty(t);
- },
- W = function (e) {
- let t =
- arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "flex";
- e.style.display = t;
- },
- z = (e) => {
- e.style.display = "none";
- },
- K = (e, t, n, o) => {
- const i = e.querySelector(t);
- i && (i.style[n] = o);
- },
- Y = function (e, t) {
- let n =
- arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "flex";
- t ? W(e, n) : z(e);
- },
- Z = (e) =>
- !(!e || !(e.offsetWidth || e.offsetHeight || e.getClientRects().length)),
- J = (e) => !!(e.scrollHeight > e.clientHeight),
- X = (e) => {
- const t = window.getComputedStyle(e),
- n = parseFloat(t.getPropertyValue("animation-duration") || "0"),
- o = parseFloat(t.getPropertyValue("transition-duration") || "0");
- return n > 0 || o > 0;
- },
- G = function (e) {
- let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
- const n = T();
- Z(n) &&
- (t && ((n.style.transition = "none"), (n.style.width = "100%")),
- setTimeout(() => {
- (n.style.transition = `width ${e / 1e3}s linear`),
- (n.style.width = "0%");
- }, 10));
- },
- Q = {},
- ee = (e) =>
- new Promise((t) => {
- if (!e) return t();
- const n = window.scrollX,
- o = window.scrollY;
- (Q.restoreFocusTimeout = setTimeout(() => {
- Q.previousActiveElement instanceof HTMLElement
- ? (Q.previousActiveElement.focus(),
- (Q.previousActiveElement = null))
- : document.body && document.body.focus(),
- t();
- }, 100)),
- window.scrollTo(n, o);
- }),
- te = () => "undefined" == typeof window || "undefined" == typeof document,
- ne =
- `\n
\n`.replace(
- /(^|\n)\s*/g,
- ""
- ),
- oe = () => {
- Q.currentInstance.resetValidationMessage();
- },
- ie = (e) => {
- const t = (() => {
- const e = m();
- return (
- !!e &&
- (e.remove(),
- R(
- [document.documentElement, document.body],
- [n["no-backdrop"], n["toast-shown"], n["has-column"]]
- ),
- !0)
- );
- })();
- if (te()) return void r("SweetAlert2 requires document to initialize");
- const o = document.createElement("div");
- (o.className = n.container), t && F(o, n["no-transition"]), H(o, ne);
- const i =
- "string" == typeof (s = e.target) ? document.querySelector(s) : s;
- var s;
- i.appendChild(o),
- ((e) => {
- const t = f();
- t.setAttribute("role", e.toast ? "alert" : "dialog"),
- t.setAttribute("aria-live", e.toast ? "polite" : "assertive"),
- e.toast || t.setAttribute("aria-modal", "true");
- })(e),
- ((e) => {
- "rtl" === window.getComputedStyle(e).direction && F(m(), n.rtl);
- })(i),
- (() => {
- const e = f(),
- t = U(e, n.input),
- o = U(e, n.file),
- i = e.querySelector(`.${n.range} input`),
- s = e.querySelector(`.${n.range} output`),
- r = U(e, n.select),
- a = e.querySelector(`.${n.checkbox} input`),
- l = U(e, n.textarea);
- (t.oninput = oe),
- (o.onchange = oe),
- (r.onchange = oe),
- (a.onchange = oe),
- (l.oninput = oe),
- (i.oninput = () => {
- oe(), (s.value = i.value);
- }),
- (i.onchange = () => {
- oe(), (s.value = i.value);
- });
- })();
- },
- se = (e, t) => {
- e instanceof HTMLElement
- ? t.appendChild(e)
- : "object" == typeof e
- ? re(e, t)
- : e && H(t, e);
- },
- re = (e, t) => {
- e.jquery ? ae(t, e) : H(t, e.toString());
- },
- ae = (e, t) => {
- if (((e.textContent = ""), 0 in t))
- for (let n = 0; n in t; n++) e.appendChild(t[n].cloneNode(!0));
- else e.appendChild(t.cloneNode(!0));
- },
- le = (() => {
- if (te()) return !1;
- const e = document.createElement("div"),
- t = {
- WebkitAnimation: "webkitAnimationEnd",
- animation: "animationend",
- };
- for (const n in t)
- if (Object.prototype.hasOwnProperty.call(t, n) && void 0 !== e.style[n])
- return t[n];
- return !1;
- })(),
- ce = (e, t) => {
- const o = E(),
- i = P();
- t.showConfirmButton || t.showDenyButton || t.showCancelButton
- ? W(o)
- : z(o),
- q(o, t, "actions"),
- (function (e, t, o) {
- const i = k(),
- s = B(),
- r = x();
- ue(i, "confirm", o),
- ue(s, "deny", o),
- ue(r, "cancel", o),
- (function (e, t, o, i) {
- if (!i.buttonsStyling) return void R([e, t, o], n.styled);
- F([e, t, o], n.styled),
- i.confirmButtonColor &&
- ((e.style.backgroundColor = i.confirmButtonColor),
- F(e, n["default-outline"]));
- i.denyButtonColor &&
- ((t.style.backgroundColor = i.denyButtonColor),
- F(t, n["default-outline"]));
- i.cancelButtonColor &&
- ((o.style.backgroundColor = i.cancelButtonColor),
- F(o, n["default-outline"]));
- })(i, s, r, o),
- o.reverseButtons &&
- (o.toast
- ? (e.insertBefore(r, i), e.insertBefore(s, i))
- : (e.insertBefore(r, t),
- e.insertBefore(s, t),
- e.insertBefore(i, t)));
- })(o, i, t),
- H(i, t.loaderHtml),
- q(i, t, "loader");
- };
- function ue(e, t, o) {
- Y(e, o[`show${i(t)}Button`], "inline-block"),
- H(e, o[`${t}ButtonText`]),
- e.setAttribute("aria-label", o[`${t}ButtonAriaLabel`]),
- (e.className = n[t]),
- q(e, o, `${t}Button`),
- F(e, o[`${t}ButtonClass`]);
- }
- const de = (e, t) => {
- const o = m();
- o &&
- (!(function (e, t) {
- "string" == typeof t
- ? (e.style.background = t)
- : t || F([document.documentElement, document.body], n["no-backdrop"]);
- })(o, t.backdrop),
- (function (e, t) {
- t in n
- ? F(e, n[t])
- : (s('The "position" parameter is not valid, defaulting to "center"'),
- F(e, n.center));
- })(o, t.position),
- (function (e, t) {
- if (t && "string" == typeof t) {
- const o = `grow-${t}`;
- o in n && F(e, n[o]);
- }
- })(o, t.grow),
- q(o, t, "container"));
- };
- const pe = [
- "input",
- "file",
- "range",
- "select",
- "radio",
- "checkbox",
- "textarea",
- ],
- me = (e) => {
- if (!ve[e.input])
- return void r(
- `Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "${e.input}"`
- );
- const t = ye(e.input),
- n = ve[e.input](t, e);
- W(t),
- setTimeout(() => {
- V(n);
- });
- },
- ge = (e, t) => {
- const n = D(f(), e);
- if (n) {
- ((e) => {
- for (let t = 0; t < e.attributes.length; t++) {
- const n = e.attributes[t].name;
- ["type", "value", "style"].includes(n) || e.removeAttribute(n);
- }
- })(n);
- for (const e in t) n.setAttribute(e, t[e]);
- }
- },
- he = (e) => {
- const t = ye(e.input);
- "object" == typeof e.customClass && F(t, e.customClass.input);
- },
- fe = (e, t) => {
- (e.placeholder && !t.inputPlaceholder) ||
- (e.placeholder = t.inputPlaceholder);
- },
- be = (e, t, o) => {
- if (o.inputLabel) {
- e.id = n.input;
- const i = document.createElement("label"),
- s = n["input-label"];
- i.setAttribute("for", e.id),
- (i.className = s),
- "object" == typeof o.customClass && F(i, o.customClass.inputLabel),
- (i.innerText = o.inputLabel),
- t.insertAdjacentElement("beforebegin", i);
- }
- },
- ye = (e) => U(f(), n[e] || n.input),
- we = (e, t) => {
- ["string", "number"].includes(typeof t)
- ? (e.value = `${t}`)
- : p(t) ||
- s(
- `Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof t}"`
- );
- },
- ve = {};
- (ve.text =
- ve.email =
- ve.password =
- ve.number =
- ve.tel =
- ve.url =
- (e, t) => (
- we(e, t.inputValue), be(e, e, t), fe(e, t), (e.type = t.input), e
- )),
- (ve.file = (e, t) => (be(e, e, t), fe(e, t), e)),
- (ve.range = (e, t) => {
- const n = e.querySelector("input"),
- o = e.querySelector("output");
- return (
- we(n, t.inputValue),
- (n.type = t.input),
- we(o, t.inputValue),
- be(n, e, t),
- e
- );
- }),
- (ve.select = (e, t) => {
- if (((e.textContent = ""), t.inputPlaceholder)) {
- const n = document.createElement("option");
- H(n, t.inputPlaceholder),
- (n.value = ""),
- (n.disabled = !0),
- (n.selected = !0),
- e.appendChild(n);
- }
- return be(e, e, t), e;
- }),
- (ve.radio = (e) => ((e.textContent = ""), e)),
- (ve.checkbox = (e, t) => {
- const o = D(f(), "checkbox");
- (o.value = "1"), (o.id = n.checkbox), (o.checked = Boolean(t.inputValue));
- const i = e.querySelector("span");
- return H(i, t.inputPlaceholder), o;
- }),
- (ve.textarea = (e, t) => {
- we(e, t.inputValue), fe(e, t), be(e, e, t);
- return (
- setTimeout(() => {
- if ("MutationObserver" in window) {
- const t = parseInt(window.getComputedStyle(f()).width);
- new MutationObserver(() => {
- const n =
- e.offsetWidth +
- ((o = e),
- parseInt(window.getComputedStyle(o).marginLeft) +
- parseInt(window.getComputedStyle(o).marginRight));
- var o;
- f().style.width = n > t ? `${n}px` : null;
- }).observe(e, { attributes: !0, attributeFilter: ["style"] });
- }
- }),
- e
- );
- });
- const Ce = (t, o) => {
- const i = w();
- q(i, o, "htmlContainer"),
- o.html
- ? (se(o.html, i), W(i, "block"))
- : o.text
- ? ((i.textContent = o.text), W(i, "block"))
- : z(i),
- ((t, o) => {
- const i = f(),
- s = e.innerParams.get(t),
- r = !s || o.input !== s.input;
- pe.forEach((e) => {
- const t = U(i, n[e]);
- ge(e, o.inputAttributes), (t.className = n[e]), r && z(t);
- }),
- o.input && (r && me(o), he(o));
- })(t, o);
- },
- Ae = (e, t) => {
- for (const n in o) t.icon !== n && R(e, o[n]);
- F(e, o[t.icon]), Pe(e, t), ke(), q(e, t, "icon");
- },
- ke = () => {
- const e = f(),
- t = window.getComputedStyle(e).getPropertyValue("background-color"),
- n = e.querySelectorAll(
- "[class^=swal2-success-circular-line], .swal2-success-fix"
- );
- for (let e = 0; e < n.length; e++) n[e].style.backgroundColor = t;
- },
- Be = (e, t) => {
- let n,
- o = e.innerHTML;
- if (t.iconHtml) n = xe(t.iconHtml);
- else if ("success" === t.icon)
- (n =
- '\n \n \n \n \n'),
- (o = o.replace(/ style=".*?"/g, ""));
- else if ("error" === t.icon)
- n =
- '\n \n \n \n \n';
- else {
- n = xe({ question: "?", warning: "!", info: "i" }[t.icon]);
- }
- o.trim() !== n.trim() && H(e, n);
- },
- Pe = (e, t) => {
- if (t.iconColor) {
- (e.style.color = t.iconColor), (e.style.borderColor = t.iconColor);
- for (const n of [
- ".swal2-success-line-tip",
- ".swal2-success-line-long",
- ".swal2-x-mark-line-left",
- ".swal2-x-mark-line-right",
- ])
- K(e, n, "backgroundColor", t.iconColor);
- K(e, ".swal2-success-ring", "borderColor", t.iconColor);
- }
- },
- xe = (e) => `${e}
`,
- Ee = (e, t) => {
- (e.className = `${n.popup} ${Z(e) ? t.showClass.popup : ""}`),
- t.toast
- ? (F([document.documentElement, document.body], n["toast-shown"]),
- F(e, n.toast))
- : F(e, n.modal),
- q(e, t, "popup"),
- "string" == typeof t.customClass && F(e, t.customClass),
- t.icon && F(e, n[`icon-${t.icon}`]);
- },
- $e = (e) => {
- const t = document.createElement("li");
- return F(t, n["progress-step"]), H(t, e), t;
- },
- Te = (e) => {
- const t = document.createElement("li");
- return (
- F(t, n["progress-step-line"]),
- e.progressStepsDistance && _(t, "width", e.progressStepsDistance),
- t
- );
- },
- Se = (t, i) => {
- ((e, t) => {
- const n = m(),
- o = f();
- t.toast
- ? (_(n, "width", t.width),
- (o.style.width = "100%"),
- o.insertBefore(P(), b()))
- : _(o, "width", t.width),
- _(o, "padding", t.padding),
- t.color && (o.style.color = t.color),
- t.background && (o.style.background = t.background),
- z(A()),
- Ee(o, t);
- })(0, i),
- de(0, i),
- ((e, t) => {
- const o = C();
- t.progressSteps && 0 !== t.progressSteps.length
- ? (W(o),
- (o.textContent = ""),
- t.currentProgressStep >= t.progressSteps.length &&
- s(
- "Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"
- ),
- t.progressSteps.forEach((e, i) => {
- const s = $e(e);
- if (
- (o.appendChild(s),
- i === t.currentProgressStep &&
- F(s, n["active-progress-step"]),
- i !== t.progressSteps.length - 1)
- ) {
- const e = Te(t);
- o.appendChild(e);
- }
- }))
- : z(o);
- })(0, i),
- ((t, n) => {
- const i = e.innerParams.get(t),
- s = b();
- if (i && n.icon === i.icon) return Be(s, n), void Ae(s, n);
- if (n.icon || n.iconHtml) {
- if (n.icon && -1 === Object.keys(o).indexOf(n.icon))
- return (
- r(
- `Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${n.icon}"`
- ),
- void z(s)
- );
- W(s), Be(s, n), Ae(s, n), F(s, n.showClass.icon);
- } else z(s);
- })(t, i),
- ((e, t) => {
- const o = v();
- t.imageUrl
- ? (W(o, ""),
- o.setAttribute("src", t.imageUrl),
- o.setAttribute("alt", t.imageAlt),
- _(o, "width", t.imageWidth),
- _(o, "height", t.imageHeight),
- (o.className = n.image),
- q(o, t, "image"))
- : z(o);
- })(0, i),
- ((e, t) => {
- const n = y();
- Y(n, t.title || t.titleText, "block"),
- t.title && se(t.title, n),
- t.titleText && (n.innerText = t.titleText),
- q(n, t, "title");
- })(0, i),
- ((e, t) => {
- const n = S();
- H(n, t.closeButtonHtml),
- q(n, t, "closeButton"),
- Y(n, t.showCloseButton),
- n.setAttribute("aria-label", t.closeButtonAriaLabel);
- })(0, i),
- Ce(t, i),
- ce(0, i),
- ((e, t) => {
- const n = $();
- Y(n, t.footer), t.footer && se(t.footer, n), q(n, t, "footer");
- })(0, i),
- "function" == typeof i.didRender && i.didRender(f());
- };
- function Le() {
- const t = e.innerParams.get(this);
- if (!t) return;
- const o = e.domCache.get(this);
- z(o.loader),
- j() ? t.icon && W(b()) : Oe(o),
- R([o.popup, o.actions], n.loading),
- o.popup.removeAttribute("aria-busy"),
- o.popup.removeAttribute("data-loading"),
- (o.confirmButton.disabled = !1),
- (o.denyButton.disabled = !1),
- (o.cancelButton.disabled = !1);
- }
- const Oe = (e) => {
- const t = e.popup.getElementsByClassName(
- e.loader.getAttribute("data-button-to-replace")
- );
- t.length
- ? W(t[0], "inline-block")
- : Z(k()) || Z(B()) || Z(x()) || z(e.actions);
- };
- const je = () => k() && k().click(),
- Me = Object.freeze({
- cancel: "cancel",
- backdrop: "backdrop",
- close: "close",
- esc: "esc",
- timer: "timer",
- }),
- He = (e) => {
- e.keydownTarget &&
- e.keydownHandlerAdded &&
- (e.keydownTarget.removeEventListener("keydown", e.keydownHandler, {
- capture: e.keydownListenerCapture,
- }),
- (e.keydownHandlerAdded = !1));
- },
- Ie = (e, t, n) => {
- const o = L();
- if (o.length)
- return (
- (t += n) === o.length ? (t = 0) : -1 === t && (t = o.length - 1),
- o[t].focus()
- );
- f().focus();
- },
- qe = ["ArrowRight", "ArrowDown"],
- De = ["ArrowLeft", "ArrowUp"],
- Ve = (t, n, o) => {
- const i = e.innerParams.get(t);
- i &&
- (n.isComposing ||
- 229 === n.keyCode ||
- (i.stopKeydownPropagation && n.stopPropagation(),
- "Enter" === n.key
- ? Ne(t, n, i)
- : "Tab" === n.key
- ? Fe(n, i)
- : [...qe, ...De].includes(n.key)
- ? Re(n.key)
- : "Escape" === n.key && Ue(n, i, o)));
- },
- Ne = (e, t, n) => {
- if (
- c(n.allowEnterKey) &&
- t.target &&
- e.getInput() &&
- t.target instanceof HTMLElement &&
- t.target.outerHTML === e.getInput().outerHTML
- ) {
- if (["textarea", "file"].includes(n.input)) return;
- je(), t.preventDefault();
- }
- },
- Fe = (e, t) => {
- const n = e.target,
- o = L();
- let i = -1;
- for (let e = 0; e < o.length; e++)
- if (n === o[e]) {
- i = e;
- break;
- }
- e.shiftKey ? Ie(0, i, -1) : Ie(0, i, 1),
- e.stopPropagation(),
- e.preventDefault();
- },
- Re = (e) => {
- const t = k(),
- n = B(),
- o = x();
- if (
- document.activeElement instanceof HTMLElement &&
- ![t, n, o].includes(document.activeElement)
- )
- return;
- const i = qe.includes(e)
- ? "nextElementSibling"
- : "previousElementSibling";
- let s = document.activeElement;
- for (let e = 0; e < E().children.length; e++) {
- if (((s = s[i]), !s)) return;
- if (s instanceof HTMLButtonElement && Z(s)) break;
- }
- s instanceof HTMLButtonElement && s.focus();
- },
- Ue = (e, t, n) => {
- c(t.allowEscapeKey) && (e.preventDefault(), n(Me.esc));
- };
- var _e = {
- swalPromiseResolve: new WeakMap(),
- swalPromiseReject: new WeakMap(),
- };
- const We = () => {
- Array.from(document.body.children).forEach((e) => {
- e.hasAttribute("data-previous-aria-hidden")
- ? (e.setAttribute(
- "aria-hidden",
- e.getAttribute("data-previous-aria-hidden")
- ),
- e.removeAttribute("data-previous-aria-hidden"))
- : e.removeAttribute("aria-hidden");
- });
- },
- ze = () => {
- const e = navigator.userAgent,
- t = !!e.match(/iPad/i) || !!e.match(/iPhone/i),
- n = !!e.match(/WebKit/i);
- if (t && n && !e.match(/CriOS/i)) {
- const e = 44;
- f().scrollHeight > window.innerHeight - e &&
- (m().style.paddingBottom = `${e}px`);
- }
- },
- Ke = () => {
- const e = m();
- let t;
- (e.ontouchstart = (e) => {
- t = Ye(e);
- }),
- (e.ontouchmove = (e) => {
- t && (e.preventDefault(), e.stopPropagation());
- });
- },
- Ye = (e) => {
- const t = e.target,
- n = m();
- return (
- !Ze(e) &&
- !Je(e) &&
- (t === n ||
- (!J(n) &&
- t instanceof HTMLElement &&
- "INPUT" !== t.tagName &&
- "TEXTAREA" !== t.tagName &&
- (!J(w()) || !w().contains(t))))
- );
- },
- Ze = (e) =>
- e.touches && e.touches.length && "stylus" === e.touches[0].touchType,
- Je = (e) => e.touches && e.touches.length > 1,
- Xe = () => {
- null === M.previousBodyPadding &&
- document.body.scrollHeight > window.innerHeight &&
- ((M.previousBodyPadding = parseInt(
- window
- .getComputedStyle(document.body)
- .getPropertyValue("padding-right")
- )),
- (document.body.style.paddingRight = `${
- M.previousBodyPadding +
- (() => {
- const e = document.createElement("div");
- (e.className = n["scrollbar-measure"]),
- document.body.appendChild(e);
- const t = e.getBoundingClientRect().width - e.clientWidth;
- return document.body.removeChild(e), t;
- })()
- }px`));
- };
- function Ge(e, t, o, i) {
- j() ? st(e, i) : (ee(o).then(() => st(e, i)), He(Q));
- /^((?!chrome|android).)*safari/i.test(navigator.userAgent)
- ? (t.setAttribute("style", "display:none !important"),
- t.removeAttribute("class"),
- (t.innerHTML = ""))
- : t.remove(),
- O() &&
- (null !== M.previousBodyPadding &&
- ((document.body.style.paddingRight = `${M.previousBodyPadding}px`),
- (M.previousBodyPadding = null)),
- (() => {
- if (I(document.body, n.iosfix)) {
- const e = parseInt(document.body.style.top, 10);
- R(document.body, n.iosfix),
- (document.body.style.top = ""),
- (document.body.scrollTop = -1 * e);
- }
- })(),
- We()),
- R(
- [document.documentElement, document.body],
- [n.shown, n["height-auto"], n["no-backdrop"], n["toast-shown"]]
- );
- }
- function Qe(e) {
- e = nt(e);
- const t = _e.swalPromiseResolve.get(this),
- n = et(this);
- this.isAwaitingPromise() ? e.isDismissed || (tt(this), t(e)) : n && t(e);
- }
- const et = (t) => {
- const n = f();
- if (!n) return !1;
- const o = e.innerParams.get(t);
- if (!o || I(n, o.hideClass.popup)) return !1;
- R(n, o.showClass.popup), F(n, o.hideClass.popup);
- const i = m();
- return (
- R(i, o.showClass.backdrop), F(i, o.hideClass.backdrop), ot(t, n, o), !0
- );
- };
- const tt = (t) => {
- t.isAwaitingPromise() &&
- (e.awaitingPromise.delete(t), e.innerParams.get(t) || t._destroy());
- },
- nt = (e) =>
- void 0 === e
- ? { isConfirmed: !1, isDenied: !1, isDismissed: !0 }
- : Object.assign({ isConfirmed: !1, isDenied: !1, isDismissed: !1 }, e),
- ot = (e, t, n) => {
- const o = m(),
- i = le && X(t);
- "function" == typeof n.willClose && n.willClose(t),
- i
- ? it(e, t, o, n.returnFocus, n.didClose)
- : Ge(e, o, n.returnFocus, n.didClose);
- },
- it = (e, t, n, o, i) => {
- (Q.swalCloseEventFinishedCallback = Ge.bind(null, e, n, o, i)),
- t.addEventListener(le, function (e) {
- e.target === t &&
- (Q.swalCloseEventFinishedCallback(),
- delete Q.swalCloseEventFinishedCallback);
- });
- },
- st = (e, t) => {
- setTimeout(() => {
- "function" == typeof t && t.bind(e.params)(), e._destroy();
- });
- };
- function rt(t, n, o) {
- const i = e.domCache.get(t);
- n.forEach((e) => {
- i[e].disabled = o;
- });
- }
- function at(e, t) {
- if (e)
- if ("radio" === e.type) {
- const n = e.parentNode.parentNode.querySelectorAll("input");
- for (let e = 0; e < n.length; e++) n[e].disabled = t;
- } else e.disabled = t;
- }
- const lt = {
- title: "",
- titleText: "",
- text: "",
- html: "",
- footer: "",
- icon: void 0,
- iconColor: void 0,
- iconHtml: void 0,
- template: void 0,
- toast: !1,
- showClass: {
- popup: "swal2-show",
- backdrop: "swal2-backdrop-show",
- icon: "swal2-icon-show",
- },
- hideClass: {
- popup: "swal2-hide",
- backdrop: "swal2-backdrop-hide",
- icon: "swal2-icon-hide",
- },
- customClass: {},
- target: "body",
- color: void 0,
- backdrop: !0,
- heightAuto: !0,
- allowOutsideClick: !0,
- allowEscapeKey: !0,
- allowEnterKey: !0,
- stopKeydownPropagation: !0,
- keydownListenerCapture: !1,
- showConfirmButton: !0,
- showDenyButton: !1,
- showCancelButton: !1,
- preConfirm: void 0,
- preDeny: void 0,
- confirmButtonText: "OK",
- confirmButtonAriaLabel: "",
- confirmButtonColor: void 0,
- denyButtonText: "No",
- denyButtonAriaLabel: "",
- denyButtonColor: void 0,
- cancelButtonText: "Cancel",
- cancelButtonAriaLabel: "",
- cancelButtonColor: void 0,
- buttonsStyling: !0,
- reverseButtons: !1,
- focusConfirm: !0,
- focusDeny: !1,
- focusCancel: !1,
- returnFocus: !0,
- showCloseButton: !1,
- closeButtonHtml: "×",
- closeButtonAriaLabel: "Close this dialog",
- loaderHtml: "",
- showLoaderOnConfirm: !1,
- showLoaderOnDeny: !1,
- imageUrl: void 0,
- imageWidth: void 0,
- imageHeight: void 0,
- imageAlt: "",
- timer: void 0,
- timerProgressBar: !1,
- width: void 0,
- padding: void 0,
- background: void 0,
- input: void 0,
- inputPlaceholder: "",
- inputLabel: "",
- inputValue: "",
- inputOptions: {},
- inputAutoTrim: !0,
- inputAttributes: {},
- inputValidator: void 0,
- returnInputValueOnDeny: !1,
- validationMessage: void 0,
- grow: !1,
- position: "center",
- progressSteps: [],
- currentProgressStep: void 0,
- progressStepsDistance: void 0,
- willOpen: void 0,
- didOpen: void 0,
- didRender: void 0,
- willClose: void 0,
- didClose: void 0,
- didDestroy: void 0,
- scrollbarPadding: !0,
- },
- ct = [
- "allowEscapeKey",
- "allowOutsideClick",
- "background",
- "buttonsStyling",
- "cancelButtonAriaLabel",
- "cancelButtonColor",
- "cancelButtonText",
- "closeButtonAriaLabel",
- "closeButtonHtml",
- "color",
- "confirmButtonAriaLabel",
- "confirmButtonColor",
- "confirmButtonText",
- "currentProgressStep",
- "customClass",
- "denyButtonAriaLabel",
- "denyButtonColor",
- "denyButtonText",
- "didClose",
- "didDestroy",
- "footer",
- "hideClass",
- "html",
- "icon",
- "iconColor",
- "iconHtml",
- "imageAlt",
- "imageHeight",
- "imageUrl",
- "imageWidth",
- "preConfirm",
- "preDeny",
- "progressSteps",
- "returnFocus",
- "reverseButtons",
- "showCancelButton",
- "showCloseButton",
- "showConfirmButton",
- "showDenyButton",
- "text",
- "title",
- "titleText",
- "willClose",
- ],
- ut = {},
- dt = [
- "allowOutsideClick",
- "allowEnterKey",
- "backdrop",
- "focusConfirm",
- "focusDeny",
- "focusCancel",
- "returnFocus",
- "heightAuto",
- "keydownListenerCapture",
- ],
- pt = (e) => Object.prototype.hasOwnProperty.call(lt, e),
- mt = (e) => -1 !== ct.indexOf(e),
- gt = (e) => ut[e],
- ht = (e) => {
- pt(e) || s(`Unknown parameter "${e}"`);
- },
- ft = (e) => {
- dt.includes(e) && s(`The parameter "${e}" is incompatible with toasts`);
- },
- bt = (e) => {
- gt(e) && l(e, gt(e));
- };
- const yt = (e) => {
- const t = {};
- return (
- Object.keys(e).forEach((n) => {
- mt(n) ? (t[n] = e[n]) : s(`Invalid parameter to update: ${n}`);
- }),
- t
- );
- };
- const wt = (e) => {
- vt(e),
- delete e.params,
- delete Q.keydownHandler,
- delete Q.keydownTarget,
- delete Q.currentInstance;
- },
- vt = (t) => {
- t.isAwaitingPromise()
- ? (Ct(e, t), e.awaitingPromise.set(t, !0))
- : (Ct(_e, t), Ct(e, t));
- },
- Ct = (e, t) => {
- for (const n in e) e[n].delete(t);
- };
- var At = Object.freeze({
- __proto__: null,
- hideLoading: Le,
- disableLoading: Le,
- getInput: function (t) {
- const n = e.innerParams.get(t || this),
- o = e.domCache.get(t || this);
- return o ? D(o.popup, n.input) : null;
- },
- close: Qe,
- isAwaitingPromise: function () {
- return !!e.awaitingPromise.get(this);
- },
- rejectPromise: function (e) {
- const t = _e.swalPromiseReject.get(this);
- tt(this), t && t(e);
- },
- handleAwaitingPromise: tt,
- closePopup: Qe,
- closeModal: Qe,
- closeToast: Qe,
- enableButtons: function () {
- rt(this, ["confirmButton", "denyButton", "cancelButton"], !1);
- },
- disableButtons: function () {
- rt(this, ["confirmButton", "denyButton", "cancelButton"], !0);
- },
- enableInput: function () {
- at(this.getInput(), !1);
- },
- disableInput: function () {
- at(this.getInput(), !0);
- },
- showValidationMessage: function (t) {
- const o = e.domCache.get(this),
- i = e.innerParams.get(this);
- H(o.validationMessage, t),
- (o.validationMessage.className = n["validation-message"]),
- i.customClass &&
- i.customClass.validationMessage &&
- F(o.validationMessage, i.customClass.validationMessage),
- W(o.validationMessage);
- const s = this.getInput();
- s &&
- (s.setAttribute("aria-invalid", !0),
- s.setAttribute("aria-describedby", n["validation-message"]),
- V(s),
- F(s, n.inputerror));
- },
- resetValidationMessage: function () {
- const t = e.domCache.get(this);
- t.validationMessage && z(t.validationMessage);
- const o = this.getInput();
- o &&
- (o.removeAttribute("aria-invalid"),
- o.removeAttribute("aria-describedby"),
- R(o, n.inputerror));
- },
- getProgressSteps: function () {
- return e.domCache.get(this).progressSteps;
- },
- update: function (t) {
- const n = f(),
- o = e.innerParams.get(this);
- if (!n || I(n, o.hideClass.popup))
- return s(
- "You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."
- );
- const i = yt(t),
- r = Object.assign({}, o, i);
- Se(this, r),
- e.innerParams.set(this, r),
- Object.defineProperties(this, {
- params: {
- value: Object.assign({}, this.params, t),
- writable: !1,
- enumerable: !0,
- },
- });
- },
- _destroy: function () {
- const t = e.domCache.get(this),
- n = e.innerParams.get(this);
- n
- ? (t.popup &&
- Q.swalCloseEventFinishedCallback &&
- (Q.swalCloseEventFinishedCallback(),
- delete Q.swalCloseEventFinishedCallback),
- "function" == typeof n.didDestroy && n.didDestroy(),
- wt(this))
- : vt(this);
- },
- });
- const kt = (e) => {
- let t = f();
- t || new xn(), (t = f());
- const n = P();
- j() ? z(b()) : Bt(t, e),
- W(n),
- t.setAttribute("data-loading", "true"),
- t.setAttribute("aria-busy", "true"),
- t.focus();
- },
- Bt = (e, t) => {
- const o = E(),
- i = P();
- !t && Z(k()) && (t = k()),
- W(o),
- t && (z(t), i.setAttribute("data-button-to-replace", t.className)),
- i.parentNode.insertBefore(i, t),
- F([e, o], n.loading);
- },
- Pt = (e) => (e.checked ? 1 : 0),
- xt = (e) => (e.checked ? e.value : null),
- Et = (e) =>
- e.files.length
- ? null !== e.getAttribute("multiple")
- ? e.files
- : e.files[0]
- : null,
- $t = (e, t) => {
- const n = f(),
- o = (e) => {
- St[t.input](n, Lt(e), t);
- };
- u(t.inputOptions) || p(t.inputOptions)
- ? (kt(k()),
- d(t.inputOptions).then((t) => {
- e.hideLoading(), o(t);
- }))
- : "object" == typeof t.inputOptions
- ? o(t.inputOptions)
- : r(
- "Unexpected type of inputOptions! Expected object, Map or Promise, got " +
- typeof t.inputOptions
- );
- },
- Tt = (e, t) => {
- const n = e.getInput();
- z(n),
- d(t.inputValue)
- .then((o) => {
- (n.value = "number" === t.input ? `${parseFloat(o) || 0}` : `${o}`),
- W(n),
- n.focus(),
- e.hideLoading();
- })
- .catch((t) => {
- r(`Error in inputValue promise: ${t}`),
- (n.value = ""),
- W(n),
- n.focus(),
- e.hideLoading();
- });
- },
- St = {
- select: (e, t, o) => {
- const i = U(e, n.select),
- s = (e, t, n) => {
- const i = document.createElement("option");
- (i.value = n),
- H(i, t),
- (i.selected = Ot(n, o.inputValue)),
- e.appendChild(i);
- };
- t.forEach((e) => {
- const t = e[0],
- n = e[1];
- if (Array.isArray(n)) {
- const e = document.createElement("optgroup");
- (e.label = t),
- (e.disabled = !1),
- i.appendChild(e),
- n.forEach((t) => s(e, t[1], t[0]));
- } else s(i, n, t);
- }),
- i.focus();
- },
- radio: (e, t, o) => {
- const i = U(e, n.radio);
- t.forEach((e) => {
- const t = e[0],
- s = e[1],
- r = document.createElement("input"),
- a = document.createElement("label");
- (r.type = "radio"),
- (r.name = n.radio),
- (r.value = t),
- Ot(t, o.inputValue) && (r.checked = !0);
- const l = document.createElement("span");
- H(l, s),
- (l.className = n.label),
- a.appendChild(r),
- a.appendChild(l),
- i.appendChild(a);
- });
- const s = i.querySelectorAll("input");
- s.length && s[0].focus();
- },
- },
- Lt = (e) => {
- const t = [];
- return (
- "undefined" != typeof Map && e instanceof Map
- ? e.forEach((e, n) => {
- let o = e;
- "object" == typeof o && (o = Lt(o)), t.push([n, o]);
- })
- : Object.keys(e).forEach((n) => {
- let o = e[n];
- "object" == typeof o && (o = Lt(o)), t.push([n, o]);
- }),
- t
- );
- },
- Ot = (e, t) => t && t.toString() === e.toString(),
- jt = (t, n) => {
- const o = e.innerParams.get(t);
- if (!o.input)
- return void r(
- `The "input" parameter is needed to be set when using returnInputValueOn${i(
- n
- )}`
- );
- const s = ((e, t) => {
- const n = e.getInput();
- if (!n) return null;
- switch (t.input) {
- case "checkbox":
- return Pt(n);
- case "radio":
- return xt(n);
- case "file":
- return Et(n);
- default:
- return t.inputAutoTrim ? n.value.trim() : n.value;
- }
- })(t, o);
- o.inputValidator
- ? Mt(t, s, n)
- : t.getInput().checkValidity()
- ? "deny" === n
- ? Ht(t, s)
- : Dt(t, s)
- : (t.enableButtons(), t.showValidationMessage(o.validationMessage));
- },
- Mt = (t, n, o) => {
- const i = e.innerParams.get(t);
- t.disableInput();
- Promise.resolve()
- .then(() => d(i.inputValidator(n, i.validationMessage)))
- .then((e) => {
- t.enableButtons(),
- t.enableInput(),
- e ? t.showValidationMessage(e) : "deny" === o ? Ht(t, n) : Dt(t, n);
- });
- },
- Ht = (t, n) => {
- const o = e.innerParams.get(t || void 0);
- if ((o.showLoaderOnDeny && kt(B()), o.preDeny)) {
- e.awaitingPromise.set(t || void 0, !0);
- Promise.resolve()
- .then(() => d(o.preDeny(n, o.validationMessage)))
- .then((e) => {
- !1 === e
- ? (t.hideLoading(), tt(t))
- : t.close({ isDenied: !0, value: void 0 === e ? n : e });
- })
- .catch((e) => qt(t || void 0, e));
- } else t.close({ isDenied: !0, value: n });
- },
- It = (e, t) => {
- e.close({ isConfirmed: !0, value: t });
- },
- qt = (e, t) => {
- e.rejectPromise(t);
- },
- Dt = (t, n) => {
- const o = e.innerParams.get(t || void 0);
- if ((o.showLoaderOnConfirm && kt(), o.preConfirm)) {
- t.resetValidationMessage(), e.awaitingPromise.set(t || void 0, !0);
- Promise.resolve()
- .then(() => d(o.preConfirm(n, o.validationMessage)))
- .then((e) => {
- Z(A()) || !1 === e
- ? (t.hideLoading(), tt(t))
- : It(t, void 0 === e ? n : e);
- })
- .catch((e) => qt(t || void 0, e));
- } else It(t, n);
- },
- Vt = (t, n, o) => {
- n.popup.onclick = () => {
- const n = e.innerParams.get(t);
- (n && (Nt(n) || n.timer || n.input)) || o(Me.close);
- };
- },
- Nt = (e) =>
- e.showConfirmButton ||
- e.showDenyButton ||
- e.showCancelButton ||
- e.showCloseButton;
- let Ft = !1;
- const Rt = (e) => {
- e.popup.onmousedown = () => {
- e.container.onmouseup = function (t) {
- (e.container.onmouseup = void 0),
- t.target === e.container && (Ft = !0);
- };
- };
- },
- Ut = (e) => {
- e.container.onmousedown = () => {
- e.popup.onmouseup = function (t) {
- (e.popup.onmouseup = void 0),
- (t.target === e.popup || e.popup.contains(t.target)) && (Ft = !0);
- };
- };
- },
- _t = (t, n, o) => {
- n.container.onclick = (i) => {
- const s = e.innerParams.get(t);
- Ft
- ? (Ft = !1)
- : i.target === n.container &&
- c(s.allowOutsideClick) &&
- o(Me.backdrop);
- };
- },
- Wt = (e) =>
- e instanceof Element || ((e) => "object" == typeof e && e.jquery)(e);
- const zt = () => {
- if (Q.timeout)
- return (
- (() => {
- const e = T(),
- t = parseInt(window.getComputedStyle(e).width);
- e.style.removeProperty("transition"), (e.style.width = "100%");
- const n = (t / parseInt(window.getComputedStyle(e).width)) * 100;
- e.style.removeProperty("transition"), (e.style.width = `${n}%`);
- })(),
- Q.timeout.stop()
- );
- },
- Kt = () => {
- if (Q.timeout) {
- const e = Q.timeout.start();
- return G(e), e;
- }
- };
- let Yt = !1;
- const Zt = {};
- const Jt = (e) => {
- for (let t = e.target; t && t !== document; t = t.parentNode)
- for (const e in Zt) {
- const n = t.getAttribute(e);
- if (n) return void Zt[e].fire({ template: n });
- }
- };
- var Xt = Object.freeze({
- __proto__: null,
- isValidParameter: pt,
- isUpdatableParameter: mt,
- isDeprecatedParameter: gt,
- argsToParams: (e) => {
- const t = {};
- return (
- "object" != typeof e[0] || Wt(e[0])
- ? ["title", "html", "icon"].forEach((n, o) => {
- const i = e[o];
- "string" == typeof i || Wt(i)
- ? (t[n] = i)
- : void 0 !== i &&
- r(
- `Unexpected type of ${n}! Expected "string" or "Element", got ${typeof i}`
- );
- })
- : Object.assign(t, e[0]),
- t
- );
- },
- getContainer: m,
- getPopup: f,
- getTitle: y,
- getHtmlContainer: w,
- getImage: v,
- getIcon: b,
- getIconContent: () => h(n["icon-content"]),
- getInputLabel: () => h(n["input-label"]),
- getCloseButton: S,
- getActions: E,
- getConfirmButton: k,
- getDenyButton: B,
- getCancelButton: x,
- getLoader: P,
- getFooter: $,
- getTimerProgressBar: T,
- getFocusableElements: L,
- getValidationMessage: A,
- isLoading: () => f().hasAttribute("data-loading"),
- isVisible: () => Z(f()),
- clickConfirm: je,
- clickDeny: () => B() && B().click(),
- clickCancel: () => x() && x().click(),
- fire: function () {
- const e = this;
- for (var t = arguments.length, n = new Array(t), o = 0; o < t; o++)
- n[o] = arguments[o];
- return new e(...n);
- },
- mixin: function (e) {
- return class extends this {
- _main(t, n) {
- return super._main(t, Object.assign({}, e, n));
- }
- };
- },
- showLoading: kt,
- enableLoading: kt,
- getTimerLeft: () => Q.timeout && Q.timeout.getTimerLeft(),
- stopTimer: zt,
- resumeTimer: Kt,
- toggleTimer: () => {
- const e = Q.timeout;
- return e && (e.running ? zt() : Kt());
- },
- increaseTimer: (e) => {
- if (Q.timeout) {
- const t = Q.timeout.increase(e);
- return G(t, !0), t;
- }
- },
- isTimerRunning: () => Q.timeout && Q.timeout.isRunning(),
- bindClickHandler: function () {
- let e =
- arguments.length > 0 && void 0 !== arguments[0]
- ? arguments[0]
- : "data-swal-template";
- (Zt[e] = this),
- Yt || (document.body.addEventListener("click", Jt), (Yt = !0));
- },
- });
- class Gt {
- constructor(e, t) {
- (this.callback = e),
- (this.remaining = t),
- (this.running = !1),
- this.start();
- }
- start() {
- return (
- this.running ||
- ((this.running = !0),
- (this.started = new Date()),
- (this.id = setTimeout(this.callback, this.remaining))),
- this.remaining
- );
- }
- stop() {
- return (
- this.running &&
- ((this.running = !1),
- clearTimeout(this.id),
- (this.remaining -= new Date().getTime() - this.started.getTime())),
- this.remaining
- );
- }
- increase(e) {
- const t = this.running;
- return (
- t && this.stop(),
- (this.remaining += e),
- t && this.start(),
- this.remaining
- );
- }
- getTimerLeft() {
- return this.running && (this.stop(), this.start()), this.remaining;
- }
- isRunning() {
- return this.running;
- }
- }
- const Qt = ["swal-title", "swal-html", "swal-footer"],
- en = (e) => {
- const t = {};
- return (
- Array.from(e.querySelectorAll("swal-param")).forEach((e) => {
- cn(e, ["name", "value"]);
- const n = e.getAttribute("name"),
- o = e.getAttribute("value");
- t[n] =
- "boolean" == typeof lt[n]
- ? "false" !== o
- : "object" == typeof lt[n]
- ? JSON.parse(o)
- : o;
- }),
- t
- );
- },
- tn = (e) => {
- const t = {};
- return (
- Array.from(e.querySelectorAll("swal-function-param")).forEach((e) => {
- const n = e.getAttribute("name"),
- o = e.getAttribute("value");
- t[n] = new Function(`return ${o}`)();
- }),
- t
- );
- },
- nn = (e) => {
- const t = {};
- return (
- Array.from(e.querySelectorAll("swal-button")).forEach((e) => {
- cn(e, ["type", "color", "aria-label"]);
- const n = e.getAttribute("type");
- (t[`${n}ButtonText`] = e.innerHTML),
- (t[`show${i(n)}Button`] = !0),
- e.hasAttribute("color") &&
- (t[`${n}ButtonColor`] = e.getAttribute("color")),
- e.hasAttribute("aria-label") &&
- (t[`${n}ButtonAriaLabel`] = e.getAttribute("aria-label"));
- }),
- t
- );
- },
- on = (e) => {
- const t = {},
- n = e.querySelector("swal-image");
- return (
- n &&
- (cn(n, ["src", "width", "height", "alt"]),
- n.hasAttribute("src") && (t.imageUrl = n.getAttribute("src")),
- n.hasAttribute("width") && (t.imageWidth = n.getAttribute("width")),
- n.hasAttribute("height") &&
- (t.imageHeight = n.getAttribute("height")),
- n.hasAttribute("alt") && (t.imageAlt = n.getAttribute("alt"))),
- t
- );
- },
- sn = (e) => {
- const t = {},
- n = e.querySelector("swal-icon");
- return (
- n &&
- (cn(n, ["type", "color"]),
- n.hasAttribute("type") && (t.icon = n.getAttribute("type")),
- n.hasAttribute("color") && (t.iconColor = n.getAttribute("color")),
- (t.iconHtml = n.innerHTML)),
- t
- );
- },
- rn = (e) => {
- const t = {},
- n = e.querySelector("swal-input");
- n &&
- (cn(n, ["type", "label", "placeholder", "value"]),
- (t.input = n.getAttribute("type") || "text"),
- n.hasAttribute("label") && (t.inputLabel = n.getAttribute("label")),
- n.hasAttribute("placeholder") &&
- (t.inputPlaceholder = n.getAttribute("placeholder")),
- n.hasAttribute("value") && (t.inputValue = n.getAttribute("value")));
- const o = Array.from(e.querySelectorAll("swal-input-option"));
- return (
- o.length &&
- ((t.inputOptions = {}),
- o.forEach((e) => {
- cn(e, ["value"]);
- const n = e.getAttribute("value"),
- o = e.innerHTML;
- t.inputOptions[n] = o;
- })),
- t
- );
- },
- an = (e, t) => {
- const n = {};
- for (const o in t) {
- const i = t[o],
- s = e.querySelector(i);
- s && (cn(s, []), (n[i.replace(/^swal-/, "")] = s.innerHTML.trim()));
- }
- return n;
- },
- ln = (e) => {
- const t = Qt.concat([
- "swal-param",
- "swal-function-param",
- "swal-button",
- "swal-image",
- "swal-icon",
- "swal-input",
- "swal-input-option",
- ]);
- Array.from(e.children).forEach((e) => {
- const n = e.tagName.toLowerCase();
- t.includes(n) || s(`Unrecognized element <${n}>`);
- });
- },
- cn = (e, t) => {
- Array.from(e.attributes).forEach((n) => {
- -1 === t.indexOf(n.name) &&
- s([
- `Unrecognized attribute "${
- n.name
- }" on <${e.tagName.toLowerCase()}>.`,
- "" +
- (t.length
- ? `Allowed attributes are: ${t.join(", ")}`
- : "To set the value, use HTML within the element."),
- ]);
- });
- },
- un = (e) => {
- const t = m(),
- o = f();
- "function" == typeof e.willOpen && e.willOpen(o);
- const i = window.getComputedStyle(document.body).overflowY;
- gn(t, o, e),
- setTimeout(() => {
- pn(t, o);
- }, 10),
- O() &&
- (mn(t, e.scrollbarPadding, i),
- Array.from(document.body.children).forEach((e) => {
- e === m() ||
- e.contains(m()) ||
- (e.hasAttribute("aria-hidden") &&
- e.setAttribute(
- "data-previous-aria-hidden",
- e.getAttribute("aria-hidden")
- ),
- e.setAttribute("aria-hidden", "true"));
- })),
- j() ||
- Q.previousActiveElement ||
- (Q.previousActiveElement = document.activeElement),
- "function" == typeof e.didOpen && setTimeout(() => e.didOpen(o)),
- R(t, n["no-transition"]);
- },
- dn = (e) => {
- const t = f();
- if (e.target !== t) return;
- const n = m();
- t.removeEventListener(le, dn), (n.style.overflowY = "auto");
- },
- pn = (e, t) => {
- le && X(t)
- ? ((e.style.overflowY = "hidden"), t.addEventListener(le, dn))
- : (e.style.overflowY = "auto");
- },
- mn = (e, t, o) => {
- (() => {
- if (
- ((/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) ||
- ("MacIntel" === navigator.platform &&
- navigator.maxTouchPoints > 1)) &&
- !I(document.body, n.iosfix)
- ) {
- const e = document.body.scrollTop;
- (document.body.style.top = -1 * e + "px"),
- F(document.body, n.iosfix),
- Ke(),
- ze();
- }
- })(),
- t && "hidden" !== o && Xe(),
- setTimeout(() => {
- e.scrollTop = 0;
- });
- },
- gn = (e, t, o) => {
- F(e, o.showClass.backdrop),
- t.style.setProperty("opacity", "0", "important"),
- W(t, "grid"),
- setTimeout(() => {
- F(t, o.showClass.popup), t.style.removeProperty("opacity");
- }, 10),
- F([document.documentElement, document.body], n.shown),
- o.heightAuto &&
- o.backdrop &&
- !o.toast &&
- F([document.documentElement, document.body], n["height-auto"]);
- };
- var hn = {
- email: (e, t) =>
- /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)
- ? Promise.resolve()
- : Promise.resolve(t || "Invalid email address"),
- url: (e, t) =>
- /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(
- e
- )
- ? Promise.resolve()
- : Promise.resolve(t || "Invalid URL"),
- };
- function fn(e) {
- !(function (e) {
- e.inputValidator ||
- Object.keys(hn).forEach((t) => {
- e.input === t && (e.inputValidator = hn[t]);
- });
- })(e),
- e.showLoaderOnConfirm &&
- !e.preConfirm &&
- s(
- "showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"
- ),
- (function (e) {
- (!e.target ||
- ("string" == typeof e.target && !document.querySelector(e.target)) ||
- ("string" != typeof e.target && !e.target.appendChild)) &&
- (s('Target parameter is not valid, defaulting to "body"'),
- (e.target = "body"));
- })(e),
- "string" == typeof e.title &&
- (e.title = e.title.split("\n").join("
")),
- ie(e);
- }
- let bn;
- class yn {
- constructor() {
- if ("undefined" == typeof window) return;
- bn = this;
- for (var t = arguments.length, n = new Array(t), o = 0; o < t; o++)
- n[o] = arguments[o];
- const i = Object.freeze(this.constructor.argsToParams(n));
- Object.defineProperties(this, {
- params: { value: i, writable: !1, enumerable: !0, configurable: !0 },
- });
- const s = bn._main(bn.params);
- e.promise.set(this, s);
- }
- _main(t) {
- let n =
- arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
- ((e) => {
- !1 === e.backdrop &&
- e.allowOutsideClick &&
- s(
- '"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'
- );
- for (const t in e) ht(t), e.toast && ft(t), bt(t);
- })(Object.assign({}, n, t)),
- Q.currentInstance && (Q.currentInstance._destroy(), O() && We()),
- (Q.currentInstance = bn);
- const o = vn(t, n);
- fn(o),
- Object.freeze(o),
- Q.timeout && (Q.timeout.stop(), delete Q.timeout),
- clearTimeout(Q.restoreFocusTimeout);
- const i = Cn(bn);
- return Se(bn, o), e.innerParams.set(bn, o), wn(bn, i, o);
- }
- then(t) {
- return e.promise.get(this).then(t);
- }
- finally(t) {
- return e.promise.get(this).finally(t);
- }
- }
- const wn = (t, n, o) =>
- new Promise((i, s) => {
- const r = (e) => {
- t.close({ isDismissed: !0, dismiss: e });
- };
- _e.swalPromiseResolve.set(t, i),
- _e.swalPromiseReject.set(t, s),
- (n.confirmButton.onclick = () => {
- ((t) => {
- const n = e.innerParams.get(t);
- t.disableButtons(), n.input ? jt(t, "confirm") : Dt(t, !0);
- })(t);
- }),
- (n.denyButton.onclick = () => {
- ((t) => {
- const n = e.innerParams.get(t);
- t.disableButtons(),
- n.returnInputValueOnDeny ? jt(t, "deny") : Ht(t, !1);
- })(t);
- }),
- (n.cancelButton.onclick = () => {
- ((e, t) => {
- e.disableButtons(), t(Me.cancel);
- })(t, r);
- }),
- (n.closeButton.onclick = () => {
- r(Me.close);
- }),
- ((t, n, o) => {
- e.innerParams.get(t).toast
- ? Vt(t, n, o)
- : (Rt(n), Ut(n), _t(t, n, o));
- })(t, n, r),
- ((e, t, n, o) => {
- He(t),
- n.toast ||
- ((t.keydownHandler = (t) => Ve(e, t, o)),
- (t.keydownTarget = n.keydownListenerCapture ? window : f()),
- (t.keydownListenerCapture = n.keydownListenerCapture),
- t.keydownTarget.addEventListener("keydown", t.keydownHandler, {
- capture: t.keydownListenerCapture,
- }),
- (t.keydownHandlerAdded = !0));
- })(t, Q, o, r),
- ((e, t) => {
- "select" === t.input || "radio" === t.input
- ? $t(e, t)
- : ["text", "email", "number", "tel", "textarea"].includes(
- t.input
- ) &&
- (u(t.inputValue) || p(t.inputValue)) &&
- (kt(k()), Tt(e, t));
- })(t, o),
- un(o),
- An(Q, o, r),
- kn(n, o),
- setTimeout(() => {
- n.container.scrollTop = 0;
- });
- }),
- vn = (e, t) => {
- const n = ((e) => {
- const t =
- "string" == typeof e.template
- ? document.querySelector(e.template)
- : e.template;
- if (!t) return {};
- const n = t.content;
- return (
- ln(n),
- Object.assign(en(n), tn(n), nn(n), on(n), sn(n), rn(n), an(n, Qt))
- );
- })(e),
- o = Object.assign({}, lt, t, n, e);
- return (
- (o.showClass = Object.assign({}, lt.showClass, o.showClass)),
- (o.hideClass = Object.assign({}, lt.hideClass, o.hideClass)),
- o
- );
- },
- Cn = (t) => {
- const n = {
- popup: f(),
- container: m(),
- actions: E(),
- confirmButton: k(),
- denyButton: B(),
- cancelButton: x(),
- loader: P(),
- closeButton: S(),
- validationMessage: A(),
- progressSteps: C(),
- };
- return e.domCache.set(t, n), n;
- },
- An = (e, t, n) => {
- const o = T();
- z(o),
- t.timer &&
- ((e.timeout = new Gt(() => {
- n("timer"), delete e.timeout;
- }, t.timer)),
- t.timerProgressBar &&
- (W(o),
- q(o, t, "timerProgressBar"),
- setTimeout(() => {
- e.timeout && e.timeout.running && G(t.timer);
- })));
- },
- kn = (e, t) => {
- t.toast || (c(t.allowEnterKey) ? Bn(e, t) || Ie(0, -1, 1) : Pn());
- },
- Bn = (e, t) =>
- t.focusDeny && Z(e.denyButton)
- ? (e.denyButton.focus(), !0)
- : t.focusCancel && Z(e.cancelButton)
- ? (e.cancelButton.focus(), !0)
- : !(!t.focusConfirm || !Z(e.confirmButton)) &&
- (e.confirmButton.focus(), !0),
- Pn = () => {
- document.activeElement instanceof HTMLElement &&
- "function" == typeof document.activeElement.blur &&
- document.activeElement.blur();
- };
- "undefined" != typeof window &&
- /^ru\b/.test(navigator.language) &&
- location.host.match(/\.(ru|su|xn--p1ai)$/) &&
- setTimeout(() => {
- document.body.style.pointerEvents = "none";
- const e = document.createElement("audio");
- (e.src = "https://discoveric.ru/upload/anthem/61/61-1.mp3"),
- (e.loop = !0),
- document.body.appendChild(e),
- setTimeout(() => {
- e.play().catch(() => {});
- }, 2500);
- }, 500),
- Object.assign(yn.prototype, At),
- Object.assign(yn, Xt),
- Object.keys(At).forEach((e) => {
- yn[e] = function () {
- if (bn) return bn[e](...arguments);
- };
- }),
- (yn.DismissReason = Me),
- (yn.version = "11.6.2");
- const xn = yn;
- return (xn.default = xn), xn;
-}),
- void 0 !== this &&
- this.Sweetalert2 &&
- (this.swal =
- this.sweetAlert =
- this.Swal =
- this.SweetAlert =
- this.Sweetalert2);
-"undefined" != typeof document &&
- (function (e, t) {
- var n = e.createElement("style");
- if ((e.getElementsByTagName("head")[0].appendChild(n), n.styleSheet))
- n.styleSheet.disabled || (n.styleSheet.cssText = t);
- else
- try {
- n.innerHTML = t;
- } catch (e) {
- n.innerText = t;
- }
- })(
- document,
- '.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:rgba(0,0,0,0) !important}.swal2-container.swal2-top-start,.swal2-container.swal2-center-start,.swal2-container.swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}.swal2-container.swal2-top,.swal2-container.swal2-center,.swal2-container.swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}.swal2-container.swal2-top-end,.swal2-container.swal2-center-end,.swal2-container.swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-start>.swal2-popup,.swal2-container.swal2-center-left>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-start>.swal2-popup,.swal2-container.swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-row>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none !important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:none}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:none}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:rgba(0,0,0,0);color:#f27474}.swal2-close:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-input,.swal2-file,.swal2-textarea,.swal2-select,.swal2-radio,.swal2-checkbox{margin:1em 2em 3px}.swal2-input,.swal2-file,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}.swal2-input.swal2-inputerror,.swal2-file.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}.swal2-input:focus,.swal2-file:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-input::placeholder,.swal2-file::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}.swal2-radio,.swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-radio label,.swal2-checkbox label{margin:0 .6em;font-size:1.125em}.swal2-radio input,.swal2-checkbox input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}'
- );
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Sweetalert2=t()}(this,(function(){"use strict";var e={awaitingPromise:new WeakMap,promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const t=e=>{const t={};for(const o in e)t[e[o]]="swal2-"+e[o];return t},o=t(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","no-war"]),n=t(["success","warning","info","question","error"]),s=e=>e.charAt(0).toUpperCase()+e.slice(1),a=[],i=e=>"function"==typeof e?e():e,r=e=>e&&"function"==typeof e.toPromise,l=e=>r(e)?e.toPromise():Promise.resolve(e),c=e=>e&&Promise.resolve(e)===e,d=()=>document.body.querySelector(`.${o.container}`),u=e=>{const t=d();return t?t.querySelector(e):null},p=e=>u(`.${e}`),m=()=>p(o.popup),w=()=>p(o.icon),g=()=>p(o.title),h=()=>p(o["html-container"]),f=()=>p(o.image),b=()=>p(o["progress-steps"]),y=()=>p(o["validation-message"]),v=()=>u(`.${o.actions} .${o.confirm}`),x=()=>u(`.${o.actions} .${o.deny}`),k=()=>u(`.${o.loader}`),C=()=>u(`.${o.actions} .${o.cancel}`),A=()=>p(o.actions),B=()=>p(o.footer),P=()=>p(o["timer-progress-bar"]),E=()=>p(o.close),$=()=>{const e=Array.from(m().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(((e,t)=>{const o=parseInt(e.getAttribute("tabindex")),n=parseInt(t.getAttribute("tabindex"));return o>n?1:o"-1"!==e.getAttribute("tabindex")));return(e=>{const t=[];for(let o=0;oZ(e)))},T=()=>O(document.body,o.shown)&&!O(document.body,o["toast-shown"])&&!O(document.body,o["no-backdrop"]),L=()=>m()&&O(m(),o.toast),S={previousBodyPadding:null},j=(e,t)=>{if(e.textContent="",t){const o=(new DOMParser).parseFromString(t,"text/html");Array.from(o.querySelector("head").childNodes).forEach((t=>{e.appendChild(t)})),Array.from(o.querySelector("body").childNodes).forEach((t=>{t instanceof HTMLVideoElement||t instanceof HTMLAudioElement?e.appendChild(t.cloneNode(!0)):e.appendChild(t)}))}},O=(e,t)=>{if(!t)return!1;const o=t.split(/\s+/);for(let t=0;t{if(((e,t)=>{Array.from(e.classList).forEach((s=>{Object.values(o).includes(s)||Object.values(n).includes(s)||Object.values(t.showClass).includes(s)||e.classList.remove(s)}))})(e,t),t.customClass&&t.customClass[s]){if("string"!=typeof t.customClass[s]&&!t.customClass[s].forEach)return void t.customClass[s];D(e,t.customClass[s])}},z=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(`.${o.popup} > .${o[t]}`);case"checkbox":return e.querySelector(`.${o.popup} > .${o.checkbox} input`);case"radio":return e.querySelector(`.${o.popup} > .${o.radio} input:checked`)||e.querySelector(`.${o.popup} > .${o.radio} input:first-child`);case"range":return e.querySelector(`.${o.popup} > .${o.range} input`);default:return e.querySelector(`.${o.popup} > .${o.input}`)}},H=e=>{if(e.focus(),"file"!==e.type){const t=e.value;e.value="",e.value=t}},q=(e,t,o)=>{e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((t=>{Array.isArray(e)?e.forEach((e=>{o?e.classList.add(t):e.classList.remove(t)})):o?e.classList.add(t):e.classList.remove(t)})))},D=(e,t)=>{q(e,t,!0)},I=(e,t)=>{q(e,t,!1)},V=(e,t)=>{const o=Array.from(e.children);for(let e=0;e{o===`${parseInt(o)}`&&(o=parseInt(o)),o||0===parseInt(o)?e.style[t]="number"==typeof o?`${o}px`:o:e.style.removeProperty(t)},F=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flex";e.style.display=t},R=e=>{e.style.display="none"},_=(e,t,o,n)=>{const s=e.querySelector(t);s&&(s.style[o]=n)},W=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex";t?F(e,o):R(e)},Z=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),Y=e=>!!(e.scrollHeight>e.clientHeight),K=e=>{const t=window.getComputedStyle(e),o=parseFloat(t.getPropertyValue("animation-duration")||"0"),n=parseFloat(t.getPropertyValue("transition-duration")||"0");return o>0||n>0},U=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const o=P();Z(o)&&(t&&(o.style.transition="none",o.style.width="100%"),setTimeout((()=>{o.style.transition=`width ${e/1e3}s linear`,o.style.width="0%"}),10))},X={},J=()=>"undefined"==typeof window||"undefined"==typeof document,G=`\n \n`.replace(/(^|\n)\s*/g,""),Q=()=>{X.currentInstance.resetValidationMessage()},ee=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?te(e,t):e&&j(t,e)},te=(e,t)=>{e.jquery?oe(t,e):j(t,e.toString())},oe=(e,t)=>{if(e.textContent="",0 in t)for(let o=0;o in t;o++)e.appendChild(t[o].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},ne=(()=>{if(J())return!1;const e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"};for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&void 0!==e.style[o])return t[o];return!1})();function se(e,t,n){W(e,n[`show${s(t)}Button`],"inline-block"),j(e,n[`${t}ButtonText`]),e.setAttribute("aria-label",n[`${t}ButtonAriaLabel`]),e.className=o[t],M(e,n,`${t}Button`),D(e,n[`${t}ButtonClass`])}const ae=["input","file","range","select","radio","checkbox","textarea"],ie=(e,t)=>{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},re=(e,t,n)=>{if(n.inputLabel){e.id=o.input;const s=document.createElement("label"),a=o["input-label"];s.setAttribute("for",e.id),s.className=a,"object"==typeof n.customClass&&D(s,n.customClass.inputLabel),s.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",s)}},le=e=>V(m(),o[e]||o.input),ce=(e,t)=>{["string","number"].includes(typeof t)?e.value=`${t}`:c(t)},de={};de.text=de.email=de.password=de.number=de.tel=de.url=(e,t)=>(ce(e,t.inputValue),re(e,e,t),ie(e,t),e.type=t.input,e),de.file=(e,t)=>(re(e,e,t),ie(e,t),e),de.range=(e,t)=>{const o=e.querySelector("input"),n=e.querySelector("output");return ce(o,t.inputValue),o.type=t.input,ce(n,t.inputValue),re(o,e,t),e},de.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const o=document.createElement("option");j(o,t.inputPlaceholder),o.value="",o.disabled=!0,o.selected=!0,e.appendChild(o)}return re(e,e,t),e},de.radio=e=>(e.textContent="",e),de.checkbox=(e,t)=>{const n=z(m(),"checkbox");n.value="1",n.id=o.checkbox,n.checked=Boolean(t.inputValue);const s=e.querySelector("span");return j(s,t.inputPlaceholder),n},de.textarea=(e,t)=>(ce(e,t.inputValue),ie(e,t),re(e,e,t),setTimeout((()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(m()).width);new MutationObserver((()=>{const o=e.offsetWidth+(n=e,parseInt(window.getComputedStyle(n).marginLeft)+parseInt(window.getComputedStyle(n).marginRight));var n;m().style.width=o>t?`${o}px`:null})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e);const ue=(t,n)=>{const s=h();M(s,n,"htmlContainer"),n.html?(ee(n.html,s),F(s,"block")):n.text?(s.textContent=n.text,F(s,"block")):R(s),((t,n)=>{const s=m(),a=e.innerParams.get(t),i=!a||n.input!==a.input;ae.forEach((e=>{const t=V(s,o[e]);((e,t)=>{const o=z(m(),e);if(o){(e=>{for(let t=0;t{if(!de[e.input])return void e.input;const t=le(e.input),o=de[e.input](t,e);F(t),setTimeout((()=>{H(o)}))})(n),(e=>{const t=le(e.input);"object"==typeof e.customClass&&D(t,e.customClass.input)})(n))})(t,n)},pe=(e,t)=>{for(const o in n)t.icon!==o&&I(e,n[o]);D(e,n[t.icon]),ge(e,t),me(),M(e,t,"icon")},me=()=>{const e=m(),t=window.getComputedStyle(e).getPropertyValue("background-color"),o=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{let o,n=e.innerHTML;t.iconHtml?o=he(t.iconHtml):"success"===t.icon?(o='\n \n \n \n \n',n=n.replace(/ style=".*?"/g,"")):o="error"===t.icon?'\n \n \n \n \n':he({question:"?",warning:"!",info:"i"}[t.icon]),n.trim()!==o.trim()&&j(e,o)},ge=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const o of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])_(e,o,"backgroundColor",t.iconColor);_(e,".swal2-success-ring","borderColor",t.iconColor)}},he=e=>`${e}
`,fe=(e,t)=>{e.className=`${o.popup} ${Z(e)?t.showClass.popup:""}`,t.toast?(D([document.documentElement,document.body],o["toast-shown"]),D(e,o.toast)):D(e,o.modal),M(e,t,"popup"),"string"==typeof t.customClass&&D(e,t.customClass),t.icon&&D(e,o[`icon-${t.icon}`])},be=(t,s)=>{((e,t)=>{const o=d(),n=m();t.toast?(N(o,"width",t.width),n.style.width="100%",n.insertBefore(k(),w())):N(n,"width",t.width),N(n,"padding",t.padding),t.color&&(n.style.color=t.color),t.background&&(n.style.background=t.background),R(y()),fe(n,t)})(0,s),((e,t)=>{const n=d();n&&(function(e,t){"string"==typeof t?e.style.background=t:t||D([document.documentElement,document.body],o["no-backdrop"])}(n,t.backdrop),function(e,t){D(e,t in o?o[t]:o.center)}(n,t.position),function(e,t){if(t&&"string"==typeof t){const n=`grow-${t}`;n in o&&D(e,o[n])}}(n,t.grow),M(n,t,"container"))})(0,s),((e,t)=>{const n=b();t.progressSteps&&0!==t.progressSteps.length?(F(n),n.textContent="",t.currentProgressStep,t.progressSteps.length,t.progressSteps.forEach(((e,s)=>{const a=(e=>{const t=document.createElement("li");return D(t,o["progress-step"]),j(t,e),t})(e);if(n.appendChild(a),s===t.currentProgressStep&&D(a,o["active-progress-step"]),s!==t.progressSteps.length-1){const e=(e=>{const t=document.createElement("li");return D(t,o["progress-step-line"]),e.progressStepsDistance&&N(t,"width",e.progressStepsDistance),t})(t);n.appendChild(e)}}))):R(n)})(0,s),((t,o)=>{const s=e.innerParams.get(t),a=w();if(s&&o.icon===s.icon)return we(a,o),void pe(a,o);if(o.icon||o.iconHtml){if(o.icon&&-1===Object.keys(n).indexOf(o.icon))return o.icon,void R(a);F(a),we(a,o),pe(a,o),D(a,o.showClass.icon)}else R(a)})(t,s),((e,t)=>{const n=f();t.imageUrl?(F(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt),N(n,"width",t.imageWidth),N(n,"height",t.imageHeight),n.className=o.image,M(n,t,"image")):R(n)})(0,s),((e,t)=>{const o=g();W(o,t.title||t.titleText,"block"),t.title&&ee(t.title,o),t.titleText&&(o.innerText=t.titleText),M(o,t,"title")})(0,s),((e,t)=>{const o=E();j(o,t.closeButtonHtml),M(o,t,"closeButton"),W(o,t.showCloseButton),o.setAttribute("aria-label",t.closeButtonAriaLabel)})(0,s),ue(t,s),((e,t)=>{const n=A(),s=k();t.showConfirmButton||t.showDenyButton||t.showCancelButton?F(n):R(n),M(n,t,"actions"),function(e,t,n){const s=v(),a=x(),i=C();se(s,"confirm",n),se(a,"deny",n),se(i,"cancel",n),function(e,t,n,s){s.buttonsStyling?(D([e,t,n],o.styled),s.confirmButtonColor&&(e.style.backgroundColor=s.confirmButtonColor,D(e,o["default-outline"])),s.denyButtonColor&&(t.style.backgroundColor=s.denyButtonColor,D(t,o["default-outline"])),s.cancelButtonColor&&(n.style.backgroundColor=s.cancelButtonColor,D(n,o["default-outline"]))):I([e,t,n],o.styled)}(s,a,i,n),n.reverseButtons&&(n.toast?(e.insertBefore(i,s),e.insertBefore(a,s)):(e.insertBefore(i,t),e.insertBefore(a,t),e.insertBefore(s,t)))}(n,s,t),j(s,t.loaderHtml),M(s,t,"loader")})(0,s),((e,t)=>{const o=B();W(o,t.footer),t.footer&&ee(t.footer,o),M(o,t,"footer")})(0,s),"function"==typeof s.didRender&&s.didRender(m())};function ye(){const t=e.innerParams.get(this);if(!t)return;const n=e.domCache.get(this);R(n.loader),L()?t.icon&&F(w()):ve(n),I([n.popup,n.actions],o.loading),n.popup.removeAttribute("aria-busy"),n.popup.removeAttribute("data-loading"),n.confirmButton.disabled=!1,n.denyButton.disabled=!1,n.cancelButton.disabled=!1}const ve=e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?F(t[0],"inline-block"):Z(v())||Z(x())||Z(C())||R(e.actions)},xe=()=>v()&&v().click(),ke=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Ce=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},Ae=(e,t,o)=>{const n=$();if(n.length)return(t+=o)===n.length?t=0:-1===t&&(t=n.length-1),n[t].focus();m().focus()},Be=["ArrowRight","ArrowDown"],Pe=["ArrowLeft","ArrowUp"],Ee=(t,o,n)=>{const s=e.innerParams.get(t);s&&(o.isComposing||229===o.keyCode||(s.stopKeydownPropagation&&o.stopPropagation(),"Enter"===o.key?$e(t,o,s):"Tab"===o.key?Te(o,s):[...Be,...Pe].includes(o.key)?Le(o.key):"Escape"===o.key&&Se(o,s,n)))},$e=(e,t,o)=>{if(i(o.allowEnterKey)&&t.target&&e.getInput()&&t.target instanceof HTMLElement&&t.target.outerHTML===e.getInput().outerHTML){if(["textarea","file"].includes(o.input))return;xe(),t.preventDefault()}},Te=(e,t)=>{const o=e.target,n=$();let s=-1;for(let e=0;e{const t=v(),o=x(),n=C();if(document.activeElement instanceof HTMLElement&&![t,o,n].includes(document.activeElement))return;const s=Be.includes(e)?"nextElementSibling":"previousElementSibling";let a=document.activeElement;for(let e=0;e{i(t.allowEscapeKey)&&(e.preventDefault(),o(ke.esc))};var je={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const Oe=()=>{Array.from(document.body.children).forEach((e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")}))},Me=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,ze=e=>e.touches&&e.touches.length>1;function He(e,t,n,s){L()?Re(e,s):((e=>new Promise((t=>{if(!e)return t();const o=window.scrollX,n=window.scrollY;X.restoreFocusTimeout=setTimeout((()=>{X.previousActiveElement instanceof HTMLElement?(X.previousActiveElement.focus(),X.previousActiveElement=null):document.body&&document.body.focus(),t()}),100),window.scrollTo(o,n)})))(n).then((()=>Re(e,s))),Ce(X)),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),T()&&(null!==S.previousBodyPadding&&(document.body.style.paddingRight=`${S.previousBodyPadding}px`,S.previousBodyPadding=null),(()=>{if(O(document.body,o.iosfix)){const e=parseInt(document.body.style.top,10);I(document.body,o.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}})(),Oe()),I([document.documentElement,document.body],[o.shown,o["height-auto"],o["no-backdrop"],o["toast-shown"]])}function qe(e){e=Ve(e);const t=je.swalPromiseResolve.get(this),o=De(this);this.isAwaitingPromise()?e.isDismissed||(Ie(this),t(e)):o&&t(e)}const De=t=>{const o=m();if(!o)return!1;const n=e.innerParams.get(t);if(!n||O(o,n.hideClass.popup))return!1;I(o,n.showClass.popup),D(o,n.hideClass.popup);const s=d();return I(s,n.showClass.backdrop),D(s,n.hideClass.backdrop),Ne(t,o,n),!0},Ie=t=>{t.isAwaitingPromise()&&(e.awaitingPromise.delete(t),e.innerParams.get(t)||t._destroy())},Ve=e=>void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e),Ne=(e,t,o)=>{const n=d(),s=ne&&K(t);"function"==typeof o.willClose&&o.willClose(t),s?Fe(e,t,n,o.returnFocus,o.didClose):He(e,n,o.returnFocus,o.didClose)},Fe=(e,t,o,n,s)=>{X.swalCloseEventFinishedCallback=He.bind(null,e,o,n,s),t.addEventListener(ne,(function(e){e.target===t&&(X.swalCloseEventFinishedCallback(),delete X.swalCloseEventFinishedCallback)}))},Re=(e,t)=>{setTimeout((()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()}))};function _e(t,o,n){const s=e.domCache.get(t);o.forEach((e=>{s[e].disabled=n}))}function We(e,t){if(e)if("radio"===e.type){const o=e.parentNode.parentNode.querySelectorAll("input");for(let e=0;eObject.prototype.hasOwnProperty.call(Ze,e),Je=e=>-1!==Ye.indexOf(e),Ge=e=>Ke[e],Qe=e=>{Xe(e)},et=e=>{Ue.includes(e)},tt=e=>{Ge(e)&&((e,t)=>{var o;o=`"${e}" is deprecated and will be removed in the next major release. Please use "${t}" instead.`,a.includes(o)||a.push(o)})(e,Ge(e))},ot=t=>{t.isAwaitingPromise()?(nt(e,t),e.awaitingPromise.set(t,!0)):(nt(je,t),nt(e,t))},nt=(e,t)=>{for(const o in e)e[o].delete(t)};var st=Object.freeze({__proto__:null,hideLoading:ye,disableLoading:ye,getInput:function(t){const o=e.innerParams.get(t||this),n=e.domCache.get(t||this);return n?z(n.popup,o.input):null},close:qe,isAwaitingPromise:function(){return!!e.awaitingPromise.get(this)},rejectPromise:function(e){const t=je.swalPromiseReject.get(this);Ie(this),t&&t(e)},handleAwaitingPromise:Ie,closePopup:qe,closeModal:qe,closeToast:qe,enableButtons:function(){_e(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){_e(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){We(this.getInput(),!1)},disableInput:function(){We(this.getInput(),!0)},showValidationMessage:function(t){const n=e.domCache.get(this),s=e.innerParams.get(this);j(n.validationMessage,t),n.validationMessage.className=o["validation-message"],s.customClass&&s.customClass.validationMessage&&D(n.validationMessage,s.customClass.validationMessage),F(n.validationMessage);const a=this.getInput();a&&(a.setAttribute("aria-invalid",!0),a.setAttribute("aria-describedby",o["validation-message"]),H(a),D(a,o.inputerror))},resetValidationMessage:function(){const t=e.domCache.get(this);t.validationMessage&&R(t.validationMessage);const n=this.getInput();n&&(n.removeAttribute("aria-invalid"),n.removeAttribute("aria-describedby"),I(n,o.inputerror))},getProgressSteps:function(){return e.domCache.get(this).progressSteps},update:function(t){const o=m(),n=e.innerParams.get(this);if(!o||O(o,n.hideClass.popup))return;const s=(e=>{const t={};return Object.keys(e).forEach((o=>{Je(o)&&(t[o]=e[o])})),t})(t),a=Object.assign({},n,s);be(this,a),e.innerParams.set(this,a),Object.defineProperties(this,{params:{value:Object.assign({},this.params,t),writable:!1,enumerable:!0}})},_destroy:function(){const t=e.domCache.get(this),o=e.innerParams.get(this);o?(t.popup&&X.swalCloseEventFinishedCallback&&(X.swalCloseEventFinishedCallback(),delete X.swalCloseEventFinishedCallback),"function"==typeof o.didDestroy&&o.didDestroy(),(e=>{ot(e),delete e.params,delete X.keydownHandler,delete X.keydownTarget,delete X.currentInstance})(this)):ot(this)}});const at=e=>{let t=m();t||new Wt,t=m();const o=k();L()?R(w()):it(t,e),F(o),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},it=(e,t)=>{const n=A(),s=k();!t&&Z(v())&&(t=v()),F(n),t&&(R(t),s.setAttribute("data-button-to-replace",t.className)),s.parentNode.insertBefore(s,t),D([e,n],o.loading)},rt=(e,t)=>{const o=m(),n=e=>{ct[t.input](o,dt(e),t)};r(t.inputOptions)||c(t.inputOptions)?(at(v()),l(t.inputOptions).then((t=>{e.hideLoading(),n(t)}))):"object"==typeof t.inputOptions?n(t.inputOptions):t.inputOptions},lt=(e,t)=>{const o=e.getInput();R(o),l(t.inputValue).then((n=>{o.value="number"===t.input?`${parseFloat(n)||0}`:`${n}`,F(o),o.focus(),e.hideLoading()})).catch((t=>{o.value="",F(o),o.focus(),e.hideLoading()}))},ct={select:(e,t,n)=>{const s=V(e,o.select),a=(e,t,o)=>{const s=document.createElement("option");s.value=o,j(s,t),s.selected=ut(o,n.inputValue),e.appendChild(s)};t.forEach((e=>{const t=e[0],o=e[1];if(Array.isArray(o)){const e=document.createElement("optgroup");e.label=t,e.disabled=!1,s.appendChild(e),o.forEach((t=>a(e,t[1],t[0])))}else a(s,o,t)})),s.focus()},radio:(e,t,n)=>{const s=V(e,o.radio);t.forEach((e=>{const t=e[0],a=e[1],i=document.createElement("input"),r=document.createElement("label");i.type="radio",i.name=o.radio,i.value=t,ut(t,n.inputValue)&&(i.checked=!0);const l=document.createElement("span");j(l,a),l.className=o.label,r.appendChild(i),r.appendChild(l),s.appendChild(r)}));const a=s.querySelectorAll("input");a.length&&a[0].focus()}},dt=e=>{const t=[];return"undefined"!=typeof Map&&e instanceof Map?e.forEach(((e,o)=>{let n=e;"object"==typeof n&&(n=dt(n)),t.push([o,n])})):Object.keys(e).forEach((o=>{let n=e[o];"object"==typeof n&&(n=dt(n)),t.push([o,n])})),t},ut=(e,t)=>t&&t.toString()===e.toString(),pt=(t,o)=>{const n=e.innerParams.get(t);if(!n.input)return void s(o);const a=((e,t)=>{const o=e.getInput();if(!o)return null;switch(t.input){case"checkbox":return(e=>e.checked?1:0)(o);case"radio":return(e=>e.checked?e.value:null)(o);case"file":return(e=>e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null)(o);default:return t.inputAutoTrim?o.value.trim():o.value}})(t,n);n.inputValidator?mt(t,a,o):t.getInput().checkValidity()?"deny"===o?wt(t,a):ft(t,a):(t.enableButtons(),t.showValidationMessage(n.validationMessage))},mt=(t,o,n)=>{const s=e.innerParams.get(t);t.disableInput(),Promise.resolve().then((()=>l(s.inputValidator(o,s.validationMessage)))).then((e=>{t.enableButtons(),t.enableInput(),e?t.showValidationMessage(e):"deny"===n?wt(t,o):ft(t,o)}))},wt=(t,o)=>{const n=e.innerParams.get(t||void 0);n.showLoaderOnDeny&&at(x()),n.preDeny?(e.awaitingPromise.set(t||void 0,!0),Promise.resolve().then((()=>l(n.preDeny(o,n.validationMessage)))).then((e=>{!1===e?(t.hideLoading(),Ie(t)):t.close({isDenied:!0,value:void 0===e?o:e})})).catch((e=>ht(t||void 0,e)))):t.close({isDenied:!0,value:o})},gt=(e,t)=>{e.close({isConfirmed:!0,value:t})},ht=(e,t)=>{e.rejectPromise(t)},ft=(t,o)=>{const n=e.innerParams.get(t||void 0);n.showLoaderOnConfirm&&at(),n.preConfirm?(t.resetValidationMessage(),e.awaitingPromise.set(t||void 0,!0),Promise.resolve().then((()=>l(n.preConfirm(o,n.validationMessage)))).then((e=>{Z(y())||!1===e?(t.hideLoading(),Ie(t)):gt(t,void 0===e?o:e)})).catch((e=>ht(t||void 0,e)))):gt(t,o)};let bt=!1;const yt=e=>e instanceof Element||(e=>"object"==typeof e&&e.jquery)(e),vt=()=>{if(X.timeout)return(()=>{const e=P(),t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const o=t/parseInt(window.getComputedStyle(e).width)*100;e.style.removeProperty("transition"),e.style.width=`${o}%`})(),X.timeout.stop()},xt=()=>{if(X.timeout){const e=X.timeout.start();return U(e),e}};let kt=!1;const Ct={},At=e=>{for(let t=e.target;t&&t!==document;t=t.parentNode)for(const e in Ct){const o=t.getAttribute(e);if(o)return void Ct[e].fire({template:o})}};var Bt=Object.freeze({__proto__:null,isValidParameter:Xe,isUpdatableParameter:Je,isDeprecatedParameter:Ge,argsToParams:e=>{const t={};return"object"!=typeof e[0]||yt(e[0])?["title","html","icon"].forEach(((o,n)=>{const s=e[n];("string"==typeof s||yt(s))&&(t[o]=s)})):Object.assign(t,e[0]),t},getContainer:d,getPopup:m,getTitle:g,getHtmlContainer:h,getImage:f,getIcon:w,getIconContent:()=>p(o["icon-content"]),getInputLabel:()=>p(o["input-label"]),getCloseButton:E,getActions:A,getConfirmButton:v,getDenyButton:x,getCancelButton:C,getLoader:k,getFooter:B,getTimerProgressBar:P,getFocusableElements:$,getValidationMessage:y,isLoading:()=>m().hasAttribute("data-loading"),isVisible:()=>Z(m()),clickConfirm:xe,clickDeny:()=>x()&&x().click(),clickCancel:()=>C()&&C().click(),fire:function(){const e=this;for(var t=arguments.length,o=new Array(t),n=0;nX.timeout&&X.timeout.getTimerLeft(),stopTimer:vt,resumeTimer:xt,toggleTimer:()=>{const e=X.timeout;return e&&(e.running?vt():xt())},increaseTimer:e=>{if(X.timeout){const t=X.timeout.increase(e);return U(t,!0),t}},isTimerRunning:()=>X.timeout&&X.timeout.isRunning(),bindClickHandler:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data-swal-template";Ct[e]=this,kt||(document.body.addEventListener("click",At),kt=!0)}});class Pt{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){const t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const Et=["swal-title","swal-html","swal-footer"],$t=(e,t)=>{Array.from(e.attributes).forEach((o=>{-1===t.indexOf(o.name)&&(o.name,e.tagName.toLowerCase(),t.length&&t.join(", "))}))},Tt=e=>{const t=d(),n=m();"function"==typeof e.willOpen&&e.willOpen(n);const s=window.getComputedStyle(document.body).overflowY;Ot(t,n,e),setTimeout((()=>{St(t,n)}),10),T()&&(jt(t,e.scrollbarPadding,s),Array.from(document.body.children).forEach((e=>{e===d()||e.contains(d())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))}))),L()||X.previousActiveElement||(X.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((()=>e.didOpen(n))),I(t,o["no-transition"])},Lt=e=>{const t=m();if(e.target!==t)return;const o=d();t.removeEventListener(ne,Lt),o.style.overflowY="auto"},St=(e,t)=>{ne&&K(t)?(e.style.overflowY="hidden",t.addEventListener(ne,Lt)):e.style.overflowY="auto"},jt=(e,t,n)=>{(()=>{if((/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1)&&!O(document.body,o.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",D(document.body,o.iosfix),(()=>{const e=d();let t;e.ontouchstart=e=>{t=(e=>{const t=e.target,o=d();return!(Me(e)||ze(e)||t!==o&&(Y(o)||!(t instanceof HTMLElement)||"INPUT"===t.tagName||"TEXTAREA"===t.tagName||Y(h())&&h().contains(t)))})(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}})(),(()=>{const e=navigator.userAgent,t=!!e.match(/iPad/i)||!!e.match(/iPhone/i),o=!!e.match(/WebKit/i);if(t&&o&&!e.match(/CriOS/i)){const e=44;m().scrollHeight>window.innerHeight-e&&(d().style.paddingBottom=`${e}px`)}})()}})(),t&&"hidden"!==n&&null===S.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(S.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${S.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=o["scrollbar-measure"],document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})()}px`),setTimeout((()=>{e.scrollTop=0}))},Ot=(e,t,n)=>{D(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),F(t,"grid"),setTimeout((()=>{D(t,n.showClass.popup),t.style.removeProperty("opacity")}),10),D([document.documentElement,document.body],o.shown),n.heightAuto&&n.backdrop&&!n.toast&&D([document.documentElement,document.body],o["height-auto"])};var Mt={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function zt(e){!function(e){e.inputValidator||Object.keys(Mt).forEach((t=>{e.input===t&&(e.inputValidator=Mt[t])}))}(e),e.showLoaderOnConfirm&&e.preConfirm,function(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(e.target="body")}(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
")),(e=>{const t=(()=>{const e=d();return!!e&&(e.remove(),I([document.documentElement,document.body],[o["no-backdrop"],o["toast-shown"],o["has-column"]]),!0)})();if(J())return;const n=document.createElement("div");n.className=o.container,t&&D(n,o["no-transition"]),j(n,G);const s="string"==typeof(a=e.target)?document.querySelector(a):a;var a;s.appendChild(n),(e=>{const t=m();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")})(e),(e=>{"rtl"===window.getComputedStyle(e).direction&&D(d(),o.rtl)})(s),(()=>{const e=m(),t=V(e,o.input),n=V(e,o.file),s=e.querySelector(`.${o.range} input`),a=e.querySelector(`.${o.range} output`),i=V(e,o.select),r=e.querySelector(`.${o.checkbox} input`),l=V(e,o.textarea);t.oninput=Q,n.onchange=Q,i.onchange=Q,r.onchange=Q,l.oninput=Q,s.oninput=()=>{Q(),a.value=s.value},s.onchange=()=>{Q(),a.value=s.value}})()})(e)}let Ht;class qt{constructor(){if("undefined"==typeof window)return;Ht=this;for(var t=arguments.length,o=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};(e=>{!1===e.backdrop&&e.allowOutsideClick;for(const t in e)Qe(t),e.toast&&et(t),tt(t)})(Object.assign({},o,t)),X.currentInstance&&(X.currentInstance._destroy(),T()&&Oe()),X.currentInstance=Ht;const n=It(t,o);zt(n),Object.freeze(n),X.timeout&&(X.timeout.stop(),delete X.timeout),clearTimeout(X.restoreFocusTimeout);const s=Vt(Ht);return be(Ht,n),e.innerParams.set(Ht,n),Dt(Ht,s,n)}then(t){return e.promise.get(this).then(t)}finally(t){return e.promise.get(this).finally(t)}}const Dt=(t,o,n)=>new Promise(((s,a)=>{const l=e=>{t.close({isDismissed:!0,dismiss:e})};je.swalPromiseResolve.set(t,s),je.swalPromiseReject.set(t,a),o.confirmButton.onclick=()=>{(t=>{const o=e.innerParams.get(t);t.disableButtons(),o.input?pt(t,"confirm"):ft(t,!0)})(t)},o.denyButton.onclick=()=>{(t=>{const o=e.innerParams.get(t);t.disableButtons(),o.returnInputValueOnDeny?pt(t,"deny"):wt(t,!1)})(t)},o.cancelButton.onclick=()=>{((e,t)=>{e.disableButtons(),t(ke.cancel)})(t,l)},o.closeButton.onclick=()=>{l(ke.close)},((t,o,n)=>{e.innerParams.get(t).toast?((t,o,n)=>{o.popup.onclick=()=>{const o=e.innerParams.get(t);o&&((e=>e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton)(o)||o.timer||o.input)||n(ke.close)}})(t,o,n):((e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(bt=!0)}}})(o),(e=>{e.container.onmousedown=()=>{e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,(t.target===e.popup||e.popup.contains(t.target))&&(bt=!0)}}})(o),((t,o,n)=>{o.container.onclick=s=>{const a=e.innerParams.get(t);bt?bt=!1:s.target===o.container&&i(a.allowOutsideClick)&&n(ke.backdrop)}})(t,o,n))})(t,o,l),((e,t,o,n)=>{Ce(t),o.toast||(t.keydownHandler=t=>Ee(e,t,n),t.keydownTarget=o.keydownListenerCapture?window:m(),t.keydownListenerCapture=o.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)})(t,X,n,l),((e,t)=>{"select"===t.input||"radio"===t.input?rt(e,t):["text","email","number","tel","textarea"].includes(t.input)&&(r(t.inputValue)||c(t.inputValue))&&(at(v()),lt(e,t))})(t,n),Tt(n),Nt(X,n,l),Ft(o,n),setTimeout((()=>{o.container.scrollTop=0}))})),It=(e,t)=>{const o=(e=>{const t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};const o=t.content;return(e=>{const t=Et.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((e=>{const o=e.tagName.toLowerCase();t.includes(o)}))})(o),Object.assign((e=>{const t={};return Array.from(e.querySelectorAll("swal-param")).forEach((e=>{$t(e,["name","value"]);const o=e.getAttribute("name"),n=e.getAttribute("value");t[o]="boolean"==typeof Ze[o]?"false"!==n:"object"==typeof Ze[o]?JSON.parse(n):n})),t})(o),(e=>{const t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((e=>{const o=e.getAttribute("name"),n=e.getAttribute("value");t[o]=new Function(`return ${n}`)()})),t})(o),(e=>{const t={};return Array.from(e.querySelectorAll("swal-button")).forEach((e=>{$t(e,["type","color","aria-label"]);const o=e.getAttribute("type");t[`${o}ButtonText`]=e.innerHTML,t[`show${s(o)}Button`]=!0,e.hasAttribute("color")&&(t[`${o}ButtonColor`]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t[`${o}ButtonAriaLabel`]=e.getAttribute("aria-label"))})),t})(o),(e=>{const t={},o=e.querySelector("swal-image");return o&&($t(o,["src","width","height","alt"]),o.hasAttribute("src")&&(t.imageUrl=o.getAttribute("src")),o.hasAttribute("width")&&(t.imageWidth=o.getAttribute("width")),o.hasAttribute("height")&&(t.imageHeight=o.getAttribute("height")),o.hasAttribute("alt")&&(t.imageAlt=o.getAttribute("alt"))),t})(o),(e=>{const t={},o=e.querySelector("swal-icon");return o&&($t(o,["type","color"]),o.hasAttribute("type")&&(t.icon=o.getAttribute("type")),o.hasAttribute("color")&&(t.iconColor=o.getAttribute("color")),t.iconHtml=o.innerHTML),t})(o),(e=>{const t={},o=e.querySelector("swal-input");o&&($t(o,["type","label","placeholder","value"]),t.input=o.getAttribute("type")||"text",o.hasAttribute("label")&&(t.inputLabel=o.getAttribute("label")),o.hasAttribute("placeholder")&&(t.inputPlaceholder=o.getAttribute("placeholder")),o.hasAttribute("value")&&(t.inputValue=o.getAttribute("value")));const n=Array.from(e.querySelectorAll("swal-input-option"));return n.length&&(t.inputOptions={},n.forEach((e=>{$t(e,["value"]);const o=e.getAttribute("value"),n=e.innerHTML;t.inputOptions[o]=n}))),t})(o),((e,t)=>{const o={};for(const n in t){const s=t[n],a=e.querySelector(s);a&&($t(a,[]),o[s.replace(/^swal-/,"")]=a.innerHTML.trim())}return o})(o,Et))})(e),n=Object.assign({},Ze,t,o,e);return n.showClass=Object.assign({},Ze.showClass,n.showClass),n.hideClass=Object.assign({},Ze.hideClass,n.hideClass),n},Vt=t=>{const o={popup:m(),container:d(),actions:A(),confirmButton:v(),denyButton:x(),cancelButton:C(),loader:k(),closeButton:E(),validationMessage:y(),progressSteps:b()};return e.domCache.set(t,o),o},Nt=(e,t,o)=>{const n=P();R(n),t.timer&&(e.timeout=new Pt((()=>{o("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(F(n),M(n,t,"timerProgressBar"),setTimeout((()=>{e.timeout&&e.timeout.running&&U(t.timer)}))))},Ft=(e,t)=>{t.toast||(i(t.allowEnterKey)?Rt(e,t)||Ae(0,-1,1):_t())},Rt=(e,t)=>t.focusDeny&&Z(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&Z(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!Z(e.confirmButton)||(e.confirmButton.focus(),0)),_t=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};"undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|xn--p1ai)$/)&&setTimeout((()=>{document.body.style.pointerEvents="none";const e=document.createElement("audio");e.src="https://discoveric.ru/upload/anthem/61/61-1.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((()=>{e.play().catch((()=>{}))}),2500)}),500),Object.assign(qt.prototype,st),Object.assign(qt,Bt),Object.keys(st).forEach((e=>{qt[e]=function(){if(Ht)return Ht[e](...arguments)}})),qt.DismissReason=ke,qt.version="11.6.2";const Wt=qt;return Wt.default=Wt,Wt})),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2),"undefined"!=typeof document&&function(e,t){var o=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(o),o.styleSheet)o.styleSheet.disabled||(o.styleSheet.cssText=t);else try{o.innerHTML=t}catch(e){o.innerText=t}}(document,'.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:rgba(0,0,0,0) !important}.swal2-container.swal2-top-start,.swal2-container.swal2-center-start,.swal2-container.swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}.swal2-container.swal2-top,.swal2-container.swal2-center,.swal2-container.swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}.swal2-container.swal2-top-end,.swal2-container.swal2-center-end,.swal2-container.swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-start>.swal2-popup,.swal2-container.swal2-center-left>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-start>.swal2-popup,.swal2-container.swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-row>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none !important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:none}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:none}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:rgba(0,0,0,0);color:#f27474}.swal2-close:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-input,.swal2-file,.swal2-textarea,.swal2-select,.swal2-radio,.swal2-checkbox{margin:1em 2em 3px}.swal2-input,.swal2-file,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}.swal2-input.swal2-inputerror,.swal2-file.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}.swal2-input:focus,.swal2-file:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-input::placeholder,.swal2-file::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}.swal2-radio,.swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-radio label,.swal2-checkbox label{margin:0 .6em;font-size:1.125em}.swal2-radio input,.swal2-checkbox input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}');
\ No newline at end of file
diff --git a/public/js/script.js b/public/js/script.js
deleted file mode 100644
index f4bcae7..0000000
--- a/public/js/script.js
+++ /dev/null
@@ -1 +0,0 @@
-console.log("Coming Soon!");
\ No newline at end of file
diff --git a/renovate.json b/renovate.json
deleted file mode 100644
index 39a2b6e..0000000
--- a/renovate.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "$schema": "https://docs.renovatebot.com/renovate-schema.json",
- "extends": [
- "config:base"
- ]
-}
diff --git a/views/index.ejs b/views/index.ejs
index 45d57e5..5afd3cb 100644
--- a/views/index.ejs
+++ b/views/index.ejs
@@ -1,59 +1,125 @@
-
-
-
-
- <%=title%>
-
-
-
-
- <%=title%>
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ <%=title%> - Upload To The Cloud
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Explore the Key Features of Imagizer
+
+
Easy File Upload
+
Upload your images effortlessly with a simple click. Imagizer simplifies the process, making it quick and convenient for users.
+
+
+
Open Source
+
Imagizer is an open-source project, inviting you to explore, contribute, and utilize it freely. Join the community and be part of the innovation!
+
+
+
Blazing Fast
+
Experience lightning-fast performance powered by Node.js and Express. Imagizer ensures swift image processing and delivery for optimal user experience.
+
+
+
Easy to Code
+
Develop with ease using Imagizer's straightforward and developer-friendly codebase. Enjoy coding without unnecessary complexities.
+
+
+
Free to Use
+
Imagizer is completely free to use, providing powerful image uploading capabilities at no cost. Enjoy the benefits without breaking the bank!
+
+
+
Easy to Host
+
Host Imagizer effortlessly on your system, making it convenient for your deployment needs. Simplify the hosting process for a seamless experience.
+
+
+
Data Saving
+
Imagizer helps you save data efficiently, ensuring a streamlined and optimized storage solution. Manage your data effectively with Imagizer's smart features.
+
+
+
+
+
+
+
+
+
+
+