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 \n \n
\n \n

\n
\n \n \n
\n \n \n
\n \n
\n \n \n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\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 \n
    \n
    \n \n

    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \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.

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/views/viewer.ejs b/views/viewer.ejs index 61597c3..0164043 100644 --- a/views/viewer.ejs +++ b/views/viewer.ejs @@ -1,42 +1,39 @@ - - - - - - - - - - - - -
    -
    -
    - -
    -
    - 📅 - <%= fileDate %> -
    -
    - 💾 - <%= fileSize %> MB -
    + + + + + + + + + + + + + +
    +
    +
    + +
    +
    + 📅 + <%= fileDate %> +
    +
    + 💾 + <%= fileSize %> MB
    - - - +
    + + + + \ No newline at end of file