From 7b7b80cb360e60b9bd2dc67bbdfb00ba128abc79 Mon Sep 17 00:00:00 2001 From: Posandu Mapa Date: Fri, 28 Jun 2024 21:16:40 +0530 Subject: [PATCH 01/15] . --- .gitignore | 28 +- index.html | 26 + package.json | 12 +- pnpm-lock.yaml | 1055 ++- public/vite.svg | 1 + src/README.md | 6 - src/scss/components/_colors.scss | 2 + src/scss/components/_reset.scss | 318 +- src/scss/components/_variables.scss | 8 + src/scss/components/alerts/_alerts.scss | 68 +- src/scss/components/badges/_badges.scss | 50 +- src/scss/components/banners/_banners.scss | 52 +- .../components/buttons/_button-group.scss | 22 +- src/scss/components/buttons/_buttons.scss | 640 +- src/scss/components/buttons/_chips.scss | 79 +- src/scss/components/buttons/_fab.scss | 197 +- src/scss/components/buttons/_icon.scss | 87 +- src/scss/components/cards/_cards.scss | 96 +- src/scss/components/grid/_grid.scss | 5778 +---------------- src/scss/components/ripple/_ripple.scss | 55 +- src/{js => ts}/components/accordion.js | 82 +- src/{js => ts}/components/appbar.js | 30 +- src/{js => ts}/components/dialog.js | 130 +- src/{js => ts}/components/drawer.js | 132 +- src/{js => ts}/components/forms.js | 110 +- src/{js => ts}/components/menu.js | 130 +- src/{js => ts}/components/picker.js | 8 +- src/{js => ts}/components/ripple.js | 98 +- src/{js => ts}/components/snackbar.js | 120 +- src/{js => ts}/components/tabs.js | 166 +- src/{js => ts}/components/tooltip.js | 82 +- src/{js => ts}/exportGlobal.js | 0 src/{js/index.js => ts/index.ts} | 66 +- src/typescript.svg | 1 + src/vite-env.d.ts | 1 + test.md | 115 + tsconfig.json | 24 + 37 files changed, 2585 insertions(+), 7290 deletions(-) create mode 100644 index.html create mode 100644 public/vite.svg delete mode 100644 src/README.md rename src/{js => ts}/components/accordion.js (97%) rename src/{js => ts}/components/appbar.js (96%) rename src/{js => ts}/components/dialog.js (96%) rename src/{js => ts}/components/drawer.js (96%) rename src/{js => ts}/components/forms.js (96%) rename src/{js => ts}/components/menu.js (96%) rename src/{js => ts}/components/picker.js (95%) rename src/{js => ts}/components/ripple.js (97%) rename src/{js => ts}/components/snackbar.js (97%) rename src/{js => ts}/components/tabs.js (96%) rename src/{js => ts}/components/tooltip.js (97%) rename src/{js => ts}/exportGlobal.js (100%) rename src/{js/index.js => ts/index.ts} (96%) create mode 100644 src/typescript.svg create mode 100644 src/vite-env.d.ts create mode 100644 test.md create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore index 50e99ff6..a547bf36 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,24 @@ -node_modules/ -dev/*.js -dev/*.map -dev/*.css \ No newline at end of file +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/index.html b/index.html new file mode 100644 index 00000000..7ba50c2e --- /dev/null +++ b/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + +
+ dfgd +
+ + + + diff --git a/package.json b/package.json index ceb77550..b7961e93 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,9 @@ "description": "Modern Material design framework", "main": "src/js/index.js", "scripts": { - "build": "node actions/build.js", - "watch": "node actions/watch.js", - "publish": "node actions/publish.js" + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" }, "keywords": [ "material-design" @@ -22,10 +22,12 @@ "flatpickr": "^4.6.3", "focus-trap": "^7.0.0", "nouislider": "^15.5.0", - "sass": "^1.53.0", + "sass": "^1.77.6", "tabbable": "^6.0.0" }, "dependencies": { - "tcol": "^1.0.2" + "tcol": "^1.0.2", + "typescript": "^5.2.2", + "vite": "^5.3.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f5ad46f6..f0d3d37f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,40 +8,64 @@ dependencies: tcol: specifier: ^1.0.2 version: 1.0.2 + typescript: + specifier: ^5.2.2 + version: 5.5.2 + vite: + specifier: ^5.3.1 + version: 5.3.2(sass@1.77.6) devDependencies: '@popperjs/core': specifier: ^2.11.0 - version: 2.11.5 + version: 2.11.8 chokidar: specifier: ^3.5.3 - version: 3.5.3 + version: 3.6.0 css-minify: specifier: ^2.0.0 version: 2.0.0 esbuild: specifier: ^0.19.0 - version: 0.19.8 + version: 0.19.12 flatpickr: specifier: ^4.6.3 - version: 4.6.11 + version: 4.6.13 focus-trap: specifier: ^7.0.0 - version: 7.5.2 + version: 7.5.4 nouislider: specifier: ^15.5.0 - version: 15.7.1 + version: 15.8.1 sass: - specifier: ^1.53.0 - version: 1.69.5 + specifier: ^1.77.6 + version: 1.77.6 tabbable: specifier: ^6.0.0 version: 6.2.0 packages: - /@esbuild/android-arm64@0.19.8: - resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/aix-ppc64@0.21.5: + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -49,8 +73,17 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.8: - resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} + /@esbuild/android-arm64@0.21.5: + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -58,8 +91,17 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.8: - resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} + /@esbuild/android-arm@0.21.5: + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -67,8 +109,17 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.8: - resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} + /@esbuild/android-x64@0.21.5: + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -76,8 +127,17 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.8: - resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} + /@esbuild/darwin-arm64@0.21.5: + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -85,8 +145,17 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.8: - resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} + /@esbuild/darwin-x64@0.21.5: + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -94,8 +163,17 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.8: - resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} + /@esbuild/freebsd-arm64@0.21.5: + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -103,8 +181,17 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.8: - resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} + /@esbuild/freebsd-x64@0.21.5: + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -112,8 +199,17 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.8: - resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} + /@esbuild/linux-arm64@0.21.5: + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -121,8 +217,17 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.8: - resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} + /@esbuild/linux-arm@0.21.5: + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -130,8 +235,17 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.8: - resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} + /@esbuild/linux-ia32@0.21.5: + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -139,8 +253,17 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.8: - resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} + /@esbuild/linux-loong64@0.21.5: + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -148,8 +271,17 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.8: - resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} + /@esbuild/linux-mips64el@0.21.5: + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -157,8 +289,17 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.8: - resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} + /@esbuild/linux-ppc64@0.21.5: + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -166,8 +307,17 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.8: - resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} + /@esbuild/linux-riscv64@0.21.5: + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -175,8 +325,17 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.8: - resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} + /@esbuild/linux-s390x@0.21.5: + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -184,8 +343,17 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.8: - resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} + /@esbuild/linux-x64@0.21.5: + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -193,8 +361,17 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.8: - resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} + /@esbuild/netbsd-x64@0.21.5: + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -202,8 +379,17 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.8: - resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} + /@esbuild/openbsd-x64@0.21.5: + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -211,8 +397,17 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.8: - resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} + /@esbuild/sunos-x64@0.21.5: + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -220,8 +415,17 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.8: - resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} + /@esbuild/win32-arm64@0.21.5: + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -229,8 +433,17 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.8: - resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} + /@esbuild/win32-ia32@0.21.5: + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -238,81 +451,217 @@ packages: dev: true optional: true - /@popperjs/core@2.11.5: - resolution: {integrity: sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==} + /@esbuild/win32-x64@0.21.5: + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: true + /@rollup/rollup-android-arm-eabi@4.18.0: + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-android-arm64@4.18.0: + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-arm64@4.18.0: + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-x64@4.18.0: + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.18.0: + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.18.0: + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.18.0: + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-musl@4.18.0: + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.18.0: + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.18.0: + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-gnu@4.18.0: + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-musl@4.18.0: + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.18.0: + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.18.0: + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-x64-msvc@4.18.0: + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} dev: true - /anymatch@3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - dev: true /boolbase@1.0.0: - resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=} + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 - dev: true + fill-range: 7.1.1 - /browserslist@4.20.2: - resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} + /browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001325 - electron-to-chromium: 1.4.106 - escalade: 3.1.1 - node-releases: 2.0.2 - picocolors: 1.0.0 + caniuse-lite: 1.0.30001638 + electron-to-chromium: 1.4.814 + node-releases: 2.0.14 + update-browserslist-db: 1.0.16(browserslist@4.23.1) dev: true /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.20.2 - caniuse-lite: 1.0.30001325 + browserslist: 4.23.1 + caniuse-lite: 1.0.30001638 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001325: - resolution: {integrity: sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==} + /caniuse-lite@1.0.30001638: + resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==} dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} dependencies: - anymatch: 3.1.2 - braces: 3.0.2 + anymatch: 3.1.3 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 - dev: true + fsevents: 2.3.3 - /colord@2.9.2: - resolution: {integrity: sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==} + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} dev: true /commander@7.2.0: @@ -325,13 +674,13 @@ packages: engines: {node: '>= 12'} dev: true - /css-declaration-sorter@6.2.2(postcss@8.4.12): - resolution: {integrity: sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==} + /css-declaration-sorter@6.4.1(postcss@8.4.38): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 dev: true /css-minify@2.0.0: @@ -339,8 +688,8 @@ packages: hasBin: true dependencies: commander: 8.3.0 - cssnano: 5.1.7(postcss@8.4.12) - postcss: 8.4.12 + cssnano: 5.1.15(postcss@8.4.38) + postcss: 8.4.38 dev: true /css-select@4.3.0: @@ -350,7 +699,7 @@ packages: css-what: 6.1.0 domhandler: 4.3.1 domutils: 2.8.0 - nth-check: 2.0.1 + nth-check: 2.1.1 dev: true /css-tree@1.1.3: @@ -372,62 +721,62 @@ packages: hasBin: true dev: true - /cssnano-preset-default@5.2.7(postcss@8.4.12): - resolution: {integrity: sha512-JiKP38ymZQK+zVKevphPzNSGHSlTI+AOwlasoSRtSVMUU285O7/6uZyd5NbW92ZHp41m0sSHe6JoZosakj63uA==} + /cssnano-preset-default@5.2.14(postcss@8.4.38): + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.2.2(postcss@8.4.12) - cssnano-utils: 3.1.0(postcss@8.4.12) - postcss: 8.4.12 - postcss-calc: 8.2.4(postcss@8.4.12) - postcss-colormin: 5.3.0(postcss@8.4.12) - postcss-convert-values: 5.1.0(postcss@8.4.12) - postcss-discard-comments: 5.1.1(postcss@8.4.12) - postcss-discard-duplicates: 5.1.0(postcss@8.4.12) - postcss-discard-empty: 5.1.1(postcss@8.4.12) - postcss-discard-overridden: 5.1.0(postcss@8.4.12) - postcss-merge-longhand: 5.1.4(postcss@8.4.12) - postcss-merge-rules: 5.1.1(postcss@8.4.12) - postcss-minify-font-values: 5.1.0(postcss@8.4.12) - postcss-minify-gradients: 5.1.1(postcss@8.4.12) - postcss-minify-params: 5.1.2(postcss@8.4.12) - postcss-minify-selectors: 5.2.0(postcss@8.4.12) - postcss-normalize-charset: 5.1.0(postcss@8.4.12) - postcss-normalize-display-values: 5.1.0(postcss@8.4.12) - postcss-normalize-positions: 5.1.0(postcss@8.4.12) - postcss-normalize-repeat-style: 5.1.0(postcss@8.4.12) - postcss-normalize-string: 5.1.0(postcss@8.4.12) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.12) - postcss-normalize-unicode: 5.1.0(postcss@8.4.12) - postcss-normalize-url: 5.1.0(postcss@8.4.12) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.12) - postcss-ordered-values: 5.1.1(postcss@8.4.12) - postcss-reduce-initial: 5.1.0(postcss@8.4.12) - postcss-reduce-transforms: 5.1.0(postcss@8.4.12) - postcss-svgo: 5.1.0(postcss@8.4.12) - postcss-unique-selectors: 5.1.1(postcss@8.4.12) - dev: true - - /cssnano-utils@3.1.0(postcss@8.4.12): + css-declaration-sorter: 6.4.1(postcss@8.4.38) + cssnano-utils: 3.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 8.2.4(postcss@8.4.38) + postcss-colormin: 5.3.1(postcss@8.4.38) + postcss-convert-values: 5.1.3(postcss@8.4.38) + postcss-discard-comments: 5.1.2(postcss@8.4.38) + postcss-discard-duplicates: 5.1.0(postcss@8.4.38) + postcss-discard-empty: 5.1.1(postcss@8.4.38) + postcss-discard-overridden: 5.1.0(postcss@8.4.38) + postcss-merge-longhand: 5.1.7(postcss@8.4.38) + postcss-merge-rules: 5.1.4(postcss@8.4.38) + postcss-minify-font-values: 5.1.0(postcss@8.4.38) + postcss-minify-gradients: 5.1.1(postcss@8.4.38) + postcss-minify-params: 5.1.4(postcss@8.4.38) + postcss-minify-selectors: 5.2.1(postcss@8.4.38) + postcss-normalize-charset: 5.1.0(postcss@8.4.38) + postcss-normalize-display-values: 5.1.0(postcss@8.4.38) + postcss-normalize-positions: 5.1.1(postcss@8.4.38) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.38) + postcss-normalize-string: 5.1.0(postcss@8.4.38) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.38) + postcss-normalize-unicode: 5.1.1(postcss@8.4.38) + postcss-normalize-url: 5.1.0(postcss@8.4.38) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.38) + postcss-ordered-values: 5.1.3(postcss@8.4.38) + postcss-reduce-initial: 5.1.2(postcss@8.4.38) + postcss-reduce-transforms: 5.1.0(postcss@8.4.38) + postcss-svgo: 5.1.0(postcss@8.4.38) + postcss-unique-selectors: 5.1.1(postcss@8.4.38) + dev: true + + /cssnano-utils@3.1.0(postcss@8.4.38): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 dev: true - /cssnano@5.1.7(postcss@8.4.12): - resolution: {integrity: sha512-pVsUV6LcTXif7lvKKW9ZrmX+rGRzxkEdJuVJcp5ftUjWITgwam5LMZOgaTvUrWPkcORBey6he7JKb4XAJvrpKg==} + /cssnano@5.1.15(postcss@8.4.38): + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.7(postcss@8.4.12) - lilconfig: 2.0.5 - postcss: 8.4.12 + cssnano-preset-default: 5.2.14(postcss@8.4.38) + lilconfig: 2.1.0 + postcss: 8.4.38 yaml: 1.10.2 dev: true @@ -438,8 +787,8 @@ packages: css-tree: 1.1.3 dev: true - /dom-serializer@1.3.2: - resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==} + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 @@ -460,77 +809,107 @@ packages: /domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: - dom-serializer: 1.3.2 + dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 dev: true - /electron-to-chromium@1.4.106: - resolution: {integrity: sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg==} + /electron-to-chromium@1.4.814: + resolution: {integrity: sha512-GVulpHjFu1Y9ZvikvbArHmAhZXtm3wHlpjTMcXNGKl4IQ4jMQjlnz8yMQYYqdLHKi/jEL2+CBC2akWVCoIGUdw==} dev: true /entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true - /esbuild@0.19.8: - resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.19.8 - '@esbuild/android-arm64': 0.19.8 - '@esbuild/android-x64': 0.19.8 - '@esbuild/darwin-arm64': 0.19.8 - '@esbuild/darwin-x64': 0.19.8 - '@esbuild/freebsd-arm64': 0.19.8 - '@esbuild/freebsd-x64': 0.19.8 - '@esbuild/linux-arm': 0.19.8 - '@esbuild/linux-arm64': 0.19.8 - '@esbuild/linux-ia32': 0.19.8 - '@esbuild/linux-loong64': 0.19.8 - '@esbuild/linux-mips64el': 0.19.8 - '@esbuild/linux-ppc64': 0.19.8 - '@esbuild/linux-riscv64': 0.19.8 - '@esbuild/linux-s390x': 0.19.8 - '@esbuild/linux-x64': 0.19.8 - '@esbuild/netbsd-x64': 0.19.8 - '@esbuild/openbsd-x64': 0.19.8 - '@esbuild/sunos-x64': 0.19.8 - '@esbuild/win32-arm64': 0.19.8 - '@esbuild/win32-ia32': 0.19.8 - '@esbuild/win32-x64': 0.19.8 - dev: true - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: true + + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + dev: false + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true - /flatpickr@4.6.11: - resolution: {integrity: sha512-/rnbE/hu5I5zndLEyYfYvqE4vPDvI5At0lFcQA5eOPfjquZLcQ0HMKTL7rv5/+DvbPM3/vJcXpXjB/DjBh+1jw==} + /flatpickr@4.6.13: + resolution: {integrity: sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==} dev: true - /focus-trap@7.5.2: - resolution: {integrity: sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==} + /focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} dependencies: tabbable: 6.2.0 dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /glob-parent@5.1.2: @@ -538,415 +917,432 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true - /immutable@4.1.0: - resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} - dev: true + /immutable@4.3.6: + resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 - dev: true + binary-extensions: 2.3.0 /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true - /lilconfig@2.0.5: - resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} dev: true /lodash.memoize@4.1.2: - resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=} + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} dev: true /lodash.uniq@4.5.0: - resolution: {integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=} + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} dev: true /mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} dev: true - /nanoid@3.3.2: - resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true - /node-releases@2.0.2: - resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-url@6.1.0: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} dev: true - /nouislider@15.7.1: - resolution: {integrity: sha512-5N7C1ru/i8y3dg9+Z6ilj6+m1EfabvOoaRa7ztpxBSKKRZso4vA52DGSbBJjw5XLtFr/LZ9SgGAXqyVtlVHO5w==} + /nouislider@15.8.1: + resolution: {integrity: sha512-93TweAi8kqntHJSPiSWQ1o/uZ29VWOmal9YKb6KKGGlCkugaNfAupT7o1qTHqdJvNQ7S0su5rO6qRFCjP8fxtw==} dev: true - /nth-check@2.0.1: - resolution: {integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==} + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: true /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true - /postcss-calc@8.2.4(postcss@8.4.12): + /postcss-calc@8.2.4(postcss@8.4.38): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.12 - postcss-selector-parser: 6.0.10 + postcss: 8.4.38 + postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@5.3.0(postcss@8.4.12): - resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} + /postcss-colormin@5.3.1(postcss@8.4.38): + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.23.1 caniuse-api: 3.0.0 - colord: 2.9.2 - postcss: 8.4.12 + colord: 2.9.3 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@5.1.0(postcss@8.4.12): - resolution: {integrity: sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==} + /postcss-convert-values@5.1.3(postcss@8.4.38): + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + browserslist: 4.23.1 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-discard-comments@5.1.1(postcss@8.4.12): - resolution: {integrity: sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==} + /postcss-discard-comments@5.1.2(postcss@8.4.38): + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 dev: true - /postcss-discard-duplicates@5.1.0(postcss@8.4.12): + /postcss-discard-duplicates@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 dev: true - /postcss-discard-empty@5.1.1(postcss@8.4.12): + /postcss-discard-empty@5.1.1(postcss@8.4.38): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 dev: true - /postcss-discard-overridden@5.1.0(postcss@8.4.12): + /postcss-discard-overridden@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 dev: true - /postcss-merge-longhand@5.1.4(postcss@8.4.12): - resolution: {integrity: sha512-hbqRRqYfmXoGpzYKeW0/NCZhvNyQIlQeWVSao5iKWdyx7skLvCfQFGIUsP9NUs3dSbPac2IC4Go85/zG+7MlmA==} + /postcss-merge-longhand@5.1.7(postcss@8.4.38): + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - stylehacks: 5.1.0(postcss@8.4.12) + stylehacks: 5.1.1(postcss@8.4.38) dev: true - /postcss-merge-rules@5.1.1(postcss@8.4.12): - resolution: {integrity: sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==} + /postcss-merge-rules@5.1.4(postcss@8.4.38): + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.23.1 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.12) - postcss: 8.4.12 - postcss-selector-parser: 6.0.10 + cssnano-utils: 3.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.1.0 dev: true - /postcss-minify-font-values@5.1.0(postcss@8.4.12): + /postcss-minify-font-values@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@5.1.1(postcss@8.4.12): + /postcss-minify-gradients@5.1.1(postcss@8.4.38): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - colord: 2.9.2 - cssnano-utils: 3.1.0(postcss@8.4.12) - postcss: 8.4.12 + colord: 2.9.3 + cssnano-utils: 3.1.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@5.1.2(postcss@8.4.12): - resolution: {integrity: sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==} + /postcss-minify-params@5.1.4(postcss@8.4.38): + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 - cssnano-utils: 3.1.0(postcss@8.4.12) - postcss: 8.4.12 + browserslist: 4.23.1 + cssnano-utils: 3.1.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors@5.2.0(postcss@8.4.12): - resolution: {integrity: sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==} + /postcss-minify-selectors@5.2.1(postcss@8.4.38): + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 - postcss-selector-parser: 6.0.10 + postcss: 8.4.38 + postcss-selector-parser: 6.1.0 dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.12): + /postcss-normalize-charset@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 dev: true - /postcss-normalize-display-values@5.1.0(postcss@8.4.12): + /postcss-normalize-display-values@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@5.1.0(postcss@8.4.12): - resolution: {integrity: sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==} + /postcss-normalize-positions@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@5.1.0(postcss@8.4.12): - resolution: {integrity: sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==} + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@5.1.0(postcss@8.4.12): + /postcss-normalize-string@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.12): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@5.1.0(postcss@8.4.12): - resolution: {integrity: sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==} + /postcss-normalize-unicode@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 - postcss: 8.4.12 + browserslist: 4.23.1 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@5.1.0(postcss@8.4.12): + /postcss-normalize-url@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@5.1.1(postcss@8.4.12): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.38): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@5.1.1(postcss@8.4.12): - resolution: {integrity: sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==} + /postcss-ordered-values@5.1.3(postcss@8.4.38): + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.12) - postcss: 8.4.12 + cssnano-utils: 3.1.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-initial@5.1.0(postcss@8.4.12): - resolution: {integrity: sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==} + /postcss-reduce-initial@5.1.2(postcss@8.4.38): + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.23.1 caniuse-api: 3.0.0 - postcss: 8.4.12 + postcss: 8.4.38 dev: true - /postcss-reduce-transforms@5.1.0(postcss@8.4.12): + /postcss-reduce-transforms@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: true - /postcss-svgo@5.1.0(postcss@8.4.12): + /postcss-svgo@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 + postcss: 8.4.38 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-unique-selectors@5.1.1(postcss@8.4.12): + /postcss-unique-selectors@5.1.1(postcss@8.4.38): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.12 - postcss-selector-parser: 6.0.10 + postcss: 8.4.38 + postcss-selector-parser: 6.1.0 dev: true /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.12: - resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.2 + nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true + source-map-js: 1.2.0 /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true - /sass@1.69.5: - resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} + /rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.18.0 + '@rollup/rollup-android-arm64': 4.18.0 + '@rollup/rollup-darwin-arm64': 4.18.0 + '@rollup/rollup-darwin-x64': 4.18.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 + '@rollup/rollup-linux-arm64-musl': 4.18.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 + '@rollup/rollup-linux-x64-gnu': 4.18.0 + '@rollup/rollup-linux-x64-musl': 4.18.0 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 + '@rollup/rollup-win32-x64-msvc': 4.18.0 + fsevents: 2.3.3 + dev: false + + /sass@1.77.6: + resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - chokidar: 3.5.3 - immutable: 4.1.0 - source-map-js: 1.0.2 - dev: true + chokidar: 3.6.0 + immutable: 4.3.6 + source-map-js: 1.2.0 - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} - dev: true /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} @@ -955,17 +1351,18 @@ packages: /stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' dev: true - /stylehacks@5.1.0(postcss@8.4.12): - resolution: {integrity: sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==} + /stylehacks@5.1.1(postcss@8.4.38): + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 - postcss: 8.4.12 - postcss-selector-parser: 6.0.10 + browserslist: 4.23.1 + postcss: 8.4.38 + postcss-selector-parser: 6.1.0 dev: true /svgo@2.8.0: @@ -995,12 +1392,64 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + + /typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + engines: {node: '>=14.17'} + hasBin: true + dev: false + + /update-browserslist-db@1.0.16(browserslist@4.23.1): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.1 + escalade: 3.1.2 + picocolors: 1.0.1 dev: true /util-deprecate@1.0.2: - resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true + /vite@5.3.2(sass@1.77.6): + resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.21.5 + postcss: 8.4.38 + rollup: 4.18.0 + sass: 1.77.6 + optionalDependencies: + fsevents: 2.3.3 + dev: false + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/README.md b/src/README.md deleted file mode 100644 index d8812020..00000000 --- a/src/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Source files - -``` -js/ For javascript files -scss/ For scss files -``` \ No newline at end of file diff --git a/src/scss/components/_colors.scss b/src/scss/components/_colors.scss index 6bb1c8c2..3b1b728e 100644 --- a/src/scss/components/_colors.scss +++ b/src/scss/components/_colors.scss @@ -379,6 +379,7 @@ $i: 1; .color-white { color: #fff !important; + & .ripple { color: #fff !important; } @@ -386,6 +387,7 @@ $i: 1; .color-dark { color: #000 !important; + & .ripple { color: #000 !important; } diff --git a/src/scss/components/_reset.scss b/src/scss/components/_reset.scss index 906e1ec7..393dfbdc 100644 --- a/src/scss/components/_reset.scss +++ b/src/scss/components/_reset.scss @@ -1,15 +1,3 @@ -*:after, -*:before, -* { - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-tap-highlight-color: transparent !important; - -webkit-touch-callout: none; -} -*:focus-visible { - border: none; - outline: none; -} h1, h2, h3, @@ -22,145 +10,287 @@ div, button, input, textarea { - font-family: "Roboto", sans-serif; + font-family: "Roboto", sans-serif; } -main { - display: block; +/* resset.dev • v5.0.2 */ + +/* # ================================================================= + # Global selectors + # ================================================================= */ + +html { + box-sizing: border-box; + -webkit-text-size-adjust: 100%; /* Prevent adjustments of font size after orientation changes in iOS */ + word-break: normal; + -moz-tab-size: 4; + tab-size: 4; +} + +*, +::before, +::after { + background-repeat: no-repeat; /* Set `background-repeat: no-repeat` to all elements and pseudo elements */ + box-sizing: inherit; +} + +::before, +::after { + text-decoration: inherit; /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */ + vertical-align: inherit; +} + +* { + padding: 0; /* Reset `padding` and `margin` of all elements */ + margin: 0; } + +/* # ================================================================= + # General elements + # ================================================================= */ + hr { - border: none; - border-bottom: 1px #d6d6d6 solid; - margin: 10px 0; + overflow: visible; /* Show the overflow in Edge and IE */ + height: 0; /* Add the correct box sizing in Firefox */ + color: inherit; /* Correct border color in Firefox. */ } -pre { - font-family: monospace; - font-size: 1em; + +details, +main { + display: block; /* Render the `main` element consistently in IE. */ } -a { - background-color: transparent; - text-decoration: none; - color:inherit; + +summary { + display: list-item; /* Add the correct display in all browsers */ +} + +small { + font-size: 80%; /* Set font-size to 80% in `small` elements */ } + +[hidden] { + display: none; /* Add the correct display in IE */ +} + abbr[title] { - border-bottom: none; - text-decoration: underline; - -webkit-text-decoration: underline; + border-bottom: none; /* Remove the bottom border in Chrome 57 */ + /* Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari */ + text-decoration: underline; + text-decoration: underline dotted; } -b, -strong { - font-weight: bolder; + +a { + background-color: transparent; /* Remove the gray background on active links in IE 10 */ +} + +a:active, +a:hover { + outline-width: 0; /* Remove the outline when hovering in all browsers */ } + code, kbd, +pre, samp { - font-family: monospace; - font-size: 1em; + font-family: monospace, monospace; /* Specify the font family of code elements */ } -small { - font-size: 80%; +pre { + font-size: 1em; /* Correct the odd `em` font sizing in all browsers */ +} + +b, +strong { + font-weight: bolder; /* Add the correct font weight in Chrome, Edge, and Safari */ } +/* https://gist.github.com/unruthless/413930 */ sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + sub { - bottom: -0.25em; + bottom: -0.25em; } + sup { - top: -0.5em; + top: -0.5em; } -img { - border-style: none; - max-width: 100%; + +table { + border-color: inherit; /* Correct border color in all Chrome, Edge, and Safari. */ + text-indent: 0; /* Remove text indentation in Chrome, Edge, and Safari */ +} + +iframe { + border-style: none; } + +/* # ================================================================= + # Forms + # ================================================================= */ + +input { + border-radius: 0; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; /* Correct the cursor style of increment and decrement buttons in Chrome */ +} + +[type="search"] { + -webkit-appearance: textfield; /* Correct the odd appearance in Chrome and Safari */ + outline-offset: -2px; /* Correct the outline style in Safari */ +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; /* Remove the inner padding in Chrome and Safari on macOS */ +} + +textarea { + overflow: auto; /* Internet Explorer 11+ */ + resize: vertical; /* Specify textarea resizability */ +} + button, input, optgroup, select, textarea { - font-family: inherit; - font-size: 100%; - line-height: 1.15; + font: inherit; /* Specify font inheritance of form elements */ } -button, -input { - overflow: visible; + +optgroup { + font-weight: bold; /* Restore the font weight unset by the previous rule */ +} + +button { + overflow: visible; /* Address `overflow` set to `hidden` in IE 8/9/10/11 */ } button, select { - text-transform: none; + text-transform: none; /* Firefox 40+, Internet Explorer 11- */ } +/* Apply cursor pointer to button elements */ button, [type="button"], [type="reset"], -[type="submit"] { - -webkit-appearance: button; +[type="submit"], +[role="button"] { + cursor: pointer; } -button:-moz-focus-inner, -[type="button"]:-moz-focus-inner, -[type="reset"]:-moz-focus-inner, -[type="submit"]:-moz-focus-inner { - border-style: none; - padding: 0; +/* Remove inner padding and border in Firefox 4+ */ +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } -fieldset { - padding: 0.35em 0.75em 0.625em; +/* Replace focus style removed in the border reset above */ +button:-moz-focusring, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + outline: 1px dotted ButtonText; } -legend { - -webkit-box-sizing: border-box; - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; +button, +html [type='button'], /* Prevent a WebKit bug where (2) destroys native `audio` and `video`controls in Android 4 */ +[type='reset'], +[type='submit'] { + -webkit-appearance: button; /* Correct the inability to style clickable types in iOS */ } +/* Remove the default button styling in all browsers */ +button, +input, +select, textarea { - overflow: auto; + background-color: transparent; + border-style: none; } -[type="checkbox"], -[type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; +a:focus, +button:focus, +input:focus, +select:focus, +textarea:focus { + outline-width: 0; } -[type="number"]:-webkit-inner-spin-button, -[type="number"]:-webkit-outer-spin-button { - height: auto; +/* Style select like a standard input */ +select { + -moz-appearance: none; /* Firefox 36+ */ + -webkit-appearance: none; /* Chrome 41+ */ } -[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; + +select::-ms-expand { + display: none; /* Internet Explorer 11+ */ } -[type="search"]:-webkit-search-decoration { - -webkit-appearance: none; + +select::-ms-value { + color: currentColor; /* Internet Explorer 11+ */ } -:-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; + +legend { + border: 0; /* Correct `color` not being inherited in IE 8/9/10/11 */ + color: inherit; /* Correct the color inheritance from `fieldset` elements in IE */ + display: table; /* Correct the text wrapping in Edge and IE */ + max-width: 100%; /* Correct the text wrapping in Edge and IE */ + white-space: normal; /* Correct the text wrapping in Edge and IE */ + max-width: 100%; /* Correct the text wrapping in Edge 18- and IE */ } -details { - display: block; + +::-webkit-file-upload-button { + /* Correct the inability to style clickable types in iOS and Safari */ + -webkit-appearance: button; + color: inherit; + font: inherit; /* Change font properties to `inherit` in Chrome and Safari */ } -summary { - display: list-item; + +/* Replace pointer cursor in disabled elements */ +[disabled] { + cursor: default; } -template { - display: none; + +/* # ================================================================= + # Specify media element style + # ================================================================= */ + +img { + border-style: none; /* Remove border when inside `a` element in IE 8/9/10 */ + width: 100%; } -[hidden] { - display: none; + +/* Add the correct vertical alignment in Chrome, Firefox, and Opera */ +progress { + vertical-align: baseline; +} + +/* # ================================================================= + # Accessibility + # ================================================================= */ + +/* Specify the progress cursor of updating elements */ +[aria-busy="true"] { + cursor: progress; +} + +/* Specify the pointer cursor of trigger elements */ +[aria-controls] { + cursor: pointer; +} + +/* Specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */ +[aria-disabled="true"] { + cursor: default; } diff --git a/src/scss/components/_variables.scss b/src/scss/components/_variables.scss index 60308252..2fcd65c1 100644 --- a/src/scss/components/_variables.scss +++ b/src/scss/components/_variables.scss @@ -1,3 +1,11 @@ $padding: 1; $border-radius: 1; $font-size: 1; + +$breakpoints: ( + "sm": 640px, + "md": 768px, + "lg": 1024px, + "xl": 1280px, + "2xl": 1536px, +); diff --git a/src/scss/components/alerts/_alerts.scss b/src/scss/components/alerts/_alerts.scss index 0a9329b9..433e0a3d 100644 --- a/src/scss/components/alerts/_alerts.scss +++ b/src/scss/components/alerts/_alerts.scss @@ -1,44 +1,40 @@ .alert { - padding: 15px; - border-radius: #{$border-radius * 6+"px"}; - color: material-color($dk, "800"); - background: material-color($dk, "100"); - border: 1px solid #{material-color($dk, "200")}; - display: flex; + padding: #{$padding * 14px} #{$padding * 20px}; + border-radius: #{$border-radius * 6+"px"}; + color: material-color($dk, "100"); + background: material-color($dk, "900"); + display: flex; + align-items: center; + justify-content: start; - & .alert-center { - flex: 1; - margin-left: 8px; - margin-right: 8px; - } + & .alert-center { + flex: 1; + margin-left: 8px; + margin-right: 8px; + } - &.primary { - color: material-color($p, "900"); - background: material-color($p, "100"); - border: 1px solid #{material-color($p, "200")}; - } + &.alert-primary { + color: white; + background: material-color($p, "600"); + } - &.secondary { - color: material-color($s, "900"); - background: material-color($s, "100"); - border: 1px solid #{material-color($s, "200")}; - } + &.alert-secondary { + color: material-color($s, "900"); + background: material-color($s, "100"); + } - &.danger { - color: material-color($d, "900"); - background: material-color($d, "100"); - border: 1px solid #{material-color($d, "200")}; - } + &.alert-danger { + color: material-color($d, "900"); + background: material-color($d, "100"); + } - &.success { - color: material-color($g, "900"); - background: material-color($g, "100"); - border: 1px solid #{material-color($g, "200")}; - } + &.alert-success { + color: material-color($g, "900"); + background: material-color($g, "100"); + } - &.warning { - color: material-color($w, "900"); - background: material-color($w, "100"); - border: 1px solid #{material-color($w, "200")}; - } + &.alert-warning { + color: material-color($w, "900"); + background: material-color($w, "100"); + } } diff --git a/src/scss/components/badges/_badges.scss b/src/scss/components/badges/_badges.scss index bfa7c1d1..133d02c3 100644 --- a/src/scss/components/badges/_badges.scss +++ b/src/scss/components/badges/_badges.scss @@ -1,32 +1,32 @@ .badge { - padding: $padding * 6px #{$padding * 8px}; - font-size: $font-size * 14px; - background: material-color($dk, "200"); - border-radius: $border-radius * 4px; - user-select: none; + padding: $padding * 6px #{$padding * 10px}; + font-size: $font-size * 14px; + background: material-color($dk, "200"); + border-radius: $border-radius * 4px; + user-select: none; - &.primary { - background: material-color($p); - color: #fff; - } + &.badge-primary { + background: material-color($p); + color: #fff; + } - &.secondary { - background: material-color($s); - color: #fff; - } + &.badge-secondary { + background: material-color($s); + color: #fff; + } - &.danger { - background: material-color($d); - color: #fff; - } + &.badge-danger { + background: material-color($d); + color: #fff; + } - &.success { - background: material-color($g); - color: #fff; - } + &.badge-success { + background: material-color($g); + color: #fff; + } - &.warning { - background: material-color($w); - color: #fff; - } + &.badge-warning { + background: material-color($w); + color: #fff; + } } diff --git a/src/scss/components/banners/_banners.scss b/src/scss/components/banners/_banners.scss index a4d137ee..724a9a96 100644 --- a/src/scss/components/banners/_banners.scss +++ b/src/scss/components/banners/_banners.scss @@ -1,33 +1,31 @@ .banner { - display: flex; - flex-direction: column; - background: #fff; - border: 1px solid material-color($dk, "200"); - border-radius: $border-radius * 4px; + background: #fff; + border: 1px solid material-color($dk, "200"); + border-radius: $border-radius * 4px; - & .top { - display: flex; + & .banner-top { + display: flex; + align-items: start; + justify-content: start; + padding: #{$padding * 16px} #{$padding * 16px}; - & .left { - flex: 1; - padding: $padding * 20px; - max-width: 100px; - display: flex; - align-items: center; - justify-content: center; - color: material-color($dk, "700"); - } + & .banner-left { + width: 50px; + display: flex; + align-items: start; + justify-content: start; + margin-right: $padding * 20px; + color: material-color($dk, "700"); + } - & .right { - flex: 1; - padding: $padding * 10px; - } - } + & .banner-right { + flex: 1; + } + } - & .actions { - display: flex; - justify-content: flex-end; - padding-right: $padding * 20px; - padding-bottom: $padding * 20px; - } + & .banner-actions { + display: flex; + justify-content: flex-end; + padding-bottom: $padding * 6px; + } } diff --git a/src/scss/components/buttons/_button-group.scss b/src/scss/components/buttons/_button-group.scss index 2105f2c4..5bd6587a 100644 --- a/src/scss/components/buttons/_button-group.scss +++ b/src/scss/components/buttons/_button-group.scss @@ -1,16 +1,16 @@ .btn-group { - display: flex; + display: flex; - & :not(.ripple) { - flex: 1; - border-radius: 0; - } + & :not(.ripple) { + flex: 1; + border-radius: 0; + } - & :first-child:not(.ripple) { - border-radius: #{$border-radius * 4px} 0 0 #{$border-radius * 4px}; - } + & :first-child:not(.ripple) { + border-radius: #{$border-radius * 4px} 0 0 #{$border-radius * 4px}; + } - & :last-child:not(.ripple) { - border-radius: 0 #{$border-radius * 4px} #{$border-radius * 4px} 0; - } + & :last-child:not(.ripple) { + border-radius: 0 #{$border-radius * 4px} #{$border-radius * 4px} 0; + } } diff --git a/src/scss/components/buttons/_buttons.scss b/src/scss/components/buttons/_buttons.scss index d99b932c..53b41179 100644 --- a/src/scss/components/buttons/_buttons.scss +++ b/src/scss/components/buttons/_buttons.scss @@ -1,315 +1,327 @@ -.btn { - border: none; - border-radius: $border-radius * 4px; - background: material-color($dk, "200"); - font-size: $font-size * 14px; - font-weight: 500; - padding: #{$padding * 10px} #{$padding * 16px}; - color: material-color($dk, "800"); - text-transform: uppercase; - cursor: pointer; - outline: none; - display: inline-flex; - user-select: none; - align-items: center; - justify-content: center; - @include elevation(2); - transition: all 0.2s ease; - - &:hover { - background: material-color($dk, "300"); - @include elevation(4); - } - - &:focus-visible { - background: material-color($dk, "400"); - } - - &:active { - @include elevation(8); - } - - &.primary { - background: material-color($p, "500"); - color: #fff; - - &:hover { - background: material-color($p, "600"); - } - - &:focus-visible { - background: material-color($p, "700"); - } - } - - &.secondary { - background: material-color($s, "500"); - color: #fff; - - &:hover { - background: material-color($s, "600"); - } - - &:focus-visible { - background: material-color($s, "700"); - } - } - - &.danger { - background: material-color($d, "500"); - color: #fff; - - &:hover { - background: material-color($d, "600"); - } - - &:focus-visible { - background: material-color($d, "700"); - } - } - - &.success { - background: material-color($g, "500"); - color: #fff; - - &:hover { - background: material-color($g, "600"); - } - - &:focus-visible { - background: material-color($g, "700"); - } - } - - &.warning { - background: material-color($w, "500"); - color: #000; - - &:hover { - background: material-color($w, "600"); - } - - &:focus-visible { - background: material-color($w, "700"); - } - } - - &.disabled, - &:disabled { - background: material-color($dk, "200"); - color: material-color($dk, "800"); - cursor: not-allowed; - - & .ripple { - display: none !important; - } - } - - - - // - // Outlined - // - - &.outlined { - background: transparent; - outline: 1px solid material-color($dk, "300"); - outline-offset: -1px; - color: material-color($dk, "800"); - box-shadow: none; - - &:hover { - background: transparent; - outline: 1px solid material-color($dk, "400"); - } - - &:focus-visible { - background: material-color($dk, "200"); - outline: 1px solid material-color($dk, "500"); - } - - &.primary { - outline-color: material-color($p, "300"); - color: material-color($p, "500"); - - &:hover { - outline-color: material-color($p, "600"); - } - - &:focus-visible { - background: rgba(material-color($p, "500"), 0.12); - outline-color: 1px solid material-color($p, "800"); - } - } - - &.secondary { - outline-color: material-color($s, "300"); - color: material-color($s, "500"); - - &:hover { - outline-color: material-color($s, "600"); - } - - &:focus-visible { - background: rgba(material-color($s, "500"), 0.12); - outline-color: 1px solid material-color($s, "800"); - } - } - - &.danger { - outline-color: material-color($d, "300"); - color: material-color($d, "500"); - - &:hover { - outline-color: material-color($d, "600"); - } - - &:focus-visible { - background: rgba(material-color($d, "500"), 0.12); - outline-color: 1px solid material-color($d, "800"); - } - } - - &.success { - outline-color: material-color($g, "300"); - color: material-color($g, "500"); - - &:hover { - outline-color: material-color($g, "600"); - } - - &:focus-visible { - background: rgba(material-color($g, "500"), 0.12); - outline-color: 1px solid material-color($g, "800"); - } - } - - &.warning { - outline-color: material-color($w, "300"); - color: material-color($w, "500"); - - &:hover { - outline-color: material-color($w, "600"); - } - - &:focus-visible { - background: rgba(material-color($w, "500"), 0.12); - outline-color: 1px solid material-color($w, "800"); - } - } - - &.disabled, - &:disabled { - background: transparent; - outline-color: material-color($dk, "300"); - color: material-color($dk, "800"); - cursor: not-allowed; - } - } - - // - // Text Button - // - - &.text { - background: transparent; - box-shadow: none; - - &:hover { - background: rgba(material-color($dk, "500"), 0.1); - } - - &:focus-visible { - background: rgba(material-color($dk, "500"), 0.2); - } - - &.primary { - color: material-color($p, "500"); - - &:hover { - background: rgba(material-color($p, "500"), 0.1); - } - - &:focus-visible { - background: rgba(material-color($p, "500"), 0.2); - } - } - - &.secondary { - color: material-color($s, "500"); - - &:hover { - background: rgba(material-color($s, "500"), 0.1); - } - - &:focus-visible { - background: rgba(material-color($s, "500"), 0.2); - } - } - - &.danger { - color: material-color($d, "500"); - - &:hover { - background: rgba(material-color($d, "500"), 0.1); - } - - &:focus-visible { - background: rgba(material-color($d, "500"), 0.2); - } - } - - &.success { - color: material-color($g, "500"); - - &:hover { - background: rgba(material-color($g, "500"), 0.1); - } - - &:focus-visible { - background: rgba(material-color($g, "500"), 0.2); - } - } - - &.warning { - color: material-color($w, "500"); - - &:hover { - background: rgba(material-color($w, "500"), 0.1); - } - - &:focus-visible { - background: rgba(material-color($w, "500"), 0.2); - } - } - - &.disabled, - &:disabled { - background: transparent; - color: material-color($dk, "800"); - cursor: not-allowed; - } - } - - // - // Unelevated - // - - &.unelevated { - box-shadow: none !important; - } - - // - // Size - // - - &.small { - font-size: $font-size * 14px; - padding: $padding * 8px #{$padding * 10px}; - } - - &.large { - font-size: $font-size * 20px; - padding: $padding * 14px #{$padding * 25px}; - } +.btn:not(.btn-icon, .btn-fab) { + border: none; + + border-radius: $border-radius * 4px; + padding: #{$padding * 10px} #{$padding * 16px}; + font-size: $font-size * 14px; + + background: material-color($dk, "200"); + color: material-color($dk, "800"); + + font-weight: 500; + text-transform: uppercase; + cursor: pointer; + outline: none; + display: inline-flex; + user-select: none; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + + @include elevation(2); + + &:hover { + background: material-color($dk, "300"); + @include elevation(4); + } + + &:focus-visible { + background: material-color($dk, "400"); + } + + &:active { + @include elevation(8); + } + + &.btn-primary { + background: material-color($p, "500"); + color: #fff; + + &:hover { + background: material-color($p, "600"); + } + + &:focus-visible { + background: material-color($p, "700"); + } + } + + &.btn-secondary { + background: material-color($s, "500"); + color: #fff; + + &:hover { + background: material-color($s, "600"); + } + + &:focus-visible { + background: material-color($s, "700"); + } + } + + &.btn-danger { + background: material-color($d, "500"); + color: #fff; + + &:hover { + background: material-color($d, "600"); + } + + &:focus-visible { + background: material-color($d, "700"); + } + } + + &.btn-success { + background: material-color($g, "500"); + color: #fff; + + &:hover { + background: material-color($g, "600"); + } + + &:focus-visible { + background: material-color($g, "700"); + } + } + + &.btn-warning { + background: material-color($w, "500"); + color: #000; + + &:hover { + background: material-color($w, "600"); + } + + &:focus-visible { + background: material-color($w, "700"); + } + } + + &.btn-disabled, + &:disabled { + background: material-color($dk, "200"); + color: material-color($dk, "800"); + cursor: not-allowed; + + & .ripple { + display: none !important; + } + } + + // + // Outlined + // + + &.btn-outlined { + background: transparent; + outline: 1px solid material-color($dk, "300"); + outline-offset: -1px; + color: material-color($dk, "800"); + box-shadow: none; + + &:hover { + background: transparent; + outline: 1px solid material-color($dk, "400"); + } + + &:focus-visible { + background: material-color($dk, "200"); + outline: 1px solid material-color($dk, "500"); + } + + &.btn-primary { + outline-color: material-color($p, "300"); + color: material-color($p, "500"); + + &:hover { + outline-color: material-color($p, "600"); + } + + &:focus-visible { + background: rgba(material-color($p, "500"), 0.12); + outline-color: 1px solid material-color($p, "800"); + } + } + + &.btn-secondary { + outline-color: material-color($s, "300"); + color: material-color($s, "500"); + + &:hover { + outline-color: material-color($s, "600"); + } + + &:focus-visible { + background: rgba(material-color($s, "500"), 0.12); + outline-color: 1px solid material-color($s, "800"); + } + } + + &.btn-danger { + outline-color: material-color($d, "300"); + color: material-color($d, "500"); + + &:hover { + outline-color: material-color($d, "600"); + } + + &:focus-visible { + background: rgba(material-color($d, "500"), 0.12); + outline-color: 1px solid material-color($d, "800"); + } + } + + &.btn-success { + outline-color: material-color($g, "300"); + color: material-color($g, "500"); + + &:hover { + outline-color: material-color($g, "600"); + } + + &:focus-visible { + background: rgba(material-color($g, "500"), 0.12); + outline-color: 1px solid material-color($g, "800"); + } + } + + &.btn-warning { + outline-color: material-color($w, "300"); + color: material-color($w, "500"); + + &:hover { + outline-color: material-color($w, "600"); + } + + &:focus-visible { + background: rgba(material-color($w, "500"), 0.12); + outline-color: 1px solid material-color($w, "800"); + } + } + + &.btn-disabled, + &:disabled { + background: transparent; + outline-color: material-color($dk, "300"); + color: material-color($dk, "800"); + cursor: not-allowed; + } + } + + // + // Text Button + // + + &.btn-text { + background: transparent; + box-shadow: none; + + &:hover { + background: rgba(material-color($dk, "500"), 0.1); + } + + &:focus-visible { + background: rgba(material-color($dk, "500"), 0.2); + } + + &.btn-primary { + color: material-color($p, "500"); + + &:hover { + background: rgba(material-color($p, "500"), 0.1); + } + + &:focus-visible { + background: rgba(material-color($p, "500"), 0.2); + } + } + + &.btn-secondary { + color: material-color($s, "500"); + + &:hover { + background: rgba(material-color($s, "500"), 0.1); + } + + &:focus-visible { + background: rgba(material-color($s, "500"), 0.2); + } + } + + &.btn-danger { + color: material-color($d, "500"); + + &:hover { + background: rgba(material-color($d, "500"), 0.1); + } + + &:focus-visible { + background: rgba(material-color($d, "500"), 0.2); + } + } + + &.btn-success { + color: material-color($g, "500"); + + &:hover { + background: rgba(material-color($g, "500"), 0.1); + } + + &:focus-visible { + background: rgba(material-color($g, "500"), 0.2); + } + } + + &.btn-warning { + color: material-color($w, "500"); + + &:hover { + background: rgba(material-color($w, "500"), 0.1); + } + + &:focus-visible { + background: rgba(material-color($w, "500"), 0.2); + } + } + + &.btn-disabled, + &:disabled { + background: transparent; + color: material-color($dk, "800"); + cursor: not-allowed; + } + } + + // + // Unelevated + // + + &.btn-unelevated { + box-shadow: none !important; + } + + // + // Size + // + + &.btn-small { + font-size: $font-size * 14px; + padding: $padding * 8px #{$padding * 10px}; + } + + &.btn-xs { + font-size: $font-size * 12px; + padding: $padding * 6px #{$padding * 8px}; + } + + &.btn-large { + font-size: $font-size * 20px; + padding: $padding * 14px #{$padding * 25px}; + } + + &.btn-xl { + font-size: $font-size * 24px; + padding: $padding * 16px #{$padding * 30px}; + } } diff --git a/src/scss/components/buttons/_chips.scss b/src/scss/components/buttons/_chips.scss index ffd795bb..2a10f32d 100644 --- a/src/scss/components/buttons/_chips.scss +++ b/src/scss/components/buttons/_chips.scss @@ -1,38 +1,45 @@ .chip { - padding: $padding * 8px #{$padding * 10px}; - user-select: none; - background: material-color($dk, "300"); - border-radius: $border-radius * 50px; - transition: all 0.2s ease; - cursor: pointer; - - &:hover { - background: material-color($dk, "400"); - } - - &:active, - &:focus-visible { - background: material-color($dk, "500"); - } - - &.active { - background: rgba(material-color($p, "100"), 0.4); - color: material-color($p, "500"); - - &:hover { - background: rgba(material-color($p, "100"), 0.8); - } - - &:active, - &:focus-visible { - background: material-color($p, "200"); - } - } - - &.disabled, - &:disabled { - background: material-color($dk, "200"); - color: material-color($dk, "800"); - cursor: default; - } + padding: $padding * 6px #{$padding * 14px}; + border-radius: $border-radius * 50px; + + background: material-color($dk, "300"); + color: material-color($dk, "800"); + + text-decoration: none; + display: inline-block; + user-select: none; + transition: all 0.2s ease; + overflow: hidden; + cursor: pointer; + + &:hover { + background: material-color($dk, "400"); + } + + &:active, + &:focus-visible { + background: material-color($dk, "500"); + } + + &.chip-active { + background: rgba(material-color($p, "100"), 0.4); + color: material-color($p, "500"); + + &:hover { + background: rgba(material-color($p, "100"), 0.8); + } + + &:active, + &:focus-visible { + background: material-color($p, "200"); + } + } + + &.chip-disabled, + &:disabled { + background: material-color($dk, "100"); + color: material-color($dk, "600"); + + cursor: not-allowed; + } } diff --git a/src/scss/components/buttons/_fab.scss b/src/scss/components/buttons/_fab.scss index 0762c1f4..b4ea6e47 100644 --- a/src/scss/components/buttons/_fab.scss +++ b/src/scss/components/buttons/_fab.scss @@ -1,68 +1,131 @@ -.fab { - $temp: $padding * 60px; - max-width: $temp; - max-height: $temp; - min-width: $temp; - min-height: $temp; - border-radius: 100%; - display: inline-flex; - align-items: center; - justify-content: center; - border: none; - background: material-color($dk, "200"); - color: #000; - cursor: pointer; - @include elevation(4); - transition: all 0.2s ease; - - & .mdi { - font-size: $font-size * 25px; - } - - &:hover { - background: material-color($dk, "300"); - @include elevation(8); - } - - &:active, - &:focus-visible { - background: material-color($dk, "400"); - @include elevation(14); - } - - &.primary { - background: material-color($p, "500"); - color: #fff; - - &:hover { - background: material-color($p, "600"); - } - - &:active, - &:focus-visible { - background: material-color($p, "700"); - } - } - - &.secondary { - background: material-color($s, "500"); - color: #fff; - - &:hover { - background: material-color($s, "600"); - } - - &:active, - &:focus-visible { - background: material-color($s, "700"); - } - } - - &.disabled, - &:disabled { - background: material-color($dk, "200"); - color: material-color($dk, "600"); - cursor: default; - @include elevation(0); - } +.btn.btn-fab { + $size: $padding * 60px; + + max-width: $size; + max-height: $size; + min-width: $size; + min-height: $size; + background: material-color($dk, "200"); + + border-radius: 100%; + display: inline-flex; + align-items: center; + justify-content: center; + border: none; + color: #000; + cursor: pointer; + transition: all 0.2s ease; + + @include elevation(4); + + & .mdi { + font-size: $font-size * 25px; + } + + &:hover { + background: material-color($dk, "300"); + @include elevation(8); + } + + &:active, + &:focus-visible { + background: material-color($dk, "400"); + @include elevation(14); + } + + &.btn-primary { + background: material-color($p, "500"); + color: #fff; + + &:hover { + background: material-color($p, "600"); + } + + &:active, + &:focus-visible { + background: material-color($p, "700"); + } + } + + &.btn-secondary { + background: material-color($s, "500"); + color: #fff; + + &:hover { + background: material-color($s, "600"); + } + + &:active, + &:focus-visible { + background: material-color($s, "700"); + } + } + + &.btn-danger { + background: material-color($d, "500"); + color: #fff; + + &:hover { + background: material-color($d, "600"); + } + + &:active, + &:focus-visible { + background: material-color($d, "700"); + } + } + + &.btn-success { + background: material-color($g, "500"); + color: #fff; + + &:hover { + background: material-color($g, "600"); + } + + &:active, + &:focus-visible { + background: material-color($g, "700"); + } + } + + &.btn-warning { + background: material-color($w, "500"); + color: #fff; + + &:hover { + background: material-color($w, "600"); + } + + &:active, + &:focus-visible { + background: material-color($w, "700"); + } + } + + &.btn-text { + $size: unset; + + max-width: $size; + max-height: $size; + min-width: $size; + min-height: $size; + + border-radius: $border-radius * 100px; + height: $padding * 60px; + padding: 0 $padding * 16px; + + & .fab-text { + font-size: $font-size * 20px; + margin-left: $padding * 10px; + } + } + + &.btn-disabled, + &:disabled { + background: material-color($dk, "200"); + color: material-color($dk, "600"); + cursor: default; + @include elevation(0); + } } diff --git a/src/scss/components/buttons/_icon.scss b/src/scss/components/buttons/_icon.scss index 720766d6..e20c8936 100644 --- a/src/scss/components/buttons/_icon.scss +++ b/src/scss/components/buttons/_icon.scss @@ -1,40 +1,49 @@ -.icon { - $temp: $padding * 45px; - max-width: $temp; - max-height: $temp; - min-width: $temp; - min-height: $temp; - display: inline-flex; - align-items: center; - overflow: hidden; - justify-content: center; - border-radius: 100%; - border: none; - background: transparent; - cursor: pointer; - transition: all 0.2s ease; - color: material-color($dk, "700"); - position: relative; - - & .mdi { - font-size: $font-size * 20px; - pointer-events: none; - } - - &:hover { - background: material-color($dk, "300"); - color: material-color($dk, "900"); - } - - &:focus-visible { - background: material-color($dk, "400"); - color: material-color($dk, "900"); - } - - &.disabled, - &:disabled { - background: material-color($dk, "200"); - color: material-color($dk, "500"); - cursor: not-allowed; - } +.btn.btn-icon { + $size: $padding * 45px; + + max-width: $size; + max-height: $size; + min-width: $size; + min-height: $size; + color: material-color($dk, "700"); + + display: inline-flex; + align-items: center; + overflow: hidden; + justify-content: center; + border-radius: 100%; + border: none; + background: transparent; + cursor: pointer; + transition: all 0.2s ease; + position: relative; + + margin: #{-1 * $padding * 5}px; + + & .mdi { + font-size: $font-size * 20px; + pointer-events: none; + } + + &:hover { + background: material-color($dk, "300"); + color: material-color($dk, "900"); + } + + &:active { + background: material-color($dk, "400"); + color: material-color($dk, "900"); + } + + &:focus-visible { + background: material-color($dk, "400"); + color: material-color($dk, "900"); + } + + &.btn-disabled, + &:disabled { + background: material-color($dk, "200"); + color: material-color($dk, "500"); + cursor: not-allowed; + } } diff --git a/src/scss/components/cards/_cards.scss b/src/scss/components/cards/_cards.scss index f35464cc..d8a95bc0 100644 --- a/src/scss/components/cards/_cards.scss +++ b/src/scss/components/cards/_cards.scss @@ -1,28 +1,72 @@ .card { - background: white; - @include elevation(2); - position: relative; - overflow: hidden; - border-radius: $border-radius * 4px; - $a: $padding * 20px; - - & .body { - padding: 6px $a; - } - - & .footer { - padding: 10px $a; - } - - & .card-title { - font-size: $font-size * 26px !important; - } - - &.hoverable { - transition: all 0.2s ease; - - &:hover , &:focus { - @include elevation(6); - } - } + background: white; + position: relative; + overflow: hidden; + + border-radius: $border-radius * 4px; + @include elevation(2); + + $paddingCard: $padding * 20px; + + & .card-content { + padding: 6px $paddingCard; + padding-bottom: 16px * $padding; + text-align: left; + } + + &.card-hoverable { + transition: all 0.2s ease; + cursor: pointer; + overflow: hidden; + display: block; + + & .card-hover-item { + text-decoration: none; + color: unset; + display: block; + + &:hover { + background: material-color($dk, "100"); + } + + &:active, + &:focus { + background: material-color($dk, "200"); + } + } + + & .card-actions { + cursor: auto; + } + } + + & .card-actions { + display: flex; + justify-content: flex-start; + align-items: center; + padding: 10px #{$paddingCard - 12px}; + } + + & .card-title { + margin-top: 10px; + font-size: $font-size * 20px !important; + font-weight: 500; + } + + & .card-subtitle { + color: material-color($dk, "600"); + font-size: $font-size * 14px !important; + font-weight: 500; + margin-top: 4px; + margin-bottom: 10px; + } + + &.hoverable { + transition: all 0.2s ease; + + &:hover, + &:focus { + @include elevation(6); + } + } } diff --git a/src/scss/components/grid/_grid.scss b/src/scss/components/grid/_grid.scss index 5a29a61f..1021f5f9 100644 --- a/src/scss/components/grid/_grid.scss +++ b/src/scss/components/grid/_grid.scss @@ -1,5735 +1,129 @@ -.container, -.container-fluid, -.container-xxl, -.container-xl, -.container-lg, -.container-md, -.container-sm { - width: 100%; - padding-right: var(--m-gutter-x, 0.75rem); - padding-left: var(--m-gutter-x, 0.75rem); - margin-right: auto; - margin-left: auto; +.grid { + display: grid; } -@media (min-width: 576px) { - .container-sm, .container { - max-width: 540px; - } -} -@media (min-width: 768px) { - .container-md, .container-sm, .container { - max-width: 720px; - } -} -@media (min-width: 992px) { - .container-lg, .container-md, .container-sm, .container { - max-width: 960px; - } -} -@media (min-width: 1200px) { - .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1140px; - } -} -@media (min-width: 1400px) { - .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1320px; - } -} -.row { - --m-gutter-x: 1.5rem; - --m-gutter-y: 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin-top: calc(var(--m-gutter-y) * -1); - margin-right: calc(var(--m-gutter-x) * -.5); - margin-left: calc(var(--m-gutter-x) * -.5); -} -.row > * { - box-sizing: border-box; - -ms-flex-negative: 0; - flex-shrink: 0; - width: 100%; - max-width: 100%; - padding-right: calc(var(--m-gutter-x) * .5); - padding-left: calc(var(--m-gutter-x) * .5); - margin-top: var(--m-gutter-y); -} - -.col { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; -} - -.row-cols-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; -} - -.row-cols-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; -} - -.row-cols-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; -} - -.row-cols-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; -} - -.row-cols-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; -} - -.row-cols-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; -} - -.row-cols-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; -} - -@media (min-width: 576px) { - .col-sm { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - - .row-cols-sm-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .row-cols-sm-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .row-cols-sm-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .row-cols-sm-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-sm-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .row-cols-sm-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - - .row-cols-sm-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 768px) { - .col-md { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - - .row-cols-md-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .row-cols-md-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .row-cols-md-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .row-cols-md-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-md-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .row-cols-md-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - - .row-cols-md-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 992px) { - .col-lg { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - - .row-cols-lg-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .row-cols-lg-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .row-cols-lg-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .row-cols-lg-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-lg-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .row-cols-lg-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - - .row-cols-lg-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 1200px) { - .col-xl { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - - .row-cols-xl-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .row-cols-xl-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .row-cols-xl-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .row-cols-xl-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-xl-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .row-cols-xl-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - - .row-cols-xl-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 1400px) { - .col-xxl { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - - .row-cols-xxl-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .row-cols-xxl-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .row-cols-xxl-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .row-cols-xxl-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-xxl-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .row-cols-xxl-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - - .row-cols-xxl-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -.col-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; +@for $i from 1 through 12 { + .grid-cols-#{$i} { + grid-template-columns: repeat(#{$i}, minmax(0, 1fr)); + } } -.col-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; +@for $i from 1 through 12 { + .col-span-#{$i} { + grid-column: span #{$i} / span #{$i}; + } } -.col-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; +@for $i from 1 through 28 { + .grid-gap-#{$i} { + gap: #{$i * $padding}; + } } -.col-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; -} - -.col-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; -} - -.col-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; -} - -.col-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; -} - -.col-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; -} - -.col-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; -} - -.col-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; -} - -.col-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; -} - -.col-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; -} +@each $breakpoint, $value in $breakpoints { + @media (min-width: #{$value}) { + @for $i from 1 through 12 { + .grid-#{$breakpoint}-cols-#{$i} { + grid-template-columns: repeat(#{$i}, minmax(0, 1fr)); + } + } -.col-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; -} + @for $i from 1 through 12 { + .grid-#{$breakpoint}-span-#{$i} { + grid-column: span #{$i} / span #{$i}; + } + } -.offset-1 { - margin-left: 8.33333333%; + @for $i from 1 through 28 { + .grid-#{$breakpoint}-gap-#{$i} { + gap: #{$i * $padding}; + } + } + } } -.offset-2 { - margin-left: 16.66666667%; +.grid-flow-row { + grid-auto-flow: row; } - -.offset-3 { - margin-left: 25%; +.grid-flow-col { + grid-auto-flow: column; } - -.offset-4 { - margin-left: 33.33333333%; +.grid-flow-row-dense { + grid-auto-flow: row dense; } - -.offset-5 { - margin-left: 41.66666667%; +.grid-flow-col-dense { + grid-auto-flow: column dense; } -.offset-6 { - margin-left: 50%; +.grid-rows-1 { + grid-template-rows: repeat(1, minmax(0, 1fr)); } - -.offset-7 { - margin-left: 58.33333333%; +.grid-rows-2 { + grid-template-rows: repeat(2, minmax(0, 1fr)); } - -.offset-8 { - margin-left: 66.66666667%; +.grid-rows-3 { + grid-template-rows: repeat(3, minmax(0, 1fr)); } - -.offset-9 { - margin-left: 75%; +.grid-rows-4 { + grid-template-rows: repeat(4, minmax(0, 1fr)); } - -.offset-10 { - margin-left: 83.33333333%; +.grid-rows-5 { + grid-template-rows: repeat(5, minmax(0, 1fr)); } - -.offset-11 { - margin-left: 91.66666667%; +.grid-rows-6 { + grid-template-rows: repeat(6, minmax(0, 1fr)); } -.g-0, -.gx-0 { - --m-gutter-x: 0; +.row-auto { + grid-row: auto; } - -.g-0, -.gy-0 { - --m-gutter-y: 0; +.row-span-1 { + grid-row: span 1 / span 1; } - -.g-1, -.gx-1 { - --m-gutter-x: 0.25rem; +.row-span-2 { + grid-row: span 2 / span 2; } - -.g-1, -.gy-1 { - --m-gutter-y: 0.25rem; +.row-span-3 { + grid-row: span 3 / span 3; } - -.g-2, -.gx-2 { - --m-gutter-x: 0.5rem; +.row-span-4 { + grid-row: span 4 / span 4; } - -.g-2, -.gy-2 { - --m-gutter-y: 0.5rem; +.row-span-5 { + grid-row: span 5 / span 5; } - -.g-3, -.gx-3 { - --m-gutter-x: 1rem; +.row-span-6 { + grid-row: span 6 / span 6; } -.g-3, -.gy-3 { - --m-gutter-y: 1rem; +.justify-items-start { + justify-items: start; } - -.g-4, -.gx-4 { - --m-gutter-x: 1.5rem; +.justify-items-end { + justify-items: end; } - -.g-4, -.gy-4 { - --m-gutter-y: 1.5rem; +.justify-items-center { + justify-items: center; } - -.g-5, -.gx-5 { - --m-gutter-x: 3rem; +.justify-items-stretch { + justify-items: stretch; } -.g-5, -.gy-5 { - --m-gutter-y: 3rem; +.content-start { + align-content: start; } - -@media (min-width: 576px) { - .col-sm-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .col-sm-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-sm-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-sm-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .col-sm-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-sm-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-sm-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .col-sm-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-sm-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-sm-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - - .col-sm-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-sm-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-sm-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .offset-sm-0 { - margin-left: 0; - } - - .offset-sm-1 { - margin-left: 8.33333333%; - } - - .offset-sm-2 { - margin-left: 16.66666667%; - } - - .offset-sm-3 { - margin-left: 25%; - } - - .offset-sm-4 { - margin-left: 33.33333333%; - } - - .offset-sm-5 { - margin-left: 41.66666667%; - } - - .offset-sm-6 { - margin-left: 50%; - } - - .offset-sm-7 { - margin-left: 58.33333333%; - } - - .offset-sm-8 { - margin-left: 66.66666667%; - } - - .offset-sm-9 { - margin-left: 75%; - } - - .offset-sm-10 { - margin-left: 83.33333333%; - } - - .offset-sm-11 { - margin-left: 91.66666667%; - } - - .g-sm-0, -.gx-sm-0 { - --m-gutter-x: 0; - } - - .g-sm-0, -.gy-sm-0 { - --m-gutter-y: 0; - } - - .g-sm-1, -.gx-sm-1 { - --m-gutter-x: 0.25rem; - } - - .g-sm-1, -.gy-sm-1 { - --m-gutter-y: 0.25rem; - } - - .g-sm-2, -.gx-sm-2 { - --m-gutter-x: 0.5rem; - } - - .g-sm-2, -.gy-sm-2 { - --m-gutter-y: 0.5rem; - } - - .g-sm-3, -.gx-sm-3 { - --m-gutter-x: 1rem; - } - - .g-sm-3, -.gy-sm-3 { - --m-gutter-y: 1rem; - } - - .g-sm-4, -.gx-sm-4 { - --m-gutter-x: 1.5rem; - } - - .g-sm-4, -.gy-sm-4 { - --m-gutter-y: 1.5rem; - } - - .g-sm-5, -.gx-sm-5 { - --m-gutter-x: 3rem; - } - - .g-sm-5, -.gy-sm-5 { - --m-gutter-y: 3rem; - } +.content-end { + align-content: end; } -@media (min-width: 768px) { - .col-md-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .col-md-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-md-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-md-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .col-md-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-md-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-md-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .col-md-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-md-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-md-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - - .col-md-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-md-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-md-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .offset-md-0 { - margin-left: 0; - } - - .offset-md-1 { - margin-left: 8.33333333%; - } - - .offset-md-2 { - margin-left: 16.66666667%; - } - - .offset-md-3 { - margin-left: 25%; - } - - .offset-md-4 { - margin-left: 33.33333333%; - } - - .offset-md-5 { - margin-left: 41.66666667%; - } - - .offset-md-6 { - margin-left: 50%; - } - - .offset-md-7 { - margin-left: 58.33333333%; - } - - .offset-md-8 { - margin-left: 66.66666667%; - } - - .offset-md-9 { - margin-left: 75%; - } - - .offset-md-10 { - margin-left: 83.33333333%; - } - - .offset-md-11 { - margin-left: 91.66666667%; - } - - .g-md-0, -.gx-md-0 { - --m-gutter-x: 0; - } - - .g-md-0, -.gy-md-0 { - --m-gutter-y: 0; - } - - .g-md-1, -.gx-md-1 { - --m-gutter-x: 0.25rem; - } - - .g-md-1, -.gy-md-1 { - --m-gutter-y: 0.25rem; - } - - .g-md-2, -.gx-md-2 { - --m-gutter-x: 0.5rem; - } - - .g-md-2, -.gy-md-2 { - --m-gutter-y: 0.5rem; - } - - .g-md-3, -.gx-md-3 { - --m-gutter-x: 1rem; - } - - .g-md-3, -.gy-md-3 { - --m-gutter-y: 1rem; - } - - .g-md-4, -.gx-md-4 { - --m-gutter-x: 1.5rem; - } - - .g-md-4, -.gy-md-4 { - --m-gutter-y: 1.5rem; - } - - .g-md-5, -.gx-md-5 { - --m-gutter-x: 3rem; - } - - .g-md-5, -.gy-md-5 { - --m-gutter-y: 3rem; - } +.content-center { + align-content: center; } -@media (min-width: 992px) { - .col-lg-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .col-lg-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-lg-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-lg-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .col-lg-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-lg-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-lg-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .col-lg-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-lg-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-lg-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - - .col-lg-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-lg-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-lg-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .offset-lg-0 { - margin-left: 0; - } - - .offset-lg-1 { - margin-left: 8.33333333%; - } - - .offset-lg-2 { - margin-left: 16.66666667%; - } - - .offset-lg-3 { - margin-left: 25%; - } - - .offset-lg-4 { - margin-left: 33.33333333%; - } - - .offset-lg-5 { - margin-left: 41.66666667%; - } - - .offset-lg-6 { - margin-left: 50%; - } - - .offset-lg-7 { - margin-left: 58.33333333%; - } - - .offset-lg-8 { - margin-left: 66.66666667%; - } - - .offset-lg-9 { - margin-left: 75%; - } - - .offset-lg-10 { - margin-left: 83.33333333%; - } - - .offset-lg-11 { - margin-left: 91.66666667%; - } - - .g-lg-0, -.gx-lg-0 { - --m-gutter-x: 0; - } - - .g-lg-0, -.gy-lg-0 { - --m-gutter-y: 0; - } - - .g-lg-1, -.gx-lg-1 { - --m-gutter-x: 0.25rem; - } - - .g-lg-1, -.gy-lg-1 { - --m-gutter-y: 0.25rem; - } - - .g-lg-2, -.gx-lg-2 { - --m-gutter-x: 0.5rem; - } - - .g-lg-2, -.gy-lg-2 { - --m-gutter-y: 0.5rem; - } - - .g-lg-3, -.gx-lg-3 { - --m-gutter-x: 1rem; - } - - .g-lg-3, -.gy-lg-3 { - --m-gutter-y: 1rem; - } - - .g-lg-4, -.gx-lg-4 { - --m-gutter-x: 1.5rem; - } - - .g-lg-4, -.gy-lg-4 { - --m-gutter-y: 1.5rem; - } - - .g-lg-5, -.gx-lg-5 { - --m-gutter-x: 3rem; - } - - .g-lg-5, -.gy-lg-5 { - --m-gutter-y: 3rem; - } +.content-between { + align-content: space-between; } -@media (min-width: 1200px) { - .col-xl-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .col-xl-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-xl-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-xl-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .col-xl-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-xl-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-xl-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .col-xl-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-xl-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-xl-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - - .col-xl-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-xl-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-xl-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .offset-xl-0 { - margin-left: 0; - } - - .offset-xl-1 { - margin-left: 8.33333333%; - } - - .offset-xl-2 { - margin-left: 16.66666667%; - } - - .offset-xl-3 { - margin-left: 25%; - } - - .offset-xl-4 { - margin-left: 33.33333333%; - } - - .offset-xl-5 { - margin-left: 41.66666667%; - } - - .offset-xl-6 { - margin-left: 50%; - } - - .offset-xl-7 { - margin-left: 58.33333333%; - } - - .offset-xl-8 { - margin-left: 66.66666667%; - } - - .offset-xl-9 { - margin-left: 75%; - } - - .offset-xl-10 { - margin-left: 83.33333333%; - } - - .offset-xl-11 { - margin-left: 91.66666667%; - } - - .g-xl-0, -.gx-xl-0 { - --m-gutter-x: 0; - } - - .g-xl-0, -.gy-xl-0 { - --m-gutter-y: 0; - } - - .g-xl-1, -.gx-xl-1 { - --m-gutter-x: 0.25rem; - } - - .g-xl-1, -.gy-xl-1 { - --m-gutter-y: 0.25rem; - } - - .g-xl-2, -.gx-xl-2 { - --m-gutter-x: 0.5rem; - } - - .g-xl-2, -.gy-xl-2 { - --m-gutter-y: 0.5rem; - } - - .g-xl-3, -.gx-xl-3 { - --m-gutter-x: 1rem; - } - - .g-xl-3, -.gy-xl-3 { - --m-gutter-y: 1rem; - } - - .g-xl-4, -.gx-xl-4 { - --m-gutter-x: 1.5rem; - } - - .g-xl-4, -.gy-xl-4 { - --m-gutter-y: 1.5rem; - } - - .g-xl-5, -.gx-xl-5 { - --m-gutter-x: 3rem; - } - - .g-xl-5, -.gy-xl-5 { - --m-gutter-y: 3rem; - } +.content-around { + align-content: space-around; } -@media (min-width: 1400px) { - .col-xxl-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - - .col-xxl-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-xxl-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-xxl-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - - .col-xxl-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-xxl-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-xxl-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - - .col-xxl-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-xxl-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-xxl-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - - .col-xxl-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-xxl-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-xxl-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - - .offset-xxl-0 { - margin-left: 0; - } - - .offset-xxl-1 { - margin-left: 8.33333333%; - } - - .offset-xxl-2 { - margin-left: 16.66666667%; - } - - .offset-xxl-3 { - margin-left: 25%; - } - - .offset-xxl-4 { - margin-left: 33.33333333%; - } - - .offset-xxl-5 { - margin-left: 41.66666667%; - } - - .offset-xxl-6 { - margin-left: 50%; - } - - .offset-xxl-7 { - margin-left: 58.33333333%; - } - - .offset-xxl-8 { - margin-left: 66.66666667%; - } - - .offset-xxl-9 { - margin-left: 75%; - } - - .offset-xxl-10 { - margin-left: 83.33333333%; - } - - .offset-xxl-11 { - margin-left: 91.66666667%; - } - - .g-xxl-0, -.gx-xxl-0 { - --m-gutter-x: 0; - } - - .g-xxl-0, -.gy-xxl-0 { - --m-gutter-y: 0; - } - - .g-xxl-1, -.gx-xxl-1 { - --m-gutter-x: 0.25rem; - } - - .g-xxl-1, -.gy-xxl-1 { - --m-gutter-y: 0.25rem; - } - - .g-xxl-2, -.gx-xxl-2 { - --m-gutter-x: 0.5rem; - } - - .g-xxl-2, -.gy-xxl-2 { - --m-gutter-y: 0.5rem; - } - - .g-xxl-3, -.gx-xxl-3 { - --m-gutter-x: 1rem; - } - - .g-xxl-3, -.gy-xxl-3 { - --m-gutter-y: 1rem; - } - - .g-xxl-4, -.gx-xxl-4 { - --m-gutter-x: 1.5rem; - } - - .g-xxl-4, -.gy-xxl-4 { - --m-gutter-y: 1.5rem; - } - - .g-xxl-5, -.gx-xxl-5 { - --m-gutter-x: 3rem; - } - - .g-xxl-5, -.gy-xxl-5 { - --m-gutter-y: 3rem; - } -} -.d-inline { - display: inline !important; -} - -.d-inline-block { - display: inline-block !important; -} - -.d-block { - display: block !important; -} - -.d-grid { - display: -ms-grid !important; - display: grid !important; -} - -.d-table { - display: table !important; -} - -.d-table-row { - display: table-row !important; -} - -.d-table-cell { - display: table-cell !important; -} - -.d-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; -} - -.d-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; -} - -.d-none { - display: none !important; -} - -.flex-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; -} - -.flex-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; -} - -.flex-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; -} - -.flex-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; -} - -.flex-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; -} - -.flex-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; -} - -.flex-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; -} - -.flex-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; -} - -.flex-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; -} - -.flex-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; -} - -.flex-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; -} - -.flex-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; -} - -.justify-content-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; -} - -.justify-content-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; -} - -.justify-content-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; -} - -.justify-content-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; -} - -.justify-content-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; -} - -.justify-content-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; -} - -.align-items-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; -} - -.align-items-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; -} - -.align-items-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; -} - -.align-items-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; -} - -.align-items-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; -} - -.align-content-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; -} - -.align-content-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; -} - -.align-content-center { - -ms-flex-line-pack: center !important; - align-content: center !important; -} - -.align-content-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; -} - -.align-content-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; -} - -.align-content-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; -} - -.align-self-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; -} - -.align-self-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; -} - -.align-self-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; -} - -.align-self-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; -} - -.align-self-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; -} - -.align-self-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; -} - -.order-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; -} - -.order-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; -} - -.order-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; -} - -.order-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; -} - -.order-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; -} - -.order-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; -} - -.order-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; -} - -.order-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; -} - -.m-0 { - margin: 0 !important; -} - -.m-1 { - margin: 0.25rem !important; -} - -.m-2 { - margin: 0.5rem !important; -} - -.m-3 { - margin: 1rem !important; -} - -.m-4 { - margin: 1.5rem !important; -} - -.m-5 { - margin: 3rem !important; -} - -.m-auto { - margin: auto !important; -} - -.mx-0 { - margin-right: 0 !important; - margin-left: 0 !important; -} - -.mx-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; -} - -.mx-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; -} - -.mx-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; -} - -.mx-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; -} - -.mx-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; -} - -.mx-auto { - margin-right: auto !important; - margin-left: auto !important; -} - -.my-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -.my-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; -} - -.my-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; -} - -.my-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; -} - -.my-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; -} - -.my-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; -} - -.my-auto { - margin-top: auto !important; - margin-bottom: auto !important; -} - -.mt-0 { - margin-top: 0 !important; -} - -.mt-1 { - margin-top: 0.25rem !important; -} - -.mt-2 { - margin-top: 0.5rem !important; -} - -.mt-3 { - margin-top: 1rem !important; -} - -.mt-4 { - margin-top: 1.5rem !important; -} - -.mt-5 { - margin-top: 3rem !important; -} - -.mt-auto { - margin-top: auto !important; -} - -.me-0 { - margin-right: 0 !important; -} - -.me-1 { - margin-right: 0.25rem !important; -} - -.me-2 { - margin-right: 0.5rem !important; -} - -.me-3 { - margin-right: 1rem !important; -} - -.me-4 { - margin-right: 1.5rem !important; -} - -.me-5 { - margin-right: 3rem !important; -} - -.me-auto { - margin-right: auto !important; -} - -.mb-0 { - margin-bottom: 0 !important; -} - -.mb-1 { - margin-bottom: 0.25rem !important; -} - -.mb-2 { - margin-bottom: 0.5rem !important; -} - -.mb-3 { - margin-bottom: 1rem !important; -} - -.mb-4 { - margin-bottom: 1.5rem !important; -} - -.mb-5 { - margin-bottom: 3rem !important; -} - -.mb-auto { - margin-bottom: auto !important; -} - -.ms-0 { - margin-left: 0 !important; -} - -.ms-1 { - margin-left: 0.25rem !important; -} - -.ms-2 { - margin-left: 0.5rem !important; -} - -.ms-3 { - margin-left: 1rem !important; -} - -.ms-4 { - margin-left: 1.5rem !important; -} - -.ms-5 { - margin-left: 3rem !important; -} - -.ms-auto { - margin-left: auto !important; -} - -.p-0 { - padding: 0 !important; -} - -.p-1 { - padding: 0.25rem !important; -} - -.p-2 { - padding: 0.5rem !important; -} - -.p-3 { - padding: 1rem !important; -} - -.p-4 { - padding: 1.5rem !important; -} - -.p-5 { - padding: 3rem !important; -} - -.px-0 { - padding-right: 0 !important; - padding-left: 0 !important; -} - -.px-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; -} - -.px-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; -} - -.px-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; -} - -.px-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; -} - -.px-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; -} - -.py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; -} - -.py-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; -} - -.py-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; -} - -.py-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; -} - -.py-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; -} - -.py-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; -} - -.pt-0 { - padding-top: 0 !important; -} - -.pt-1 { - padding-top: 0.25rem !important; -} - -.pt-2 { - padding-top: 0.5rem !important; -} - -.pt-3 { - padding-top: 1rem !important; -} - -.pt-4 { - padding-top: 1.5rem !important; -} - -.pt-5 { - padding-top: 3rem !important; -} - -.pe-0 { - padding-right: 0 !important; -} - -.pe-1 { - padding-right: 0.25rem !important; -} - -.pe-2 { - padding-right: 0.5rem !important; -} - -.pe-3 { - padding-right: 1rem !important; -} - -.pe-4 { - padding-right: 1.5rem !important; -} - -.pe-5 { - padding-right: 3rem !important; -} - -.pb-0 { - padding-bottom: 0 !important; -} - -.pb-1 { - padding-bottom: 0.25rem !important; -} - -.pb-2 { - padding-bottom: 0.5rem !important; -} - -.pb-3 { - padding-bottom: 1rem !important; -} - -.pb-4 { - padding-bottom: 1.5rem !important; -} - -.pb-5 { - padding-bottom: 3rem !important; -} - -.ps-0 { - padding-left: 0 !important; -} - -.ps-1 { - padding-left: 0.25rem !important; -} - -.ps-2 { - padding-left: 0.5rem !important; -} - -.ps-3 { - padding-left: 1rem !important; -} - -.ps-4 { - padding-left: 1.5rem !important; -} - -.ps-5 { - padding-left: 3rem !important; -} - -@media (min-width: 576px) { - .d-sm-inline { - display: inline !important; - } - - .d-sm-inline-block { - display: inline-block !important; - } - - .d-sm-block { - display: block !important; - } - - .d-sm-grid { - display: -ms-grid !important; - display: grid !important; - } - - .d-sm-table { - display: table !important; - } - - .d-sm-table-row { - display: table-row !important; - } - - .d-sm-table-cell { - display: table-cell !important; - } - - .d-sm-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - - .d-sm-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - - .d-sm-none { - display: none !important; - } - - .flex-sm-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - - .flex-sm-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - - .flex-sm-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - - .flex-sm-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - - .flex-sm-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - - .flex-sm-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - - .flex-sm-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - - .flex-sm-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - - .flex-sm-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - - .flex-sm-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - - .flex-sm-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - - .flex-sm-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - - .justify-content-sm-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - - .justify-content-sm-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - - .justify-content-sm-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - - .justify-content-sm-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - - .justify-content-sm-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - - .justify-content-sm-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - - .align-items-sm-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - - .align-items-sm-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - - .align-items-sm-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - - .align-items-sm-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - - .align-items-sm-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - - .align-content-sm-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - - .align-content-sm-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - - .align-content-sm-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - - .align-content-sm-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - - .align-content-sm-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - - .align-content-sm-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - - .align-self-sm-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - - .align-self-sm-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - - .align-self-sm-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - - .align-self-sm-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - - .align-self-sm-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - - .align-self-sm-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - - .order-sm-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - - .order-sm-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - - .order-sm-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - - .order-sm-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - - .order-sm-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - - .order-sm-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - - .order-sm-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - - .order-sm-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - - .m-sm-0 { - margin: 0 !important; - } - - .m-sm-1 { - margin: 0.25rem !important; - } - - .m-sm-2 { - margin: 0.5rem !important; - } - - .m-sm-3 { - margin: 1rem !important; - } - - .m-sm-4 { - margin: 1.5rem !important; - } - - .m-sm-5 { - margin: 3rem !important; - } - - .m-sm-auto { - margin: auto !important; - } - - .mx-sm-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-sm-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-sm-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-sm-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-sm-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-sm-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-sm-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-sm-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-sm-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-sm-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-sm-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-sm-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-sm-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-sm-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-sm-0 { - margin-top: 0 !important; - } - - .mt-sm-1 { - margin-top: 0.25rem !important; - } - - .mt-sm-2 { - margin-top: 0.5rem !important; - } - - .mt-sm-3 { - margin-top: 1rem !important; - } - - .mt-sm-4 { - margin-top: 1.5rem !important; - } - - .mt-sm-5 { - margin-top: 3rem !important; - } - - .mt-sm-auto { - margin-top: auto !important; - } - - .me-sm-0 { - margin-right: 0 !important; - } - - .me-sm-1 { - margin-right: 0.25rem !important; - } - - .me-sm-2 { - margin-right: 0.5rem !important; - } - - .me-sm-3 { - margin-right: 1rem !important; - } - - .me-sm-4 { - margin-right: 1.5rem !important; - } - - .me-sm-5 { - margin-right: 3rem !important; - } - - .me-sm-auto { - margin-right: auto !important; - } - - .mb-sm-0 { - margin-bottom: 0 !important; - } - - .mb-sm-1 { - margin-bottom: 0.25rem !important; - } - - .mb-sm-2 { - margin-bottom: 0.5rem !important; - } - - .mb-sm-3 { - margin-bottom: 1rem !important; - } - - .mb-sm-4 { - margin-bottom: 1.5rem !important; - } - - .mb-sm-5 { - margin-bottom: 3rem !important; - } - - .mb-sm-auto { - margin-bottom: auto !important; - } - - .ms-sm-0 { - margin-left: 0 !important; - } - - .ms-sm-1 { - margin-left: 0.25rem !important; - } - - .ms-sm-2 { - margin-left: 0.5rem !important; - } - - .ms-sm-3 { - margin-left: 1rem !important; - } - - .ms-sm-4 { - margin-left: 1.5rem !important; - } - - .ms-sm-5 { - margin-left: 3rem !important; - } - - .ms-sm-auto { - margin-left: auto !important; - } - - .p-sm-0 { - padding: 0 !important; - } - - .p-sm-1 { - padding: 0.25rem !important; - } - - .p-sm-2 { - padding: 0.5rem !important; - } - - .p-sm-3 { - padding: 1rem !important; - } - - .p-sm-4 { - padding: 1.5rem !important; - } - - .p-sm-5 { - padding: 3rem !important; - } - - .px-sm-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-sm-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-sm-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-sm-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-sm-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-sm-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-sm-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-sm-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-sm-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-sm-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-sm-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-sm-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-sm-0 { - padding-top: 0 !important; - } - - .pt-sm-1 { - padding-top: 0.25rem !important; - } - - .pt-sm-2 { - padding-top: 0.5rem !important; - } - - .pt-sm-3 { - padding-top: 1rem !important; - } - - .pt-sm-4 { - padding-top: 1.5rem !important; - } - - .pt-sm-5 { - padding-top: 3rem !important; - } - - .pe-sm-0 { - padding-right: 0 !important; - } - - .pe-sm-1 { - padding-right: 0.25rem !important; - } - - .pe-sm-2 { - padding-right: 0.5rem !important; - } - - .pe-sm-3 { - padding-right: 1rem !important; - } - - .pe-sm-4 { - padding-right: 1.5rem !important; - } - - .pe-sm-5 { - padding-right: 3rem !important; - } - - .pb-sm-0 { - padding-bottom: 0 !important; - } - - .pb-sm-1 { - padding-bottom: 0.25rem !important; - } - - .pb-sm-2 { - padding-bottom: 0.5rem !important; - } - - .pb-sm-3 { - padding-bottom: 1rem !important; - } - - .pb-sm-4 { - padding-bottom: 1.5rem !important; - } - - .pb-sm-5 { - padding-bottom: 3rem !important; - } - - .ps-sm-0 { - padding-left: 0 !important; - } - - .ps-sm-1 { - padding-left: 0.25rem !important; - } - - .ps-sm-2 { - padding-left: 0.5rem !important; - } - - .ps-sm-3 { - padding-left: 1rem !important; - } - - .ps-sm-4 { - padding-left: 1.5rem !important; - } - - .ps-sm-5 { - padding-left: 3rem !important; - } -} -@media (min-width: 768px) { - .d-md-inline { - display: inline !important; - } - - .d-md-inline-block { - display: inline-block !important; - } - - .d-md-block { - display: block !important; - } - - .d-md-grid { - display: -ms-grid !important; - display: grid !important; - } - - .d-md-table { - display: table !important; - } - - .d-md-table-row { - display: table-row !important; - } - - .d-md-table-cell { - display: table-cell !important; - } - - .d-md-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - - .d-md-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - - .d-md-none { - display: none !important; - } - - .flex-md-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - - .flex-md-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - - .flex-md-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - - .flex-md-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - - .flex-md-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - - .flex-md-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - - .flex-md-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - - .flex-md-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - - .flex-md-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - - .flex-md-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - - .flex-md-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - - .flex-md-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - - .justify-content-md-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - - .justify-content-md-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - - .justify-content-md-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - - .justify-content-md-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - - .justify-content-md-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - - .justify-content-md-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - - .align-items-md-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - - .align-items-md-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - - .align-items-md-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - - .align-items-md-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - - .align-items-md-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - - .align-content-md-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - - .align-content-md-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - - .align-content-md-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - - .align-content-md-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - - .align-content-md-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - - .align-content-md-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - - .align-self-md-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - - .align-self-md-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - - .align-self-md-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - - .align-self-md-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - - .align-self-md-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - - .align-self-md-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - - .order-md-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - - .order-md-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - - .order-md-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - - .order-md-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - - .order-md-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - - .order-md-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - - .order-md-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - - .order-md-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - - .m-md-0 { - margin: 0 !important; - } - - .m-md-1 { - margin: 0.25rem !important; - } - - .m-md-2 { - margin: 0.5rem !important; - } - - .m-md-3 { - margin: 1rem !important; - } - - .m-md-4 { - margin: 1.5rem !important; - } - - .m-md-5 { - margin: 3rem !important; - } - - .m-md-auto { - margin: auto !important; - } - - .mx-md-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-md-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-md-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-md-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-md-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-md-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-md-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-md-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-md-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-md-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-md-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-md-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-md-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-md-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-md-0 { - margin-top: 0 !important; - } - - .mt-md-1 { - margin-top: 0.25rem !important; - } - - .mt-md-2 { - margin-top: 0.5rem !important; - } - - .mt-md-3 { - margin-top: 1rem !important; - } - - .mt-md-4 { - margin-top: 1.5rem !important; - } - - .mt-md-5 { - margin-top: 3rem !important; - } - - .mt-md-auto { - margin-top: auto !important; - } - - .me-md-0 { - margin-right: 0 !important; - } - - .me-md-1 { - margin-right: 0.25rem !important; - } - - .me-md-2 { - margin-right: 0.5rem !important; - } - - .me-md-3 { - margin-right: 1rem !important; - } - - .me-md-4 { - margin-right: 1.5rem !important; - } - - .me-md-5 { - margin-right: 3rem !important; - } - - .me-md-auto { - margin-right: auto !important; - } - - .mb-md-0 { - margin-bottom: 0 !important; - } - - .mb-md-1 { - margin-bottom: 0.25rem !important; - } - - .mb-md-2 { - margin-bottom: 0.5rem !important; - } - - .mb-md-3 { - margin-bottom: 1rem !important; - } - - .mb-md-4 { - margin-bottom: 1.5rem !important; - } - - .mb-md-5 { - margin-bottom: 3rem !important; - } - - .mb-md-auto { - margin-bottom: auto !important; - } - - .ms-md-0 { - margin-left: 0 !important; - } - - .ms-md-1 { - margin-left: 0.25rem !important; - } - - .ms-md-2 { - margin-left: 0.5rem !important; - } - - .ms-md-3 { - margin-left: 1rem !important; - } - - .ms-md-4 { - margin-left: 1.5rem !important; - } - - .ms-md-5 { - margin-left: 3rem !important; - } - - .ms-md-auto { - margin-left: auto !important; - } - - .p-md-0 { - padding: 0 !important; - } - - .p-md-1 { - padding: 0.25rem !important; - } - - .p-md-2 { - padding: 0.5rem !important; - } - - .p-md-3 { - padding: 1rem !important; - } - - .p-md-4 { - padding: 1.5rem !important; - } - - .p-md-5 { - padding: 3rem !important; - } - - .px-md-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-md-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-md-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-md-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-md-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-md-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-md-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-md-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-md-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-md-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-md-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-md-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-md-0 { - padding-top: 0 !important; - } - - .pt-md-1 { - padding-top: 0.25rem !important; - } - - .pt-md-2 { - padding-top: 0.5rem !important; - } - - .pt-md-3 { - padding-top: 1rem !important; - } - - .pt-md-4 { - padding-top: 1.5rem !important; - } - - .pt-md-5 { - padding-top: 3rem !important; - } - - .pe-md-0 { - padding-right: 0 !important; - } - - .pe-md-1 { - padding-right: 0.25rem !important; - } - - .pe-md-2 { - padding-right: 0.5rem !important; - } - - .pe-md-3 { - padding-right: 1rem !important; - } - - .pe-md-4 { - padding-right: 1.5rem !important; - } - - .pe-md-5 { - padding-right: 3rem !important; - } - - .pb-md-0 { - padding-bottom: 0 !important; - } - - .pb-md-1 { - padding-bottom: 0.25rem !important; - } - - .pb-md-2 { - padding-bottom: 0.5rem !important; - } - - .pb-md-3 { - padding-bottom: 1rem !important; - } - - .pb-md-4 { - padding-bottom: 1.5rem !important; - } - - .pb-md-5 { - padding-bottom: 3rem !important; - } - - .ps-md-0 { - padding-left: 0 !important; - } - - .ps-md-1 { - padding-left: 0.25rem !important; - } - - .ps-md-2 { - padding-left: 0.5rem !important; - } - - .ps-md-3 { - padding-left: 1rem !important; - } - - .ps-md-4 { - padding-left: 1.5rem !important; - } - - .ps-md-5 { - padding-left: 3rem !important; - } -} -@media (min-width: 992px) { - .d-lg-inline { - display: inline !important; - } - - .d-lg-inline-block { - display: inline-block !important; - } - - .d-lg-block { - display: block !important; - } - - .d-lg-grid { - display: -ms-grid !important; - display: grid !important; - } - - .d-lg-table { - display: table !important; - } - - .d-lg-table-row { - display: table-row !important; - } - - .d-lg-table-cell { - display: table-cell !important; - } - - .d-lg-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - - .d-lg-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - - .d-lg-none { - display: none !important; - } - - .flex-lg-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - - .flex-lg-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - - .flex-lg-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - - .flex-lg-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - - .flex-lg-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - - .flex-lg-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - - .flex-lg-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - - .flex-lg-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - - .flex-lg-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - - .flex-lg-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - - .flex-lg-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - - .flex-lg-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - - .justify-content-lg-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - - .justify-content-lg-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - - .justify-content-lg-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - - .justify-content-lg-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - - .justify-content-lg-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - - .justify-content-lg-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - - .align-items-lg-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - - .align-items-lg-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - - .align-items-lg-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - - .align-items-lg-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - - .align-items-lg-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - - .align-content-lg-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - - .align-content-lg-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - - .align-content-lg-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - - .align-content-lg-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - - .align-content-lg-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - - .align-content-lg-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - - .align-self-lg-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - - .align-self-lg-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - - .align-self-lg-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - - .align-self-lg-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - - .align-self-lg-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - - .align-self-lg-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - - .order-lg-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - - .order-lg-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - - .order-lg-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - - .order-lg-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - - .order-lg-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - - .order-lg-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - - .order-lg-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - - .order-lg-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - - .m-lg-0 { - margin: 0 !important; - } - - .m-lg-1 { - margin: 0.25rem !important; - } - - .m-lg-2 { - margin: 0.5rem !important; - } - - .m-lg-3 { - margin: 1rem !important; - } - - .m-lg-4 { - margin: 1.5rem !important; - } - - .m-lg-5 { - margin: 3rem !important; - } - - .m-lg-auto { - margin: auto !important; - } - - .mx-lg-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-lg-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-lg-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-lg-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-lg-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-lg-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-lg-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-lg-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-lg-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-lg-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-lg-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-lg-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-lg-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-lg-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-lg-0 { - margin-top: 0 !important; - } - - .mt-lg-1 { - margin-top: 0.25rem !important; - } - - .mt-lg-2 { - margin-top: 0.5rem !important; - } - - .mt-lg-3 { - margin-top: 1rem !important; - } - - .mt-lg-4 { - margin-top: 1.5rem !important; - } - - .mt-lg-5 { - margin-top: 3rem !important; - } - - .mt-lg-auto { - margin-top: auto !important; - } - - .me-lg-0 { - margin-right: 0 !important; - } - - .me-lg-1 { - margin-right: 0.25rem !important; - } - - .me-lg-2 { - margin-right: 0.5rem !important; - } - - .me-lg-3 { - margin-right: 1rem !important; - } - - .me-lg-4 { - margin-right: 1.5rem !important; - } - - .me-lg-5 { - margin-right: 3rem !important; - } - - .me-lg-auto { - margin-right: auto !important; - } - - .mb-lg-0 { - margin-bottom: 0 !important; - } - - .mb-lg-1 { - margin-bottom: 0.25rem !important; - } - - .mb-lg-2 { - margin-bottom: 0.5rem !important; - } - - .mb-lg-3 { - margin-bottom: 1rem !important; - } - - .mb-lg-4 { - margin-bottom: 1.5rem !important; - } - - .mb-lg-5 { - margin-bottom: 3rem !important; - } - - .mb-lg-auto { - margin-bottom: auto !important; - } - - .ms-lg-0 { - margin-left: 0 !important; - } - - .ms-lg-1 { - margin-left: 0.25rem !important; - } - - .ms-lg-2 { - margin-left: 0.5rem !important; - } - - .ms-lg-3 { - margin-left: 1rem !important; - } - - .ms-lg-4 { - margin-left: 1.5rem !important; - } - - .ms-lg-5 { - margin-left: 3rem !important; - } - - .ms-lg-auto { - margin-left: auto !important; - } - - .p-lg-0 { - padding: 0 !important; - } - - .p-lg-1 { - padding: 0.25rem !important; - } - - .p-lg-2 { - padding: 0.5rem !important; - } - - .p-lg-3 { - padding: 1rem !important; - } - - .p-lg-4 { - padding: 1.5rem !important; - } - - .p-lg-5 { - padding: 3rem !important; - } - - .px-lg-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-lg-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-lg-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-lg-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-lg-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-lg-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-lg-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-lg-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-lg-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-lg-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-lg-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-lg-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-lg-0 { - padding-top: 0 !important; - } - - .pt-lg-1 { - padding-top: 0.25rem !important; - } - - .pt-lg-2 { - padding-top: 0.5rem !important; - } - - .pt-lg-3 { - padding-top: 1rem !important; - } - - .pt-lg-4 { - padding-top: 1.5rem !important; - } - - .pt-lg-5 { - padding-top: 3rem !important; - } - - .pe-lg-0 { - padding-right: 0 !important; - } - - .pe-lg-1 { - padding-right: 0.25rem !important; - } - - .pe-lg-2 { - padding-right: 0.5rem !important; - } - - .pe-lg-3 { - padding-right: 1rem !important; - } - - .pe-lg-4 { - padding-right: 1.5rem !important; - } - - .pe-lg-5 { - padding-right: 3rem !important; - } - - .pb-lg-0 { - padding-bottom: 0 !important; - } - - .pb-lg-1 { - padding-bottom: 0.25rem !important; - } - - .pb-lg-2 { - padding-bottom: 0.5rem !important; - } - - .pb-lg-3 { - padding-bottom: 1rem !important; - } - - .pb-lg-4 { - padding-bottom: 1.5rem !important; - } - - .pb-lg-5 { - padding-bottom: 3rem !important; - } - - .ps-lg-0 { - padding-left: 0 !important; - } - - .ps-lg-1 { - padding-left: 0.25rem !important; - } - - .ps-lg-2 { - padding-left: 0.5rem !important; - } - - .ps-lg-3 { - padding-left: 1rem !important; - } - - .ps-lg-4 { - padding-left: 1.5rem !important; - } - - .ps-lg-5 { - padding-left: 3rem !important; - } -} -@media (min-width: 1200px) { - .d-xl-inline { - display: inline !important; - } - - .d-xl-inline-block { - display: inline-block !important; - } - - .d-xl-block { - display: block !important; - } - - .d-xl-grid { - display: -ms-grid !important; - display: grid !important; - } - - .d-xl-table { - display: table !important; - } - - .d-xl-table-row { - display: table-row !important; - } - - .d-xl-table-cell { - display: table-cell !important; - } - - .d-xl-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - - .d-xl-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - - .d-xl-none { - display: none !important; - } - - .flex-xl-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - - .flex-xl-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - - .flex-xl-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - - .flex-xl-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - - .flex-xl-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - - .flex-xl-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - - .flex-xl-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - - .flex-xl-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - - .flex-xl-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - - .flex-xl-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - - .flex-xl-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - - .flex-xl-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - - .justify-content-xl-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - - .justify-content-xl-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - - .justify-content-xl-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - - .justify-content-xl-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - - .justify-content-xl-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - - .justify-content-xl-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - - .align-items-xl-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - - .align-items-xl-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - - .align-items-xl-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - - .align-items-xl-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - - .align-items-xl-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - - .align-content-xl-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - - .align-content-xl-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - - .align-content-xl-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - - .align-content-xl-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - - .align-content-xl-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - - .align-content-xl-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - - .align-self-xl-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - - .align-self-xl-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - - .align-self-xl-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - - .align-self-xl-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - - .align-self-xl-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - - .align-self-xl-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - - .order-xl-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - - .order-xl-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - - .order-xl-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - - .order-xl-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - - .order-xl-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - - .order-xl-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - - .order-xl-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - - .order-xl-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - - .m-xl-0 { - margin: 0 !important; - } - - .m-xl-1 { - margin: 0.25rem !important; - } - - .m-xl-2 { - margin: 0.5rem !important; - } - - .m-xl-3 { - margin: 1rem !important; - } - - .m-xl-4 { - margin: 1.5rem !important; - } - - .m-xl-5 { - margin: 3rem !important; - } - - .m-xl-auto { - margin: auto !important; - } - - .mx-xl-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-xl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-xl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-xl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-xl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-xl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-xl-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-xl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-xl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-xl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-xl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-xl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-xl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-xl-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-xl-0 { - margin-top: 0 !important; - } - - .mt-xl-1 { - margin-top: 0.25rem !important; - } - - .mt-xl-2 { - margin-top: 0.5rem !important; - } - - .mt-xl-3 { - margin-top: 1rem !important; - } - - .mt-xl-4 { - margin-top: 1.5rem !important; - } - - .mt-xl-5 { - margin-top: 3rem !important; - } - - .mt-xl-auto { - margin-top: auto !important; - } - - .me-xl-0 { - margin-right: 0 !important; - } - - .me-xl-1 { - margin-right: 0.25rem !important; - } - - .me-xl-2 { - margin-right: 0.5rem !important; - } - - .me-xl-3 { - margin-right: 1rem !important; - } - - .me-xl-4 { - margin-right: 1.5rem !important; - } - - .me-xl-5 { - margin-right: 3rem !important; - } - - .me-xl-auto { - margin-right: auto !important; - } - - .mb-xl-0 { - margin-bottom: 0 !important; - } - - .mb-xl-1 { - margin-bottom: 0.25rem !important; - } - - .mb-xl-2 { - margin-bottom: 0.5rem !important; - } - - .mb-xl-3 { - margin-bottom: 1rem !important; - } - - .mb-xl-4 { - margin-bottom: 1.5rem !important; - } - - .mb-xl-5 { - margin-bottom: 3rem !important; - } - - .mb-xl-auto { - margin-bottom: auto !important; - } - - .ms-xl-0 { - margin-left: 0 !important; - } - - .ms-xl-1 { - margin-left: 0.25rem !important; - } - - .ms-xl-2 { - margin-left: 0.5rem !important; - } - - .ms-xl-3 { - margin-left: 1rem !important; - } - - .ms-xl-4 { - margin-left: 1.5rem !important; - } - - .ms-xl-5 { - margin-left: 3rem !important; - } - - .ms-xl-auto { - margin-left: auto !important; - } - - .p-xl-0 { - padding: 0 !important; - } - - .p-xl-1 { - padding: 0.25rem !important; - } - - .p-xl-2 { - padding: 0.5rem !important; - } - - .p-xl-3 { - padding: 1rem !important; - } - - .p-xl-4 { - padding: 1.5rem !important; - } - - .p-xl-5 { - padding: 3rem !important; - } - - .px-xl-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-xl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-xl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-xl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-xl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-xl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-xl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-xl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-xl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-xl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-xl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-xl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-xl-0 { - padding-top: 0 !important; - } - - .pt-xl-1 { - padding-top: 0.25rem !important; - } - - .pt-xl-2 { - padding-top: 0.5rem !important; - } - - .pt-xl-3 { - padding-top: 1rem !important; - } - - .pt-xl-4 { - padding-top: 1.5rem !important; - } - - .pt-xl-5 { - padding-top: 3rem !important; - } - - .pe-xl-0 { - padding-right: 0 !important; - } - - .pe-xl-1 { - padding-right: 0.25rem !important; - } - - .pe-xl-2 { - padding-right: 0.5rem !important; - } - - .pe-xl-3 { - padding-right: 1rem !important; - } - - .pe-xl-4 { - padding-right: 1.5rem !important; - } - - .pe-xl-5 { - padding-right: 3rem !important; - } - - .pb-xl-0 { - padding-bottom: 0 !important; - } - - .pb-xl-1 { - padding-bottom: 0.25rem !important; - } - - .pb-xl-2 { - padding-bottom: 0.5rem !important; - } - - .pb-xl-3 { - padding-bottom: 1rem !important; - } - - .pb-xl-4 { - padding-bottom: 1.5rem !important; - } - - .pb-xl-5 { - padding-bottom: 3rem !important; - } - - .ps-xl-0 { - padding-left: 0 !important; - } - - .ps-xl-1 { - padding-left: 0.25rem !important; - } - - .ps-xl-2 { - padding-left: 0.5rem !important; - } - - .ps-xl-3 { - padding-left: 1rem !important; - } - - .ps-xl-4 { - padding-left: 1.5rem !important; - } - - .ps-xl-5 { - padding-left: 3rem !important; - } -} -@media (min-width: 1400px) { - .d-xxl-inline { - display: inline !important; - } - - .d-xxl-inline-block { - display: inline-block !important; - } - - .d-xxl-block { - display: block !important; - } - - .d-xxl-grid { - display: -ms-grid !important; - display: grid !important; - } - - .d-xxl-table { - display: table !important; - } - - .d-xxl-table-row { - display: table-row !important; - } - - .d-xxl-table-cell { - display: table-cell !important; - } - - .d-xxl-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - - .d-xxl-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - - .d-xxl-none { - display: none !important; - } - - .flex-xxl-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - - .flex-xxl-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - - .flex-xxl-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - - .flex-xxl-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - - .flex-xxl-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - - .flex-xxl-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - - .flex-xxl-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - - .flex-xxl-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - - .flex-xxl-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - - .flex-xxl-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - - .flex-xxl-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - - .flex-xxl-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - - .justify-content-xxl-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - - .justify-content-xxl-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - - .justify-content-xxl-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - - .justify-content-xxl-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - - .justify-content-xxl-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - - .justify-content-xxl-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - - .align-items-xxl-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - - .align-items-xxl-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - - .align-items-xxl-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - - .align-items-xxl-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - - .align-items-xxl-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - - .align-content-xxl-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - - .align-content-xxl-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - - .align-content-xxl-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - - .align-content-xxl-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - - .align-content-xxl-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - - .align-content-xxl-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - - .align-self-xxl-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - - .align-self-xxl-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - - .align-self-xxl-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - - .align-self-xxl-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - - .align-self-xxl-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - - .align-self-xxl-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - - .order-xxl-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - - .order-xxl-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - - .order-xxl-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - - .order-xxl-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - - .order-xxl-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - - .order-xxl-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - - .order-xxl-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - - .order-xxl-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - - .m-xxl-0 { - margin: 0 !important; - } - - .m-xxl-1 { - margin: 0.25rem !important; - } - - .m-xxl-2 { - margin: 0.5rem !important; - } - - .m-xxl-3 { - margin: 1rem !important; - } - - .m-xxl-4 { - margin: 1.5rem !important; - } - - .m-xxl-5 { - margin: 3rem !important; - } - - .m-xxl-auto { - margin: auto !important; - } - - .mx-xxl-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-xxl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-xxl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-xxl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-xxl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-xxl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-xxl-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-xxl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-xxl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-xxl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-xxl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-xxl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-xxl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-xxl-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-xxl-0 { - margin-top: 0 !important; - } - - .mt-xxl-1 { - margin-top: 0.25rem !important; - } - - .mt-xxl-2 { - margin-top: 0.5rem !important; - } - - .mt-xxl-3 { - margin-top: 1rem !important; - } - - .mt-xxl-4 { - margin-top: 1.5rem !important; - } - - .mt-xxl-5 { - margin-top: 3rem !important; - } - - .mt-xxl-auto { - margin-top: auto !important; - } - - .me-xxl-0 { - margin-right: 0 !important; - } - - .me-xxl-1 { - margin-right: 0.25rem !important; - } - - .me-xxl-2 { - margin-right: 0.5rem !important; - } - - .me-xxl-3 { - margin-right: 1rem !important; - } - - .me-xxl-4 { - margin-right: 1.5rem !important; - } - - .me-xxl-5 { - margin-right: 3rem !important; - } - - .me-xxl-auto { - margin-right: auto !important; - } - - .mb-xxl-0 { - margin-bottom: 0 !important; - } - - .mb-xxl-1 { - margin-bottom: 0.25rem !important; - } - - .mb-xxl-2 { - margin-bottom: 0.5rem !important; - } - - .mb-xxl-3 { - margin-bottom: 1rem !important; - } - - .mb-xxl-4 { - margin-bottom: 1.5rem !important; - } - - .mb-xxl-5 { - margin-bottom: 3rem !important; - } - - .mb-xxl-auto { - margin-bottom: auto !important; - } - - .ms-xxl-0 { - margin-left: 0 !important; - } - - .ms-xxl-1 { - margin-left: 0.25rem !important; - } - - .ms-xxl-2 { - margin-left: 0.5rem !important; - } - - .ms-xxl-3 { - margin-left: 1rem !important; - } - - .ms-xxl-4 { - margin-left: 1.5rem !important; - } - - .ms-xxl-5 { - margin-left: 3rem !important; - } - - .ms-xxl-auto { - margin-left: auto !important; - } - - .p-xxl-0 { - padding: 0 !important; - } - - .p-xxl-1 { - padding: 0.25rem !important; - } - - .p-xxl-2 { - padding: 0.5rem !important; - } - - .p-xxl-3 { - padding: 1rem !important; - } - - .p-xxl-4 { - padding: 1.5rem !important; - } - - .p-xxl-5 { - padding: 3rem !important; - } - - .px-xxl-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-xxl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-xxl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-xxl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-xxl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-xxl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-xxl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-xxl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-xxl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-xxl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-xxl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-xxl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-xxl-0 { - padding-top: 0 !important; - } - - .pt-xxl-1 { - padding-top: 0.25rem !important; - } - - .pt-xxl-2 { - padding-top: 0.5rem !important; - } - - .pt-xxl-3 { - padding-top: 1rem !important; - } - - .pt-xxl-4 { - padding-top: 1.5rem !important; - } - - .pt-xxl-5 { - padding-top: 3rem !important; - } - - .pe-xxl-0 { - padding-right: 0 !important; - } - - .pe-xxl-1 { - padding-right: 0.25rem !important; - } - - .pe-xxl-2 { - padding-right: 0.5rem !important; - } - - .pe-xxl-3 { - padding-right: 1rem !important; - } - - .pe-xxl-4 { - padding-right: 1.5rem !important; - } - - .pe-xxl-5 { - padding-right: 3rem !important; - } - - .pb-xxl-0 { - padding-bottom: 0 !important; - } - - .pb-xxl-1 { - padding-bottom: 0.25rem !important; - } - - .pb-xxl-2 { - padding-bottom: 0.5rem !important; - } - - .pb-xxl-3 { - padding-bottom: 1rem !important; - } - - .pb-xxl-4 { - padding-bottom: 1.5rem !important; - } - - .pb-xxl-5 { - padding-bottom: 3rem !important; - } - - .ps-xxl-0 { - padding-left: 0 !important; - } - - .ps-xxl-1 { - padding-left: 0.25rem !important; - } - - .ps-xxl-2 { - padding-left: 0.5rem !important; - } - - .ps-xxl-3 { - padding-left: 1rem !important; - } - - .ps-xxl-4 { - padding-left: 1.5rem !important; - } - - .ps-xxl-5 { - padding-left: 3rem !important; - } -} -@media print { - .d-print-inline { - display: inline !important; - } - - .d-print-inline-block { - display: inline-block !important; - } - - .d-print-block { - display: block !important; - } - - .d-print-grid { - display: -ms-grid !important; - display: grid !important; - } - - .d-print-table { - display: table !important; - } - - .d-print-table-row { - display: table-row !important; - } - - .d-print-table-cell { - display: table-cell !important; - } - - .d-print-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - - .d-print-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - - .d-print-none { - display: none !important; - } +.content-evenly { + align-content: space-evenly; } diff --git a/src/scss/components/ripple/_ripple.scss b/src/scss/components/ripple/_ripple.scss index 341a6925..a77a6e8d 100644 --- a/src/scss/components/ripple/_ripple.scss +++ b/src/scss/components/ripple/_ripple.scss @@ -1,42 +1,41 @@ .btn, .ripple-e { - position: relative; - overflow: hidden; + position: relative; + overflow: hidden; } .ripple { - background-color: currentColor; - position: absolute; - border-radius: 50%; - pointer-events: none; - transition: all 0.8s ease; - filter: opacity(0.2); - animation: ripple 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); + background-color: currentColor; + position: absolute; + border-radius: 50%; + pointer-events: none; + transition: all 0.8s ease; + filter: opacity(0.2); + animation: ripple 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); } -.icon .ripple , .center-ripple .ripple { - top: 50% !important; - left: 50% !important; - transform: scale(1) translate(-50%, -50%) !important; - animation: ripple_center 1s cubic-bezier(0.165, 0.84, 0.44, 1) forwards !important; +.btn-icon .ripple, +.ripple-center .ripple { + top: 50% !important; + left: 50% !important; + transition: all 0.8s ease; + animation: ripple_center 1s cubic-bezier(0.165, 0.84, 0.44, 1) forwards !important; } @keyframes ripple_center { - 0% { - -webkit-transform: translate(-50%, -50%) scale(0); - transform: translate(-50%, -50%) scale(0); - } - 100% { - -webkit-transform: translate(-50%, -50%) scale(1); - transform: translate(-50%, -50%) scale(1); - } + 0% { + transform: translate(-50%, -50%) scale(0); + } + 100% { + transform: translate(-50%, -50%) scale(1); + } } @keyframes ripple { - from { - transform: scale(0); - } - to { - transform: scale(1); - } + from { + transform: scale(0); + } + to { + transform: scale(1); + } } diff --git a/src/js/components/accordion.js b/src/ts/components/accordion.js similarity index 97% rename from src/js/components/accordion.js rename to src/ts/components/accordion.js index 3cc6a1c7..cd3d1e41 100644 --- a/src/js/components/accordion.js +++ b/src/ts/components/accordion.js @@ -1,42 +1,42 @@ -const Accordion = { - init: function () { - const accordions = document.querySelectorAll('.accordion'); - if (accordions) { - accordions.forEach(function (i) { - const _this = i; - const items = _this.querySelectorAll('.item'); - - if (items) { - items.forEach(function (i) { - const children = i.querySelectorAll('.content , .content *'); - if (children) { - const focus = () => { - if (i.classList.contains('open')) { - children.forEach(function (i) { - i.setAttribute("tabIndex", "-1"); - }); - } - else { - children.forEach(function (i) { - i.removeAttribute("tabIndex"); - }); - } - }; - focus(); - - const ih = i.offsetHeight; - i.style.setProperty("--max-height", `${ih + 20}px`); - - i.querySelector("[data-toggle]").addEventListener("click", () => { - focus(); - i.classList.toggle("open"); - }); - } - }); - } - }); - } - } -}; -Accordion.init(); +const Accordion = { + init: function () { + const accordions = document.querySelectorAll('.accordion'); + if (accordions) { + accordions.forEach(function (i) { + const _this = i; + const items = _this.querySelectorAll('.item'); + + if (items) { + items.forEach(function (i) { + const children = i.querySelectorAll('.content , .content *'); + if (children) { + const focus = () => { + if (i.classList.contains('open')) { + children.forEach(function (i) { + i.setAttribute("tabIndex", "-1"); + }); + } + else { + children.forEach(function (i) { + i.removeAttribute("tabIndex"); + }); + } + }; + focus(); + + const ih = i.offsetHeight; + i.style.setProperty("--max-height", `${ih + 20}px`); + + i.querySelector("[data-toggle]").addEventListener("click", () => { + focus(); + i.classList.toggle("open"); + }); + } + }); + } + }); + } + } +}; +Accordion.init(); export default Accordion; \ No newline at end of file diff --git a/src/js/components/appbar.js b/src/ts/components/appbar.js similarity index 96% rename from src/js/components/appbar.js rename to src/ts/components/appbar.js index 7e80b69c..b1d375be 100644 --- a/src/js/components/appbar.js +++ b/src/ts/components/appbar.js @@ -1,16 +1,16 @@ -const Appbar = { - init: () => { - const elements = document.querySelectorAll('.appbar.elevating'); - elements.forEach(element => { - document.addEventListener('scroll', () => { - if (window.scrollY > 100) { - element.classList.add('elevated'); - } else { - element.classList.remove('elevated'); - } - }); - }) - } -}; -Appbar.init(); +const Appbar = { + init: () => { + const elements = document.querySelectorAll('.appbar.elevating'); + elements.forEach(element => { + document.addEventListener('scroll', () => { + if (window.scrollY > 100) { + element.classList.add('elevated'); + } else { + element.classList.remove('elevated'); + } + }); + }) + } +}; +Appbar.init(); export default Appbar; \ No newline at end of file diff --git a/src/js/components/dialog.js b/src/ts/components/dialog.js similarity index 96% rename from src/js/components/dialog.js rename to src/ts/components/dialog.js index cddc8d47..52eefd4e 100644 --- a/src/js/components/dialog.js +++ b/src/ts/components/dialog.js @@ -1,66 +1,66 @@ -import * as focusTrap from "focus-trap"; -let trap; - -const getScrollbarWidth = () => { - const outer = document.createElement("div"); - outer.style.visibility = "hidden"; - outer.style.width = "100px"; - outer.style.msOverflowStyle = "scrollbar"; - outer.style.overflow = "scroll"; - document.body.appendChild(outer); - const widthNoScroll = outer.offsetWidth; - outer.style.overflow = "scroll"; - const inner = document.createElement("div"); - inner.style.width = "100%"; - outer.appendChild(inner); - const widthWithScroll = inner.offsetWidth; - outer.parentNode.removeChild(outer); - return widthNoScroll - widthWithScroll; -}; - -const ToggleOverflow = (overflow) => { - if (overflow) { - document.body.style.setProperty("--scrollbar-width", `${getScrollbarWidth()}px`); - document.body.classList.add("overflow-hidden"); - } else { - document.body.style.removeProperty("--scrollbar-width"); - document.body.classList.remove("overflow-hidden"); - } -}; -const Dialog = { - toggle: (el) => { - const dialog = el; - if (dialog.classList.contains("open")) { - Dialog.close(el); - } - else { - Dialog.open(el); - } - }, - open: (el) => { - const dialog = el; - dialog.classList.add("open"); - dialog.removeAttribute("tabindex"); - ToggleOverflow(true); - trap = focusTrap.createFocusTrap(dialog, { - onDeactivate: () => { - Dialog.close(el); - } - }); - trap.activate(); - el.addEventListener("pointerdown", (e) => { - if (e.target !== e.currentTarget) - return; - Dialog.close(el); - }); - }, - close: (el) => { - const dialog = el; - dialog.setAttribute("tabindex", "-1"); - dialog.classList.remove("open"); - document.body.classList.remove("modal-open"); - trap.deactivate(); - ToggleOverflow(false); - } -}; +import * as focusTrap from "focus-trap"; +let trap; + +const getScrollbarWidth = () => { + const outer = document.createElement("div"); + outer.style.visibility = "hidden"; + outer.style.width = "100px"; + outer.style.msOverflowStyle = "scrollbar"; + outer.style.overflow = "scroll"; + document.body.appendChild(outer); + const widthNoScroll = outer.offsetWidth; + outer.style.overflow = "scroll"; + const inner = document.createElement("div"); + inner.style.width = "100%"; + outer.appendChild(inner); + const widthWithScroll = inner.offsetWidth; + outer.parentNode.removeChild(outer); + return widthNoScroll - widthWithScroll; +}; + +const ToggleOverflow = (overflow) => { + if (overflow) { + document.body.style.setProperty("--scrollbar-width", `${getScrollbarWidth()}px`); + document.body.classList.add("overflow-hidden"); + } else { + document.body.style.removeProperty("--scrollbar-width"); + document.body.classList.remove("overflow-hidden"); + } +}; +const Dialog = { + toggle: (el) => { + const dialog = el; + if (dialog.classList.contains("open")) { + Dialog.close(el); + } + else { + Dialog.open(el); + } + }, + open: (el) => { + const dialog = el; + dialog.classList.add("open"); + dialog.removeAttribute("tabindex"); + ToggleOverflow(true); + trap = focusTrap.createFocusTrap(dialog, { + onDeactivate: () => { + Dialog.close(el); + } + }); + trap.activate(); + el.addEventListener("pointerdown", (e) => { + if (e.target !== e.currentTarget) + return; + Dialog.close(el); + }); + }, + close: (el) => { + const dialog = el; + dialog.setAttribute("tabindex", "-1"); + dialog.classList.remove("open"); + document.body.classList.remove("modal-open"); + trap.deactivate(); + ToggleOverflow(false); + } +}; export default Dialog; \ No newline at end of file diff --git a/src/js/components/drawer.js b/src/ts/components/drawer.js similarity index 96% rename from src/js/components/drawer.js rename to src/ts/components/drawer.js index f4c3e5dc..93439a83 100644 --- a/src/js/components/drawer.js +++ b/src/ts/components/drawer.js @@ -1,67 +1,67 @@ -import * as focusTrap from "focus-trap"; -let trap; - -const getScrollbarWidth = () => { - const outer = document.createElement("div"); - outer.style.visibility = "hidden"; - outer.style.width = "100px"; - outer.style.msOverflowStyle = "scrollbar"; - outer.style.overflow = "scroll"; - document.body.appendChild(outer); - const widthNoScroll = outer.offsetWidth; - outer.style.overflow = "scroll"; - const inner = document.createElement("div"); - inner.style.width = "100%"; - outer.appendChild(inner); - const widthWithScroll = inner.offsetWidth; - outer.parentNode.removeChild(outer); - return widthNoScroll - widthWithScroll; -}; - -const ToggleOverflow = (overflow) => { - if (overflow) { - document.body.style.setProperty("--scrollbar-width", `${getScrollbarWidth()}px`); - document.body.classList.add("overflow-hidden"); - } else { - document.body.style.removeProperty("--scrollbar-width"); - document.body.classList.remove("overflow-hidden"); - } -}; - -const Drawer = { - toggle: (el) => { - const dialog = el; - if (dialog.classList.contains("open")) { - Drawer.close(el); - } - else { - Drawer.open(el); - } - }, - open: (el) => { - const dialog = el; - dialog.classList.add("open"); - dialog.removeAttribute("tabindex"); - ToggleOverflow(true); - trap = focusTrap.createFocusTrap(dialog, { - onDeactivate: () => { - Drawer.close(el); - } - }); - trap.activate(); - el.addEventListener("pointerdown", (e) => { - if (e.target !== e.currentTarget) - return; - Drawer.close(el); - }); - }, - close: (el) => { - const dialog = el; - dialog.setAttribute("tabindex", "-1"); - dialog.classList.remove("open"); - document.body.classList.remove("modal-open"); - trap.deactivate(); - ToggleOverflow(false); - } -}; +import * as focusTrap from "focus-trap"; +let trap; + +const getScrollbarWidth = () => { + const outer = document.createElement("div"); + outer.style.visibility = "hidden"; + outer.style.width = "100px"; + outer.style.msOverflowStyle = "scrollbar"; + outer.style.overflow = "scroll"; + document.body.appendChild(outer); + const widthNoScroll = outer.offsetWidth; + outer.style.overflow = "scroll"; + const inner = document.createElement("div"); + inner.style.width = "100%"; + outer.appendChild(inner); + const widthWithScroll = inner.offsetWidth; + outer.parentNode.removeChild(outer); + return widthNoScroll - widthWithScroll; +}; + +const ToggleOverflow = (overflow) => { + if (overflow) { + document.body.style.setProperty("--scrollbar-width", `${getScrollbarWidth()}px`); + document.body.classList.add("overflow-hidden"); + } else { + document.body.style.removeProperty("--scrollbar-width"); + document.body.classList.remove("overflow-hidden"); + } +}; + +const Drawer = { + toggle: (el) => { + const dialog = el; + if (dialog.classList.contains("open")) { + Drawer.close(el); + } + else { + Drawer.open(el); + } + }, + open: (el) => { + const dialog = el; + dialog.classList.add("open"); + dialog.removeAttribute("tabindex"); + ToggleOverflow(true); + trap = focusTrap.createFocusTrap(dialog, { + onDeactivate: () => { + Drawer.close(el); + } + }); + trap.activate(); + el.addEventListener("pointerdown", (e) => { + if (e.target !== e.currentTarget) + return; + Drawer.close(el); + }); + }, + close: (el) => { + const dialog = el; + dialog.setAttribute("tabindex", "-1"); + dialog.classList.remove("open"); + document.body.classList.remove("modal-open"); + trap.deactivate(); + ToggleOverflow(false); + } +}; export default Drawer; \ No newline at end of file diff --git a/src/js/components/forms.js b/src/ts/components/forms.js similarity index 96% rename from src/js/components/forms.js rename to src/ts/components/forms.js index 41647e8a..c94257a2 100644 --- a/src/js/components/forms.js +++ b/src/ts/components/forms.js @@ -1,55 +1,55 @@ -import noUiSlider from 'nouislider'; - -const Forms = { - init: function (element) { - element = element || document; - - const forms = element.querySelectorAll(".textbox"); - - if(!forms) return; - - for (let i = 0; i < forms.length; i++) { - let parent = forms[i]; - let input = parent.querySelector(".input"); - - if (input.value) { - parent.classList.add("floating"); - } - else { - parent.classList.remove("floating"); - } - - parent.addEventListener("click", function () { - parent.classList.add("floating"); - input.focus(); - }); - - input.addEventListener("focus", function () { - parent.classList.add("focus"); - parent.classList.add("floating"); - }); - - input.addEventListener("blur", function () { - parent.classList.remove("focus"); - if (input.value) { - parent.classList.add("floating"); - } - else { - parent.classList.remove("floating"); - } - }); - - input.addEventListener("input", function () { - if (input.value) { - parent.classList.add("floating"); - } - else { - parent.classList.remove("floating"); - } - }); - } - }, - initRangeSlider: noUiSlider -}; -Forms.init(); -export default Forms; +import noUiSlider from 'nouislider'; + +const Forms = { + init: function (element) { + element = element || document; + + const forms = element.querySelectorAll(".textbox"); + + if(!forms) return; + + for (let i = 0; i < forms.length; i++) { + let parent = forms[i]; + let input = parent.querySelector(".input"); + + if (input.value) { + parent.classList.add("floating"); + } + else { + parent.classList.remove("floating"); + } + + parent.addEventListener("click", function () { + parent.classList.add("floating"); + input.focus(); + }); + + input.addEventListener("focus", function () { + parent.classList.add("focus"); + parent.classList.add("floating"); + }); + + input.addEventListener("blur", function () { + parent.classList.remove("focus"); + if (input.value) { + parent.classList.add("floating"); + } + else { + parent.classList.remove("floating"); + } + }); + + input.addEventListener("input", function () { + if (input.value) { + parent.classList.add("floating"); + } + else { + parent.classList.remove("floating"); + } + }); + } + }, + initRangeSlider: noUiSlider +}; +Forms.init(); +export default Forms; diff --git a/src/js/components/menu.js b/src/ts/components/menu.js similarity index 96% rename from src/js/components/menu.js rename to src/ts/components/menu.js index 530474fe..28e30bc4 100644 --- a/src/js/components/menu.js +++ b/src/ts/components/menu.js @@ -1,66 +1,66 @@ -import * as focusTrap from 'focus-trap'; -import { createPopper } from '@popperjs/core'; -let trap; -let element; -const Menu = { - init: () => { - const trigger = document.querySelectorAll('[data-toggle-menu]'); - - trigger.forEach(el => { - const target = el.getAttribute('data-toggle-menu'); - const menu = document.querySelector(`[data-menu-id="${target}"]`); - const children = menu.querySelectorAll('*'); - element = el; - - const toggle = () => { - Menu.toggle(menu); - }; - - el.addEventListener('pointerdown', toggle); - el.addEventListener('click', (e) => { - if (e.clientX == 0 || e.clientY == 0) { - toggle(); - } - }); - - children.forEach(child => { - child.addEventListener('click', () => { - const target = element.getAttribute('data-toggle-menu'); - const menu = document.querySelector(`[data-menu-id="${target}"]`); - Menu.close(menu); - }); - }); - }); - }, - - toggle: (menu) => { - if (menu.classList.contains('open')) { - Menu.close(menu); - } - else { - Menu.open(menu); - } - }, - - open: (menu) => { - trap = focusTrap.createFocusTrap(menu, { - onActivate: () => { - menu.classList.add('open'); - }, - onDeactivate: () => { - menu.classList.remove('open'); - } - }); - trap.activate(); - createPopper(element, menu); - menu.removeAttribute('tabindex'); - }, - - close: (menu) => { - menu.classList.remove('open'); - trap.deactivate(); - menu.setAttribute('tabindex', '-1'); - } -}; -Menu.init(); +import * as focusTrap from 'focus-trap'; +import { createPopper } from '@popperjs/core'; +let trap; +let element; +const Menu = { + init: () => { + const trigger = document.querySelectorAll('[data-toggle-menu]'); + + trigger.forEach(el => { + const target = el.getAttribute('data-toggle-menu'); + const menu = document.querySelector(`[data-menu-id="${target}"]`); + const children = menu.querySelectorAll('*'); + element = el; + + const toggle = () => { + Menu.toggle(menu); + }; + + el.addEventListener('pointerdown', toggle); + el.addEventListener('click', (e) => { + if (e.clientX == 0 || e.clientY == 0) { + toggle(); + } + }); + + children.forEach(child => { + child.addEventListener('click', () => { + const target = element.getAttribute('data-toggle-menu'); + const menu = document.querySelector(`[data-menu-id="${target}"]`); + Menu.close(menu); + }); + }); + }); + }, + + toggle: (menu) => { + if (menu.classList.contains('open')) { + Menu.close(menu); + } + else { + Menu.open(menu); + } + }, + + open: (menu) => { + trap = focusTrap.createFocusTrap(menu, { + onActivate: () => { + menu.classList.add('open'); + }, + onDeactivate: () => { + menu.classList.remove('open'); + } + }); + trap.activate(); + createPopper(element, menu); + menu.removeAttribute('tabindex'); + }, + + close: (menu) => { + menu.classList.remove('open'); + trap.deactivate(); + menu.setAttribute('tabindex', '-1'); + } +}; +Menu.init(); export default Menu; \ No newline at end of file diff --git a/src/js/components/picker.js b/src/ts/components/picker.js similarity index 95% rename from src/js/components/picker.js rename to src/ts/components/picker.js index 40b3669c..e5ece89a 100644 --- a/src/js/components/picker.js +++ b/src/ts/components/picker.js @@ -1,5 +1,5 @@ -import flatpickr from "flatpickr"; - -const Picker = flatpickr - +import flatpickr from "flatpickr"; + +const Picker = flatpickr + export default Picker \ No newline at end of file diff --git a/src/js/components/ripple.js b/src/ts/components/ripple.js similarity index 97% rename from src/js/components/ripple.js rename to src/ts/components/ripple.js index 742aba7c..aaf6747e 100644 --- a/src/js/components/ripple.js +++ b/src/ts/components/ripple.js @@ -1,49 +1,49 @@ -const Ripple = { - init: () => { - const buttons = document.querySelectorAll('.ripple-e:not(.ripple-ready) , .btn:not(.ripple-ready), .icon:not(.ripple-ready)') - const stopEvents = ["pointerup", "mouseleave", "dragleave", "touchmove", "touchend", "touchcancel"]; - let id; - - function findFurthestPoint(clickPointX, elementWidth, offsetX, clickPointY, elementHeight, offsetY) { - let x = clickPointX - offsetX > elementWidth / 2 ? 0 : elementWidth; - let y = clickPointY - offsetY > elementHeight / 2 ? 0 : elementHeight; - let d = Math.hypot(x - (clickPointX - offsetX), y - (clickPointY - offsetY)); - return d; - } - - buttons.forEach(button => { - button.classList.add('ripple-ready'); - button.addEventListener('pointerdown', e => { - const rect = button.getBoundingClientRect() - const radius = findFurthestPoint(e.clientX, button.offsetWidth, rect.left, e.clientY, button.offsetHeight, rect.top) - - id = "__" + (Math.random() + 1).toString(36).substring(7) + '-' + (Math.random() + 1).toString(36).substring(7); - - const circle = document.createElement('div') - circle.classList.add('ripple') - circle.id = id - - circle.style.left = `${e.clientX - rect.left - radius}px` - circle.style.top = `${e.clientY - rect.top - radius}px` - circle.style.width = circle.style.height = `${radius * 2}px` - - button.appendChild(circle) - }) - - stopEvents.forEach(event => { - button.addEventListener(event, () => { - const ripple = button.querySelector('.ripple#' + id) - if (ripple) { - ripple.style.opacity = '0' - setTimeout(() => { - ripple.remove() - }, 600) - } - }) - }) - }); - } -}; -Ripple.init(); - -export default Ripple +const Ripple = { + init: () => { + const buttons = document.querySelectorAll('.ripple-e:not(.ripple-ready) , .btn:not(.ripple-ready), .icon:not(.ripple-ready)') + const stopEvents = ["pointerup", "mouseleave", "dragleave", "touchmove", "touchend", "touchcancel"]; + let id; + + function findFurthestPoint(clickPointX, elementWidth, offsetX, clickPointY, elementHeight, offsetY) { + let x = clickPointX - offsetX > elementWidth / 2 ? 0 : elementWidth; + let y = clickPointY - offsetY > elementHeight / 2 ? 0 : elementHeight; + let d = Math.hypot(x - (clickPointX - offsetX), y - (clickPointY - offsetY)); + return d; + } + + buttons.forEach(button => { + button.classList.add('ripple-ready'); + button.addEventListener('pointerdown', e => { + const rect = button.getBoundingClientRect() + const radius = findFurthestPoint(e.clientX, button.offsetWidth, rect.left, e.clientY, button.offsetHeight, rect.top) + + id = "__" + (Math.random() + 1).toString(36).substring(7) + '-' + (Math.random() + 1).toString(36).substring(7); + + const circle = document.createElement('div') + circle.classList.add('ripple') + circle.id = id + + circle.style.left = `${e.clientX - rect.left - radius}px` + circle.style.top = `${e.clientY - rect.top - radius}px` + circle.style.width = circle.style.height = `${radius * 2}px` + + button.appendChild(circle) + }) + + stopEvents.forEach(event => { + button.addEventListener(event, () => { + const ripple = button.querySelector('.ripple#' + id) + if (ripple) { + ripple.style.opacity = '0' + setTimeout(() => { + ripple.remove() + }, 600) + } + }) + }) + }); + } +}; +Ripple.init(); + +export default Ripple diff --git a/src/js/components/snackbar.js b/src/ts/components/snackbar.js similarity index 97% rename from src/js/components/snackbar.js rename to src/ts/components/snackbar.js index 4e9ff62b..af8d5520 100644 --- a/src/js/components/snackbar.js +++ b/src/ts/components/snackbar.js @@ -1,60 +1,60 @@ -import Ripple from "./ripple"; -const Snackbar = { - show: (message, button = "Got It", action = "", duration = 3000) => { - let randomId; - let _action; - if (action === "") { - _action = () => { - // do something - } - } - else { - _action = action; - } - const show_snackbar = () => { - const snackbar = document.createElement("div"); - snackbar.classList.add("snackbar"); - randomId = "__" + (Math.random() + 1).toString(36).substring(7) + '-' + (Math.random() + 1).toString(36).substring(7); - snackbar.innerHTML = ` -

${message}

- - `; - document.body.appendChild(snackbar); - document.getElementById(randomId).addEventListener("click", _action); - document.getElementById(randomId).addEventListener("click", () => { - snackbar.classList.remove("show"); - setTimeout(() => { - snackbar.remove(); - }, 300); - }); - - setTimeout(() => { - snackbar.classList.add("show"); - }, 300); - - Ripple.init(); - - setTimeout(() => { - snackbar.classList.remove("show"); - setTimeout(() => { - snackbar.remove(); - }, 300); - }, duration); - }; - - const snackbar_there = document.querySelector(".snackbar"); - if (snackbar_there) { - document.querySelector(".snackbar").classList.remove("show"); - setTimeout(() => { - document.querySelector(".snackbar").remove(); - setTimeout(() => { - show_snackbar(); - }, 300); - }, 300); - } - else { - show_snackbar(); - } - }, -}; -export default Snackbar; +import Ripple from "./ripple"; +const Snackbar = { + show: (message, button = "Got It", action = "", duration = 3000) => { + let randomId; + let _action; + if (action === "") { + _action = () => { + // do something + } + } + else { + _action = action; + } + const show_snackbar = () => { + const snackbar = document.createElement("div"); + snackbar.classList.add("snackbar"); + randomId = "__" + (Math.random() + 1).toString(36).substring(7) + '-' + (Math.random() + 1).toString(36).substring(7); + snackbar.innerHTML = ` +

${message}

+ + `; + document.body.appendChild(snackbar); + document.getElementById(randomId).addEventListener("click", _action); + document.getElementById(randomId).addEventListener("click", () => { + snackbar.classList.remove("show"); + setTimeout(() => { + snackbar.remove(); + }, 300); + }); + + setTimeout(() => { + snackbar.classList.add("show"); + }, 300); + + Ripple.init(); + + setTimeout(() => { + snackbar.classList.remove("show"); + setTimeout(() => { + snackbar.remove(); + }, 300); + }, duration); + }; + + const snackbar_there = document.querySelector(".snackbar"); + if (snackbar_there) { + document.querySelector(".snackbar").classList.remove("show"); + setTimeout(() => { + document.querySelector(".snackbar").remove(); + setTimeout(() => { + show_snackbar(); + }, 300); + }, 300); + } + else { + show_snackbar(); + } + }, +}; +export default Snackbar; diff --git a/src/js/components/tabs.js b/src/ts/components/tabs.js similarity index 96% rename from src/js/components/tabs.js rename to src/ts/components/tabs.js index 8d89e4da..af2298e5 100644 --- a/src/js/components/tabs.js +++ b/src/ts/components/tabs.js @@ -1,83 +1,83 @@ -function Tabs(options) { - const elem = document.getElementById(options.elem) - const open = options.open || 0 - const titleClass = 'item' - const activeClass = 'active' - const contentClass = 'content' - const tabsNum = elem.querySelectorAll('.' + titleClass).length - const uniqId = (Date.now()+Math.random()).toString(36); - - render(); - - - function render(n) { - elem.addEventListener('click', onClick); - - let init = (n == null) ? checkTab(open) : checkTab(n); - - for (let i = 0; i < tabsNum; i++) { - elem.querySelectorAll('.' + titleClass)[i].setAttribute('data-'+uniqId, i); - if (i === init) - openTab(i); - } - } - - - function onClick(e) { - if (e.target.className.indexOf(titleClass) === -1) - return; - e.preventDefault(); - openTab(e.target.getAttribute('data-'+uniqId)); - } - - - function reset() { - [].forEach.call(elem.querySelectorAll('.' + contentClass), function (item) { - item.classList.remove("active"); - }); - - [].forEach.call(elem.querySelectorAll('.' + titleClass), function (item) { - item.className = removeClass(item.className, activeClass); - }); - } - - - function removeClass(str, cls) { - let reg = new RegExp('(\ )' + cls + '(\)', 'g'); - return str.replace(reg, ''); - } - - - function checkTab(n) { - return (n < 0 || isNaN(n) || n > tabsNum) ? 0 : n; - } - - - function openTab(n) { - reset(); - - let i = checkTab(n); - elem.querySelectorAll('.' + titleClass)[i].className += ' ' + activeClass; - elem.querySelectorAll('.' + contentClass)[i].classList.add("active"); - } - - - function update(n) { - destroy(); - reset(); - render(n); - } - - - function destroy() { - elem.removeEventListener('click', onClick); - } - - return { - open: openTab, - update: update, - destroy: destroy - }; -} -export default Tabs; - +function Tabs(options) { + const elem = document.getElementById(options.elem) + const open = options.open || 0 + const titleClass = 'item' + const activeClass = 'active' + const contentClass = 'content' + const tabsNum = elem.querySelectorAll('.' + titleClass).length + const uniqId = (Date.now()+Math.random()).toString(36); + + render(); + + + function render(n) { + elem.addEventListener('click', onClick); + + let init = (n == null) ? checkTab(open) : checkTab(n); + + for (let i = 0; i < tabsNum; i++) { + elem.querySelectorAll('.' + titleClass)[i].setAttribute('data-'+uniqId, i); + if (i === init) + openTab(i); + } + } + + + function onClick(e) { + if (e.target.className.indexOf(titleClass) === -1) + return; + e.preventDefault(); + openTab(e.target.getAttribute('data-'+uniqId)); + } + + + function reset() { + [].forEach.call(elem.querySelectorAll('.' + contentClass), function (item) { + item.classList.remove("active"); + }); + + [].forEach.call(elem.querySelectorAll('.' + titleClass), function (item) { + item.className = removeClass(item.className, activeClass); + }); + } + + + function removeClass(str, cls) { + let reg = new RegExp('(\ )' + cls + '(\)', 'g'); + return str.replace(reg, ''); + } + + + function checkTab(n) { + return (n < 0 || isNaN(n) || n > tabsNum) ? 0 : n; + } + + + function openTab(n) { + reset(); + + let i = checkTab(n); + elem.querySelectorAll('.' + titleClass)[i].className += ' ' + activeClass; + elem.querySelectorAll('.' + contentClass)[i].classList.add("active"); + } + + + function update(n) { + destroy(); + reset(); + render(n); + } + + + function destroy() { + elem.removeEventListener('click', onClick); + } + + return { + open: openTab, + update: update, + destroy: destroy + }; +} +export default Tabs; + diff --git a/src/js/components/tooltip.js b/src/ts/components/tooltip.js similarity index 97% rename from src/js/components/tooltip.js rename to src/ts/components/tooltip.js index f308bdda..9d2853f4 100644 --- a/src/js/components/tooltip.js +++ b/src/ts/components/tooltip.js @@ -1,42 +1,42 @@ -import { createPopper } from '@popperjs/core'; - -let tooltip_id; -const Tooltip = { - init: () => { - const trigger = document.querySelectorAll('[data-tooltip]'); - - trigger.forEach(el => { - const show = () => Tooltip.show(el); - const hide = () => Tooltip.hide(tooltip_id); - const mouseshowevents = ['mouseenter', 'touchstart']; - const mousehideevents = ['mouseleave', 'touchend']; - - mouseshowevents.forEach(event => el.addEventListener(event, show)); - mousehideevents.forEach(event => el.addEventListener(event, hide)); - }); - }, - - show: (el) => { - const target = el.getAttribute('data-tooltip'); - const tooltip = document.createElement('div'); - tooltip.classList.add('tooltip'); - tooltip_id = "__" + (Math.random() + 1).toString(36).substring(7) + "__" + (Math.random() + 1).toString(36).substring(7); - tooltip.id = tooltip_id; - tooltip.innerHTML = target; - createPopper(el, tooltip); - setTimeout(() => { - tooltip.classList.add('show'); - }, 100); - document.body.appendChild(tooltip); - }, - - hide: (id) => { - const tooltip = document.getElementById(id); - tooltip.classList.remove('show'); - setTimeout(() => { - tooltip.remove(); - }, 300); - } -}; -Tooltip.init(); +import { createPopper } from '@popperjs/core'; + +let tooltip_id; +const Tooltip = { + init: () => { + const trigger = document.querySelectorAll('[data-tooltip]'); + + trigger.forEach(el => { + const show = () => Tooltip.show(el); + const hide = () => Tooltip.hide(tooltip_id); + const mouseshowevents = ['mouseenter', 'touchstart']; + const mousehideevents = ['mouseleave', 'touchend']; + + mouseshowevents.forEach(event => el.addEventListener(event, show)); + mousehideevents.forEach(event => el.addEventListener(event, hide)); + }); + }, + + show: (el) => { + const target = el.getAttribute('data-tooltip'); + const tooltip = document.createElement('div'); + tooltip.classList.add('tooltip'); + tooltip_id = "__" + (Math.random() + 1).toString(36).substring(7) + "__" + (Math.random() + 1).toString(36).substring(7); + tooltip.id = tooltip_id; + tooltip.innerHTML = target; + createPopper(el, tooltip); + setTimeout(() => { + tooltip.classList.add('show'); + }, 100); + document.body.appendChild(tooltip); + }, + + hide: (id) => { + const tooltip = document.getElementById(id); + tooltip.classList.remove('show'); + setTimeout(() => { + tooltip.remove(); + }, 300); + } +}; +Tooltip.init(); export default Tooltip; \ No newline at end of file diff --git a/src/js/exportGlobal.js b/src/ts/exportGlobal.js similarity index 100% rename from src/js/exportGlobal.js rename to src/ts/exportGlobal.js diff --git a/src/js/index.js b/src/ts/index.ts similarity index 96% rename from src/js/index.js rename to src/ts/index.ts index 97e0c1ca..3543160d 100644 --- a/src/js/index.js +++ b/src/ts/index.ts @@ -1,34 +1,34 @@ -import { exportGlobal } from "./exportGlobal.js"; - -/** - * - * Import Modules - * - */ - -/** - * Dependencies - */ -import Ripple from "./components/ripple.js"; -import Forms from "./components/forms.js"; -import Accordion from "./components/accordion.js"; -import Tabs from "./components/tabs.js"; -import Appbar from "./components/appbar.js"; -import Menu from "./components/menu.js"; -import Tooltip from "./components/tooltip.js"; -import Snackbar from "./components/snackbar.js"; -import Dialog from "./components/dialog.js"; -import Picker from "./components/picker.js"; -import Drawer from "./components/drawer.js"; - -exportGlobal("Ripple", Ripple); -exportGlobal("Forms", Forms); -exportGlobal("Accordion", Accordion); -exportGlobal("Tabs", Tabs); -exportGlobal("Appbar", Appbar); -exportGlobal("Menu", Menu); -exportGlobal("Tooltip", Tooltip); -exportGlobal("Snackbar", Snackbar); -exportGlobal("Dialog", Dialog); -exportGlobal("Picker", Picker); +import { exportGlobal } from "./exportGlobal.js"; + +/** + * + * Import Modules + * + */ + +/** + * Dependencies + */ +import Ripple from "./components/ripple.js"; +import Forms from "./components/forms.js"; +import Accordion from "./components/accordion.js"; +import Tabs from "./components/tabs.js"; +import Appbar from "./components/appbar.js"; +import Menu from "./components/menu.js"; +import Tooltip from "./components/tooltip.js"; +import Snackbar from "./components/snackbar.js"; +import Dialog from "./components/dialog.js"; +import Picker from "./components/picker.js"; +import Drawer from "./components/drawer.js"; + +exportGlobal("Ripple", Ripple); +exportGlobal("Forms", Forms); +exportGlobal("Accordion", Accordion); +exportGlobal("Tabs", Tabs); +exportGlobal("Appbar", Appbar); +exportGlobal("Menu", Menu); +exportGlobal("Tooltip", Tooltip); +exportGlobal("Snackbar", Snackbar); +exportGlobal("Dialog", Dialog); +exportGlobal("Picker", Picker); exportGlobal("Drawer", Drawer); \ No newline at end of file diff --git a/src/typescript.svg b/src/typescript.svg new file mode 100644 index 00000000..d91c910c --- /dev/null +++ b/src/typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/test.md b/test.md new file mode 100644 index 00000000..64bbf853 --- /dev/null +++ b/test.md @@ -0,0 +1,115 @@ +# button + + + + + + + + + + + + + + +
+ + + +
+ + + +# alert + + + + + + + + +# card + +
+ +
+ + +# chip + +Stars + Forks + Issues + +# banner + + + + + +# badge + +Vite + Vite \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..c14c1e05 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": false, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} From 6311a9b20aee47962c7afa3c1114df5dc4f4842a Mon Sep 17 00:00:00 2001 From: Posandu Date: Fri, 28 Jun 2024 15:47:06 +0000 Subject: [PATCH 02/15] Update Build Files --- dist/material.css | 8555 -------------------------------------- dist/material.js | 7148 ------------------------------- dist/material.js.map | 7 - dist/material.min.css | 1 - dist/material.min.js | 23 - dist/material.min.js.map | 7 - package-lock.json | 1223 +++++- 7 files changed, 1108 insertions(+), 15856 deletions(-) delete mode 100644 dist/material.css delete mode 100644 dist/material.js delete mode 100644 dist/material.js.map delete mode 100644 dist/material.min.css delete mode 100644 dist/material.min.js delete mode 100644 dist/material.min.js.map diff --git a/dist/material.css b/dist/material.css deleted file mode 100644 index 222ab061..00000000 --- a/dist/material.css +++ /dev/null @@ -1,8555 +0,0 @@ -/* - * Tronic247 Material design - v3.0 - * https://material.tronic247.com - * - * Copyright (C) 2021 "Tronic247" Posandu Mapa - * licensed under the MIT license. - * https://github.com/Tronic247/material/blob/Main/LICENSE - */ -*:after, -*:before, -* { - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-tap-highlight-color: transparent !important; - -webkit-touch-callout: none; -} - -*:focus-visible { - border: none; - outline: none; -} - -h1, -h2, -h3, -h4, -h5, -h6, -p, -body, -div, -button, -input, -textarea { - font-family: "Roboto", sans-serif; -} - -main { - display: block; -} - -hr { - border: none; - border-bottom: 1px #d6d6d6 solid; - margin: 10px 0; -} - -pre { - font-family: monospace; - font-size: 1em; -} - -a { - background-color: transparent; - text-decoration: none; - color: inherit; -} - -abbr[title] { - border-bottom: none; - text-decoration: underline; - -webkit-text-decoration: underline; -} - -b, -strong { - font-weight: bolder; -} - -code, -kbd, -samp { - font-family: monospace; - font-size: 1em; -} - -small { - font-size: 80%; -} - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -img { - border-style: none; - max-width: 100%; -} - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - font-size: 100%; - line-height: 1.15; -} - -button, -input { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -button, -[type=button], -[type=reset], -[type=submit] { - -webkit-appearance: button; -} - -button:-moz-focus-inner, -[type=button]:-moz-focus-inner, -[type=reset]:-moz-focus-inner, -[type=submit]:-moz-focus-inner { - border-style: none; - padding: 0; -} - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -legend { - -webkit-box-sizing: border-box; - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; -} - -textarea { - overflow: auto; -} - -[type=checkbox], -[type=radio] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} - -[type=number]:-webkit-inner-spin-button, -[type=number]:-webkit-outer-spin-button { - height: auto; -} - -[type=search] { - -webkit-appearance: textfield; - outline-offset: -2px; -} - -[type=search]:-webkit-search-decoration { - -webkit-appearance: none; -} - -:-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; -} - -details { - display: block; -} - -summary { - display: list-item; -} - -template { - display: none; -} - -[hidden] { - display: none; -} - -.bg-primary-1 { - background-color: #c5cae9 !important; -} - -.bg-secondary-1 { - background-color: #f8bbd0 !important; -} - -.bg-danger-1 { - background-color: #ffcdd2 !important; -} - -.bg-success-1 { - background-color: #c8e6c9 !important; -} - -.bg-warning-1 { - background-color: #ffe0b2 !important; -} - -.bg-dark-1 { - background-color: #f5f5f5 !important; -} - -.color-primary-1 { - color: #c5cae9 !important; -} -.color-primary-1 .ripple { - color: #c5cae9 !important; -} - -.color-secondary-1 { - color: #f8bbd0 !important; -} -.color-secondary-1 .ripple { - color: #f8bbd0 !important; -} - -.color-danger-1 { - color: #ffcdd2 !important; -} -.color-danger-1 .ripple { - color: #ffcdd2 !important; -} - -.color-success-1 { - color: #c8e6c9 !important; -} -.color-success-1 .ripple { - color: #c8e6c9 !important; -} - -.color-warning-1 { - color: #ffe0b2 !important; -} -.color-warning-1 .ripple { - color: #ffe0b2 !important; -} - -.color-dark-1 { - color: #f5f5f5 !important; -} -.color-dark-1 .ripple { - color: #f5f5f5 !important; -} - -.bg-primary-2 { - background-color: #9fa8da !important; -} - -.bg-secondary-2 { - background-color: #f48fb1 !important; -} - -.bg-danger-2 { - background-color: #ef9a9a !important; -} - -.bg-success-2 { - background-color: #a5d6a7 !important; -} - -.bg-warning-2 { - background-color: #ffcc80 !important; -} - -.bg-dark-2 { - background-color: #eeeeee !important; -} - -.color-primary-2 { - color: #9fa8da !important; -} -.color-primary-2 .ripple { - color: #9fa8da !important; -} - -.color-secondary-2 { - color: #f48fb1 !important; -} -.color-secondary-2 .ripple { - color: #f48fb1 !important; -} - -.color-danger-2 { - color: #ef9a9a !important; -} -.color-danger-2 .ripple { - color: #ef9a9a !important; -} - -.color-success-2 { - color: #a5d6a7 !important; -} -.color-success-2 .ripple { - color: #a5d6a7 !important; -} - -.color-warning-2 { - color: #ffcc80 !important; -} -.color-warning-2 .ripple { - color: #ffcc80 !important; -} - -.color-dark-2 { - color: #eeeeee !important; -} -.color-dark-2 .ripple { - color: #eeeeee !important; -} - -.bg-primary-3 { - background-color: #7986cb !important; -} - -.bg-secondary-3 { - background-color: #f06292 !important; -} - -.bg-danger-3 { - background-color: #e57373 !important; -} - -.bg-success-3 { - background-color: #81c784 !important; -} - -.bg-warning-3 { - background-color: #ffb74d !important; -} - -.bg-dark-3 { - background-color: #e0e0e0 !important; -} - -.color-primary-3 { - color: #7986cb !important; -} -.color-primary-3 .ripple { - color: #7986cb !important; -} - -.color-secondary-3 { - color: #f06292 !important; -} -.color-secondary-3 .ripple { - color: #f06292 !important; -} - -.color-danger-3 { - color: #e57373 !important; -} -.color-danger-3 .ripple { - color: #e57373 !important; -} - -.color-success-3 { - color: #81c784 !important; -} -.color-success-3 .ripple { - color: #81c784 !important; -} - -.color-warning-3 { - color: #ffb74d !important; -} -.color-warning-3 .ripple { - color: #ffb74d !important; -} - -.color-dark-3 { - color: #e0e0e0 !important; -} -.color-dark-3 .ripple { - color: #e0e0e0 !important; -} - -.bg-primary-4 { - background-color: #5c6bc0 !important; -} - -.bg-secondary-4 { - background-color: #ec407a !important; -} - -.bg-danger-4 { - background-color: #ef5350 !important; -} - -.bg-success-4 { - background-color: #66bb6a !important; -} - -.bg-warning-4 { - background-color: #ffa726 !important; -} - -.bg-dark-4 { - background-color: #bdbdbd !important; -} - -.color-primary-4 { - color: #5c6bc0 !important; -} -.color-primary-4 .ripple { - color: #5c6bc0 !important; -} - -.color-secondary-4 { - color: #ec407a !important; -} -.color-secondary-4 .ripple { - color: #ec407a !important; -} - -.color-danger-4 { - color: #ef5350 !important; -} -.color-danger-4 .ripple { - color: #ef5350 !important; -} - -.color-success-4 { - color: #66bb6a !important; -} -.color-success-4 .ripple { - color: #66bb6a !important; -} - -.color-warning-4 { - color: #ffa726 !important; -} -.color-warning-4 .ripple { - color: #ffa726 !important; -} - -.color-dark-4 { - color: #bdbdbd !important; -} -.color-dark-4 .ripple { - color: #bdbdbd !important; -} - -.bg-primary-5 { - background-color: #3f51b5 !important; -} - -.bg-secondary-5 { - background-color: #e91e63 !important; -} - -.bg-danger-5 { - background-color: #f44336 !important; -} - -.bg-success-5 { - background-color: #4caf50 !important; -} - -.bg-warning-5 { - background-color: #ff9800 !important; -} - -.bg-dark-5 { - background-color: #9e9e9e !important; -} - -.color-primary-5 { - color: #3f51b5 !important; -} -.color-primary-5 .ripple { - color: #3f51b5 !important; -} - -.color-secondary-5 { - color: #e91e63 !important; -} -.color-secondary-5 .ripple { - color: #e91e63 !important; -} - -.color-danger-5 { - color: #f44336 !important; -} -.color-danger-5 .ripple { - color: #f44336 !important; -} - -.color-success-5 { - color: #4caf50 !important; -} -.color-success-5 .ripple { - color: #4caf50 !important; -} - -.color-warning-5 { - color: #ff9800 !important; -} -.color-warning-5 .ripple { - color: #ff9800 !important; -} - -.color-dark-5 { - color: #9e9e9e !important; -} -.color-dark-5 .ripple { - color: #9e9e9e !important; -} - -.bg-primary-6 { - background-color: #3949ab !important; -} - -.bg-secondary-6 { - background-color: #d81b60 !important; -} - -.bg-danger-6 { - background-color: #e53935 !important; -} - -.bg-success-6 { - background-color: #43a047 !important; -} - -.bg-warning-6 { - background-color: #fb8c00 !important; -} - -.bg-dark-6 { - background-color: #757575 !important; -} - -.color-primary-6 { - color: #3949ab !important; -} -.color-primary-6 .ripple { - color: #3949ab !important; -} - -.color-secondary-6 { - color: #d81b60 !important; -} -.color-secondary-6 .ripple { - color: #d81b60 !important; -} - -.color-danger-6 { - color: #e53935 !important; -} -.color-danger-6 .ripple { - color: #e53935 !important; -} - -.color-success-6 { - color: #43a047 !important; -} -.color-success-6 .ripple { - color: #43a047 !important; -} - -.color-warning-6 { - color: #fb8c00 !important; -} -.color-warning-6 .ripple { - color: #fb8c00 !important; -} - -.color-dark-6 { - color: #757575 !important; -} -.color-dark-6 .ripple { - color: #757575 !important; -} - -.bg-primary-7 { - background-color: #303f9f !important; -} - -.bg-secondary-7 { - background-color: #c2185b !important; -} - -.bg-danger-7 { - background-color: #d32f2f !important; -} - -.bg-success-7 { - background-color: #388e3c !important; -} - -.bg-warning-7 { - background-color: #f57c00 !important; -} - -.bg-dark-7 { - background-color: #616161 !important; -} - -.color-primary-7 { - color: #303f9f !important; -} -.color-primary-7 .ripple { - color: #303f9f !important; -} - -.color-secondary-7 { - color: #c2185b !important; -} -.color-secondary-7 .ripple { - color: #c2185b !important; -} - -.color-danger-7 { - color: #d32f2f !important; -} -.color-danger-7 .ripple { - color: #d32f2f !important; -} - -.color-success-7 { - color: #388e3c !important; -} -.color-success-7 .ripple { - color: #388e3c !important; -} - -.color-warning-7 { - color: #f57c00 !important; -} -.color-warning-7 .ripple { - color: #f57c00 !important; -} - -.color-dark-7 { - color: #616161 !important; -} -.color-dark-7 .ripple { - color: #616161 !important; -} - -.bg-primary-8 { - background-color: #283593 !important; -} - -.bg-secondary-8 { - background-color: #ad1457 !important; -} - -.bg-danger-8 { - background-color: #c62828 !important; -} - -.bg-success-8 { - background-color: #2e7d32 !important; -} - -.bg-warning-8 { - background-color: #ef6c00 !important; -} - -.bg-dark-8 { - background-color: #424242 !important; -} - -.color-primary-8 { - color: #283593 !important; -} -.color-primary-8 .ripple { - color: #283593 !important; -} - -.color-secondary-8 { - color: #ad1457 !important; -} -.color-secondary-8 .ripple { - color: #ad1457 !important; -} - -.color-danger-8 { - color: #c62828 !important; -} -.color-danger-8 .ripple { - color: #c62828 !important; -} - -.color-success-8 { - color: #2e7d32 !important; -} -.color-success-8 .ripple { - color: #2e7d32 !important; -} - -.color-warning-8 { - color: #ef6c00 !important; -} -.color-warning-8 .ripple { - color: #ef6c00 !important; -} - -.color-dark-8 { - color: #424242 !important; -} -.color-dark-8 .ripple { - color: #424242 !important; -} - -.bg-primary-9 { - background-color: #1a237e !important; -} - -.bg-secondary-9 { - background-color: #880e4f !important; -} - -.bg-danger-9 { - background-color: #b71c1c !important; -} - -.bg-success-9 { - background-color: #1b5e20 !important; -} - -.bg-warning-9 { - background-color: #e65100 !important; -} - -.bg-dark-9 { - background-color: #212121 !important; -} - -.color-primary-9 { - color: #1a237e !important; -} -.color-primary-9 .ripple { - color: #1a237e !important; -} - -.color-secondary-9 { - color: #880e4f !important; -} -.color-secondary-9 .ripple { - color: #880e4f !important; -} - -.color-danger-9 { - color: #b71c1c !important; -} -.color-danger-9 .ripple { - color: #b71c1c !important; -} - -.color-success-9 { - color: #1b5e20 !important; -} -.color-success-9 .ripple { - color: #1b5e20 !important; -} - -.color-warning-9 { - color: #e65100 !important; -} -.color-warning-9 .ripple { - color: #e65100 !important; -} - -.color-dark-9 { - color: #212121 !important; -} -.color-dark-9 .ripple { - color: #212121 !important; -} - -.color-white { - color: #fff !important; -} -.color-white .ripple { - color: #fff !important; -} - -.color-dark { - color: #000 !important; -} -.color-dark .ripple { - color: #000 !important; -} - -h1, .h1 { - font-size: 41.49px; - font-weight: 400; -} - -h2, .h2 { - font-size: 38.88px; - font-weight: 400; -} - -h3, .h3 { - font-size: 36.44px; - font-weight: 400; -} - -h4, .h4 { - font-size: 34.15px; - font-weight: 400; -} - -h5, .h5 { - font-size: 32.01px; - font-weight: 400; -} - -h6, .h6 { - font-size: 30px; - font-weight: 400; -} - -.display-h1 { - font-size: 96px; - font-weight: 100; -} - -.display-h2 { - font-size: 60px; - font-weight: 100; -} - -.display-h3 { - font-size: 48px; - font-weight: 400; -} - -.display-h4 { - font-size: 34px; - font-weight: 400; -} - -.display-h5 { - font-size: 20px; - font-weight: 400; -} - -.display-h6 { - font-size: 16px; - font-weight: 400; -} - -.rounded { - border-radius: 4px; -} - -.rounded-xl { - border-radius: 20px; -} - -.rounded-xll { - border-radius: 50px; -} - -.elevation-1 { - box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); -} - -.elevation-2 { - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); -} - -.elevation-3 { - box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12); -} - -.elevation-4 { - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); -} - -.elevation-5 { - box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12); -} - -.elevation-6 { - box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); -} - -.elevation-7 { - box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12); -} - -.elevation-8 { - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); -} - -.elevation-9 { - box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12); -} - -.elevation-10 { - box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12); -} - -.elevation-11 { - box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12); -} - -.elevation-12 { - box-shadow: 0 0 0 0 transparent, 0 0 0 0 transparent; -} - -.elevation-13 { - box-shadow: 0 0 0 0 transparent, 0 0 0 0 transparent; -} - -.elevation-14 { - box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12); -} - -.elevation-15 { - box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12); -} - -.elevation-16 { - box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); -} - -.elevation-17 { - box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12); -} - -.elevation-18 { - box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12); -} - -.elevation-19 { - box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12); -} - -.elevation-20 { - box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12); -} - -.elevation-21 { - box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12); -} - -.elevation-22 { - box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12); -} - -.elevation-23 { - box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12); -} - -.elevation-24 { - box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-1:hover { - box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); -} - -.hover-elevation-2:hover { - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); -} - -.hover-elevation-3:hover { - box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12); -} - -.hover-elevation-4:hover { - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); -} - -.hover-elevation-5:hover { - box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12); -} - -.hover-elevation-6:hover { - box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); -} - -.hover-elevation-7:hover { - box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-8:hover { - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-9:hover { - box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-10:hover { - box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-11:hover { - box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-12:hover { - box-shadow: 0 0 0 0 transparent, 0 0 0 0 transparent; -} - -.hover-elevation-13:hover { - box-shadow: 0 0 0 0 transparent, 0 0 0 0 transparent; -} - -.hover-elevation-14:hover { - box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-15:hover { - box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-16:hover { - box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-17:hover { - box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-18:hover { - box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-19:hover { - box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-20:hover { - box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-21:hover { - box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-22:hover { - box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-23:hover { - box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12); -} - -.hover-elevation-24:hover { - box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12); -} - -.alert { - padding: 15px; - border-radius: 6px; - color: #424242; - background: #f5f5f5; - border: 1px solid #eeeeee; - display: flex; -} -.alert .alert-center { - flex: 1; - margin-left: 8px; - margin-right: 8px; -} -.alert.primary { - color: #1a237e; - background: #c5cae9; - border: 1px solid #9fa8da; -} -.alert.secondary { - color: #880e4f; - background: #f8bbd0; - border: 1px solid #f48fb1; -} -.alert.danger { - color: #b71c1c; - background: #ffcdd2; - border: 1px solid #ef9a9a; -} -.alert.success { - color: #1b5e20; - background: #c8e6c9; - border: 1px solid #a5d6a7; -} -.alert.warning { - color: #e65100; - background: #ffe0b2; - border: 1px solid #ffcc80; -} - -.appbar { - display: flex; - align-items: center; - background: #f5f5f5; - padding: 10px 16px; - overflow: hidden; -} -.appbar .left { - flex: 1; - display: flex; - align-items: center; - justify-content: flex-start; -} -.appbar .right { - flex: 1; - display: flex; - align-items: center; - justify-content: flex-end; -} -.appbar .middle { - flex: 1; - display: flex; - align-items: center; - justify-content: flex-end; -} -.appbar .title { - font-size: 20px; - font-weight: 500; - margin: 0 8px; -} -.appbar .appbar-input { - padding: 8px; - border-radius: 4px; - border: none; - background: #eeeeee; - width: 150px; - transition: width 0.2s ease; -} -.appbar .appbar-input:hover, .appbar .appbar-input:focus { - background: #e0e0e0; -} -.appbar .appbar-input:focus { - width: 200px; -} -.appbar.primary { - background: #3f51b5; - color: #fff; -} -.appbar.primary .btn, .appbar.primary .icon { - color: #fff; -} -.appbar.primary .icon:hover, .appbar.primary .icon:focus-visible { - background: #5c6bc0; -} -.appbar.primary .appbar-input { - background: #5c6bc0; - color: #fff; -} -.appbar.primary .appbar-input::placeholder { - color: #9fa8da; -} -.appbar.primary .appbar-input:hover, .appbar.primary .appbar-input:focus { - background: #7986cb; -} -.appbar.elevated { - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); -} -.appbar.elevating { - transition: all 0.2s ease; -} -.appbar.fixed { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 99999; - width: 100%; -} - -.badge { - padding: 6px 8px; - font-size: 14px; - background: #eeeeee; - border-radius: 4px; - user-select: none; -} -.badge.primary { - background: #3f51b5; - color: #fff; -} -.badge.secondary { - background: #e91e63; - color: #fff; -} -.badge.danger { - background: #f44336; - color: #fff; -} -.badge.success { - background: #4caf50; - color: #fff; -} -.badge.warning { - background: #ff9800; - color: #fff; -} - -.banner { - display: flex; - flex-direction: column; - background: #fff; - border: 1px solid #eeeeee; - border-radius: 4px; -} -.banner .top { - display: flex; -} -.banner .top .left { - flex: 1; - padding: 20px; - max-width: 100px; - display: flex; - align-items: center; - justify-content: center; - color: #616161; -} -.banner .top .right { - flex: 1; - padding: 10px; -} -.banner .actions { - display: flex; - justify-content: flex-end; - padding-right: 20px; - padding-bottom: 20px; -} - -.btn { - border: none; - border-radius: 4px; - background: #eeeeee; - font-size: 14px; - font-weight: 500; - padding: 10px 16px; - color: #424242; - text-transform: uppercase; - cursor: pointer; - outline: none; - display: inline-flex; - user-select: none; - align-items: center; - justify-content: center; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - transition: all 0.2s ease; -} -.btn:hover { - background: #e0e0e0; - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); -} -.btn:focus-visible { - background: #bdbdbd; -} -.btn:active { - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); -} -.btn.primary { - background: #3f51b5; - color: #fff; -} -.btn.primary:hover { - background: #3949ab; -} -.btn.primary:focus-visible { - background: #303f9f; -} -.btn.secondary { - background: #e91e63; - color: #fff; -} -.btn.secondary:hover { - background: #d81b60; -} -.btn.secondary:focus-visible { - background: #c2185b; -} -.btn.danger { - background: #f44336; - color: #fff; -} -.btn.danger:hover { - background: #e53935; -} -.btn.danger:focus-visible { - background: #d32f2f; -} -.btn.success { - background: #4caf50; - color: #fff; -} -.btn.success:hover { - background: #43a047; -} -.btn.success:focus-visible { - background: #388e3c; -} -.btn.warning { - background: #ff9800; - color: #000; -} -.btn.warning:hover { - background: #fb8c00; -} -.btn.warning:focus-visible { - background: #f57c00; -} -.btn.disabled, .btn:disabled { - background: #eeeeee; - color: #424242; - cursor: not-allowed; -} -.btn.disabled .ripple, .btn:disabled .ripple { - display: none !important; -} -.btn.outlined { - background: transparent; - outline: 1px solid #e0e0e0; - outline-offset: -1px; - color: #424242; - box-shadow: none; -} -.btn.outlined:hover { - background: transparent; - outline: 1px solid #bdbdbd; -} -.btn.outlined:focus-visible { - background: #eeeeee; - outline: 1px solid #9e9e9e; -} -.btn.outlined.primary { - outline-color: #7986cb; - color: #3f51b5; -} -.btn.outlined.primary:hover { - outline-color: #3949ab; -} -.btn.outlined.primary:focus-visible { - background: rgba(63, 81, 181, 0.12); - outline-color: 1px solid #283593; -} -.btn.outlined.secondary { - outline-color: #f06292; - color: #e91e63; -} -.btn.outlined.secondary:hover { - outline-color: #d81b60; -} -.btn.outlined.secondary:focus-visible { - background: rgba(233, 30, 99, 0.12); - outline-color: 1px solid #ad1457; -} -.btn.outlined.danger { - outline-color: #e57373; - color: #f44336; -} -.btn.outlined.danger:hover { - outline-color: #e53935; -} -.btn.outlined.danger:focus-visible { - background: rgba(244, 67, 54, 0.12); - outline-color: 1px solid #c62828; -} -.btn.outlined.success { - outline-color: #81c784; - color: #4caf50; -} -.btn.outlined.success:hover { - outline-color: #43a047; -} -.btn.outlined.success:focus-visible { - background: rgba(76, 175, 80, 0.12); - outline-color: 1px solid #2e7d32; -} -.btn.outlined.warning { - outline-color: #ffb74d; - color: #ff9800; -} -.btn.outlined.warning:hover { - outline-color: #fb8c00; -} -.btn.outlined.warning:focus-visible { - background: rgba(255, 152, 0, 0.12); - outline-color: 1px solid #ef6c00; -} -.btn.outlined.disabled, .btn.outlined:disabled { - background: transparent; - outline-color: #e0e0e0; - color: #424242; - cursor: not-allowed; -} -.btn.text { - background: transparent; - box-shadow: none; -} -.btn.text:hover { - background: rgba(158, 158, 158, 0.1); -} -.btn.text:focus-visible { - background: rgba(158, 158, 158, 0.2); -} -.btn.text.primary { - color: #3f51b5; -} -.btn.text.primary:hover { - background: rgba(63, 81, 181, 0.1); -} -.btn.text.primary:focus-visible { - background: rgba(63, 81, 181, 0.2); -} -.btn.text.secondary { - color: #e91e63; -} -.btn.text.secondary:hover { - background: rgba(233, 30, 99, 0.1); -} -.btn.text.secondary:focus-visible { - background: rgba(233, 30, 99, 0.2); -} -.btn.text.danger { - color: #f44336; -} -.btn.text.danger:hover { - background: rgba(244, 67, 54, 0.1); -} -.btn.text.danger:focus-visible { - background: rgba(244, 67, 54, 0.2); -} -.btn.text.success { - color: #4caf50; -} -.btn.text.success:hover { - background: rgba(76, 175, 80, 0.1); -} -.btn.text.success:focus-visible { - background: rgba(76, 175, 80, 0.2); -} -.btn.text.warning { - color: #ff9800; -} -.btn.text.warning:hover { - background: rgba(255, 152, 0, 0.1); -} -.btn.text.warning:focus-visible { - background: rgba(255, 152, 0, 0.2); -} -.btn.text.disabled, .btn.text:disabled { - background: transparent; - color: #424242; - cursor: not-allowed; -} -.btn.unelevated { - box-shadow: none !important; -} -.btn.small { - font-size: 14px; - padding: 8px 10px; -} -.btn.large { - font-size: 20px; - padding: 14px 25px; -} - -.chip { - padding: 8px 10px; - user-select: none; - background: #e0e0e0; - border-radius: 50px; - transition: all 0.2s ease; - cursor: pointer; -} -.chip:hover { - background: #bdbdbd; -} -.chip:active, .chip:focus-visible { - background: #9e9e9e; -} -.chip.active { - background: rgba(197, 202, 233, 0.4); - color: #3f51b5; -} -.chip.active:hover { - background: rgba(197, 202, 233, 0.8); -} -.chip.active:active, .chip.active:focus-visible { - background: #9fa8da; -} -.chip.disabled, .chip:disabled { - background: #eeeeee; - color: #424242; - cursor: default; -} - -.fab { - max-width: 60px; - max-height: 60px; - min-width: 60px; - min-height: 60px; - border-radius: 100%; - display: inline-flex; - align-items: center; - justify-content: center; - border: none; - background: #eeeeee; - color: #000; - cursor: pointer; - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); - transition: all 0.2s ease; -} -.fab .mdi { - font-size: 25px; -} -.fab:hover { - background: #e0e0e0; - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); -} -.fab:active, .fab:focus-visible { - background: #bdbdbd; - box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12); -} -.fab.primary { - background: #3f51b5; - color: #fff; -} -.fab.primary:hover { - background: #3949ab; -} -.fab.primary:active, .fab.primary:focus-visible { - background: #303f9f; -} -.fab.secondary { - background: #e91e63; - color: #fff; -} -.fab.secondary:hover { - background: #d81b60; -} -.fab.secondary:active, .fab.secondary:focus-visible { - background: #c2185b; -} -.fab.disabled, .fab:disabled { - background: #eeeeee; - color: #757575; - cursor: default; - box-shadow: 0 0 0 0 transparent, 0 0 0 0 transparent; -} - -.btn-group { - display: flex; -} -.btn-group :not(.ripple) { - flex: 1; - border-radius: 0; -} -.btn-group :first-child:not(.ripple) { - border-radius: 4px 0 0 4px; -} -.btn-group :last-child:not(.ripple) { - border-radius: 0 4px 4px 0; -} - -.icon { - max-width: 45px; - max-height: 45px; - min-width: 45px; - min-height: 45px; - display: inline-flex; - align-items: center; - overflow: hidden; - justify-content: center; - border-radius: 100%; - border: none; - background: transparent; - cursor: pointer; - transition: all 0.2s ease; - color: #616161; - position: relative; -} -.icon .mdi { - font-size: 20px; - pointer-events: none; -} -.icon:hover { - background: #e0e0e0; - color: #212121; -} -.icon:focus-visible { - background: #bdbdbd; - color: #212121; -} -.icon.disabled, .icon:disabled { - background: #eeeeee; - color: #9e9e9e; - cursor: not-allowed; -} - -.card { - background: white; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - position: relative; - overflow: hidden; - border-radius: 4px; -} -.card .body { - padding: 6px 20px; -} -.card .footer { - padding: 10px 20px; -} -.card .card-title { - font-size: 26px !important; -} -.card.hoverable { - transition: all 0.2s ease; -} -.card.hoverable:hover, .card.hoverable:focus { - box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); -} - -.accordion { - display: flex; - flex-direction: column; -} -.accordion .item { - flex: 1; - margin-top: -4px; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - background: #fff; - transition: margin-top 0.2s linear, margin-top 0.2s linear; -} -.accordion .item.open .header:hover { - background: #fff; -} -.accordion .item .header { - display: flex; - align-items: center; - padding: 10px; - border-radius: 4px; - z-index: 99; - position: relative; -} -.accordion .item .header:hover { - background: #f5f5f5; -} -.accordion .item .header .left { - display: flex; - align-items: center; - margin-right: 20px; - justify-content: flex-start; -} -.accordion .item .header .middle { - flex: 1; - display: flex; - align-items: center; - justify-content: flex-start; -} -.accordion .item .header .right { - display: flex; - margin-left: 20px; - align-items: center; - justify-content: flex-end; -} -.accordion .item .content { - max-height: 0; - padding: 0; - overflow: hidden; - transition: all 0.6s ease; -} -.accordion .item.open { - border-radius: 4px; -} -.accordion .item.open .content { - max-height: var(--max-height); -} -.accordion .item:first-of-type { - margin-top: 0 !important; -} -.accordion .item:last-of-type { - margin-bottom: 0 !important; -} -.accordion .item:first-of-type, .accordion .item:last-of-type { - border-radius: 4px; -} - -.breadcrumbs { - display: flex; -} -.breadcrumbs .item { - margin-right: 10px; - color: #757575; -} -.breadcrumbs .item:hover { - color: #616161; -} -.breadcrumbs .item:focus { - color: #212121; -} -.breadcrumbs .item.active { - color: #3f51b5; -} -.breadcrumbs .item.active:hover { - color: #3949ab; -} -.breadcrumbs .item.active:focus { - color: #1a237e; -} -.breadcrumbs .item.active:focus-visible { - box-shadow: 0 0 0 2px #9fa8da; -} - -.dialog .drawer { - position: absolute; - top: 0; - left: 0; - height: 100%; - transform: translateX(-100%); - transition: all 0.2s ease; -} -.dialog .drawer .content { - box-shadow: none; - padding: 0; - flex: 1; - transform: scale(1); - max-height: 100vh; - min-height: 100vh; - margin: 0; -} - -.dialog.open .drawer { - transform: translateX(0); -} - -.drawer { - height: 100vh; - min-height: 100vh; - max-height: 100vh; - max-width: 400px; - background: #fff; - width: max-content; - min-width: 200px; - padding: 0; - overflow: hidden; - display: flex; - flex-direction: column; - box-shadow: none !important; - justify-content: flex-start; - border-right: 1px solid #bdbdbd; -} -.drawer .top { - padding: 4px 8px; -} -.drawer .content { - flex: 1; - overflow: auto; -} - -.list { - display: flex; - flex-direction: column; -} -.list .item { - display: flex; - flex: 1; - align-items: center; - padding: 16px 14px; - color: #212121; -} -.list .item:hover, .list .item:focus-visible { - background: #f5f5f5; -} -.list .item.active { - background: #eaecf7; - color: #3f51b5; -} -.list .item.active:hover, .list .item.active:focus-visible { - background: #d7dbf0; -} -.list .item .left { - margin-right: 10px; -} -.list .item .middle { - flex: 1; -} -.list .item .right { - margin-left: 10px; -} -.list.small .item { - padding: 10px 8px; -} - -.progress { - display: block; - width: 100%; - height: 4px; - position: relative; - background: #c5cae9; - overflow: hidden; -} -.progress::after { - content: ""; - display: block; - width: var(--value); - height: 4px; - z-index: 99; - position: absolute; - top: 0; - left: 0; - transition: all 0.2s ease; - background: #3f51b5; -} -.progress.intermediate::after { - animation: progress-bar-intermediate 1s ease-in-out infinite; -} -.progress.buffering { - background: radial-gradient(circle, rgb(230, 230, 230) 0%, rgb(230, 230, 230) 51%, rgb(255, 255, 255) 51%, rgb(255, 255, 255) 100%); - background-size: 6px 6px; - background-repeat: repeat no-repeat; - animation: progress-bar-buffering 4s linear infinite; -} -.progress.buffering::before { - content: ""; - display: block; - width: var(--buffer); - height: 4px; - background: #e0e0e0; - transition: all 0.2s ease; -} -.progress.circle { - appearance: none; - box-sizing: border-box; - width: 60px; - height: 60px; - padding: 0; - background: transparent !important; - -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, color-stop(50%, transparent), color-stop(50%, white)), -webkit-gradient(linear, left top, right top, color-stop(50%, transparent), color-stop(50%, white)); - mask-image: -webkit-gradient(linear, left top, left bottom, color-stop(50%, transparent), color-stop(50%, white)), -webkit-gradient(linear, left top, right top, color-stop(50%, transparent), color-stop(50%, white)); - mask-image: linear-gradient(transparent 50%, white 50%), linear-gradient(to right, transparent 50%, white 50%); - position: relative; - overflow: hidden; - display: block; - color: #3f51b5; - animation: rotate 6s infinite; -} -.progress.circle:before { - content: ""; - -webkit-box-sizing: border-box; - box-sizing: border-box; - border: solid 0.25em transparent; - border-top-color: currentColor; - border-radius: 100px; - background-color: transparent; - -webkit-animation: rotate-shrink 0.75s infinite linear alternate; - animation: rotate-shrink 0.75s infinite linear alternate; - display: block; - height: 60px; - width: 60px; - position: absolute; - top: 0; - left: 0; -} - -@keyframes rotate { - 0% { - transform: rotate(0deg); - } - 12.5% { - transform: rotate(180deg); - animation-timing-function: linear; - } - 25% { - transform: rotate(630deg); - } - 37.5% { - transform: rotate(810deg); - animation-timing-function: linear; - } - 50% { - transform: rotate(1260deg); - } - 62.5% { - transform: rotate(1440deg); - animation-timing-function: linear; - } - 75% { - transform: rotate(1890deg); - } - 87.5% { - transform: rotate(2070deg); - animation-timing-function: linear; - } - 100% { - transform: rotate(2520deg); - } -} -@keyframes rotate-shrink { - 0% { - -webkit-transform: rotate(-30deg); - transform: rotate(-30deg); - } - 29.4% { - border-left-color: transparent; - } - 29.41% { - border-left-color: currentColor; - } - 64.7% { - border-bottom-color: transparent; - } - 64.71% { - border-bottom-color: currentColor; - } - 100% { - border-left-color: currentColor; - border-bottom-color: currentColor; - -webkit-transform: rotate(225deg); - transform: rotate(225deg); - } -} -@keyframes progress-bar-buffering { - 0% { - background-position-x: -100px; - } - 100% { - background-position-x: 100px; - } -} -@keyframes progress-bar-intermediate { - 0% { - width: 0%; - } - 50% { - width: 100%; - } - 80% { - width: 60%; - } - 100% { - width: 100%; - margin-left: 100%; - } -} -@keyframes circular { - 0% { - transform: rotate(0deg); - } - 12.5% { - transform: rotate(180deg); - animation-timing-function: linear; - } - 25% { - transform: rotate(630deg); - } - 37.5% { - transform: rotate(810deg); - animation-timing-function: linear; - } - 50% { - transform: rotate(1260deg); - } - 62.5% { - transform: rotate(1440deg); - animation-timing-function: linear; - } - 75% { - transform: rotate(1890deg); - } - 87.5% { - transform: rotate(2070deg); - animation-timing-function: linear; - } - 100% { - transform: rotate(2520deg); - } -} -@keyframes circular-pseudo { - 0% { - transform: rotate(-30deg); - } - 29.4% { - border-left-color: transparent; - } - 29.41% { - border-left-color: currentColor; - } - 64.7% { - border-bottom-color: transparent; - } - 64.71% { - border-bottom-color: currentColor; - } - 100% { - border-left-color: currentColor; - border-bottom-color: currentColor; - transform: rotate(225deg); - } -} -.table-container { - border: 1px solid rgba(0, 0, 0, 0.12); - border-radius: 4px; - background: white; - overflow: auto; -} -.table-container table { - width: 100%; - letter-spacing: 0.0178571429em; - border-collapse: collapse; -} -.table-container table th { - padding: 16px; - text-align: left; - font-size: 0.875rem; - font-weight: 500; -} -.table-container table tbody td { - border-top: 1px solid #e0e0e0; - padding: 16px; - font-size: 0.875rem; - font-weight: 400; -} -.table-container table tbody { - margin: 0; - padding: 0; -} -.table-container table tr:not(.table-head):hover { - background: #f5f5f5; -} -.table-container table tbody tr:last-child { - border-radius: 50px; -} -.table-container table td:focus { - box-shadow: inset 0 0 0 1px #3f51b5; -} -.table-container table td, .table-container table th { - white-space: normal; -} - -.tabs { - display: flex; - flex-direction: column; -} -.tabs .header { - display: flex; - border-bottom: 1px solid #eeeeee; -} -.tabs .header .item { - flex: 1; - text-align: center; - padding: 14px 20px; - color: #757575; - font-size: 14px; - font-weight: 500; - border-bottom: 2px solid transparent; - cursor: pointer; - transition: border-bottom-color 0.2s ease; -} -.tabs .header .item:hover { - background-color: #eeeeee; -} -.tabs .header .item:focus-visible { - box-shadow: 0 0 0 2px #c5cae9; -} -.tabs .header .item.active { - color: #212121; - background: rgba(159, 168, 218, 0.2); - border-bottom-color: #3f51b5; -} -.tabs .content { - visibility: hidden; - opacity: 0; - max-height: 0; - transition: opacity 0.2s ease; -} -.tabs .content.active { - visibility: visible; - max-height: 8000px; - opacity: 1; -} - -.dialog { - position: fixed; - top: 0; - left: 0; - z-index: 99999; - display: flex; - align-items: center; - justify-content: center; - height: 100%; - width: 100%; - pointer-events: none; - background: rgba(0, 0, 0, 0.5); - opacity: 0; - transition: all 0.2s ease; -} -.dialog .content { - background: white; - padding: 20px 30px; - border-radius: 4px; - transform: scale(0.9); - max-width: 80vw; - max-height: 80vh; - overflow: auto; - transition: all 0.2s ease; - margin-right: var(--scrollbar-width); - box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12); -} -.dialog.open { - opacity: 1; - pointer-events: all; -} -.dialog.open .content { - transform: scale(1); -} -.dialog.bottom-sheet { - align-items: flex-end; -} - -body.overflow-hidden { - overflow: hidden; - padding-right: var(--scrollbar-width); -} - -.snackbar { - position: fixed; - bottom: 10px; - left: 50%; - display: flex; - align-items: center; - justify-content: center; - background: #212121; - color: #fff; - padding: 1px 16px; - border-radius: 4px; - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); - transition: all 0.4s ease; - transform: translate(-50%, 100%); - opacity: 0; -} -.snackbar.show { - transform: translate(-50%, -10%); - opacity: 1; -} -.snackbar .btn { - margin-left: 10px; -} - -.tooltip { - background: #212121; - font-size: 11px; - color: #fff; - padding: 6px; - border-radius: 4px; - width: max-content; - user-select: none; - transition: opacity 0.2s ease; - opacity: 0; -} -.tooltip.show { - opacity: 1; -} - -.container, -.container-fluid, -.container-xxl, -.container-xl, -.container-lg, -.container-md, -.container-sm { - width: 100%; - padding-right: var(--m-gutter-x, 0.75rem); - padding-left: var(--m-gutter-x, 0.75rem); - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container-sm, .container { - max-width: 540px; - } -} -@media (min-width: 768px) { - .container-md, .container-sm, .container { - max-width: 720px; - } -} -@media (min-width: 992px) { - .container-lg, .container-md, .container-sm, .container { - max-width: 960px; - } -} -@media (min-width: 1200px) { - .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1140px; - } -} -@media (min-width: 1400px) { - .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1320px; - } -} -.row { - --m-gutter-x: 1.5rem; - --m-gutter-y: 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin-top: calc(var(--m-gutter-y) * -1); - margin-right: calc(var(--m-gutter-x) * -0.5); - margin-left: calc(var(--m-gutter-x) * -0.5); -} - -.row > * { - box-sizing: border-box; - -ms-flex-negative: 0; - flex-shrink: 0; - width: 100%; - max-width: 100%; - padding-right: calc(var(--m-gutter-x) * 0.5); - padding-left: calc(var(--m-gutter-x) * 0.5); - margin-top: var(--m-gutter-y); -} - -.col { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; -} - -.row-cols-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; -} - -.row-cols-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; -} - -.row-cols-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; -} - -.row-cols-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; -} - -.row-cols-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; -} - -.row-cols-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; -} - -.row-cols-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; -} - -@media (min-width: 576px) { - .col-sm { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - .row-cols-sm-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .row-cols-sm-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .row-cols-sm-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .row-cols-sm-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - .row-cols-sm-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .row-cols-sm-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - .row-cols-sm-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 768px) { - .col-md { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - .row-cols-md-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .row-cols-md-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .row-cols-md-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .row-cols-md-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - .row-cols-md-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .row-cols-md-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - .row-cols-md-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 992px) { - .col-lg { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - .row-cols-lg-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .row-cols-lg-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .row-cols-lg-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .row-cols-lg-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - .row-cols-lg-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .row-cols-lg-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - .row-cols-lg-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 1200px) { - .col-xl { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - .row-cols-xl-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .row-cols-xl-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .row-cols-xl-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .row-cols-xl-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - .row-cols-xl-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .row-cols-xl-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - .row-cols-xl-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 1400px) { - .col-xxl { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - } - .row-cols-xxl-auto > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .row-cols-xxl-1 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .row-cols-xxl-2 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .row-cols-xxl-3 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.3333333333%; - } - .row-cols-xxl-4 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .row-cols-xxl-5 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 20%; - } - .row-cols-xxl-6 > * { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.6666666667%; - } -} -.col-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; -} - -.col-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; -} - -.col-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; -} - -.col-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; -} - -.col-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; -} - -.col-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; -} - -.col-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; -} - -.col-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; -} - -.col-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; -} - -.col-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; -} - -.col-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; -} - -.col-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; -} - -.col-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; -} - -.offset-1 { - margin-left: 8.33333333%; -} - -.offset-2 { - margin-left: 16.66666667%; -} - -.offset-3 { - margin-left: 25%; -} - -.offset-4 { - margin-left: 33.33333333%; -} - -.offset-5 { - margin-left: 41.66666667%; -} - -.offset-6 { - margin-left: 50%; -} - -.offset-7 { - margin-left: 58.33333333%; -} - -.offset-8 { - margin-left: 66.66666667%; -} - -.offset-9 { - margin-left: 75%; -} - -.offset-10 { - margin-left: 83.33333333%; -} - -.offset-11 { - margin-left: 91.66666667%; -} - -.g-0, -.gx-0 { - --m-gutter-x: 0; -} - -.g-0, -.gy-0 { - --m-gutter-y: 0; -} - -.g-1, -.gx-1 { - --m-gutter-x: 0.25rem; -} - -.g-1, -.gy-1 { - --m-gutter-y: 0.25rem; -} - -.g-2, -.gx-2 { - --m-gutter-x: 0.5rem; -} - -.g-2, -.gy-2 { - --m-gutter-y: 0.5rem; -} - -.g-3, -.gx-3 { - --m-gutter-x: 1rem; -} - -.g-3, -.gy-3 { - --m-gutter-y: 1rem; -} - -.g-4, -.gx-4 { - --m-gutter-x: 1.5rem; -} - -.g-4, -.gy-4 { - --m-gutter-y: 1.5rem; -} - -.g-5, -.gx-5 { - --m-gutter-x: 3rem; -} - -.g-5, -.gy-5 { - --m-gutter-y: 3rem; -} - -@media (min-width: 576px) { - .col-sm-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .col-sm-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - .col-sm-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - .col-sm-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .col-sm-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - .col-sm-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - .col-sm-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .col-sm-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - .col-sm-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - .col-sm-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - .col-sm-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - .col-sm-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - .col-sm-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .offset-sm-0 { - margin-left: 0; - } - .offset-sm-1 { - margin-left: 8.33333333%; - } - .offset-sm-2 { - margin-left: 16.66666667%; - } - .offset-sm-3 { - margin-left: 25%; - } - .offset-sm-4 { - margin-left: 33.33333333%; - } - .offset-sm-5 { - margin-left: 41.66666667%; - } - .offset-sm-6 { - margin-left: 50%; - } - .offset-sm-7 { - margin-left: 58.33333333%; - } - .offset-sm-8 { - margin-left: 66.66666667%; - } - .offset-sm-9 { - margin-left: 75%; - } - .offset-sm-10 { - margin-left: 83.33333333%; - } - .offset-sm-11 { - margin-left: 91.66666667%; - } - .g-sm-0, - .gx-sm-0 { - --m-gutter-x: 0; - } - .g-sm-0, - .gy-sm-0 { - --m-gutter-y: 0; - } - .g-sm-1, - .gx-sm-1 { - --m-gutter-x: 0.25rem; - } - .g-sm-1, - .gy-sm-1 { - --m-gutter-y: 0.25rem; - } - .g-sm-2, - .gx-sm-2 { - --m-gutter-x: 0.5rem; - } - .g-sm-2, - .gy-sm-2 { - --m-gutter-y: 0.5rem; - } - .g-sm-3, - .gx-sm-3 { - --m-gutter-x: 1rem; - } - .g-sm-3, - .gy-sm-3 { - --m-gutter-y: 1rem; - } - .g-sm-4, - .gx-sm-4 { - --m-gutter-x: 1.5rem; - } - .g-sm-4, - .gy-sm-4 { - --m-gutter-y: 1.5rem; - } - .g-sm-5, - .gx-sm-5 { - --m-gutter-x: 3rem; - } - .g-sm-5, - .gy-sm-5 { - --m-gutter-y: 3rem; - } -} -@media (min-width: 768px) { - .col-md-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .col-md-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - .col-md-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - .col-md-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .col-md-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - .col-md-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - .col-md-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .col-md-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - .col-md-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - .col-md-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - .col-md-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - .col-md-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - .col-md-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .offset-md-0 { - margin-left: 0; - } - .offset-md-1 { - margin-left: 8.33333333%; - } - .offset-md-2 { - margin-left: 16.66666667%; - } - .offset-md-3 { - margin-left: 25%; - } - .offset-md-4 { - margin-left: 33.33333333%; - } - .offset-md-5 { - margin-left: 41.66666667%; - } - .offset-md-6 { - margin-left: 50%; - } - .offset-md-7 { - margin-left: 58.33333333%; - } - .offset-md-8 { - margin-left: 66.66666667%; - } - .offset-md-9 { - margin-left: 75%; - } - .offset-md-10 { - margin-left: 83.33333333%; - } - .offset-md-11 { - margin-left: 91.66666667%; - } - .g-md-0, - .gx-md-0 { - --m-gutter-x: 0; - } - .g-md-0, - .gy-md-0 { - --m-gutter-y: 0; - } - .g-md-1, - .gx-md-1 { - --m-gutter-x: 0.25rem; - } - .g-md-1, - .gy-md-1 { - --m-gutter-y: 0.25rem; - } - .g-md-2, - .gx-md-2 { - --m-gutter-x: 0.5rem; - } - .g-md-2, - .gy-md-2 { - --m-gutter-y: 0.5rem; - } - .g-md-3, - .gx-md-3 { - --m-gutter-x: 1rem; - } - .g-md-3, - .gy-md-3 { - --m-gutter-y: 1rem; - } - .g-md-4, - .gx-md-4 { - --m-gutter-x: 1.5rem; - } - .g-md-4, - .gy-md-4 { - --m-gutter-y: 1.5rem; - } - .g-md-5, - .gx-md-5 { - --m-gutter-x: 3rem; - } - .g-md-5, - .gy-md-5 { - --m-gutter-y: 3rem; - } -} -@media (min-width: 992px) { - .col-lg-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .col-lg-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - .col-lg-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - .col-lg-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .col-lg-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - .col-lg-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - .col-lg-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .col-lg-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - .col-lg-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - .col-lg-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - .col-lg-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - .col-lg-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - .col-lg-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .offset-lg-0 { - margin-left: 0; - } - .offset-lg-1 { - margin-left: 8.33333333%; - } - .offset-lg-2 { - margin-left: 16.66666667%; - } - .offset-lg-3 { - margin-left: 25%; - } - .offset-lg-4 { - margin-left: 33.33333333%; - } - .offset-lg-5 { - margin-left: 41.66666667%; - } - .offset-lg-6 { - margin-left: 50%; - } - .offset-lg-7 { - margin-left: 58.33333333%; - } - .offset-lg-8 { - margin-left: 66.66666667%; - } - .offset-lg-9 { - margin-left: 75%; - } - .offset-lg-10 { - margin-left: 83.33333333%; - } - .offset-lg-11 { - margin-left: 91.66666667%; - } - .g-lg-0, - .gx-lg-0 { - --m-gutter-x: 0; - } - .g-lg-0, - .gy-lg-0 { - --m-gutter-y: 0; - } - .g-lg-1, - .gx-lg-1 { - --m-gutter-x: 0.25rem; - } - .g-lg-1, - .gy-lg-1 { - --m-gutter-y: 0.25rem; - } - .g-lg-2, - .gx-lg-2 { - --m-gutter-x: 0.5rem; - } - .g-lg-2, - .gy-lg-2 { - --m-gutter-y: 0.5rem; - } - .g-lg-3, - .gx-lg-3 { - --m-gutter-x: 1rem; - } - .g-lg-3, - .gy-lg-3 { - --m-gutter-y: 1rem; - } - .g-lg-4, - .gx-lg-4 { - --m-gutter-x: 1.5rem; - } - .g-lg-4, - .gy-lg-4 { - --m-gutter-y: 1.5rem; - } - .g-lg-5, - .gx-lg-5 { - --m-gutter-x: 3rem; - } - .g-lg-5, - .gy-lg-5 { - --m-gutter-y: 3rem; - } -} -@media (min-width: 1200px) { - .col-xl-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .col-xl-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - .col-xl-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - .col-xl-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .col-xl-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - .col-xl-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - .col-xl-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .col-xl-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - .col-xl-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - .col-xl-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - .col-xl-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - .col-xl-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - .col-xl-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .offset-xl-0 { - margin-left: 0; - } - .offset-xl-1 { - margin-left: 8.33333333%; - } - .offset-xl-2 { - margin-left: 16.66666667%; - } - .offset-xl-3 { - margin-left: 25%; - } - .offset-xl-4 { - margin-left: 33.33333333%; - } - .offset-xl-5 { - margin-left: 41.66666667%; - } - .offset-xl-6 { - margin-left: 50%; - } - .offset-xl-7 { - margin-left: 58.33333333%; - } - .offset-xl-8 { - margin-left: 66.66666667%; - } - .offset-xl-9 { - margin-left: 75%; - } - .offset-xl-10 { - margin-left: 83.33333333%; - } - .offset-xl-11 { - margin-left: 91.66666667%; - } - .g-xl-0, - .gx-xl-0 { - --m-gutter-x: 0; - } - .g-xl-0, - .gy-xl-0 { - --m-gutter-y: 0; - } - .g-xl-1, - .gx-xl-1 { - --m-gutter-x: 0.25rem; - } - .g-xl-1, - .gy-xl-1 { - --m-gutter-y: 0.25rem; - } - .g-xl-2, - .gx-xl-2 { - --m-gutter-x: 0.5rem; - } - .g-xl-2, - .gy-xl-2 { - --m-gutter-y: 0.5rem; - } - .g-xl-3, - .gx-xl-3 { - --m-gutter-x: 1rem; - } - .g-xl-3, - .gy-xl-3 { - --m-gutter-y: 1rem; - } - .g-xl-4, - .gx-xl-4 { - --m-gutter-x: 1.5rem; - } - .g-xl-4, - .gy-xl-4 { - --m-gutter-y: 1.5rem; - } - .g-xl-5, - .gx-xl-5 { - --m-gutter-x: 3rem; - } - .g-xl-5, - .gy-xl-5 { - --m-gutter-y: 3rem; - } -} -@media (min-width: 1400px) { - .col-xxl-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - } - .col-xxl-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 8.33333333%; - } - .col-xxl-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 16.66666667%; - } - .col-xxl-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 25%; - } - .col-xxl-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 33.33333333%; - } - .col-xxl-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 41.66666667%; - } - .col-xxl-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 50%; - } - .col-xxl-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 58.33333333%; - } - .col-xxl-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 66.66666667%; - } - .col-xxl-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 75%; - } - .col-xxl-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 83.33333333%; - } - .col-xxl-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 91.66666667%; - } - .col-xxl-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: 100%; - } - .offset-xxl-0 { - margin-left: 0; - } - .offset-xxl-1 { - margin-left: 8.33333333%; - } - .offset-xxl-2 { - margin-left: 16.66666667%; - } - .offset-xxl-3 { - margin-left: 25%; - } - .offset-xxl-4 { - margin-left: 33.33333333%; - } - .offset-xxl-5 { - margin-left: 41.66666667%; - } - .offset-xxl-6 { - margin-left: 50%; - } - .offset-xxl-7 { - margin-left: 58.33333333%; - } - .offset-xxl-8 { - margin-left: 66.66666667%; - } - .offset-xxl-9 { - margin-left: 75%; - } - .offset-xxl-10 { - margin-left: 83.33333333%; - } - .offset-xxl-11 { - margin-left: 91.66666667%; - } - .g-xxl-0, - .gx-xxl-0 { - --m-gutter-x: 0; - } - .g-xxl-0, - .gy-xxl-0 { - --m-gutter-y: 0; - } - .g-xxl-1, - .gx-xxl-1 { - --m-gutter-x: 0.25rem; - } - .g-xxl-1, - .gy-xxl-1 { - --m-gutter-y: 0.25rem; - } - .g-xxl-2, - .gx-xxl-2 { - --m-gutter-x: 0.5rem; - } - .g-xxl-2, - .gy-xxl-2 { - --m-gutter-y: 0.5rem; - } - .g-xxl-3, - .gx-xxl-3 { - --m-gutter-x: 1rem; - } - .g-xxl-3, - .gy-xxl-3 { - --m-gutter-y: 1rem; - } - .g-xxl-4, - .gx-xxl-4 { - --m-gutter-x: 1.5rem; - } - .g-xxl-4, - .gy-xxl-4 { - --m-gutter-y: 1.5rem; - } - .g-xxl-5, - .gx-xxl-5 { - --m-gutter-x: 3rem; - } - .g-xxl-5, - .gy-xxl-5 { - --m-gutter-y: 3rem; - } -} -.d-inline { - display: inline !important; -} - -.d-inline-block { - display: inline-block !important; -} - -.d-block { - display: block !important; -} - -.d-grid { - display: -ms-grid !important; - display: grid !important; -} - -.d-table { - display: table !important; -} - -.d-table-row { - display: table-row !important; -} - -.d-table-cell { - display: table-cell !important; -} - -.d-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; -} - -.d-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; -} - -.d-none { - display: none !important; -} - -.flex-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; -} - -.flex-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; -} - -.flex-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; -} - -.flex-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; -} - -.flex-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; -} - -.flex-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; -} - -.flex-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; -} - -.flex-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; -} - -.flex-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; -} - -.flex-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; -} - -.flex-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; -} - -.flex-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; -} - -.justify-content-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; -} - -.justify-content-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; -} - -.justify-content-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; -} - -.justify-content-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; -} - -.justify-content-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; -} - -.justify-content-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; -} - -.align-items-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; -} - -.align-items-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; -} - -.align-items-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; -} - -.align-items-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; -} - -.align-items-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; -} - -.align-content-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; -} - -.align-content-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; -} - -.align-content-center { - -ms-flex-line-pack: center !important; - align-content: center !important; -} - -.align-content-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; -} - -.align-content-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; -} - -.align-content-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; -} - -.align-self-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; -} - -.align-self-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; -} - -.align-self-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; -} - -.align-self-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; -} - -.align-self-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; -} - -.align-self-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; -} - -.order-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; -} - -.order-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; -} - -.order-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; -} - -.order-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; -} - -.order-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; -} - -.order-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; -} - -.order-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; -} - -.order-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; -} - -.m-0 { - margin: 0 !important; -} - -.m-1 { - margin: 0.25rem !important; -} - -.m-2 { - margin: 0.5rem !important; -} - -.m-3 { - margin: 1rem !important; -} - -.m-4 { - margin: 1.5rem !important; -} - -.m-5 { - margin: 3rem !important; -} - -.m-auto { - margin: auto !important; -} - -.mx-0 { - margin-right: 0 !important; - margin-left: 0 !important; -} - -.mx-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; -} - -.mx-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; -} - -.mx-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; -} - -.mx-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; -} - -.mx-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; -} - -.mx-auto { - margin-right: auto !important; - margin-left: auto !important; -} - -.my-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -.my-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; -} - -.my-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; -} - -.my-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; -} - -.my-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; -} - -.my-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; -} - -.my-auto { - margin-top: auto !important; - margin-bottom: auto !important; -} - -.mt-0 { - margin-top: 0 !important; -} - -.mt-1 { - margin-top: 0.25rem !important; -} - -.mt-2 { - margin-top: 0.5rem !important; -} - -.mt-3 { - margin-top: 1rem !important; -} - -.mt-4 { - margin-top: 1.5rem !important; -} - -.mt-5 { - margin-top: 3rem !important; -} - -.mt-auto { - margin-top: auto !important; -} - -.me-0 { - margin-right: 0 !important; -} - -.me-1 { - margin-right: 0.25rem !important; -} - -.me-2 { - margin-right: 0.5rem !important; -} - -.me-3 { - margin-right: 1rem !important; -} - -.me-4 { - margin-right: 1.5rem !important; -} - -.me-5 { - margin-right: 3rem !important; -} - -.me-auto { - margin-right: auto !important; -} - -.mb-0 { - margin-bottom: 0 !important; -} - -.mb-1 { - margin-bottom: 0.25rem !important; -} - -.mb-2 { - margin-bottom: 0.5rem !important; -} - -.mb-3 { - margin-bottom: 1rem !important; -} - -.mb-4 { - margin-bottom: 1.5rem !important; -} - -.mb-5 { - margin-bottom: 3rem !important; -} - -.mb-auto { - margin-bottom: auto !important; -} - -.ms-0 { - margin-left: 0 !important; -} - -.ms-1 { - margin-left: 0.25rem !important; -} - -.ms-2 { - margin-left: 0.5rem !important; -} - -.ms-3 { - margin-left: 1rem !important; -} - -.ms-4 { - margin-left: 1.5rem !important; -} - -.ms-5 { - margin-left: 3rem !important; -} - -.ms-auto { - margin-left: auto !important; -} - -.p-0 { - padding: 0 !important; -} - -.p-1 { - padding: 0.25rem !important; -} - -.p-2 { - padding: 0.5rem !important; -} - -.p-3 { - padding: 1rem !important; -} - -.p-4 { - padding: 1.5rem !important; -} - -.p-5 { - padding: 3rem !important; -} - -.px-0 { - padding-right: 0 !important; - padding-left: 0 !important; -} - -.px-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; -} - -.px-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; -} - -.px-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; -} - -.px-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; -} - -.px-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; -} - -.py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; -} - -.py-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; -} - -.py-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; -} - -.py-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; -} - -.py-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; -} - -.py-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; -} - -.pt-0 { - padding-top: 0 !important; -} - -.pt-1 { - padding-top: 0.25rem !important; -} - -.pt-2 { - padding-top: 0.5rem !important; -} - -.pt-3 { - padding-top: 1rem !important; -} - -.pt-4 { - padding-top: 1.5rem !important; -} - -.pt-5 { - padding-top: 3rem !important; -} - -.pe-0 { - padding-right: 0 !important; -} - -.pe-1 { - padding-right: 0.25rem !important; -} - -.pe-2 { - padding-right: 0.5rem !important; -} - -.pe-3 { - padding-right: 1rem !important; -} - -.pe-4 { - padding-right: 1.5rem !important; -} - -.pe-5 { - padding-right: 3rem !important; -} - -.pb-0 { - padding-bottom: 0 !important; -} - -.pb-1 { - padding-bottom: 0.25rem !important; -} - -.pb-2 { - padding-bottom: 0.5rem !important; -} - -.pb-3 { - padding-bottom: 1rem !important; -} - -.pb-4 { - padding-bottom: 1.5rem !important; -} - -.pb-5 { - padding-bottom: 3rem !important; -} - -.ps-0 { - padding-left: 0 !important; -} - -.ps-1 { - padding-left: 0.25rem !important; -} - -.ps-2 { - padding-left: 0.5rem !important; -} - -.ps-3 { - padding-left: 1rem !important; -} - -.ps-4 { - padding-left: 1.5rem !important; -} - -.ps-5 { - padding-left: 3rem !important; -} - -@media (min-width: 576px) { - .d-sm-inline { - display: inline !important; - } - .d-sm-inline-block { - display: inline-block !important; - } - .d-sm-block { - display: block !important; - } - .d-sm-grid { - display: -ms-grid !important; - display: grid !important; - } - .d-sm-table { - display: table !important; - } - .d-sm-table-row { - display: table-row !important; - } - .d-sm-table-cell { - display: table-cell !important; - } - .d-sm-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - .d-sm-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - .d-sm-none { - display: none !important; - } - .flex-sm-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-sm-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-sm-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-sm-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-sm-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-sm-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-sm-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-sm-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-sm-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .flex-sm-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-sm-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-sm-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .justify-content-sm-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-sm-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-sm-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-sm-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-sm-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .justify-content-sm-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - .align-items-sm-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-sm-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-sm-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-sm-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-sm-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-sm-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-sm-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-sm-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-sm-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-sm-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-sm-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-sm-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - .align-self-sm-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-sm-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-sm-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - .align-self-sm-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-sm-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - .order-sm-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - .order-sm-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - .order-sm-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - .order-sm-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - .order-sm-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - .order-sm-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - .order-sm-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - .order-sm-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - .m-sm-0 { - margin: 0 !important; - } - .m-sm-1 { - margin: 0.25rem !important; - } - .m-sm-2 { - margin: 0.5rem !important; - } - .m-sm-3 { - margin: 1rem !important; - } - .m-sm-4 { - margin: 1.5rem !important; - } - .m-sm-5 { - margin: 3rem !important; - } - .m-sm-auto { - margin: auto !important; - } - .mx-sm-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - .mx-sm-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - .mx-sm-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - .mx-sm-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - .mx-sm-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - .mx-sm-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - .mx-sm-auto { - margin-right: auto !important; - margin-left: auto !important; - } - .my-sm-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - .my-sm-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - .my-sm-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - .my-sm-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - .my-sm-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - .my-sm-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - .my-sm-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - .mt-sm-0 { - margin-top: 0 !important; - } - .mt-sm-1 { - margin-top: 0.25rem !important; - } - .mt-sm-2 { - margin-top: 0.5rem !important; - } - .mt-sm-3 { - margin-top: 1rem !important; - } - .mt-sm-4 { - margin-top: 1.5rem !important; - } - .mt-sm-5 { - margin-top: 3rem !important; - } - .mt-sm-auto { - margin-top: auto !important; - } - .me-sm-0 { - margin-right: 0 !important; - } - .me-sm-1 { - margin-right: 0.25rem !important; - } - .me-sm-2 { - margin-right: 0.5rem !important; - } - .me-sm-3 { - margin-right: 1rem !important; - } - .me-sm-4 { - margin-right: 1.5rem !important; - } - .me-sm-5 { - margin-right: 3rem !important; - } - .me-sm-auto { - margin-right: auto !important; - } - .mb-sm-0 { - margin-bottom: 0 !important; - } - .mb-sm-1 { - margin-bottom: 0.25rem !important; - } - .mb-sm-2 { - margin-bottom: 0.5rem !important; - } - .mb-sm-3 { - margin-bottom: 1rem !important; - } - .mb-sm-4 { - margin-bottom: 1.5rem !important; - } - .mb-sm-5 { - margin-bottom: 3rem !important; - } - .mb-sm-auto { - margin-bottom: auto !important; - } - .ms-sm-0 { - margin-left: 0 !important; - } - .ms-sm-1 { - margin-left: 0.25rem !important; - } - .ms-sm-2 { - margin-left: 0.5rem !important; - } - .ms-sm-3 { - margin-left: 1rem !important; - } - .ms-sm-4 { - margin-left: 1.5rem !important; - } - .ms-sm-5 { - margin-left: 3rem !important; - } - .ms-sm-auto { - margin-left: auto !important; - } - .p-sm-0 { - padding: 0 !important; - } - .p-sm-1 { - padding: 0.25rem !important; - } - .p-sm-2 { - padding: 0.5rem !important; - } - .p-sm-3 { - padding: 1rem !important; - } - .p-sm-4 { - padding: 1.5rem !important; - } - .p-sm-5 { - padding: 3rem !important; - } - .px-sm-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - .px-sm-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - .px-sm-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - .px-sm-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - .px-sm-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - .px-sm-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - .py-sm-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - .py-sm-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - .py-sm-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - .py-sm-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - .py-sm-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - .py-sm-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - .pt-sm-0 { - padding-top: 0 !important; - } - .pt-sm-1 { - padding-top: 0.25rem !important; - } - .pt-sm-2 { - padding-top: 0.5rem !important; - } - .pt-sm-3 { - padding-top: 1rem !important; - } - .pt-sm-4 { - padding-top: 1.5rem !important; - } - .pt-sm-5 { - padding-top: 3rem !important; - } - .pe-sm-0 { - padding-right: 0 !important; - } - .pe-sm-1 { - padding-right: 0.25rem !important; - } - .pe-sm-2 { - padding-right: 0.5rem !important; - } - .pe-sm-3 { - padding-right: 1rem !important; - } - .pe-sm-4 { - padding-right: 1.5rem !important; - } - .pe-sm-5 { - padding-right: 3rem !important; - } - .pb-sm-0 { - padding-bottom: 0 !important; - } - .pb-sm-1 { - padding-bottom: 0.25rem !important; - } - .pb-sm-2 { - padding-bottom: 0.5rem !important; - } - .pb-sm-3 { - padding-bottom: 1rem !important; - } - .pb-sm-4 { - padding-bottom: 1.5rem !important; - } - .pb-sm-5 { - padding-bottom: 3rem !important; - } - .ps-sm-0 { - padding-left: 0 !important; - } - .ps-sm-1 { - padding-left: 0.25rem !important; - } - .ps-sm-2 { - padding-left: 0.5rem !important; - } - .ps-sm-3 { - padding-left: 1rem !important; - } - .ps-sm-4 { - padding-left: 1.5rem !important; - } - .ps-sm-5 { - padding-left: 3rem !important; - } -} -@media (min-width: 768px) { - .d-md-inline { - display: inline !important; - } - .d-md-inline-block { - display: inline-block !important; - } - .d-md-block { - display: block !important; - } - .d-md-grid { - display: -ms-grid !important; - display: grid !important; - } - .d-md-table { - display: table !important; - } - .d-md-table-row { - display: table-row !important; - } - .d-md-table-cell { - display: table-cell !important; - } - .d-md-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - .d-md-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - .d-md-none { - display: none !important; - } - .flex-md-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-md-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-md-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-md-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-md-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-md-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-md-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-md-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-md-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .flex-md-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-md-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-md-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .justify-content-md-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-md-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-md-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-md-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-md-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .justify-content-md-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - .align-items-md-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-md-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-md-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-md-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-md-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-md-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-md-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-md-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-md-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-md-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-md-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-md-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - .align-self-md-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-md-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-md-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - .align-self-md-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-md-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - .order-md-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - .order-md-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - .order-md-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - .order-md-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - .order-md-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - .order-md-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - .order-md-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - .order-md-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - .m-md-0 { - margin: 0 !important; - } - .m-md-1 { - margin: 0.25rem !important; - } - .m-md-2 { - margin: 0.5rem !important; - } - .m-md-3 { - margin: 1rem !important; - } - .m-md-4 { - margin: 1.5rem !important; - } - .m-md-5 { - margin: 3rem !important; - } - .m-md-auto { - margin: auto !important; - } - .mx-md-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - .mx-md-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - .mx-md-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - .mx-md-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - .mx-md-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - .mx-md-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - .mx-md-auto { - margin-right: auto !important; - margin-left: auto !important; - } - .my-md-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - .my-md-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - .my-md-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - .my-md-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - .my-md-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - .my-md-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - .my-md-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - .mt-md-0 { - margin-top: 0 !important; - } - .mt-md-1 { - margin-top: 0.25rem !important; - } - .mt-md-2 { - margin-top: 0.5rem !important; - } - .mt-md-3 { - margin-top: 1rem !important; - } - .mt-md-4 { - margin-top: 1.5rem !important; - } - .mt-md-5 { - margin-top: 3rem !important; - } - .mt-md-auto { - margin-top: auto !important; - } - .me-md-0 { - margin-right: 0 !important; - } - .me-md-1 { - margin-right: 0.25rem !important; - } - .me-md-2 { - margin-right: 0.5rem !important; - } - .me-md-3 { - margin-right: 1rem !important; - } - .me-md-4 { - margin-right: 1.5rem !important; - } - .me-md-5 { - margin-right: 3rem !important; - } - .me-md-auto { - margin-right: auto !important; - } - .mb-md-0 { - margin-bottom: 0 !important; - } - .mb-md-1 { - margin-bottom: 0.25rem !important; - } - .mb-md-2 { - margin-bottom: 0.5rem !important; - } - .mb-md-3 { - margin-bottom: 1rem !important; - } - .mb-md-4 { - margin-bottom: 1.5rem !important; - } - .mb-md-5 { - margin-bottom: 3rem !important; - } - .mb-md-auto { - margin-bottom: auto !important; - } - .ms-md-0 { - margin-left: 0 !important; - } - .ms-md-1 { - margin-left: 0.25rem !important; - } - .ms-md-2 { - margin-left: 0.5rem !important; - } - .ms-md-3 { - margin-left: 1rem !important; - } - .ms-md-4 { - margin-left: 1.5rem !important; - } - .ms-md-5 { - margin-left: 3rem !important; - } - .ms-md-auto { - margin-left: auto !important; - } - .p-md-0 { - padding: 0 !important; - } - .p-md-1 { - padding: 0.25rem !important; - } - .p-md-2 { - padding: 0.5rem !important; - } - .p-md-3 { - padding: 1rem !important; - } - .p-md-4 { - padding: 1.5rem !important; - } - .p-md-5 { - padding: 3rem !important; - } - .px-md-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - .px-md-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - .px-md-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - .px-md-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - .px-md-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - .px-md-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - .py-md-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - .py-md-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - .py-md-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - .py-md-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - .py-md-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - .py-md-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - .pt-md-0 { - padding-top: 0 !important; - } - .pt-md-1 { - padding-top: 0.25rem !important; - } - .pt-md-2 { - padding-top: 0.5rem !important; - } - .pt-md-3 { - padding-top: 1rem !important; - } - .pt-md-4 { - padding-top: 1.5rem !important; - } - .pt-md-5 { - padding-top: 3rem !important; - } - .pe-md-0 { - padding-right: 0 !important; - } - .pe-md-1 { - padding-right: 0.25rem !important; - } - .pe-md-2 { - padding-right: 0.5rem !important; - } - .pe-md-3 { - padding-right: 1rem !important; - } - .pe-md-4 { - padding-right: 1.5rem !important; - } - .pe-md-5 { - padding-right: 3rem !important; - } - .pb-md-0 { - padding-bottom: 0 !important; - } - .pb-md-1 { - padding-bottom: 0.25rem !important; - } - .pb-md-2 { - padding-bottom: 0.5rem !important; - } - .pb-md-3 { - padding-bottom: 1rem !important; - } - .pb-md-4 { - padding-bottom: 1.5rem !important; - } - .pb-md-5 { - padding-bottom: 3rem !important; - } - .ps-md-0 { - padding-left: 0 !important; - } - .ps-md-1 { - padding-left: 0.25rem !important; - } - .ps-md-2 { - padding-left: 0.5rem !important; - } - .ps-md-3 { - padding-left: 1rem !important; - } - .ps-md-4 { - padding-left: 1.5rem !important; - } - .ps-md-5 { - padding-left: 3rem !important; - } -} -@media (min-width: 992px) { - .d-lg-inline { - display: inline !important; - } - .d-lg-inline-block { - display: inline-block !important; - } - .d-lg-block { - display: block !important; - } - .d-lg-grid { - display: -ms-grid !important; - display: grid !important; - } - .d-lg-table { - display: table !important; - } - .d-lg-table-row { - display: table-row !important; - } - .d-lg-table-cell { - display: table-cell !important; - } - .d-lg-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - .d-lg-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - .d-lg-none { - display: none !important; - } - .flex-lg-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-lg-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-lg-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-lg-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-lg-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-lg-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-lg-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-lg-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-lg-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .flex-lg-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-lg-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-lg-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .justify-content-lg-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-lg-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-lg-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-lg-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-lg-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .justify-content-lg-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - .align-items-lg-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-lg-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-lg-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-lg-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-lg-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-lg-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-lg-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-lg-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-lg-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-lg-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-lg-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-lg-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - .align-self-lg-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-lg-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-lg-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - .align-self-lg-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-lg-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - .order-lg-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - .order-lg-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - .order-lg-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - .order-lg-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - .order-lg-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - .order-lg-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - .order-lg-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - .order-lg-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - .m-lg-0 { - margin: 0 !important; - } - .m-lg-1 { - margin: 0.25rem !important; - } - .m-lg-2 { - margin: 0.5rem !important; - } - .m-lg-3 { - margin: 1rem !important; - } - .m-lg-4 { - margin: 1.5rem !important; - } - .m-lg-5 { - margin: 3rem !important; - } - .m-lg-auto { - margin: auto !important; - } - .mx-lg-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - .mx-lg-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - .mx-lg-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - .mx-lg-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - .mx-lg-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - .mx-lg-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - .mx-lg-auto { - margin-right: auto !important; - margin-left: auto !important; - } - .my-lg-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - .my-lg-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - .my-lg-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - .my-lg-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - .my-lg-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - .my-lg-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - .my-lg-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - .mt-lg-0 { - margin-top: 0 !important; - } - .mt-lg-1 { - margin-top: 0.25rem !important; - } - .mt-lg-2 { - margin-top: 0.5rem !important; - } - .mt-lg-3 { - margin-top: 1rem !important; - } - .mt-lg-4 { - margin-top: 1.5rem !important; - } - .mt-lg-5 { - margin-top: 3rem !important; - } - .mt-lg-auto { - margin-top: auto !important; - } - .me-lg-0 { - margin-right: 0 !important; - } - .me-lg-1 { - margin-right: 0.25rem !important; - } - .me-lg-2 { - margin-right: 0.5rem !important; - } - .me-lg-3 { - margin-right: 1rem !important; - } - .me-lg-4 { - margin-right: 1.5rem !important; - } - .me-lg-5 { - margin-right: 3rem !important; - } - .me-lg-auto { - margin-right: auto !important; - } - .mb-lg-0 { - margin-bottom: 0 !important; - } - .mb-lg-1 { - margin-bottom: 0.25rem !important; - } - .mb-lg-2 { - margin-bottom: 0.5rem !important; - } - .mb-lg-3 { - margin-bottom: 1rem !important; - } - .mb-lg-4 { - margin-bottom: 1.5rem !important; - } - .mb-lg-5 { - margin-bottom: 3rem !important; - } - .mb-lg-auto { - margin-bottom: auto !important; - } - .ms-lg-0 { - margin-left: 0 !important; - } - .ms-lg-1 { - margin-left: 0.25rem !important; - } - .ms-lg-2 { - margin-left: 0.5rem !important; - } - .ms-lg-3 { - margin-left: 1rem !important; - } - .ms-lg-4 { - margin-left: 1.5rem !important; - } - .ms-lg-5 { - margin-left: 3rem !important; - } - .ms-lg-auto { - margin-left: auto !important; - } - .p-lg-0 { - padding: 0 !important; - } - .p-lg-1 { - padding: 0.25rem !important; - } - .p-lg-2 { - padding: 0.5rem !important; - } - .p-lg-3 { - padding: 1rem !important; - } - .p-lg-4 { - padding: 1.5rem !important; - } - .p-lg-5 { - padding: 3rem !important; - } - .px-lg-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - .px-lg-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - .px-lg-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - .px-lg-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - .px-lg-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - .px-lg-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - .py-lg-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - .py-lg-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - .py-lg-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - .py-lg-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - .py-lg-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - .py-lg-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - .pt-lg-0 { - padding-top: 0 !important; - } - .pt-lg-1 { - padding-top: 0.25rem !important; - } - .pt-lg-2 { - padding-top: 0.5rem !important; - } - .pt-lg-3 { - padding-top: 1rem !important; - } - .pt-lg-4 { - padding-top: 1.5rem !important; - } - .pt-lg-5 { - padding-top: 3rem !important; - } - .pe-lg-0 { - padding-right: 0 !important; - } - .pe-lg-1 { - padding-right: 0.25rem !important; - } - .pe-lg-2 { - padding-right: 0.5rem !important; - } - .pe-lg-3 { - padding-right: 1rem !important; - } - .pe-lg-4 { - padding-right: 1.5rem !important; - } - .pe-lg-5 { - padding-right: 3rem !important; - } - .pb-lg-0 { - padding-bottom: 0 !important; - } - .pb-lg-1 { - padding-bottom: 0.25rem !important; - } - .pb-lg-2 { - padding-bottom: 0.5rem !important; - } - .pb-lg-3 { - padding-bottom: 1rem !important; - } - .pb-lg-4 { - padding-bottom: 1.5rem !important; - } - .pb-lg-5 { - padding-bottom: 3rem !important; - } - .ps-lg-0 { - padding-left: 0 !important; - } - .ps-lg-1 { - padding-left: 0.25rem !important; - } - .ps-lg-2 { - padding-left: 0.5rem !important; - } - .ps-lg-3 { - padding-left: 1rem !important; - } - .ps-lg-4 { - padding-left: 1.5rem !important; - } - .ps-lg-5 { - padding-left: 3rem !important; - } -} -@media (min-width: 1200px) { - .d-xl-inline { - display: inline !important; - } - .d-xl-inline-block { - display: inline-block !important; - } - .d-xl-block { - display: block !important; - } - .d-xl-grid { - display: -ms-grid !important; - display: grid !important; - } - .d-xl-table { - display: table !important; - } - .d-xl-table-row { - display: table-row !important; - } - .d-xl-table-cell { - display: table-cell !important; - } - .d-xl-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - .d-xl-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - .d-xl-none { - display: none !important; - } - .flex-xl-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-xl-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-xl-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-xl-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-xl-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-xl-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-xl-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-xl-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-xl-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .flex-xl-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-xl-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-xl-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .justify-content-xl-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-xl-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-xl-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-xl-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-xl-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .justify-content-xl-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - .align-items-xl-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-xl-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-xl-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-xl-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-xl-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-xl-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-xl-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-xl-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-xl-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-xl-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-xl-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-xl-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - .align-self-xl-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-xl-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-xl-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - .align-self-xl-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-xl-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - .order-xl-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - .order-xl-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - .order-xl-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - .order-xl-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - .order-xl-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - .order-xl-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - .order-xl-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - .order-xl-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - .m-xl-0 { - margin: 0 !important; - } - .m-xl-1 { - margin: 0.25rem !important; - } - .m-xl-2 { - margin: 0.5rem !important; - } - .m-xl-3 { - margin: 1rem !important; - } - .m-xl-4 { - margin: 1.5rem !important; - } - .m-xl-5 { - margin: 3rem !important; - } - .m-xl-auto { - margin: auto !important; - } - .mx-xl-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - .mx-xl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - .mx-xl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - .mx-xl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - .mx-xl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - .mx-xl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - .mx-xl-auto { - margin-right: auto !important; - margin-left: auto !important; - } - .my-xl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - .my-xl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - .my-xl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - .my-xl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - .my-xl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - .my-xl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - .my-xl-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - .mt-xl-0 { - margin-top: 0 !important; - } - .mt-xl-1 { - margin-top: 0.25rem !important; - } - .mt-xl-2 { - margin-top: 0.5rem !important; - } - .mt-xl-3 { - margin-top: 1rem !important; - } - .mt-xl-4 { - margin-top: 1.5rem !important; - } - .mt-xl-5 { - margin-top: 3rem !important; - } - .mt-xl-auto { - margin-top: auto !important; - } - .me-xl-0 { - margin-right: 0 !important; - } - .me-xl-1 { - margin-right: 0.25rem !important; - } - .me-xl-2 { - margin-right: 0.5rem !important; - } - .me-xl-3 { - margin-right: 1rem !important; - } - .me-xl-4 { - margin-right: 1.5rem !important; - } - .me-xl-5 { - margin-right: 3rem !important; - } - .me-xl-auto { - margin-right: auto !important; - } - .mb-xl-0 { - margin-bottom: 0 !important; - } - .mb-xl-1 { - margin-bottom: 0.25rem !important; - } - .mb-xl-2 { - margin-bottom: 0.5rem !important; - } - .mb-xl-3 { - margin-bottom: 1rem !important; - } - .mb-xl-4 { - margin-bottom: 1.5rem !important; - } - .mb-xl-5 { - margin-bottom: 3rem !important; - } - .mb-xl-auto { - margin-bottom: auto !important; - } - .ms-xl-0 { - margin-left: 0 !important; - } - .ms-xl-1 { - margin-left: 0.25rem !important; - } - .ms-xl-2 { - margin-left: 0.5rem !important; - } - .ms-xl-3 { - margin-left: 1rem !important; - } - .ms-xl-4 { - margin-left: 1.5rem !important; - } - .ms-xl-5 { - margin-left: 3rem !important; - } - .ms-xl-auto { - margin-left: auto !important; - } - .p-xl-0 { - padding: 0 !important; - } - .p-xl-1 { - padding: 0.25rem !important; - } - .p-xl-2 { - padding: 0.5rem !important; - } - .p-xl-3 { - padding: 1rem !important; - } - .p-xl-4 { - padding: 1.5rem !important; - } - .p-xl-5 { - padding: 3rem !important; - } - .px-xl-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - .px-xl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - .px-xl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - .px-xl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - .px-xl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - .px-xl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - .py-xl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - .py-xl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - .py-xl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - .py-xl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - .py-xl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - .py-xl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - .pt-xl-0 { - padding-top: 0 !important; - } - .pt-xl-1 { - padding-top: 0.25rem !important; - } - .pt-xl-2 { - padding-top: 0.5rem !important; - } - .pt-xl-3 { - padding-top: 1rem !important; - } - .pt-xl-4 { - padding-top: 1.5rem !important; - } - .pt-xl-5 { - padding-top: 3rem !important; - } - .pe-xl-0 { - padding-right: 0 !important; - } - .pe-xl-1 { - padding-right: 0.25rem !important; - } - .pe-xl-2 { - padding-right: 0.5rem !important; - } - .pe-xl-3 { - padding-right: 1rem !important; - } - .pe-xl-4 { - padding-right: 1.5rem !important; - } - .pe-xl-5 { - padding-right: 3rem !important; - } - .pb-xl-0 { - padding-bottom: 0 !important; - } - .pb-xl-1 { - padding-bottom: 0.25rem !important; - } - .pb-xl-2 { - padding-bottom: 0.5rem !important; - } - .pb-xl-3 { - padding-bottom: 1rem !important; - } - .pb-xl-4 { - padding-bottom: 1.5rem !important; - } - .pb-xl-5 { - padding-bottom: 3rem !important; - } - .ps-xl-0 { - padding-left: 0 !important; - } - .ps-xl-1 { - padding-left: 0.25rem !important; - } - .ps-xl-2 { - padding-left: 0.5rem !important; - } - .ps-xl-3 { - padding-left: 1rem !important; - } - .ps-xl-4 { - padding-left: 1.5rem !important; - } - .ps-xl-5 { - padding-left: 3rem !important; - } -} -@media (min-width: 1400px) { - .d-xxl-inline { - display: inline !important; - } - .d-xxl-inline-block { - display: inline-block !important; - } - .d-xxl-block { - display: block !important; - } - .d-xxl-grid { - display: -ms-grid !important; - display: grid !important; - } - .d-xxl-table { - display: table !important; - } - .d-xxl-table-row { - display: table-row !important; - } - .d-xxl-table-cell { - display: table-cell !important; - } - .d-xxl-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - .d-xxl-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - .d-xxl-none { - display: none !important; - } - .flex-xxl-fill { - -webkit-box-flex: 1 !important; - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-xxl-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-xxl-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-xxl-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-xxl-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-xxl-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-xxl-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-xxl-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-xxl-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .flex-xxl-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-xxl-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-xxl-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .justify-content-xxl-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-xxl-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-xxl-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-xxl-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-xxl-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .justify-content-xxl-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; - } - .align-items-xxl-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-xxl-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-xxl-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-xxl-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-xxl-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-xxl-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-xxl-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-xxl-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-xxl-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-xxl-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-xxl-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-xxl-auto { - -ms-flex-item-align: auto !important; - -ms-grid-row-align: auto !important; - align-self: auto !important; - } - .align-self-xxl-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-xxl-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-xxl-center { - -ms-flex-item-align: center !important; - -ms-grid-row-align: center !important; - align-self: center !important; - } - .align-self-xxl-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-xxl-stretch { - -ms-flex-item-align: stretch !important; - -ms-grid-row-align: stretch !important; - align-self: stretch !important; - } - .order-xxl-first { - -webkit-box-ordinal-group: 0 !important; - -ms-flex-order: -1 !important; - order: -1 !important; - } - .order-xxl-0 { - -webkit-box-ordinal-group: 1 !important; - -ms-flex-order: 0 !important; - order: 0 !important; - } - .order-xxl-1 { - -webkit-box-ordinal-group: 2 !important; - -ms-flex-order: 1 !important; - order: 1 !important; - } - .order-xxl-2 { - -webkit-box-ordinal-group: 3 !important; - -ms-flex-order: 2 !important; - order: 2 !important; - } - .order-xxl-3 { - -webkit-box-ordinal-group: 4 !important; - -ms-flex-order: 3 !important; - order: 3 !important; - } - .order-xxl-4 { - -webkit-box-ordinal-group: 5 !important; - -ms-flex-order: 4 !important; - order: 4 !important; - } - .order-xxl-5 { - -webkit-box-ordinal-group: 6 !important; - -ms-flex-order: 5 !important; - order: 5 !important; - } - .order-xxl-last { - -webkit-box-ordinal-group: 7 !important; - -ms-flex-order: 6 !important; - order: 6 !important; - } - .m-xxl-0 { - margin: 0 !important; - } - .m-xxl-1 { - margin: 0.25rem !important; - } - .m-xxl-2 { - margin: 0.5rem !important; - } - .m-xxl-3 { - margin: 1rem !important; - } - .m-xxl-4 { - margin: 1.5rem !important; - } - .m-xxl-5 { - margin: 3rem !important; - } - .m-xxl-auto { - margin: auto !important; - } - .mx-xxl-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - .mx-xxl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - .mx-xxl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - .mx-xxl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - .mx-xxl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - .mx-xxl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - .mx-xxl-auto { - margin-right: auto !important; - margin-left: auto !important; - } - .my-xxl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - .my-xxl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - .my-xxl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - .my-xxl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - .my-xxl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - .my-xxl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - .my-xxl-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - .mt-xxl-0 { - margin-top: 0 !important; - } - .mt-xxl-1 { - margin-top: 0.25rem !important; - } - .mt-xxl-2 { - margin-top: 0.5rem !important; - } - .mt-xxl-3 { - margin-top: 1rem !important; - } - .mt-xxl-4 { - margin-top: 1.5rem !important; - } - .mt-xxl-5 { - margin-top: 3rem !important; - } - .mt-xxl-auto { - margin-top: auto !important; - } - .me-xxl-0 { - margin-right: 0 !important; - } - .me-xxl-1 { - margin-right: 0.25rem !important; - } - .me-xxl-2 { - margin-right: 0.5rem !important; - } - .me-xxl-3 { - margin-right: 1rem !important; - } - .me-xxl-4 { - margin-right: 1.5rem !important; - } - .me-xxl-5 { - margin-right: 3rem !important; - } - .me-xxl-auto { - margin-right: auto !important; - } - .mb-xxl-0 { - margin-bottom: 0 !important; - } - .mb-xxl-1 { - margin-bottom: 0.25rem !important; - } - .mb-xxl-2 { - margin-bottom: 0.5rem !important; - } - .mb-xxl-3 { - margin-bottom: 1rem !important; - } - .mb-xxl-4 { - margin-bottom: 1.5rem !important; - } - .mb-xxl-5 { - margin-bottom: 3rem !important; - } - .mb-xxl-auto { - margin-bottom: auto !important; - } - .ms-xxl-0 { - margin-left: 0 !important; - } - .ms-xxl-1 { - margin-left: 0.25rem !important; - } - .ms-xxl-2 { - margin-left: 0.5rem !important; - } - .ms-xxl-3 { - margin-left: 1rem !important; - } - .ms-xxl-4 { - margin-left: 1.5rem !important; - } - .ms-xxl-5 { - margin-left: 3rem !important; - } - .ms-xxl-auto { - margin-left: auto !important; - } - .p-xxl-0 { - padding: 0 !important; - } - .p-xxl-1 { - padding: 0.25rem !important; - } - .p-xxl-2 { - padding: 0.5rem !important; - } - .p-xxl-3 { - padding: 1rem !important; - } - .p-xxl-4 { - padding: 1.5rem !important; - } - .p-xxl-5 { - padding: 3rem !important; - } - .px-xxl-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - .px-xxl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - .px-xxl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - .px-xxl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - .px-xxl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - .px-xxl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - .py-xxl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - .py-xxl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - .py-xxl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - .py-xxl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - .py-xxl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - .py-xxl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - .pt-xxl-0 { - padding-top: 0 !important; - } - .pt-xxl-1 { - padding-top: 0.25rem !important; - } - .pt-xxl-2 { - padding-top: 0.5rem !important; - } - .pt-xxl-3 { - padding-top: 1rem !important; - } - .pt-xxl-4 { - padding-top: 1.5rem !important; - } - .pt-xxl-5 { - padding-top: 3rem !important; - } - .pe-xxl-0 { - padding-right: 0 !important; - } - .pe-xxl-1 { - padding-right: 0.25rem !important; - } - .pe-xxl-2 { - padding-right: 0.5rem !important; - } - .pe-xxl-3 { - padding-right: 1rem !important; - } - .pe-xxl-4 { - padding-right: 1.5rem !important; - } - .pe-xxl-5 { - padding-right: 3rem !important; - } - .pb-xxl-0 { - padding-bottom: 0 !important; - } - .pb-xxl-1 { - padding-bottom: 0.25rem !important; - } - .pb-xxl-2 { - padding-bottom: 0.5rem !important; - } - .pb-xxl-3 { - padding-bottom: 1rem !important; - } - .pb-xxl-4 { - padding-bottom: 1.5rem !important; - } - .pb-xxl-5 { - padding-bottom: 3rem !important; - } - .ps-xxl-0 { - padding-left: 0 !important; - } - .ps-xxl-1 { - padding-left: 0.25rem !important; - } - .ps-xxl-2 { - padding-left: 0.5rem !important; - } - .ps-xxl-3 { - padding-left: 1rem !important; - } - .ps-xxl-4 { - padding-left: 1.5rem !important; - } - .ps-xxl-5 { - padding-left: 3rem !important; - } -} -@media print { - .d-print-inline { - display: inline !important; - } - .d-print-inline-block { - display: inline-block !important; - } - .d-print-block { - display: block !important; - } - .d-print-grid { - display: -ms-grid !important; - display: grid !important; - } - .d-print-table { - display: table !important; - } - .d-print-table-row { - display: table-row !important; - } - .d-print-table-cell { - display: table-cell !important; - } - .d-print-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } - .d-print-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } - .d-print-none { - display: none !important; - } -} -.checkbox { - z-index: 0; - position: relative; - display: inline-block; - color: rgba(0, 0, 0, 0.87); - font-size: 16px; - line-height: 1.5; -} -.checkbox input { - appearance: none; - z-index: -1; - position: absolute; - left: -10px; - top: -8px; - display: flex; - align-items: center; - justify-content: center; - margin: 0; - border-radius: 50%; - width: 40px; - height: 40px; - background-color: rgba(0, 0, 0, 0.6); - box-shadow: none; - outline: none; - opacity: 0; - transform: scale(1); - pointer-events: none; - transition: opacity 0.3s, transform 0.2s; -} -.checkbox > span { - display: inline-block; - width: 100%; - cursor: pointer; -} -.checkbox > span::before { - content: ""; - display: inline-block; - box-sizing: border-box; - margin: 3px 11px 3px 1px; - border: solid 2px; - border-color: rgba(0, 0, 0, 0.6); - border-radius: 2px; - width: 18px; - height: 18px; - vertical-align: top; - transition: border-color 0.2s, background-color 0.2s; -} -.checkbox > span::after { - content: ""; - display: block; - position: absolute; - top: 4px; - left: 2px; - width: 10px; - height: 5px; - border: solid 2px transparent; - border-right: none; - border-top: none; - transform: translate(3px, 4px) rotate(-45deg); -} -.checkbox > input:checked, .checkbox > input:indeterminate { - background-color: #3f51b5; -} -.checkbox > input:checked + span::before, .checkbox > input:indeterminate + span::before { - border-color: #3f51b5; - background-color: #3f51b5; -} -.checkbox > input:checked + span::after, .checkbox > input:indeterminate + span::after { - border-color: rgb(255, 255, 255); -} -.checkbox > input:indeterminate + span::after { - border-left: none; - transform: translate(4px, 3px); -} -.checkbox:hover > input { - opacity: 0.4; -} -.checkbox > input:focus { - opacity: 0.12; -} -.checkbox:hover > input:focus { - opacity: 0.16; -} -.checkbox > input:active { - opacity: 1; - transform: scale(0); - transition: transform 0s, opacity 0s; -} -.checkbox > input:active + span::before { - border-color: #3f51b5; -} -.checkbox > input:checked:active + span::before { - border-color: transparent; - background-color: rgba(0, 0, 0, 0.6); -} -.checkbox > input:disabled { - opacity: 0; -} -.checkbox > input:disabled + span { - color: rgba(0, 0, 0, 0.38); - cursor: initial; -} -.checkbox > input:disabled + span::before { - border-color: currentColor; -} -.checkbox > input:checked:disabled + span::before, .checkbox > input:indeterminate:disabled + span::before { - border-color: transparent; - background-color: currentColor; -} - -.menu { - display: inline-block; - min-width: 100px; - background: #fff; - border-radius: 4px; - transition: opacity 0.2s ease; - opacity: 0; - pointer-events: none; - position: fixed; - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); -} -.menu.open { - opacity: 1; - pointer-events: all; -} - -.noUi-target, -.noUi-target * { - touch-action: none; - user-select: none; - box-sizing: border-box; -} - -.noUi-base, -.noUi-connects { - width: 100%; - height: 100%; - position: relative; - z-index: 1; -} - -.noUi-connect, -.noUi-origin { - will-change: transform; - position: absolute; - z-index: 1; - top: 0; - right: 0; - height: 100%; - width: 100%; - transform-origin: 0 0; - transform-style: flat; -} - -.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin { - left: 0; - right: auto; -} - -.noUi-vertical .noUi-origin { - top: -100%; - width: 0; -} - -.noUi-horizontal .noUi-origin { - height: 0; -} - -.noUi-handle { - backface-visibility: hidden; - position: absolute; - border-radius: 100px; - background: #fff; - cursor: default; -} - -.noUi-touch-area { - height: 100%; - width: 100%; -} - -.noUi-state-tap .noUi-connect, -.noUi-state-tap .noUi-origin { - transition: all 0.2s; -} - -.noUi-state-drag * { - cursor: inherit !important; -} - -.noUi-horizontal { - height: 18px; -} - -.noUi-horizontal .noUi-handle { - width: 28px; - height: 28px; - right: -17px; - top: -6px; - box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12); - transition: all 0.2s ease; -} -.noUi-horizontal .noUi-handle:hover:not(.noUi-active) { - box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); -} -.noUi-horizontal .noUi-handle:focus { - box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12); -} - -.noUi-vertical { - width: 18px; -} - -.noUi-vertical .noUi-handle { - width: 28px; - height: 34px; - right: -6px; - bottom: -17px; -} - -.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle { - left: -17px; - right: auto; -} - -.noUi-target { - background: #f5f5f5; - border-radius: 100px; - position: relative; - box-shadow: inset 0 1px 1px #f0f0f0, 0 3px 6px -5px #bbb; -} - -.noUi-connects { - border-radius: 3px; - overflow: hidden; - z-index: 0; -} - -.noUi-connect { - background: #3f51b5; -} - -.noUi-draggable { - cursor: ew-resize; -} - -.noUi-vertical .noUi-draggable { - cursor: ns-resize; -} - -.noUi-active { - box-shadow: 0 0 0 10px #5c6bc0; -} -.noUi-active .noUi-tooltip { - opacity: 1; -} - -.noUi-handle:after { - left: 17px; -} - -.noUi-vertical .noUi-handle:before, -.noUi-vertical .noUi-handle:after { - width: 14px; - height: 1px; - left: 6px; - top: 14px; -} - -.noUi-vertical .noUi-handle:after { - top: 17px; -} - -[disabled] .noUi-connect { - background: #b8b8b8; -} - -[disabled].noUi-target, -[disabled].noUi-handle, -[disabled] .noUi-handle { - cursor: not-allowed; -} - -.noUi-pips, -.noUi-pips * { - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.noUi-pips { - position: absolute; - color: #999; -} - -.noUi-value { - position: absolute; - white-space: nowrap; - text-align: center; -} - -.noUi-value-sub { - color: #ccc; - font-size: 10px; -} - -.noUi-marker { - position: absolute; - background: #ccc; -} - -.noUi-marker-sub { - background: #aaa; -} - -.noUi-marker-large { - background: #aaa; -} - -.noUi-pips-horizontal { - padding: 10px 0; - height: 80px; - top: 100%; - left: 0; - width: 100%; -} - -.noUi-value-horizontal { - transform: translate(-50%, 50%); -} - -.noUi-rtl .noUi-value-horizontal { - transform: translate(50%, 50%); -} - -.noUi-marker-horizontal.noUi-marker { - margin-left: -1px; - width: 2px; - height: 5px; -} - -.noUi-marker-horizontal.noUi-marker-sub { - height: 10px; -} - -.noUi-marker-horizontal.noUi-marker-large { - height: 15px; -} - -.noUi-pips-vertical { - padding: 0 10px; - height: 100%; - top: 0; - left: 100%; -} - -.noUi-value-vertical { - transform: translate(0, -50%); - padding-left: 25px; -} - -.noUi-rtl .noUi-value-vertical { - transform: translate(0, 50%); -} - -.noUi-marker-vertical.noUi-marker { - width: 5px; - height: 2px; - margin-top: -1px; -} - -.noUi-marker-vertical.noUi-marker-sub { - width: 10px; -} - -.noUi-marker-vertical.noUi-marker-large { - width: 15px; -} - -.noUi-tooltip { - display: block; - position: absolute; - border-radius: 4px; - background: #212121; - color: #fff; - font-size: 14px; - padding: 5px 10px; - text-align: center; - white-space: nowrap; - opacity: 0; - transition: all 0.2s ease; -} - -.noUi-horizontal .noUi-tooltip { - transform: translate(-50%, 0); - left: 50%; - bottom: 120%; -} - -.noUi-vertical .noUi-tooltip { - transform: translate(0, -50%); - top: 50%; - right: 120%; -} - -.noUi-horizontal .noUi-origin > .noUi-tooltip { - transform: translate(50%, 0); - left: auto; - bottom: 10px; -} - -.noUi-vertical .noUi-origin > .noUi-tooltip { - transform: translate(0, -18px); - top: auto; - right: 28px; -} - -.textbox { - display: flex; - align-items: center; - justify-content: center; - width: max-content; - position: relative; - background: #f5f5f5; - padding: 0 10px; - padding-right: 0 !important; - border-radius: 4px 4px 0 0; - overflow: hidden; - transition: all 0.2s ease; -} -.textbox:hover:not(.focus) { - background: #eeeeee; -} -.textbox::after { - content: ""; - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 2px; - background: #3f51b5; - transform: scaleX(0); - transition: all 0.2s ease; -} -.textbox::before { - content: ""; - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 1px; - background: #9e9e9e; - transition: all 0.2s ease; -} -.textbox:hover::before { - height: 2px; - background: #212121; -} -.textbox.focus::after { - transform: scaleX(1); -} -.textbox .left, .textbox .right { - flex: 1; - display: flex; - align-items: center; - justify-content: center; - pointer-events: none; -} -.textbox .left { - margin-right: 10px; -} -.textbox .right { - margin-left: 10px; - margin-right: 10px; -} -.textbox .action { - pointer-events: all; -} -.textbox .mdi { - font-size: 20px; - color: #9e9e9e; -} -.textbox:not(.floating) .input { - color: transparent; -} -.textbox .middle { - display: flex; - flex-direction: column; - align-items: flex-start; - position: relative; -} -.textbox .middle .label { - position: absolute; - top: 50%; - left: 0%; - user-select: none; - transform: translateY(-50%); - font-size: 1.2; - transition: all 0.2s ease-in-out; - pointer-events: none; - color: #424242; -} -.textbox .middle .input { - width: 100%; - padding-top: 30px; - padding-bottom: 10px; - border: none; - outline: none; - appearance: none; - background: transparent; -} -.textbox.textarea .label { - top: 0%; - transform: translateY(20px); -} -.textbox.floating .label { - left: 0%; - top: 0%; - font-size: 12px; - transform: translateY(50%) translateX(2px); -} -.textbox.focus.floating .label { - color: #3f51b5; -} -.textbox.border-bottom { - background: transparent !important; -} -.textbox.border-bottom .label, .textbox.border-bottom .input { - margin-left: -8px !important; -} -.textbox.border-bottom .input { - width: calc(100% + 16px); -} -.textbox.outlined { - background: transparent; - box-shadow: 0 0 0 1px #bdbdbd; - color: #9e9e9e; - transition: none; - border-radius: 4px; - overflow: visible; -} -.textbox.outlined::after, .textbox.outlined::before { - background: transparent; -} -.textbox.outlined:hover:not(.focus) { - background: transparent; - box-shadow: 0 0 0 1px #757575; - color: #757575; -} -.textbox.outlined.focus { - background: transparent; - box-shadow: 0 0 0 2px #3f51b5; - color: #3f51b5; -} -.textbox.outlined .input { - padding-top: 20px; - padding-bottom: 20px; -} -.textbox.outlined.floating .label { - margin-top: -15px; - background: white; -} -.textbox.textarea.outlined .input { - padding-top: 10px; -} - -.radio { - color: rgba(0, 0, 0, 0.87); - display: inline-flex; - position: relative; - align-items: center; - justify-content: center; - line-height: 24px; -} -.radio > input { - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - z-index: 9; - position: absolute; - left: -10px; - top: -8px; - display: block; - margin: 0; - border-radius: 50%; - width: 40px; - height: 40px; - background-color: rgba(0, 0, 0, 0.6); - outline: none; - opacity: 0; - transform: scale(1); - pointer-events: none; - transition: opacity 0.3s, transform 0.2s; -} -.radio > span { - display: inline-block; - width: 100%; - cursor: pointer; -} -.radio > span::before { - content: ""; - display: inline-block; - box-sizing: border-box; - margin: 2px 10px 2px 0; - border: solid 2px; /* Safari */ - border-color: rgba(0, 0, 0, 0.6); - border-radius: 50%; - width: 20px; - height: 20px; - vertical-align: top; - transition: border-color 0.2s; -} -.radio > span::after { - content: ""; - display: block; - position: absolute; - top: 2px; - left: 0; - border-radius: 50%; - width: 10px; - height: 10px; - background-color: #3f51b5; - transform: translate(5px, 5px) scale(0); - transition: transform 0.2s; -} -.radio > input:checked { - background-color: #3f51b5; -} -.radio > input:checked + span::before { - border-color: #3f51b5; -} -.radio > input:checked + span::after { - transform: translate(5px, 5px) scale(1); -} -.radio:hover > input { - opacity: 0.2; -} -.radio > input:focus { - opacity: 0.12; -} -.radio:hover > input:focus { - opacity: 0.16; -} -.radio > input:active { - opacity: 1; - transform: scale(0); - transition: transform 0s, opacity 0s; -} -.radio > input:active + span::before { - border-color: #3f51b5; -} -.radio > input:disabled { - opacity: 0; -} -.radio > input:disabled + span { - color: rgba(0, 0, 0, 0.38); - cursor: initial; -} -.radio > input:disabled + span::before { - border-color: currentColor; -} -.radio > input:disabled + span::after { - background-color: currentColor; -} - -.toggle { - z-index: 0; - position: relative; - display: inline-block; - /* Active */ - /* Disabled */ -} -.toggle > input { - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - z-index: -1; - position: absolute; - right: 6px; - top: -8px; - display: block; - margin: 0; - border-radius: 50%; - width: 40px; - height: 40px; - background-color: rgba(0, 0, 0, 0.38); - outline: none; - opacity: 0; - transform: scale(1); - pointer-events: none; - transition: opacity 0.3s 0.1s, transform 0.2s 0.1s; -} -.toggle > span { - display: inline-block; - width: 100%; - cursor: pointer; -} -.toggle > span::before { - content: ""; - float: right; - display: inline-block; - margin: 5px 0 5px 10px; - border-radius: 7px; - width: 36px; - height: 14px; - background-color: rgba(0, 0, 0, 0.38); - vertical-align: top; - transition: background-color 0.2s, opacity 0.2s; -} -.toggle > span::after { - content: ""; - position: absolute; - top: 2px; - right: 16px; - border-radius: 50%; - width: 20px; - height: 20px; - background-color: #fff; - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); - transition: background-color 0.2s, transform 0.2s; -} -.toggle > input:checked { - right: -10px; - background-color: #3f51b5; -} -.toggle > input:checked + span::before { - background-color: rgba(63, 81, 181, 0.6); -} -.toggle > input:checked + span::after { - background-color: #3f51b5; - transform: translateX(16px); -} -.toggle:hover > input { - opacity: 0.2; -} -.toggle > input:focus { - opacity: 0.2; -} -.toggle:hover > input:focus { - opacity: 0.4; -} -.toggle > input:active { - opacity: 1; - transform: scale(0); - transition: transform 0s, opacity 0s; -} -.toggle > input:active + span::before { - background-color: rgba(63, 81, 181, 0.6); -} -.toggle > input:checked:active + span::before { - background-color: rgba(0, 0, 0, 0.38); -} -.toggle > input:disabled { - opacity: 0; -} -.toggle > input:disabled + span { - color: rgb(0, 0, 0); - opacity: 0.38; - cursor: default; -} -.toggle > input:disabled + span::before { - background-color: rgba(0, 0, 0, 0.38); -} -.toggle > input:checked:disabled + span::before { - background-color: rgba(63, 81, 181, 0.6); -} - -.btn, -.ripple-e { - position: relative; - overflow: hidden; -} - -.ripple { - background-color: currentColor; - position: absolute; - border-radius: 50%; - pointer-events: none; - transition: all 0.8s ease; - filter: opacity(0.2); - animation: ripple 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); -} - -.icon .ripple, .center-ripple .ripple { - top: 50% !important; - left: 50% !important; - transform: scale(1) translate(-50%, -50%) !important; - animation: ripple_center 1s cubic-bezier(0.165, 0.84, 0.44, 1) forwards !important; -} - -@keyframes ripple_center { - 0% { - -webkit-transform: translate(-50%, -50%) scale(0); - transform: translate(-50%, -50%) scale(0); - } - 100% { - -webkit-transform: translate(-50%, -50%) scale(1); - transform: translate(-50%, -50%) scale(1); - } -} -@keyframes ripple { - from { - transform: scale(0); - } - to { - transform: scale(1); - } -} -.flatpickr-calendar { - opacity: 0; - pointer-events: none; - text-align: center; - visibility: hidden; - font-size: 14px; - line-height: 24px; - border-radius: 4px; - position: absolute; - width: 307.875px; - background: #fff; - transition: all 0.2s ease; - box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); -} - -.flatpickr-calendar.open, -.flatpickr-calendar.inline { - opacity: 1; - pointer-events: all; - max-height: 640px; - visibility: visible; -} - -.flatpickr-calendar.open { - display: inline-block; - z-index: 99999; -} - -.flatpickr-calendar.inline { - display: block; - position: relative; - top: 2px; -} - -.flatpickr-calendar.static { - position: absolute; - top: calc(100% + 2px); -} - -.flatpickr-calendar.static.open { - z-index: 999; - display: block; -} - -.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) { - box-shadow: none !important; -} - -.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) { - box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; -} - -.flatpickr-calendar .hasWeeks .dayContainer, -.flatpickr-calendar .hasTime .dayContainer { - border-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.flatpickr-calendar .hasWeeks .dayContainer { - border-left: 0; -} - -.flatpickr-calendar.hasTime .flatpickr-time { - height: 40px; - border-top: 1px solid #e6e6e6; -} - -.flatpickr-calendar.noCalendar.hasTime .flatpickr-time { - height: auto; -} - -.flatpickr-calendar:before, -.flatpickr-calendar:after { - position: absolute; - display: block; - pointer-events: none; - border: solid transparent; - content: ""; - height: 0; - width: 0; - left: 22px; -} - -.flatpickr-calendar.rightMost:before, -.flatpickr-calendar.arrowRight:before, -.flatpickr-calendar.rightMost:after, -.flatpickr-calendar.arrowRight:after { - left: auto; - right: 22px; -} - -.flatpickr-calendar.arrowCenter:before, -.flatpickr-calendar.arrowCenter:after { - left: 50%; - right: 50%; -} - -.flatpickr-calendar:before { - border-width: 5px; - margin: 0 -5px; -} - -.flatpickr-calendar:after { - border-width: 4px; - margin: 0 -4px; -} - -.flatpickr-calendar.arrowTop:before, -.flatpickr-calendar.arrowTop:after { - bottom: 100%; -} - -.flatpickr-calendar.arrowTop:before { - border-bottom-color: #e6e6e6; -} - -.flatpickr-calendar.arrowTop:after { - border-bottom-color: #fff; -} - -.flatpickr-calendar.arrowBottom:before, -.flatpickr-calendar.arrowBottom:after { - top: 100%; -} - -.flatpickr-calendar.arrowBottom:before { - border-top-color: #e6e6e6; -} - -.flatpickr-calendar.arrowBottom:after { - border-top-color: #fff; -} - -.flatpickr-calendar:focus { - outline: 0; -} - -.flatpickr-wrapper { - position: relative; - display: inline-block; -} - -.flatpickr-months { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} - -.flatpickr-months .flatpickr-month { - background: transparent; - color: rgba(0, 0, 0, 0.9); - fill: rgba(0, 0, 0, 0.9); - height: 34px; - line-height: 1; - text-align: center; - position: relative; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - overflow: hidden; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; -} - -.flatpickr-months .flatpickr-prev-month, -.flatpickr-months .flatpickr-next-month { - text-decoration: none; - cursor: pointer; - position: absolute; - top: 0; - height: 34px; - padding: 10px; - z-index: 3; - color: rgba(0, 0, 0, 0.9); - fill: rgba(0, 0, 0, 0.9); -} - -.flatpickr-months .flatpickr-prev-month.flatpickr-disabled, -.flatpickr-months .flatpickr-next-month.flatpickr-disabled { - display: none; -} - -.flatpickr-months .flatpickr-prev-month i, -.flatpickr-months .flatpickr-next-month i { - position: relative; -} - -.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, -.flatpickr-months .flatpickr-next-month.flatpickr-prev-month { - left: 0; -} - -.flatpickr-months .flatpickr-prev-month.flatpickr-next-month, -.flatpickr-months .flatpickr-next-month.flatpickr-next-month { - right: 0; -} - -.flatpickr-months .flatpickr-prev-month:hover, -.flatpickr-months .flatpickr-next-month:hover { - color: #959ea9; -} - -.flatpickr-months .flatpickr-prev-month:hover svg, -.flatpickr-months .flatpickr-next-month:hover svg { - fill: #3f51b5; -} - -.flatpickr-months .flatpickr-prev-month svg, -.flatpickr-months .flatpickr-next-month svg { - width: 14px; - height: 14px; -} - -.flatpickr-months .flatpickr-prev-month svg path, -.flatpickr-months .flatpickr-next-month svg path { - -webkit-transition: fill 0.1s; - transition: fill 0.1s; - fill: inherit; -} - -.numInputWrapper { - position: relative; - height: auto; -} - -.numInputWrapper input, -.numInputWrapper span { - display: inline-block; -} - -.numInputWrapper input { - width: 100%; -} - -.numInputWrapper input::-ms-clear { - display: none; -} - -.numInputWrapper input::-webkit-outer-spin-button, -.numInputWrapper input::-webkit-inner-spin-button { - margin: 0; - -webkit-appearance: none; -} - -.numInputWrapper span { - position: absolute; - right: 0; - width: 14px; - padding: 0 4px 0 2px; - height: 50%; - line-height: 50%; - opacity: 0; - cursor: pointer; - border: 1px solid rgba(57, 57, 57, 0.15); - box-sizing: border-box; -} - -.numInputWrapper span:hover { - background: rgba(0, 0, 0, 0.1); -} - -.numInputWrapper span:active { - background: rgba(0, 0, 0, 0.2); -} - -.numInputWrapper span:after { - display: block; - content: ""; - position: absolute; -} - -.numInputWrapper span.arrowUp { - top: 0; - border-bottom: 0; -} - -.numInputWrapper span.arrowUp:after { - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-bottom: 4px solid rgba(57, 57, 57, 0.6); - top: 26%; -} - -.numInputWrapper span.arrowDown { - top: 50%; -} - -.numInputWrapper span.arrowDown:after { - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid rgba(57, 57, 57, 0.6); - top: 40%; -} - -.numInputWrapper span svg { - width: inherit; - height: auto; -} - -.numInputWrapper span svg path { - fill: rgba(0, 0, 0, 0.5); -} - -.numInputWrapper:hover { - background: rgba(0, 0, 0, 0.05); -} - -.numInputWrapper:hover span { - opacity: 1; -} - -.flatpickr-current-month { - font-size: 135%; - line-height: inherit; - font-weight: 300; - color: inherit; - position: absolute; - width: 75%; - left: 12.5%; - padding: 7.48px 0 0; - height: 34px; - display: inline-block; - text-align: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} - -.flatpickr-current-month span.cur-month { - font-family: inherit; - font-weight: 700; - color: inherit; - display: inline-block; - margin-left: 0.5ch; - padding: 0; -} - -.flatpickr-current-month span.cur-month:hover { - background: rgba(0, 0, 0, 0.05); -} - -.flatpickr-current-month .numInputWrapper { - width: 6ch; - width: 7ch\0 ; - display: inline-block; -} - -.flatpickr-current-month .numInputWrapper span.arrowUp:after { - border-bottom-color: rgba(0, 0, 0, 0.9); -} - -.flatpickr-current-month .numInputWrapper span.arrowDown:after { - border-top-color: rgba(0, 0, 0, 0.9); -} - -.flatpickr-current-month input.cur-year { - background: transparent; - -webkit-box-sizing: border-box; - box-sizing: border-box; - color: inherit; - cursor: text; - padding: 0 0 0 0.5ch; - margin: 0; - display: inline-block; - font-size: inherit; - font-family: inherit; - font-weight: 300; - line-height: inherit; - height: auto; - border: 0; - border-radius: 0; - vertical-align: initial; - -webkit-appearance: textfield; - -moz-appearance: textfield; - appearance: textfield; -} - -.flatpickr-current-month input.cur-year:focus { - outline: 0; -} - -.flatpickr-current-month input.cur-year[disabled], -.flatpickr-current-month input.cur-year[disabled]:hover { - font-size: 100%; - color: rgba(0, 0, 0, 0.5); - background: transparent; - pointer-events: none; -} - -.flatpickr-current-month .flatpickr-monthDropdown-months { - appearance: menulist; - background: transparent; - border: none; - border-radius: 0; - box-sizing: border-box; - color: inherit; - cursor: pointer; - font-size: inherit; - font-family: inherit; - font-weight: 300; - height: auto; - line-height: inherit; - margin: -1px 0 0; - outline: none; - padding: 0 0 0 0.5ch; - position: relative; - vertical-align: initial; - -webkit-box-sizing: border-box; - -webkit-appearance: menulist; - -moz-appearance: menulist; - width: auto; -} - -.flatpickr-current-month .flatpickr-monthDropdown-months:focus, -.flatpickr-current-month .flatpickr-monthDropdown-months:active { - outline: none; -} - -.flatpickr-current-month .flatpickr-monthDropdown-months:hover { - background: rgba(0, 0, 0, 0.05); -} - -.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month { - background-color: transparent; - outline: none; - padding: 0; -} - -.flatpickr-weekdays { - background: transparent; - text-align: center; - overflow: hidden; - width: 100%; - margin-top: 4px; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - height: 28px; -} - -.flatpickr-weekdays .flatpickr-weekdaycontainer { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; -} - -span.flatpickr-weekday { - cursor: default; - font-size: 90%; - background: transparent; - color: rgba(0, 0, 0, 0.54); - line-height: 1; - margin: 0; - text-align: center; - display: block; - flex: 1; - font-weight: bolder; -} - -.dayContainer, -.flatpickr-weeks { - padding: 1px 0 0; -} - -.flatpickr-days { - position: relative; - overflow: hidden; - display: flex; - align-items: flex-start; - width: 307.875px; -} - -.flatpickr-days:focus { - outline: 0; -} - -.dayContainer { - padding: 0; - outline: 0; - text-align: left; - width: 307.875px; - min-width: 307.875px; - max-width: 307.875px; - display: flex; - flex-wrap: wrap; - justify-content: space-around; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; -} - -.dayContainer + .dayContainer { - -webkit-box-shadow: -1px 0 0 #e6e6e6; - box-shadow: -1px 0 0 #e6e6e6; -} - -.flatpickr-day { - background: none; - border: 1px solid transparent; - border-radius: 150px; - box-sizing: border-box; - color: #424242; - cursor: pointer; - font-weight: 400; - width: 14.2857143%; - flex-basis: 14.2857143%; - max-width: 39px; - height: 39px; - line-height: 39px; - margin: 0; - display: inline-block; - position: relative; - justify-content: center; - text-align: center; -} - -.flatpickr-day.inRange, -.flatpickr-day.prevMonthDay.inRange, -.flatpickr-day.nextMonthDay.inRange, -.flatpickr-day.today.inRange, -.flatpickr-day.prevMonthDay.today.inRange, -.flatpickr-day.nextMonthDay.today.inRange, -.flatpickr-day:hover, -.flatpickr-day.prevMonthDay:hover, -.flatpickr-day.nextMonthDay:hover, -.flatpickr-day:focus, -.flatpickr-day.prevMonthDay:focus, -.flatpickr-day.nextMonthDay:focus { - outline: 0; - background: #eeeeee; -} - -.flatpickr-day.today { - border-color: #959ea9; -} - -.flatpickr-day.today:hover, -.flatpickr-day.today:focus { - border-color: #959ea9; - background: #959ea9; - color: #fff; -} - -.flatpickr-day.selected, -.flatpickr-day.startRange, -.flatpickr-day.endRange, -.flatpickr-day.selected.inRange, -.flatpickr-day.startRange.inRange, -.flatpickr-day.endRange.inRange, -.flatpickr-day.selected:focus, -.flatpickr-day.startRange:focus, -.flatpickr-day.endRange:focus, -.flatpickr-day.selected:hover, -.flatpickr-day.startRange:hover, -.flatpickr-day.endRange:hover, -.flatpickr-day.selected.prevMonthDay, -.flatpickr-day.startRange.prevMonthDay, -.flatpickr-day.endRange.prevMonthDay, -.flatpickr-day.selected.nextMonthDay, -.flatpickr-day.startRange.nextMonthDay, -.flatpickr-day.endRange.nextMonthDay { - background: #3f51b5; - box-shadow: none; - color: #fff; - border-color: #3f51b5; -} - -.flatpickr-day.selected.startRange, -.flatpickr-day.startRange.startRange, -.flatpickr-day.endRange.startRange { - border-radius: 50px 0 0 50px; -} - -.flatpickr-day.selected.endRange, -.flatpickr-day.startRange.endRange, -.flatpickr-day.endRange.endRange { - border-radius: 0 50px 50px 0; -} - -.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), -.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), -.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) { - box-shadow: -10px 0 0 #3f51b5; -} - -.flatpickr-day.selected.startRange.endRange, -.flatpickr-day.startRange.startRange.endRange, -.flatpickr-day.endRange.startRange.endRange { - border-radius: 50px; -} - -.flatpickr-day.inRange { - border-radius: 0; - box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; -} - -.flatpickr-day.flatpickr-disabled, -.flatpickr-day.flatpickr-disabled:hover, -.flatpickr-day.prevMonthDay, -.flatpickr-day.nextMonthDay, -.flatpickr-day.notAllowed, -.flatpickr-day.notAllowed.prevMonthDay, -.flatpickr-day.notAllowed.nextMonthDay { - color: rgba(57, 57, 57, 0.3); - background: transparent; - border-color: transparent; - cursor: default; -} - -.flatpickr-day.flatpickr-disabled, -.flatpickr-day.flatpickr-disabled:hover { - cursor: not-allowed; - color: rgba(57, 57, 57, 0.1); -} - -.flatpickr-day.week.selected { - box-shadow: -5px 0 0 #3f51b5, 5px 0 0 #3f51b5; -} - -.flatpickr-day.hidden { - visibility: hidden; -} - -.rangeMode .flatpickr-day { - margin-top: 1px; -} - -.flatpickr-weekwrapper { - float: left; -} - -.flatpickr-weekwrapper .flatpickr-weeks { - padding: 0 12px; - box-shadow: 1px 0 0 #e6e6e6; -} - -.flatpickr-weekwrapper .flatpickr-weekday { - float: none; - width: 100%; - line-height: 28px; -} - -.flatpickr-weekwrapper span.flatpickr-day, -.flatpickr-weekwrapper span.flatpickr-day:hover { - display: block; - width: 100%; - max-width: none; - color: rgba(57, 57, 57, 0.3); - background: transparent; - cursor: default; - border: none; -} - -.flatpickr-innerContainer { - display: flex; - overflow: hidden; -} - -.flatpickr-rContainer { - display: inline-block; - padding: 0; -} - -.flatpickr-time { - text-align: center; - outline: 0; - height: 0; - line-height: 40px; - max-height: 40px; - overflow: hidden; - display: flex; -} - -.flatpickr-time:after { - content: ""; - display: table; - clear: both; -} - -.flatpickr-time .numInputWrapper { - flex: 1; - width: 40%; - height: 40px; - float: left; -} - -.flatpickr-time .numInputWrapper span.arrowUp:after { - border-bottom-color: #393939; -} - -.flatpickr-time .numInputWrapper span.arrowDown:after { - border-top-color: #393939; -} - -.flatpickr-time.hasSeconds .numInputWrapper { - width: 26%; -} - -.flatpickr-time.time24hr .numInputWrapper { - width: 49%; -} - -.flatpickr-time input { - background: transparent; - box-shadow: none; - border: 0; - border-radius: 0; - text-align: center; - margin: 0; - padding: 0; - height: inherit; - line-height: inherit; - color: #393939; - font-size: 14px; - position: relative; - appearance: textfield; -} - -.flatpickr-time input.flatpickr-hour { - font-weight: bold; -} - -.flatpickr-time input.flatpickr-minute, -.flatpickr-time input.flatpickr-second { - font-weight: 400; -} - -.flatpickr-time input:focus { - outline: 0; - border: 0; -} - -.flatpickr-time .flatpickr-time-separator, -.flatpickr-time .flatpickr-am-pm { - height: inherit; - float: left; - line-height: inherit; - color: #393939; - font-weight: bold; - width: 2%; - user-select: none; - align-self: center; -} - -.flatpickr-time .flatpickr-am-pm { - outline: 0; - width: 18%; - cursor: pointer; - text-align: center; - font-weight: 400; -} - -.flatpickr-time input:hover, -.flatpickr-time .flatpickr-am-pm:hover, -.flatpickr-time input:focus, -.flatpickr-time .flatpickr-am-pm:focus { - background: #eee; -} - -.flatpickr-input[readonly] { - cursor: pointer; -} \ No newline at end of file diff --git a/dist/material.js b/dist/material.js deleted file mode 100644 index 54666990..00000000 --- a/dist/material.js +++ /dev/null @@ -1,7148 +0,0 @@ -(() => { - // src/js/exportGlobal.js - function exportGlobal(name, value) { - if (typeof window["Material"] === "undefined") { - window["Material"] = {}; - } - if (typeof window !== "undefined") { - window["Material"][name] = value; - } else { - throw new Error(`Material - Cannot export global variable.`); - } - } - - // src/js/components/ripple.js - var Ripple = { - init: () => { - const buttons = document.querySelectorAll(".ripple-e:not(.ripple-ready) , .btn:not(.ripple-ready), .icon:not(.ripple-ready)"); - const stopEvents = ["pointerup", "mouseleave", "dragleave", "touchmove", "touchend", "touchcancel"]; - let id; - function findFurthestPoint(clickPointX, elementWidth, offsetX, clickPointY, elementHeight, offsetY) { - let x = clickPointX - offsetX > elementWidth / 2 ? 0 : elementWidth; - let y = clickPointY - offsetY > elementHeight / 2 ? 0 : elementHeight; - let d = Math.hypot(x - (clickPointX - offsetX), y - (clickPointY - offsetY)); - return d; - } - buttons.forEach((button) => { - button.classList.add("ripple-ready"); - button.addEventListener("pointerdown", (e) => { - const rect = button.getBoundingClientRect(); - const radius = findFurthestPoint(e.clientX, button.offsetWidth, rect.left, e.clientY, button.offsetHeight, rect.top); - id = "__" + (Math.random() + 1).toString(36).substring(7) + "-" + (Math.random() + 1).toString(36).substring(7); - const circle = document.createElement("div"); - circle.classList.add("ripple"); - circle.id = id; - circle.style.left = `${e.clientX - rect.left - radius}px`; - circle.style.top = `${e.clientY - rect.top - radius}px`; - circle.style.width = circle.style.height = `${radius * 2}px`; - button.appendChild(circle); - }); - stopEvents.forEach((event) => { - button.addEventListener(event, () => { - const ripple = button.querySelector(".ripple#" + id); - if (ripple) { - ripple.style.opacity = "0"; - setTimeout(() => { - ripple.remove(); - }, 600); - } - }); - }); - }); - } - }; - Ripple.init(); - var ripple_default = Ripple; - - // node_modules/nouislider/dist/nouislider.mjs - var PipsMode; - (function(PipsMode2) { - PipsMode2["Range"] = "range"; - PipsMode2["Steps"] = "steps"; - PipsMode2["Positions"] = "positions"; - PipsMode2["Count"] = "count"; - PipsMode2["Values"] = "values"; - })(PipsMode || (PipsMode = {})); - var PipsType; - (function(PipsType2) { - PipsType2[PipsType2["None"] = -1] = "None"; - PipsType2[PipsType2["NoValue"] = 0] = "NoValue"; - PipsType2[PipsType2["LargeValue"] = 1] = "LargeValue"; - PipsType2[PipsType2["SmallValue"] = 2] = "SmallValue"; - })(PipsType || (PipsType = {})); - function isValidFormatter(entry) { - return isValidPartialFormatter(entry) && typeof entry.from === "function"; - } - function isValidPartialFormatter(entry) { - return typeof entry === "object" && typeof entry.to === "function"; - } - function removeElement(el) { - el.parentElement.removeChild(el); - } - function isSet(value) { - return value !== null && value !== void 0; - } - function preventDefault(e) { - e.preventDefault(); - } - function unique(array) { - return array.filter(function(a) { - return !this[a] ? this[a] = true : false; - }, {}); - } - function closest(value, to) { - return Math.round(value / to) * to; - } - function offset(elem, orientation) { - var rect = elem.getBoundingClientRect(); - var doc = elem.ownerDocument; - var docElem = doc.documentElement; - var pageOffset = getPageOffset(doc); - if (/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)) { - pageOffset.x = 0; - } - return orientation ? rect.top + pageOffset.y - docElem.clientTop : rect.left + pageOffset.x - docElem.clientLeft; - } - function isNumeric(a) { - return typeof a === "number" && !isNaN(a) && isFinite(a); - } - function addClassFor(element2, className, duration2) { - if (duration2 > 0) { - addClass(element2, className); - setTimeout(function() { - removeClass(element2, className); - }, duration2); - } - } - function limit(a) { - return Math.max(Math.min(a, 100), 0); - } - function asArray(a) { - return Array.isArray(a) ? a : [a]; - } - function countDecimals(numStr) { - numStr = String(numStr); - var pieces = numStr.split("."); - return pieces.length > 1 ? pieces[1].length : 0; - } - function addClass(el, className) { - if (el.classList && !/\s/.test(className)) { - el.classList.add(className); - } else { - el.className += " " + className; - } - } - function removeClass(el, className) { - if (el.classList && !/\s/.test(className)) { - el.classList.remove(className); - } else { - el.className = el.className.replace(new RegExp("(^|\\b)" + className.split(" ").join("|") + "(\\b|$)", "gi"), " "); - } - } - function hasClass(el, className) { - return el.classList ? el.classList.contains(className) : new RegExp("\\b" + className + "\\b").test(el.className); - } - function getPageOffset(doc) { - var supportPageOffset = window.pageXOffset !== void 0; - var isCSS1Compat = (doc.compatMode || "") === "CSS1Compat"; - var x = supportPageOffset ? window.pageXOffset : isCSS1Compat ? doc.documentElement.scrollLeft : doc.body.scrollLeft; - var y = supportPageOffset ? window.pageYOffset : isCSS1Compat ? doc.documentElement.scrollTop : doc.body.scrollTop; - return { - x, - y - }; - } - function getActions() { - return window.navigator.pointerEnabled ? { - start: "pointerdown", - move: "pointermove", - end: "pointerup" - } : window.navigator.msPointerEnabled ? { - start: "MSPointerDown", - move: "MSPointerMove", - end: "MSPointerUp" - } : { - start: "mousedown touchstart", - move: "mousemove touchmove", - end: "mouseup touchend" - }; - } - function getSupportsPassive() { - var supportsPassive = false; - try { - var opts = Object.defineProperty({}, "passive", { - get: function() { - supportsPassive = true; - } - }); - window.addEventListener("test", null, opts); - } catch (e) { - } - return supportsPassive; - } - function getSupportsTouchActionNone() { - return window.CSS && CSS.supports && CSS.supports("touch-action", "none"); - } - function subRangeRatio(pa, pb) { - return 100 / (pb - pa); - } - function fromPercentage(range, value, startRange) { - return value * 100 / (range[startRange + 1] - range[startRange]); - } - function toPercentage(range, value) { - return fromPercentage(range, range[0] < 0 ? value + Math.abs(range[0]) : value - range[0], 0); - } - function isPercentage(range, value) { - return value * (range[1] - range[0]) / 100 + range[0]; - } - function getJ(value, arr) { - var j = 1; - while (value >= arr[j]) { - j += 1; - } - return j; - } - function toStepping(xVal, xPct, value) { - if (value >= xVal.slice(-1)[0]) { - return 100; - } - var j = getJ(value, xVal); - var va = xVal[j - 1]; - var vb = xVal[j]; - var pa = xPct[j - 1]; - var pb = xPct[j]; - return pa + toPercentage([va, vb], value) / subRangeRatio(pa, pb); - } - function fromStepping(xVal, xPct, value) { - if (value >= 100) { - return xVal.slice(-1)[0]; - } - var j = getJ(value, xPct); - var va = xVal[j - 1]; - var vb = xVal[j]; - var pa = xPct[j - 1]; - var pb = xPct[j]; - return isPercentage([va, vb], (value - pa) * subRangeRatio(pa, pb)); - } - function getStep(xPct, xSteps, snap, value) { - if (value === 100) { - return value; - } - var j = getJ(value, xPct); - var a = xPct[j - 1]; - var b = xPct[j]; - if (snap) { - if (value - a > (b - a) / 2) { - return b; - } - return a; - } - if (!xSteps[j - 1]) { - return value; - } - return xPct[j - 1] + closest(value - xPct[j - 1], xSteps[j - 1]); - } - var Spectrum = ( - /** @class */ - function() { - function Spectrum2(entry, snap, singleStep) { - this.xPct = []; - this.xVal = []; - this.xSteps = []; - this.xNumSteps = []; - this.xHighestCompleteStep = []; - this.xSteps = [singleStep || false]; - this.xNumSteps = [false]; - this.snap = snap; - var index; - var ordered = []; - Object.keys(entry).forEach(function(index2) { - ordered.push([asArray(entry[index2]), index2]); - }); - ordered.sort(function(a, b) { - return a[0][0] - b[0][0]; - }); - for (index = 0; index < ordered.length; index++) { - this.handleEntryPoint(ordered[index][1], ordered[index][0]); - } - this.xNumSteps = this.xSteps.slice(0); - for (index = 0; index < this.xNumSteps.length; index++) { - this.handleStepPoint(index, this.xNumSteps[index]); - } - } - Spectrum2.prototype.getDistance = function(value) { - var distances = []; - for (var index = 0; index < this.xNumSteps.length - 1; index++) { - distances[index] = fromPercentage(this.xVal, value, index); - } - return distances; - }; - Spectrum2.prototype.getAbsoluteDistance = function(value, distances, direction) { - var xPct_index = 0; - if (value < this.xPct[this.xPct.length - 1]) { - while (value > this.xPct[xPct_index + 1]) { - xPct_index++; - } - } else if (value === this.xPct[this.xPct.length - 1]) { - xPct_index = this.xPct.length - 2; - } - if (!direction && value === this.xPct[xPct_index + 1]) { - xPct_index++; - } - if (distances === null) { - distances = []; - } - var start_factor; - var rest_factor = 1; - var rest_rel_distance = distances[xPct_index]; - var range_pct = 0; - var rel_range_distance = 0; - var abs_distance_counter = 0; - var range_counter = 0; - if (direction) { - start_factor = (value - this.xPct[xPct_index]) / (this.xPct[xPct_index + 1] - this.xPct[xPct_index]); - } else { - start_factor = (this.xPct[xPct_index + 1] - value) / (this.xPct[xPct_index + 1] - this.xPct[xPct_index]); - } - while (rest_rel_distance > 0) { - range_pct = this.xPct[xPct_index + 1 + range_counter] - this.xPct[xPct_index + range_counter]; - if (distances[xPct_index + range_counter] * rest_factor + 100 - start_factor * 100 > 100) { - rel_range_distance = range_pct * start_factor; - rest_factor = (rest_rel_distance - 100 * start_factor) / distances[xPct_index + range_counter]; - start_factor = 1; - } else { - rel_range_distance = distances[xPct_index + range_counter] * range_pct / 100 * rest_factor; - rest_factor = 0; - } - if (direction) { - abs_distance_counter = abs_distance_counter - rel_range_distance; - if (this.xPct.length + range_counter >= 1) { - range_counter--; - } - } else { - abs_distance_counter = abs_distance_counter + rel_range_distance; - if (this.xPct.length - range_counter >= 1) { - range_counter++; - } - } - rest_rel_distance = distances[xPct_index + range_counter] * rest_factor; - } - return value + abs_distance_counter; - }; - Spectrum2.prototype.toStepping = function(value) { - value = toStepping(this.xVal, this.xPct, value); - return value; - }; - Spectrum2.prototype.fromStepping = function(value) { - return fromStepping(this.xVal, this.xPct, value); - }; - Spectrum2.prototype.getStep = function(value) { - value = getStep(this.xPct, this.xSteps, this.snap, value); - return value; - }; - Spectrum2.prototype.getDefaultStep = function(value, isDown, size) { - var j = getJ(value, this.xPct); - if (value === 100 || isDown && value === this.xPct[j - 1]) { - j = Math.max(j - 1, 1); - } - return (this.xVal[j] - this.xVal[j - 1]) / size; - }; - Spectrum2.prototype.getNearbySteps = function(value) { - var j = getJ(value, this.xPct); - return { - stepBefore: { - startValue: this.xVal[j - 2], - step: this.xNumSteps[j - 2], - highestStep: this.xHighestCompleteStep[j - 2] - }, - thisStep: { - startValue: this.xVal[j - 1], - step: this.xNumSteps[j - 1], - highestStep: this.xHighestCompleteStep[j - 1] - }, - stepAfter: { - startValue: this.xVal[j], - step: this.xNumSteps[j], - highestStep: this.xHighestCompleteStep[j] - } - }; - }; - Spectrum2.prototype.countStepDecimals = function() { - var stepDecimals = this.xNumSteps.map(countDecimals); - return Math.max.apply(null, stepDecimals); - }; - Spectrum2.prototype.hasNoSize = function() { - return this.xVal[0] === this.xVal[this.xVal.length - 1]; - }; - Spectrum2.prototype.convert = function(value) { - return this.getStep(this.toStepping(value)); - }; - Spectrum2.prototype.handleEntryPoint = function(index, value) { - var percentage; - if (index === "min") { - percentage = 0; - } else if (index === "max") { - percentage = 100; - } else { - percentage = parseFloat(index); - } - if (!isNumeric(percentage) || !isNumeric(value[0])) { - throw new Error("noUiSlider: 'range' value isn't numeric."); - } - this.xPct.push(percentage); - this.xVal.push(value[0]); - var value1 = Number(value[1]); - if (!percentage) { - if (!isNaN(value1)) { - this.xSteps[0] = value1; - } - } else { - this.xSteps.push(isNaN(value1) ? false : value1); - } - this.xHighestCompleteStep.push(0); - }; - Spectrum2.prototype.handleStepPoint = function(i, n) { - if (!n) { - return; - } - if (this.xVal[i] === this.xVal[i + 1]) { - this.xSteps[i] = this.xHighestCompleteStep[i] = this.xVal[i]; - return; - } - this.xSteps[i] = fromPercentage([this.xVal[i], this.xVal[i + 1]], n, 0) / subRangeRatio(this.xPct[i], this.xPct[i + 1]); - var totalSteps = (this.xVal[i + 1] - this.xVal[i]) / this.xNumSteps[i]; - var highestStep = Math.ceil(Number(totalSteps.toFixed(3)) - 1); - var step = this.xVal[i] + this.xNumSteps[i] * highestStep; - this.xHighestCompleteStep[i] = step; - }; - return Spectrum2; - }() - ); - var defaultFormatter = { - to: function(value) { - return value === void 0 ? "" : value.toFixed(2); - }, - from: Number - }; - var cssClasses = { - target: "target", - base: "base", - origin: "origin", - handle: "handle", - handleLower: "handle-lower", - handleUpper: "handle-upper", - touchArea: "touch-area", - horizontal: "horizontal", - vertical: "vertical", - background: "background", - connect: "connect", - connects: "connects", - ltr: "ltr", - rtl: "rtl", - textDirectionLtr: "txt-dir-ltr", - textDirectionRtl: "txt-dir-rtl", - draggable: "draggable", - drag: "state-drag", - tap: "state-tap", - active: "active", - tooltip: "tooltip", - pips: "pips", - pipsHorizontal: "pips-horizontal", - pipsVertical: "pips-vertical", - marker: "marker", - markerHorizontal: "marker-horizontal", - markerVertical: "marker-vertical", - markerNormal: "marker-normal", - markerLarge: "marker-large", - markerSub: "marker-sub", - value: "value", - valueHorizontal: "value-horizontal", - valueVertical: "value-vertical", - valueNormal: "value-normal", - valueLarge: "value-large", - valueSub: "value-sub" - }; - var INTERNAL_EVENT_NS = { - tooltips: ".__tooltips", - aria: ".__aria" - }; - function testStep(parsed, entry) { - if (!isNumeric(entry)) { - throw new Error("noUiSlider: 'step' is not numeric."); - } - parsed.singleStep = entry; - } - function testKeyboardPageMultiplier(parsed, entry) { - if (!isNumeric(entry)) { - throw new Error("noUiSlider: 'keyboardPageMultiplier' is not numeric."); - } - parsed.keyboardPageMultiplier = entry; - } - function testKeyboardMultiplier(parsed, entry) { - if (!isNumeric(entry)) { - throw new Error("noUiSlider: 'keyboardMultiplier' is not numeric."); - } - parsed.keyboardMultiplier = entry; - } - function testKeyboardDefaultStep(parsed, entry) { - if (!isNumeric(entry)) { - throw new Error("noUiSlider: 'keyboardDefaultStep' is not numeric."); - } - parsed.keyboardDefaultStep = entry; - } - function testRange(parsed, entry) { - if (typeof entry !== "object" || Array.isArray(entry)) { - throw new Error("noUiSlider: 'range' is not an object."); - } - if (entry.min === void 0 || entry.max === void 0) { - throw new Error("noUiSlider: Missing 'min' or 'max' in 'range'."); - } - parsed.spectrum = new Spectrum(entry, parsed.snap || false, parsed.singleStep); - } - function testStart(parsed, entry) { - entry = asArray(entry); - if (!Array.isArray(entry) || !entry.length) { - throw new Error("noUiSlider: 'start' option is incorrect."); - } - parsed.handles = entry.length; - parsed.start = entry; - } - function testSnap(parsed, entry) { - if (typeof entry !== "boolean") { - throw new Error("noUiSlider: 'snap' option must be a boolean."); - } - parsed.snap = entry; - } - function testAnimate(parsed, entry) { - if (typeof entry !== "boolean") { - throw new Error("noUiSlider: 'animate' option must be a boolean."); - } - parsed.animate = entry; - } - function testAnimationDuration(parsed, entry) { - if (typeof entry !== "number") { - throw new Error("noUiSlider: 'animationDuration' option must be a number."); - } - parsed.animationDuration = entry; - } - function testConnect(parsed, entry) { - var connect = [false]; - var i; - if (entry === "lower") { - entry = [true, false]; - } else if (entry === "upper") { - entry = [false, true]; - } - if (entry === true || entry === false) { - for (i = 1; i < parsed.handles; i++) { - connect.push(entry); - } - connect.push(false); - } else if (!Array.isArray(entry) || !entry.length || entry.length !== parsed.handles + 1) { - throw new Error("noUiSlider: 'connect' option doesn't match handle count."); - } else { - connect = entry; - } - parsed.connect = connect; - } - function testOrientation(parsed, entry) { - switch (entry) { - case "horizontal": - parsed.ort = 0; - break; - case "vertical": - parsed.ort = 1; - break; - default: - throw new Error("noUiSlider: 'orientation' option is invalid."); - } - } - function testMargin(parsed, entry) { - if (!isNumeric(entry)) { - throw new Error("noUiSlider: 'margin' option must be numeric."); - } - if (entry === 0) { - return; - } - parsed.margin = parsed.spectrum.getDistance(entry); - } - function testLimit(parsed, entry) { - if (!isNumeric(entry)) { - throw new Error("noUiSlider: 'limit' option must be numeric."); - } - parsed.limit = parsed.spectrum.getDistance(entry); - if (!parsed.limit || parsed.handles < 2) { - throw new Error("noUiSlider: 'limit' option is only supported on linear sliders with 2 or more handles."); - } - } - function testPadding(parsed, entry) { - var index; - if (!isNumeric(entry) && !Array.isArray(entry)) { - throw new Error("noUiSlider: 'padding' option must be numeric or array of exactly 2 numbers."); - } - if (Array.isArray(entry) && !(entry.length === 2 || isNumeric(entry[0]) || isNumeric(entry[1]))) { - throw new Error("noUiSlider: 'padding' option must be numeric or array of exactly 2 numbers."); - } - if (entry === 0) { - return; - } - if (!Array.isArray(entry)) { - entry = [entry, entry]; - } - parsed.padding = [parsed.spectrum.getDistance(entry[0]), parsed.spectrum.getDistance(entry[1])]; - for (index = 0; index < parsed.spectrum.xNumSteps.length - 1; index++) { - if (parsed.padding[0][index] < 0 || parsed.padding[1][index] < 0) { - throw new Error("noUiSlider: 'padding' option must be a positive number(s)."); - } - } - var totalPadding = entry[0] + entry[1]; - var firstValue = parsed.spectrum.xVal[0]; - var lastValue = parsed.spectrum.xVal[parsed.spectrum.xVal.length - 1]; - if (totalPadding / (lastValue - firstValue) > 1) { - throw new Error("noUiSlider: 'padding' option must not exceed 100% of the range."); - } - } - function testDirection(parsed, entry) { - switch (entry) { - case "ltr": - parsed.dir = 0; - break; - case "rtl": - parsed.dir = 1; - break; - default: - throw new Error("noUiSlider: 'direction' option was not recognized."); - } - } - function testBehaviour(parsed, entry) { - if (typeof entry !== "string") { - throw new Error("noUiSlider: 'behaviour' must be a string containing options."); - } - var tap = entry.indexOf("tap") >= 0; - var drag = entry.indexOf("drag") >= 0; - var fixed = entry.indexOf("fixed") >= 0; - var snap = entry.indexOf("snap") >= 0; - var hover = entry.indexOf("hover") >= 0; - var unconstrained = entry.indexOf("unconstrained") >= 0; - var dragAll = entry.indexOf("drag-all") >= 0; - var smoothSteps = entry.indexOf("smooth-steps") >= 0; - if (fixed) { - if (parsed.handles !== 2) { - throw new Error("noUiSlider: 'fixed' behaviour must be used with 2 handles"); - } - testMargin(parsed, parsed.start[1] - parsed.start[0]); - } - if (unconstrained && (parsed.margin || parsed.limit)) { - throw new Error("noUiSlider: 'unconstrained' behaviour cannot be used with margin or limit"); - } - parsed.events = { - tap: tap || snap, - drag, - dragAll, - smoothSteps, - fixed, - snap, - hover, - unconstrained - }; - } - function testTooltips(parsed, entry) { - if (entry === false) { - return; - } - if (entry === true || isValidPartialFormatter(entry)) { - parsed.tooltips = []; - for (var i = 0; i < parsed.handles; i++) { - parsed.tooltips.push(entry); - } - } else { - entry = asArray(entry); - if (entry.length !== parsed.handles) { - throw new Error("noUiSlider: must pass a formatter for all handles."); - } - entry.forEach(function(formatter) { - if (typeof formatter !== "boolean" && !isValidPartialFormatter(formatter)) { - throw new Error("noUiSlider: 'tooltips' must be passed a formatter or 'false'."); - } - }); - parsed.tooltips = entry; - } - } - function testHandleAttributes(parsed, entry) { - if (entry.length !== parsed.handles) { - throw new Error("noUiSlider: must pass a attributes for all handles."); - } - parsed.handleAttributes = entry; - } - function testAriaFormat(parsed, entry) { - if (!isValidPartialFormatter(entry)) { - throw new Error("noUiSlider: 'ariaFormat' requires 'to' method."); - } - parsed.ariaFormat = entry; - } - function testFormat(parsed, entry) { - if (!isValidFormatter(entry)) { - throw new Error("noUiSlider: 'format' requires 'to' and 'from' methods."); - } - parsed.format = entry; - } - function testKeyboardSupport(parsed, entry) { - if (typeof entry !== "boolean") { - throw new Error("noUiSlider: 'keyboardSupport' option must be a boolean."); - } - parsed.keyboardSupport = entry; - } - function testDocumentElement(parsed, entry) { - parsed.documentElement = entry; - } - function testCssPrefix(parsed, entry) { - if (typeof entry !== "string" && entry !== false) { - throw new Error("noUiSlider: 'cssPrefix' must be a string or `false`."); - } - parsed.cssPrefix = entry; - } - function testCssClasses(parsed, entry) { - if (typeof entry !== "object") { - throw new Error("noUiSlider: 'cssClasses' must be an object."); - } - if (typeof parsed.cssPrefix === "string") { - parsed.cssClasses = {}; - Object.keys(entry).forEach(function(key) { - parsed.cssClasses[key] = parsed.cssPrefix + entry[key]; - }); - } else { - parsed.cssClasses = entry; - } - } - function testOptions(options) { - var parsed = { - margin: null, - limit: null, - padding: null, - animate: true, - animationDuration: 300, - ariaFormat: defaultFormatter, - format: defaultFormatter - }; - var tests = { - step: { r: false, t: testStep }, - keyboardPageMultiplier: { r: false, t: testKeyboardPageMultiplier }, - keyboardMultiplier: { r: false, t: testKeyboardMultiplier }, - keyboardDefaultStep: { r: false, t: testKeyboardDefaultStep }, - start: { r: true, t: testStart }, - connect: { r: true, t: testConnect }, - direction: { r: true, t: testDirection }, - snap: { r: false, t: testSnap }, - animate: { r: false, t: testAnimate }, - animationDuration: { r: false, t: testAnimationDuration }, - range: { r: true, t: testRange }, - orientation: { r: false, t: testOrientation }, - margin: { r: false, t: testMargin }, - limit: { r: false, t: testLimit }, - padding: { r: false, t: testPadding }, - behaviour: { r: true, t: testBehaviour }, - ariaFormat: { r: false, t: testAriaFormat }, - format: { r: false, t: testFormat }, - tooltips: { r: false, t: testTooltips }, - keyboardSupport: { r: true, t: testKeyboardSupport }, - documentElement: { r: false, t: testDocumentElement }, - cssPrefix: { r: true, t: testCssPrefix }, - cssClasses: { r: true, t: testCssClasses }, - handleAttributes: { r: false, t: testHandleAttributes } - }; - var defaults2 = { - connect: false, - direction: "ltr", - behaviour: "tap", - orientation: "horizontal", - keyboardSupport: true, - cssPrefix: "noUi-", - cssClasses, - keyboardPageMultiplier: 5, - keyboardMultiplier: 1, - keyboardDefaultStep: 10 - }; - if (options.format && !options.ariaFormat) { - options.ariaFormat = options.format; - } - Object.keys(tests).forEach(function(name) { - if (!isSet(options[name]) && defaults2[name] === void 0) { - if (tests[name].r) { - throw new Error("noUiSlider: '" + name + "' is required."); - } - return; - } - tests[name].t(parsed, !isSet(options[name]) ? defaults2[name] : options[name]); - }); - parsed.pips = options.pips; - var d = document.createElement("div"); - var msPrefix = d.style.msTransform !== void 0; - var noPrefix = d.style.transform !== void 0; - parsed.transformRule = noPrefix ? "transform" : msPrefix ? "msTransform" : "webkitTransform"; - var styles = [ - ["left", "top"], - ["right", "bottom"] - ]; - parsed.style = styles[parsed.dir][parsed.ort]; - return parsed; - } - function scope(target, options, originalOptions) { - var actions = getActions(); - var supportsTouchActionNone = getSupportsTouchActionNone(); - var supportsPassive = supportsTouchActionNone && getSupportsPassive(); - var scope_Target = target; - var scope_Base; - var scope_Handles; - var scope_Connects; - var scope_Pips; - var scope_Tooltips; - var scope_Spectrum = options.spectrum; - var scope_Values = []; - var scope_Locations = []; - var scope_HandleNumbers = []; - var scope_ActiveHandlesCount = 0; - var scope_Events = {}; - var scope_Document = target.ownerDocument; - var scope_DocumentElement = options.documentElement || scope_Document.documentElement; - var scope_Body = scope_Document.body; - var scope_DirOffset = scope_Document.dir === "rtl" || options.ort === 1 ? 0 : 100; - function addNodeTo(addTarget, className) { - var div = scope_Document.createElement("div"); - if (className) { - addClass(div, className); - } - addTarget.appendChild(div); - return div; - } - function addOrigin(base, handleNumber) { - var origin = addNodeTo(base, options.cssClasses.origin); - var handle = addNodeTo(origin, options.cssClasses.handle); - addNodeTo(handle, options.cssClasses.touchArea); - handle.setAttribute("data-handle", String(handleNumber)); - if (options.keyboardSupport) { - handle.setAttribute("tabindex", "0"); - handle.addEventListener("keydown", function(event) { - return eventKeydown(event, handleNumber); - }); - } - if (options.handleAttributes !== void 0) { - var attributes_1 = options.handleAttributes[handleNumber]; - Object.keys(attributes_1).forEach(function(attribute) { - handle.setAttribute(attribute, attributes_1[attribute]); - }); - } - handle.setAttribute("role", "slider"); - handle.setAttribute("aria-orientation", options.ort ? "vertical" : "horizontal"); - if (handleNumber === 0) { - addClass(handle, options.cssClasses.handleLower); - } else if (handleNumber === options.handles - 1) { - addClass(handle, options.cssClasses.handleUpper); - } - origin.handle = handle; - return origin; - } - function addConnect(base, add) { - if (!add) { - return false; - } - return addNodeTo(base, options.cssClasses.connect); - } - function addElements(connectOptions, base) { - var connectBase = addNodeTo(base, options.cssClasses.connects); - scope_Handles = []; - scope_Connects = []; - scope_Connects.push(addConnect(connectBase, connectOptions[0])); - for (var i = 0; i < options.handles; i++) { - scope_Handles.push(addOrigin(base, i)); - scope_HandleNumbers[i] = i; - scope_Connects.push(addConnect(connectBase, connectOptions[i + 1])); - } - } - function addSlider(addTarget) { - addClass(addTarget, options.cssClasses.target); - if (options.dir === 0) { - addClass(addTarget, options.cssClasses.ltr); - } else { - addClass(addTarget, options.cssClasses.rtl); - } - if (options.ort === 0) { - addClass(addTarget, options.cssClasses.horizontal); - } else { - addClass(addTarget, options.cssClasses.vertical); - } - var textDirection = getComputedStyle(addTarget).direction; - if (textDirection === "rtl") { - addClass(addTarget, options.cssClasses.textDirectionRtl); - } else { - addClass(addTarget, options.cssClasses.textDirectionLtr); - } - return addNodeTo(addTarget, options.cssClasses.base); - } - function addTooltip(handle, handleNumber) { - if (!options.tooltips || !options.tooltips[handleNumber]) { - return false; - } - return addNodeTo(handle.firstChild, options.cssClasses.tooltip); - } - function isSliderDisabled() { - return scope_Target.hasAttribute("disabled"); - } - function isHandleDisabled(handleNumber) { - var handleOrigin = scope_Handles[handleNumber]; - return handleOrigin.hasAttribute("disabled"); - } - function disable(handleNumber) { - if (handleNumber !== null && handleNumber !== void 0) { - scope_Handles[handleNumber].setAttribute("disabled", ""); - scope_Handles[handleNumber].handle.removeAttribute("tabindex"); - } else { - scope_Target.setAttribute("disabled", ""); - scope_Handles.forEach(function(handle) { - handle.handle.removeAttribute("tabindex"); - }); - } - } - function enable(handleNumber) { - if (handleNumber !== null && handleNumber !== void 0) { - scope_Handles[handleNumber].removeAttribute("disabled"); - scope_Handles[handleNumber].handle.setAttribute("tabindex", "0"); - } else { - scope_Target.removeAttribute("disabled"); - scope_Handles.forEach(function(handle) { - handle.removeAttribute("disabled"); - handle.handle.setAttribute("tabindex", "0"); - }); - } - } - function removeTooltips() { - if (scope_Tooltips) { - removeEvent("update" + INTERNAL_EVENT_NS.tooltips); - scope_Tooltips.forEach(function(tooltip) { - if (tooltip) { - removeElement(tooltip); - } - }); - scope_Tooltips = null; - } - } - function tooltips() { - removeTooltips(); - scope_Tooltips = scope_Handles.map(addTooltip); - bindEvent("update" + INTERNAL_EVENT_NS.tooltips, function(values, handleNumber, unencoded) { - if (!scope_Tooltips || !options.tooltips) { - return; - } - if (scope_Tooltips[handleNumber] === false) { - return; - } - var formattedValue = values[handleNumber]; - if (options.tooltips[handleNumber] !== true) { - formattedValue = options.tooltips[handleNumber].to(unencoded[handleNumber]); - } - scope_Tooltips[handleNumber].innerHTML = formattedValue; - }); - } - function aria() { - removeEvent("update" + INTERNAL_EVENT_NS.aria); - bindEvent("update" + INTERNAL_EVENT_NS.aria, function(values, handleNumber, unencoded, tap, positions) { - scope_HandleNumbers.forEach(function(index) { - var handle = scope_Handles[index]; - var min2 = checkHandlePosition(scope_Locations, index, 0, true, true, true); - var max2 = checkHandlePosition(scope_Locations, index, 100, true, true, true); - var now = positions[index]; - var text = String(options.ariaFormat.to(unencoded[index])); - min2 = scope_Spectrum.fromStepping(min2).toFixed(1); - max2 = scope_Spectrum.fromStepping(max2).toFixed(1); - now = scope_Spectrum.fromStepping(now).toFixed(1); - handle.children[0].setAttribute("aria-valuemin", min2); - handle.children[0].setAttribute("aria-valuemax", max2); - handle.children[0].setAttribute("aria-valuenow", now); - handle.children[0].setAttribute("aria-valuetext", text); - }); - }); - } - function getGroup(pips2) { - if (pips2.mode === PipsMode.Range || pips2.mode === PipsMode.Steps) { - return scope_Spectrum.xVal; - } - if (pips2.mode === PipsMode.Count) { - if (pips2.values < 2) { - throw new Error("noUiSlider: 'values' (>= 2) required for mode 'count'."); - } - var interval = pips2.values - 1; - var spread = 100 / interval; - var values = []; - while (interval--) { - values[interval] = interval * spread; - } - values.push(100); - return mapToRange(values, pips2.stepped); - } - if (pips2.mode === PipsMode.Positions) { - return mapToRange(pips2.values, pips2.stepped); - } - if (pips2.mode === PipsMode.Values) { - if (pips2.stepped) { - return pips2.values.map(function(value) { - return scope_Spectrum.fromStepping(scope_Spectrum.getStep(scope_Spectrum.toStepping(value))); - }); - } - return pips2.values; - } - return []; - } - function mapToRange(values, stepped) { - return values.map(function(value) { - return scope_Spectrum.fromStepping(stepped ? scope_Spectrum.getStep(value) : value); - }); - } - function generateSpread(pips2) { - function safeIncrement(value, increment) { - return Number((value + increment).toFixed(7)); - } - var group = getGroup(pips2); - var indexes = {}; - var firstInRange = scope_Spectrum.xVal[0]; - var lastInRange = scope_Spectrum.xVal[scope_Spectrum.xVal.length - 1]; - var ignoreFirst = false; - var ignoreLast = false; - var prevPct = 0; - group = unique(group.slice().sort(function(a, b) { - return a - b; - })); - if (group[0] !== firstInRange) { - group.unshift(firstInRange); - ignoreFirst = true; - } - if (group[group.length - 1] !== lastInRange) { - group.push(lastInRange); - ignoreLast = true; - } - group.forEach(function(current, index) { - var step; - var i; - var q; - var low = current; - var high = group[index + 1]; - var newPct; - var pctDifference; - var pctPos; - var type; - var steps; - var realSteps; - var stepSize; - var isSteps = pips2.mode === PipsMode.Steps; - if (isSteps) { - step = scope_Spectrum.xNumSteps[index]; - } - if (!step) { - step = high - low; - } - if (high === void 0) { - high = low; - } - step = Math.max(step, 1e-7); - for (i = low; i <= high; i = safeIncrement(i, step)) { - newPct = scope_Spectrum.toStepping(i); - pctDifference = newPct - prevPct; - steps = pctDifference / (pips2.density || 1); - realSteps = Math.round(steps); - stepSize = pctDifference / realSteps; - for (q = 1; q <= realSteps; q += 1) { - pctPos = prevPct + q * stepSize; - indexes[pctPos.toFixed(5)] = [scope_Spectrum.fromStepping(pctPos), 0]; - } - type = group.indexOf(i) > -1 ? PipsType.LargeValue : isSteps ? PipsType.SmallValue : PipsType.NoValue; - if (!index && ignoreFirst && i !== high) { - type = 0; - } - if (!(i === high && ignoreLast)) { - indexes[newPct.toFixed(5)] = [i, type]; - } - prevPct = newPct; - } - }); - return indexes; - } - function addMarking(spread, filterFunc, formatter) { - var _a, _b; - var element2 = scope_Document.createElement("div"); - var valueSizeClasses = (_a = {}, _a[PipsType.None] = "", _a[PipsType.NoValue] = options.cssClasses.valueNormal, _a[PipsType.LargeValue] = options.cssClasses.valueLarge, _a[PipsType.SmallValue] = options.cssClasses.valueSub, _a); - var markerSizeClasses = (_b = {}, _b[PipsType.None] = "", _b[PipsType.NoValue] = options.cssClasses.markerNormal, _b[PipsType.LargeValue] = options.cssClasses.markerLarge, _b[PipsType.SmallValue] = options.cssClasses.markerSub, _b); - var valueOrientationClasses = [options.cssClasses.valueHorizontal, options.cssClasses.valueVertical]; - var markerOrientationClasses = [options.cssClasses.markerHorizontal, options.cssClasses.markerVertical]; - addClass(element2, options.cssClasses.pips); - addClass(element2, options.ort === 0 ? options.cssClasses.pipsHorizontal : options.cssClasses.pipsVertical); - function getClasses(type, source) { - var a = source === options.cssClasses.value; - var orientationClasses = a ? valueOrientationClasses : markerOrientationClasses; - var sizeClasses = a ? valueSizeClasses : markerSizeClasses; - return source + " " + orientationClasses[options.ort] + " " + sizeClasses[type]; - } - function addSpread(offset3, value, type) { - type = filterFunc ? filterFunc(value, type) : type; - if (type === PipsType.None) { - return; - } - var node = addNodeTo(element2, false); - node.className = getClasses(type, options.cssClasses.marker); - node.style[options.style] = offset3 + "%"; - if (type > PipsType.NoValue) { - node = addNodeTo(element2, false); - node.className = getClasses(type, options.cssClasses.value); - node.setAttribute("data-value", String(value)); - node.style[options.style] = offset3 + "%"; - node.innerHTML = String(formatter.to(value)); - } - } - Object.keys(spread).forEach(function(offset3) { - addSpread(offset3, spread[offset3][0], spread[offset3][1]); - }); - return element2; - } - function removePips() { - if (scope_Pips) { - removeElement(scope_Pips); - scope_Pips = null; - } - } - function pips(pips2) { - removePips(); - var spread = generateSpread(pips2); - var filter = pips2.filter; - var format = pips2.format || { - to: function(value) { - return String(Math.round(value)); - } - }; - scope_Pips = scope_Target.appendChild(addMarking(spread, filter, format)); - return scope_Pips; - } - function baseSize() { - var rect = scope_Base.getBoundingClientRect(); - var alt = "offset" + ["Width", "Height"][options.ort]; - return options.ort === 0 ? rect.width || scope_Base[alt] : rect.height || scope_Base[alt]; - } - function attachEvent(events, element2, callback, data) { - var method = function(event) { - var e = fixEvent(event, data.pageOffset, data.target || element2); - if (!e) { - return false; - } - if (isSliderDisabled() && !data.doNotReject) { - return false; - } - if (hasClass(scope_Target, options.cssClasses.tap) && !data.doNotReject) { - return false; - } - if (events === actions.start && e.buttons !== void 0 && e.buttons > 1) { - return false; - } - if (data.hover && e.buttons) { - return false; - } - if (!supportsPassive) { - e.preventDefault(); - } - e.calcPoint = e.points[options.ort]; - callback(e, data); - return; - }; - var methods = []; - events.split(" ").forEach(function(eventName) { - element2.addEventListener(eventName, method, supportsPassive ? { passive: true } : false); - methods.push([eventName, method]); - }); - return methods; - } - function fixEvent(e, pageOffset, eventTarget) { - var touch = e.type.indexOf("touch") === 0; - var mouse = e.type.indexOf("mouse") === 0; - var pointer = e.type.indexOf("pointer") === 0; - var x = 0; - var y = 0; - if (e.type.indexOf("MSPointer") === 0) { - pointer = true; - } - if (e.type === "mousedown" && !e.buttons && !e.touches) { - return false; - } - if (touch) { - var isTouchOnTarget = function(checkTouch) { - var target2 = checkTouch.target; - return target2 === eventTarget || eventTarget.contains(target2) || e.composed && e.composedPath().shift() === eventTarget; - }; - if (e.type === "touchstart") { - var targetTouches = Array.prototype.filter.call(e.touches, isTouchOnTarget); - if (targetTouches.length > 1) { - return false; - } - x = targetTouches[0].pageX; - y = targetTouches[0].pageY; - } else { - var targetTouch = Array.prototype.find.call(e.changedTouches, isTouchOnTarget); - if (!targetTouch) { - return false; - } - x = targetTouch.pageX; - y = targetTouch.pageY; - } - } - pageOffset = pageOffset || getPageOffset(scope_Document); - if (mouse || pointer) { - x = e.clientX + pageOffset.x; - y = e.clientY + pageOffset.y; - } - e.pageOffset = pageOffset; - e.points = [x, y]; - e.cursor = mouse || pointer; - return e; - } - function calcPointToPercentage(calcPoint) { - var location = calcPoint - offset(scope_Base, options.ort); - var proposal = location * 100 / baseSize(); - proposal = limit(proposal); - return options.dir ? 100 - proposal : proposal; - } - function getClosestHandle(clickedPosition) { - var smallestDifference = 100; - var handleNumber = false; - scope_Handles.forEach(function(handle, index) { - if (isHandleDisabled(index)) { - return; - } - var handlePosition = scope_Locations[index]; - var differenceWithThisHandle = Math.abs(handlePosition - clickedPosition); - var clickAtEdge = differenceWithThisHandle === 100 && smallestDifference === 100; - var isCloser = differenceWithThisHandle < smallestDifference; - var isCloserAfter = differenceWithThisHandle <= smallestDifference && clickedPosition > handlePosition; - if (isCloser || isCloserAfter || clickAtEdge) { - handleNumber = index; - smallestDifference = differenceWithThisHandle; - } - }); - return handleNumber; - } - function documentLeave(event, data) { - if (event.type === "mouseout" && event.target.nodeName === "HTML" && event.relatedTarget === null) { - eventEnd(event, data); - } - } - function eventMove(event, data) { - if (navigator.appVersion.indexOf("MSIE 9") === -1 && event.buttons === 0 && data.buttonsProperty !== 0) { - return eventEnd(event, data); - } - var movement = (options.dir ? -1 : 1) * (event.calcPoint - data.startCalcPoint); - var proposal = movement * 100 / data.baseSize; - moveHandles(movement > 0, proposal, data.locations, data.handleNumbers, data.connect); - } - function eventEnd(event, data) { - if (data.handle) { - removeClass(data.handle, options.cssClasses.active); - scope_ActiveHandlesCount -= 1; - } - data.listeners.forEach(function(c) { - scope_DocumentElement.removeEventListener(c[0], c[1]); - }); - if (scope_ActiveHandlesCount === 0) { - removeClass(scope_Target, options.cssClasses.drag); - setZindex(); - if (event.cursor) { - scope_Body.style.cursor = ""; - scope_Body.removeEventListener("selectstart", preventDefault); - } - } - if (options.events.smoothSteps) { - data.handleNumbers.forEach(function(handleNumber) { - setHandle(handleNumber, scope_Locations[handleNumber], true, true, false, false); - }); - data.handleNumbers.forEach(function(handleNumber) { - fireEvent("update", handleNumber); - }); - } - data.handleNumbers.forEach(function(handleNumber) { - fireEvent("change", handleNumber); - fireEvent("set", handleNumber); - fireEvent("end", handleNumber); - }); - } - function eventStart(event, data) { - if (data.handleNumbers.some(isHandleDisabled)) { - return; - } - var handle; - if (data.handleNumbers.length === 1) { - var handleOrigin = scope_Handles[data.handleNumbers[0]]; - handle = handleOrigin.children[0]; - scope_ActiveHandlesCount += 1; - addClass(handle, options.cssClasses.active); - } - event.stopPropagation(); - var listeners = []; - var moveEvent = attachEvent(actions.move, scope_DocumentElement, eventMove, { - // The event target has changed so we need to propagate the original one so that we keep - // relying on it to extract target touches. - target: event.target, - handle, - connect: data.connect, - listeners, - startCalcPoint: event.calcPoint, - baseSize: baseSize(), - pageOffset: event.pageOffset, - handleNumbers: data.handleNumbers, - buttonsProperty: event.buttons, - locations: scope_Locations.slice() - }); - var endEvent = attachEvent(actions.end, scope_DocumentElement, eventEnd, { - target: event.target, - handle, - listeners, - doNotReject: true, - handleNumbers: data.handleNumbers - }); - var outEvent = attachEvent("mouseout", scope_DocumentElement, documentLeave, { - target: event.target, - handle, - listeners, - doNotReject: true, - handleNumbers: data.handleNumbers - }); - listeners.push.apply(listeners, moveEvent.concat(endEvent, outEvent)); - if (event.cursor) { - scope_Body.style.cursor = getComputedStyle(event.target).cursor; - if (scope_Handles.length > 1) { - addClass(scope_Target, options.cssClasses.drag); - } - scope_Body.addEventListener("selectstart", preventDefault, false); - } - data.handleNumbers.forEach(function(handleNumber) { - fireEvent("start", handleNumber); - }); - } - function eventTap(event) { - event.stopPropagation(); - var proposal = calcPointToPercentage(event.calcPoint); - var handleNumber = getClosestHandle(proposal); - if (handleNumber === false) { - return; - } - if (!options.events.snap) { - addClassFor(scope_Target, options.cssClasses.tap, options.animationDuration); - } - setHandle(handleNumber, proposal, true, true); - setZindex(); - fireEvent("slide", handleNumber, true); - fireEvent("update", handleNumber, true); - if (!options.events.snap) { - fireEvent("change", handleNumber, true); - fireEvent("set", handleNumber, true); - } else { - eventStart(event, { handleNumbers: [handleNumber] }); - } - } - function eventHover(event) { - var proposal = calcPointToPercentage(event.calcPoint); - var to = scope_Spectrum.getStep(proposal); - var value = scope_Spectrum.fromStepping(to); - Object.keys(scope_Events).forEach(function(targetEvent) { - if ("hover" === targetEvent.split(".")[0]) { - scope_Events[targetEvent].forEach(function(callback) { - callback.call(scope_Self, value); - }); - } - }); - } - function eventKeydown(event, handleNumber) { - if (isSliderDisabled() || isHandleDisabled(handleNumber)) { - return false; - } - var horizontalKeys = ["Left", "Right"]; - var verticalKeys = ["Down", "Up"]; - var largeStepKeys = ["PageDown", "PageUp"]; - var edgeKeys = ["Home", "End"]; - if (options.dir && !options.ort) { - horizontalKeys.reverse(); - } else if (options.ort && !options.dir) { - verticalKeys.reverse(); - largeStepKeys.reverse(); - } - var key = event.key.replace("Arrow", ""); - var isLargeDown = key === largeStepKeys[0]; - var isLargeUp = key === largeStepKeys[1]; - var isDown = key === verticalKeys[0] || key === horizontalKeys[0] || isLargeDown; - var isUp = key === verticalKeys[1] || key === horizontalKeys[1] || isLargeUp; - var isMin = key === edgeKeys[0]; - var isMax = key === edgeKeys[1]; - if (!isDown && !isUp && !isMin && !isMax) { - return true; - } - event.preventDefault(); - var to; - if (isUp || isDown) { - var direction = isDown ? 0 : 1; - var steps = getNextStepsForHandle(handleNumber); - var step = steps[direction]; - if (step === null) { - return false; - } - if (step === false) { - step = scope_Spectrum.getDefaultStep(scope_Locations[handleNumber], isDown, options.keyboardDefaultStep); - } - if (isLargeUp || isLargeDown) { - step *= options.keyboardPageMultiplier; - } else { - step *= options.keyboardMultiplier; - } - step = Math.max(step, 1e-7); - step = (isDown ? -1 : 1) * step; - to = scope_Values[handleNumber] + step; - } else if (isMax) { - to = options.spectrum.xVal[options.spectrum.xVal.length - 1]; - } else { - to = options.spectrum.xVal[0]; - } - setHandle(handleNumber, scope_Spectrum.toStepping(to), true, true); - fireEvent("slide", handleNumber); - fireEvent("update", handleNumber); - fireEvent("change", handleNumber); - fireEvent("set", handleNumber); - return false; - } - function bindSliderEvents(behaviour) { - if (!behaviour.fixed) { - scope_Handles.forEach(function(handle, index) { - attachEvent(actions.start, handle.children[0], eventStart, { - handleNumbers: [index] - }); - }); - } - if (behaviour.tap) { - attachEvent(actions.start, scope_Base, eventTap, {}); - } - if (behaviour.hover) { - attachEvent(actions.move, scope_Base, eventHover, { - hover: true - }); - } - if (behaviour.drag) { - scope_Connects.forEach(function(connect, index) { - if (connect === false || index === 0 || index === scope_Connects.length - 1) { - return; - } - var handleBefore = scope_Handles[index - 1]; - var handleAfter = scope_Handles[index]; - var eventHolders = [connect]; - var handlesToDrag = [handleBefore, handleAfter]; - var handleNumbersToDrag = [index - 1, index]; - addClass(connect, options.cssClasses.draggable); - if (behaviour.fixed) { - eventHolders.push(handleBefore.children[0]); - eventHolders.push(handleAfter.children[0]); - } - if (behaviour.dragAll) { - handlesToDrag = scope_Handles; - handleNumbersToDrag = scope_HandleNumbers; - } - eventHolders.forEach(function(eventHolder) { - attachEvent(actions.start, eventHolder, eventStart, { - handles: handlesToDrag, - handleNumbers: handleNumbersToDrag, - connect - }); - }); - }); - } - } - function bindEvent(namespacedEvent, callback) { - scope_Events[namespacedEvent] = scope_Events[namespacedEvent] || []; - scope_Events[namespacedEvent].push(callback); - if (namespacedEvent.split(".")[0] === "update") { - scope_Handles.forEach(function(a, index) { - fireEvent("update", index); - }); - } - } - function isInternalNamespace(namespace) { - return namespace === INTERNAL_EVENT_NS.aria || namespace === INTERNAL_EVENT_NS.tooltips; - } - function removeEvent(namespacedEvent) { - var event = namespacedEvent && namespacedEvent.split(".")[0]; - var namespace = event ? namespacedEvent.substring(event.length) : namespacedEvent; - Object.keys(scope_Events).forEach(function(bind) { - var tEvent = bind.split(".")[0]; - var tNamespace = bind.substring(tEvent.length); - if ((!event || event === tEvent) && (!namespace || namespace === tNamespace)) { - if (!isInternalNamespace(tNamespace) || namespace === tNamespace) { - delete scope_Events[bind]; - } - } - }); - } - function fireEvent(eventName, handleNumber, tap) { - Object.keys(scope_Events).forEach(function(targetEvent) { - var eventType = targetEvent.split(".")[0]; - if (eventName === eventType) { - scope_Events[targetEvent].forEach(function(callback) { - callback.call( - // Use the slider public API as the scope ('this') - scope_Self, - // Return values as array, so arg_1[arg_2] is always valid. - scope_Values.map(options.format.to), - // Handle index, 0 or 1 - handleNumber, - // Un-formatted slider values - scope_Values.slice(), - // Event is fired by tap, true or false - tap || false, - // Left offset of the handle, in relation to the slider - scope_Locations.slice(), - // add the slider public API to an accessible parameter when this is unavailable - scope_Self - ); - }); - } - }); - } - function checkHandlePosition(reference2, handleNumber, to, lookBackward, lookForward, getValue, smoothSteps) { - var distance; - if (scope_Handles.length > 1 && !options.events.unconstrained) { - if (lookBackward && handleNumber > 0) { - distance = scope_Spectrum.getAbsoluteDistance(reference2[handleNumber - 1], options.margin, false); - to = Math.max(to, distance); - } - if (lookForward && handleNumber < scope_Handles.length - 1) { - distance = scope_Spectrum.getAbsoluteDistance(reference2[handleNumber + 1], options.margin, true); - to = Math.min(to, distance); - } - } - if (scope_Handles.length > 1 && options.limit) { - if (lookBackward && handleNumber > 0) { - distance = scope_Spectrum.getAbsoluteDistance(reference2[handleNumber - 1], options.limit, false); - to = Math.min(to, distance); - } - if (lookForward && handleNumber < scope_Handles.length - 1) { - distance = scope_Spectrum.getAbsoluteDistance(reference2[handleNumber + 1], options.limit, true); - to = Math.max(to, distance); - } - } - if (options.padding) { - if (handleNumber === 0) { - distance = scope_Spectrum.getAbsoluteDistance(0, options.padding[0], false); - to = Math.max(to, distance); - } - if (handleNumber === scope_Handles.length - 1) { - distance = scope_Spectrum.getAbsoluteDistance(100, options.padding[1], true); - to = Math.min(to, distance); - } - } - if (!smoothSteps) { - to = scope_Spectrum.getStep(to); - } - to = limit(to); - if (to === reference2[handleNumber] && !getValue) { - return false; - } - return to; - } - function inRuleOrder(v, a) { - var o = options.ort; - return (o ? a : v) + ", " + (o ? v : a); - } - function moveHandles(upward, proposal, locations, handleNumbers, connect) { - var proposals = locations.slice(); - var firstHandle = handleNumbers[0]; - var smoothSteps = options.events.smoothSteps; - var b = [!upward, upward]; - var f = [upward, !upward]; - handleNumbers = handleNumbers.slice(); - if (upward) { - handleNumbers.reverse(); - } - if (handleNumbers.length > 1) { - handleNumbers.forEach(function(handleNumber, o) { - var to = checkHandlePosition(proposals, handleNumber, proposals[handleNumber] + proposal, b[o], f[o], false, smoothSteps); - if (to === false) { - proposal = 0; - } else { - proposal = to - proposals[handleNumber]; - proposals[handleNumber] = to; - } - }); - } else { - b = f = [true]; - } - var state = false; - handleNumbers.forEach(function(handleNumber, o) { - state = setHandle(handleNumber, locations[handleNumber] + proposal, b[o], f[o], false, smoothSteps) || state; - }); - if (state) { - handleNumbers.forEach(function(handleNumber) { - fireEvent("update", handleNumber); - fireEvent("slide", handleNumber); - }); - if (connect != void 0) { - fireEvent("drag", firstHandle); - } - } - } - function transformDirection(a, b) { - return options.dir ? 100 - a - b : a; - } - function updateHandlePosition(handleNumber, to) { - scope_Locations[handleNumber] = to; - scope_Values[handleNumber] = scope_Spectrum.fromStepping(to); - var translation = transformDirection(to, 0) - scope_DirOffset; - var translateRule = "translate(" + inRuleOrder(translation + "%", "0") + ")"; - scope_Handles[handleNumber].style[options.transformRule] = translateRule; - updateConnect(handleNumber); - updateConnect(handleNumber + 1); - } - function setZindex() { - scope_HandleNumbers.forEach(function(handleNumber) { - var dir = scope_Locations[handleNumber] > 50 ? -1 : 1; - var zIndex = 3 + (scope_Handles.length + dir * handleNumber); - scope_Handles[handleNumber].style.zIndex = String(zIndex); - }); - } - function setHandle(handleNumber, to, lookBackward, lookForward, exactInput, smoothSteps) { - if (!exactInput) { - to = checkHandlePosition(scope_Locations, handleNumber, to, lookBackward, lookForward, false, smoothSteps); - } - if (to === false) { - return false; - } - updateHandlePosition(handleNumber, to); - return true; - } - function updateConnect(index) { - if (!scope_Connects[index]) { - return; - } - var l = 0; - var h = 100; - if (index !== 0) { - l = scope_Locations[index - 1]; - } - if (index !== scope_Connects.length - 1) { - h = scope_Locations[index]; - } - var connectWidth = h - l; - var translateRule = "translate(" + inRuleOrder(transformDirection(l, connectWidth) + "%", "0") + ")"; - var scaleRule = "scale(" + inRuleOrder(connectWidth / 100, "1") + ")"; - scope_Connects[index].style[options.transformRule] = translateRule + " " + scaleRule; - } - function resolveToValue(to, handleNumber) { - if (to === null || to === false || to === void 0) { - return scope_Locations[handleNumber]; - } - if (typeof to === "number") { - to = String(to); - } - to = options.format.from(to); - if (to !== false) { - to = scope_Spectrum.toStepping(to); - } - if (to === false || isNaN(to)) { - return scope_Locations[handleNumber]; - } - return to; - } - function valueSet(input, fireSetEvent, exactInput) { - var values = asArray(input); - var isInit = scope_Locations[0] === void 0; - fireSetEvent = fireSetEvent === void 0 ? true : fireSetEvent; - if (options.animate && !isInit) { - addClassFor(scope_Target, options.cssClasses.tap, options.animationDuration); - } - scope_HandleNumbers.forEach(function(handleNumber) { - setHandle(handleNumber, resolveToValue(values[handleNumber], handleNumber), true, false, exactInput); - }); - var i = scope_HandleNumbers.length === 1 ? 0 : 1; - if (isInit && scope_Spectrum.hasNoSize()) { - exactInput = true; - scope_Locations[0] = 0; - if (scope_HandleNumbers.length > 1) { - var space_1 = 100 / (scope_HandleNumbers.length - 1); - scope_HandleNumbers.forEach(function(handleNumber) { - scope_Locations[handleNumber] = handleNumber * space_1; - }); - } - } - for (; i < scope_HandleNumbers.length; ++i) { - scope_HandleNumbers.forEach(function(handleNumber) { - setHandle(handleNumber, scope_Locations[handleNumber], true, true, exactInput); - }); - } - setZindex(); - scope_HandleNumbers.forEach(function(handleNumber) { - fireEvent("update", handleNumber); - if (values[handleNumber] !== null && fireSetEvent) { - fireEvent("set", handleNumber); - } - }); - } - function valueReset(fireSetEvent) { - valueSet(options.start, fireSetEvent); - } - function valueSetHandle(handleNumber, value, fireSetEvent, exactInput) { - handleNumber = Number(handleNumber); - if (!(handleNumber >= 0 && handleNumber < scope_HandleNumbers.length)) { - throw new Error("noUiSlider: invalid handle number, got: " + handleNumber); - } - setHandle(handleNumber, resolveToValue(value, handleNumber), true, true, exactInput); - fireEvent("update", handleNumber); - if (fireSetEvent) { - fireEvent("set", handleNumber); - } - } - function valueGet(unencoded) { - if (unencoded === void 0) { - unencoded = false; - } - if (unencoded) { - return scope_Values.length === 1 ? scope_Values[0] : scope_Values.slice(0); - } - var values = scope_Values.map(options.format.to); - if (values.length === 1) { - return values[0]; - } - return values; - } - function destroy() { - removeEvent(INTERNAL_EVENT_NS.aria); - removeEvent(INTERNAL_EVENT_NS.tooltips); - Object.keys(options.cssClasses).forEach(function(key) { - removeClass(scope_Target, options.cssClasses[key]); - }); - while (scope_Target.firstChild) { - scope_Target.removeChild(scope_Target.firstChild); - } - delete scope_Target.noUiSlider; - } - function getNextStepsForHandle(handleNumber) { - var location = scope_Locations[handleNumber]; - var nearbySteps = scope_Spectrum.getNearbySteps(location); - var value = scope_Values[handleNumber]; - var increment = nearbySteps.thisStep.step; - var decrement = null; - if (options.snap) { - return [ - value - nearbySteps.stepBefore.startValue || null, - nearbySteps.stepAfter.startValue - value || null - ]; - } - if (increment !== false) { - if (value + increment > nearbySteps.stepAfter.startValue) { - increment = nearbySteps.stepAfter.startValue - value; - } - } - if (value > nearbySteps.thisStep.startValue) { - decrement = nearbySteps.thisStep.step; - } else if (nearbySteps.stepBefore.step === false) { - decrement = false; - } else { - decrement = value - nearbySteps.stepBefore.highestStep; - } - if (location === 100) { - increment = null; - } else if (location === 0) { - decrement = null; - } - var stepDecimals = scope_Spectrum.countStepDecimals(); - if (increment !== null && increment !== false) { - increment = Number(increment.toFixed(stepDecimals)); - } - if (decrement !== null && decrement !== false) { - decrement = Number(decrement.toFixed(stepDecimals)); - } - return [decrement, increment]; - } - function getNextSteps() { - return scope_HandleNumbers.map(getNextStepsForHandle); - } - function updateOptions(optionsToUpdate, fireSetEvent) { - var v = valueGet(); - var updateAble = [ - "margin", - "limit", - "padding", - "range", - "animate", - "snap", - "step", - "format", - "pips", - "tooltips" - ]; - updateAble.forEach(function(name) { - if (optionsToUpdate[name] !== void 0) { - originalOptions[name] = optionsToUpdate[name]; - } - }); - var newOptions = testOptions(originalOptions); - updateAble.forEach(function(name) { - if (optionsToUpdate[name] !== void 0) { - options[name] = newOptions[name]; - } - }); - scope_Spectrum = newOptions.spectrum; - options.margin = newOptions.margin; - options.limit = newOptions.limit; - options.padding = newOptions.padding; - if (options.pips) { - pips(options.pips); - } else { - removePips(); - } - if (options.tooltips) { - tooltips(); - } else { - removeTooltips(); - } - scope_Locations = []; - valueSet(isSet(optionsToUpdate.start) ? optionsToUpdate.start : v, fireSetEvent); - } - function setupSlider() { - scope_Base = addSlider(scope_Target); - addElements(options.connect, scope_Base); - bindSliderEvents(options.events); - valueSet(options.start); - if (options.pips) { - pips(options.pips); - } - if (options.tooltips) { - tooltips(); - } - aria(); - } - setupSlider(); - var scope_Self = { - destroy, - steps: getNextSteps, - on: bindEvent, - off: removeEvent, - get: valueGet, - set: valueSet, - setHandle: valueSetHandle, - reset: valueReset, - disable, - enable, - // Exposed for unit testing, don't use this in your application. - __moveHandles: function(upward, proposal, handleNumbers) { - moveHandles(upward, proposal, scope_Locations, handleNumbers); - }, - options: originalOptions, - updateOptions, - target: scope_Target, - removePips, - removeTooltips, - getPositions: function() { - return scope_Locations.slice(); - }, - getTooltips: function() { - return scope_Tooltips; - }, - getOrigins: function() { - return scope_Handles; - }, - pips - // Issue #594 - }; - return scope_Self; - } - function initialize(target, originalOptions) { - if (!target || !target.nodeName) { - throw new Error("noUiSlider: create requires a single element, got: " + target); - } - if (target.noUiSlider) { - throw new Error("noUiSlider: Slider was already initialized."); - } - var options = testOptions(originalOptions); - var api = scope(target, options, originalOptions); - target.noUiSlider = api; - return api; - } - var nouislider_default = { - // Exposed for unit testing, don't use this in your application. - __spectrum: Spectrum, - // A reference to the default classes, allows global changes. - // Use the cssClasses option for changes to one slider. - cssClasses, - create: initialize - }; - - // src/js/components/forms.js - var Forms = { - init: function(element2) { - element2 = element2 || document; - const forms = element2.querySelectorAll(".textbox"); - if (!forms) - return; - for (let i = 0; i < forms.length; i++) { - let parent = forms[i]; - let input = parent.querySelector(".input"); - if (input.value) { - parent.classList.add("floating"); - } else { - parent.classList.remove("floating"); - } - parent.addEventListener("click", function() { - parent.classList.add("floating"); - input.focus(); - }); - input.addEventListener("focus", function() { - parent.classList.add("focus"); - parent.classList.add("floating"); - }); - input.addEventListener("blur", function() { - parent.classList.remove("focus"); - if (input.value) { - parent.classList.add("floating"); - } else { - parent.classList.remove("floating"); - } - }); - input.addEventListener("input", function() { - if (input.value) { - parent.classList.add("floating"); - } else { - parent.classList.remove("floating"); - } - }); - } - }, - initRangeSlider: nouislider_default - }; - Forms.init(); - var forms_default = Forms; - - // src/js/components/accordion.js - var Accordion = { - init: function() { - const accordions = document.querySelectorAll(".accordion"); - if (accordions) { - accordions.forEach(function(i) { - const _this = i; - const items = _this.querySelectorAll(".item"); - if (items) { - items.forEach(function(i2) { - const children = i2.querySelectorAll(".content , .content *"); - if (children) { - const focus = () => { - if (i2.classList.contains("open")) { - children.forEach(function(i3) { - i3.setAttribute("tabIndex", "-1"); - }); - } else { - children.forEach(function(i3) { - i3.removeAttribute("tabIndex"); - }); - } - }; - focus(); - const ih = i2.offsetHeight; - i2.style.setProperty("--max-height", `${ih + 20}px`); - i2.querySelector("[data-toggle]").addEventListener("click", () => { - focus(); - i2.classList.toggle("open"); - }); - } - }); - } - }); - } - } - }; - Accordion.init(); - var accordion_default = Accordion; - - // src/js/components/tabs.js - function Tabs(options) { - const elem = document.getElementById(options.elem); - const open = options.open || 0; - const titleClass = "item"; - const activeClass = "active"; - const contentClass = "content"; - const tabsNum = elem.querySelectorAll("." + titleClass).length; - const uniqId = (Date.now() + Math.random()).toString(36); - render(); - function render(n) { - elem.addEventListener("click", onClick); - let init = n == null ? checkTab(open) : checkTab(n); - for (let i = 0; i < tabsNum; i++) { - elem.querySelectorAll("." + titleClass)[i].setAttribute("data-" + uniqId, i); - if (i === init) - openTab(i); - } - } - function onClick(e) { - if (e.target.className.indexOf(titleClass) === -1) - return; - e.preventDefault(); - openTab(e.target.getAttribute("data-" + uniqId)); - } - function reset() { - [].forEach.call(elem.querySelectorAll("." + contentClass), function(item) { - item.classList.remove("active"); - }); - [].forEach.call(elem.querySelectorAll("." + titleClass), function(item) { - item.className = removeClass2(item.className, activeClass); - }); - } - function removeClass2(str, cls) { - let reg = new RegExp("( )" + cls + "()", "g"); - return str.replace(reg, ""); - } - function checkTab(n) { - return n < 0 || isNaN(n) || n > tabsNum ? 0 : n; - } - function openTab(n) { - reset(); - let i = checkTab(n); - elem.querySelectorAll("." + titleClass)[i].className += " " + activeClass; - elem.querySelectorAll("." + contentClass)[i].classList.add("active"); - } - function update(n) { - destroy(); - reset(); - render(n); - } - function destroy() { - elem.removeEventListener("click", onClick); - } - return { - open: openTab, - update, - destroy - }; - } - var tabs_default = Tabs; - - // src/js/components/appbar.js - var Appbar = { - init: () => { - const elements = document.querySelectorAll(".appbar.elevating"); - elements.forEach((element2) => { - document.addEventListener("scroll", () => { - if (window.scrollY > 100) { - element2.classList.add("elevated"); - } else { - element2.classList.remove("elevated"); - } - }); - }); - } - }; - Appbar.init(); - var appbar_default = Appbar; - - // node_modules/tabbable/dist/index.esm.js - var candidateSelectors = ["input:not([inert])", "select:not([inert])", "textarea:not([inert])", "a[href]:not([inert])", "button:not([inert])", "[tabindex]:not(slot):not([inert])", "audio[controls]:not([inert])", "video[controls]:not([inert])", '[contenteditable]:not([contenteditable="false"]):not([inert])', "details>summary:first-of-type:not([inert])", "details:not([inert])"]; - var candidateSelector = /* @__PURE__ */ candidateSelectors.join(","); - var NoElement = typeof Element === "undefined"; - var matches = NoElement ? function() { - } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; - var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element2) { - var _element$getRootNode; - return element2 === null || element2 === void 0 ? void 0 : (_element$getRootNode = element2.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element2); - } : function(element2) { - return element2 === null || element2 === void 0 ? void 0 : element2.ownerDocument; - }; - var isInert = function isInert2(node, lookUp) { - var _node$getAttribute; - if (lookUp === void 0) { - lookUp = true; - } - var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, "inert"); - var inert = inertAtt === "" || inertAtt === "true"; - var result = inert || lookUp && node && isInert2(node.parentNode); - return result; - }; - var isContentEditable = function isContentEditable2(node) { - var _node$getAttribute2; - var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, "contenteditable"); - return attValue === "" || attValue === "true"; - }; - var getCandidates = function getCandidates2(el, includeContainer, filter) { - if (isInert(el)) { - return []; - } - var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); - if (includeContainer && matches.call(el, candidateSelector)) { - candidates.unshift(el); - } - candidates = candidates.filter(filter); - return candidates; - }; - var getCandidatesIteratively = function getCandidatesIteratively2(elements, includeContainer, options) { - var candidates = []; - var elementsToCheck = Array.from(elements); - while (elementsToCheck.length) { - var element2 = elementsToCheck.shift(); - if (isInert(element2, false)) { - continue; - } - if (element2.tagName === "SLOT") { - var assigned = element2.assignedElements(); - var content = assigned.length ? assigned : element2.children; - var nestedCandidates = getCandidatesIteratively2(content, true, options); - if (options.flatten) { - candidates.push.apply(candidates, nestedCandidates); - } else { - candidates.push({ - scopeParent: element2, - candidates: nestedCandidates - }); - } - } else { - var validCandidate = matches.call(element2, candidateSelector); - if (validCandidate && options.filter(element2) && (includeContainer || !elements.includes(element2))) { - candidates.push(element2); - } - var shadowRoot = element2.shadowRoot || // check for an undisclosed shadow - typeof options.getShadowRoot === "function" && options.getShadowRoot(element2); - var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element2)); - if (shadowRoot && validShadowRoot) { - var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element2.children : shadowRoot.children, true, options); - if (options.flatten) { - candidates.push.apply(candidates, _nestedCandidates); - } else { - candidates.push({ - scopeParent: element2, - candidates: _nestedCandidates - }); - } - } else { - elementsToCheck.unshift.apply(elementsToCheck, element2.children); - } - } - } - return candidates; - }; - var hasTabIndex = function hasTabIndex2(node) { - return !isNaN(parseInt(node.getAttribute("tabindex"), 10)); - }; - var getTabIndex = function getTabIndex2(node) { - if (!node) { - throw new Error("No node provided"); - } - if (node.tabIndex < 0) { - if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) { - return 0; - } - } - return node.tabIndex; - }; - var getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) { - var tabIndex = getTabIndex(node); - if (tabIndex < 0 && isScope && !hasTabIndex(node)) { - return 0; - } - return tabIndex; - }; - var sortOrderedTabbables = function sortOrderedTabbables2(a, b) { - return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex; - }; - var isInput = function isInput2(node) { - return node.tagName === "INPUT"; - }; - var isHiddenInput = function isHiddenInput2(node) { - return isInput(node) && node.type === "hidden"; - }; - var isDetailsWithSummary = function isDetailsWithSummary2(node) { - var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child) { - return child.tagName === "SUMMARY"; - }); - return r; - }; - var getCheckedRadio = function getCheckedRadio2(nodes, form) { - for (var i = 0; i < nodes.length; i++) { - if (nodes[i].checked && nodes[i].form === form) { - return nodes[i]; - } - } - }; - var isTabbableRadio = function isTabbableRadio2(node) { - if (!node.name) { - return true; - } - var radioScope = node.form || getRootNode(node); - var queryRadios = function queryRadios2(name) { - return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]'); - }; - var radioSet; - if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") { - radioSet = queryRadios(window.CSS.escape(node.name)); - } else { - try { - radioSet = queryRadios(node.name); - } catch (err) { - console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message); - return false; - } - } - var checked = getCheckedRadio(radioSet, node.form); - return !checked || checked === node; - }; - var isRadio = function isRadio2(node) { - return isInput(node) && node.type === "radio"; - }; - var isNonTabbableRadio = function isNonTabbableRadio2(node) { - return isRadio(node) && !isTabbableRadio(node); - }; - var isNodeAttached = function isNodeAttached2(node) { - var _nodeRoot; - var nodeRoot = node && getRootNode(node); - var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host; - var attached = false; - if (nodeRoot && nodeRoot !== node) { - var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument; - attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node)); - while (!attached && nodeRootHost) { - var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD; - nodeRoot = getRootNode(nodeRootHost); - nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host; - attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost)); - } - } - return attached; - }; - var isZeroArea = function isZeroArea2(node) { - var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height; - return width === 0 && height === 0; - }; - var isHidden = function isHidden2(node, _ref) { - var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot; - if (getComputedStyle(node).visibility === "hidden") { - return true; - } - var isDirectSummary = matches.call(node, "details>summary:first-of-type"); - var nodeUnderDetails = isDirectSummary ? node.parentElement : node; - if (matches.call(nodeUnderDetails, "details:not([open]) *")) { - return true; - } - if (!displayCheck || displayCheck === "full" || displayCheck === "legacy-full") { - if (typeof getShadowRoot === "function") { - var originalNode = node; - while (node) { - var parentElement = node.parentElement; - var rootNode = getRootNode(node); - if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) { - return isZeroArea(node); - } else if (node.assignedSlot) { - node = node.assignedSlot; - } else if (!parentElement && rootNode !== node.ownerDocument) { - node = rootNode.host; - } else { - node = parentElement; - } - } - node = originalNode; - } - if (isNodeAttached(node)) { - return !node.getClientRects().length; - } - if (displayCheck !== "legacy-full") { - return true; - } - } else if (displayCheck === "non-zero-area") { - return isZeroArea(node); - } - return false; - }; - var isDisabledFromFieldset = function isDisabledFromFieldset2(node) { - if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) { - var parentNode = node.parentElement; - while (parentNode) { - if (parentNode.tagName === "FIELDSET" && parentNode.disabled) { - for (var i = 0; i < parentNode.children.length; i++) { - var child = parentNode.children.item(i); - if (child.tagName === "LEGEND") { - return matches.call(parentNode, "fieldset[disabled] *") ? true : !child.contains(node); - } - } - return true; - } - parentNode = parentNode.parentElement; - } - } - return false; - }; - var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) { - if (node.disabled || // we must do an inert look up to filter out any elements inside an inert ancestor - // because we're limited in the type of selectors we can use in JSDom (see related - // note related to `candidateSelectors`) - isInert(node) || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus - isDetailsWithSummary(node) || isDisabledFromFieldset(node)) { - return false; - } - return true; - }; - var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) { - if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) { - return false; - } - return true; - }; - var isValidShadowRootTabbable = function isValidShadowRootTabbable2(shadowHostNode) { - var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10); - if (isNaN(tabIndex) || tabIndex >= 0) { - return true; - } - return false; - }; - var sortByOrder = function sortByOrder2(candidates) { - var regularTabbables = []; - var orderedTabbables = []; - candidates.forEach(function(item, i) { - var isScope = !!item.scopeParent; - var element2 = isScope ? item.scopeParent : item; - var candidateTabindex = getSortOrderTabIndex(element2, isScope); - var elements = isScope ? sortByOrder2(item.candidates) : element2; - if (candidateTabindex === 0) { - isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element2); - } else { - orderedTabbables.push({ - documentOrder: i, - tabIndex: candidateTabindex, - item, - isScope, - content: elements - }); - } - }); - return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) { - sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content); - return acc; - }, []).concat(regularTabbables); - }; - var tabbable = function tabbable2(container, options) { - options = options || {}; - var candidates; - if (options.getShadowRoot) { - candidates = getCandidatesIteratively([container], options.includeContainer, { - filter: isNodeMatchingSelectorTabbable.bind(null, options), - flatten: false, - getShadowRoot: options.getShadowRoot, - shadowRootFilter: isValidShadowRootTabbable - }); - } else { - candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options)); - } - return sortByOrder(candidates); - }; - var focusable = function focusable2(container, options) { - options = options || {}; - var candidates; - if (options.getShadowRoot) { - candidates = getCandidatesIteratively([container], options.includeContainer, { - filter: isNodeMatchingSelectorFocusable.bind(null, options), - flatten: true, - getShadowRoot: options.getShadowRoot - }); - } else { - candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options)); - } - return candidates; - }; - var isTabbable = function isTabbable2(node, options) { - options = options || {}; - if (!node) { - throw new Error("No node provided"); - } - if (matches.call(node, candidateSelector) === false) { - return false; - } - return isNodeMatchingSelectorTabbable(options, node); - }; - var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe").join(","); - var isFocusable = function isFocusable2(node, options) { - options = options || {}; - if (!node) { - throw new Error("No node provided"); - } - if (matches.call(node, focusableCandidateSelector) === false) { - return false; - } - return isNodeMatchingSelectorFocusable(options, node); - }; - - // node_modules/focus-trap/dist/focus-trap.esm.js - function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - return keys; - } - function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? ownKeys(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - return target; - } - function _defineProperty(obj, key, value) { - key = _toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; - } - function _toPrimitive(input, hint) { - if (typeof input !== "object" || input === null) - return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== void 0) { - var res = prim.call(input, hint || "default"); - if (typeof res !== "object") - return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); - } - function _toPropertyKey(arg) { - var key = _toPrimitive(arg, "string"); - return typeof key === "symbol" ? key : String(key); - } - var activeFocusTraps = { - activateTrap: function activateTrap(trapStack, trap4) { - if (trapStack.length > 0) { - var activeTrap = trapStack[trapStack.length - 1]; - if (activeTrap !== trap4) { - activeTrap.pause(); - } - } - var trapIndex = trapStack.indexOf(trap4); - if (trapIndex === -1) { - trapStack.push(trap4); - } else { - trapStack.splice(trapIndex, 1); - trapStack.push(trap4); - } - }, - deactivateTrap: function deactivateTrap(trapStack, trap4) { - var trapIndex = trapStack.indexOf(trap4); - if (trapIndex !== -1) { - trapStack.splice(trapIndex, 1); - } - if (trapStack.length > 0) { - trapStack[trapStack.length - 1].unpause(); - } - } - }; - var isSelectableInput = function isSelectableInput2(node) { - return node.tagName && node.tagName.toLowerCase() === "input" && typeof node.select === "function"; - }; - var isEscapeEvent = function isEscapeEvent2(e) { - return (e === null || e === void 0 ? void 0 : e.key) === "Escape" || (e === null || e === void 0 ? void 0 : e.key) === "Esc" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27; - }; - var isTabEvent = function isTabEvent2(e) { - return (e === null || e === void 0 ? void 0 : e.key) === "Tab" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9; - }; - var isKeyForward = function isKeyForward2(e) { - return isTabEvent(e) && !e.shiftKey; - }; - var isKeyBackward = function isKeyBackward2(e) { - return isTabEvent(e) && e.shiftKey; - }; - var delay = function delay2(fn2) { - return setTimeout(fn2, 0); - }; - var findIndex = function findIndex2(arr, fn2) { - var idx = -1; - arr.every(function(value, i) { - if (fn2(value)) { - idx = i; - return false; - } - return true; - }); - return idx; - }; - var valueOrHandler = function valueOrHandler2(value) { - for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - params[_key - 1] = arguments[_key]; - } - return typeof value === "function" ? value.apply(void 0, params) : value; - }; - var getActualTarget = function getActualTarget2(event) { - return event.target.shadowRoot && typeof event.composedPath === "function" ? event.composedPath()[0] : event.target; - }; - var internalTrapStack = []; - var createFocusTrap = function createFocusTrap2(elements, userOptions) { - var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; - var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack; - var config = _objectSpread2({ - returnFocusOnDeactivate: true, - escapeDeactivates: true, - delayInitialFocus: true, - isKeyForward, - isKeyBackward - }, userOptions); - var state = { - // containers given to createFocusTrap() - // @type {Array} - containers: [], - // list of objects identifying tabbable nodes in `containers` in the trap - // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap - // is active, but the trap should never get to a state where there isn't at least one group - // with at least one tabbable node in it (that would lead to an error condition that would - // result in an error being thrown) - // @type {Array<{ - // container: HTMLElement, - // tabbableNodes: Array, // empty if none - // focusableNodes: Array, // empty if none - // posTabIndexesFound: boolean, - // firstTabbableNode: HTMLElement|undefined, - // lastTabbableNode: HTMLElement|undefined, - // firstDomTabbableNode: HTMLElement|undefined, - // lastDomTabbableNode: HTMLElement|undefined, - // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined - // }>} - containerGroups: [], - // same order/length as `containers` list - // references to objects in `containerGroups`, but only those that actually have - // tabbable nodes in them - // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__ - // the same length - tabbableGroups: [], - nodeFocusedBeforeActivation: null, - mostRecentlyFocusedNode: null, - active: false, - paused: false, - // timer ID for when delayInitialFocus is true and initial focus in this trap - // has been delayed during activation - delayInitialFocusTimer: void 0, - // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any - recentNavEvent: void 0 - }; - var trap4; - var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) { - return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName]; - }; - var findContainerIndex = function findContainerIndex2(element2, event) { - var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === "function" ? event.composedPath() : void 0; - return state.containerGroups.findIndex(function(_ref) { - var container = _ref.container, tabbableNodes = _ref.tabbableNodes; - return container.contains(element2) || // fall back to explicit tabbable search which will take into consideration any - // web components if the `tabbableOptions.getShadowRoot` option was used for - // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't - // look inside web components even if open) - (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) { - return node === element2; - }); - }); - }; - var getNodeForOption = function getNodeForOption2(optionName) { - var optionValue = config[optionName]; - if (typeof optionValue === "function") { - for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - params[_key2 - 1] = arguments[_key2]; - } - optionValue = optionValue.apply(void 0, params); - } - if (optionValue === true) { - optionValue = void 0; - } - if (!optionValue) { - if (optionValue === void 0 || optionValue === false) { - return optionValue; - } - throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node")); - } - var node = optionValue; - if (typeof optionValue === "string") { - node = doc.querySelector(optionValue); - if (!node) { - throw new Error("`".concat(optionName, "` as selector refers to no known node")); - } - } - return node; - }; - var getInitialFocusNode = function getInitialFocusNode2() { - var node = getNodeForOption("initialFocus"); - if (node === false) { - return false; - } - if (node === void 0 || !isFocusable(node, config.tabbableOptions)) { - if (findContainerIndex(doc.activeElement) >= 0) { - node = doc.activeElement; - } else { - var firstTabbableGroup = state.tabbableGroups[0]; - var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; - node = firstTabbableNode || getNodeForOption("fallbackFocus"); - } - } - if (!node) { - throw new Error("Your focus-trap needs to have at least one focusable element"); - } - return node; - }; - var updateTabbableNodes = function updateTabbableNodes2() { - state.containerGroups = state.containers.map(function(container) { - var tabbableNodes = tabbable(container, config.tabbableOptions); - var focusableNodes = focusable(container, config.tabbableOptions); - var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0; - var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0; - var firstDomTabbableNode = focusableNodes.find(function(node) { - return isTabbable(node); - }); - var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) { - return isTabbable(node); - }); - var posTabIndexesFound = !!tabbableNodes.find(function(node) { - return getTabIndex(node) > 0; - }); - return { - container, - tabbableNodes, - focusableNodes, - /** True if at least one node with positive `tabindex` was found in this container. */ - posTabIndexesFound, - /** First tabbable node in container, __tabindex__ order; `undefined` if none. */ - firstTabbableNode, - /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */ - lastTabbableNode, - // NOTE: DOM order is NOT NECESSARILY "document position" order, but figuring that out - // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition - // because that API doesn't work with Shadow DOM as well as it should (@see - // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far, - // to address an edge case related to positive tabindex support, this seems like a much easier, - // "close enough most of the time" alternative for positive tabindexes which should generally - // be avoided anyway... - /** First tabbable node in container, __DOM__ order; `undefined` if none. */ - firstDomTabbableNode, - /** Last tabbable node in container, __DOM__ order; `undefined` if none. */ - lastDomTabbableNode, - /** - * Finds the __tabbable__ node that follows the given node in the specified direction, - * in this container, if any. - * @param {HTMLElement} node - * @param {boolean} [forward] True if going in forward tab order; false if going - * in reverse. - * @returns {HTMLElement|undefined} The next tabbable node, if any. - */ - nextTabbableNode: function nextTabbableNode(node) { - var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - var nodeIdx = tabbableNodes.indexOf(node); - if (nodeIdx < 0) { - if (forward) { - return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) { - return isTabbable(el); - }); - } - return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) { - return isTabbable(el); - }); - } - return tabbableNodes[nodeIdx + (forward ? 1 : -1)]; - } - }; - }); - state.tabbableGroups = state.containerGroups.filter(function(group) { - return group.tabbableNodes.length > 0; - }); - if (state.tabbableGroups.length <= 0 && !getNodeForOption("fallbackFocus")) { - throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times"); - } - if (state.containerGroups.find(function(g) { - return g.posTabIndexesFound; - }) && state.containerGroups.length > 1) { - throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps."); - } - }; - var tryFocus = function tryFocus2(node) { - if (node === false) { - return; - } - if (node === doc.activeElement) { - return; - } - if (!node || !node.focus) { - tryFocus2(getInitialFocusNode()); - return; - } - node.focus({ - preventScroll: !!config.preventScroll - }); - state.mostRecentlyFocusedNode = node; - if (isSelectableInput(node)) { - node.select(); - } - }; - var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) { - var node = getNodeForOption("setReturnFocus", previousActiveElement); - return node ? node : node === false ? false : previousActiveElement; - }; - var findNextNavNode = function findNextNavNode2(_ref2) { - var target = _ref2.target, event = _ref2.event, _ref2$isBackward = _ref2.isBackward, isBackward = _ref2$isBackward === void 0 ? false : _ref2$isBackward; - target = target || getActualTarget(event); - updateTabbableNodes(); - var destinationNode = null; - if (state.tabbableGroups.length > 0) { - var containerIndex = findContainerIndex(target, event); - var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0; - if (containerIndex < 0) { - if (isBackward) { - destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; - } else { - destinationNode = state.tabbableGroups[0].firstTabbableNode; - } - } else if (isBackward) { - var startOfGroupIndex = findIndex(state.tabbableGroups, function(_ref3) { - var firstTabbableNode = _ref3.firstTabbableNode; - return target === firstTabbableNode; - }); - if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { - startOfGroupIndex = containerIndex; - } - if (startOfGroupIndex >= 0) { - var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; - var destinationGroup = state.tabbableGroups[destinationGroupIndex]; - destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode; - } else if (!isTabEvent(event)) { - destinationNode = containerGroup.nextTabbableNode(target, false); - } - } else { - var lastOfGroupIndex = findIndex(state.tabbableGroups, function(_ref4) { - var lastTabbableNode = _ref4.lastTabbableNode; - return target === lastTabbableNode; - }); - if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { - lastOfGroupIndex = containerIndex; - } - if (lastOfGroupIndex >= 0) { - var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; - var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; - destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode; - } else if (!isTabEvent(event)) { - destinationNode = containerGroup.nextTabbableNode(target); - } - } - } else { - destinationNode = getNodeForOption("fallbackFocus"); - } - return destinationNode; - }; - var checkPointerDown = function checkPointerDown2(e) { - var target = getActualTarget(e); - if (findContainerIndex(target, e) >= 0) { - return; - } - if (valueOrHandler(config.clickOutsideDeactivates, e)) { - trap4.deactivate({ - // NOTE: by setting `returnFocus: false`, deactivate() will do nothing, - // which will result in the outside click setting focus to the node - // that was clicked (and if not focusable, to "nothing"); by setting - // `returnFocus: true`, we'll attempt to re-focus the node originally-focused - // on activation (or the configured `setReturnFocus` node), whether the - // outside click was on a focusable node or not - returnFocus: config.returnFocusOnDeactivate - }); - return; - } - if (valueOrHandler(config.allowOutsideClick, e)) { - return; - } - e.preventDefault(); - }; - var checkFocusIn = function checkFocusIn2(event) { - var target = getActualTarget(event); - var targetContained = findContainerIndex(target, event) >= 0; - if (targetContained || target instanceof Document) { - if (targetContained) { - state.mostRecentlyFocusedNode = target; - } - } else { - event.stopImmediatePropagation(); - var nextNode; - var navAcrossContainers = true; - if (state.mostRecentlyFocusedNode) { - if (getTabIndex(state.mostRecentlyFocusedNode) > 0) { - var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode); - var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes; - if (tabbableNodes.length > 0) { - var mruTabIdx = tabbableNodes.findIndex(function(node) { - return node === state.mostRecentlyFocusedNode; - }); - if (mruTabIdx >= 0) { - if (config.isKeyForward(state.recentNavEvent)) { - if (mruTabIdx + 1 < tabbableNodes.length) { - nextNode = tabbableNodes[mruTabIdx + 1]; - navAcrossContainers = false; - } - } else { - if (mruTabIdx - 1 >= 0) { - nextNode = tabbableNodes[mruTabIdx - 1]; - navAcrossContainers = false; - } - } - } - } - } else { - if (!state.containerGroups.some(function(g) { - return g.tabbableNodes.some(function(n) { - return getTabIndex(n) > 0; - }); - })) { - navAcrossContainers = false; - } - } - } else { - navAcrossContainers = false; - } - if (navAcrossContainers) { - nextNode = findNextNavNode({ - // move FROM the MRU node, not event-related node (which will be the node that is - // outside the trap causing the focus escape we're trying to fix) - target: state.mostRecentlyFocusedNode, - isBackward: config.isKeyBackward(state.recentNavEvent) - }); - } - if (nextNode) { - tryFocus(nextNode); - } else { - tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); - } - } - state.recentNavEvent = void 0; - }; - var checkKeyNav = function checkKeyNav2(event) { - var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; - state.recentNavEvent = event; - var destinationNode = findNextNavNode({ - event, - isBackward - }); - if (destinationNode) { - if (isTabEvent(event)) { - event.preventDefault(); - } - tryFocus(destinationNode); - } - }; - var checkKey = function checkKey2(event) { - if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) { - event.preventDefault(); - trap4.deactivate(); - return; - } - if (config.isKeyForward(event) || config.isKeyBackward(event)) { - checkKeyNav(event, config.isKeyBackward(event)); - } - }; - var checkClick = function checkClick2(e) { - var target = getActualTarget(e); - if (findContainerIndex(target, e) >= 0) { - return; - } - if (valueOrHandler(config.clickOutsideDeactivates, e)) { - return; - } - if (valueOrHandler(config.allowOutsideClick, e)) { - return; - } - e.preventDefault(); - e.stopImmediatePropagation(); - }; - var addListeners = function addListeners2() { - if (!state.active) { - return; - } - activeFocusTraps.activateTrap(trapStack, trap4); - state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function() { - tryFocus(getInitialFocusNode()); - }) : tryFocus(getInitialFocusNode()); - doc.addEventListener("focusin", checkFocusIn, true); - doc.addEventListener("mousedown", checkPointerDown, { - capture: true, - passive: false - }); - doc.addEventListener("touchstart", checkPointerDown, { - capture: true, - passive: false - }); - doc.addEventListener("click", checkClick, { - capture: true, - passive: false - }); - doc.addEventListener("keydown", checkKey, { - capture: true, - passive: false - }); - return trap4; - }; - var removeListeners = function removeListeners2() { - if (!state.active) { - return; - } - doc.removeEventListener("focusin", checkFocusIn, true); - doc.removeEventListener("mousedown", checkPointerDown, true); - doc.removeEventListener("touchstart", checkPointerDown, true); - doc.removeEventListener("click", checkClick, true); - doc.removeEventListener("keydown", checkKey, true); - return trap4; - }; - var checkDomRemoval = function checkDomRemoval2(mutations) { - var isFocusedNodeRemoved = mutations.some(function(mutation) { - var removedNodes = Array.from(mutation.removedNodes); - return removedNodes.some(function(node) { - return node === state.mostRecentlyFocusedNode; - }); - }); - if (isFocusedNodeRemoved) { - tryFocus(getInitialFocusNode()); - } - }; - var mutationObserver = typeof window !== "undefined" && "MutationObserver" in window ? new MutationObserver(checkDomRemoval) : void 0; - var updateObservedNodes = function updateObservedNodes2() { - if (!mutationObserver) { - return; - } - mutationObserver.disconnect(); - if (state.active && !state.paused) { - state.containers.map(function(container) { - mutationObserver.observe(container, { - subtree: true, - childList: true - }); - }); - } - }; - trap4 = { - get active() { - return state.active; - }, - get paused() { - return state.paused; - }, - activate: function activate(activateOptions) { - if (state.active) { - return this; - } - var onActivate = getOption(activateOptions, "onActivate"); - var onPostActivate = getOption(activateOptions, "onPostActivate"); - var checkCanFocusTrap = getOption(activateOptions, "checkCanFocusTrap"); - if (!checkCanFocusTrap) { - updateTabbableNodes(); - } - state.active = true; - state.paused = false; - state.nodeFocusedBeforeActivation = doc.activeElement; - onActivate === null || onActivate === void 0 ? void 0 : onActivate(); - var finishActivation = function finishActivation2() { - if (checkCanFocusTrap) { - updateTabbableNodes(); - } - addListeners(); - updateObservedNodes(); - onPostActivate === null || onPostActivate === void 0 ? void 0 : onPostActivate(); - }; - if (checkCanFocusTrap) { - checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); - return this; - } - finishActivation(); - return this; - }, - deactivate: function deactivate(deactivateOptions) { - if (!state.active) { - return this; - } - var options = _objectSpread2({ - onDeactivate: config.onDeactivate, - onPostDeactivate: config.onPostDeactivate, - checkCanReturnFocus: config.checkCanReturnFocus - }, deactivateOptions); - clearTimeout(state.delayInitialFocusTimer); - state.delayInitialFocusTimer = void 0; - removeListeners(); - state.active = false; - state.paused = false; - updateObservedNodes(); - activeFocusTraps.deactivateTrap(trapStack, trap4); - var onDeactivate = getOption(options, "onDeactivate"); - var onPostDeactivate = getOption(options, "onPostDeactivate"); - var checkCanReturnFocus = getOption(options, "checkCanReturnFocus"); - var returnFocus = getOption(options, "returnFocus", "returnFocusOnDeactivate"); - onDeactivate === null || onDeactivate === void 0 ? void 0 : onDeactivate(); - var finishDeactivation = function finishDeactivation2() { - delay(function() { - if (returnFocus) { - tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); - } - onPostDeactivate === null || onPostDeactivate === void 0 ? void 0 : onPostDeactivate(); - }); - }; - if (returnFocus && checkCanReturnFocus) { - checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation); - return this; - } - finishDeactivation(); - return this; - }, - pause: function pause(pauseOptions) { - if (state.paused || !state.active) { - return this; - } - var onPause = getOption(pauseOptions, "onPause"); - var onPostPause = getOption(pauseOptions, "onPostPause"); - state.paused = true; - onPause === null || onPause === void 0 ? void 0 : onPause(); - removeListeners(); - updateObservedNodes(); - onPostPause === null || onPostPause === void 0 ? void 0 : onPostPause(); - return this; - }, - unpause: function unpause(unpauseOptions) { - if (!state.paused || !state.active) { - return this; - } - var onUnpause = getOption(unpauseOptions, "onUnpause"); - var onPostUnpause = getOption(unpauseOptions, "onPostUnpause"); - state.paused = false; - onUnpause === null || onUnpause === void 0 ? void 0 : onUnpause(); - updateTabbableNodes(); - addListeners(); - updateObservedNodes(); - onPostUnpause === null || onPostUnpause === void 0 ? void 0 : onPostUnpause(); - return this; - }, - updateContainerElements: function updateContainerElements(containerElements) { - var elementsAsArray = [].concat(containerElements).filter(Boolean); - state.containers = elementsAsArray.map(function(element2) { - return typeof element2 === "string" ? doc.querySelector(element2) : element2; - }); - if (state.active) { - updateTabbableNodes(); - } - updateObservedNodes(); - return this; - } - }; - trap4.updateContainerElements(elements); - return trap4; - }; - - // node_modules/@popperjs/core/lib/enums.js - var top = "top"; - var bottom = "bottom"; - var right = "right"; - var left = "left"; - var auto = "auto"; - var basePlacements = [top, bottom, right, left]; - var start = "start"; - var end = "end"; - var clippingParents = "clippingParents"; - var viewport = "viewport"; - var popper = "popper"; - var reference = "reference"; - var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) { - return acc.concat([placement + "-" + start, placement + "-" + end]); - }, []); - var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) { - return acc.concat([placement, placement + "-" + start, placement + "-" + end]); - }, []); - var beforeRead = "beforeRead"; - var read = "read"; - var afterRead = "afterRead"; - var beforeMain = "beforeMain"; - var main = "main"; - var afterMain = "afterMain"; - var beforeWrite = "beforeWrite"; - var write = "write"; - var afterWrite = "afterWrite"; - var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; - - // node_modules/@popperjs/core/lib/dom-utils/getNodeName.js - function getNodeName(element2) { - return element2 ? (element2.nodeName || "").toLowerCase() : null; - } - - // node_modules/@popperjs/core/lib/dom-utils/getWindow.js - function getWindow(node) { - if (node == null) { - return window; - } - if (node.toString() !== "[object Window]") { - var ownerDocument = node.ownerDocument; - return ownerDocument ? ownerDocument.defaultView || window : window; - } - return node; - } - - // node_modules/@popperjs/core/lib/dom-utils/instanceOf.js - function isElement(node) { - var OwnElement = getWindow(node).Element; - return node instanceof OwnElement || node instanceof Element; - } - function isHTMLElement(node) { - var OwnElement = getWindow(node).HTMLElement; - return node instanceof OwnElement || node instanceof HTMLElement; - } - function isShadowRoot(node) { - if (typeof ShadowRoot === "undefined") { - return false; - } - var OwnElement = getWindow(node).ShadowRoot; - return node instanceof OwnElement || node instanceof ShadowRoot; - } - - // node_modules/@popperjs/core/lib/modifiers/applyStyles.js - function applyStyles(_ref) { - var state = _ref.state; - Object.keys(state.elements).forEach(function(name) { - var style = state.styles[name] || {}; - var attributes = state.attributes[name] || {}; - var element2 = state.elements[name]; - if (!isHTMLElement(element2) || !getNodeName(element2)) { - return; - } - Object.assign(element2.style, style); - Object.keys(attributes).forEach(function(name2) { - var value = attributes[name2]; - if (value === false) { - element2.removeAttribute(name2); - } else { - element2.setAttribute(name2, value === true ? "" : value); - } - }); - }); - } - function effect(_ref2) { - var state = _ref2.state; - var initialStyles = { - popper: { - position: state.options.strategy, - left: "0", - top: "0", - margin: "0" - }, - arrow: { - position: "absolute" - }, - reference: {} - }; - Object.assign(state.elements.popper.style, initialStyles.popper); - state.styles = initialStyles; - if (state.elements.arrow) { - Object.assign(state.elements.arrow.style, initialStyles.arrow); - } - return function() { - Object.keys(state.elements).forEach(function(name) { - var element2 = state.elements[name]; - var attributes = state.attributes[name] || {}; - var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); - var style = styleProperties.reduce(function(style2, property) { - style2[property] = ""; - return style2; - }, {}); - if (!isHTMLElement(element2) || !getNodeName(element2)) { - return; - } - Object.assign(element2.style, style); - Object.keys(attributes).forEach(function(attribute) { - element2.removeAttribute(attribute); - }); - }); - }; - } - var applyStyles_default = { - name: "applyStyles", - enabled: true, - phase: "write", - fn: applyStyles, - effect, - requires: ["computeStyles"] - }; - - // node_modules/@popperjs/core/lib/utils/getBasePlacement.js - function getBasePlacement(placement) { - return placement.split("-")[0]; - } - - // node_modules/@popperjs/core/lib/utils/math.js - var max = Math.max; - var min = Math.min; - var round = Math.round; - - // node_modules/@popperjs/core/lib/utils/userAgent.js - function getUAString() { - var uaData = navigator.userAgentData; - if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { - return uaData.brands.map(function(item) { - return item.brand + "/" + item.version; - }).join(" "); - } - return navigator.userAgent; - } - - // node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js - function isLayoutViewport() { - return !/^((?!chrome|android).)*safari/i.test(getUAString()); - } - - // node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js - function getBoundingClientRect(element2, includeScale, isFixedStrategy) { - if (includeScale === void 0) { - includeScale = false; - } - if (isFixedStrategy === void 0) { - isFixedStrategy = false; - } - var clientRect = element2.getBoundingClientRect(); - var scaleX = 1; - var scaleY = 1; - if (includeScale && isHTMLElement(element2)) { - scaleX = element2.offsetWidth > 0 ? round(clientRect.width) / element2.offsetWidth || 1 : 1; - scaleY = element2.offsetHeight > 0 ? round(clientRect.height) / element2.offsetHeight || 1 : 1; - } - var _ref = isElement(element2) ? getWindow(element2) : window, visualViewport = _ref.visualViewport; - var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; - var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; - var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; - var width = clientRect.width / scaleX; - var height = clientRect.height / scaleY; - return { - width, - height, - top: y, - right: x + width, - bottom: y + height, - left: x, - x, - y - }; - } - - // node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js - function getLayoutRect(element2) { - var clientRect = getBoundingClientRect(element2); - var width = element2.offsetWidth; - var height = element2.offsetHeight; - if (Math.abs(clientRect.width - width) <= 1) { - width = clientRect.width; - } - if (Math.abs(clientRect.height - height) <= 1) { - height = clientRect.height; - } - return { - x: element2.offsetLeft, - y: element2.offsetTop, - width, - height - }; - } - - // node_modules/@popperjs/core/lib/dom-utils/contains.js - function contains(parent, child) { - var rootNode = child.getRootNode && child.getRootNode(); - if (parent.contains(child)) { - return true; - } else if (rootNode && isShadowRoot(rootNode)) { - var next = child; - do { - if (next && parent.isSameNode(next)) { - return true; - } - next = next.parentNode || next.host; - } while (next); - } - return false; - } - - // node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js - function getComputedStyle2(element2) { - return getWindow(element2).getComputedStyle(element2); - } - - // node_modules/@popperjs/core/lib/dom-utils/isTableElement.js - function isTableElement(element2) { - return ["table", "td", "th"].indexOf(getNodeName(element2)) >= 0; - } - - // node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js - function getDocumentElement(element2) { - return ((isElement(element2) ? element2.ownerDocument : ( - // $FlowFixMe[prop-missing] - element2.document - )) || window.document).documentElement; - } - - // node_modules/@popperjs/core/lib/dom-utils/getParentNode.js - function getParentNode(element2) { - if (getNodeName(element2) === "html") { - return element2; - } - return ( - // this is a quicker (but less type safe) way to save quite some bytes from the bundle - // $FlowFixMe[incompatible-return] - // $FlowFixMe[prop-missing] - element2.assignedSlot || // step into the shadow DOM of the parent of a slotted node - element2.parentNode || // DOM Element detected - (isShadowRoot(element2) ? element2.host : null) || // ShadowRoot detected - // $FlowFixMe[incompatible-call]: HTMLElement is a Node - getDocumentElement(element2) - ); - } - - // node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js - function getTrueOffsetParent(element2) { - if (!isHTMLElement(element2) || // https://github.com/popperjs/popper-core/issues/837 - getComputedStyle2(element2).position === "fixed") { - return null; - } - return element2.offsetParent; - } - function getContainingBlock(element2) { - var isFirefox = /firefox/i.test(getUAString()); - var isIE = /Trident/i.test(getUAString()); - if (isIE && isHTMLElement(element2)) { - var elementCss = getComputedStyle2(element2); - if (elementCss.position === "fixed") { - return null; - } - } - var currentNode = getParentNode(element2); - if (isShadowRoot(currentNode)) { - currentNode = currentNode.host; - } - while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) { - var css = getComputedStyle2(currentNode); - if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") { - return currentNode; - } else { - currentNode = currentNode.parentNode; - } - } - return null; - } - function getOffsetParent(element2) { - var window2 = getWindow(element2); - var offsetParent = getTrueOffsetParent(element2); - while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") { - offsetParent = getTrueOffsetParent(offsetParent); - } - if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) { - return window2; - } - return offsetParent || getContainingBlock(element2) || window2; - } - - // node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js - function getMainAxisFromPlacement(placement) { - return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y"; - } - - // node_modules/@popperjs/core/lib/utils/within.js - function within(min2, value, max2) { - return max(min2, min(value, max2)); - } - function withinMaxClamp(min2, value, max2) { - var v = within(min2, value, max2); - return v > max2 ? max2 : v; - } - - // node_modules/@popperjs/core/lib/utils/getFreshSideObject.js - function getFreshSideObject() { - return { - top: 0, - right: 0, - bottom: 0, - left: 0 - }; - } - - // node_modules/@popperjs/core/lib/utils/mergePaddingObject.js - function mergePaddingObject(paddingObject) { - return Object.assign({}, getFreshSideObject(), paddingObject); - } - - // node_modules/@popperjs/core/lib/utils/expandToHashMap.js - function expandToHashMap(value, keys) { - return keys.reduce(function(hashMap, key) { - hashMap[key] = value; - return hashMap; - }, {}); - } - - // node_modules/@popperjs/core/lib/modifiers/arrow.js - var toPaddingObject = function toPaddingObject2(padding, state) { - padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, { - placement: state.placement - })) : padding; - return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); - }; - function arrow(_ref) { - var _state$modifiersData$; - var state = _ref.state, name = _ref.name, options = _ref.options; - var arrowElement = state.elements.arrow; - var popperOffsets2 = state.modifiersData.popperOffsets; - var basePlacement = getBasePlacement(state.placement); - var axis = getMainAxisFromPlacement(basePlacement); - var isVertical = [left, right].indexOf(basePlacement) >= 0; - var len = isVertical ? "height" : "width"; - if (!arrowElement || !popperOffsets2) { - return; - } - var paddingObject = toPaddingObject(options.padding, state); - var arrowRect = getLayoutRect(arrowElement); - var minProp = axis === "y" ? top : left; - var maxProp = axis === "y" ? bottom : right; - var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len]; - var startDiff = popperOffsets2[axis] - state.rects.reference[axis]; - var arrowOffsetParent = getOffsetParent(arrowElement); - var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; - var centerToReference = endDiff / 2 - startDiff / 2; - var min2 = paddingObject[minProp]; - var max2 = clientSize - arrowRect[len] - paddingObject[maxProp]; - var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; - var offset3 = within(min2, center, max2); - var axisProp = axis; - state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset3, _state$modifiersData$.centerOffset = offset3 - center, _state$modifiersData$); - } - function effect2(_ref2) { - var state = _ref2.state, options = _ref2.options; - var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element; - if (arrowElement == null) { - return; - } - if (typeof arrowElement === "string") { - arrowElement = state.elements.popper.querySelector(arrowElement); - if (!arrowElement) { - return; - } - } - if (!contains(state.elements.popper, arrowElement)) { - return; - } - state.elements.arrow = arrowElement; - } - var arrow_default = { - name: "arrow", - enabled: true, - phase: "main", - fn: arrow, - effect: effect2, - requires: ["popperOffsets"], - requiresIfExists: ["preventOverflow"] - }; - - // node_modules/@popperjs/core/lib/utils/getVariation.js - function getVariation(placement) { - return placement.split("-")[1]; - } - - // node_modules/@popperjs/core/lib/modifiers/computeStyles.js - var unsetSides = { - top: "auto", - right: "auto", - bottom: "auto", - left: "auto" - }; - function roundOffsetsByDPR(_ref, win) { - var x = _ref.x, y = _ref.y; - var dpr = win.devicePixelRatio || 1; - return { - x: round(x * dpr) / dpr || 0, - y: round(y * dpr) / dpr || 0 - }; - } - function mapToStyles(_ref2) { - var _Object$assign2; - var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed; - var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y; - var _ref3 = typeof roundOffsets === "function" ? roundOffsets({ - x, - y - }) : { - x, - y - }; - x = _ref3.x; - y = _ref3.y; - var hasX = offsets.hasOwnProperty("x"); - var hasY = offsets.hasOwnProperty("y"); - var sideX = left; - var sideY = top; - var win = window; - if (adaptive) { - var offsetParent = getOffsetParent(popper2); - var heightProp = "clientHeight"; - var widthProp = "clientWidth"; - if (offsetParent === getWindow(popper2)) { - offsetParent = getDocumentElement(popper2); - if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") { - heightProp = "scrollHeight"; - widthProp = "scrollWidth"; - } - } - offsetParent = offsetParent; - if (placement === top || (placement === left || placement === right) && variation === end) { - sideY = bottom; - var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : ( - // $FlowFixMe[prop-missing] - offsetParent[heightProp] - ); - y -= offsetY - popperRect.height; - y *= gpuAcceleration ? 1 : -1; - } - if (placement === left || (placement === top || placement === bottom) && variation === end) { - sideX = right; - var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : ( - // $FlowFixMe[prop-missing] - offsetParent[widthProp] - ); - x -= offsetX - popperRect.width; - x *= gpuAcceleration ? 1 : -1; - } - } - var commonStyles = Object.assign({ - position - }, adaptive && unsetSides); - var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ - x, - y - }, getWindow(popper2)) : { - x, - y - }; - x = _ref4.x; - y = _ref4.y; - if (gpuAcceleration) { - var _Object$assign; - return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); - } - return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2)); - } - function computeStyles(_ref5) { - var state = _ref5.state, options = _ref5.options; - var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; - var commonStyles = { - placement: getBasePlacement(state.placement), - variation: getVariation(state.placement), - popper: state.elements.popper, - popperRect: state.rects.popper, - gpuAcceleration, - isFixed: state.options.strategy === "fixed" - }; - if (state.modifiersData.popperOffsets != null) { - state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { - offsets: state.modifiersData.popperOffsets, - position: state.options.strategy, - adaptive, - roundOffsets - }))); - } - if (state.modifiersData.arrow != null) { - state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { - offsets: state.modifiersData.arrow, - position: "absolute", - adaptive: false, - roundOffsets - }))); - } - state.attributes.popper = Object.assign({}, state.attributes.popper, { - "data-popper-placement": state.placement - }); - } - var computeStyles_default = { - name: "computeStyles", - enabled: true, - phase: "beforeWrite", - fn: computeStyles, - data: {} - }; - - // node_modules/@popperjs/core/lib/modifiers/eventListeners.js - var passive = { - passive: true - }; - function effect3(_ref) { - var state = _ref.state, instance = _ref.instance, options = _ref.options; - var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize; - var window2 = getWindow(state.elements.popper); - var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); - if (scroll) { - scrollParents.forEach(function(scrollParent) { - scrollParent.addEventListener("scroll", instance.update, passive); - }); - } - if (resize) { - window2.addEventListener("resize", instance.update, passive); - } - return function() { - if (scroll) { - scrollParents.forEach(function(scrollParent) { - scrollParent.removeEventListener("scroll", instance.update, passive); - }); - } - if (resize) { - window2.removeEventListener("resize", instance.update, passive); - } - }; - } - var eventListeners_default = { - name: "eventListeners", - enabled: true, - phase: "write", - fn: function fn() { - }, - effect: effect3, - data: {} - }; - - // node_modules/@popperjs/core/lib/utils/getOppositePlacement.js - var hash = { - left: "right", - right: "left", - bottom: "top", - top: "bottom" - }; - function getOppositePlacement(placement) { - return placement.replace(/left|right|bottom|top/g, function(matched) { - return hash[matched]; - }); - } - - // node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js - var hash2 = { - start: "end", - end: "start" - }; - function getOppositeVariationPlacement(placement) { - return placement.replace(/start|end/g, function(matched) { - return hash2[matched]; - }); - } - - // node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js - function getWindowScroll(node) { - var win = getWindow(node); - var scrollLeft = win.pageXOffset; - var scrollTop = win.pageYOffset; - return { - scrollLeft, - scrollTop - }; - } - - // node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js - function getWindowScrollBarX(element2) { - return getBoundingClientRect(getDocumentElement(element2)).left + getWindowScroll(element2).scrollLeft; - } - - // node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js - function getViewportRect(element2, strategy) { - var win = getWindow(element2); - var html = getDocumentElement(element2); - var visualViewport = win.visualViewport; - var width = html.clientWidth; - var height = html.clientHeight; - var x = 0; - var y = 0; - if (visualViewport) { - width = visualViewport.width; - height = visualViewport.height; - var layoutViewport = isLayoutViewport(); - if (layoutViewport || !layoutViewport && strategy === "fixed") { - x = visualViewport.offsetLeft; - y = visualViewport.offsetTop; - } - } - return { - width, - height, - x: x + getWindowScrollBarX(element2), - y - }; - } - - // node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js - function getDocumentRect(element2) { - var _element$ownerDocumen; - var html = getDocumentElement(element2); - var winScroll = getWindowScroll(element2); - var body = (_element$ownerDocumen = element2.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; - var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); - var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); - var x = -winScroll.scrollLeft + getWindowScrollBarX(element2); - var y = -winScroll.scrollTop; - if (getComputedStyle2(body || html).direction === "rtl") { - x += max(html.clientWidth, body ? body.clientWidth : 0) - width; - } - return { - width, - height, - x, - y - }; - } - - // node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js - function isScrollParent(element2) { - var _getComputedStyle = getComputedStyle2(element2), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY; - return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); - } - - // node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js - function getScrollParent(node) { - if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) { - return node.ownerDocument.body; - } - if (isHTMLElement(node) && isScrollParent(node)) { - return node; - } - return getScrollParent(getParentNode(node)); - } - - // node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js - function listScrollParents(element2, list) { - var _element$ownerDocumen; - if (list === void 0) { - list = []; - } - var scrollParent = getScrollParent(element2); - var isBody = scrollParent === ((_element$ownerDocumen = element2.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); - var win = getWindow(scrollParent); - var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; - var updatedList = list.concat(target); - return isBody ? updatedList : ( - // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here - updatedList.concat(listScrollParents(getParentNode(target))) - ); - } - - // node_modules/@popperjs/core/lib/utils/rectToClientRect.js - function rectToClientRect(rect) { - return Object.assign({}, rect, { - left: rect.x, - top: rect.y, - right: rect.x + rect.width, - bottom: rect.y + rect.height - }); - } - - // node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js - function getInnerBoundingClientRect(element2, strategy) { - var rect = getBoundingClientRect(element2, false, strategy === "fixed"); - rect.top = rect.top + element2.clientTop; - rect.left = rect.left + element2.clientLeft; - rect.bottom = rect.top + element2.clientHeight; - rect.right = rect.left + element2.clientWidth; - rect.width = element2.clientWidth; - rect.height = element2.clientHeight; - rect.x = rect.left; - rect.y = rect.top; - return rect; - } - function getClientRectFromMixedType(element2, clippingParent, strategy) { - return clippingParent === viewport ? rectToClientRect(getViewportRect(element2, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element2))); - } - function getClippingParents(element2) { - var clippingParents2 = listScrollParents(getParentNode(element2)); - var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element2).position) >= 0; - var clipperElement = canEscapeClipping && isHTMLElement(element2) ? getOffsetParent(element2) : element2; - if (!isElement(clipperElement)) { - return []; - } - return clippingParents2.filter(function(clippingParent) { - return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body"; - }); - } - function getClippingRect(element2, boundary, rootBoundary, strategy) { - var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element2) : [].concat(boundary); - var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]); - var firstClippingParent = clippingParents2[0]; - var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) { - var rect = getClientRectFromMixedType(element2, clippingParent, strategy); - accRect.top = max(rect.top, accRect.top); - accRect.right = min(rect.right, accRect.right); - accRect.bottom = min(rect.bottom, accRect.bottom); - accRect.left = max(rect.left, accRect.left); - return accRect; - }, getClientRectFromMixedType(element2, firstClippingParent, strategy)); - clippingRect.width = clippingRect.right - clippingRect.left; - clippingRect.height = clippingRect.bottom - clippingRect.top; - clippingRect.x = clippingRect.left; - clippingRect.y = clippingRect.top; - return clippingRect; - } - - // node_modules/@popperjs/core/lib/utils/computeOffsets.js - function computeOffsets(_ref) { - var reference2 = _ref.reference, element2 = _ref.element, placement = _ref.placement; - var basePlacement = placement ? getBasePlacement(placement) : null; - var variation = placement ? getVariation(placement) : null; - var commonX = reference2.x + reference2.width / 2 - element2.width / 2; - var commonY = reference2.y + reference2.height / 2 - element2.height / 2; - var offsets; - switch (basePlacement) { - case top: - offsets = { - x: commonX, - y: reference2.y - element2.height - }; - break; - case bottom: - offsets = { - x: commonX, - y: reference2.y + reference2.height - }; - break; - case right: - offsets = { - x: reference2.x + reference2.width, - y: commonY - }; - break; - case left: - offsets = { - x: reference2.x - element2.width, - y: commonY - }; - break; - default: - offsets = { - x: reference2.x, - y: reference2.y - }; - } - var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; - if (mainAxis != null) { - var len = mainAxis === "y" ? "height" : "width"; - switch (variation) { - case start: - offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element2[len] / 2); - break; - case end: - offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element2[len] / 2); - break; - default: - } - } - return offsets; - } - - // node_modules/@popperjs/core/lib/utils/detectOverflow.js - function detectOverflow(state, options) { - if (options === void 0) { - options = {}; - } - var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; - var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); - var altContext = elementContext === popper ? reference : popper; - var popperRect = state.rects.popper; - var element2 = state.elements[altBoundary ? altContext : elementContext]; - var clippingClientRect = getClippingRect(isElement(element2) ? element2 : element2.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); - var referenceClientRect = getBoundingClientRect(state.elements.reference); - var popperOffsets2 = computeOffsets({ - reference: referenceClientRect, - element: popperRect, - strategy: "absolute", - placement - }); - var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2)); - var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; - var overflowOffsets = { - top: clippingClientRect.top - elementClientRect.top + paddingObject.top, - bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, - left: clippingClientRect.left - elementClientRect.left + paddingObject.left, - right: elementClientRect.right - clippingClientRect.right + paddingObject.right - }; - var offsetData = state.modifiersData.offset; - if (elementContext === popper && offsetData) { - var offset3 = offsetData[placement]; - Object.keys(overflowOffsets).forEach(function(key) { - var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; - var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x"; - overflowOffsets[key] += offset3[axis] * multiply; - }); - } - return overflowOffsets; - } - - // node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js - function computeAutoPlacement(state, options) { - if (options === void 0) { - options = {}; - } - var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; - var variation = getVariation(placement); - var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) { - return getVariation(placement2) === variation; - }) : basePlacements; - var allowedPlacements = placements2.filter(function(placement2) { - return allowedAutoPlacements.indexOf(placement2) >= 0; - }); - if (allowedPlacements.length === 0) { - allowedPlacements = placements2; - } - var overflows = allowedPlacements.reduce(function(acc, placement2) { - acc[placement2] = detectOverflow(state, { - placement: placement2, - boundary, - rootBoundary, - padding - })[getBasePlacement(placement2)]; - return acc; - }, {}); - return Object.keys(overflows).sort(function(a, b) { - return overflows[a] - overflows[b]; - }); - } - - // node_modules/@popperjs/core/lib/modifiers/flip.js - function getExpandedFallbackPlacements(placement) { - if (getBasePlacement(placement) === auto) { - return []; - } - var oppositePlacement = getOppositePlacement(placement); - return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; - } - function flip(_ref) { - var state = _ref.state, options = _ref.options, name = _ref.name; - if (state.modifiersData[name]._skip) { - return; - } - var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements; - var preferredPlacement = state.options.placement; - var basePlacement = getBasePlacement(preferredPlacement); - var isBasePlacement = basePlacement === preferredPlacement; - var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); - var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) { - return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, { - placement: placement2, - boundary, - rootBoundary, - padding, - flipVariations, - allowedAutoPlacements - }) : placement2); - }, []); - var referenceRect = state.rects.reference; - var popperRect = state.rects.popper; - var checksMap = /* @__PURE__ */ new Map(); - var makeFallbackChecks = true; - var firstFittingPlacement = placements2[0]; - for (var i = 0; i < placements2.length; i++) { - var placement = placements2[i]; - var _basePlacement = getBasePlacement(placement); - var isStartVariation = getVariation(placement) === start; - var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; - var len = isVertical ? "width" : "height"; - var overflow = detectOverflow(state, { - placement, - boundary, - rootBoundary, - altBoundary, - padding - }); - var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; - if (referenceRect[len] > popperRect[len]) { - mainVariationSide = getOppositePlacement(mainVariationSide); - } - var altVariationSide = getOppositePlacement(mainVariationSide); - var checks = []; - if (checkMainAxis) { - checks.push(overflow[_basePlacement] <= 0); - } - if (checkAltAxis) { - checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); - } - if (checks.every(function(check) { - return check; - })) { - firstFittingPlacement = placement; - makeFallbackChecks = false; - break; - } - checksMap.set(placement, checks); - } - if (makeFallbackChecks) { - var numberOfChecks = flipVariations ? 3 : 1; - var _loop = function _loop2(_i2) { - var fittingPlacement = placements2.find(function(placement2) { - var checks2 = checksMap.get(placement2); - if (checks2) { - return checks2.slice(0, _i2).every(function(check) { - return check; - }); - } - }); - if (fittingPlacement) { - firstFittingPlacement = fittingPlacement; - return "break"; - } - }; - for (var _i = numberOfChecks; _i > 0; _i--) { - var _ret = _loop(_i); - if (_ret === "break") - break; - } - } - if (state.placement !== firstFittingPlacement) { - state.modifiersData[name]._skip = true; - state.placement = firstFittingPlacement; - state.reset = true; - } - } - var flip_default = { - name: "flip", - enabled: true, - phase: "main", - fn: flip, - requiresIfExists: ["offset"], - data: { - _skip: false - } - }; - - // node_modules/@popperjs/core/lib/modifiers/hide.js - function getSideOffsets(overflow, rect, preventedOffsets) { - if (preventedOffsets === void 0) { - preventedOffsets = { - x: 0, - y: 0 - }; - } - return { - top: overflow.top - rect.height - preventedOffsets.y, - right: overflow.right - rect.width + preventedOffsets.x, - bottom: overflow.bottom - rect.height + preventedOffsets.y, - left: overflow.left - rect.width - preventedOffsets.x - }; - } - function isAnySideFullyClipped(overflow) { - return [top, right, bottom, left].some(function(side) { - return overflow[side] >= 0; - }); - } - function hide(_ref) { - var state = _ref.state, name = _ref.name; - var referenceRect = state.rects.reference; - var popperRect = state.rects.popper; - var preventedOffsets = state.modifiersData.preventOverflow; - var referenceOverflow = detectOverflow(state, { - elementContext: "reference" - }); - var popperAltOverflow = detectOverflow(state, { - altBoundary: true - }); - var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); - var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); - var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); - var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); - state.modifiersData[name] = { - referenceClippingOffsets, - popperEscapeOffsets, - isReferenceHidden, - hasPopperEscaped - }; - state.attributes.popper = Object.assign({}, state.attributes.popper, { - "data-popper-reference-hidden": isReferenceHidden, - "data-popper-escaped": hasPopperEscaped - }); - } - var hide_default = { - name: "hide", - enabled: true, - phase: "main", - requiresIfExists: ["preventOverflow"], - fn: hide - }; - - // node_modules/@popperjs/core/lib/modifiers/offset.js - function distanceAndSkiddingToXY(placement, rects, offset3) { - var basePlacement = getBasePlacement(placement); - var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; - var _ref = typeof offset3 === "function" ? offset3(Object.assign({}, rects, { - placement - })) : offset3, skidding = _ref[0], distance = _ref[1]; - skidding = skidding || 0; - distance = (distance || 0) * invertDistance; - return [left, right].indexOf(basePlacement) >= 0 ? { - x: distance, - y: skidding - } : { - x: skidding, - y: distance - }; - } - function offset2(_ref2) { - var state = _ref2.state, options = _ref2.options, name = _ref2.name; - var _options$offset = options.offset, offset3 = _options$offset === void 0 ? [0, 0] : _options$offset; - var data = placements.reduce(function(acc, placement) { - acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset3); - return acc; - }, {}); - var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y; - if (state.modifiersData.popperOffsets != null) { - state.modifiersData.popperOffsets.x += x; - state.modifiersData.popperOffsets.y += y; - } - state.modifiersData[name] = data; - } - var offset_default = { - name: "offset", - enabled: true, - phase: "main", - requires: ["popperOffsets"], - fn: offset2 - }; - - // node_modules/@popperjs/core/lib/modifiers/popperOffsets.js - function popperOffsets(_ref) { - var state = _ref.state, name = _ref.name; - state.modifiersData[name] = computeOffsets({ - reference: state.rects.reference, - element: state.rects.popper, - strategy: "absolute", - placement: state.placement - }); - } - var popperOffsets_default = { - name: "popperOffsets", - enabled: true, - phase: "read", - fn: popperOffsets, - data: {} - }; - - // node_modules/@popperjs/core/lib/utils/getAltAxis.js - function getAltAxis(axis) { - return axis === "x" ? "y" : "x"; - } - - // node_modules/@popperjs/core/lib/modifiers/preventOverflow.js - function preventOverflow(_ref) { - var state = _ref.state, options = _ref.options, name = _ref.name; - var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; - var overflow = detectOverflow(state, { - boundary, - rootBoundary, - padding, - altBoundary - }); - var basePlacement = getBasePlacement(state.placement); - var variation = getVariation(state.placement); - var isBasePlacement = !variation; - var mainAxis = getMainAxisFromPlacement(basePlacement); - var altAxis = getAltAxis(mainAxis); - var popperOffsets2 = state.modifiersData.popperOffsets; - var referenceRect = state.rects.reference; - var popperRect = state.rects.popper; - var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, { - placement: state.placement - })) : tetherOffset; - var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? { - mainAxis: tetherOffsetValue, - altAxis: tetherOffsetValue - } : Object.assign({ - mainAxis: 0, - altAxis: 0 - }, tetherOffsetValue); - var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; - var data = { - x: 0, - y: 0 - }; - if (!popperOffsets2) { - return; - } - if (checkMainAxis) { - var _offsetModifierState$; - var mainSide = mainAxis === "y" ? top : left; - var altSide = mainAxis === "y" ? bottom : right; - var len = mainAxis === "y" ? "height" : "width"; - var offset3 = popperOffsets2[mainAxis]; - var min2 = offset3 + overflow[mainSide]; - var max2 = offset3 - overflow[altSide]; - var additive = tether ? -popperRect[len] / 2 : 0; - var minLen = variation === start ? referenceRect[len] : popperRect[len]; - var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; - var arrowElement = state.elements.arrow; - var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { - width: 0, - height: 0 - }; - var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject(); - var arrowPaddingMin = arrowPaddingObject[mainSide]; - var arrowPaddingMax = arrowPaddingObject[altSide]; - var arrowLen = within(0, referenceRect[len], arrowRect[len]); - var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; - var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; - var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); - var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; - var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; - var tetherMin = offset3 + minOffset - offsetModifierValue - clientOffset; - var tetherMax = offset3 + maxOffset - offsetModifierValue; - var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset3, tether ? max(max2, tetherMax) : max2); - popperOffsets2[mainAxis] = preventedOffset; - data[mainAxis] = preventedOffset - offset3; - } - if (checkAltAxis) { - var _offsetModifierState$2; - var _mainSide = mainAxis === "x" ? top : left; - var _altSide = mainAxis === "x" ? bottom : right; - var _offset = popperOffsets2[altAxis]; - var _len = altAxis === "y" ? "height" : "width"; - var _min = _offset + overflow[_mainSide]; - var _max = _offset - overflow[_altSide]; - var isOriginSide = [top, left].indexOf(basePlacement) !== -1; - var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; - var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; - var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; - var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); - popperOffsets2[altAxis] = _preventedOffset; - data[altAxis] = _preventedOffset - _offset; - } - state.modifiersData[name] = data; - } - var preventOverflow_default = { - name: "preventOverflow", - enabled: true, - phase: "main", - fn: preventOverflow, - requiresIfExists: ["offset"] - }; - - // node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js - function getHTMLElementScroll(element2) { - return { - scrollLeft: element2.scrollLeft, - scrollTop: element2.scrollTop - }; - } - - // node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js - function getNodeScroll(node) { - if (node === getWindow(node) || !isHTMLElement(node)) { - return getWindowScroll(node); - } else { - return getHTMLElementScroll(node); - } - } - - // node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js - function isElementScaled(element2) { - var rect = element2.getBoundingClientRect(); - var scaleX = round(rect.width) / element2.offsetWidth || 1; - var scaleY = round(rect.height) / element2.offsetHeight || 1; - return scaleX !== 1 || scaleY !== 1; - } - function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { - if (isFixed === void 0) { - isFixed = false; - } - var isOffsetParentAnElement = isHTMLElement(offsetParent); - var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); - var documentElement = getDocumentElement(offsetParent); - var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); - var scroll = { - scrollLeft: 0, - scrollTop: 0 - }; - var offsets = { - x: 0, - y: 0 - }; - if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { - if (getNodeName(offsetParent) !== "body" || // https://github.com/popperjs/popper-core/issues/1078 - isScrollParent(documentElement)) { - scroll = getNodeScroll(offsetParent); - } - if (isHTMLElement(offsetParent)) { - offsets = getBoundingClientRect(offsetParent, true); - offsets.x += offsetParent.clientLeft; - offsets.y += offsetParent.clientTop; - } else if (documentElement) { - offsets.x = getWindowScrollBarX(documentElement); - } - } - return { - x: rect.left + scroll.scrollLeft - offsets.x, - y: rect.top + scroll.scrollTop - offsets.y, - width: rect.width, - height: rect.height - }; - } - - // node_modules/@popperjs/core/lib/utils/orderModifiers.js - function order(modifiers) { - var map = /* @__PURE__ */ new Map(); - var visited = /* @__PURE__ */ new Set(); - var result = []; - modifiers.forEach(function(modifier) { - map.set(modifier.name, modifier); - }); - function sort(modifier) { - visited.add(modifier.name); - var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); - requires.forEach(function(dep) { - if (!visited.has(dep)) { - var depModifier = map.get(dep); - if (depModifier) { - sort(depModifier); - } - } - }); - result.push(modifier); - } - modifiers.forEach(function(modifier) { - if (!visited.has(modifier.name)) { - sort(modifier); - } - }); - return result; - } - function orderModifiers(modifiers) { - var orderedModifiers = order(modifiers); - return modifierPhases.reduce(function(acc, phase) { - return acc.concat(orderedModifiers.filter(function(modifier) { - return modifier.phase === phase; - })); - }, []); - } - - // node_modules/@popperjs/core/lib/utils/debounce.js - function debounce(fn2) { - var pending; - return function() { - if (!pending) { - pending = new Promise(function(resolve) { - Promise.resolve().then(function() { - pending = void 0; - resolve(fn2()); - }); - }); - } - return pending; - }; - } - - // node_modules/@popperjs/core/lib/utils/mergeByName.js - function mergeByName(modifiers) { - var merged = modifiers.reduce(function(merged2, current) { - var existing = merged2[current.name]; - merged2[current.name] = existing ? Object.assign({}, existing, current, { - options: Object.assign({}, existing.options, current.options), - data: Object.assign({}, existing.data, current.data) - }) : current; - return merged2; - }, {}); - return Object.keys(merged).map(function(key) { - return merged[key]; - }); - } - - // node_modules/@popperjs/core/lib/createPopper.js - var DEFAULT_OPTIONS = { - placement: "bottom", - modifiers: [], - strategy: "absolute" - }; - function areValidElements() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - return !args.some(function(element2) { - return !(element2 && typeof element2.getBoundingClientRect === "function"); - }); - } - function popperGenerator(generatorOptions) { - if (generatorOptions === void 0) { - generatorOptions = {}; - } - var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; - return function createPopper2(reference2, popper2, options) { - if (options === void 0) { - options = defaultOptions; - } - var state = { - placement: "bottom", - orderedModifiers: [], - options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), - modifiersData: {}, - elements: { - reference: reference2, - popper: popper2 - }, - attributes: {}, - styles: {} - }; - var effectCleanupFns = []; - var isDestroyed = false; - var instance = { - state, - setOptions: function setOptions(setOptionsAction) { - var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction; - cleanupModifierEffects(); - state.options = Object.assign({}, defaultOptions, state.options, options2); - state.scrollParents = { - reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [], - popper: listScrollParents(popper2) - }; - var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers))); - state.orderedModifiers = orderedModifiers.filter(function(m) { - return m.enabled; - }); - runModifierEffects(); - return instance.update(); - }, - // Sync update – it will always be executed, even if not necessary. This - // is useful for low frequency updates where sync behavior simplifies the - // logic. - // For high frequency updates (e.g. `resize` and `scroll` events), always - // prefer the async Popper#update method - forceUpdate: function forceUpdate() { - if (isDestroyed) { - return; - } - var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper; - if (!areValidElements(reference3, popper3)) { - return; - } - state.rects = { - reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"), - popper: getLayoutRect(popper3) - }; - state.reset = false; - state.placement = state.options.placement; - state.orderedModifiers.forEach(function(modifier) { - return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); - }); - for (var index = 0; index < state.orderedModifiers.length; index++) { - if (state.reset === true) { - state.reset = false; - index = -1; - continue; - } - var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name; - if (typeof fn2 === "function") { - state = fn2({ - state, - options: _options, - name, - instance - }) || state; - } - } - }, - // Async and optimistically optimized update – it will not be executed if - // not necessary (debounced to run at most once-per-tick) - update: debounce(function() { - return new Promise(function(resolve) { - instance.forceUpdate(); - resolve(state); - }); - }), - destroy: function destroy() { - cleanupModifierEffects(); - isDestroyed = true; - } - }; - if (!areValidElements(reference2, popper2)) { - return instance; - } - instance.setOptions(options).then(function(state2) { - if (!isDestroyed && options.onFirstUpdate) { - options.onFirstUpdate(state2); - } - }); - function runModifierEffects() { - state.orderedModifiers.forEach(function(_ref) { - var name = _ref.name, _ref$options = _ref.options, options2 = _ref$options === void 0 ? {} : _ref$options, effect4 = _ref.effect; - if (typeof effect4 === "function") { - var cleanupFn = effect4({ - state, - name, - instance, - options: options2 - }); - var noopFn = function noopFn2() { - }; - effectCleanupFns.push(cleanupFn || noopFn); - } - }); - } - function cleanupModifierEffects() { - effectCleanupFns.forEach(function(fn2) { - return fn2(); - }); - effectCleanupFns = []; - } - return instance; - }; - } - - // node_modules/@popperjs/core/lib/popper.js - var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default]; - var createPopper = /* @__PURE__ */ popperGenerator({ - defaultModifiers - }); - - // src/js/components/menu.js - var trap; - var element; - var Menu = { - init: () => { - const trigger = document.querySelectorAll("[data-toggle-menu]"); - trigger.forEach((el) => { - const target = el.getAttribute("data-toggle-menu"); - const menu = document.querySelector(`[data-menu-id="${target}"]`); - const children = menu.querySelectorAll("*"); - element = el; - const toggle = () => { - Menu.toggle(menu); - }; - el.addEventListener("pointerdown", toggle); - el.addEventListener("click", (e) => { - if (e.clientX == 0 || e.clientY == 0) { - toggle(); - } - }); - children.forEach((child) => { - child.addEventListener("click", () => { - const target2 = element.getAttribute("data-toggle-menu"); - const menu2 = document.querySelector(`[data-menu-id="${target2}"]`); - Menu.close(menu2); - }); - }); - }); - }, - toggle: (menu) => { - if (menu.classList.contains("open")) { - Menu.close(menu); - } else { - Menu.open(menu); - } - }, - open: (menu) => { - trap = createFocusTrap(menu, { - onActivate: () => { - menu.classList.add("open"); - }, - onDeactivate: () => { - menu.classList.remove("open"); - } - }); - trap.activate(); - createPopper(element, menu); - menu.removeAttribute("tabindex"); - }, - close: (menu) => { - menu.classList.remove("open"); - trap.deactivate(); - menu.setAttribute("tabindex", "-1"); - } - }; - Menu.init(); - var menu_default = Menu; - - // src/js/components/tooltip.js - var tooltip_id; - var Tooltip = { - init: () => { - const trigger = document.querySelectorAll("[data-tooltip]"); - trigger.forEach((el) => { - const show = () => Tooltip.show(el); - const hide2 = () => Tooltip.hide(tooltip_id); - const mouseshowevents = ["mouseenter", "touchstart"]; - const mousehideevents = ["mouseleave", "touchend"]; - mouseshowevents.forEach((event) => el.addEventListener(event, show)); - mousehideevents.forEach((event) => el.addEventListener(event, hide2)); - }); - }, - show: (el) => { - const target = el.getAttribute("data-tooltip"); - const tooltip = document.createElement("div"); - tooltip.classList.add("tooltip"); - tooltip_id = "__" + (Math.random() + 1).toString(36).substring(7) + "__" + (Math.random() + 1).toString(36).substring(7); - tooltip.id = tooltip_id; - tooltip.innerHTML = target; - createPopper(el, tooltip); - setTimeout(() => { - tooltip.classList.add("show"); - }, 100); - document.body.appendChild(tooltip); - }, - hide: (id) => { - const tooltip = document.getElementById(id); - tooltip.classList.remove("show"); - setTimeout(() => { - tooltip.remove(); - }, 300); - } - }; - Tooltip.init(); - var tooltip_default = Tooltip; - - // src/js/components/snackbar.js - var Snackbar = { - show: (message, button = "Got It", action = "", duration2 = 3e3) => { - let randomId; - let _action; - if (action === "") { - _action = () => { - }; - } else { - _action = action; - } - const show_snackbar = () => { - const snackbar = document.createElement("div"); - snackbar.classList.add("snackbar"); - randomId = "__" + (Math.random() + 1).toString(36).substring(7) + "-" + (Math.random() + 1).toString(36).substring(7); - snackbar.innerHTML = ` -

${message}

- - `; - document.body.appendChild(snackbar); - document.getElementById(randomId).addEventListener("click", _action); - document.getElementById(randomId).addEventListener("click", () => { - snackbar.classList.remove("show"); - setTimeout(() => { - snackbar.remove(); - }, 300); - }); - setTimeout(() => { - snackbar.classList.add("show"); - }, 300); - ripple_default.init(); - setTimeout(() => { - snackbar.classList.remove("show"); - setTimeout(() => { - snackbar.remove(); - }, 300); - }, duration2); - }; - const snackbar_there = document.querySelector(".snackbar"); - if (snackbar_there) { - document.querySelector(".snackbar").classList.remove("show"); - setTimeout(() => { - document.querySelector(".snackbar").remove(); - setTimeout(() => { - show_snackbar(); - }, 300); - }, 300); - } else { - show_snackbar(); - } - } - }; - var snackbar_default = Snackbar; - - // src/js/components/dialog.js - var trap2; - var getScrollbarWidth = () => { - const outer = document.createElement("div"); - outer.style.visibility = "hidden"; - outer.style.width = "100px"; - outer.style.msOverflowStyle = "scrollbar"; - outer.style.overflow = "scroll"; - document.body.appendChild(outer); - const widthNoScroll = outer.offsetWidth; - outer.style.overflow = "scroll"; - const inner = document.createElement("div"); - inner.style.width = "100%"; - outer.appendChild(inner); - const widthWithScroll = inner.offsetWidth; - outer.parentNode.removeChild(outer); - return widthNoScroll - widthWithScroll; - }; - var ToggleOverflow = (overflow) => { - if (overflow) { - document.body.style.setProperty("--scrollbar-width", `${getScrollbarWidth()}px`); - document.body.classList.add("overflow-hidden"); - } else { - document.body.style.removeProperty("--scrollbar-width"); - document.body.classList.remove("overflow-hidden"); - } - }; - var Dialog = { - toggle: (el) => { - const dialog = el; - if (dialog.classList.contains("open")) { - Dialog.close(el); - } else { - Dialog.open(el); - } - }, - open: (el) => { - const dialog = el; - dialog.classList.add("open"); - dialog.removeAttribute("tabindex"); - ToggleOverflow(true); - trap2 = createFocusTrap(dialog, { - onDeactivate: () => { - Dialog.close(el); - } - }); - trap2.activate(); - el.addEventListener("pointerdown", (e) => { - if (e.target !== e.currentTarget) - return; - Dialog.close(el); - }); - }, - close: (el) => { - const dialog = el; - dialog.setAttribute("tabindex", "-1"); - dialog.classList.remove("open"); - document.body.classList.remove("modal-open"); - trap2.deactivate(); - ToggleOverflow(false); - } - }; - var dialog_default = Dialog; - - // node_modules/flatpickr/dist/esm/types/options.js - var HOOKS = [ - "onChange", - "onClose", - "onDayCreate", - "onDestroy", - "onKeyDown", - "onMonthChange", - "onOpen", - "onParseConfig", - "onReady", - "onValueUpdate", - "onYearChange", - "onPreCalendarPosition" - ]; - var defaults = { - _disable: [], - allowInput: false, - allowInvalidPreload: false, - altFormat: "F j, Y", - altInput: false, - altInputClass: "form-control input", - animate: typeof window === "object" && window.navigator.userAgent.indexOf("MSIE") === -1, - ariaDateFormat: "F j, Y", - autoFillDefaultTime: true, - clickOpens: true, - closeOnSelect: true, - conjunction: ", ", - dateFormat: "Y-m-d", - defaultHour: 12, - defaultMinute: 0, - defaultSeconds: 0, - disable: [], - disableMobile: false, - enableSeconds: false, - enableTime: false, - errorHandler: function(err) { - return typeof console !== "undefined" && console.warn(err); - }, - getWeek: function(givenDate) { - var date = new Date(givenDate.getTime()); - date.setHours(0, 0, 0, 0); - date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7); - var week1 = new Date(date.getFullYear(), 0, 4); - return 1 + Math.round(((date.getTime() - week1.getTime()) / 864e5 - 3 + (week1.getDay() + 6) % 7) / 7); - }, - hourIncrement: 1, - ignoredFocusElements: [], - inline: false, - locale: "default", - minuteIncrement: 5, - mode: "single", - monthSelectorType: "dropdown", - nextArrow: "", - noCalendar: false, - now: /* @__PURE__ */ new Date(), - onChange: [], - onClose: [], - onDayCreate: [], - onDestroy: [], - onKeyDown: [], - onMonthChange: [], - onOpen: [], - onParseConfig: [], - onReady: [], - onValueUpdate: [], - onYearChange: [], - onPreCalendarPosition: [], - plugins: [], - position: "auto", - positionElement: void 0, - prevArrow: "", - shorthandCurrentMonth: false, - showMonths: 1, - static: false, - time_24hr: false, - weekNumbers: false, - wrap: false - }; - - // node_modules/flatpickr/dist/esm/l10n/default.js - var english = { - weekdays: { - shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - longhand: [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ] - }, - months: { - shorthand: [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec" - ], - longhand: [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ] - }, - daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], - firstDayOfWeek: 0, - ordinal: function(nth) { - var s = nth % 100; - if (s > 3 && s < 21) - return "th"; - switch (s % 10) { - case 1: - return "st"; - case 2: - return "nd"; - case 3: - return "rd"; - default: - return "th"; - } - }, - rangeSeparator: " to ", - weekAbbreviation: "Wk", - scrollTitle: "Scroll to increment", - toggleTitle: "Click to toggle", - amPM: ["AM", "PM"], - yearAriaLabel: "Year", - monthAriaLabel: "Month", - hourAriaLabel: "Hour", - minuteAriaLabel: "Minute", - time_24hr: false - }; - var default_default = english; - - // node_modules/flatpickr/dist/esm/utils/index.js - var pad = function(number, length) { - if (length === void 0) { - length = 2; - } - return ("000" + number).slice(length * -1); - }; - var int = function(bool) { - return bool === true ? 1 : 0; - }; - function debounce2(fn2, wait) { - var t; - return function() { - var _this = this; - var args = arguments; - clearTimeout(t); - t = setTimeout(function() { - return fn2.apply(_this, args); - }, wait); - }; - } - var arrayify = function(obj) { - return obj instanceof Array ? obj : [obj]; - }; - - // node_modules/flatpickr/dist/esm/utils/dom.js - function toggleClass(elem, className, bool) { - if (bool === true) - return elem.classList.add(className); - elem.classList.remove(className); - } - function createElement(tag, className, content) { - var e = window.document.createElement(tag); - className = className || ""; - content = content || ""; - e.className = className; - if (content !== void 0) - e.textContent = content; - return e; - } - function clearNode(node) { - while (node.firstChild) - node.removeChild(node.firstChild); - } - function findParent(node, condition) { - if (condition(node)) - return node; - else if (node.parentNode) - return findParent(node.parentNode, condition); - return void 0; - } - function createNumberInput(inputClassName, opts) { - var wrapper = createElement("div", "numInputWrapper"), numInput = createElement("input", "numInput " + inputClassName), arrowUp = createElement("span", "arrowUp"), arrowDown = createElement("span", "arrowDown"); - if (navigator.userAgent.indexOf("MSIE 9.0") === -1) { - numInput.type = "number"; - } else { - numInput.type = "text"; - numInput.pattern = "\\d*"; - } - if (opts !== void 0) - for (var key in opts) - numInput.setAttribute(key, opts[key]); - wrapper.appendChild(numInput); - wrapper.appendChild(arrowUp); - wrapper.appendChild(arrowDown); - return wrapper; - } - function getEventTarget(event) { - try { - if (typeof event.composedPath === "function") { - var path = event.composedPath(); - return path[0]; - } - return event.target; - } catch (error) { - return event.target; - } - } - - // node_modules/flatpickr/dist/esm/utils/formatting.js - var doNothing = function() { - return void 0; - }; - var monthToStr = function(monthNumber, shorthand, locale) { - return locale.months[shorthand ? "shorthand" : "longhand"][monthNumber]; - }; - var revFormat = { - D: doNothing, - F: function(dateObj, monthName, locale) { - dateObj.setMonth(locale.months.longhand.indexOf(monthName)); - }, - G: function(dateObj, hour) { - dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour)); - }, - H: function(dateObj, hour) { - dateObj.setHours(parseFloat(hour)); - }, - J: function(dateObj, day) { - dateObj.setDate(parseFloat(day)); - }, - K: function(dateObj, amPM, locale) { - dateObj.setHours(dateObj.getHours() % 12 + 12 * int(new RegExp(locale.amPM[1], "i").test(amPM))); - }, - M: function(dateObj, shortMonth, locale) { - dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth)); - }, - S: function(dateObj, seconds) { - dateObj.setSeconds(parseFloat(seconds)); - }, - U: function(_, unixSeconds) { - return new Date(parseFloat(unixSeconds) * 1e3); - }, - W: function(dateObj, weekNum, locale) { - var weekNumber = parseInt(weekNum); - var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0); - date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek); - return date; - }, - Y: function(dateObj, year) { - dateObj.setFullYear(parseFloat(year)); - }, - Z: function(_, ISODate) { - return new Date(ISODate); - }, - d: function(dateObj, day) { - dateObj.setDate(parseFloat(day)); - }, - h: function(dateObj, hour) { - dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour)); - }, - i: function(dateObj, minutes) { - dateObj.setMinutes(parseFloat(minutes)); - }, - j: function(dateObj, day) { - dateObj.setDate(parseFloat(day)); - }, - l: doNothing, - m: function(dateObj, month) { - dateObj.setMonth(parseFloat(month) - 1); - }, - n: function(dateObj, month) { - dateObj.setMonth(parseFloat(month) - 1); - }, - s: function(dateObj, seconds) { - dateObj.setSeconds(parseFloat(seconds)); - }, - u: function(_, unixMillSeconds) { - return new Date(parseFloat(unixMillSeconds)); - }, - w: doNothing, - y: function(dateObj, year) { - dateObj.setFullYear(2e3 + parseFloat(year)); - } - }; - var tokenRegex = { - D: "", - F: "", - G: "(\\d\\d|\\d)", - H: "(\\d\\d|\\d)", - J: "(\\d\\d|\\d)\\w+", - K: "", - M: "", - S: "(\\d\\d|\\d)", - U: "(.+)", - W: "(\\d\\d|\\d)", - Y: "(\\d{4})", - Z: "(.+)", - d: "(\\d\\d|\\d)", - h: "(\\d\\d|\\d)", - i: "(\\d\\d|\\d)", - j: "(\\d\\d|\\d)", - l: "", - m: "(\\d\\d|\\d)", - n: "(\\d\\d|\\d)", - s: "(\\d\\d|\\d)", - u: "(.+)", - w: "(\\d\\d|\\d)", - y: "(\\d{2})" - }; - var formats = { - Z: function(date) { - return date.toISOString(); - }, - D: function(date, locale, options) { - return locale.weekdays.shorthand[formats.w(date, locale, options)]; - }, - F: function(date, locale, options) { - return monthToStr(formats.n(date, locale, options) - 1, false, locale); - }, - G: function(date, locale, options) { - return pad(formats.h(date, locale, options)); - }, - H: function(date) { - return pad(date.getHours()); - }, - J: function(date, locale) { - return locale.ordinal !== void 0 ? date.getDate() + locale.ordinal(date.getDate()) : date.getDate(); - }, - K: function(date, locale) { - return locale.amPM[int(date.getHours() > 11)]; - }, - M: function(date, locale) { - return monthToStr(date.getMonth(), true, locale); - }, - S: function(date) { - return pad(date.getSeconds()); - }, - U: function(date) { - return date.getTime() / 1e3; - }, - W: function(date, _, options) { - return options.getWeek(date); - }, - Y: function(date) { - return pad(date.getFullYear(), 4); - }, - d: function(date) { - return pad(date.getDate()); - }, - h: function(date) { - return date.getHours() % 12 ? date.getHours() % 12 : 12; - }, - i: function(date) { - return pad(date.getMinutes()); - }, - j: function(date) { - return date.getDate(); - }, - l: function(date, locale) { - return locale.weekdays.longhand[date.getDay()]; - }, - m: function(date) { - return pad(date.getMonth() + 1); - }, - n: function(date) { - return date.getMonth() + 1; - }, - s: function(date) { - return date.getSeconds(); - }, - u: function(date) { - return date.getTime(); - }, - w: function(date) { - return date.getDay(); - }, - y: function(date) { - return String(date.getFullYear()).substring(2); - } - }; - - // node_modules/flatpickr/dist/esm/utils/dates.js - var createDateFormatter = function(_a) { - var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d; - return function(dateObj, frmt, overrideLocale) { - var locale = overrideLocale || l10n; - if (config.formatDate !== void 0 && !isMobile) { - return config.formatDate(dateObj, frmt, locale); - } - return frmt.split("").map(function(c, i, arr) { - return formats[c] && arr[i - 1] !== "\\" ? formats[c](dateObj, locale, config) : c !== "\\" ? c : ""; - }).join(""); - }; - }; - var createDateParser = function(_a) { - var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c; - return function(date, givenFormat, timeless, customLocale) { - if (date !== 0 && !date) - return void 0; - var locale = customLocale || l10n; - var parsedDate; - var dateOrig = date; - if (date instanceof Date) - parsedDate = new Date(date.getTime()); - else if (typeof date !== "string" && date.toFixed !== void 0) - parsedDate = new Date(date); - else if (typeof date === "string") { - var format = givenFormat || (config || defaults).dateFormat; - var datestr = String(date).trim(); - if (datestr === "today") { - parsedDate = /* @__PURE__ */ new Date(); - timeless = true; - } else if (config && config.parseDate) { - parsedDate = config.parseDate(date, format); - } else if (/Z$/.test(datestr) || /GMT$/.test(datestr)) { - parsedDate = new Date(date); - } else { - var matched = void 0, ops = []; - for (var i = 0, matchIndex = 0, regexStr = ""; i < format.length; i++) { - var token = format[i]; - var isBackSlash = token === "\\"; - var escaped = format[i - 1] === "\\" || isBackSlash; - if (tokenRegex[token] && !escaped) { - regexStr += tokenRegex[token]; - var match = new RegExp(regexStr).exec(date); - if (match && (matched = true)) { - ops[token !== "Y" ? "push" : "unshift"]({ - fn: revFormat[token], - val: match[++matchIndex] - }); - } - } else if (!isBackSlash) - regexStr += "."; - } - parsedDate = !config || !config.noCalendar ? new Date((/* @__PURE__ */ new Date()).getFullYear(), 0, 1, 0, 0, 0, 0) : new Date((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0)); - ops.forEach(function(_a2) { - var fn2 = _a2.fn, val = _a2.val; - return parsedDate = fn2(parsedDate, val, locale) || parsedDate; - }); - parsedDate = matched ? parsedDate : void 0; - } - } - if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) { - config.errorHandler(new Error("Invalid date provided: " + dateOrig)); - return void 0; - } - if (timeless === true) - parsedDate.setHours(0, 0, 0, 0); - return parsedDate; - }; - }; - function compareDates(date1, date2, timeless) { - if (timeless === void 0) { - timeless = true; - } - if (timeless !== false) { - return new Date(date1.getTime()).setHours(0, 0, 0, 0) - new Date(date2.getTime()).setHours(0, 0, 0, 0); - } - return date1.getTime() - date2.getTime(); - } - var isBetween = function(ts, ts1, ts2) { - return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2); - }; - var calculateSecondsSinceMidnight = function(hours, minutes, seconds) { - return hours * 3600 + minutes * 60 + seconds; - }; - var parseSeconds = function(secondsSinceMidnight) { - var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60; - return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60]; - }; - var duration = { - DAY: 864e5 - }; - function getDefaultHours(config) { - var hours = config.defaultHour; - var minutes = config.defaultMinute; - var seconds = config.defaultSeconds; - if (config.minDate !== void 0) { - var minHour = config.minDate.getHours(); - var minMinutes = config.minDate.getMinutes(); - var minSeconds = config.minDate.getSeconds(); - if (hours < minHour) { - hours = minHour; - } - if (hours === minHour && minutes < minMinutes) { - minutes = minMinutes; - } - if (hours === minHour && minutes === minMinutes && seconds < minSeconds) - seconds = config.minDate.getSeconds(); - } - if (config.maxDate !== void 0) { - var maxHr = config.maxDate.getHours(); - var maxMinutes = config.maxDate.getMinutes(); - hours = Math.min(hours, maxHr); - if (hours === maxHr) - minutes = Math.min(maxMinutes, minutes); - if (hours === maxHr && minutes === maxMinutes) - seconds = config.maxDate.getSeconds(); - } - return { hours, minutes, seconds }; - } - - // node_modules/flatpickr/dist/esm/utils/polyfills.js - if (typeof Object.assign !== "function") { - Object.assign = function(target) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - if (!target) { - throw TypeError("Cannot convert undefined or null to object"); - } - var _loop_1 = function(source2) { - if (source2) { - Object.keys(source2).forEach(function(key) { - return target[key] = source2[key]; - }); - } - }; - for (var _a = 0, args_1 = args; _a < args_1.length; _a++) { - var source = args_1[_a]; - _loop_1(source); - } - return target; - }; - } - - // node_modules/flatpickr/dist/esm/index.js - var __assign = function() { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - var __spreadArrays = function() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) - s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - var DEBOUNCED_CHANGE_MS = 300; - function FlatpickrInstance(element2, instanceConfig) { - var self = { - config: __assign(__assign({}, defaults), flatpickr.defaultConfig), - l10n: default_default - }; - self.parseDate = createDateParser({ config: self.config, l10n: self.l10n }); - self._handlers = []; - self.pluginElements = []; - self.loadedPlugins = []; - self._bind = bind; - self._setHoursFromDate = setHoursFromDate; - self._positionCalendar = positionCalendar; - self.changeMonth = changeMonth; - self.changeYear = changeYear; - self.clear = clear; - self.close = close; - self.onMouseOver = onMouseOver; - self._createElement = createElement; - self.createDay = createDay; - self.destroy = destroy; - self.isEnabled = isEnabled; - self.jumpToDate = jumpToDate; - self.updateValue = updateValue; - self.open = open; - self.redraw = redraw; - self.set = set; - self.setDate = setDate; - self.toggle = toggle; - function setupHelperFunctions() { - self.utils = { - getDaysInMonth: function(month, yr) { - if (month === void 0) { - month = self.currentMonth; - } - if (yr === void 0) { - yr = self.currentYear; - } - if (month === 1 && (yr % 4 === 0 && yr % 100 !== 0 || yr % 400 === 0)) - return 29; - return self.l10n.daysInMonth[month]; - } - }; - } - function init() { - self.element = self.input = element2; - self.isOpen = false; - parseConfig(); - setupLocale(); - setupInputs(); - setupDates(); - setupHelperFunctions(); - if (!self.isMobile) - build(); - bindEvents(); - if (self.selectedDates.length || self.config.noCalendar) { - if (self.config.enableTime) { - setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : void 0); - } - updateValue(false); - } - setCalendarWidth(); - var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); - if (!self.isMobile && isSafari) { - positionCalendar(); - } - triggerEvent("onReady"); - } - function getClosestActiveElement() { - var _a; - return ((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode()).activeElement || document.activeElement; - } - function bindToInstance(fn2) { - return fn2.bind(self); - } - function setCalendarWidth() { - var config = self.config; - if (config.weekNumbers === false && config.showMonths === 1) { - return; - } else if (config.noCalendar !== true) { - window.requestAnimationFrame(function() { - if (self.calendarContainer !== void 0) { - self.calendarContainer.style.visibility = "hidden"; - self.calendarContainer.style.display = "block"; - } - if (self.daysContainer !== void 0) { - var daysWidth = (self.days.offsetWidth + 1) * config.showMonths; - self.daysContainer.style.width = daysWidth + "px"; - self.calendarContainer.style.width = daysWidth + (self.weekWrapper !== void 0 ? self.weekWrapper.offsetWidth : 0) + "px"; - self.calendarContainer.style.removeProperty("visibility"); - self.calendarContainer.style.removeProperty("display"); - } - }); - } - } - function updateTime(e) { - if (self.selectedDates.length === 0) { - var defaultDate = self.config.minDate === void 0 || compareDates(/* @__PURE__ */ new Date(), self.config.minDate) >= 0 ? /* @__PURE__ */ new Date() : new Date(self.config.minDate.getTime()); - var defaults2 = getDefaultHours(self.config); - defaultDate.setHours(defaults2.hours, defaults2.minutes, defaults2.seconds, defaultDate.getMilliseconds()); - self.selectedDates = [defaultDate]; - self.latestSelectedDateObj = defaultDate; - } - if (e !== void 0 && e.type !== "blur") { - timeWrapper(e); - } - var prevValue = self._input.value; - setHoursFromInputs(); - updateValue(); - if (self._input.value !== prevValue) { - self._debouncedChange(); - } - } - function ampm2military(hour, amPM) { - return hour % 12 + 12 * int(amPM === self.l10n.amPM[1]); - } - function military2ampm(hour) { - switch (hour % 24) { - case 0: - case 12: - return 12; - default: - return hour % 12; - } - } - function setHoursFromInputs() { - if (self.hourElement === void 0 || self.minuteElement === void 0) - return; - var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== void 0 ? (parseInt(self.secondElement.value, 10) || 0) % 60 : 0; - if (self.amPM !== void 0) { - hours = ampm2military(hours, self.amPM.textContent); - } - var limitMinHours = self.config.minTime !== void 0 || self.config.minDate && self.minDateHasTime && self.latestSelectedDateObj && compareDates(self.latestSelectedDateObj, self.config.minDate, true) === 0; - var limitMaxHours = self.config.maxTime !== void 0 || self.config.maxDate && self.maxDateHasTime && self.latestSelectedDateObj && compareDates(self.latestSelectedDateObj, self.config.maxDate, true) === 0; - if (self.config.maxTime !== void 0 && self.config.minTime !== void 0 && self.config.minTime > self.config.maxTime) { - var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds()); - var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds()); - var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds); - if (currentTime > maxBound && currentTime < minBound) { - var result = parseSeconds(minBound); - hours = result[0]; - minutes = result[1]; - seconds = result[2]; - } - } else { - if (limitMaxHours) { - var maxTime = self.config.maxTime !== void 0 ? self.config.maxTime : self.config.maxDate; - hours = Math.min(hours, maxTime.getHours()); - if (hours === maxTime.getHours()) - minutes = Math.min(minutes, maxTime.getMinutes()); - if (minutes === maxTime.getMinutes()) - seconds = Math.min(seconds, maxTime.getSeconds()); - } - if (limitMinHours) { - var minTime = self.config.minTime !== void 0 ? self.config.minTime : self.config.minDate; - hours = Math.max(hours, minTime.getHours()); - if (hours === minTime.getHours() && minutes < minTime.getMinutes()) - minutes = minTime.getMinutes(); - if (minutes === minTime.getMinutes()) - seconds = Math.max(seconds, minTime.getSeconds()); - } - } - setHours(hours, minutes, seconds); - } - function setHoursFromDate(dateObj) { - var date = dateObj || self.latestSelectedDateObj; - if (date && date instanceof Date) { - setHours(date.getHours(), date.getMinutes(), date.getSeconds()); - } - } - function setHours(hours, minutes, seconds) { - if (self.latestSelectedDateObj !== void 0) { - self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0); - } - if (!self.hourElement || !self.minuteElement || self.isMobile) - return; - self.hourElement.value = pad(!self.config.time_24hr ? (12 + hours) % 12 + 12 * int(hours % 12 === 0) : hours); - self.minuteElement.value = pad(minutes); - if (self.amPM !== void 0) - self.amPM.textContent = self.l10n.amPM[int(hours >= 12)]; - if (self.secondElement !== void 0) - self.secondElement.value = pad(seconds); - } - function onYearInput(event) { - var eventTarget = getEventTarget(event); - var year = parseInt(eventTarget.value) + (event.delta || 0); - if (year / 1e3 > 1 || event.key === "Enter" && !/[^\d]/.test(year.toString())) { - changeYear(year); - } - } - function bind(element3, event, handler, options) { - if (event instanceof Array) - return event.forEach(function(ev) { - return bind(element3, ev, handler, options); - }); - if (element3 instanceof Array) - return element3.forEach(function(el) { - return bind(el, event, handler, options); - }); - element3.addEventListener(event, handler, options); - self._handlers.push({ - remove: function() { - return element3.removeEventListener(event, handler, options); - } - }); - } - function triggerChange() { - triggerEvent("onChange"); - } - function bindEvents() { - if (self.config.wrap) { - ["open", "close", "toggle", "clear"].forEach(function(evt) { - Array.prototype.forEach.call(self.element.querySelectorAll("[data-" + evt + "]"), function(el) { - return bind(el, "click", self[evt]); - }); - }); - } - if (self.isMobile) { - setupMobile(); - return; - } - var debouncedResize = debounce2(onResize, 50); - self._debouncedChange = debounce2(triggerChange, DEBOUNCED_CHANGE_MS); - if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent)) - bind(self.daysContainer, "mouseover", function(e) { - if (self.config.mode === "range") - onMouseOver(getEventTarget(e)); - }); - bind(self._input, "keydown", onKeyDown); - if (self.calendarContainer !== void 0) { - bind(self.calendarContainer, "keydown", onKeyDown); - } - if (!self.config.inline && !self.config.static) - bind(window, "resize", debouncedResize); - if (window.ontouchstart !== void 0) - bind(window.document, "touchstart", documentClick); - else - bind(window.document, "mousedown", documentClick); - bind(window.document, "focus", documentClick, { capture: true }); - if (self.config.clickOpens === true) { - bind(self._input, "focus", self.open); - bind(self._input, "click", self.open); - } - if (self.daysContainer !== void 0) { - bind(self.monthNav, "click", onMonthNavClick); - bind(self.monthNav, ["keyup", "increment"], onYearInput); - bind(self.daysContainer, "click", selectDate); - } - if (self.timeContainer !== void 0 && self.minuteElement !== void 0 && self.hourElement !== void 0) { - var selText = function(e) { - return getEventTarget(e).select(); - }; - bind(self.timeContainer, ["increment"], updateTime); - bind(self.timeContainer, "blur", updateTime, { capture: true }); - bind(self.timeContainer, "click", timeIncrement); - bind([self.hourElement, self.minuteElement], ["focus", "click"], selText); - if (self.secondElement !== void 0) - bind(self.secondElement, "focus", function() { - return self.secondElement && self.secondElement.select(); - }); - if (self.amPM !== void 0) { - bind(self.amPM, "click", function(e) { - updateTime(e); - }); - } - } - if (self.config.allowInput) { - bind(self._input, "blur", onBlur); - } - } - function jumpToDate(jumpDate, triggerChange2) { - var jumpTo = jumpDate !== void 0 ? self.parseDate(jumpDate) : self.latestSelectedDateObj || (self.config.minDate && self.config.minDate > self.now ? self.config.minDate : self.config.maxDate && self.config.maxDate < self.now ? self.config.maxDate : self.now); - var oldYear = self.currentYear; - var oldMonth = self.currentMonth; - try { - if (jumpTo !== void 0) { - self.currentYear = jumpTo.getFullYear(); - self.currentMonth = jumpTo.getMonth(); - } - } catch (e) { - e.message = "Invalid date supplied: " + jumpTo; - self.config.errorHandler(e); - } - if (triggerChange2 && self.currentYear !== oldYear) { - triggerEvent("onYearChange"); - buildMonthSwitch(); - } - if (triggerChange2 && (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) { - triggerEvent("onMonthChange"); - } - self.redraw(); - } - function timeIncrement(e) { - var eventTarget = getEventTarget(e); - if (~eventTarget.className.indexOf("arrow")) - incrementNumInput(e, eventTarget.classList.contains("arrowUp") ? 1 : -1); - } - function incrementNumInput(e, delta, inputElem) { - var target = e && getEventTarget(e); - var input = inputElem || target && target.parentNode && target.parentNode.firstChild; - var event = createEvent("increment"); - event.delta = delta; - input && input.dispatchEvent(event); - } - function build() { - var fragment = window.document.createDocumentFragment(); - self.calendarContainer = createElement("div", "flatpickr-calendar"); - self.calendarContainer.tabIndex = -1; - if (!self.config.noCalendar) { - fragment.appendChild(buildMonthNav()); - self.innerContainer = createElement("div", "flatpickr-innerContainer"); - if (self.config.weekNumbers) { - var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers; - self.innerContainer.appendChild(weekWrapper); - self.weekNumbers = weekNumbers; - self.weekWrapper = weekWrapper; - } - self.rContainer = createElement("div", "flatpickr-rContainer"); - self.rContainer.appendChild(buildWeekdays()); - if (!self.daysContainer) { - self.daysContainer = createElement("div", "flatpickr-days"); - self.daysContainer.tabIndex = -1; - } - buildDays(); - self.rContainer.appendChild(self.daysContainer); - self.innerContainer.appendChild(self.rContainer); - fragment.appendChild(self.innerContainer); - } - if (self.config.enableTime) { - fragment.appendChild(buildTime()); - } - toggleClass(self.calendarContainer, "rangeMode", self.config.mode === "range"); - toggleClass(self.calendarContainer, "animate", self.config.animate === true); - toggleClass(self.calendarContainer, "multiMonth", self.config.showMonths > 1); - self.calendarContainer.appendChild(fragment); - var customAppend = self.config.appendTo !== void 0 && self.config.appendTo.nodeType !== void 0; - if (self.config.inline || self.config.static) { - self.calendarContainer.classList.add(self.config.inline ? "inline" : "static"); - if (self.config.inline) { - if (!customAppend && self.element.parentNode) - self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling); - else if (self.config.appendTo !== void 0) - self.config.appendTo.appendChild(self.calendarContainer); - } - if (self.config.static) { - var wrapper = createElement("div", "flatpickr-wrapper"); - if (self.element.parentNode) - self.element.parentNode.insertBefore(wrapper, self.element); - wrapper.appendChild(self.element); - if (self.altInput) - wrapper.appendChild(self.altInput); - wrapper.appendChild(self.calendarContainer); - } - } - if (!self.config.static && !self.config.inline) - (self.config.appendTo !== void 0 ? self.config.appendTo : window.document.body).appendChild(self.calendarContainer); - } - function createDay(className, date, _dayNumber, i) { - var dateIsEnabled = isEnabled(date, true), dayElement = createElement("span", className, date.getDate().toString()); - dayElement.dateObj = date; - dayElement.$i = i; - dayElement.setAttribute("aria-label", self.formatDate(date, self.config.ariaDateFormat)); - if (className.indexOf("hidden") === -1 && compareDates(date, self.now) === 0) { - self.todayDateElem = dayElement; - dayElement.classList.add("today"); - dayElement.setAttribute("aria-current", "date"); - } - if (dateIsEnabled) { - dayElement.tabIndex = -1; - if (isDateSelected(date)) { - dayElement.classList.add("selected"); - self.selectedDateElem = dayElement; - if (self.config.mode === "range") { - toggleClass(dayElement, "startRange", self.selectedDates[0] && compareDates(date, self.selectedDates[0], true) === 0); - toggleClass(dayElement, "endRange", self.selectedDates[1] && compareDates(date, self.selectedDates[1], true) === 0); - if (className === "nextMonthDay") - dayElement.classList.add("inRange"); - } - } - } else { - dayElement.classList.add("flatpickr-disabled"); - } - if (self.config.mode === "range") { - if (isDateInRange(date) && !isDateSelected(date)) - dayElement.classList.add("inRange"); - } - if (self.weekNumbers && self.config.showMonths === 1 && className !== "prevMonthDay" && i % 7 === 6) { - self.weekNumbers.insertAdjacentHTML("beforeend", "" + self.config.getWeek(date) + ""); - } - triggerEvent("onDayCreate", dayElement); - return dayElement; - } - function focusOnDayElem(targetNode) { - targetNode.focus(); - if (self.config.mode === "range") - onMouseOver(targetNode); - } - function getFirstAvailableDay(delta) { - var startMonth = delta > 0 ? 0 : self.config.showMonths - 1; - var endMonth = delta > 0 ? self.config.showMonths : -1; - for (var m = startMonth; m != endMonth; m += delta) { - var month = self.daysContainer.children[m]; - var startIndex = delta > 0 ? 0 : month.children.length - 1; - var endIndex = delta > 0 ? month.children.length : -1; - for (var i = startIndex; i != endIndex; i += delta) { - var c = month.children[i]; - if (c.className.indexOf("hidden") === -1 && isEnabled(c.dateObj)) - return c; - } - } - return void 0; - } - function getNextAvailableDay(current, delta) { - var givenMonth = current.className.indexOf("Month") === -1 ? current.dateObj.getMonth() : self.currentMonth; - var endMonth = delta > 0 ? self.config.showMonths : -1; - var loopDelta = delta > 0 ? 1 : -1; - for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) { - var month = self.daysContainer.children[m]; - var startIndex = givenMonth - self.currentMonth === m ? current.$i + delta : delta < 0 ? month.children.length - 1 : 0; - var numMonthDays = month.children.length; - for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) { - var c = month.children[i]; - if (c.className.indexOf("hidden") === -1 && isEnabled(c.dateObj) && Math.abs(current.$i - i) >= Math.abs(delta)) - return focusOnDayElem(c); - } - } - self.changeMonth(loopDelta); - focusOnDay(getFirstAvailableDay(loopDelta), 0); - return void 0; - } - function focusOnDay(current, offset3) { - var activeElement = getClosestActiveElement(); - var dayFocused = isInView(activeElement || document.body); - var startElem = current !== void 0 ? current : dayFocused ? activeElement : self.selectedDateElem !== void 0 && isInView(self.selectedDateElem) ? self.selectedDateElem : self.todayDateElem !== void 0 && isInView(self.todayDateElem) ? self.todayDateElem : getFirstAvailableDay(offset3 > 0 ? 1 : -1); - if (startElem === void 0) { - self._input.focus(); - } else if (!dayFocused) { - focusOnDayElem(startElem); - } else { - getNextAvailableDay(startElem, offset3); - } - } - function buildMonthDays(year, month) { - var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7; - var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year); - var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? "prevMonthDay hidden" : "prevMonthDay", nextMonthDayClass = isMultiMonth ? "nextMonthDay hidden" : "nextMonthDay"; - var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0; - for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) { - days.appendChild(createDay("flatpickr-day " + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex)); - } - for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) { - days.appendChild(createDay("flatpickr-day", new Date(year, month, dayNumber), dayNumber, dayIndex)); - } - for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth && (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) { - days.appendChild(createDay("flatpickr-day " + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex)); - } - var dayContainer = createElement("div", "dayContainer"); - dayContainer.appendChild(days); - return dayContainer; - } - function buildDays() { - if (self.daysContainer === void 0) { - return; - } - clearNode(self.daysContainer); - if (self.weekNumbers) - clearNode(self.weekNumbers); - var frag = document.createDocumentFragment(); - for (var i = 0; i < self.config.showMonths; i++) { - var d = new Date(self.currentYear, self.currentMonth, 1); - d.setMonth(self.currentMonth + i); - frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth())); - } - self.daysContainer.appendChild(frag); - self.days = self.daysContainer.firstChild; - if (self.config.mode === "range" && self.selectedDates.length === 1) { - onMouseOver(); - } - } - function buildMonthSwitch() { - if (self.config.showMonths > 1 || self.config.monthSelectorType !== "dropdown") - return; - var shouldBuildMonth = function(month2) { - if (self.config.minDate !== void 0 && self.currentYear === self.config.minDate.getFullYear() && month2 < self.config.minDate.getMonth()) { - return false; - } - return !(self.config.maxDate !== void 0 && self.currentYear === self.config.maxDate.getFullYear() && month2 > self.config.maxDate.getMonth()); - }; - self.monthsDropdownContainer.tabIndex = -1; - self.monthsDropdownContainer.innerHTML = ""; - for (var i = 0; i < 12; i++) { - if (!shouldBuildMonth(i)) - continue; - var month = createElement("option", "flatpickr-monthDropdown-month"); - month.value = new Date(self.currentYear, i).getMonth().toString(); - month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n); - month.tabIndex = -1; - if (self.currentMonth === i) { - month.selected = true; - } - self.monthsDropdownContainer.appendChild(month); - } - } - function buildMonth() { - var container = createElement("div", "flatpickr-month"); - var monthNavFragment = window.document.createDocumentFragment(); - var monthElement; - if (self.config.showMonths > 1 || self.config.monthSelectorType === "static") { - monthElement = createElement("span", "cur-month"); - } else { - self.monthsDropdownContainer = createElement("select", "flatpickr-monthDropdown-months"); - self.monthsDropdownContainer.setAttribute("aria-label", self.l10n.monthAriaLabel); - bind(self.monthsDropdownContainer, "change", function(e) { - var target = getEventTarget(e); - var selectedMonth = parseInt(target.value, 10); - self.changeMonth(selectedMonth - self.currentMonth); - triggerEvent("onMonthChange"); - }); - buildMonthSwitch(); - monthElement = self.monthsDropdownContainer; - } - var yearInput = createNumberInput("cur-year", { tabindex: "-1" }); - var yearElement = yearInput.getElementsByTagName("input")[0]; - yearElement.setAttribute("aria-label", self.l10n.yearAriaLabel); - if (self.config.minDate) { - yearElement.setAttribute("min", self.config.minDate.getFullYear().toString()); - } - if (self.config.maxDate) { - yearElement.setAttribute("max", self.config.maxDate.getFullYear().toString()); - yearElement.disabled = !!self.config.minDate && self.config.minDate.getFullYear() === self.config.maxDate.getFullYear(); - } - var currentMonth = createElement("div", "flatpickr-current-month"); - currentMonth.appendChild(monthElement); - currentMonth.appendChild(yearInput); - monthNavFragment.appendChild(currentMonth); - container.appendChild(monthNavFragment); - return { - container, - yearElement, - monthElement - }; - } - function buildMonths() { - clearNode(self.monthNav); - self.monthNav.appendChild(self.prevMonthNav); - if (self.config.showMonths) { - self.yearElements = []; - self.monthElements = []; - } - for (var m = self.config.showMonths; m--; ) { - var month = buildMonth(); - self.yearElements.push(month.yearElement); - self.monthElements.push(month.monthElement); - self.monthNav.appendChild(month.container); - } - self.monthNav.appendChild(self.nextMonthNav); - } - function buildMonthNav() { - self.monthNav = createElement("div", "flatpickr-months"); - self.yearElements = []; - self.monthElements = []; - self.prevMonthNav = createElement("span", "flatpickr-prev-month"); - self.prevMonthNav.innerHTML = self.config.prevArrow; - self.nextMonthNav = createElement("span", "flatpickr-next-month"); - self.nextMonthNav.innerHTML = self.config.nextArrow; - buildMonths(); - Object.defineProperty(self, "_hidePrevMonthArrow", { - get: function() { - return self.__hidePrevMonthArrow; - }, - set: function(bool) { - if (self.__hidePrevMonthArrow !== bool) { - toggleClass(self.prevMonthNav, "flatpickr-disabled", bool); - self.__hidePrevMonthArrow = bool; - } - } - }); - Object.defineProperty(self, "_hideNextMonthArrow", { - get: function() { - return self.__hideNextMonthArrow; - }, - set: function(bool) { - if (self.__hideNextMonthArrow !== bool) { - toggleClass(self.nextMonthNav, "flatpickr-disabled", bool); - self.__hideNextMonthArrow = bool; - } - } - }); - self.currentYearElement = self.yearElements[0]; - updateNavigationCurrentMonth(); - return self.monthNav; - } - function buildTime() { - self.calendarContainer.classList.add("hasTime"); - if (self.config.noCalendar) - self.calendarContainer.classList.add("noCalendar"); - var defaults2 = getDefaultHours(self.config); - self.timeContainer = createElement("div", "flatpickr-time"); - self.timeContainer.tabIndex = -1; - var separator = createElement("span", "flatpickr-time-separator", ":"); - var hourInput = createNumberInput("flatpickr-hour", { - "aria-label": self.l10n.hourAriaLabel - }); - self.hourElement = hourInput.getElementsByTagName("input")[0]; - var minuteInput = createNumberInput("flatpickr-minute", { - "aria-label": self.l10n.minuteAriaLabel - }); - self.minuteElement = minuteInput.getElementsByTagName("input")[0]; - self.hourElement.tabIndex = self.minuteElement.tabIndex = -1; - self.hourElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getHours() : self.config.time_24hr ? defaults2.hours : military2ampm(defaults2.hours)); - self.minuteElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getMinutes() : defaults2.minutes); - self.hourElement.setAttribute("step", self.config.hourIncrement.toString()); - self.minuteElement.setAttribute("step", self.config.minuteIncrement.toString()); - self.hourElement.setAttribute("min", self.config.time_24hr ? "0" : "1"); - self.hourElement.setAttribute("max", self.config.time_24hr ? "23" : "12"); - self.hourElement.setAttribute("maxlength", "2"); - self.minuteElement.setAttribute("min", "0"); - self.minuteElement.setAttribute("max", "59"); - self.minuteElement.setAttribute("maxlength", "2"); - self.timeContainer.appendChild(hourInput); - self.timeContainer.appendChild(separator); - self.timeContainer.appendChild(minuteInput); - if (self.config.time_24hr) - self.timeContainer.classList.add("time24hr"); - if (self.config.enableSeconds) { - self.timeContainer.classList.add("hasSeconds"); - var secondInput = createNumberInput("flatpickr-second"); - self.secondElement = secondInput.getElementsByTagName("input")[0]; - self.secondElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getSeconds() : defaults2.seconds); - self.secondElement.setAttribute("step", self.minuteElement.getAttribute("step")); - self.secondElement.setAttribute("min", "0"); - self.secondElement.setAttribute("max", "59"); - self.secondElement.setAttribute("maxlength", "2"); - self.timeContainer.appendChild(createElement("span", "flatpickr-time-separator", ":")); - self.timeContainer.appendChild(secondInput); - } - if (!self.config.time_24hr) { - self.amPM = createElement("span", "flatpickr-am-pm", self.l10n.amPM[int((self.latestSelectedDateObj ? self.hourElement.value : self.config.defaultHour) > 11)]); - self.amPM.title = self.l10n.toggleTitle; - self.amPM.tabIndex = -1; - self.timeContainer.appendChild(self.amPM); - } - return self.timeContainer; - } - function buildWeekdays() { - if (!self.weekdayContainer) - self.weekdayContainer = createElement("div", "flatpickr-weekdays"); - else - clearNode(self.weekdayContainer); - for (var i = self.config.showMonths; i--; ) { - var container = createElement("div", "flatpickr-weekdaycontainer"); - self.weekdayContainer.appendChild(container); - } - updateWeekdays(); - return self.weekdayContainer; - } - function updateWeekdays() { - if (!self.weekdayContainer) { - return; - } - var firstDayOfWeek = self.l10n.firstDayOfWeek; - var weekdays = __spreadArrays(self.l10n.weekdays.shorthand); - if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) { - weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek)); - } - for (var i = self.config.showMonths; i--; ) { - self.weekdayContainer.children[i].innerHTML = "\n \n " + weekdays.join("") + "\n \n "; - } - } - function buildWeeks() { - self.calendarContainer.classList.add("hasWeeks"); - var weekWrapper = createElement("div", "flatpickr-weekwrapper"); - weekWrapper.appendChild(createElement("span", "flatpickr-weekday", self.l10n.weekAbbreviation)); - var weekNumbers = createElement("div", "flatpickr-weeks"); - weekWrapper.appendChild(weekNumbers); - return { - weekWrapper, - weekNumbers - }; - } - function changeMonth(value, isOffset) { - if (isOffset === void 0) { - isOffset = true; - } - var delta = isOffset ? value : value - self.currentMonth; - if (delta < 0 && self._hidePrevMonthArrow === true || delta > 0 && self._hideNextMonthArrow === true) - return; - self.currentMonth += delta; - if (self.currentMonth < 0 || self.currentMonth > 11) { - self.currentYear += self.currentMonth > 11 ? 1 : -1; - self.currentMonth = (self.currentMonth + 12) % 12; - triggerEvent("onYearChange"); - buildMonthSwitch(); - } - buildDays(); - triggerEvent("onMonthChange"); - updateNavigationCurrentMonth(); - } - function clear(triggerChangeEvent, toInitial) { - if (triggerChangeEvent === void 0) { - triggerChangeEvent = true; - } - if (toInitial === void 0) { - toInitial = true; - } - self.input.value = ""; - if (self.altInput !== void 0) - self.altInput.value = ""; - if (self.mobileInput !== void 0) - self.mobileInput.value = ""; - self.selectedDates = []; - self.latestSelectedDateObj = void 0; - if (toInitial === true) { - self.currentYear = self._initialDate.getFullYear(); - self.currentMonth = self._initialDate.getMonth(); - } - if (self.config.enableTime === true) { - var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds; - setHours(hours, minutes, seconds); - } - self.redraw(); - if (triggerChangeEvent) - triggerEvent("onChange"); - } - function close() { - self.isOpen = false; - if (!self.isMobile) { - if (self.calendarContainer !== void 0) { - self.calendarContainer.classList.remove("open"); - } - if (self._input !== void 0) { - self._input.classList.remove("active"); - } - } - triggerEvent("onClose"); - } - function destroy() { - if (self.config !== void 0) - triggerEvent("onDestroy"); - for (var i = self._handlers.length; i--; ) { - self._handlers[i].remove(); - } - self._handlers = []; - if (self.mobileInput) { - if (self.mobileInput.parentNode) - self.mobileInput.parentNode.removeChild(self.mobileInput); - self.mobileInput = void 0; - } else if (self.calendarContainer && self.calendarContainer.parentNode) { - if (self.config.static && self.calendarContainer.parentNode) { - var wrapper = self.calendarContainer.parentNode; - wrapper.lastChild && wrapper.removeChild(wrapper.lastChild); - if (wrapper.parentNode) { - while (wrapper.firstChild) - wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper); - wrapper.parentNode.removeChild(wrapper); - } - } else - self.calendarContainer.parentNode.removeChild(self.calendarContainer); - } - if (self.altInput) { - self.input.type = "text"; - if (self.altInput.parentNode) - self.altInput.parentNode.removeChild(self.altInput); - delete self.altInput; - } - if (self.input) { - self.input.type = self.input._type; - self.input.classList.remove("flatpickr-input"); - self.input.removeAttribute("readonly"); - } - [ - "_showTimeInput", - "latestSelectedDateObj", - "_hideNextMonthArrow", - "_hidePrevMonthArrow", - "__hideNextMonthArrow", - "__hidePrevMonthArrow", - "isMobile", - "isOpen", - "selectedDateElem", - "minDateHasTime", - "maxDateHasTime", - "days", - "daysContainer", - "_input", - "_positionElement", - "innerContainer", - "rContainer", - "monthNav", - "todayDateElem", - "calendarContainer", - "weekdayContainer", - "prevMonthNav", - "nextMonthNav", - "monthsDropdownContainer", - "currentMonthElement", - "currentYearElement", - "navigationCurrentMonth", - "selectedDateElem", - "config" - ].forEach(function(k) { - try { - delete self[k]; - } catch (_) { - } - }); - } - function isCalendarElem(elem) { - return self.calendarContainer.contains(elem); - } - function documentClick(e) { - if (self.isOpen && !self.config.inline) { - var eventTarget_1 = getEventTarget(e); - var isCalendarElement = isCalendarElem(eventTarget_1); - var isInput3 = eventTarget_1 === self.input || eventTarget_1 === self.altInput || self.element.contains(eventTarget_1) || e.path && e.path.indexOf && (~e.path.indexOf(self.input) || ~e.path.indexOf(self.altInput)); - var lostFocus = !isInput3 && !isCalendarElement && !isCalendarElem(e.relatedTarget); - var isIgnored = !self.config.ignoredFocusElements.some(function(elem) { - return elem.contains(eventTarget_1); - }); - if (lostFocus && isIgnored) { - if (self.config.allowInput) { - self.setDate(self._input.value, false, self.config.altInput ? self.config.altFormat : self.config.dateFormat); - } - if (self.timeContainer !== void 0 && self.minuteElement !== void 0 && self.hourElement !== void 0 && self.input.value !== "" && self.input.value !== void 0) { - updateTime(); - } - self.close(); - if (self.config && self.config.mode === "range" && self.selectedDates.length === 1) - self.clear(false); - } - } - } - function changeYear(newYear) { - if (!newYear || self.config.minDate && newYear < self.config.minDate.getFullYear() || self.config.maxDate && newYear > self.config.maxDate.getFullYear()) - return; - var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum; - self.currentYear = newYearNum || self.currentYear; - if (self.config.maxDate && self.currentYear === self.config.maxDate.getFullYear()) { - self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth); - } else if (self.config.minDate && self.currentYear === self.config.minDate.getFullYear()) { - self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth); - } - if (isNewYear) { - self.redraw(); - triggerEvent("onYearChange"); - buildMonthSwitch(); - } - } - function isEnabled(date, timeless) { - var _a; - if (timeless === void 0) { - timeless = true; - } - var dateToCheck = self.parseDate(date, void 0, timeless); - if (self.config.minDate && dateToCheck && compareDates(dateToCheck, self.config.minDate, timeless !== void 0 ? timeless : !self.minDateHasTime) < 0 || self.config.maxDate && dateToCheck && compareDates(dateToCheck, self.config.maxDate, timeless !== void 0 ? timeless : !self.maxDateHasTime) > 0) - return false; - if (!self.config.enable && self.config.disable.length === 0) - return true; - if (dateToCheck === void 0) - return false; - var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable; - for (var i = 0, d = void 0; i < array.length; i++) { - d = array[i]; - if (typeof d === "function" && d(dateToCheck)) - return bool; - else if (d instanceof Date && dateToCheck !== void 0 && d.getTime() === dateToCheck.getTime()) - return bool; - else if (typeof d === "string") { - var parsed = self.parseDate(d, void 0, true); - return parsed && parsed.getTime() === dateToCheck.getTime() ? bool : !bool; - } else if (typeof d === "object" && dateToCheck !== void 0 && d.from && d.to && dateToCheck.getTime() >= d.from.getTime() && dateToCheck.getTime() <= d.to.getTime()) - return bool; - } - return !bool; - } - function isInView(elem) { - if (self.daysContainer !== void 0) - return elem.className.indexOf("hidden") === -1 && elem.className.indexOf("flatpickr-disabled") === -1 && self.daysContainer.contains(elem); - return false; - } - function onBlur(e) { - var isInput3 = e.target === self._input; - var valueChanged = self._input.value.trimEnd() !== getDateStr(); - if (isInput3 && valueChanged && !(e.relatedTarget && isCalendarElem(e.relatedTarget))) { - self.setDate(self._input.value, true, e.target === self.altInput ? self.config.altFormat : self.config.dateFormat); - } - } - function onKeyDown(e) { - var eventTarget = getEventTarget(e); - var isInput3 = self.config.wrap ? element2.contains(eventTarget) : eventTarget === self._input; - var allowInput = self.config.allowInput; - var allowKeydown = self.isOpen && (!allowInput || !isInput3); - var allowInlineKeydown = self.config.inline && isInput3 && !allowInput; - if (e.keyCode === 13 && isInput3) { - if (allowInput) { - self.setDate(self._input.value, true, eventTarget === self.altInput ? self.config.altFormat : self.config.dateFormat); - self.close(); - return eventTarget.blur(); - } else { - self.open(); - } - } else if (isCalendarElem(eventTarget) || allowKeydown || allowInlineKeydown) { - var isTimeObj = !!self.timeContainer && self.timeContainer.contains(eventTarget); - switch (e.keyCode) { - case 13: - if (isTimeObj) { - e.preventDefault(); - updateTime(); - focusAndClose(); - } else - selectDate(e); - break; - case 27: - e.preventDefault(); - focusAndClose(); - break; - case 8: - case 46: - if (isInput3 && !self.config.allowInput) { - e.preventDefault(); - self.clear(); - } - break; - case 37: - case 39: - if (!isTimeObj && !isInput3) { - e.preventDefault(); - var activeElement = getClosestActiveElement(); - if (self.daysContainer !== void 0 && (allowInput === false || activeElement && isInView(activeElement))) { - var delta_1 = e.keyCode === 39 ? 1 : -1; - if (!e.ctrlKey) - focusOnDay(void 0, delta_1); - else { - e.stopPropagation(); - changeMonth(delta_1); - focusOnDay(getFirstAvailableDay(1), 0); - } - } - } else if (self.hourElement) - self.hourElement.focus(); - break; - case 38: - case 40: - e.preventDefault(); - var delta = e.keyCode === 40 ? 1 : -1; - if (self.daysContainer && eventTarget.$i !== void 0 || eventTarget === self.input || eventTarget === self.altInput) { - if (e.ctrlKey) { - e.stopPropagation(); - changeYear(self.currentYear - delta); - focusOnDay(getFirstAvailableDay(1), 0); - } else if (!isTimeObj) - focusOnDay(void 0, delta * 7); - } else if (eventTarget === self.currentYearElement) { - changeYear(self.currentYear - delta); - } else if (self.config.enableTime) { - if (!isTimeObj && self.hourElement) - self.hourElement.focus(); - updateTime(e); - self._debouncedChange(); - } - break; - case 9: - if (isTimeObj) { - var elems = [ - self.hourElement, - self.minuteElement, - self.secondElement, - self.amPM - ].concat(self.pluginElements).filter(function(x) { - return x; - }); - var i = elems.indexOf(eventTarget); - if (i !== -1) { - var target = elems[i + (e.shiftKey ? -1 : 1)]; - e.preventDefault(); - (target || self._input).focus(); - } - } else if (!self.config.noCalendar && self.daysContainer && self.daysContainer.contains(eventTarget) && e.shiftKey) { - e.preventDefault(); - self._input.focus(); - } - break; - default: - break; - } - } - if (self.amPM !== void 0 && eventTarget === self.amPM) { - switch (e.key) { - case self.l10n.amPM[0].charAt(0): - case self.l10n.amPM[0].charAt(0).toLowerCase(): - self.amPM.textContent = self.l10n.amPM[0]; - setHoursFromInputs(); - updateValue(); - break; - case self.l10n.amPM[1].charAt(0): - case self.l10n.amPM[1].charAt(0).toLowerCase(): - self.amPM.textContent = self.l10n.amPM[1]; - setHoursFromInputs(); - updateValue(); - break; - } - } - if (isInput3 || isCalendarElem(eventTarget)) { - triggerEvent("onKeyDown", e); - } - } - function onMouseOver(elem, cellClass) { - if (cellClass === void 0) { - cellClass = "flatpickr-day"; - } - if (self.selectedDates.length !== 1 || elem && (!elem.classList.contains(cellClass) || elem.classList.contains("flatpickr-disabled"))) - return; - var hoverDate = elem ? elem.dateObj.getTime() : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], void 0, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime()); - var containsDisabled = false; - var minRange = 0, maxRange = 0; - for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) { - if (!isEnabled(new Date(t), true)) { - containsDisabled = containsDisabled || t > rangeStartDate && t < rangeEndDate; - if (t < initialDate && (!minRange || t > minRange)) - minRange = t; - else if (t > initialDate && (!maxRange || t < maxRange)) - maxRange = t; - } - } - var hoverableCells = Array.from(self.rContainer.querySelectorAll("*:nth-child(-n+" + self.config.showMonths + ") > ." + cellClass)); - hoverableCells.forEach(function(dayElem) { - var date = dayElem.dateObj; - var timestamp = date.getTime(); - var outOfRange = minRange > 0 && timestamp < minRange || maxRange > 0 && timestamp > maxRange; - if (outOfRange) { - dayElem.classList.add("notAllowed"); - ["inRange", "startRange", "endRange"].forEach(function(c) { - dayElem.classList.remove(c); - }); - return; - } else if (containsDisabled && !outOfRange) - return; - ["startRange", "inRange", "endRange", "notAllowed"].forEach(function(c) { - dayElem.classList.remove(c); - }); - if (elem !== void 0) { - elem.classList.add(hoverDate <= self.selectedDates[0].getTime() ? "startRange" : "endRange"); - if (initialDate < hoverDate && timestamp === initialDate) - dayElem.classList.add("startRange"); - else if (initialDate > hoverDate && timestamp === initialDate) - dayElem.classList.add("endRange"); - if (timestamp >= minRange && (maxRange === 0 || timestamp <= maxRange) && isBetween(timestamp, initialDate, hoverDate)) - dayElem.classList.add("inRange"); - } - }); - } - function onResize() { - if (self.isOpen && !self.config.static && !self.config.inline) - positionCalendar(); - } - function open(e, positionElement) { - if (positionElement === void 0) { - positionElement = self._positionElement; - } - if (self.isMobile === true) { - if (e) { - e.preventDefault(); - var eventTarget = getEventTarget(e); - if (eventTarget) { - eventTarget.blur(); - } - } - if (self.mobileInput !== void 0) { - self.mobileInput.focus(); - self.mobileInput.click(); - } - triggerEvent("onOpen"); - return; - } else if (self._input.disabled || self.config.inline) { - return; - } - var wasOpen = self.isOpen; - self.isOpen = true; - if (!wasOpen) { - self.calendarContainer.classList.add("open"); - self._input.classList.add("active"); - triggerEvent("onOpen"); - positionCalendar(positionElement); - } - if (self.config.enableTime === true && self.config.noCalendar === true) { - if (self.config.allowInput === false && (e === void 0 || !self.timeContainer.contains(e.relatedTarget))) { - setTimeout(function() { - return self.hourElement.select(); - }, 50); - } - } - } - function minMaxDateSetter(type) { - return function(date) { - var dateObj = self.config["_" + type + "Date"] = self.parseDate(date, self.config.dateFormat); - var inverseDateObj = self.config["_" + (type === "min" ? "max" : "min") + "Date"]; - if (dateObj !== void 0) { - self[type === "min" ? "minDateHasTime" : "maxDateHasTime"] = dateObj.getHours() > 0 || dateObj.getMinutes() > 0 || dateObj.getSeconds() > 0; - } - if (self.selectedDates) { - self.selectedDates = self.selectedDates.filter(function(d) { - return isEnabled(d); - }); - if (!self.selectedDates.length && type === "min") - setHoursFromDate(dateObj); - updateValue(); - } - if (self.daysContainer) { - redraw(); - if (dateObj !== void 0) - self.currentYearElement[type] = dateObj.getFullYear().toString(); - else - self.currentYearElement.removeAttribute(type); - self.currentYearElement.disabled = !!inverseDateObj && dateObj !== void 0 && inverseDateObj.getFullYear() === dateObj.getFullYear(); - } - }; - } - function parseConfig() { - var boolOpts = [ - "wrap", - "weekNumbers", - "allowInput", - "allowInvalidPreload", - "clickOpens", - "time_24hr", - "enableTime", - "noCalendar", - "altInput", - "shorthandCurrentMonth", - "inline", - "static", - "enableSeconds", - "disableMobile" - ]; - var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element2.dataset || {}))), instanceConfig); - var formats2 = {}; - self.config.parseDate = userConfig.parseDate; - self.config.formatDate = userConfig.formatDate; - Object.defineProperty(self.config, "enable", { - get: function() { - return self.config._enable; - }, - set: function(dates) { - self.config._enable = parseDateRules(dates); - } - }); - Object.defineProperty(self.config, "disable", { - get: function() { - return self.config._disable; - }, - set: function(dates) { - self.config._disable = parseDateRules(dates); - } - }); - var timeMode = userConfig.mode === "time"; - if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) { - var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat; - formats2.dateFormat = userConfig.noCalendar || timeMode ? "H:i" + (userConfig.enableSeconds ? ":S" : "") : defaultDateFormat + " H:i" + (userConfig.enableSeconds ? ":S" : ""); - } - if (userConfig.altInput && (userConfig.enableTime || timeMode) && !userConfig.altFormat) { - var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat; - formats2.altFormat = userConfig.noCalendar || timeMode ? "h:i" + (userConfig.enableSeconds ? ":S K" : " K") : defaultAltFormat + (" h:i" + (userConfig.enableSeconds ? ":S" : "") + " K"); - } - Object.defineProperty(self.config, "minDate", { - get: function() { - return self.config._minDate; - }, - set: minMaxDateSetter("min") - }); - Object.defineProperty(self.config, "maxDate", { - get: function() { - return self.config._maxDate; - }, - set: minMaxDateSetter("max") - }); - var minMaxTimeSetter = function(type) { - return function(val) { - self.config[type === "min" ? "_minTime" : "_maxTime"] = self.parseDate(val, "H:i:S"); - }; - }; - Object.defineProperty(self.config, "minTime", { - get: function() { - return self.config._minTime; - }, - set: minMaxTimeSetter("min") - }); - Object.defineProperty(self.config, "maxTime", { - get: function() { - return self.config._maxTime; - }, - set: minMaxTimeSetter("max") - }); - if (userConfig.mode === "time") { - self.config.noCalendar = true; - self.config.enableTime = true; - } - Object.assign(self.config, formats2, userConfig); - for (var i = 0; i < boolOpts.length; i++) - self.config[boolOpts[i]] = self.config[boolOpts[i]] === true || self.config[boolOpts[i]] === "true"; - HOOKS.filter(function(hook) { - return self.config[hook] !== void 0; - }).forEach(function(hook) { - self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance); - }); - self.isMobile = !self.config.disableMobile && !self.config.inline && self.config.mode === "single" && !self.config.disable.length && !self.config.enable && !self.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); - for (var i = 0; i < self.config.plugins.length; i++) { - var pluginConf = self.config.plugins[i](self) || {}; - for (var key in pluginConf) { - if (HOOKS.indexOf(key) > -1) { - self.config[key] = arrayify(pluginConf[key]).map(bindToInstance).concat(self.config[key]); - } else if (typeof userConfig[key] === "undefined") - self.config[key] = pluginConf[key]; - } - } - if (!userConfig.altInputClass) { - self.config.altInputClass = getInputElem().className + " " + self.config.altInputClass; - } - triggerEvent("onParseConfig"); - } - function getInputElem() { - return self.config.wrap ? element2.querySelector("[data-input]") : element2; - } - function setupLocale() { - if (typeof self.config.locale !== "object" && typeof flatpickr.l10ns[self.config.locale] === "undefined") - self.config.errorHandler(new Error("flatpickr: invalid locale " + self.config.locale)); - self.l10n = __assign(__assign({}, flatpickr.l10ns.default), typeof self.config.locale === "object" ? self.config.locale : self.config.locale !== "default" ? flatpickr.l10ns[self.config.locale] : void 0); - tokenRegex.D = "(" + self.l10n.weekdays.shorthand.join("|") + ")"; - tokenRegex.l = "(" + self.l10n.weekdays.longhand.join("|") + ")"; - tokenRegex.M = "(" + self.l10n.months.shorthand.join("|") + ")"; - tokenRegex.F = "(" + self.l10n.months.longhand.join("|") + ")"; - tokenRegex.K = "(" + self.l10n.amPM[0] + "|" + self.l10n.amPM[1] + "|" + self.l10n.amPM[0].toLowerCase() + "|" + self.l10n.amPM[1].toLowerCase() + ")"; - var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element2.dataset || {}))); - if (userConfig.time_24hr === void 0 && flatpickr.defaultConfig.time_24hr === void 0) { - self.config.time_24hr = self.l10n.time_24hr; - } - self.formatDate = createDateFormatter(self); - self.parseDate = createDateParser({ config: self.config, l10n: self.l10n }); - } - function positionCalendar(customPositionElement) { - if (typeof self.config.position === "function") { - return void self.config.position(self, customPositionElement); - } - if (self.calendarContainer === void 0) - return; - triggerEvent("onPreCalendarPosition"); - var positionElement = customPositionElement || self._positionElement; - var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, function(acc, child) { - return acc + child.offsetHeight; - }, 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(" "), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === "above" || configPosVertical !== "below" && distanceFromBottom < calendarHeight && inputBounds.top > calendarHeight; - var top2 = window.pageYOffset + inputBounds.top + (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2); - toggleClass(self.calendarContainer, "arrowTop", !showOnTop); - toggleClass(self.calendarContainer, "arrowBottom", showOnTop); - if (self.config.inline) - return; - var left2 = window.pageXOffset + inputBounds.left; - var isCenter = false; - var isRight = false; - if (configPosHorizontal === "center") { - left2 -= (calendarWidth - inputBounds.width) / 2; - isCenter = true; - } else if (configPosHorizontal === "right") { - left2 -= calendarWidth - inputBounds.width; - isRight = true; - } - toggleClass(self.calendarContainer, "arrowLeft", !isCenter && !isRight); - toggleClass(self.calendarContainer, "arrowCenter", isCenter); - toggleClass(self.calendarContainer, "arrowRight", isRight); - var right2 = window.document.body.offsetWidth - (window.pageXOffset + inputBounds.right); - var rightMost = left2 + calendarWidth > window.document.body.offsetWidth; - var centerMost = right2 + calendarWidth > window.document.body.offsetWidth; - toggleClass(self.calendarContainer, "rightMost", rightMost); - if (self.config.static) - return; - self.calendarContainer.style.top = top2 + "px"; - if (!rightMost) { - self.calendarContainer.style.left = left2 + "px"; - self.calendarContainer.style.right = "auto"; - } else if (!centerMost) { - self.calendarContainer.style.left = "auto"; - self.calendarContainer.style.right = right2 + "px"; - } else { - var doc = getDocumentStyleSheet(); - if (doc === void 0) - return; - var bodyWidth = window.document.body.offsetWidth; - var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2); - var centerBefore = ".flatpickr-calendar.centerMost:before"; - var centerAfter = ".flatpickr-calendar.centerMost:after"; - var centerIndex = doc.cssRules.length; - var centerStyle = "{left:" + inputBounds.left + "px;right:auto;}"; - toggleClass(self.calendarContainer, "rightMost", false); - toggleClass(self.calendarContainer, "centerMost", true); - doc.insertRule(centerBefore + "," + centerAfter + centerStyle, centerIndex); - self.calendarContainer.style.left = centerLeft + "px"; - self.calendarContainer.style.right = "auto"; - } - } - function getDocumentStyleSheet() { - var editableSheet = null; - for (var i = 0; i < document.styleSheets.length; i++) { - var sheet = document.styleSheets[i]; - if (!sheet.cssRules) - continue; - try { - sheet.cssRules; - } catch (err) { - continue; - } - editableSheet = sheet; - break; - } - return editableSheet != null ? editableSheet : createStyleSheet(); - } - function createStyleSheet() { - var style = document.createElement("style"); - document.head.appendChild(style); - return style.sheet; - } - function redraw() { - if (self.config.noCalendar || self.isMobile) - return; - buildMonthSwitch(); - updateNavigationCurrentMonth(); - buildDays(); - } - function focusAndClose() { - self._input.focus(); - if (window.navigator.userAgent.indexOf("MSIE") !== -1 || navigator.msMaxTouchPoints !== void 0) { - setTimeout(self.close, 0); - } else { - self.close(); - } - } - function selectDate(e) { - e.preventDefault(); - e.stopPropagation(); - var isSelectable = function(day) { - return day.classList && day.classList.contains("flatpickr-day") && !day.classList.contains("flatpickr-disabled") && !day.classList.contains("notAllowed"); - }; - var t = findParent(getEventTarget(e), isSelectable); - if (t === void 0) - return; - var target = t; - var selectedDate = self.latestSelectedDateObj = new Date(target.dateObj.getTime()); - var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth || selectedDate.getMonth() > self.currentMonth + self.config.showMonths - 1) && self.config.mode !== "range"; - self.selectedDateElem = target; - if (self.config.mode === "single") - self.selectedDates = [selectedDate]; - else if (self.config.mode === "multiple") { - var selectedIndex = isDateSelected(selectedDate); - if (selectedIndex) - self.selectedDates.splice(parseInt(selectedIndex), 1); - else - self.selectedDates.push(selectedDate); - } else if (self.config.mode === "range") { - if (self.selectedDates.length === 2) { - self.clear(false, false); - } - self.latestSelectedDateObj = selectedDate; - self.selectedDates.push(selectedDate); - if (compareDates(selectedDate, self.selectedDates[0], true) !== 0) - self.selectedDates.sort(function(a, b) { - return a.getTime() - b.getTime(); - }); - } - setHoursFromInputs(); - if (shouldChangeMonth) { - var isNewYear = self.currentYear !== selectedDate.getFullYear(); - self.currentYear = selectedDate.getFullYear(); - self.currentMonth = selectedDate.getMonth(); - if (isNewYear) { - triggerEvent("onYearChange"); - buildMonthSwitch(); - } - triggerEvent("onMonthChange"); - } - updateNavigationCurrentMonth(); - buildDays(); - updateValue(); - if (!shouldChangeMonth && self.config.mode !== "range" && self.config.showMonths === 1) - focusOnDayElem(target); - else if (self.selectedDateElem !== void 0 && self.hourElement === void 0) { - self.selectedDateElem && self.selectedDateElem.focus(); - } - if (self.hourElement !== void 0) - self.hourElement !== void 0 && self.hourElement.focus(); - if (self.config.closeOnSelect) { - var single = self.config.mode === "single" && !self.config.enableTime; - var range = self.config.mode === "range" && self.selectedDates.length === 2 && !self.config.enableTime; - if (single || range) { - focusAndClose(); - } - } - triggerChange(); - } - var CALLBACKS = { - locale: [setupLocale, updateWeekdays], - showMonths: [buildMonths, setCalendarWidth, buildWeekdays], - minDate: [jumpToDate], - maxDate: [jumpToDate], - positionElement: [updatePositionElement], - clickOpens: [ - function() { - if (self.config.clickOpens === true) { - bind(self._input, "focus", self.open); - bind(self._input, "click", self.open); - } else { - self._input.removeEventListener("focus", self.open); - self._input.removeEventListener("click", self.open); - } - } - ] - }; - function set(option, value) { - if (option !== null && typeof option === "object") { - Object.assign(self.config, option); - for (var key in option) { - if (CALLBACKS[key] !== void 0) - CALLBACKS[key].forEach(function(x) { - return x(); - }); - } - } else { - self.config[option] = value; - if (CALLBACKS[option] !== void 0) - CALLBACKS[option].forEach(function(x) { - return x(); - }); - else if (HOOKS.indexOf(option) > -1) - self.config[option] = arrayify(value); - } - self.redraw(); - updateValue(true); - } - function setSelectedDate(inputDate, format) { - var dates = []; - if (inputDate instanceof Array) - dates = inputDate.map(function(d) { - return self.parseDate(d, format); - }); - else if (inputDate instanceof Date || typeof inputDate === "number") - dates = [self.parseDate(inputDate, format)]; - else if (typeof inputDate === "string") { - switch (self.config.mode) { - case "single": - case "time": - dates = [self.parseDate(inputDate, format)]; - break; - case "multiple": - dates = inputDate.split(self.config.conjunction).map(function(date) { - return self.parseDate(date, format); - }); - break; - case "range": - dates = inputDate.split(self.l10n.rangeSeparator).map(function(date) { - return self.parseDate(date, format); - }); - break; - default: - break; - } - } else - self.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(inputDate))); - self.selectedDates = self.config.allowInvalidPreload ? dates : dates.filter(function(d) { - return d instanceof Date && isEnabled(d, false); - }); - if (self.config.mode === "range") - self.selectedDates.sort(function(a, b) { - return a.getTime() - b.getTime(); - }); - } - function setDate(date, triggerChange2, format) { - if (triggerChange2 === void 0) { - triggerChange2 = false; - } - if (format === void 0) { - format = self.config.dateFormat; - } - if (date !== 0 && !date || date instanceof Array && date.length === 0) - return self.clear(triggerChange2); - setSelectedDate(date, format); - self.latestSelectedDateObj = self.selectedDates[self.selectedDates.length - 1]; - self.redraw(); - jumpToDate(void 0, triggerChange2); - setHoursFromDate(); - if (self.selectedDates.length === 0) { - self.clear(false); - } - updateValue(triggerChange2); - if (triggerChange2) - triggerEvent("onChange"); - } - function parseDateRules(arr) { - return arr.slice().map(function(rule) { - if (typeof rule === "string" || typeof rule === "number" || rule instanceof Date) { - return self.parseDate(rule, void 0, true); - } else if (rule && typeof rule === "object" && rule.from && rule.to) - return { - from: self.parseDate(rule.from, void 0), - to: self.parseDate(rule.to, void 0) - }; - return rule; - }).filter(function(x) { - return x; - }); - } - function setupDates() { - self.selectedDates = []; - self.now = self.parseDate(self.config.now) || /* @__PURE__ */ new Date(); - var preloadedDate = self.config.defaultDate || ((self.input.nodeName === "INPUT" || self.input.nodeName === "TEXTAREA") && self.input.placeholder && self.input.value === self.input.placeholder ? null : self.input.value); - if (preloadedDate) - setSelectedDate(preloadedDate, self.config.dateFormat); - self._initialDate = self.selectedDates.length > 0 ? self.selectedDates[0] : self.config.minDate && self.config.minDate.getTime() > self.now.getTime() ? self.config.minDate : self.config.maxDate && self.config.maxDate.getTime() < self.now.getTime() ? self.config.maxDate : self.now; - self.currentYear = self._initialDate.getFullYear(); - self.currentMonth = self._initialDate.getMonth(); - if (self.selectedDates.length > 0) - self.latestSelectedDateObj = self.selectedDates[0]; - if (self.config.minTime !== void 0) - self.config.minTime = self.parseDate(self.config.minTime, "H:i"); - if (self.config.maxTime !== void 0) - self.config.maxTime = self.parseDate(self.config.maxTime, "H:i"); - self.minDateHasTime = !!self.config.minDate && (self.config.minDate.getHours() > 0 || self.config.minDate.getMinutes() > 0 || self.config.minDate.getSeconds() > 0); - self.maxDateHasTime = !!self.config.maxDate && (self.config.maxDate.getHours() > 0 || self.config.maxDate.getMinutes() > 0 || self.config.maxDate.getSeconds() > 0); - } - function setupInputs() { - self.input = getInputElem(); - if (!self.input) { - self.config.errorHandler(new Error("Invalid input element specified")); - return; - } - self.input._type = self.input.type; - self.input.type = "text"; - self.input.classList.add("flatpickr-input"); - self._input = self.input; - if (self.config.altInput) { - self.altInput = createElement(self.input.nodeName, self.config.altInputClass); - self._input = self.altInput; - self.altInput.placeholder = self.input.placeholder; - self.altInput.disabled = self.input.disabled; - self.altInput.required = self.input.required; - self.altInput.tabIndex = self.input.tabIndex; - self.altInput.type = "text"; - self.input.setAttribute("type", "hidden"); - if (!self.config.static && self.input.parentNode) - self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling); - } - if (!self.config.allowInput) - self._input.setAttribute("readonly", "readonly"); - updatePositionElement(); - } - function updatePositionElement() { - self._positionElement = self.config.positionElement || self._input; - } - function setupMobile() { - var inputType = self.config.enableTime ? self.config.noCalendar ? "time" : "datetime-local" : "date"; - self.mobileInput = createElement("input", self.input.className + " flatpickr-mobile"); - self.mobileInput.tabIndex = 1; - self.mobileInput.type = inputType; - self.mobileInput.disabled = self.input.disabled; - self.mobileInput.required = self.input.required; - self.mobileInput.placeholder = self.input.placeholder; - self.mobileFormatStr = inputType === "datetime-local" ? "Y-m-d\\TH:i:S" : inputType === "date" ? "Y-m-d" : "H:i:S"; - if (self.selectedDates.length > 0) { - self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr); - } - if (self.config.minDate) - self.mobileInput.min = self.formatDate(self.config.minDate, "Y-m-d"); - if (self.config.maxDate) - self.mobileInput.max = self.formatDate(self.config.maxDate, "Y-m-d"); - if (self.input.getAttribute("step")) - self.mobileInput.step = String(self.input.getAttribute("step")); - self.input.type = "hidden"; - if (self.altInput !== void 0) - self.altInput.type = "hidden"; - try { - if (self.input.parentNode) - self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling); - } catch (_a) { - } - bind(self.mobileInput, "change", function(e) { - self.setDate(getEventTarget(e).value, false, self.mobileFormatStr); - triggerEvent("onChange"); - triggerEvent("onClose"); - }); - } - function toggle(e) { - if (self.isOpen === true) - return self.close(); - self.open(e); - } - function triggerEvent(event, data) { - if (self.config === void 0) - return; - var hooks = self.config[event]; - if (hooks !== void 0 && hooks.length > 0) { - for (var i = 0; hooks[i] && i < hooks.length; i++) - hooks[i](self.selectedDates, self.input.value, self, data); - } - if (event === "onChange") { - self.input.dispatchEvent(createEvent("change")); - self.input.dispatchEvent(createEvent("input")); - } - } - function createEvent(name) { - var e = document.createEvent("Event"); - e.initEvent(name, true, true); - return e; - } - function isDateSelected(date) { - for (var i = 0; i < self.selectedDates.length; i++) { - var selectedDate = self.selectedDates[i]; - if (selectedDate instanceof Date && compareDates(selectedDate, date) === 0) - return "" + i; - } - return false; - } - function isDateInRange(date) { - if (self.config.mode !== "range" || self.selectedDates.length < 2) - return false; - return compareDates(date, self.selectedDates[0]) >= 0 && compareDates(date, self.selectedDates[1]) <= 0; - } - function updateNavigationCurrentMonth() { - if (self.config.noCalendar || self.isMobile || !self.monthNav) - return; - self.yearElements.forEach(function(yearElement, i) { - var d = new Date(self.currentYear, self.currentMonth, 1); - d.setMonth(self.currentMonth + i); - if (self.config.showMonths > 1 || self.config.monthSelectorType === "static") { - self.monthElements[i].textContent = monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + " "; - } else { - self.monthsDropdownContainer.value = d.getMonth().toString(); - } - yearElement.value = d.getFullYear().toString(); - }); - self._hidePrevMonthArrow = self.config.minDate !== void 0 && (self.currentYear === self.config.minDate.getFullYear() ? self.currentMonth <= self.config.minDate.getMonth() : self.currentYear < self.config.minDate.getFullYear()); - self._hideNextMonthArrow = self.config.maxDate !== void 0 && (self.currentYear === self.config.maxDate.getFullYear() ? self.currentMonth + 1 > self.config.maxDate.getMonth() : self.currentYear > self.config.maxDate.getFullYear()); - } - function getDateStr(specificFormat) { - var format = specificFormat || (self.config.altInput ? self.config.altFormat : self.config.dateFormat); - return self.selectedDates.map(function(dObj) { - return self.formatDate(dObj, format); - }).filter(function(d, i, arr) { - return self.config.mode !== "range" || self.config.enableTime || arr.indexOf(d) === i; - }).join(self.config.mode !== "range" ? self.config.conjunction : self.l10n.rangeSeparator); - } - function updateValue(triggerChange2) { - if (triggerChange2 === void 0) { - triggerChange2 = true; - } - if (self.mobileInput !== void 0 && self.mobileFormatStr) { - self.mobileInput.value = self.latestSelectedDateObj !== void 0 ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr) : ""; - } - self.input.value = getDateStr(self.config.dateFormat); - if (self.altInput !== void 0) { - self.altInput.value = getDateStr(self.config.altFormat); - } - if (triggerChange2 !== false) - triggerEvent("onValueUpdate"); - } - function onMonthNavClick(e) { - var eventTarget = getEventTarget(e); - var isPrevMonth = self.prevMonthNav.contains(eventTarget); - var isNextMonth = self.nextMonthNav.contains(eventTarget); - if (isPrevMonth || isNextMonth) { - changeMonth(isPrevMonth ? -1 : 1); - } else if (self.yearElements.indexOf(eventTarget) >= 0) { - eventTarget.select(); - } else if (eventTarget.classList.contains("arrowUp")) { - self.changeYear(self.currentYear + 1); - } else if (eventTarget.classList.contains("arrowDown")) { - self.changeYear(self.currentYear - 1); - } - } - function timeWrapper(e) { - e.preventDefault(); - var isKeyDown = e.type === "keydown", eventTarget = getEventTarget(e), input = eventTarget; - if (self.amPM !== void 0 && eventTarget === self.amPM) { - self.amPM.textContent = self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])]; - } - var min2 = parseFloat(input.getAttribute("min")), max2 = parseFloat(input.getAttribute("max")), step = parseFloat(input.getAttribute("step")), curValue = parseInt(input.value, 10), delta = e.delta || (isKeyDown ? e.which === 38 ? 1 : -1 : 0); - var newValue = curValue + step * delta; - if (typeof input.value !== "undefined" && input.value.length === 2) { - var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement; - if (newValue < min2) { - newValue = max2 + newValue + int(!isHourElem) + (int(isHourElem) && int(!self.amPM)); - if (isMinuteElem) - incrementNumInput(void 0, -1, self.hourElement); - } else if (newValue > max2) { - newValue = input === self.hourElement ? newValue - max2 - int(!self.amPM) : min2; - if (isMinuteElem) - incrementNumInput(void 0, 1, self.hourElement); - } - if (self.amPM && isHourElem && (step === 1 ? newValue + curValue === 23 : Math.abs(newValue - curValue) > step)) { - self.amPM.textContent = self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])]; - } - input.value = pad(newValue); - } - } - init(); - return self; - } - function _flatpickr(nodeList, config) { - var nodes = Array.prototype.slice.call(nodeList).filter(function(x) { - return x instanceof HTMLElement; - }); - var instances = []; - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - try { - if (node.getAttribute("data-fp-omit") !== null) - continue; - if (node._flatpickr !== void 0) { - node._flatpickr.destroy(); - node._flatpickr = void 0; - } - node._flatpickr = FlatpickrInstance(node, config || {}); - instances.push(node._flatpickr); - } catch (e) { - console.error(e); - } - } - return instances.length === 1 ? instances[0] : instances; - } - if (typeof HTMLElement !== "undefined" && typeof HTMLCollection !== "undefined" && typeof NodeList !== "undefined") { - HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function(config) { - return _flatpickr(this, config); - }; - HTMLElement.prototype.flatpickr = function(config) { - return _flatpickr([this], config); - }; - } - var flatpickr = function(selector, config) { - if (typeof selector === "string") { - return _flatpickr(window.document.querySelectorAll(selector), config); - } else if (selector instanceof Node) { - return _flatpickr([selector], config); - } else { - return _flatpickr(selector, config); - } - }; - flatpickr.defaultConfig = {}; - flatpickr.l10ns = { - en: __assign({}, default_default), - default: __assign({}, default_default) - }; - flatpickr.localize = function(l10n) { - flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n); - }; - flatpickr.setDefaults = function(config) { - flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config); - }; - flatpickr.parseDate = createDateParser({}); - flatpickr.formatDate = createDateFormatter({}); - flatpickr.compareDates = compareDates; - if (typeof jQuery !== "undefined" && typeof jQuery.fn !== "undefined") { - jQuery.fn.flatpickr = function(config) { - return _flatpickr(this, config); - }; - } - Date.prototype.fp_incr = function(days) { - return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === "string" ? parseInt(days, 10) : days)); - }; - if (typeof window !== "undefined") { - window.flatpickr = flatpickr; - } - var esm_default = flatpickr; - - // src/js/components/picker.js - var Picker = esm_default; - var picker_default = Picker; - - // src/js/components/drawer.js - var trap3; - var getScrollbarWidth2 = () => { - const outer = document.createElement("div"); - outer.style.visibility = "hidden"; - outer.style.width = "100px"; - outer.style.msOverflowStyle = "scrollbar"; - outer.style.overflow = "scroll"; - document.body.appendChild(outer); - const widthNoScroll = outer.offsetWidth; - outer.style.overflow = "scroll"; - const inner = document.createElement("div"); - inner.style.width = "100%"; - outer.appendChild(inner); - const widthWithScroll = inner.offsetWidth; - outer.parentNode.removeChild(outer); - return widthNoScroll - widthWithScroll; - }; - var ToggleOverflow2 = (overflow) => { - if (overflow) { - document.body.style.setProperty("--scrollbar-width", `${getScrollbarWidth2()}px`); - document.body.classList.add("overflow-hidden"); - } else { - document.body.style.removeProperty("--scrollbar-width"); - document.body.classList.remove("overflow-hidden"); - } - }; - var Drawer = { - toggle: (el) => { - const dialog = el; - if (dialog.classList.contains("open")) { - Drawer.close(el); - } else { - Drawer.open(el); - } - }, - open: (el) => { - const dialog = el; - dialog.classList.add("open"); - dialog.removeAttribute("tabindex"); - ToggleOverflow2(true); - trap3 = createFocusTrap(dialog, { - onDeactivate: () => { - Drawer.close(el); - } - }); - trap3.activate(); - el.addEventListener("pointerdown", (e) => { - if (e.target !== e.currentTarget) - return; - Drawer.close(el); - }); - }, - close: (el) => { - const dialog = el; - dialog.setAttribute("tabindex", "-1"); - dialog.classList.remove("open"); - document.body.classList.remove("modal-open"); - trap3.deactivate(); - ToggleOverflow2(false); - } - }; - var drawer_default = Drawer; - - // src/js/index.js - exportGlobal("Ripple", ripple_default); - exportGlobal("Forms", forms_default); - exportGlobal("Accordion", accordion_default); - exportGlobal("Tabs", tabs_default); - exportGlobal("Appbar", appbar_default); - exportGlobal("Menu", menu_default); - exportGlobal("Tooltip", tooltip_default); - exportGlobal("Snackbar", snackbar_default); - exportGlobal("Dialog", dialog_default); - exportGlobal("Picker", picker_default); - exportGlobal("Drawer", drawer_default); -})(); -/*! Bundled license information: - -tabbable/dist/index.esm.js: - (*! - * tabbable 6.2.0 - * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE - *) - -focus-trap/dist/focus-trap.esm.js: - (*! - * focus-trap 7.5.2 - * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE - *) -*/ -//# sourceMappingURL=material.js.map diff --git a/dist/material.js.map b/dist/material.js.map deleted file mode 100644 index dcdd7193..00000000 --- a/dist/material.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../src/js/exportGlobal.js", "../src/js/components/ripple.js", "../node_modules/nouislider/dist/nouislider.mjs", "../src/js/components/forms.js", "../src/js/components/accordion.js", "../src/js/components/tabs.js", "../src/js/components/appbar.js", "../node_modules/tabbable/src/index.js", "../node_modules/focus-trap/index.js", "../node_modules/@popperjs/core/lib/enums.js", "../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../node_modules/@popperjs/core/lib/utils/math.js", "../node_modules/@popperjs/core/lib/utils/userAgent.js", "../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../node_modules/@popperjs/core/lib/dom-utils/contains.js", "../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../node_modules/@popperjs/core/lib/utils/within.js", "../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../node_modules/@popperjs/core/lib/modifiers/arrow.js", "../node_modules/@popperjs/core/lib/utils/getVariation.js", "../node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../node_modules/@popperjs/core/lib/modifiers/flip.js", "../node_modules/@popperjs/core/lib/modifiers/hide.js", "../node_modules/@popperjs/core/lib/modifiers/offset.js", "../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../node_modules/@popperjs/core/lib/utils/debounce.js", "../node_modules/@popperjs/core/lib/utils/mergeByName.js", "../node_modules/@popperjs/core/lib/createPopper.js", "../node_modules/@popperjs/core/lib/popper.js", "../src/js/components/menu.js", "../src/js/components/tooltip.js", "../src/js/components/snackbar.js", "../src/js/components/dialog.js", "../node_modules/flatpickr/dist/esm/types/options.js", "../node_modules/flatpickr/dist/esm/l10n/default.js", "../node_modules/flatpickr/dist/esm/utils/index.js", "../node_modules/flatpickr/dist/esm/utils/dom.js", "../node_modules/flatpickr/dist/esm/utils/formatting.js", "../node_modules/flatpickr/dist/esm/utils/dates.js", "../node_modules/flatpickr/dist/esm/utils/polyfills.js", "../node_modules/flatpickr/dist/esm/index.js", "../src/js/components/picker.js", "../src/js/components/drawer.js", "../src/js/index.js"], - "sourcesContent": ["export function exportGlobal(name, value) {\n\t/**\n\t * Create \"Material\" global object if it doesn't exist\n\t */\n\tif (typeof window[\"Material\"] === \"undefined\") {\n\t\twindow[\"Material\"] = {};\n\t}\n\n\t/**\n\t * Set the value to the Material object\n\t */\n\tif (typeof window !== \"undefined\") {\n\t\twindow[\"Material\"][name] = value;\n\t} else {\n\t\tthrow new Error(`Material - Cannot export global variable.`);\n\t}\n}\n", "const Ripple = {\r\n init: () => {\r\n const buttons = document.querySelectorAll('.ripple-e:not(.ripple-ready) , .btn:not(.ripple-ready), .icon:not(.ripple-ready)')\r\n const stopEvents = [\"pointerup\", \"mouseleave\", \"dragleave\", \"touchmove\", \"touchend\", \"touchcancel\"];\r\n let id;\r\n\r\n function findFurthestPoint(clickPointX, elementWidth, offsetX, clickPointY, elementHeight, offsetY) {\r\n let x = clickPointX - offsetX > elementWidth / 2 ? 0 : elementWidth;\r\n let y = clickPointY - offsetY > elementHeight / 2 ? 0 : elementHeight;\r\n let d = Math.hypot(x - (clickPointX - offsetX), y - (clickPointY - offsetY));\r\n return d;\r\n }\r\n\r\n buttons.forEach(button => {\r\n button.classList.add('ripple-ready');\r\n button.addEventListener('pointerdown', e => {\r\n const rect = button.getBoundingClientRect()\r\n const radius = findFurthestPoint(e.clientX, button.offsetWidth, rect.left, e.clientY, button.offsetHeight, rect.top)\r\n\r\n id = \"__\" + (Math.random() + 1).toString(36).substring(7) + '-' + (Math.random() + 1).toString(36).substring(7);\r\n\r\n const circle = document.createElement('div')\r\n circle.classList.add('ripple')\r\n circle.id = id\r\n\r\n circle.style.left = `${e.clientX - rect.left - radius}px`\r\n circle.style.top = `${e.clientY - rect.top - radius}px`\r\n circle.style.width = circle.style.height = `${radius * 2}px`\r\n\r\n button.appendChild(circle)\r\n })\r\n\r\n stopEvents.forEach(event => {\r\n button.addEventListener(event, () => {\r\n const ripple = button.querySelector('.ripple#' + id)\r\n if (ripple) {\r\n ripple.style.opacity = '0'\r\n setTimeout(() => {\r\n ripple.remove()\r\n }, 600)\r\n }\r\n })\r\n })\r\n });\r\n }\r\n};\r\nRipple.init();\r\n\r\nexport default Ripple\r\n", "\"use strict\";\nexport var PipsMode;\n(function (PipsMode) {\n PipsMode[\"Range\"] = \"range\";\n PipsMode[\"Steps\"] = \"steps\";\n PipsMode[\"Positions\"] = \"positions\";\n PipsMode[\"Count\"] = \"count\";\n PipsMode[\"Values\"] = \"values\";\n})(PipsMode || (PipsMode = {}));\nexport var PipsType;\n(function (PipsType) {\n PipsType[PipsType[\"None\"] = -1] = \"None\";\n PipsType[PipsType[\"NoValue\"] = 0] = \"NoValue\";\n PipsType[PipsType[\"LargeValue\"] = 1] = \"LargeValue\";\n PipsType[PipsType[\"SmallValue\"] = 2] = \"SmallValue\";\n})(PipsType || (PipsType = {}));\n//region Helper Methods\nfunction isValidFormatter(entry) {\n return isValidPartialFormatter(entry) && typeof entry.from === \"function\";\n}\nfunction isValidPartialFormatter(entry) {\n // partial formatters only need a to function and not a from function\n return typeof entry === \"object\" && typeof entry.to === \"function\";\n}\nfunction removeElement(el) {\n el.parentElement.removeChild(el);\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n// Bindable version\nfunction preventDefault(e) {\n e.preventDefault();\n}\n// Removes duplicates from an array.\nfunction unique(array) {\n return array.filter(function (a) {\n return !this[a] ? (this[a] = true) : false;\n }, {});\n}\n// Round a value to the closest 'to'.\nfunction closest(value, to) {\n return Math.round(value / to) * to;\n}\n// Current position of an element relative to the document.\nfunction offset(elem, orientation) {\n var rect = elem.getBoundingClientRect();\n var doc = elem.ownerDocument;\n var docElem = doc.documentElement;\n var pageOffset = getPageOffset(doc);\n // getBoundingClientRect contains left scroll in Chrome on Android.\n // I haven't found a feature detection that proves this. Worst case\n // scenario on mis-match: the 'tap' feature on horizontal sliders breaks.\n if (/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)) {\n pageOffset.x = 0;\n }\n return orientation ? rect.top + pageOffset.y - docElem.clientTop : rect.left + pageOffset.x - docElem.clientLeft;\n}\n// Checks whether a value is numerical.\nfunction isNumeric(a) {\n return typeof a === \"number\" && !isNaN(a) && isFinite(a);\n}\n// Sets a class and removes it after [duration] ms.\nfunction addClassFor(element, className, duration) {\n if (duration > 0) {\n addClass(element, className);\n setTimeout(function () {\n removeClass(element, className);\n }, duration);\n }\n}\n// Limits a value to 0 - 100\nfunction limit(a) {\n return Math.max(Math.min(a, 100), 0);\n}\n// Wraps a variable as an array, if it isn't one yet.\n// Note that an input array is returned by reference!\nfunction asArray(a) {\n return Array.isArray(a) ? a : [a];\n}\n// Counts decimals\nfunction countDecimals(numStr) {\n numStr = String(numStr);\n var pieces = numStr.split(\".\");\n return pieces.length > 1 ? pieces[1].length : 0;\n}\n// http://youmightnotneedjquery.com/#add_class\nfunction addClass(el, className) {\n if (el.classList && !/\\s/.test(className)) {\n el.classList.add(className);\n }\n else {\n el.className += \" \" + className;\n }\n}\n// http://youmightnotneedjquery.com/#remove_class\nfunction removeClass(el, className) {\n if (el.classList && !/\\s/.test(className)) {\n el.classList.remove(className);\n }\n else {\n el.className = el.className.replace(new RegExp(\"(^|\\\\b)\" + className.split(\" \").join(\"|\") + \"(\\\\b|$)\", \"gi\"), \" \");\n }\n}\n// https://plainjs.com/javascript/attributes/adding-removing-and-testing-for-classes-9/\nfunction hasClass(el, className) {\n return el.classList ? el.classList.contains(className) : new RegExp(\"\\\\b\" + className + \"\\\\b\").test(el.className);\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY#Notes\nfunction getPageOffset(doc) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (doc.compatMode || \"\") === \"CSS1Compat\";\n var x = supportPageOffset\n ? window.pageXOffset\n : isCSS1Compat\n ? doc.documentElement.scrollLeft\n : doc.body.scrollLeft;\n var y = supportPageOffset\n ? window.pageYOffset\n : isCSS1Compat\n ? doc.documentElement.scrollTop\n : doc.body.scrollTop;\n return {\n x: x,\n y: y,\n };\n}\n// we provide a function to compute constants instead\n// of accessing window.* as soon as the module needs it\n// so that we do not compute anything if not needed\nfunction getActions() {\n // Determine the events to bind. IE11 implements pointerEvents without\n // a prefix, which breaks compatibility with the IE10 implementation.\n return window.navigator.pointerEnabled\n ? {\n start: \"pointerdown\",\n move: \"pointermove\",\n end: \"pointerup\",\n }\n : window.navigator.msPointerEnabled\n ? {\n start: \"MSPointerDown\",\n move: \"MSPointerMove\",\n end: \"MSPointerUp\",\n }\n : {\n start: \"mousedown touchstart\",\n move: \"mousemove touchmove\",\n end: \"mouseup touchend\",\n };\n}\n// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n// Issue #785\nfunction getSupportsPassive() {\n var supportsPassive = false;\n /* eslint-disable */\n try {\n var opts = Object.defineProperty({}, \"passive\", {\n get: function () {\n supportsPassive = true;\n },\n });\n // @ts-ignore\n window.addEventListener(\"test\", null, opts);\n }\n catch (e) { }\n /* eslint-enable */\n return supportsPassive;\n}\nfunction getSupportsTouchActionNone() {\n return window.CSS && CSS.supports && CSS.supports(\"touch-action\", \"none\");\n}\n//endregion\n//region Range Calculation\n// Determine the size of a sub-range in relation to a full range.\nfunction subRangeRatio(pa, pb) {\n return 100 / (pb - pa);\n}\n// (percentage) How many percent is this value of this range?\nfunction fromPercentage(range, value, startRange) {\n return (value * 100) / (range[startRange + 1] - range[startRange]);\n}\n// (percentage) Where is this value on this range?\nfunction toPercentage(range, value) {\n return fromPercentage(range, range[0] < 0 ? value + Math.abs(range[0]) : value - range[0], 0);\n}\n// (value) How much is this percentage on this range?\nfunction isPercentage(range, value) {\n return (value * (range[1] - range[0])) / 100 + range[0];\n}\nfunction getJ(value, arr) {\n var j = 1;\n while (value >= arr[j]) {\n j += 1;\n }\n return j;\n}\n// (percentage) Input a value, find where, on a scale of 0-100, it applies.\nfunction toStepping(xVal, xPct, value) {\n if (value >= xVal.slice(-1)[0]) {\n return 100;\n }\n var j = getJ(value, xVal);\n var va = xVal[j - 1];\n var vb = xVal[j];\n var pa = xPct[j - 1];\n var pb = xPct[j];\n return pa + toPercentage([va, vb], value) / subRangeRatio(pa, pb);\n}\n// (value) Input a percentage, find where it is on the specified range.\nfunction fromStepping(xVal, xPct, value) {\n // There is no range group that fits 100\n if (value >= 100) {\n return xVal.slice(-1)[0];\n }\n var j = getJ(value, xPct);\n var va = xVal[j - 1];\n var vb = xVal[j];\n var pa = xPct[j - 1];\n var pb = xPct[j];\n return isPercentage([va, vb], (value - pa) * subRangeRatio(pa, pb));\n}\n// (percentage) Get the step that applies at a certain value.\nfunction getStep(xPct, xSteps, snap, value) {\n if (value === 100) {\n return value;\n }\n var j = getJ(value, xPct);\n var a = xPct[j - 1];\n var b = xPct[j];\n // If 'snap' is set, steps are used as fixed points on the slider.\n if (snap) {\n // Find the closest position, a or b.\n if (value - a > (b - a) / 2) {\n return b;\n }\n return a;\n }\n if (!xSteps[j - 1]) {\n return value;\n }\n return xPct[j - 1] + closest(value - xPct[j - 1], xSteps[j - 1]);\n}\n//endregion\n//region Spectrum\nvar Spectrum = /** @class */ (function () {\n function Spectrum(entry, snap, singleStep) {\n this.xPct = [];\n this.xVal = [];\n this.xSteps = [];\n this.xNumSteps = [];\n this.xHighestCompleteStep = [];\n this.xSteps = [singleStep || false];\n this.xNumSteps = [false];\n this.snap = snap;\n var index;\n var ordered = [];\n // Map the object keys to an array.\n Object.keys(entry).forEach(function (index) {\n ordered.push([asArray(entry[index]), index]);\n });\n // Sort all entries by value (numeric sort).\n ordered.sort(function (a, b) {\n return a[0][0] - b[0][0];\n });\n // Convert all entries to subranges.\n for (index = 0; index < ordered.length; index++) {\n this.handleEntryPoint(ordered[index][1], ordered[index][0]);\n }\n // Store the actual step values.\n // xSteps is sorted in the same order as xPct and xVal.\n this.xNumSteps = this.xSteps.slice(0);\n // Convert all numeric steps to the percentage of the subrange they represent.\n for (index = 0; index < this.xNumSteps.length; index++) {\n this.handleStepPoint(index, this.xNumSteps[index]);\n }\n }\n Spectrum.prototype.getDistance = function (value) {\n var distances = [];\n for (var index = 0; index < this.xNumSteps.length - 1; index++) {\n distances[index] = fromPercentage(this.xVal, value, index);\n }\n return distances;\n };\n // Calculate the percentual distance over the whole scale of ranges.\n // direction: 0 = backwards / 1 = forwards\n Spectrum.prototype.getAbsoluteDistance = function (value, distances, direction) {\n var xPct_index = 0;\n // Calculate range where to start calculation\n if (value < this.xPct[this.xPct.length - 1]) {\n while (value > this.xPct[xPct_index + 1]) {\n xPct_index++;\n }\n }\n else if (value === this.xPct[this.xPct.length - 1]) {\n xPct_index = this.xPct.length - 2;\n }\n // If looking backwards and the value is exactly at a range separator then look one range further\n if (!direction && value === this.xPct[xPct_index + 1]) {\n xPct_index++;\n }\n if (distances === null) {\n distances = [];\n }\n var start_factor;\n var rest_factor = 1;\n var rest_rel_distance = distances[xPct_index];\n var range_pct = 0;\n var rel_range_distance = 0;\n var abs_distance_counter = 0;\n var range_counter = 0;\n // Calculate what part of the start range the value is\n if (direction) {\n start_factor = (value - this.xPct[xPct_index]) / (this.xPct[xPct_index + 1] - this.xPct[xPct_index]);\n }\n else {\n start_factor = (this.xPct[xPct_index + 1] - value) / (this.xPct[xPct_index + 1] - this.xPct[xPct_index]);\n }\n // Do until the complete distance across ranges is calculated\n while (rest_rel_distance > 0) {\n // Calculate the percentage of total range\n range_pct = this.xPct[xPct_index + 1 + range_counter] - this.xPct[xPct_index + range_counter];\n // Detect if the margin, padding or limit is larger then the current range and calculate\n if (distances[xPct_index + range_counter] * rest_factor + 100 - start_factor * 100 > 100) {\n // If larger then take the percentual distance of the whole range\n rel_range_distance = range_pct * start_factor;\n // Rest factor of relative percentual distance still to be calculated\n rest_factor = (rest_rel_distance - 100 * start_factor) / distances[xPct_index + range_counter];\n // Set start factor to 1 as for next range it does not apply.\n start_factor = 1;\n }\n else {\n // If smaller or equal then take the percentual distance of the calculate percentual part of that range\n rel_range_distance = ((distances[xPct_index + range_counter] * range_pct) / 100) * rest_factor;\n // No rest left as the rest fits in current range\n rest_factor = 0;\n }\n if (direction) {\n abs_distance_counter = abs_distance_counter - rel_range_distance;\n // Limit range to first range when distance becomes outside of minimum range\n if (this.xPct.length + range_counter >= 1) {\n range_counter--;\n }\n }\n else {\n abs_distance_counter = abs_distance_counter + rel_range_distance;\n // Limit range to last range when distance becomes outside of maximum range\n if (this.xPct.length - range_counter >= 1) {\n range_counter++;\n }\n }\n // Rest of relative percentual distance still to be calculated\n rest_rel_distance = distances[xPct_index + range_counter] * rest_factor;\n }\n return value + abs_distance_counter;\n };\n Spectrum.prototype.toStepping = function (value) {\n value = toStepping(this.xVal, this.xPct, value);\n return value;\n };\n Spectrum.prototype.fromStepping = function (value) {\n return fromStepping(this.xVal, this.xPct, value);\n };\n Spectrum.prototype.getStep = function (value) {\n value = getStep(this.xPct, this.xSteps, this.snap, value);\n return value;\n };\n Spectrum.prototype.getDefaultStep = function (value, isDown, size) {\n var j = getJ(value, this.xPct);\n // When at the top or stepping down, look at the previous sub-range\n if (value === 100 || (isDown && value === this.xPct[j - 1])) {\n j = Math.max(j - 1, 1);\n }\n return (this.xVal[j] - this.xVal[j - 1]) / size;\n };\n Spectrum.prototype.getNearbySteps = function (value) {\n var j = getJ(value, this.xPct);\n return {\n stepBefore: {\n startValue: this.xVal[j - 2],\n step: this.xNumSteps[j - 2],\n highestStep: this.xHighestCompleteStep[j - 2],\n },\n thisStep: {\n startValue: this.xVal[j - 1],\n step: this.xNumSteps[j - 1],\n highestStep: this.xHighestCompleteStep[j - 1],\n },\n stepAfter: {\n startValue: this.xVal[j],\n step: this.xNumSteps[j],\n highestStep: this.xHighestCompleteStep[j],\n },\n };\n };\n Spectrum.prototype.countStepDecimals = function () {\n var stepDecimals = this.xNumSteps.map(countDecimals);\n return Math.max.apply(null, stepDecimals);\n };\n Spectrum.prototype.hasNoSize = function () {\n return this.xVal[0] === this.xVal[this.xVal.length - 1];\n };\n // Outside testing\n Spectrum.prototype.convert = function (value) {\n return this.getStep(this.toStepping(value));\n };\n Spectrum.prototype.handleEntryPoint = function (index, value) {\n var percentage;\n // Covert min/max syntax to 0 and 100.\n if (index === \"min\") {\n percentage = 0;\n }\n else if (index === \"max\") {\n percentage = 100;\n }\n else {\n percentage = parseFloat(index);\n }\n // Check for correct input.\n if (!isNumeric(percentage) || !isNumeric(value[0])) {\n throw new Error(\"noUiSlider: 'range' value isn't numeric.\");\n }\n // Store values.\n this.xPct.push(percentage);\n this.xVal.push(value[0]);\n var value1 = Number(value[1]);\n // NaN will evaluate to false too, but to keep\n // logging clear, set step explicitly. Make sure\n // not to override the 'step' setting with false.\n if (!percentage) {\n if (!isNaN(value1)) {\n this.xSteps[0] = value1;\n }\n }\n else {\n this.xSteps.push(isNaN(value1) ? false : value1);\n }\n this.xHighestCompleteStep.push(0);\n };\n Spectrum.prototype.handleStepPoint = function (i, n) {\n // Ignore 'false' stepping.\n if (!n) {\n return;\n }\n // Step over zero-length ranges (#948);\n if (this.xVal[i] === this.xVal[i + 1]) {\n this.xSteps[i] = this.xHighestCompleteStep[i] = this.xVal[i];\n return;\n }\n // Factor to range ratio\n this.xSteps[i] =\n fromPercentage([this.xVal[i], this.xVal[i + 1]], n, 0) / subRangeRatio(this.xPct[i], this.xPct[i + 1]);\n var totalSteps = (this.xVal[i + 1] - this.xVal[i]) / this.xNumSteps[i];\n var highestStep = Math.ceil(Number(totalSteps.toFixed(3)) - 1);\n var step = this.xVal[i] + this.xNumSteps[i] * highestStep;\n this.xHighestCompleteStep[i] = step;\n };\n return Spectrum;\n}());\n//endregion\n//region Options\n/*\tEvery input option is tested and parsed. This will prevent\n endless validation in internal methods. These tests are\n structured with an item for every option available. An\n option can be marked as required by setting the 'r' flag.\n The testing function is provided with three arguments:\n - The provided value for the option;\n - A reference to the options object;\n - The name for the option;\n\n The testing function returns false when an error is detected,\n or true when everything is OK. It can also modify the option\n object, to make sure all values can be correctly looped elsewhere. */\n//region Defaults\nvar defaultFormatter = {\n to: function (value) {\n return value === undefined ? \"\" : value.toFixed(2);\n },\n from: Number,\n};\nvar cssClasses = {\n target: \"target\",\n base: \"base\",\n origin: \"origin\",\n handle: \"handle\",\n handleLower: \"handle-lower\",\n handleUpper: \"handle-upper\",\n touchArea: \"touch-area\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n background: \"background\",\n connect: \"connect\",\n connects: \"connects\",\n ltr: \"ltr\",\n rtl: \"rtl\",\n textDirectionLtr: \"txt-dir-ltr\",\n textDirectionRtl: \"txt-dir-rtl\",\n draggable: \"draggable\",\n drag: \"state-drag\",\n tap: \"state-tap\",\n active: \"active\",\n tooltip: \"tooltip\",\n pips: \"pips\",\n pipsHorizontal: \"pips-horizontal\",\n pipsVertical: \"pips-vertical\",\n marker: \"marker\",\n markerHorizontal: \"marker-horizontal\",\n markerVertical: \"marker-vertical\",\n markerNormal: \"marker-normal\",\n markerLarge: \"marker-large\",\n markerSub: \"marker-sub\",\n value: \"value\",\n valueHorizontal: \"value-horizontal\",\n valueVertical: \"value-vertical\",\n valueNormal: \"value-normal\",\n valueLarge: \"value-large\",\n valueSub: \"value-sub\",\n};\n// Namespaces of internal event listeners\nvar INTERNAL_EVENT_NS = {\n tooltips: \".__tooltips\",\n aria: \".__aria\",\n};\n//endregion\nfunction testStep(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'step' is not numeric.\");\n }\n // The step option can still be used to set stepping\n // for linear sliders. Overwritten if set in 'range'.\n parsed.singleStep = entry;\n}\nfunction testKeyboardPageMultiplier(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'keyboardPageMultiplier' is not numeric.\");\n }\n parsed.keyboardPageMultiplier = entry;\n}\nfunction testKeyboardMultiplier(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'keyboardMultiplier' is not numeric.\");\n }\n parsed.keyboardMultiplier = entry;\n}\nfunction testKeyboardDefaultStep(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'keyboardDefaultStep' is not numeric.\");\n }\n parsed.keyboardDefaultStep = entry;\n}\nfunction testRange(parsed, entry) {\n // Filter incorrect input.\n if (typeof entry !== \"object\" || Array.isArray(entry)) {\n throw new Error(\"noUiSlider: 'range' is not an object.\");\n }\n // Catch missing start or end.\n if (entry.min === undefined || entry.max === undefined) {\n throw new Error(\"noUiSlider: Missing 'min' or 'max' in 'range'.\");\n }\n parsed.spectrum = new Spectrum(entry, parsed.snap || false, parsed.singleStep);\n}\nfunction testStart(parsed, entry) {\n entry = asArray(entry);\n // Validate input. Values aren't tested, as the public .val method\n // will always provide a valid location.\n if (!Array.isArray(entry) || !entry.length) {\n throw new Error(\"noUiSlider: 'start' option is incorrect.\");\n }\n // Store the number of handles.\n parsed.handles = entry.length;\n // When the slider is initialized, the .val method will\n // be called with the start options.\n parsed.start = entry;\n}\nfunction testSnap(parsed, entry) {\n if (typeof entry !== \"boolean\") {\n throw new Error(\"noUiSlider: 'snap' option must be a boolean.\");\n }\n // Enforce 100% stepping within subranges.\n parsed.snap = entry;\n}\nfunction testAnimate(parsed, entry) {\n if (typeof entry !== \"boolean\") {\n throw new Error(\"noUiSlider: 'animate' option must be a boolean.\");\n }\n // Enforce 100% stepping within subranges.\n parsed.animate = entry;\n}\nfunction testAnimationDuration(parsed, entry) {\n if (typeof entry !== \"number\") {\n throw new Error(\"noUiSlider: 'animationDuration' option must be a number.\");\n }\n parsed.animationDuration = entry;\n}\nfunction testConnect(parsed, entry) {\n var connect = [false];\n var i;\n // Map legacy options\n if (entry === \"lower\") {\n entry = [true, false];\n }\n else if (entry === \"upper\") {\n entry = [false, true];\n }\n // Handle boolean options\n if (entry === true || entry === false) {\n for (i = 1; i < parsed.handles; i++) {\n connect.push(entry);\n }\n connect.push(false);\n }\n // Reject invalid input\n else if (!Array.isArray(entry) || !entry.length || entry.length !== parsed.handles + 1) {\n throw new Error(\"noUiSlider: 'connect' option doesn't match handle count.\");\n }\n else {\n connect = entry;\n }\n parsed.connect = connect;\n}\nfunction testOrientation(parsed, entry) {\n // Set orientation to an a numerical value for easy\n // array selection.\n switch (entry) {\n case \"horizontal\":\n parsed.ort = 0;\n break;\n case \"vertical\":\n parsed.ort = 1;\n break;\n default:\n throw new Error(\"noUiSlider: 'orientation' option is invalid.\");\n }\n}\nfunction testMargin(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'margin' option must be numeric.\");\n }\n // Issue #582\n if (entry === 0) {\n return;\n }\n parsed.margin = parsed.spectrum.getDistance(entry);\n}\nfunction testLimit(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'limit' option must be numeric.\");\n }\n parsed.limit = parsed.spectrum.getDistance(entry);\n if (!parsed.limit || parsed.handles < 2) {\n throw new Error(\"noUiSlider: 'limit' option is only supported on linear sliders with 2 or more handles.\");\n }\n}\nfunction testPadding(parsed, entry) {\n var index;\n if (!isNumeric(entry) && !Array.isArray(entry)) {\n throw new Error(\"noUiSlider: 'padding' option must be numeric or array of exactly 2 numbers.\");\n }\n if (Array.isArray(entry) && !(entry.length === 2 || isNumeric(entry[0]) || isNumeric(entry[1]))) {\n throw new Error(\"noUiSlider: 'padding' option must be numeric or array of exactly 2 numbers.\");\n }\n if (entry === 0) {\n return;\n }\n if (!Array.isArray(entry)) {\n entry = [entry, entry];\n }\n // 'getDistance' returns false for invalid values.\n parsed.padding = [parsed.spectrum.getDistance(entry[0]), parsed.spectrum.getDistance(entry[1])];\n for (index = 0; index < parsed.spectrum.xNumSteps.length - 1; index++) {\n // last \"range\" can't contain step size as it is purely an endpoint.\n if (parsed.padding[0][index] < 0 || parsed.padding[1][index] < 0) {\n throw new Error(\"noUiSlider: 'padding' option must be a positive number(s).\");\n }\n }\n var totalPadding = entry[0] + entry[1];\n var firstValue = parsed.spectrum.xVal[0];\n var lastValue = parsed.spectrum.xVal[parsed.spectrum.xVal.length - 1];\n if (totalPadding / (lastValue - firstValue) > 1) {\n throw new Error(\"noUiSlider: 'padding' option must not exceed 100% of the range.\");\n }\n}\nfunction testDirection(parsed, entry) {\n // Set direction as a numerical value for easy parsing.\n // Invert connection for RTL sliders, so that the proper\n // handles get the connect/background classes.\n switch (entry) {\n case \"ltr\":\n parsed.dir = 0;\n break;\n case \"rtl\":\n parsed.dir = 1;\n break;\n default:\n throw new Error(\"noUiSlider: 'direction' option was not recognized.\");\n }\n}\nfunction testBehaviour(parsed, entry) {\n // Make sure the input is a string.\n if (typeof entry !== \"string\") {\n throw new Error(\"noUiSlider: 'behaviour' must be a string containing options.\");\n }\n // Check if the string contains any keywords.\n // None are required.\n var tap = entry.indexOf(\"tap\") >= 0;\n var drag = entry.indexOf(\"drag\") >= 0;\n var fixed = entry.indexOf(\"fixed\") >= 0;\n var snap = entry.indexOf(\"snap\") >= 0;\n var hover = entry.indexOf(\"hover\") >= 0;\n var unconstrained = entry.indexOf(\"unconstrained\") >= 0;\n var dragAll = entry.indexOf(\"drag-all\") >= 0;\n var smoothSteps = entry.indexOf(\"smooth-steps\") >= 0;\n if (fixed) {\n if (parsed.handles !== 2) {\n throw new Error(\"noUiSlider: 'fixed' behaviour must be used with 2 handles\");\n }\n // Use margin to enforce fixed state\n testMargin(parsed, parsed.start[1] - parsed.start[0]);\n }\n if (unconstrained && (parsed.margin || parsed.limit)) {\n throw new Error(\"noUiSlider: 'unconstrained' behaviour cannot be used with margin or limit\");\n }\n parsed.events = {\n tap: tap || snap,\n drag: drag,\n dragAll: dragAll,\n smoothSteps: smoothSteps,\n fixed: fixed,\n snap: snap,\n hover: hover,\n unconstrained: unconstrained,\n };\n}\nfunction testTooltips(parsed, entry) {\n if (entry === false) {\n return;\n }\n if (entry === true || isValidPartialFormatter(entry)) {\n parsed.tooltips = [];\n for (var i = 0; i < parsed.handles; i++) {\n parsed.tooltips.push(entry);\n }\n }\n else {\n entry = asArray(entry);\n if (entry.length !== parsed.handles) {\n throw new Error(\"noUiSlider: must pass a formatter for all handles.\");\n }\n entry.forEach(function (formatter) {\n if (typeof formatter !== \"boolean\" && !isValidPartialFormatter(formatter)) {\n throw new Error(\"noUiSlider: 'tooltips' must be passed a formatter or 'false'.\");\n }\n });\n parsed.tooltips = entry;\n }\n}\nfunction testHandleAttributes(parsed, entry) {\n if (entry.length !== parsed.handles) {\n throw new Error(\"noUiSlider: must pass a attributes for all handles.\");\n }\n parsed.handleAttributes = entry;\n}\nfunction testAriaFormat(parsed, entry) {\n if (!isValidPartialFormatter(entry)) {\n throw new Error(\"noUiSlider: 'ariaFormat' requires 'to' method.\");\n }\n parsed.ariaFormat = entry;\n}\nfunction testFormat(parsed, entry) {\n if (!isValidFormatter(entry)) {\n throw new Error(\"noUiSlider: 'format' requires 'to' and 'from' methods.\");\n }\n parsed.format = entry;\n}\nfunction testKeyboardSupport(parsed, entry) {\n if (typeof entry !== \"boolean\") {\n throw new Error(\"noUiSlider: 'keyboardSupport' option must be a boolean.\");\n }\n parsed.keyboardSupport = entry;\n}\nfunction testDocumentElement(parsed, entry) {\n // This is an advanced option. Passed values are used without validation.\n parsed.documentElement = entry;\n}\nfunction testCssPrefix(parsed, entry) {\n if (typeof entry !== \"string\" && entry !== false) {\n throw new Error(\"noUiSlider: 'cssPrefix' must be a string or `false`.\");\n }\n parsed.cssPrefix = entry;\n}\nfunction testCssClasses(parsed, entry) {\n if (typeof entry !== \"object\") {\n throw new Error(\"noUiSlider: 'cssClasses' must be an object.\");\n }\n if (typeof parsed.cssPrefix === \"string\") {\n parsed.cssClasses = {};\n Object.keys(entry).forEach(function (key) {\n parsed.cssClasses[key] = parsed.cssPrefix + entry[key];\n });\n }\n else {\n parsed.cssClasses = entry;\n }\n}\n// Test all developer settings and parse to assumption-safe values.\nfunction testOptions(options) {\n // To prove a fix for #537, freeze options here.\n // If the object is modified, an error will be thrown.\n // Object.freeze(options);\n var parsed = {\n margin: null,\n limit: null,\n padding: null,\n animate: true,\n animationDuration: 300,\n ariaFormat: defaultFormatter,\n format: defaultFormatter,\n };\n // Tests are executed in the order they are presented here.\n var tests = {\n step: { r: false, t: testStep },\n keyboardPageMultiplier: { r: false, t: testKeyboardPageMultiplier },\n keyboardMultiplier: { r: false, t: testKeyboardMultiplier },\n keyboardDefaultStep: { r: false, t: testKeyboardDefaultStep },\n start: { r: true, t: testStart },\n connect: { r: true, t: testConnect },\n direction: { r: true, t: testDirection },\n snap: { r: false, t: testSnap },\n animate: { r: false, t: testAnimate },\n animationDuration: { r: false, t: testAnimationDuration },\n range: { r: true, t: testRange },\n orientation: { r: false, t: testOrientation },\n margin: { r: false, t: testMargin },\n limit: { r: false, t: testLimit },\n padding: { r: false, t: testPadding },\n behaviour: { r: true, t: testBehaviour },\n ariaFormat: { r: false, t: testAriaFormat },\n format: { r: false, t: testFormat },\n tooltips: { r: false, t: testTooltips },\n keyboardSupport: { r: true, t: testKeyboardSupport },\n documentElement: { r: false, t: testDocumentElement },\n cssPrefix: { r: true, t: testCssPrefix },\n cssClasses: { r: true, t: testCssClasses },\n handleAttributes: { r: false, t: testHandleAttributes },\n };\n var defaults = {\n connect: false,\n direction: \"ltr\",\n behaviour: \"tap\",\n orientation: \"horizontal\",\n keyboardSupport: true,\n cssPrefix: \"noUi-\",\n cssClasses: cssClasses,\n keyboardPageMultiplier: 5,\n keyboardMultiplier: 1,\n keyboardDefaultStep: 10,\n };\n // AriaFormat defaults to regular format, if any.\n if (options.format && !options.ariaFormat) {\n options.ariaFormat = options.format;\n }\n // Run all options through a testing mechanism to ensure correct\n // input. It should be noted that options might get modified to\n // be handled properly. E.g. wrapping integers in arrays.\n Object.keys(tests).forEach(function (name) {\n // If the option isn't set, but it is required, throw an error.\n if (!isSet(options[name]) && defaults[name] === undefined) {\n if (tests[name].r) {\n throw new Error(\"noUiSlider: '\" + name + \"' is required.\");\n }\n return;\n }\n tests[name].t(parsed, !isSet(options[name]) ? defaults[name] : options[name]);\n });\n // Forward pips options\n parsed.pips = options.pips;\n // All recent browsers accept unprefixed transform.\n // We need -ms- for IE9 and -webkit- for older Android;\n // Assume use of -webkit- if unprefixed and -ms- are not supported.\n // https://caniuse.com/#feat=transforms2d\n var d = document.createElement(\"div\");\n var msPrefix = d.style.msTransform !== undefined;\n var noPrefix = d.style.transform !== undefined;\n parsed.transformRule = noPrefix ? \"transform\" : msPrefix ? \"msTransform\" : \"webkitTransform\";\n // Pips don't move, so we can place them using left/top.\n var styles = [\n [\"left\", \"top\"],\n [\"right\", \"bottom\"],\n ];\n parsed.style = styles[parsed.dir][parsed.ort];\n return parsed;\n}\n//endregion\nfunction scope(target, options, originalOptions) {\n var actions = getActions();\n var supportsTouchActionNone = getSupportsTouchActionNone();\n var supportsPassive = supportsTouchActionNone && getSupportsPassive();\n // All variables local to 'scope' are prefixed with 'scope_'\n // Slider DOM Nodes\n var scope_Target = target;\n var scope_Base;\n var scope_Handles;\n var scope_Connects;\n var scope_Pips;\n var scope_Tooltips;\n // Slider state values\n var scope_Spectrum = options.spectrum;\n var scope_Values = [];\n var scope_Locations = [];\n var scope_HandleNumbers = [];\n var scope_ActiveHandlesCount = 0;\n var scope_Events = {};\n // Document Nodes\n var scope_Document = target.ownerDocument;\n var scope_DocumentElement = options.documentElement || scope_Document.documentElement;\n var scope_Body = scope_Document.body;\n // For horizontal sliders in standard ltr documents,\n // make .noUi-origin overflow to the left so the document doesn't scroll.\n var scope_DirOffset = scope_Document.dir === \"rtl\" || options.ort === 1 ? 0 : 100;\n // Creates a node, adds it to target, returns the new node.\n function addNodeTo(addTarget, className) {\n var div = scope_Document.createElement(\"div\");\n if (className) {\n addClass(div, className);\n }\n addTarget.appendChild(div);\n return div;\n }\n // Append a origin to the base\n function addOrigin(base, handleNumber) {\n var origin = addNodeTo(base, options.cssClasses.origin);\n var handle = addNodeTo(origin, options.cssClasses.handle);\n addNodeTo(handle, options.cssClasses.touchArea);\n handle.setAttribute(\"data-handle\", String(handleNumber));\n if (options.keyboardSupport) {\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex\n // 0 = focusable and reachable\n handle.setAttribute(\"tabindex\", \"0\");\n handle.addEventListener(\"keydown\", function (event) {\n return eventKeydown(event, handleNumber);\n });\n }\n if (options.handleAttributes !== undefined) {\n var attributes_1 = options.handleAttributes[handleNumber];\n Object.keys(attributes_1).forEach(function (attribute) {\n handle.setAttribute(attribute, attributes_1[attribute]);\n });\n }\n handle.setAttribute(\"role\", \"slider\");\n handle.setAttribute(\"aria-orientation\", options.ort ? \"vertical\" : \"horizontal\");\n if (handleNumber === 0) {\n addClass(handle, options.cssClasses.handleLower);\n }\n else if (handleNumber === options.handles - 1) {\n addClass(handle, options.cssClasses.handleUpper);\n }\n origin.handle = handle;\n return origin;\n }\n // Insert nodes for connect elements\n function addConnect(base, add) {\n if (!add) {\n return false;\n }\n return addNodeTo(base, options.cssClasses.connect);\n }\n // Add handles to the slider base.\n function addElements(connectOptions, base) {\n var connectBase = addNodeTo(base, options.cssClasses.connects);\n scope_Handles = [];\n scope_Connects = [];\n scope_Connects.push(addConnect(connectBase, connectOptions[0]));\n // [::::O====O====O====]\n // connectOptions = [0, 1, 1, 1]\n for (var i = 0; i < options.handles; i++) {\n // Keep a list of all added handles.\n scope_Handles.push(addOrigin(base, i));\n scope_HandleNumbers[i] = i;\n scope_Connects.push(addConnect(connectBase, connectOptions[i + 1]));\n }\n }\n // Initialize a single slider.\n function addSlider(addTarget) {\n // Apply classes and data to the target.\n addClass(addTarget, options.cssClasses.target);\n if (options.dir === 0) {\n addClass(addTarget, options.cssClasses.ltr);\n }\n else {\n addClass(addTarget, options.cssClasses.rtl);\n }\n if (options.ort === 0) {\n addClass(addTarget, options.cssClasses.horizontal);\n }\n else {\n addClass(addTarget, options.cssClasses.vertical);\n }\n var textDirection = getComputedStyle(addTarget).direction;\n if (textDirection === \"rtl\") {\n addClass(addTarget, options.cssClasses.textDirectionRtl);\n }\n else {\n addClass(addTarget, options.cssClasses.textDirectionLtr);\n }\n return addNodeTo(addTarget, options.cssClasses.base);\n }\n function addTooltip(handle, handleNumber) {\n if (!options.tooltips || !options.tooltips[handleNumber]) {\n return false;\n }\n return addNodeTo(handle.firstChild, options.cssClasses.tooltip);\n }\n function isSliderDisabled() {\n return scope_Target.hasAttribute(\"disabled\");\n }\n // Disable the slider dragging if any handle is disabled\n function isHandleDisabled(handleNumber) {\n var handleOrigin = scope_Handles[handleNumber];\n return handleOrigin.hasAttribute(\"disabled\");\n }\n function disable(handleNumber) {\n if (handleNumber !== null && handleNumber !== undefined) {\n scope_Handles[handleNumber].setAttribute(\"disabled\", \"\");\n scope_Handles[handleNumber].handle.removeAttribute(\"tabindex\");\n }\n else {\n scope_Target.setAttribute(\"disabled\", \"\");\n scope_Handles.forEach(function (handle) {\n handle.handle.removeAttribute(\"tabindex\");\n });\n }\n }\n function enable(handleNumber) {\n if (handleNumber !== null && handleNumber !== undefined) {\n scope_Handles[handleNumber].removeAttribute(\"disabled\");\n scope_Handles[handleNumber].handle.setAttribute(\"tabindex\", \"0\");\n }\n else {\n scope_Target.removeAttribute(\"disabled\");\n scope_Handles.forEach(function (handle) {\n handle.removeAttribute(\"disabled\");\n handle.handle.setAttribute(\"tabindex\", \"0\");\n });\n }\n }\n function removeTooltips() {\n if (scope_Tooltips) {\n removeEvent(\"update\" + INTERNAL_EVENT_NS.tooltips);\n scope_Tooltips.forEach(function (tooltip) {\n if (tooltip) {\n removeElement(tooltip);\n }\n });\n scope_Tooltips = null;\n }\n }\n // The tooltips option is a shorthand for using the 'update' event.\n function tooltips() {\n removeTooltips();\n // Tooltips are added with options.tooltips in original order.\n scope_Tooltips = scope_Handles.map(addTooltip);\n bindEvent(\"update\" + INTERNAL_EVENT_NS.tooltips, function (values, handleNumber, unencoded) {\n if (!scope_Tooltips || !options.tooltips) {\n return;\n }\n if (scope_Tooltips[handleNumber] === false) {\n return;\n }\n var formattedValue = values[handleNumber];\n if (options.tooltips[handleNumber] !== true) {\n formattedValue = options.tooltips[handleNumber].to(unencoded[handleNumber]);\n }\n scope_Tooltips[handleNumber].innerHTML = formattedValue;\n });\n }\n function aria() {\n removeEvent(\"update\" + INTERNAL_EVENT_NS.aria);\n bindEvent(\"update\" + INTERNAL_EVENT_NS.aria, function (values, handleNumber, unencoded, tap, positions) {\n // Update Aria Values for all handles, as a change in one changes min and max values for the next.\n scope_HandleNumbers.forEach(function (index) {\n var handle = scope_Handles[index];\n var min = checkHandlePosition(scope_Locations, index, 0, true, true, true);\n var max = checkHandlePosition(scope_Locations, index, 100, true, true, true);\n var now = positions[index];\n // Formatted value for display\n var text = String(options.ariaFormat.to(unencoded[index]));\n // Map to slider range values\n min = scope_Spectrum.fromStepping(min).toFixed(1);\n max = scope_Spectrum.fromStepping(max).toFixed(1);\n now = scope_Spectrum.fromStepping(now).toFixed(1);\n handle.children[0].setAttribute(\"aria-valuemin\", min);\n handle.children[0].setAttribute(\"aria-valuemax\", max);\n handle.children[0].setAttribute(\"aria-valuenow\", now);\n handle.children[0].setAttribute(\"aria-valuetext\", text);\n });\n });\n }\n function getGroup(pips) {\n // Use the range.\n if (pips.mode === PipsMode.Range || pips.mode === PipsMode.Steps) {\n return scope_Spectrum.xVal;\n }\n if (pips.mode === PipsMode.Count) {\n if (pips.values < 2) {\n throw new Error(\"noUiSlider: 'values' (>= 2) required for mode 'count'.\");\n }\n // Divide 0 - 100 in 'count' parts.\n var interval = pips.values - 1;\n var spread = 100 / interval;\n var values = [];\n // List these parts and have them handled as 'positions'.\n while (interval--) {\n values[interval] = interval * spread;\n }\n values.push(100);\n return mapToRange(values, pips.stepped);\n }\n if (pips.mode === PipsMode.Positions) {\n // Map all percentages to on-range values.\n return mapToRange(pips.values, pips.stepped);\n }\n if (pips.mode === PipsMode.Values) {\n // If the value must be stepped, it needs to be converted to a percentage first.\n if (pips.stepped) {\n return pips.values.map(function (value) {\n // Convert to percentage, apply step, return to value.\n return scope_Spectrum.fromStepping(scope_Spectrum.getStep(scope_Spectrum.toStepping(value)));\n });\n }\n // Otherwise, we can simply use the values.\n return pips.values;\n }\n return []; // pips.mode = never\n }\n function mapToRange(values, stepped) {\n return values.map(function (value) {\n return scope_Spectrum.fromStepping(stepped ? scope_Spectrum.getStep(value) : value);\n });\n }\n function generateSpread(pips) {\n function safeIncrement(value, increment) {\n // Avoid floating point variance by dropping the smallest decimal places.\n return Number((value + increment).toFixed(7));\n }\n var group = getGroup(pips);\n var indexes = {};\n var firstInRange = scope_Spectrum.xVal[0];\n var lastInRange = scope_Spectrum.xVal[scope_Spectrum.xVal.length - 1];\n var ignoreFirst = false;\n var ignoreLast = false;\n var prevPct = 0;\n // Create a copy of the group, sort it and filter away all duplicates.\n group = unique(group.slice().sort(function (a, b) {\n return a - b;\n }));\n // Make sure the range starts with the first element.\n if (group[0] !== firstInRange) {\n group.unshift(firstInRange);\n ignoreFirst = true;\n }\n // Likewise for the last one.\n if (group[group.length - 1] !== lastInRange) {\n group.push(lastInRange);\n ignoreLast = true;\n }\n group.forEach(function (current, index) {\n // Get the current step and the lower + upper positions.\n var step;\n var i;\n var q;\n var low = current;\n var high = group[index + 1];\n var newPct;\n var pctDifference;\n var pctPos;\n var type;\n var steps;\n var realSteps;\n var stepSize;\n var isSteps = pips.mode === PipsMode.Steps;\n // When using 'steps' mode, use the provided steps.\n // Otherwise, we'll step on to the next subrange.\n if (isSteps) {\n step = scope_Spectrum.xNumSteps[index];\n }\n // Default to a 'full' step.\n if (!step) {\n step = high - low;\n }\n // If high is undefined we are at the last subrange. Make sure it iterates once (#1088)\n if (high === undefined) {\n high = low;\n }\n // Make sure step isn't 0, which would cause an infinite loop (#654)\n step = Math.max(step, 0.0000001);\n // Find all steps in the subrange.\n for (i = low; i <= high; i = safeIncrement(i, step)) {\n // Get the percentage value for the current step,\n // calculate the size for the subrange.\n newPct = scope_Spectrum.toStepping(i);\n pctDifference = newPct - prevPct;\n steps = pctDifference / (pips.density || 1);\n realSteps = Math.round(steps);\n // This ratio represents the amount of percentage-space a point indicates.\n // For a density 1 the points/percentage = 1. For density 2, that percentage needs to be re-divided.\n // Round the percentage offset to an even number, then divide by two\n // to spread the offset on both sides of the range.\n stepSize = pctDifference / realSteps;\n // Divide all points evenly, adding the correct number to this subrange.\n // Run up to <= so that 100% gets a point, event if ignoreLast is set.\n for (q = 1; q <= realSteps; q += 1) {\n // The ratio between the rounded value and the actual size might be ~1% off.\n // Correct the percentage offset by the number of points\n // per subrange. density = 1 will result in 100 points on the\n // full range, 2 for 50, 4 for 25, etc.\n pctPos = prevPct + q * stepSize;\n indexes[pctPos.toFixed(5)] = [scope_Spectrum.fromStepping(pctPos), 0];\n }\n // Determine the point type.\n type = group.indexOf(i) > -1 ? PipsType.LargeValue : isSteps ? PipsType.SmallValue : PipsType.NoValue;\n // Enforce the 'ignoreFirst' option by overwriting the type for 0.\n if (!index && ignoreFirst && i !== high) {\n type = 0;\n }\n if (!(i === high && ignoreLast)) {\n // Mark the 'type' of this point. 0 = plain, 1 = real value, 2 = step value.\n indexes[newPct.toFixed(5)] = [i, type];\n }\n // Update the percentage count.\n prevPct = newPct;\n }\n });\n return indexes;\n }\n function addMarking(spread, filterFunc, formatter) {\n var _a, _b;\n var element = scope_Document.createElement(\"div\");\n var valueSizeClasses = (_a = {},\n _a[PipsType.None] = \"\",\n _a[PipsType.NoValue] = options.cssClasses.valueNormal,\n _a[PipsType.LargeValue] = options.cssClasses.valueLarge,\n _a[PipsType.SmallValue] = options.cssClasses.valueSub,\n _a);\n var markerSizeClasses = (_b = {},\n _b[PipsType.None] = \"\",\n _b[PipsType.NoValue] = options.cssClasses.markerNormal,\n _b[PipsType.LargeValue] = options.cssClasses.markerLarge,\n _b[PipsType.SmallValue] = options.cssClasses.markerSub,\n _b);\n var valueOrientationClasses = [options.cssClasses.valueHorizontal, options.cssClasses.valueVertical];\n var markerOrientationClasses = [options.cssClasses.markerHorizontal, options.cssClasses.markerVertical];\n addClass(element, options.cssClasses.pips);\n addClass(element, options.ort === 0 ? options.cssClasses.pipsHorizontal : options.cssClasses.pipsVertical);\n function getClasses(type, source) {\n var a = source === options.cssClasses.value;\n var orientationClasses = a ? valueOrientationClasses : markerOrientationClasses;\n var sizeClasses = a ? valueSizeClasses : markerSizeClasses;\n return source + \" \" + orientationClasses[options.ort] + \" \" + sizeClasses[type];\n }\n function addSpread(offset, value, type) {\n // Apply the filter function, if it is set.\n type = filterFunc ? filterFunc(value, type) : type;\n if (type === PipsType.None) {\n return;\n }\n // Add a marker for every point\n var node = addNodeTo(element, false);\n node.className = getClasses(type, options.cssClasses.marker);\n node.style[options.style] = offset + \"%\";\n // Values are only appended for points marked '1' or '2'.\n if (type > PipsType.NoValue) {\n node = addNodeTo(element, false);\n node.className = getClasses(type, options.cssClasses.value);\n node.setAttribute(\"data-value\", String(value));\n node.style[options.style] = offset + \"%\";\n node.innerHTML = String(formatter.to(value));\n }\n }\n // Append all points.\n Object.keys(spread).forEach(function (offset) {\n addSpread(offset, spread[offset][0], spread[offset][1]);\n });\n return element;\n }\n function removePips() {\n if (scope_Pips) {\n removeElement(scope_Pips);\n scope_Pips = null;\n }\n }\n function pips(pips) {\n // Fix #669\n removePips();\n var spread = generateSpread(pips);\n var filter = pips.filter;\n var format = pips.format || {\n to: function (value) {\n return String(Math.round(value));\n },\n };\n scope_Pips = scope_Target.appendChild(addMarking(spread, filter, format));\n return scope_Pips;\n }\n // Shorthand for base dimensions.\n function baseSize() {\n var rect = scope_Base.getBoundingClientRect();\n var alt = (\"offset\" + [\"Width\", \"Height\"][options.ort]);\n return options.ort === 0 ? rect.width || scope_Base[alt] : rect.height || scope_Base[alt];\n }\n // Handler for attaching events trough a proxy.\n function attachEvent(events, element, callback, data) {\n // This function can be used to 'filter' events to the slider.\n // element is a node, not a nodeList\n var method = function (event) {\n var e = fixEvent(event, data.pageOffset, data.target || element);\n // fixEvent returns false if this event has a different target\n // when handling (multi-) touch events;\n if (!e) {\n return false;\n }\n // doNotReject is passed by all end events to make sure released touches\n // are not rejected, leaving the slider \"stuck\" to the cursor;\n if (isSliderDisabled() && !data.doNotReject) {\n return false;\n }\n // Stop if an active 'tap' transition is taking place.\n if (hasClass(scope_Target, options.cssClasses.tap) && !data.doNotReject) {\n return false;\n }\n // Ignore right or middle clicks on start #454\n if (events === actions.start && e.buttons !== undefined && e.buttons > 1) {\n return false;\n }\n // Ignore right or middle clicks on start #454\n if (data.hover && e.buttons) {\n return false;\n }\n // 'supportsPassive' is only true if a browser also supports touch-action: none in CSS.\n // iOS safari does not, so it doesn't get to benefit from passive scrolling. iOS does support\n // touch-action: manipulation, but that allows panning, which breaks\n // sliders after zooming/on non-responsive pages.\n // See: https://bugs.webkit.org/show_bug.cgi?id=133112\n if (!supportsPassive) {\n e.preventDefault();\n }\n e.calcPoint = e.points[options.ort];\n // Call the event handler with the event [ and additional data ].\n callback(e, data);\n return;\n };\n var methods = [];\n // Bind a closure on the target for every event type.\n events.split(\" \").forEach(function (eventName) {\n element.addEventListener(eventName, method, supportsPassive ? { passive: true } : false);\n methods.push([eventName, method]);\n });\n return methods;\n }\n // Provide a clean event with standardized offset values.\n function fixEvent(e, pageOffset, eventTarget) {\n // Filter the event to register the type, which can be\n // touch, mouse or pointer. Offset changes need to be\n // made on an event specific basis.\n var touch = e.type.indexOf(\"touch\") === 0;\n var mouse = e.type.indexOf(\"mouse\") === 0;\n var pointer = e.type.indexOf(\"pointer\") === 0;\n var x = 0;\n var y = 0;\n // IE10 implemented pointer events with a prefix;\n if (e.type.indexOf(\"MSPointer\") === 0) {\n pointer = true;\n }\n // Erroneous events seem to be passed in occasionally on iOS/iPadOS after user finishes interacting with\n // the slider. They appear to be of type MouseEvent, yet they don't have usual properties set. Ignore\n // events that have no touches or buttons associated with them. (#1057, #1079, #1095)\n if (e.type === \"mousedown\" && !e.buttons && !e.touches) {\n return false;\n }\n // The only thing one handle should be concerned about is the touches that originated on top of it.\n if (touch) {\n // Returns true if a touch originated on the target.\n var isTouchOnTarget = function (checkTouch) {\n var target = checkTouch.target;\n return (target === eventTarget ||\n eventTarget.contains(target) ||\n (e.composed && e.composedPath().shift() === eventTarget));\n };\n // In the case of touchstart events, we need to make sure there is still no more than one\n // touch on the target so we look amongst all touches.\n if (e.type === \"touchstart\") {\n var targetTouches = Array.prototype.filter.call(e.touches, isTouchOnTarget);\n // Do not support more than one touch per handle.\n if (targetTouches.length > 1) {\n return false;\n }\n x = targetTouches[0].pageX;\n y = targetTouches[0].pageY;\n }\n else {\n // In the other cases, find on changedTouches is enough.\n var targetTouch = Array.prototype.find.call(e.changedTouches, isTouchOnTarget);\n // Cancel if the target touch has not moved.\n if (!targetTouch) {\n return false;\n }\n x = targetTouch.pageX;\n y = targetTouch.pageY;\n }\n }\n pageOffset = pageOffset || getPageOffset(scope_Document);\n if (mouse || pointer) {\n x = e.clientX + pageOffset.x;\n y = e.clientY + pageOffset.y;\n }\n e.pageOffset = pageOffset;\n e.points = [x, y];\n e.cursor = mouse || pointer; // Fix #435\n return e;\n }\n // Translate a coordinate in the document to a percentage on the slider\n function calcPointToPercentage(calcPoint) {\n var location = calcPoint - offset(scope_Base, options.ort);\n var proposal = (location * 100) / baseSize();\n // Clamp proposal between 0% and 100%\n // Out-of-bound coordinates may occur when .noUi-base pseudo-elements\n // are used (e.g. contained handles feature)\n proposal = limit(proposal);\n return options.dir ? 100 - proposal : proposal;\n }\n // Find handle closest to a certain percentage on the slider\n function getClosestHandle(clickedPosition) {\n var smallestDifference = 100;\n var handleNumber = false;\n scope_Handles.forEach(function (handle, index) {\n // Disabled handles are ignored\n if (isHandleDisabled(index)) {\n return;\n }\n var handlePosition = scope_Locations[index];\n var differenceWithThisHandle = Math.abs(handlePosition - clickedPosition);\n // Initial state\n var clickAtEdge = differenceWithThisHandle === 100 && smallestDifference === 100;\n // Difference with this handle is smaller than the previously checked handle\n var isCloser = differenceWithThisHandle < smallestDifference;\n var isCloserAfter = differenceWithThisHandle <= smallestDifference && clickedPosition > handlePosition;\n if (isCloser || isCloserAfter || clickAtEdge) {\n handleNumber = index;\n smallestDifference = differenceWithThisHandle;\n }\n });\n return handleNumber;\n }\n // Fire 'end' when a mouse or pen leaves the document.\n function documentLeave(event, data) {\n if (event.type === \"mouseout\" &&\n event.target.nodeName === \"HTML\" &&\n event.relatedTarget === null) {\n eventEnd(event, data);\n }\n }\n // Handle movement on document for handle and range drag.\n function eventMove(event, data) {\n // Fix #498\n // Check value of .buttons in 'start' to work around a bug in IE10 mobile (data.buttonsProperty).\n // https://connect.microsoft.com/IE/feedback/details/927005/mobile-ie10-windows-phone-buttons-property-of-pointermove-event-always-zero\n // IE9 has .buttons and .which zero on mousemove.\n // Firefox breaks the spec MDN defines.\n if (navigator.appVersion.indexOf(\"MSIE 9\") === -1 && event.buttons === 0 && data.buttonsProperty !== 0) {\n return eventEnd(event, data);\n }\n // Check if we are moving up or down\n var movement = (options.dir ? -1 : 1) * (event.calcPoint - data.startCalcPoint);\n // Convert the movement into a percentage of the slider width/height\n var proposal = (movement * 100) / data.baseSize;\n moveHandles(movement > 0, proposal, data.locations, data.handleNumbers, data.connect);\n }\n // Unbind move events on document, call callbacks.\n function eventEnd(event, data) {\n // The handle is no longer active, so remove the class.\n if (data.handle) {\n removeClass(data.handle, options.cssClasses.active);\n scope_ActiveHandlesCount -= 1;\n }\n // Unbind the move and end events, which are added on 'start'.\n data.listeners.forEach(function (c) {\n scope_DocumentElement.removeEventListener(c[0], c[1]);\n });\n if (scope_ActiveHandlesCount === 0) {\n // Remove dragging class.\n removeClass(scope_Target, options.cssClasses.drag);\n setZindex();\n // Remove cursor styles and text-selection events bound to the body.\n if (event.cursor) {\n scope_Body.style.cursor = \"\";\n scope_Body.removeEventListener(\"selectstart\", preventDefault);\n }\n }\n if (options.events.smoothSteps) {\n data.handleNumbers.forEach(function (handleNumber) {\n setHandle(handleNumber, scope_Locations[handleNumber], true, true, false, false);\n });\n data.handleNumbers.forEach(function (handleNumber) {\n fireEvent(\"update\", handleNumber);\n });\n }\n data.handleNumbers.forEach(function (handleNumber) {\n fireEvent(\"change\", handleNumber);\n fireEvent(\"set\", handleNumber);\n fireEvent(\"end\", handleNumber);\n });\n }\n // Bind move events on document.\n function eventStart(event, data) {\n // Ignore event if any handle is disabled\n if (data.handleNumbers.some(isHandleDisabled)) {\n return;\n }\n var handle;\n if (data.handleNumbers.length === 1) {\n var handleOrigin = scope_Handles[data.handleNumbers[0]];\n handle = handleOrigin.children[0];\n scope_ActiveHandlesCount += 1;\n // Mark the handle as 'active' so it can be styled.\n addClass(handle, options.cssClasses.active);\n }\n // A drag should never propagate up to the 'tap' event.\n event.stopPropagation();\n // Record the event listeners.\n var listeners = [];\n // Attach the move and end events.\n var moveEvent = attachEvent(actions.move, scope_DocumentElement, eventMove, {\n // The event target has changed so we need to propagate the original one so that we keep\n // relying on it to extract target touches.\n target: event.target,\n handle: handle,\n connect: data.connect,\n listeners: listeners,\n startCalcPoint: event.calcPoint,\n baseSize: baseSize(),\n pageOffset: event.pageOffset,\n handleNumbers: data.handleNumbers,\n buttonsProperty: event.buttons,\n locations: scope_Locations.slice(),\n });\n var endEvent = attachEvent(actions.end, scope_DocumentElement, eventEnd, {\n target: event.target,\n handle: handle,\n listeners: listeners,\n doNotReject: true,\n handleNumbers: data.handleNumbers,\n });\n var outEvent = attachEvent(\"mouseout\", scope_DocumentElement, documentLeave, {\n target: event.target,\n handle: handle,\n listeners: listeners,\n doNotReject: true,\n handleNumbers: data.handleNumbers,\n });\n // We want to make sure we pushed the listeners in the listener list rather than creating\n // a new one as it has already been passed to the event handlers.\n listeners.push.apply(listeners, moveEvent.concat(endEvent, outEvent));\n // Text selection isn't an issue on touch devices,\n // so adding cursor styles can be skipped.\n if (event.cursor) {\n // Prevent the 'I' cursor and extend the range-drag cursor.\n scope_Body.style.cursor = getComputedStyle(event.target).cursor;\n // Mark the target with a dragging state.\n if (scope_Handles.length > 1) {\n addClass(scope_Target, options.cssClasses.drag);\n }\n // Prevent text selection when dragging the handles.\n // In noUiSlider <= 9.2.0, this was handled by calling preventDefault on mouse/touch start/move,\n // which is scroll blocking. The selectstart event is supported by FireFox starting from version 52,\n // meaning the only holdout is iOS Safari. This doesn't matter: text selection isn't triggered there.\n // The 'cursor' flag is false.\n // See: http://caniuse.com/#search=selectstart\n scope_Body.addEventListener(\"selectstart\", preventDefault, false);\n }\n data.handleNumbers.forEach(function (handleNumber) {\n fireEvent(\"start\", handleNumber);\n });\n }\n // Move closest handle to tapped location.\n function eventTap(event) {\n // The tap event shouldn't propagate up\n event.stopPropagation();\n var proposal = calcPointToPercentage(event.calcPoint);\n var handleNumber = getClosestHandle(proposal);\n // Tackle the case that all handles are 'disabled'.\n if (handleNumber === false) {\n return;\n }\n // Flag the slider as it is now in a transitional state.\n // Transition takes a configurable amount of ms (default 300). Re-enable the slider after that.\n if (!options.events.snap) {\n addClassFor(scope_Target, options.cssClasses.tap, options.animationDuration);\n }\n setHandle(handleNumber, proposal, true, true);\n setZindex();\n fireEvent(\"slide\", handleNumber, true);\n fireEvent(\"update\", handleNumber, true);\n if (!options.events.snap) {\n fireEvent(\"change\", handleNumber, true);\n fireEvent(\"set\", handleNumber, true);\n }\n else {\n eventStart(event, { handleNumbers: [handleNumber] });\n }\n }\n // Fires a 'hover' event for a hovered mouse/pen position.\n function eventHover(event) {\n var proposal = calcPointToPercentage(event.calcPoint);\n var to = scope_Spectrum.getStep(proposal);\n var value = scope_Spectrum.fromStepping(to);\n Object.keys(scope_Events).forEach(function (targetEvent) {\n if (\"hover\" === targetEvent.split(\".\")[0]) {\n scope_Events[targetEvent].forEach(function (callback) {\n callback.call(scope_Self, value);\n });\n }\n });\n }\n // Handles keydown on focused handles\n // Don't move the document when pressing arrow keys on focused handles\n function eventKeydown(event, handleNumber) {\n if (isSliderDisabled() || isHandleDisabled(handleNumber)) {\n return false;\n }\n var horizontalKeys = [\"Left\", \"Right\"];\n var verticalKeys = [\"Down\", \"Up\"];\n var largeStepKeys = [\"PageDown\", \"PageUp\"];\n var edgeKeys = [\"Home\", \"End\"];\n if (options.dir && !options.ort) {\n // On an right-to-left slider, the left and right keys act inverted\n horizontalKeys.reverse();\n }\n else if (options.ort && !options.dir) {\n // On a top-to-bottom slider, the up and down keys act inverted\n verticalKeys.reverse();\n largeStepKeys.reverse();\n }\n // Strip \"Arrow\" for IE compatibility. https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key\n var key = event.key.replace(\"Arrow\", \"\");\n var isLargeDown = key === largeStepKeys[0];\n var isLargeUp = key === largeStepKeys[1];\n var isDown = key === verticalKeys[0] || key === horizontalKeys[0] || isLargeDown;\n var isUp = key === verticalKeys[1] || key === horizontalKeys[1] || isLargeUp;\n var isMin = key === edgeKeys[0];\n var isMax = key === edgeKeys[1];\n if (!isDown && !isUp && !isMin && !isMax) {\n return true;\n }\n event.preventDefault();\n var to;\n if (isUp || isDown) {\n var direction = isDown ? 0 : 1;\n var steps = getNextStepsForHandle(handleNumber);\n var step = steps[direction];\n // At the edge of a slider, do nothing\n if (step === null) {\n return false;\n }\n // No step set, use the default of 10% of the sub-range\n if (step === false) {\n step = scope_Spectrum.getDefaultStep(scope_Locations[handleNumber], isDown, options.keyboardDefaultStep);\n }\n if (isLargeUp || isLargeDown) {\n step *= options.keyboardPageMultiplier;\n }\n else {\n step *= options.keyboardMultiplier;\n }\n // Step over zero-length ranges (#948);\n step = Math.max(step, 0.0000001);\n // Decrement for down steps\n step = (isDown ? -1 : 1) * step;\n to = scope_Values[handleNumber] + step;\n }\n else if (isMax) {\n // End key\n to = options.spectrum.xVal[options.spectrum.xVal.length - 1];\n }\n else {\n // Home key\n to = options.spectrum.xVal[0];\n }\n setHandle(handleNumber, scope_Spectrum.toStepping(to), true, true);\n fireEvent(\"slide\", handleNumber);\n fireEvent(\"update\", handleNumber);\n fireEvent(\"change\", handleNumber);\n fireEvent(\"set\", handleNumber);\n return false;\n }\n // Attach events to several slider parts.\n function bindSliderEvents(behaviour) {\n // Attach the standard drag event to the handles.\n if (!behaviour.fixed) {\n scope_Handles.forEach(function (handle, index) {\n // These events are only bound to the visual handle\n // element, not the 'real' origin element.\n attachEvent(actions.start, handle.children[0], eventStart, {\n handleNumbers: [index],\n });\n });\n }\n // Attach the tap event to the slider base.\n if (behaviour.tap) {\n attachEvent(actions.start, scope_Base, eventTap, {});\n }\n // Fire hover events\n if (behaviour.hover) {\n attachEvent(actions.move, scope_Base, eventHover, {\n hover: true,\n });\n }\n // Make the range draggable.\n if (behaviour.drag) {\n scope_Connects.forEach(function (connect, index) {\n if (connect === false || index === 0 || index === scope_Connects.length - 1) {\n return;\n }\n var handleBefore = scope_Handles[index - 1];\n var handleAfter = scope_Handles[index];\n var eventHolders = [connect];\n var handlesToDrag = [handleBefore, handleAfter];\n var handleNumbersToDrag = [index - 1, index];\n addClass(connect, options.cssClasses.draggable);\n // When the range is fixed, the entire range can\n // be dragged by the handles. The handle in the first\n // origin will propagate the start event upward,\n // but it needs to be bound manually on the other.\n if (behaviour.fixed) {\n eventHolders.push(handleBefore.children[0]);\n eventHolders.push(handleAfter.children[0]);\n }\n if (behaviour.dragAll) {\n handlesToDrag = scope_Handles;\n handleNumbersToDrag = scope_HandleNumbers;\n }\n eventHolders.forEach(function (eventHolder) {\n attachEvent(actions.start, eventHolder, eventStart, {\n handles: handlesToDrag,\n handleNumbers: handleNumbersToDrag,\n connect: connect,\n });\n });\n });\n }\n }\n // Attach an event to this slider, possibly including a namespace\n function bindEvent(namespacedEvent, callback) {\n scope_Events[namespacedEvent] = scope_Events[namespacedEvent] || [];\n scope_Events[namespacedEvent].push(callback);\n // If the event bound is 'update,' fire it immediately for all handles.\n if (namespacedEvent.split(\".\")[0] === \"update\") {\n scope_Handles.forEach(function (a, index) {\n fireEvent(\"update\", index);\n });\n }\n }\n function isInternalNamespace(namespace) {\n return namespace === INTERNAL_EVENT_NS.aria || namespace === INTERNAL_EVENT_NS.tooltips;\n }\n // Undo attachment of event\n function removeEvent(namespacedEvent) {\n var event = namespacedEvent && namespacedEvent.split(\".\")[0];\n var namespace = event ? namespacedEvent.substring(event.length) : namespacedEvent;\n Object.keys(scope_Events).forEach(function (bind) {\n var tEvent = bind.split(\".\")[0];\n var tNamespace = bind.substring(tEvent.length);\n if ((!event || event === tEvent) && (!namespace || namespace === tNamespace)) {\n // only delete protected internal event if intentional\n if (!isInternalNamespace(tNamespace) || namespace === tNamespace) {\n delete scope_Events[bind];\n }\n }\n });\n }\n // External event handling\n function fireEvent(eventName, handleNumber, tap) {\n Object.keys(scope_Events).forEach(function (targetEvent) {\n var eventType = targetEvent.split(\".\")[0];\n if (eventName === eventType) {\n scope_Events[targetEvent].forEach(function (callback) {\n callback.call(\n // Use the slider public API as the scope ('this')\n scope_Self, \n // Return values as array, so arg_1[arg_2] is always valid.\n scope_Values.map(options.format.to), \n // Handle index, 0 or 1\n handleNumber, \n // Un-formatted slider values\n scope_Values.slice(), \n // Event is fired by tap, true or false\n tap || false, \n // Left offset of the handle, in relation to the slider\n scope_Locations.slice(), \n // add the slider public API to an accessible parameter when this is unavailable\n scope_Self);\n });\n }\n });\n }\n // Split out the handle positioning logic so the Move event can use it, too\n function checkHandlePosition(reference, handleNumber, to, lookBackward, lookForward, getValue, smoothSteps) {\n var distance;\n // For sliders with multiple handles, limit movement to the other handle.\n // Apply the margin option by adding it to the handle positions.\n if (scope_Handles.length > 1 && !options.events.unconstrained) {\n if (lookBackward && handleNumber > 0) {\n distance = scope_Spectrum.getAbsoluteDistance(reference[handleNumber - 1], options.margin, false);\n to = Math.max(to, distance);\n }\n if (lookForward && handleNumber < scope_Handles.length - 1) {\n distance = scope_Spectrum.getAbsoluteDistance(reference[handleNumber + 1], options.margin, true);\n to = Math.min(to, distance);\n }\n }\n // The limit option has the opposite effect, limiting handles to a\n // maximum distance from another. Limit must be > 0, as otherwise\n // handles would be unmovable.\n if (scope_Handles.length > 1 && options.limit) {\n if (lookBackward && handleNumber > 0) {\n distance = scope_Spectrum.getAbsoluteDistance(reference[handleNumber - 1], options.limit, false);\n to = Math.min(to, distance);\n }\n if (lookForward && handleNumber < scope_Handles.length - 1) {\n distance = scope_Spectrum.getAbsoluteDistance(reference[handleNumber + 1], options.limit, true);\n to = Math.max(to, distance);\n }\n }\n // The padding option keeps the handles a certain distance from the\n // edges of the slider. Padding must be > 0.\n if (options.padding) {\n if (handleNumber === 0) {\n distance = scope_Spectrum.getAbsoluteDistance(0, options.padding[0], false);\n to = Math.max(to, distance);\n }\n if (handleNumber === scope_Handles.length - 1) {\n distance = scope_Spectrum.getAbsoluteDistance(100, options.padding[1], true);\n to = Math.min(to, distance);\n }\n }\n if (!smoothSteps) {\n to = scope_Spectrum.getStep(to);\n }\n // Limit percentage to the 0 - 100 range\n to = limit(to);\n // Return false if handle can't move\n if (to === reference[handleNumber] && !getValue) {\n return false;\n }\n return to;\n }\n // Uses slider orientation to create CSS rules. a = base value;\n function inRuleOrder(v, a) {\n var o = options.ort;\n return (o ? a : v) + \", \" + (o ? v : a);\n }\n // Moves handle(s) by a percentage\n // (bool, % to move, [% where handle started, ...], [index in scope_Handles, ...])\n function moveHandles(upward, proposal, locations, handleNumbers, connect) {\n var proposals = locations.slice();\n // Store first handle now, so we still have it in case handleNumbers is reversed\n var firstHandle = handleNumbers[0];\n var smoothSteps = options.events.smoothSteps;\n var b = [!upward, upward];\n var f = [upward, !upward];\n // Copy handleNumbers so we don't change the dataset\n handleNumbers = handleNumbers.slice();\n // Check to see which handle is 'leading'.\n // If that one can't move the second can't either.\n if (upward) {\n handleNumbers.reverse();\n }\n // Step 1: get the maximum percentage that any of the handles can move\n if (handleNumbers.length > 1) {\n handleNumbers.forEach(function (handleNumber, o) {\n var to = checkHandlePosition(proposals, handleNumber, proposals[handleNumber] + proposal, b[o], f[o], false, smoothSteps);\n // Stop if one of the handles can't move.\n if (to === false) {\n proposal = 0;\n }\n else {\n proposal = to - proposals[handleNumber];\n proposals[handleNumber] = to;\n }\n });\n }\n // If using one handle, check backward AND forward\n else {\n b = f = [true];\n }\n var state = false;\n // Step 2: Try to set the handles with the found percentage\n handleNumbers.forEach(function (handleNumber, o) {\n state =\n setHandle(handleNumber, locations[handleNumber] + proposal, b[o], f[o], false, smoothSteps) || state;\n });\n // Step 3: If a handle moved, fire events\n if (state) {\n handleNumbers.forEach(function (handleNumber) {\n fireEvent(\"update\", handleNumber);\n fireEvent(\"slide\", handleNumber);\n });\n // If target is a connect, then fire drag event\n if (connect != undefined) {\n fireEvent(\"drag\", firstHandle);\n }\n }\n }\n // Takes a base value and an offset. This offset is used for the connect bar size.\n // In the initial design for this feature, the origin element was 1% wide.\n // Unfortunately, a rounding bug in Chrome makes it impossible to implement this feature\n // in this manner: https://bugs.chromium.org/p/chromium/issues/detail?id=798223\n function transformDirection(a, b) {\n return options.dir ? 100 - a - b : a;\n }\n // Updates scope_Locations and scope_Values, updates visual state\n function updateHandlePosition(handleNumber, to) {\n // Update locations.\n scope_Locations[handleNumber] = to;\n // Convert the value to the slider stepping/range.\n scope_Values[handleNumber] = scope_Spectrum.fromStepping(to);\n var translation = transformDirection(to, 0) - scope_DirOffset;\n var translateRule = \"translate(\" + inRuleOrder(translation + \"%\", \"0\") + \")\";\n scope_Handles[handleNumber].style[options.transformRule] = translateRule;\n updateConnect(handleNumber);\n updateConnect(handleNumber + 1);\n }\n // Handles before the slider middle are stacked later = higher,\n // Handles after the middle later is lower\n // [[7] [8] .......... | .......... [5] [4]\n function setZindex() {\n scope_HandleNumbers.forEach(function (handleNumber) {\n var dir = scope_Locations[handleNumber] > 50 ? -1 : 1;\n var zIndex = 3 + (scope_Handles.length + dir * handleNumber);\n scope_Handles[handleNumber].style.zIndex = String(zIndex);\n });\n }\n // Test suggested values and apply margin, step.\n // if exactInput is true, don't run checkHandlePosition, then the handle can be placed in between steps (#436)\n function setHandle(handleNumber, to, lookBackward, lookForward, exactInput, smoothSteps) {\n if (!exactInput) {\n to = checkHandlePosition(scope_Locations, handleNumber, to, lookBackward, lookForward, false, smoothSteps);\n }\n if (to === false) {\n return false;\n }\n updateHandlePosition(handleNumber, to);\n return true;\n }\n // Updates style attribute for connect nodes\n function updateConnect(index) {\n // Skip connects set to false\n if (!scope_Connects[index]) {\n return;\n }\n var l = 0;\n var h = 100;\n if (index !== 0) {\n l = scope_Locations[index - 1];\n }\n if (index !== scope_Connects.length - 1) {\n h = scope_Locations[index];\n }\n // We use two rules:\n // 'translate' to change the left/top offset;\n // 'scale' to change the width of the element;\n // As the element has a width of 100%, a translation of 100% is equal to 100% of the parent (.noUi-base)\n var connectWidth = h - l;\n var translateRule = \"translate(\" + inRuleOrder(transformDirection(l, connectWidth) + \"%\", \"0\") + \")\";\n var scaleRule = \"scale(\" + inRuleOrder(connectWidth / 100, \"1\") + \")\";\n scope_Connects[index].style[options.transformRule] =\n translateRule + \" \" + scaleRule;\n }\n // Parses value passed to .set method. Returns current value if not parse-able.\n function resolveToValue(to, handleNumber) {\n // Setting with null indicates an 'ignore'.\n // Inputting 'false' is invalid.\n if (to === null || to === false || to === undefined) {\n return scope_Locations[handleNumber];\n }\n // If a formatted number was passed, attempt to decode it.\n if (typeof to === \"number\") {\n to = String(to);\n }\n to = options.format.from(to);\n if (to !== false) {\n to = scope_Spectrum.toStepping(to);\n }\n // If parsing the number failed, use the current value.\n if (to === false || isNaN(to)) {\n return scope_Locations[handleNumber];\n }\n return to;\n }\n // Set the slider value.\n function valueSet(input, fireSetEvent, exactInput) {\n var values = asArray(input);\n var isInit = scope_Locations[0] === undefined;\n // Event fires by default\n fireSetEvent = fireSetEvent === undefined ? true : fireSetEvent;\n // Animation is optional.\n // Make sure the initial values were set before using animated placement.\n if (options.animate && !isInit) {\n addClassFor(scope_Target, options.cssClasses.tap, options.animationDuration);\n }\n // First pass, without lookAhead but with lookBackward. Values are set from left to right.\n scope_HandleNumbers.forEach(function (handleNumber) {\n setHandle(handleNumber, resolveToValue(values[handleNumber], handleNumber), true, false, exactInput);\n });\n var i = scope_HandleNumbers.length === 1 ? 0 : 1;\n // Spread handles evenly across the slider if the range has no size (min=max)\n if (isInit && scope_Spectrum.hasNoSize()) {\n exactInput = true;\n scope_Locations[0] = 0;\n if (scope_HandleNumbers.length > 1) {\n var space_1 = 100 / (scope_HandleNumbers.length - 1);\n scope_HandleNumbers.forEach(function (handleNumber) {\n scope_Locations[handleNumber] = handleNumber * space_1;\n });\n }\n }\n // Secondary passes. Now that all base values are set, apply constraints.\n // Iterate all handles to ensure constraints are applied for the entire slider (Issue #1009)\n for (; i < scope_HandleNumbers.length; ++i) {\n scope_HandleNumbers.forEach(function (handleNumber) {\n setHandle(handleNumber, scope_Locations[handleNumber], true, true, exactInput);\n });\n }\n setZindex();\n scope_HandleNumbers.forEach(function (handleNumber) {\n fireEvent(\"update\", handleNumber);\n // Fire the event only for handles that received a new value, as per #579\n if (values[handleNumber] !== null && fireSetEvent) {\n fireEvent(\"set\", handleNumber);\n }\n });\n }\n // Reset slider to initial values\n function valueReset(fireSetEvent) {\n valueSet(options.start, fireSetEvent);\n }\n // Set value for a single handle\n function valueSetHandle(handleNumber, value, fireSetEvent, exactInput) {\n // Ensure numeric input\n handleNumber = Number(handleNumber);\n if (!(handleNumber >= 0 && handleNumber < scope_HandleNumbers.length)) {\n throw new Error(\"noUiSlider: invalid handle number, got: \" + handleNumber);\n }\n // Look both backward and forward, since we don't want this handle to \"push\" other handles (#960);\n // The exactInput argument can be used to ignore slider stepping (#436)\n setHandle(handleNumber, resolveToValue(value, handleNumber), true, true, exactInput);\n fireEvent(\"update\", handleNumber);\n if (fireSetEvent) {\n fireEvent(\"set\", handleNumber);\n }\n }\n // Get the slider value.\n function valueGet(unencoded) {\n if (unencoded === void 0) { unencoded = false; }\n if (unencoded) {\n // return a copy of the raw values\n return scope_Values.length === 1 ? scope_Values[0] : scope_Values.slice(0);\n }\n var values = scope_Values.map(options.format.to);\n // If only one handle is used, return a single value.\n if (values.length === 1) {\n return values[0];\n }\n return values;\n }\n // Removes classes from the root and empties it.\n function destroy() {\n // remove protected internal listeners\n removeEvent(INTERNAL_EVENT_NS.aria);\n removeEvent(INTERNAL_EVENT_NS.tooltips);\n Object.keys(options.cssClasses).forEach(function (key) {\n removeClass(scope_Target, options.cssClasses[key]);\n });\n while (scope_Target.firstChild) {\n scope_Target.removeChild(scope_Target.firstChild);\n }\n delete scope_Target.noUiSlider;\n }\n function getNextStepsForHandle(handleNumber) {\n var location = scope_Locations[handleNumber];\n var nearbySteps = scope_Spectrum.getNearbySteps(location);\n var value = scope_Values[handleNumber];\n var increment = nearbySteps.thisStep.step;\n var decrement = null;\n // If snapped, directly use defined step value\n if (options.snap) {\n return [\n value - nearbySteps.stepBefore.startValue || null,\n nearbySteps.stepAfter.startValue - value || null,\n ];\n }\n // If the next value in this step moves into the next step,\n // the increment is the start of the next step - the current value\n if (increment !== false) {\n if (value + increment > nearbySteps.stepAfter.startValue) {\n increment = nearbySteps.stepAfter.startValue - value;\n }\n }\n // If the value is beyond the starting point\n if (value > nearbySteps.thisStep.startValue) {\n decrement = nearbySteps.thisStep.step;\n }\n else if (nearbySteps.stepBefore.step === false) {\n decrement = false;\n }\n // If a handle is at the start of a step, it always steps back into the previous step first\n else {\n decrement = value - nearbySteps.stepBefore.highestStep;\n }\n // Now, if at the slider edges, there is no in/decrement\n if (location === 100) {\n increment = null;\n }\n else if (location === 0) {\n decrement = null;\n }\n // As per #391, the comparison for the decrement step can have some rounding issues.\n var stepDecimals = scope_Spectrum.countStepDecimals();\n // Round per #391\n if (increment !== null && increment !== false) {\n increment = Number(increment.toFixed(stepDecimals));\n }\n if (decrement !== null && decrement !== false) {\n decrement = Number(decrement.toFixed(stepDecimals));\n }\n return [decrement, increment];\n }\n // Get the current step size for the slider.\n function getNextSteps() {\n return scope_HandleNumbers.map(getNextStepsForHandle);\n }\n // Updatable: margin, limit, padding, step, range, animate, snap\n function updateOptions(optionsToUpdate, fireSetEvent) {\n // Spectrum is created using the range, snap, direction and step options.\n // 'snap' and 'step' can be updated.\n // If 'snap' and 'step' are not passed, they should remain unchanged.\n var v = valueGet();\n var updateAble = [\n \"margin\",\n \"limit\",\n \"padding\",\n \"range\",\n \"animate\",\n \"snap\",\n \"step\",\n \"format\",\n \"pips\",\n \"tooltips\",\n ];\n // Only change options that we're actually passed to update.\n updateAble.forEach(function (name) {\n // Check for undefined. null removes the value.\n if (optionsToUpdate[name] !== undefined) {\n originalOptions[name] = optionsToUpdate[name];\n }\n });\n var newOptions = testOptions(originalOptions);\n // Load new options into the slider state\n updateAble.forEach(function (name) {\n if (optionsToUpdate[name] !== undefined) {\n options[name] = newOptions[name];\n }\n });\n scope_Spectrum = newOptions.spectrum;\n // Limit, margin and padding depend on the spectrum but are stored outside of it. (#677)\n options.margin = newOptions.margin;\n options.limit = newOptions.limit;\n options.padding = newOptions.padding;\n // Update pips, removes existing.\n if (options.pips) {\n pips(options.pips);\n }\n else {\n removePips();\n }\n // Update tooltips, removes existing.\n if (options.tooltips) {\n tooltips();\n }\n else {\n removeTooltips();\n }\n // Invalidate the current positioning so valueSet forces an update.\n scope_Locations = [];\n valueSet(isSet(optionsToUpdate.start) ? optionsToUpdate.start : v, fireSetEvent);\n }\n // Initialization steps\n function setupSlider() {\n // Create the base element, initialize HTML and set classes.\n // Add handles and connect elements.\n scope_Base = addSlider(scope_Target);\n addElements(options.connect, scope_Base);\n // Attach user events.\n bindSliderEvents(options.events);\n // Use the public value method to set the start values.\n valueSet(options.start);\n if (options.pips) {\n pips(options.pips);\n }\n if (options.tooltips) {\n tooltips();\n }\n aria();\n }\n setupSlider();\n var scope_Self = {\n destroy: destroy,\n steps: getNextSteps,\n on: bindEvent,\n off: removeEvent,\n get: valueGet,\n set: valueSet,\n setHandle: valueSetHandle,\n reset: valueReset,\n disable: disable,\n enable: enable,\n // Exposed for unit testing, don't use this in your application.\n __moveHandles: function (upward, proposal, handleNumbers) {\n moveHandles(upward, proposal, scope_Locations, handleNumbers);\n },\n options: originalOptions,\n updateOptions: updateOptions,\n target: scope_Target,\n removePips: removePips,\n removeTooltips: removeTooltips,\n getPositions: function () {\n return scope_Locations.slice();\n },\n getTooltips: function () {\n return scope_Tooltips;\n },\n getOrigins: function () {\n return scope_Handles;\n },\n pips: pips, // Issue #594\n };\n return scope_Self;\n}\n// Run the standard initializer\nfunction initialize(target, originalOptions) {\n if (!target || !target.nodeName) {\n throw new Error(\"noUiSlider: create requires a single element, got: \" + target);\n }\n // Throw an error if the slider was already initialized.\n if (target.noUiSlider) {\n throw new Error(\"noUiSlider: Slider was already initialized.\");\n }\n // Test the options and create the slider environment;\n var options = testOptions(originalOptions);\n var api = scope(target, options, originalOptions);\n target.noUiSlider = api;\n return api;\n}\nexport { initialize as create };\nexport { cssClasses };\nexport default {\n // Exposed for unit testing, don't use this in your application.\n __spectrum: Spectrum,\n // A reference to the default classes, allows global changes.\n // Use the cssClasses option for changes to one slider.\n cssClasses: cssClasses,\n create: initialize,\n};\n", "import noUiSlider from 'nouislider';\r\n\r\nconst Forms = {\r\n init: function (element) {\r\n element = element || document;\r\n\r\n const forms = element.querySelectorAll(\".textbox\");\r\n\r\n if(!forms) return;\r\n\r\n for (let i = 0; i < forms.length; i++) {\r\n let parent = forms[i];\r\n let input = parent.querySelector(\".input\");\r\n\r\n if (input.value) {\r\n parent.classList.add(\"floating\");\r\n }\r\n else {\r\n parent.classList.remove(\"floating\");\r\n }\r\n\r\n parent.addEventListener(\"click\", function () {\r\n parent.classList.add(\"floating\");\r\n input.focus();\r\n });\r\n\r\n input.addEventListener(\"focus\", function () {\r\n parent.classList.add(\"focus\");\r\n parent.classList.add(\"floating\");\r\n });\r\n\r\n input.addEventListener(\"blur\", function () {\r\n parent.classList.remove(\"focus\");\r\n if (input.value) {\r\n parent.classList.add(\"floating\");\r\n }\r\n else {\r\n parent.classList.remove(\"floating\");\r\n }\r\n });\r\n\r\n input.addEventListener(\"input\", function () {\r\n if (input.value) {\r\n parent.classList.add(\"floating\");\r\n }\r\n else {\r\n parent.classList.remove(\"floating\");\r\n }\r\n });\r\n }\r\n },\r\n initRangeSlider: noUiSlider\r\n};\r\nForms.init();\r\nexport default Forms;\r\n", "const Accordion = {\r\n init: function () {\r\n const accordions = document.querySelectorAll('.accordion');\r\n if (accordions) {\r\n accordions.forEach(function (i) {\r\n const _this = i;\r\n const items = _this.querySelectorAll('.item');\r\n\r\n if (items) {\r\n items.forEach(function (i) {\r\n const children = i.querySelectorAll('.content , .content *');\r\n if (children) {\r\n const focus = () => {\r\n if (i.classList.contains('open')) {\r\n children.forEach(function (i) {\r\n i.setAttribute(\"tabIndex\", \"-1\");\r\n });\r\n }\r\n else {\r\n children.forEach(function (i) {\r\n i.removeAttribute(\"tabIndex\");\r\n });\r\n }\r\n };\r\n focus();\r\n\r\n const ih = i.offsetHeight;\r\n i.style.setProperty(\"--max-height\", `${ih + 20}px`);\r\n\r\n i.querySelector(\"[data-toggle]\").addEventListener(\"click\", () => {\r\n focus();\r\n i.classList.toggle(\"open\");\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n};\r\nAccordion.init();\r\nexport default Accordion;", "function Tabs(options) {\r\n const elem = document.getElementById(options.elem)\r\n const open = options.open || 0\r\n const titleClass = 'item'\r\n const activeClass = 'active'\r\n const contentClass = 'content'\r\n const tabsNum = elem.querySelectorAll('.' + titleClass).length\r\n const uniqId = (Date.now()+Math.random()).toString(36);\r\n\r\n render();\r\n\r\n\r\n function render(n) {\r\n elem.addEventListener('click', onClick);\r\n\r\n let init = (n == null) ? checkTab(open) : checkTab(n);\r\n\r\n for (let i = 0; i < tabsNum; i++) {\r\n elem.querySelectorAll('.' + titleClass)[i].setAttribute('data-'+uniqId, i);\r\n if (i === init)\r\n openTab(i);\r\n }\r\n }\r\n\r\n\r\n function onClick(e) {\r\n if (e.target.className.indexOf(titleClass) === -1)\r\n return;\r\n e.preventDefault();\r\n openTab(e.target.getAttribute('data-'+uniqId));\r\n }\r\n\r\n\r\n function reset() {\r\n [].forEach.call(elem.querySelectorAll('.' + contentClass), function (item) {\r\n item.classList.remove(\"active\");\r\n });\r\n\r\n [].forEach.call(elem.querySelectorAll('.' + titleClass), function (item) {\r\n item.className = removeClass(item.className, activeClass);\r\n });\r\n }\r\n\r\n\r\n function removeClass(str, cls) {\r\n let reg = new RegExp('(\\ )' + cls + '(\\)', 'g');\r\n return str.replace(reg, '');\r\n }\r\n\r\n\r\n function checkTab(n) {\r\n return (n < 0 || isNaN(n) || n > tabsNum) ? 0 : n;\r\n }\r\n\r\n\r\n function openTab(n) {\r\n reset();\r\n\r\n let i = checkTab(n);\r\n elem.querySelectorAll('.' + titleClass)[i].className += ' ' + activeClass;\r\n elem.querySelectorAll('.' + contentClass)[i].classList.add(\"active\");\r\n }\r\n\r\n\r\n function update(n) {\r\n destroy();\r\n reset();\r\n render(n);\r\n }\r\n\r\n\r\n function destroy() {\r\n elem.removeEventListener('click', onClick);\r\n }\r\n\r\n return {\r\n open: openTab,\r\n update: update,\r\n destroy: destroy\r\n };\r\n}\r\nexport default Tabs;\r\n\r\n", "const Appbar = {\r\n init: () => {\r\n const elements = document.querySelectorAll('.appbar.elevating');\r\n elements.forEach(element => {\r\n document.addEventListener('scroll', () => {\r\n if (window.scrollY > 100) {\r\n element.classList.add('elevated');\r\n } else {\r\n element.classList.remove('elevated');\r\n }\r\n });\r\n })\r\n }\r\n};\r\nAppbar.init();\r\nexport default Appbar;", "// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nconst candidateSelectors = [\n 'input:not([inert])',\n 'select:not([inert])',\n 'textarea:not([inert])',\n 'a[href]:not([inert])',\n 'button:not([inert])',\n '[tabindex]:not(slot):not([inert])',\n 'audio[controls]:not([inert])',\n 'video[controls]:not([inert])',\n '[contenteditable]:not([contenteditable=\"false\"]):not([inert])',\n 'details>summary:first-of-type:not([inert])',\n 'details:not([inert])',\n];\nconst candidateSelector = /* #__PURE__ */ candidateSelectors.join(',');\n\nconst NoElement = typeof Element === 'undefined';\n\nconst matches = NoElement\n ? function () {}\n : Element.prototype.matches ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n\nconst getRootNode =\n !NoElement && Element.prototype.getRootNode\n ? (element) => element?.getRootNode?.()\n : (element) => element?.ownerDocument;\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nconst isInert = function (node, lookUp = true) {\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n const inertAtt = node?.getAttribute?.('inert');\n const inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n const result = inert || (lookUp && node && isInert(node.parentNode)); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nconst isContentEditable = function (node) {\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n const attValue = node?.getAttribute?.('contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nconst getCandidates = function (el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n\n let candidates = Array.prototype.slice.apply(\n el.querySelectorAll(candidateSelector)\n );\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.}\n */\nconst getCandidatesIteratively = function (\n elements,\n includeContainer,\n options\n) {\n const candidates = [];\n const elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n const element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n const assigned = element.assignedElements();\n const content = assigned.length ? assigned : element.children;\n const nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // check candidate element\n const validCandidate = matches.call(element, candidateSelector);\n if (\n validCandidate &&\n options.filter(element) &&\n (includeContainer || !elements.includes(element))\n ) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n const shadowRoot =\n element.shadowRoot ||\n // check for an undisclosed shadow\n (typeof options.getShadowRoot === 'function' &&\n options.getShadowRoot(element));\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n const validShadowRoot =\n !isInert(shadowRoot, false) &&\n (!options.shadowRootFilter || options.shadowRootFilter(element));\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n const nestedCandidates = getCandidatesIteratively(\n shadowRoot === true ? element.children : shadowRoot.children,\n true,\n options\n );\n\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift(...element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nconst hasTabIndex = function (node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nconst getTabIndex = function (node) {\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (node.tabIndex < 0) {\n // in Chrome,
,