From 81c1cc57ada0465e596bb4967b6365cc69f2333c Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 03:21:15 +1000 Subject: [PATCH 01/17] move APIToken to different file --- pairent_frontend_react/src/API/APIToken.js | 30 ++++++++++++++++++++++ pairent_frontend_react/src/API/User.js | 27 ------------------- 2 files changed, 30 insertions(+), 27 deletions(-) create mode 100644 pairent_frontend_react/src/API/APIToken.js diff --git a/pairent_frontend_react/src/API/APIToken.js b/pairent_frontend_react/src/API/APIToken.js new file mode 100644 index 0000000..9ee000f --- /dev/null +++ b/pairent_frontend_react/src/API/APIToken.js @@ -0,0 +1,30 @@ +import { IAPIObject } from "./IAPIObject"; + +class APIToken extends IAPIObject { + + static storage_key = 'pairent_api_key'; + + constructor(data) { + super(); + this.user = data.user; + this.key = data.key; + this.expires = data.expires; + this.ip = data.ip; + } + + /** @type {number} */ + user; + + /** @type {string} */ + key; + + /** A Unix timestamp (when the token will expire) + * @type {number} + */ + expires; + + /** @type {string} */ + ip; +} + +export { APIToken }; \ No newline at end of file diff --git a/pairent_frontend_react/src/API/User.js b/pairent_frontend_react/src/API/User.js index 99b84f7..d62bb42 100644 --- a/pairent_frontend_react/src/API/User.js +++ b/pairent_frontend_react/src/API/User.js @@ -16,33 +16,6 @@ class UserLoginResponse { id; } -class APIToken extends IAPIObject { - - static storage_key = 'pairent_api_key'; - - constructor(data) { - super(); - this.user = data.user; - this.key = data.key; - this.expires = data.expires; - this.ip = data.ip; - } - - /** @type {number} */ - user; - - /** @type {string} */ - key; - - /** A Unix timestamp (when the token will expire) - * @type {number} - */ - expires; - - /** @type {string} */ - ip; -} - class User extends IAPIObject { isLoggedIn() { From d1cd071f066f75af0257666451397fbc2c905590 Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 04:17:24 +1000 Subject: [PATCH 02/17] add banner to index page --- .../public/images/Business.jpg | Bin 0 -> 45925 bytes .../public/images/OpenDoorDay.jpg | Bin 0 -> 40360 bytes .../src/pages/IndexPage/index.jsx | 8 ++++---- .../src/pages/IndexPage/ras.css | 4 ++++ .../src/pages/IndexPage/swiper.css | 12 ------------ 5 files changed, 8 insertions(+), 16 deletions(-) create mode 100644 pairent_frontend_react/public/images/Business.jpg create mode 100644 pairent_frontend_react/public/images/OpenDoorDay.jpg create mode 100644 pairent_frontend_react/src/pages/IndexPage/ras.css delete mode 100644 pairent_frontend_react/src/pages/IndexPage/swiper.css diff --git a/pairent_frontend_react/public/images/Business.jpg b/pairent_frontend_react/public/images/Business.jpg new file mode 100644 index 0000000000000000000000000000000000000000..51c29c6d3997876cc493f0ba6c8e3325ad61db70 GIT binary patch literal 45925 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

|6{{tKaI1{8E?xs+$Nj*N(GjHxpB%Zm!sS+ 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�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

5SV>wQYbb(QmqDqa{+|ejXrq39sQ@WK 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 U0v{h=Xz2YIeka6!ul_Ip+4tg&pa1{> literal 0 HcmV?d00001 diff --git a/pairent_frontend_react/public/images/OpenDoorDay.jpg b/pairent_frontend_react/public/images/OpenDoorDay.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b94fd6a4f60b4877e040672c47434a22d14ca52c GIT binary patch literal 40360 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 -
-
+ +
diff --git a/pairent_frontend_react/src/pages/IndexPage/ras.css b/pairent_frontend_react/src/pages/IndexPage/ras.css new file mode 100644 index 0000000..6d66ddf --- /dev/null +++ b/pairent_frontend_react/src/pages/IndexPage/ras.css @@ -0,0 +1,4 @@ +.awssld { + --loader-bar-color: #0077aa !important; + /* --loader-bar-height: 8px !important; */ +} diff --git a/pairent_frontend_react/src/pages/IndexPage/swiper.css b/pairent_frontend_react/src/pages/IndexPage/swiper.css deleted file mode 100644 index 7ad5888..0000000 --- a/pairent_frontend_react/src/pages/IndexPage/swiper.css +++ /dev/null @@ -1,12 +0,0 @@ -:root { - --swiper-scrollbar-drag-bg-color: #e1e3e1a0; - --swiper-scrollbar-size: 5px; - --swiper-scrollbar-bottom: 0px; - --swiper-scrollbar-border-radius: 5px; - - --swiper-navigation-color: white -} - -.swiper { - box-shadow: 0 2px 12px #00000030; -} \ No newline at end of file From 63132abc202b215e52ec5776c30f0f2f75610d5b Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 04:39:30 +1000 Subject: [PATCH 03/17] add api client --- pairent_frontend_react/src/API/Client.js | 72 ++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 pairent_frontend_react/src/API/Client.js diff --git a/pairent_frontend_react/src/API/Client.js b/pairent_frontend_react/src/API/Client.js new file mode 100644 index 0000000..35c8b5d --- /dev/null +++ b/pairent_frontend_react/src/API/Client.js @@ -0,0 +1,72 @@ +import axios, { Axios } from "axios"; + +import { User } from "./User"; +import { APIToken } from './APIToken'; + +class ClientCreateOptions { + /** Key used to access APIs, if you don't have user data + * @type {APIToken?} + */ + key; + + /** Current user's data + * @type {User?} + */ + user; +} + +/** + * An API client which is basically a User but with + * API token and with access to private fields. + */ +class Client extends User { + /** @type {APIToken} */ + key; + + /** @type {string} */ + openid_id; + + /** @type {string} */ + favorites_apartments; + + /** @type {string} */ + comparison_apartments; + + /** + * + * @param {ClientCreateOptions} options + */ + constructor(options) { + super(); + + if (options.key === undefined & options.user === undefined) { + throw new Error('Either key or user is required.'); + } + + this.key = options.key; + if (options.user) { + for (const key in options.user) { + this[key] = options.user[key]; + } + } + } + + /** + * + * @param {string} uri + * @param {string} method + * @param {import('axios').AxiosRequestConfig} options + */ + fetchData(url, method, options) { + axios.request({ + url, + method, + headers: { + ...(options.headers ? options.headers : {}), + 'X-Pairent-Auth': this.key.key + }, + + ...options + }); + } +} \ No newline at end of file From 8ded7379cb24813e5180c8452aef882a0d0cb683 Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 04:46:45 +1000 Subject: [PATCH 04/17] add authorization check on both sides --- pairent_backend/pairent_app/authlib.py | 25 ++++++++++++++++++------ pairent_frontend_react/src/API/Client.js | 4 ++-- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/pairent_backend/pairent_app/authlib.py b/pairent_backend/pairent_app/authlib.py index 3026648..cb281d8 100644 --- a/pairent_backend/pairent_app/authlib.py +++ b/pairent_backend/pairent_app/authlib.py @@ -1,5 +1,13 @@ +from rest_framework.request import Request + from django.http import HttpResponseBadRequest, HttpResponse, JsonResponse, HttpRequest +import ipware as iplib +ipware = iplib.IpWare(); + +def client_ip(req: HttpRequest): + return ipware.get_client_ip(req)[0].exploded; + def VVSUAuthProxy(req: HttpRequest): proxy = 'https://vvsu.ru/connect' + req.path[len('/api/auth/vvsu'):]; @@ -19,14 +27,8 @@ def register(oid, provider_id, name): favorites_apartments='', comparison_apartments='', name=name, - # date_of_birth=, about_me='', gender='?', - phone='+00000', - # email=, - # telegram=, - # discord=, - # city=, role='s', photo_provider='VVSU', openid_addr=oid, @@ -85,3 +87,14 @@ def verify_auth_token(key, ip): return False; return True; + +def auth_required(func): + """ + Use authorization for this route. + """ + def inner(req: HttpRequest): + if ('Authorization' not in req.headers.keys()): + return JsonResponse({'error': 'no auth token'}); + if (not verify_auth_token(req.headers['Authorization'], client_ip(req))): + return JsonResponse({'error': 'auth token invalid or expired'}); + func(); \ No newline at end of file diff --git a/pairent_frontend_react/src/API/Client.js b/pairent_frontend_react/src/API/Client.js index 35c8b5d..8908cc4 100644 --- a/pairent_frontend_react/src/API/Client.js +++ b/pairent_frontend_react/src/API/Client.js @@ -63,9 +63,9 @@ class Client extends User { method, headers: { ...(options.headers ? options.headers : {}), - 'X-Pairent-Auth': this.key.key + 'Authorization': this.key.key }, - + ...options }); } From 11b0e1fce936857a7dbd3faaff60d45c3434329f Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 04:47:03 +1000 Subject: [PATCH 05/17] add slider autoplay --- pairent_frontend_react/src/pages/IndexPage/index.jsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pairent_frontend_react/src/pages/IndexPage/index.jsx b/pairent_frontend_react/src/pages/IndexPage/index.jsx index 2d97f36..1e03160 100644 --- a/pairent_frontend_react/src/pages/IndexPage/index.jsx +++ b/pairent_frontend_react/src/pages/IndexPage/index.jsx @@ -5,13 +5,15 @@ import { Filters } from "../../API/Filters"; import styled from 'styled-components'; -// ras customization -import './ras.css'; import ApartamentService from "../../API/ApartamentService"; import { HashLoader } from 'react-spinners'; import AwesomeSlider from 'react-awesome-slider'; +import withAutoplay from 'react-awesome-slider/dist/autoplay'; import 'react-awesome-slider/dist/styles.css'; +// ras customization +import './ras.css'; +const AutoplaySlider = withAutoplay(AwesomeSlider); import constants from "../../constants"; @@ -376,10 +378,10 @@ export default class IndexPage extends React.Component { return ( - +
- + From 87c7e9c8ed87b6050b110723aad3cdec13a9a380 Mon Sep 17 00:00:00 2001 From: b1ek <me@blek.codes> Date: Wed, 17 May 2023 04:47:29 +1000 Subject: [PATCH 06/17] add loading to tinder --- .../src/pages/Tinder/index.jsx | 84 +++++++++++++++---- 1 file changed, 66 insertions(+), 18 deletions(-) diff --git a/pairent_frontend_react/src/pages/Tinder/index.jsx b/pairent_frontend_react/src/pages/Tinder/index.jsx index d8d2a58..8658e30 100644 --- a/pairent_frontend_react/src/pages/Tinder/index.jsx +++ b/pairent_frontend_react/src/pages/Tinder/index.jsx @@ -2,6 +2,7 @@ import React from "react"; import styled, { keyframes } from 'styled-components'; import SVGIcon from "../../components/UI/Icon/SVGIcon"; import Pagination from "../../components/UI/Pagination"; +import { HashLoader } from 'react-spinners'; const ChatSVG = () => { return <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M8 15c4.418 0 8-3.134 8-7s-3.582-7-8-7-8 3.134-8 7c0 1.76.743 3.37 1.97 4.6-.097 1.016-.417 2.13-.771 2.966-.079.186.074.394.273.362 2.256-.37 3.597-.938 4.18-1.234A9.06 9.06 0 0 0 8 15z"/></svg>; @@ -101,7 +102,6 @@ const UserList = styled.div` margin: 32px auto; margin-bottom: 0; display: block; - width: fit-content; `; @@ -214,25 +214,32 @@ const RightBadge = styled(LeftBadge)` } `; -class Users extends React.Component { +const LoadingText = styled.h2` + text-align: center; + line-height: 3.5em; + margin: 0; + padding: 100px 0; + + & span { + display: inline; + margin: 0px auto + } +`; + +class UserDisplay extends React.Component { + + /** @type {{ value: import('../../API/User').User[] }} */ + props; + + constructor(props) { + super(props); + } + render() { return ( - <UserList> - - <h2 style={{textAlign: 'center', lineHeight: '11pt', marginBottom: 32}}> - Выбери соседа - <br/> - <br/> - <span style={{ fontSize: '11pt', fontWeight: 500 }}> - Не забывай, с этим человеком<br/> - придется жить бок-о-бок! - </span> - </h2> - + <div>123 { - [...Array(11)].map((_, i) => { - if (i == 5) return <br/>; - + this.props.value.map(x => { return ( <UserCard> <SVGIcon src='/images/icons/user.svg' width='100' height='100' /> @@ -254,9 +261,50 @@ class Users extends React.Component { </ContactButton> </UserCard> - ); + ) }) } + </div> + ); + } +} + +class Users extends React.Component { + + constructor(props) { + super(props); + this.state = { + data: [{}], + loading: false + } + } + + componentDidMount() { + + } + + render() { + return ( + <UserList> + + <h2 style={{textAlign: 'center', lineHeight: '11pt', marginBottom: 32}}> + Выбери соседа + <br/> + <br/> + <span style={{ fontSize: '11pt', fontWeight: 500 }}> + Не забывай, с этим человеком<br/> + придется жить бок-о-бок! + </span> + </h2> + + { + this.state.loading ? + <UserDisplay value={this.state.data} /> : + <LoadingText> + Пожалуйста подождите, идет загрузка данных<br/> + <HashLoader color='#0077aa' /> + </LoadingText> + } </UserList> ) From 455cbf921da4ac008975ccfce4784bf28bde1403 Mon Sep 17 00:00:00 2001 From: b1ek <me@blek.codes> Date: Wed, 17 May 2023 05:25:15 +1000 Subject: [PATCH 07/17] half baked tinder view --- pairent_backend/pairent_app/authlib.py | 43 +++++++++++-------- .../migrations/0006_psychtestanswers.py | 3 +- pairent_backend/pairent_app/serializer.py | 6 ++- pairent_backend/pairent_app/views.py | 40 ++++++++--------- pairent_frontend_react/src/API/Tinder.js | 18 ++++++++ pairent_frontend_react/src/API/User.js | 1 + 6 files changed, 69 insertions(+), 42 deletions(-) create mode 100644 pairent_frontend_react/src/API/Tinder.js diff --git a/pairent_backend/pairent_app/authlib.py b/pairent_backend/pairent_app/authlib.py index cb281d8..9cf6c72 100644 --- a/pairent_backend/pairent_app/authlib.py +++ b/pairent_backend/pairent_app/authlib.py @@ -2,25 +2,13 @@ from rest_framework.request import Request from django.http import HttpResponseBadRequest, HttpResponse, JsonResponse, HttpRequest -import ipware as iplib +from .models import User, AuthToken + +import ipware as iplib, time, requests, uuid ipware = iplib.IpWare(); def client_ip(req: HttpRequest): - return ipware.get_client_ip(req)[0].exploded; - -def VVSUAuthProxy(req: HttpRequest): - proxy = 'https://vvsu.ru/connect' + req.path[len('/api/auth/vvsu'):]; - - preq = requests.request(req.method, proxy, headers={ - 'User-Agent': 'OIDC Client / Pairent', - 'Origin': 'http://pairent.vvsu.ru', - 'Referer': 'http://pairent.vvsu.ru' - }); - - resp = HttpResponse(preq.content); - resp.headers['Content-Type'] = preq.headers['Content-Type']; - - return resp; + return ipware.get_client_ip(req.META)[0].exploded; def register(oid, provider_id, name): user = User( @@ -82,7 +70,7 @@ def verify_auth_token(key, ip): token.delete(); return False; - if (token.expires > time.time()): + if (token.expires < time.time()): token.delete(); return False; @@ -92,9 +80,26 @@ def auth_required(func): """ Use authorization for this route. """ - def inner(req: HttpRequest): + def inner(req: HttpRequest, *args, **kwargs): + if ('Authorization' not in req.headers.keys()): return JsonResponse({'error': 'no auth token'}); if (not verify_auth_token(req.headers['Authorization'], client_ip(req))): return JsonResponse({'error': 'auth token invalid or expired'}); - func(); \ No newline at end of file + func(req, *args, **kwargs); + + return inner; + +def rest_auth_required(func): + """ + Use authorization for this restframework view. + """ + def inner(self, req: HttpRequest, *args, **kwargs): + + if ('Authorization' not in req.headers.keys()): + return JsonResponse({'error': 'no auth token'}); + if (not verify_auth_token(req.headers['Authorization'], client_ip(req))): + return JsonResponse({'error': 'auth token invalid or expired'}); + func(self, req, *args, **kwargs); + + return inner; \ No newline at end of file diff --git a/pairent_backend/pairent_app/migrations/0006_psychtestanswers.py b/pairent_backend/pairent_app/migrations/0006_psychtestanswers.py index 533007c..e6dbdb6 100644 --- a/pairent_backend/pairent_app/migrations/0006_psychtestanswers.py +++ b/pairent_backend/pairent_app/migrations/0006_psychtestanswers.py @@ -27,7 +27,8 @@ class Migration(migrations.Migration): ('tenth_question', models.IntegerField(validators=[django.core.validators.MaxValueValidator(5)], verbose_name='Ответ на десятый вопрос')), ('eleventh_question', models.IntegerField(validators=[django.core.validators.MaxValueValidator(5)], verbose_name='Ответ на одиннадцатый вопрос')), ('twelfth_question', models.IntegerField(validators=[django.core.validators.MaxValueValidator(5)], verbose_name='Ответ на двенадцатый вопрос')), - ('users', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pairent_app.user', verbose_name='Пользователь')), + # ('users', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pairent_app.user', verbose_name='Пользователь')), + ('user', models.BigIntegerField(verbose_name='ID Пользователя')), ], ) ] diff --git a/pairent_backend/pairent_app/serializer.py b/pairent_backend/pairent_app/serializer.py index fe05f1e..6a738db 100644 --- a/pairent_backend/pairent_app/serializer.py +++ b/pairent_backend/pairent_app/serializer.py @@ -28,7 +28,11 @@ class PsychTestAddResultSerializer(serializers.ModelSerializer): class PublicUserSerializer(serializers.ModelSerializer): class Meta: model = User - exclude = ('favorites_apartments', 'comparison_apartments') + exclude = ( + 'favorites_apartments', + 'comparison_apartments', + 'openid_id', + ) class PsychTestReultsSerializer(serializers.ModelSerializer): class Meta: diff --git a/pairent_backend/pairent_app/views.py b/pairent_backend/pairent_app/views.py index 348a55f..840307c 100644 --- a/pairent_backend/pairent_app/views.py +++ b/pairent_backend/pairent_app/views.py @@ -122,29 +122,17 @@ class PsychTestAddResultViewSet(viewsets.ViewSet): class CompatibleUsersView(viewsets.ViewSet): + @rest_auth_required def list(self, req: Request): user_data = dict(req.data); - # TODO: Verify auth - vvsu_login = user_data['openid']; - - # Exclude already viewed users - exclude = []; - if ('exclude' in user_data.keys()): - exclude = user_data['exclude']; + token = AuthToken.objects.get(key=req.headers['authorization']); - try: - validate_email(vvsu_login); - except ValidationError: - return Request({'error': 'bad login'}, 400); - - try: - this_user = User.objects.get(openid_addr=vvsu_login); - except User.DoesNotExist: - return Response({'error': 'user not found'}, 404); + this_user = User.objects.get(pk=token.user); + answers_this_user = None; try: - answers_this_user = PsychTestReultsSerializer(PsychTestAnswers.objects.get(user=this_user)).dict; + answers_this_user = PsychTestReultsSerializer(PsychTestAnswers.objects.get(user=this_user.id)).dict; except PsychTestAnswers.DoesNotExist: return Response({'error': 'answers not found'}, 404); @@ -160,10 +148,6 @@ class CompatibleUsersView(viewsets.ViewSet): if score / 12 * 100 > 30: users.append(UserSerializer(User.objects.get(pk=user_answers[0])).data) - # for user in users_query: - # if (abs(user.psych_test_result - score) < 20): - # users.append(PublicUserSerializer(user).data); - return Response(users); @@ -257,3 +241,17 @@ class UserGet(APIView): return JsonResponse(PublicUserSerializer(user).data); + +def VVSUAuthProxy(req: HttpRequest): + proxy = 'https://vvsu.ru/connect' + req.path[len('/api/auth/vvsu'):]; + + preq = requests.request(req.method, proxy, headers={ + 'User-Agent': 'OIDC Client / Pairent', + 'Origin': 'http://pairent.vvsu.ru', + 'Referer': 'http://pairent.vvsu.ru' + }); + + resp = HttpResponse(preq.content); + resp.headers['Content-Type'] = preq.headers['Content-Type']; + + return resp; \ No newline at end of file diff --git a/pairent_frontend_react/src/API/Tinder.js b/pairent_frontend_react/src/API/Tinder.js new file mode 100644 index 0000000..1efca8c --- /dev/null +++ b/pairent_frontend_react/src/API/Tinder.js @@ -0,0 +1,18 @@ +import { IAPIObject } from "./IAPIObject"; +import { Client } from './Client'; + +class Tinder extends IAPIObject { + /** + * + * @param {Client} client Client to use to create requests + */ + constructor(client) { + super(); + this.client = client; + this.viewed = []; + } + + getCompatible() { + + } +} \ No newline at end of file diff --git a/pairent_frontend_react/src/API/User.js b/pairent_frontend_react/src/API/User.js index d62bb42..067670e 100644 --- a/pairent_frontend_react/src/API/User.js +++ b/pairent_frontend_react/src/API/User.js @@ -2,6 +2,7 @@ import axios from 'axios'; import constants from '../constants'; import { IAPIObject } from './IAPIObject'; +import { APIToken } from './APIToken'; const { API_ROOT, api_path } = constants; From a29095b68bf5bbef32682e3a1af86a186fe305d0 Mon Sep 17 00:00:00 2001 From: b1ek <me@blek.codes> Date: Wed, 17 May 2023 06:20:28 +1000 Subject: [PATCH 08/17] half done docker --- .env.example | 9 + .gitignore | 3 - README.md | 81 +- conf/nginx/logs/.gitignore | 2 + conf/nginx/mime.types | 48 + conf/nginx/nginx.conf | 38 + conf/nginx/proxy.conf | 10 + data/.gitignore | 2 + docker-compose.yml | 45 + genkeys.sh | 97 ++ misc/1_step.png | Bin 48055 -> 0 bytes misc/2_step.png | Bin 61502 -> 0 bytes misc/3_step.png | Bin 88689 -> 0 bytes misc/4_step.png | Bin 15669 -> 0 bytes pairent_backend/Dockerfile | 17 + pairent_backend/docker-entry.sh | 6 + pairent_backend/pairent_backend/settings.py | 8 +- .../pairent_backend/templates/index.html | 20 + pairent_backend/pairent_backend/urls.py | 5 + pairent_backend/requirements.txt | 3 +- pairent_frontend_react/vite.config.js | 1 + static/assets/index-b130f2c5.css | 6 + static/assets/index-dc786e36.js | 1150 +++++++++++++++++ static/index.html | 20 + 24 files changed, 1489 insertions(+), 82 deletions(-) create mode 100644 .env.example create mode 100644 conf/nginx/logs/.gitignore create mode 100644 conf/nginx/mime.types create mode 100644 conf/nginx/nginx.conf create mode 100644 conf/nginx/proxy.conf create mode 100644 data/.gitignore create mode 100644 docker-compose.yml create mode 100755 genkeys.sh delete mode 100644 misc/1_step.png delete mode 100644 misc/2_step.png delete mode 100644 misc/3_step.png delete mode 100644 misc/4_step.png create mode 100644 pairent_backend/Dockerfile create mode 100644 pairent_backend/docker-entry.sh create mode 100644 pairent_backend/pairent_backend/templates/index.html create mode 100644 static/assets/index-b130f2c5.css create mode 100644 static/assets/index-dc786e36.js create mode 100644 static/index.html diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..de209ae --- /dev/null +++ b/.env.example @@ -0,0 +1,9 @@ +APP_DEBUG=false +APP_PORT=80 + +DB_HOST=db +DB_PORT=3306a +DB_PASSWORD= +DB_DATABASE=pairent + +DJANGO_KEY= diff --git a/.gitignore b/.gitignore index 7d0ad55..f283bac 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,4 @@ local_settings.py db.sqlite3 # macOS moment -pairent_backend/.DS_Store -# macOS moment жиза .DS_Store - diff --git a/README.md b/README.md index d6aeab4..c5c94ae 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,7 @@ -# Аренда квартир для студентов +<h1 align='center'>Точка</h1> +Добро пожаловать в репозиторий проекта "точка" -В проекте есть три ветки: - -- main — в эту ветку загружается код после положительного тестирования и ревью. -- dev_stable — в эту ветку загружается стабильный код, который будет использоваться в продашкене. -- dev_unstable — основная ветка для разработчиков. - -## ТУТ НАЗВАНЫ ПАПКИ ПОД РАЗРАБОТКУ И ФРОНТ В БЕК НЕ ЗАХОДИТ И НИЧЕГО НЕ МЕНЯЕТ! - -## Как начать работать? - -- Устанавливаем [python](https://www.python.org/downloads/) версия 3.11.1 и [git](https://git-scm.com/) -- [Настройте git](https://tproger.ru/curriculum/git-guide/). В основном нужно только ввести имя пользователя и почту, пароль запросит при клонировании - -Если не хотите заморачиваться с терминалом. Советую использовать [GitHub Desktop](https://desktop.github.com/) - -### Клонирование проекта через терминал - -Команды написаны под windows. Вводить в командную строку. Проверяйте, что в терминале вы находитесь в правильной директории - -- Клонируем репозиторий - -```bash -git clone https://github.com/vvsu-rent-project/dev_rent.github -``` - -- В консоли переходим в папку проекта -- Далее переходим на ветку unstable - -```bash -git switch dev_unstable -``` - -### Клонирование проекта через GitHub Desktop - -- Заходим в настройки - -![Заходим в настройки](misc/1_step.png) - -- Входим в аккаунт - -![Входим в аккаунт](misc/2_step.png) - -- Клонируем репозиторий - -![Клонируем репозиторий](misc/3_step.png) - -![Клонируем репозиторий](misc/4_step.png) - -### Подготовка проекта к работе - -- Открываем VS Code, открываем папку проекта и запускаем терминал -- В терминале переходим в папку pairent_backend - -```bash -cd pairent_backend -``` - -- Создаем виртуальное окружение - -```bash -python -m venv venv -``` - -- Активируем виртуальное окружение. Активировать окружение нужно: когда запускаете сервер, устанавливаете зависимости, добавляете новое django приложение - -```bash -venv\Scripts\activate -``` - -- После активации, устанавливаем зависимости. - -```bash -pip install -r requirements.txt -``` +# Запуск локального сайта +1. Создайте `.env` файл, рекомендуем использовать для этого шаблон `.env.example` +2. Сгенерируйте ключи `genkeys.sh` +3. Поднимите контейнеры `docker-compose up -d` \ No newline at end of file diff --git a/conf/nginx/logs/.gitignore b/conf/nginx/logs/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/conf/nginx/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/conf/nginx/mime.types b/conf/nginx/mime.types new file mode 100644 index 0000000..62bd4b6 --- /dev/null +++ b/conf/nginx/mime.types @@ -0,0 +1,48 @@ +types { + text/html html htm shtml; + text/css css; + text/xml xml rss; + image/gif gif; + image/jpeg jpeg jpg; + application/x-javascript js; + text/plain txt; + text/x-component htc; + text/mathml mml; + image/png png; + image/x-icon ico; + image/x-jng jng; + image/vnd.wap.wbmp wbmp; + application/java-archive jar war ear; + application/mac-binhex40 hqx; + application/pdf pdf; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-perl pl pm; + application/x-pilot prc pdb; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert der pem crt; + application/x-xpinstall xpi; + application/zip zip; + application/octet-stream deb; + application/octet-stream bin exe dll; + application/octet-stream dmg; + application/octet-stream eot; + application/octet-stream iso img; + application/octet-stream msi msp msm; + audio/mpeg mp3; + audio/x-realaudio ra; + video/mpeg mpeg mpg; + video/quicktime mov; + video/x-flv flv; + video/x-msvideo avi; + video/x-ms-wmv wmv; + video/x-ms-asf asx asf; + video/x-mng mng; +} \ No newline at end of file diff --git a/conf/nginx/nginx.conf b/conf/nginx/nginx.conf new file mode 100644 index 0000000..896e473 --- /dev/null +++ b/conf/nginx/nginx.conf @@ -0,0 +1,38 @@ +user nobody nobody; +worker_processes 5; +error_log logs/error.log; +pid logs/nginx.pid; +worker_rlimit_nofile 8192; + +events { + worker_connections 4096; +} + +http { + include mime.types; + include /etc/nginx/proxy.conf; + index index.html index.htm; + + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] $status ' + '"$request" $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log logs/access.log main; + sendfile on; + tcp_nopush on; + gzip on; + server_names_hash_bucket_size 128; # this seems to be required for some vhosts + + server { + listen 80; + + location / { + proxy_pass http://back; + } + + location /static { + root /var/www/static; + try_files $uri $uri/ index.html; + } + } +} \ No newline at end of file diff --git a/conf/nginx/proxy.conf b/conf/nginx/proxy.conf new file mode 100644 index 0000000..0906ee1 --- /dev/null +++ b/conf/nginx/proxy.conf @@ -0,0 +1,10 @@ +proxy_redirect off; +proxy_set_header Host $host; +proxy_set_header X-Real-IP $remote_addr; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +client_max_body_size 10m; +client_body_buffer_size 128k; +proxy_connect_timeout 90; +proxy_send_timeout 90; +proxy_read_timeout 90; +proxy_buffers 32 4k; \ No newline at end of file diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..bc0b466 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,45 @@ +version: '3' +services: + nginx: + image: nginx:alpine + volumes: + - './conf/nginx:/etc/nginx' + - './static:/var/www/html' + restart: always + ports: + - '${APP_PORT:-80}:80' + networks: + pairent: + aliases: + - nginx + depends_on: + - back + back: + build: + context: ./pairent_backend + dockerfile: Dockerfile + networks: + pairent: + aliases: + - back + volumes: + - './pairent_backend:/opt/code' + environment: + DB_PASS: '${DB_PASSWORD}' + depends_on: + - db + db: + image: mariadb + networks: + pairent: + aliases: + - db + volumes: + - './data/db:/etc/mysql' + environment: + MARIADB_ROOT_PASSWORD: '${DB_PASSWORD}' + MARIADB_DATABASE: 'pairent_db' + +networks: + pairent: + driver: bridge \ No newline at end of file diff --git a/genkeys.sh b/genkeys.sh new file mode 100755 index 0000000..14845bc --- /dev/null +++ b/genkeys.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +# ----- Start commands ----- + +fatal_err() { + echo -e "\033[31mFatal error $*\033[0m" +} + +# ----- End commands ----- + +# ----- Start safeguards ----- + +if [[ "$1" != '-a' ]]; then + fatal_err + echo " This script will potentially break any existing instance of Pairent." + echo " To execute this script, re-run it with option -a as first argument." + exit -1 +fi + +if ! [ -f .env ]; then + fatal_err + echo -e " No .env file was found." + echo -e " Please use the \033[32m.env.example\033[0m to create a dotenv file:" + echo -e " 1. \033[34mcp .env.example .env\033[0m" + echo -e " 2. Edit your \033[32m.env\033[0m in your favourite editor" + exit -1 +fi + +if ! [ -x "$(command -v python3)" ]; then + fatal_err + echo -e " Python is not installed." + echo -e " Please install Python 3.11 on your system" + exit -1 +fi + +# ----- End safeguards ----- + + + +# ----- Start bootstrap back ----- + +echo Generating keys... +KEY=$(python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())') +sed -Ei "s/^DJANGO_KEY=.*$/DJANGO_KEY=/" .env +sed -Ei "s/^DJANGO_KEY=.*$/DJANGO_KEY='$KEY'/" .env + +DB_PASS=$(tr -dc A-Za-z0-9 </dev/urandom | head -c $(( $RANDOM % 32 + 32 ))) +sed -Ei "s/DB_PASSWORD=\w*/DB_PASSWORD=$DB_PASS/" .env + +echo Using these keys: +echo -e " \033[32mDjango key: \033[0m$KEY" +echo -e " \033[32mDatabase key: \033[0m$DB_PASS" + +ln -s .env pairent_backend/.env + +# ----- End bootstrap back ----- + +exit + +# ----- Start bootstrap front ----- + +echo Building frontend static files... + +cd pairent_frontend_react + +NPMS=('npm' 'pnpm' 'yarn') +NPM='None' + +for n in ${NPMS[@]}; do + if [ -x "$(command -v "$n")" ]; then + NPM=$n + fi +done + +if [[ "$NPM" == 'None' ]]; then + fatal_err + echo ' No node package manager was found in your system.' + echo ' Please install one of the following:' + for n in ${NPMS[@]}; do + echo -e " $n" + done + exit -1 +fi + +rm -rf node_modules + +$NPM install +$NPM run build + +DIST_FOLDER=$(realpath dist) + +cd .. +cp -r $DIST_FOLDER/* static + +echo Done building frontend static files + +# ----- End bootstrap front ----- \ No newline at end of file diff --git a/misc/1_step.png b/misc/1_step.png deleted file mode 100644 index 59b9213362e8969e62e2b33a3f9aa438352646e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48055 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 Btk3`e diff --git a/misc/2_step.png b/misc/2_step.png deleted file mode 100644 index eea748f6801e300762599b33fcc9fdfd5893a5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61502 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 diff --git a/misc/3_step.png b/misc/3_step.png deleted file mode 100644 index 419adc06f319ba9153c51366bbd50b79acaeeb85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88689 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 diff --git a/misc/4_step.png b/misc/4_step.png deleted file mode 100644 index a36a2b62fd5c62bf0ca51c824723fec965db42a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15669 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 diff --git a/pairent_backend/Dockerfile b/pairent_backend/Dockerfile new file mode 100644 index 0000000..49f3e5f --- /dev/null +++ b/pairent_backend/Dockerfile @@ -0,0 +1,17 @@ +FROM python:alpine + +RUN apk add --no-cache \ + gcc musl-dev \ + mysql mariadb-connector-c-dev && \ + mkdir /opt/code + +COPY requirements.txt /opt/code/requirements.txt +WORKDIR /opt/code + +RUN pip install -r requirements.txt + +USER nobody + +COPY . /opt/code + +CMD [ "/bin/sh", "docker-entry.sh" ] \ No newline at end of file diff --git a/pairent_backend/docker-entry.sh b/pairent_backend/docker-entry.sh new file mode 100644 index 0000000..22efc3c --- /dev/null +++ b/pairent_backend/docker-entry.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +PYTHON='/usr/bin/env python3' + +$PYTHON manage.py migrate +$PYTHON manage.py runserver 0.0.0.0:80 \ No newline at end of file diff --git a/pairent_backend/pairent_backend/settings.py b/pairent_backend/pairent_backend/settings.py index c9eef6b..9caabb4 100644 --- a/pairent_backend/pairent_backend/settings.py +++ b/pairent_backend/pairent_backend/settings.py @@ -10,6 +10,7 @@ For the full list of settings and their values, see https://docs.djangoproject.com/en/4.1/ref/settings/ """ +from dotenv import dotenv_values from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. @@ -19,11 +20,12 @@ BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/ -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-=(7b+4ka=5jak-mokuh4#-6_14f58#^0kjwqsz7wyon$4i@sel' +DOTENV = dotenv_values(BASE_DIR / '..' / '.env'); +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = DOTENV['DJANGO_KEY'] # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = DOTENV['APP_DEBUG'] == 'true' ALLOWED_HOSTS = ['*'] diff --git a/pairent_backend/pairent_backend/templates/index.html b/pairent_backend/pairent_backend/templates/index.html new file mode 100644 index 0000000..7b2ba46 --- /dev/null +++ b/pairent_backend/pairent_backend/templates/index.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8" /> + <title>Pairent + + + + + + + + +
+ + + diff --git a/pairent_backend/pairent_backend/urls.py b/pairent_backend/pairent_backend/urls.py index 3cabe48..96340ac 100644 --- a/pairent_backend/pairent_backend/urls.py +++ b/pairent_backend/pairent_backend/urls.py @@ -13,10 +13,15 @@ Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ +from django.template import loader from django.contrib import admin from django.urls import path, include +def root_url(req): + return loader.get_template('index.html').render() + urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('pairent_app.urls')), + path('', root_url) ] diff --git a/pairent_backend/requirements.txt b/pairent_backend/requirements.txt index c8a891d..bb650f4 100644 --- a/pairent_backend/requirements.txt +++ b/pairent_backend/requirements.txt @@ -4,4 +4,5 @@ djangorestframework django-cors-headers Pillow requests -python-ipware \ No newline at end of file +python-ipware +python-dotenv \ No newline at end of file diff --git a/pairent_frontend_react/vite.config.js b/pairent_frontend_react/vite.config.js index 1982af0..dc49f83 100644 --- a/pairent_frontend_react/vite.config.js +++ b/pairent_frontend_react/vite.config.js @@ -5,5 +5,6 @@ export default { plugins: [ react() ], + publicDir: '/static/dist' } \ No newline at end of file diff --git a/static/assets/index-b130f2c5.css b/static/assets/index-b130f2c5.css new file mode 100644 index 0000000..6042b36 --- /dev/null +++ b/static/assets/index-b130f2c5.css @@ -0,0 +1,6 @@ +.viewedElem{width:24%;padding-bottom:1%;background:#fff;border:2px solid #ccc;border-radius:20px}.viewedElem img{width:100%;margin-bottom:3%}.viewedElem h3,.viewedElem p{margin-left:5%}.viewedElem h3{font-weight:600;font-size:24px;color:#222}.viewedElem p{font-weight:500;font-size:16px;color:#222}.viewedSection{margin-top:46px}.viewedTittle{display:flex;justify-content:space-between}.viewedTittle h2{font-weight:700;font-size:20px;color:#222;padding-left:0}.viewedTittle span{margin-left:30px;font-size:16px;color:#a9a9a9}.viewedBtnSection{display:flex}.btnViewed{width:208px;height:32px;margin-top:15px;margin-right:22px;background:#fff;border:1px solid #CCCCCC;border-radius:12px;font-size:14px;font-weight:500;color:#ccc}.viewedBtn{display:flex;align-items:center}.viewedBlock{display:flex;justify-content:space-between;margin-top:8px}h2{margin-top:14px;margin-bottom:21px;padding-left:2%;font-weight:600;font-size:24px;color:#222}.separationLine{margin-top:22px;margin-left:34%;border:1px solid #ccc}.awssld__box,.awssld__content,.awssld__container figure{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.awssld__bullets button,.awssld__controls button{outline-color:0;outline-style:none;outline-width:0}.awssld__startUp>div{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.awssld__content{background-color:var(--content-background-color);overflow:hidden;display:flex;align-items:center;justify-content:center}.awssld__content>img,.awssld__content>video{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.awssld__controls button{display:flex;align-items:center;justify-content:center;width:var(--control-button-width);height:var(--control-button-height);position:absolute;z-index:10;top:calc(50% - .5 * var(--control-button-height));border:none;background-color:var(--control-button-background);color:#fff;cursor:pointer}.awssld__controls--active .awssld__controls__arrow-left{opacity:var(--control-button-opacity-hover);transform:translate3d(-100%,0,0)}.awssld__controls--active .awssld__controls__arrow-right{opacity:var(--control-button-opacity-hover);transform:translate3d(100%,0,0)}.awssld__bar{display:block;width:100%;height:var(--loader-bar-height);background-color:var(--loader-bar-color);position:absolute;top:0;left:0;z-index:101;transition:transform 3s var(--transition-bezier);transform:translate3d(-100%,0,0)}.awssld__bar--active{transform:translate3d(-20%,0,0)}.awssld__bar--end{transition-duration:.3s;transform:translateZ(0)}.awssld--animated-mobile{will-change:transform;transition:transform 325ms cubic-bezier(.15,.65,.1,1)}.awssld--active{visibility:visible;z-index:2;transform:translateZ(0)}.awssld--moveRight,.awssld--moveLeft{backface-visibility:hidden}.awssld--moveRight{animation:slideFromRight var(--slider-transition-duration) both var(--transition-bezier)}.awssld--moveLeft{animation:slideFromLeft var(--slider-transition-duration) both var(--transition-bezier)}.awssld--exit.awssld--moveLeft{animation:slideToLeft var(--slider-transition-duration) both var(--transition-bezier)}.awssld--exit.awssld--moveRight{animation:slideToRight var(--slider-transition-duration) both var(--transition-bezier)}.awssld__bullets{position:absolute;bottom:-40px;width:100%;display:flex;align-items:center;justify-content:center}.awssld__bullets button{padding:0;display:block;width:16px;height:16px;margin:5px;border-radius:50%;background:var(--control-bullet-color);text-indent:-9999px;overflow:hidden;cursor:pointer;border:none;transition:transform .225s cubic-bezier(.8,1.35,.75,1.45),background-color .175s ease-out}.awssld__bullets button:hover,.awssld__bullets .awssld__bullets--loading{transform:scale(1.2)}.awssld__bullets .awssld__bullets--active{transform:scale(1.5);background:var(--control-bullet-active-color)}.awssld__bullets .awssld__bullets--active:hover{transform:scale(1.5)}.awssld__controls__arrow-left,.awssld__controls__arrow-right{width:100%;height:var(--organic-arrow-height);position:relative;display:block;transition:transform .2s ease-out .125s,opacity .2s ease-out}.awssld__controls__arrow-left:before,.awssld__controls__arrow-left:after,.awssld__controls__arrow-right:before,.awssld__controls__arrow-right:after{content:" ";position:absolute;right:calc(50% - (.7071 * (var(--organic-arrow-height) + var(--organic-arrow-thickness))) / 2);height:100%;border-radius:var(--organic-arrow-border-radius);width:var(--organic-arrow-thickness);background-color:var(--organic-arrow-color);transition:transform .15s ease-out,background-color .15s ease-out}.awssld__controls__arrow-left:before,.awssld__controls__arrow-right:before{transform-origin:100% 100% 0;top:-50%;transform:rotate(-45deg)}.awssld__controls__arrow-left:after,.awssld__controls__arrow-right:after{transform-origin:100% 0% 0;top:50%;transform:rotate(45deg)}.awssld__controls__arrow-right--active{transform:translate3d(100%,0,0)}.awssld__controls__arrow-right--active:after{transform:rotate(90deg) translate3d(50%,0,0)!important}.awssld__controls__arrow-right--active:before{transform:rotate(-90deg) translate3d(50%,0,0)!important}.awssld__controls__arrow-left:before{transform-origin:0 100% 0;top:-50%;transform:rotate(45deg)}.awssld__controls__arrow-left:after{transform-origin:0 0 0;top:50%;transform:rotate(-45deg)}.awssld__controls__arrow-left--active{transform:translate3d(-100%,0,0)}.awssld__controls__arrow-left--active:after{transform:rotate(-90deg) translate3d(-50%,0,0)!important}.awssld__controls__arrow-left--active:before{transform:rotate(90deg) translate3d(-50%,0,0)!important}.awssld__controls button:hover .awssld__controls__arrow-left:before{opacity:1;transform:rotate(30deg)}.awssld__controls button:hover .awssld__controls__arrow-left:after{opacity:1;transform:rotate(-30deg)}.awssld__controls button:hover .awssld__controls__arrow-right:before{opacity:1;transform:rotate(-30deg)}.awssld__controls button:hover .awssld__controls__arrow-right:after{opacity:1;transform:rotate(30deg)}.awssld__timer{--timer-delay: 2s;--timer-release: .2s;--timer-height: 4px;--timer-background-color: rgba(0, 0, 0, .15);width:100%;height:var(--timer-height);background-color:var(--timer-background-color);position:absolute;top:0;left:0;z-index:100;transform:translate(-100%)}.awssld__timer--animated{will-change:transform;transition:transform var(--timer-delay) linear}.awssld__timer--run{transform:translate(0)}.awssld__timer--fast{transition:transform calc(var(--timer-release) / 2) linear;transform:translate(-.00001px)}.awssld__timer--end{transform:translate(-.0001px);transition:transform var(--timer-release) linear}@keyframes slideFromLeft{0%{transform:translate3d(-100%,0,0)}to{transform:translateZ(0)}}@keyframes slideFromRight{0%{transform:translate3d(100%,0,0)}to{transform:translateZ(0)}}@keyframes slideToLeft{0%{transform:translateZ(0)}to{transform:translate3d(-100%,0,0)}}@keyframes slideToRight{0%{transform:translateZ(0)}to{transform:translate3d(100%,0,0)}}/*! +* Bootstrap Grid v5.2.3 (https://getbootstrap.com/) +* Copyright 2011-2022 The Bootstrap Authors +* Copyright 2011-2022 Twitter, Inc. +* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) +*/:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, .175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#0d6efd;--bs-link-hover-color:#0a58ca;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{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{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{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{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{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{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{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{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{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{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{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{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{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:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.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:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.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:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.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:.25rem!important}.mt-2{margin-top:.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:.25rem!important}.me-2{margin-right:.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:.25rem!important}.mb-2{margin-bottom:.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:.25rem!important}.ms-2{margin-left:.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:.25rem!important}.p-2{padding:.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:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.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:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.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:.25rem!important}.pt-2{padding-top:.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:.25rem!important}.pe-2{padding-right:.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:.25rem!important}.pb-2{padding-bottom:.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:.25rem!important}.ps-2{padding-left:.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: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:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.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:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.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:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.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:.25rem!important}.mt-sm-2{margin-top:.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:.25rem!important}.me-sm-2{margin-right:.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:.25rem!important}.mb-sm-2{margin-bottom:.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:.25rem!important}.ms-sm-2{margin-left:.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:.25rem!important}.p-sm-2{padding:.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:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.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:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.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:.25rem!important}.pt-sm-2{padding-top:.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:.25rem!important}.pe-sm-2{padding-right:.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:.25rem!important}.pb-sm-2{padding-bottom:.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:.25rem!important}.ps-sm-2{padding-left:.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: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:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.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:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.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:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.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:.25rem!important}.mt-md-2{margin-top:.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:.25rem!important}.me-md-2{margin-right:.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:.25rem!important}.mb-md-2{margin-bottom:.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:.25rem!important}.ms-md-2{margin-left:.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:.25rem!important}.p-md-2{padding:.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:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.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:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.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:.25rem!important}.pt-md-2{padding-top:.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:.25rem!important}.pe-md-2{padding-right:.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:.25rem!important}.pb-md-2{padding-bottom:.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:.25rem!important}.ps-md-2{padding-left:.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: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:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.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:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.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:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.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:.25rem!important}.mt-lg-2{margin-top:.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:.25rem!important}.me-lg-2{margin-right:.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:.25rem!important}.mb-lg-2{margin-bottom:.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:.25rem!important}.ms-lg-2{margin-left:.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:.25rem!important}.p-lg-2{padding:.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:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.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:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.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:.25rem!important}.pt-lg-2{padding-top:.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:.25rem!important}.pe-lg-2{padding-right:.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:.25rem!important}.pb-lg-2{padding-bottom:.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:.25rem!important}.ps-lg-2{padding-left:.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: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:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.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:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.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:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.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:.25rem!important}.mt-xl-2{margin-top:.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:.25rem!important}.me-xl-2{margin-right:.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:.25rem!important}.mb-xl-2{margin-bottom:.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:.25rem!important}.ms-xl-2{margin-left:.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:.25rem!important}.p-xl-2{padding:.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:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.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:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.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:.25rem!important}.pt-xl-2{padding-top:.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:.25rem!important}.pe-xl-2{padding-right:.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:.25rem!important}.pb-xl-2{padding-bottom:.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:.25rem!important}.ps-xl-2{padding-left:.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: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:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.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:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.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:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.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:.25rem!important}.mt-xxl-2{margin-top:.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:.25rem!important}.me-xxl-2{margin-right:.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:.25rem!important}.mb-xxl-2{margin-bottom:.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:.25rem!important}.ms-xxl-2{margin-left:.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:.25rem!important}.p-xxl-2{padding:.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:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.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:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.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:.25rem!important}.pt-xxl-2{padding-top:.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:.25rem!important}.pe-xxl-2{padding-right:.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:.25rem!important}.pb-xxl-2{padding-bottom:.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:.25rem!important}.ps-xxl-2{padding-left:.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: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:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.awssld__container figure,.awssld__content,.awssld__box{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.awssld__controls button,.awssld__bullets button{outline-color:0;outline-style:none;outline-width:0}.awssld{--organic-arrow-thickness: 4px;--organic-arrow-height: 40px;--slider-height-percentage: 60%;--loader-bar-color: #851515;--loader-bar-height: 6px;--control-button-width: 10%;--control-button-height: 25%;--control-button-opacity: .5;--control-button-hover-opacity: .75;--control-button-background: transparent;--transition-bezier: cubic-bezier(.5, .075, .25, .95);--slider-transition-duration: 575ms;--organic-arrow-color: #6a6a6a;--organic-arrow-border-radius: 0;--control-bullet-color: #6a6a6a;--control-bullet-active-color: #6a6a6a;--content-background-color: #2f2f2f}.awssld{display:block;position:relative;width:100%;max-width:100%}.awssld__wrapper{display:block;overflow:hidden;position:relative;height:100%;width:100%}.awssld__container{display:block;width:100%;height:0;padding-bottom:var(--slider-height-percentage)}@media all and (max-width: 500px){.awssld__container{padding-bottom:calc(var(--slider-height-percentage) * 1.25)}}.awssld__startUp{background-color:red;height:100%;width:100%}.awssld__startUp>div{height:100%;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.awssld__startUp img{width:35%;height:auto}.awssld__content{background-color:var(--content-background-color);overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.awssld__content>img,.awssld__content>video{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.awssld__controls button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:var(--control-button-width);height:var(--control-button-height);position:absolute;z-index:10;top:calc(50% - (.5 * var(--control-button-height)));border:none;background-color:var(--control-button-background);color:#fff;cursor:pointer}.awssld__controls button .awssld__controls__arrow-left,.awssld__controls button .awssld__controls__arrow-right{opacity:var(--control-button-opacity)}.awssld__controls button:hover .awssld__controls__arrow-left,.awssld__controls button:hover .awssld__controls__arrow-right{opacity:var(--control-button-opacity-hover)}.awssld__controls--active .awssld__controls__arrow-left{opacity:var(--control-button-opacity-hover);-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.awssld__controls--active .awssld__controls__arrow-right{opacity:var(--control-button-opacity-hover);-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.awssld__controls--hidden{display:none}@media all and (max-width: 520px){.awssld__controls{visibility:hidden}}.awssld__bar{display:block;width:100%;height:var(--loader-bar-height);background-color:var(--loader-bar-color);position:absolute;top:0;left:0;z-index:101;-webkit-transition:-webkit-transform 3s var(--transition-bezier);transition:-webkit-transform 3s var(--transition-bezier);transition:transform 3s var(--transition-bezier);transition:transform 3s var(--transition-bezier),-webkit-transform 3s var(--transition-bezier);-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.awssld__bar--active{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0)}.awssld__bar--end{-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}.awssld__next{right:0}.awssld__prev{left:0}.awssld__box{z-index:1;visibility:hidden}.awssld--animated{will-change:transform;visibility:visible}.awssld--animated-mobile{will-change:transform;-webkit-transition:-webkit-transform 325ms cubic-bezier(.15,.65,.1,1);transition:-webkit-transform 325ms cubic-bezier(.15,.65,.1,1);transition:transform 325ms cubic-bezier(.15,.65,.1,1);transition:transform 325ms cubic-bezier(.15,.65,.1,1),-webkit-transform 325ms cubic-bezier(.15,.65,.1,1)}.awssld--active{visibility:visible;z-index:2;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}.awssld--moveRight,.awssld--moveLeft{-webkit-backface-visibility:hidden;backface-visibility:hidden}.awssld--moveRight{-webkit-animation:slideFromRight var(--slider-transition-duration) both var(--transition-bezier);animation:slideFromRight var(--slider-transition-duration) both var(--transition-bezier)}.awssld--moveLeft{-webkit-animation:slideFromLeft var(--slider-transition-duration) both var(--transition-bezier);animation:slideFromLeft var(--slider-transition-duration) both var(--transition-bezier)}.awssld--exit{z-index:0}.awssld--exit.awssld--moveLeft{-webkit-animation:slideToLeft var(--slider-transition-duration) both var(--transition-bezier);animation:slideToLeft var(--slider-transition-duration) both var(--transition-bezier)}.awssld--exit.awssld--moveRight{-webkit-animation:slideToRight var(--slider-transition-duration) both var(--transition-bezier);animation:slideToRight var(--slider-transition-duration) both var(--transition-bezier)}.awssld--first .awssld__prev,.awssld--last .awssld__next{visibility:hidden}.awssld--fill-parent{position:absolute!important;width:100%!important;height:100%!important;top:0;left:0}.awssld--fill-parent .awssld__container{height:100%;padding:0}.awssld__bullets{position:absolute;bottom:-40px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.awssld__bullets button{padding:0;display:block;width:16px;height:16px;margin:5px;border-radius:50%;background:var(--control-bullet-color);text-indent:-9999px;overflow:hidden;cursor:pointer;border:none;-webkit-transition:background-color .175s ease-out,-webkit-transform .225s cubic-bezier(.8,1.35,.75,1.45);transition:background-color .175s ease-out,-webkit-transform .225s cubic-bezier(.8,1.35,.75,1.45);transition:transform .225s cubic-bezier(.8,1.35,.75,1.45),background-color .175s ease-out;transition:transform .225s cubic-bezier(.8,1.35,.75,1.45),background-color .175s ease-out,-webkit-transform .225s cubic-bezier(.8,1.35,.75,1.45)}.awssld__bullets button:hover,.awssld__bullets .awssld__bullets--loading{-webkit-transform:scale(1.2);transform:scale(1.2)}.awssld__bullets .awssld__bullets--active{-webkit-transform:scale(1.5);transform:scale(1.5);background:var(--control-bullet-active-color)}.awssld__bullets .awssld__bullets--active:hover{-webkit-transform:scale(1.5);transform:scale(1.5)}.awssld__controls__arrow-left,.awssld__controls__arrow-right{width:100%;height:var(--organic-arrow-height);position:relative;display:block;-webkit-transition:opacity .2s ease-out,-webkit-transform .2s ease-out .125s;transition:opacity .2s ease-out,-webkit-transform .2s ease-out .125s;transition:transform .2s ease-out .125s,opacity .2s ease-out;transition:transform .2s ease-out .125s,opacity .2s ease-out,-webkit-transform .2s ease-out .125s}.awssld__controls__arrow-left:before,.awssld__controls__arrow-left:after,.awssld__controls__arrow-right:before,.awssld__controls__arrow-right:after{content:" ";position:absolute;right:calc(50% - (.7071 * (var(--organic-arrow-height) + var(--organic-arrow-thickness))) / 2);height:100%;border-radius:var(--organic-arrow-border-radius);width:var(--organic-arrow-thickness);background-color:var(--organic-arrow-color);-webkit-transition:background-color .15s ease-out,-webkit-transform .15s ease-out;transition:background-color .15s ease-out,-webkit-transform .15s ease-out;transition:transform .15s ease-out,background-color .15s ease-out;transition:transform .15s ease-out,background-color .15s ease-out,-webkit-transform .15s ease-out}.awssld__controls__arrow-left:before,.awssld__controls__arrow-right:before{-webkit-transform-origin:100% 100% 0;transform-origin:100% 100% 0;top:-50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.awssld__controls__arrow-left:after,.awssld__controls__arrow-right:after{-webkit-transform-origin:100% 0% 0;transform-origin:100% 0% 0;top:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.awssld__controls__arrow-right--active{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.awssld__controls__arrow-right--active:after{-webkit-transform:rotate(90deg) translate3d(50%,0,0)!important;transform:rotate(90deg) translate3d(50%,0,0)!important}.awssld__controls__arrow-right--active:before{-webkit-transform:rotate(-90deg) translate3d(50%,0,0)!important;transform:rotate(-90deg) translate3d(50%,0,0)!important}.awssld__controls__arrow-left:before,.awssld__controls__arrow-left:after{right:auto;left:calc(50% - (.7071 * (var(--organic-arrow-height) + var(--organic-arrow-thickness))) / 2)}.awssld__controls__arrow-left:before{-webkit-transform-origin:0 100% 0;transform-origin:0 100% 0;top:-50%;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.awssld__controls__arrow-left:after{-webkit-transform-origin:0 0 0;transform-origin:0 0 0;top:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.awssld__controls__arrow-left--active{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.awssld__controls__arrow-left--active:after{-webkit-transform:rotate(-90deg) translate3d(-50%,0,0)!important;transform:rotate(-90deg) translate3d(-50%,0,0)!important}.awssld__controls__arrow-left--active:before{-webkit-transform:rotate(90deg) translate3d(-50%,0,0)!important;transform:rotate(90deg) translate3d(-50%,0,0)!important}.awssld__controls button:hover .awssld__controls__arrow-left:before{opacity:1;-webkit-transform:rotate(30deg);transform:rotate(30deg)}.awssld__controls button:hover .awssld__controls__arrow-left:after{opacity:1;-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}.awssld__controls button:hover .awssld__controls__arrow-right:before{opacity:1;-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}.awssld__controls button:hover .awssld__controls__arrow-right:after{opacity:1;-webkit-transform:rotate(30deg);transform:rotate(30deg)}.awssld__timer{--timer-delay: 2s;--timer-release: .2s;--timer-height: 4px;--timer-background-color: rgba(0, 0, 0, .15);width:100%;height:var(--timer-height);background-color:var(--timer-background-color);position:absolute;top:0;left:0;z-index:100;-webkit-transform:translateX(-100%);transform:translate(-100%)}.awssld__timer--animated{will-change:transform;-webkit-transition:-webkit-transform var(--timer-delay) linear;transition:-webkit-transform var(--timer-delay) linear;transition:transform var(--timer-delay) linear;transition:transform var(--timer-delay) linear,-webkit-transform var(--timer-delay) linear}.awssld__timer--run{-webkit-transform:translateX(0);transform:translate(0)}.awssld__timer--fast{-webkit-transition:-webkit-transform calc(var(--timer-release) / 2) linear;transition:-webkit-transform calc(var(--timer-release) / 2) linear;transition:transform calc(var(--timer-release) / 2) linear;transition:transform calc(var(--timer-release) / 2) linear,-webkit-transform calc(var(--timer-release) / 2) linear;-webkit-transform:translateX(-.00001px);transform:translate(-.00001px)}.awssld__timer--end{-webkit-transform:translateX(-.0001px);transform:translate(-.0001px);-webkit-transition:-webkit-transform var(--timer-release) linear;transition:-webkit-transform var(--timer-release) linear;transition:transform var(--timer-release) linear;transition:transform var(--timer-release) linear,-webkit-transform var(--timer-release) linear}.awssld__timer--hidden{display:none}@-webkit-keyframes slideFromLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes slideFromLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@-webkit-keyframes slideFromRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes slideFromRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@-webkit-keyframes slideToLeft{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideToLeft{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes slideToRight{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideToRight{0%{-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.awssld{--loader-bar-color: #0077aa !important}.question{padding-top:4px;position:relative;display:flex;flex-direction:column;align-items:center;margin:0 auto 34.5px;width:799px;min-height:151px;border-bottom:1px solid #cccccc}.question__account{color:#ccc;position:absolute;top:0px;left:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:2px solid #cccccc;border-radius:100px}.question__answers input{width:16px;height:16px}.question__title{margin-bottom:80px;text-align:center;width:638px;font-size:16px;margin-right:0}.question__answers{display:flex;margin-bottom:29.5px}.question__answers p,span{font-size:14px}.question__answer{position:relative}.question__answer span{position:absolute;top:-17px;left:3.5px}.question__answers input,p{margin-right:32px}.question__answers *:last-child{margin-right:0}.form{position:relative}.btn-box{display:flex;flex-direction:column;align-items:center}.btn-box__form-btn{background-color:#007eff;width:192px;height:33px;border-radius:12px;font-size:14px;color:#fff;font-weight:500;margin-bottom:10px}.btn-box__text{color:red;padding-left:37.5px}.header{display:flex;padding-left:40px;padding-top:14px;align-items:center;margin-bottom:55px}.header__title{font-size:20px}.header__btn{color:#bababa;font-size:15px;width:180px;height:36px;background-color:#fff;border:1px solid #cccccc;border-radius:12px;margin-right:13px}.footerHouses{margin:5% 0 0 5%}.footerBlock{width:100%;height:250px;margin-top:-.5%;background-color:#d9d9d9}*{margin:0;padding:0;box-sizing:border-box;font-family:Inter,sans-serif;color:#000}button{cursor:pointer;border:0}table{border-collapse:collapse}a{text-decoration:none}main{margin:0 5%}.horizontalLine{width:100%;height:1px;background-color:#ccc}.btnSection{display:flex;margin-top:24px}.allBtn{width:208px;height:32px;background-color:#fff;border:1px solid #ccc;border-radius:12px;font-weight:500;font-size:14px}.choiceBtn{display:flex;margin-left:auto;margin-right:auto}.btnPrevious,.btnNext{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:20px;background:#fff;box-shadow:0 0 12px #00000040}.btnNext{margin-left:10px}.pageBtn{width:36px;height:36px;margin-left:10px;background:#D9D9D9;border-radius:12px;font-weight:700;font-size:16px}.activePage{border:2px solid #175FA9;background-color:#fff;color:#175fa9} diff --git a/static/assets/index-dc786e36.js b/static/assets/index-dc786e36.js new file mode 100644 index 0000000..fcc875b --- /dev/null +++ b/static/assets/index-dc786e36.js @@ -0,0 +1,1150 @@ +var Vm=Object.defineProperty;var Km=(e,t,n)=>t in e?Vm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ie=(e,t,n)=>(Km(e,typeof t!="symbol"?t+"":t,n),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var Jt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Pn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Qm(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){if(this instanceof r){var i=[null];i.push.apply(i,arguments);var o=Function.bind.apply(t,i);return new o}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var eh={exports:{}},Ns={},th={exports:{}},ee={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Gi=Symbol.for("react.element"),Jm=Symbol.for("react.portal"),Gm=Symbol.for("react.fragment"),Ym=Symbol.for("react.strict_mode"),Xm=Symbol.for("react.profiler"),Zm=Symbol.for("react.provider"),e0=Symbol.for("react.context"),t0=Symbol.for("react.forward_ref"),n0=Symbol.for("react.suspense"),r0=Symbol.for("react.memo"),i0=Symbol.for("react.lazy"),Wu=Symbol.iterator;function o0(e){return e===null||typeof e!="object"?null:(e=Wu&&e[Wu]||e["@@iterator"],typeof e=="function"?e:null)}var nh={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},rh=Object.assign,ih={};function Wr(e,t,n){this.props=e,this.context=t,this.refs=ih,this.updater=n||nh}Wr.prototype.isReactComponent={};Wr.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Wr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function oh(){}oh.prototype=Wr.prototype;function kc(e,t,n){this.props=e,this.context=t,this.refs=ih,this.updater=n||nh}var Ec=kc.prototype=new oh;Ec.constructor=kc;rh(Ec,Wr.prototype);Ec.isPureReactComponent=!0;var qu=Array.isArray,sh=Object.prototype.hasOwnProperty,Cc={current:null},ah={key:!0,ref:!0,__self:!0,__source:!0};function lh(e,t,n){var r,i={},o=null,s=null;if(t!=null)for(r in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(o=""+t.key),t)sh.call(t,r)&&!ah.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,oe=B[ie];if(0>>1;iei(Ee,W))qei(ot,Ee)?(B[ie]=ot,B[qe]=W,ie=qe):(B[ie]=Ee,B[ue]=W,ie=ue);else if(qei(ot,W))B[ie]=ot,B[qe]=W,ie=qe;else break e}}return V}function i(B,V){var W=B.sortIndex-V.sortIndex;return W!==0?W:B.id-V.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,a=s.now();e.unstable_now=function(){return s.now()-a}}var c=[],u=[],d=1,f=null,g=3,h=!1,y=!1,_=!1,C=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function p(B){for(var V=n(u);V!==null;){if(V.callback===null)r(u);else if(V.startTime<=B)r(u),V.sortIndex=V.expirationTime,t(c,V);else break;V=n(u)}}function x(B){if(_=!1,p(B),!y)if(n(c)!==null)y=!0,J(j);else{var V=n(u);V!==null&&fe(x,V.startTime-B)}}function j(B,V){y=!1,_&&(_=!1,w(O),O=-1),h=!0;var W=g;try{for(p(V),f=n(c);f!==null&&(!(f.expirationTime>V)||B&&!H());){var ie=f.callback;if(typeof ie=="function"){f.callback=null,g=f.priorityLevel;var oe=ie(f.expirationTime<=V);V=e.unstable_now(),typeof oe=="function"?f.callback=oe:f===n(c)&&r(c),p(V)}else r(c);f=n(c)}if(f!==null)var ke=!0;else{var ue=n(u);ue!==null&&fe(x,ue.startTime-V),ke=!1}return ke}finally{f=null,g=W,h=!1}}var b=!1,k=null,O=-1,M=5,z=-1;function H(){return!(e.unstable_now()-zB||125ie?(B.sortIndex=W,t(u,B),n(c)===null&&B===n(u)&&(_?(w(O),O=-1):_=!0,fe(x,W-ie))):(B.sortIndex=oe,t(c,B),y||h||(y=!0,J(j))),B},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(B){var V=g;return function(){var W=g;g=V;try{return B.apply(this,arguments)}finally{g=W}}}})(fh);dh.exports=fh;var m0=dh.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var hh=N,ut=m0;function F(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),fl=Object.prototype.hasOwnProperty,v0=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ku={},Qu={};function y0(e){return fl.call(Qu,e)?!0:fl.call(Ku,e)?!1:v0.test(e)?Qu[e]=!0:(Ku[e]=!0,!1)}function x0(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function w0(e,t,n,r){if(t===null||typeof t>"u"||x0(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ge(e,t,n,r,i,o,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var Ue={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ue[e]=new Ge(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ue[t]=new Ge(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ue[e]=new Ge(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ue[e]=new Ge(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ue[e]=new Ge(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ue[e]=new Ge(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ue[e]=new Ge(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ue[e]=new Ge(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ue[e]=new Ge(e,5,!1,e.toLowerCase(),null,!1,!1)});var Pc=/[\-:]([a-z])/g;function Tc(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Pc,Tc);Ue[t]=new Ge(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Pc,Tc);Ue[t]=new Ge(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Pc,Tc);Ue[t]=new Ge(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ue[e]=new Ge(e,1,!1,e.toLowerCase(),null,!1,!1)});Ue.xlinkHref=new Ge("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ue[e]=new Ge(e,1,!1,e.toLowerCase(),null,!0,!0)});function Rc(e,t,n,r){var i=Ue.hasOwnProperty(t)?Ue[t]:null;(i!==null?i.type!==0:r||!(2a||i[s]!==o[a]){var c=` +`+i[s].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=s&&0<=a);break}}}finally{fa=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fi(e):""}function _0(e){switch(e.tag){case 5:return fi(e.type);case 16:return fi("Lazy");case 13:return fi("Suspense");case 19:return fi("SuspenseList");case 0:case 2:case 15:return e=ha(e.type,!1),e;case 11:return e=ha(e.type.render,!1),e;case 1:return e=ha(e.type,!0),e;default:return""}}function ml(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case dr:return"Fragment";case ur:return"Portal";case hl:return"Profiler";case Nc:return"StrictMode";case pl:return"Suspense";case gl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case mh:return(e.displayName||"Context")+".Consumer";case gh:return(e._context.displayName||"Context")+".Provider";case Ac:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ic:return t=e.displayName||null,t!==null?t:ml(e.type)||"Memo";case un:t=e._payload,e=e._init;try{return ml(e(t))}catch{}}return null}function S0(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ml(t);case 8:return t===Nc?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Cn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yh(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function j0(e){var t=yh(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(s){r=""+s,o.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function uo(e){e._valueTracker||(e._valueTracker=j0(e))}function xh(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yh(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function es(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function vl(e,t){var n=t.checked;return _e({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Gu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Cn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function wh(e,t){t=t.checked,t!=null&&Rc(e,"checked",t,!1)}function yl(e,t){wh(e,t);var n=Cn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?xl(e,t.type,n):t.hasOwnProperty("defaultValue")&&xl(e,t.type,Cn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Yu(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function xl(e,t,n){(t!=="number"||es(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var hi=Array.isArray;function jr(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=fo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Pi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var vi={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},b0=["Webkit","ms","Moz","O"];Object.keys(vi).forEach(function(e){b0.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),vi[t]=vi[e]})});function bh(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||vi.hasOwnProperty(e)&&vi[e]?(""+t).trim():t+"px"}function kh(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=bh(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var k0=_e({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Sl(e,t){if(t){if(k0[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(F(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(F(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(F(61))}if(t.style!=null&&typeof t.style!="object")throw Error(F(62))}}function jl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var bl=null;function Lc(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var kl=null,br=null,kr=null;function ed(e){if(e=Zi(e)){if(typeof kl!="function")throw Error(F(280));var t=e.stateNode;t&&(t=Ms(t),kl(e.stateNode,e.type,t))}}function Eh(e){br?kr?kr.push(e):kr=[e]:br=e}function Ch(){if(br){var e=br,t=kr;if(kr=br=null,ed(e),t)for(e=0;e>>=0,e===0?32:31-(F0(e)/M0|0)|0}var ho=64,po=4194304;function pi(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function is(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,s=n&268435455;if(s!==0){var a=s&~i;a!==0?r=pi(a):(o&=s,o!==0&&(r=pi(o)))}else s=n&~i,s!==0?r=pi(s):o!==0&&(r=pi(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Yi(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Tt(t),e[t]=n}function $0(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=xi),cd=String.fromCharCode(32),ud=!1;function Kh(e,t){switch(e){case"keyup":return gv.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var fr=!1;function vv(e,t){switch(e){case"compositionend":return Qh(t);case"keypress":return t.which!==32?null:(ud=!0,cd);case"textInput":return e=t.data,e===cd&&ud?null:e;default:return null}}function yv(e,t){if(fr)return e==="compositionend"||!Hc&&Kh(e,t)?(e=qh(),Ao=Uc=gn=null,fr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=pd(n)}}function Xh(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Xh(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Zh(){for(var e=window,t=es();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=es(e.document)}return t}function Wc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Cv(e){var t=Zh(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Xh(n.ownerDocument.documentElement,n)){if(r!==null&&Wc(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=gd(n,o);var s=gd(n,r);i&&s&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,hr=null,Rl=null,_i=null,Nl=!1;function md(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Nl||hr==null||hr!==es(r)||(r=hr,"selectionStart"in r&&Wc(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),_i&&Li(_i,r)||(_i=r,r=as(Rl,"onSelect"),0mr||(e.current=zl[mr],zl[mr]=null,mr--)}function de(e,t){mr++,zl[mr]=e.current,e.current=t}var On={},We=Rn(On),nt=Rn(!1),Jn=On;function Nr(e,t){var n=e.type.contextTypes;if(!n)return On;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function rt(e){return e=e.childContextTypes,e!=null}function cs(){ge(nt),ge(We)}function jd(e,t,n){if(We.current!==On)throw Error(F(168));de(We,t),de(nt,n)}function lp(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(F(108,S0(e)||"Unknown",i));return _e({},n,r)}function us(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||On,Jn=We.current,de(We,e),de(nt,nt.current),!0}function bd(e,t,n){var r=e.stateNode;if(!r)throw Error(F(169));n?(e=lp(e,t,Jn),r.__reactInternalMemoizedMergedChildContext=e,ge(nt),ge(We),de(We,e)):ge(nt),de(nt,n)}var Kt=null,zs=!1,Ca=!1;function cp(e){Kt===null?Kt=[e]:Kt.push(e)}function Bv(e){zs=!0,cp(e)}function Nn(){if(!Ca&&Kt!==null){Ca=!0;var e=0,t=ce;try{var n=Kt;for(ce=1;e>=s,i-=s,Gt=1<<32-Tt(t)+i|n<O?(M=k,k=null):M=k.sibling;var z=g(w,k,p[O],x);if(z===null){k===null&&(k=M);break}e&&k&&z.alternate===null&&t(w,k),m=o(z,m,O),b===null?j=z:b.sibling=z,b=z,k=M}if(O===p.length)return n(w,k),ve&&Ln(w,O),j;if(k===null){for(;OO?(M=k,k=null):M=k.sibling;var H=g(w,k,z.value,x);if(H===null){k===null&&(k=M);break}e&&k&&H.alternate===null&&t(w,k),m=o(H,m,O),b===null?j=H:b.sibling=H,b=H,k=M}if(z.done)return n(w,k),ve&&Ln(w,O),j;if(k===null){for(;!z.done;O++,z=p.next())z=f(w,z.value,x),z!==null&&(m=o(z,m,O),b===null?j=z:b.sibling=z,b=z);return ve&&Ln(w,O),j}for(k=r(w,k);!z.done;O++,z=p.next())z=h(k,w,O,z.value,x),z!==null&&(e&&z.alternate!==null&&k.delete(z.key===null?O:z.key),m=o(z,m,O),b===null?j=z:b.sibling=z,b=z);return e&&k.forEach(function(te){return t(w,te)}),ve&&Ln(w,O),j}function C(w,m,p,x){if(typeof p=="object"&&p!==null&&p.type===dr&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case co:e:{for(var j=p.key,b=m;b!==null;){if(b.key===j){if(j=p.type,j===dr){if(b.tag===7){n(w,b.sibling),m=i(b,p.props.children),m.return=w,w=m;break e}}else if(b.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===un&&Rd(j)===b.type){n(w,b.sibling),m=i(b,p.props),m.ref=ii(w,b,p),m.return=w,w=m;break e}n(w,b);break}else t(w,b);b=b.sibling}p.type===dr?(m=qn(p.props.children,w.mode,x,p.key),m.return=w,w=m):(x=$o(p.type,p.key,p.props,null,w.mode,x),x.ref=ii(w,m,p),x.return=w,w=x)}return s(w);case ur:e:{for(b=p.key;m!==null;){if(m.key===b)if(m.tag===4&&m.stateNode.containerInfo===p.containerInfo&&m.stateNode.implementation===p.implementation){n(w,m.sibling),m=i(m,p.children||[]),m.return=w,w=m;break e}else{n(w,m);break}else t(w,m);m=m.sibling}m=La(p,w.mode,x),m.return=w,w=m}return s(w);case un:return b=p._init,C(w,m,b(p._payload),x)}if(hi(p))return y(w,m,p,x);if(Zr(p))return _(w,m,p,x);_o(w,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,m!==null&&m.tag===6?(n(w,m.sibling),m=i(m,p),m.return=w,w=m):(n(w,m),m=Ia(p,w.mode,x),m.return=w,w=m),s(w)):n(w,m)}return C}var Ir=vp(!0),yp=vp(!1),eo={},Ht=Rn(eo),Bi=Rn(eo),Ui=Rn(eo);function Un(e){if(e===eo)throw Error(F(174));return e}function Zc(e,t){switch(de(Ui,t),de(Bi,e),de(Ht,eo),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:_l(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=_l(t,e)}ge(Ht),de(Ht,t)}function Lr(){ge(Ht),ge(Bi),ge(Ui)}function xp(e){Un(Ui.current);var t=Un(Ht.current),n=_l(t,e.type);t!==n&&(de(Bi,e),de(Ht,n))}function eu(e){Bi.current===e&&(ge(Ht),ge(Bi))}var xe=Rn(0);function ms(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Oa=[];function tu(){for(var e=0;en?n:4,e(!0);var r=Pa.transition;Pa.transition={};try{e(!1),t()}finally{ce=n,Pa.transition=r}}function Lp(){return St().memoizedState}function Hv(e,t,n){var r=bn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Fp(e))Mp(t,n);else if(n=hp(e,t,n,r),n!==null){var i=Qe();Rt(n,e,r,i),zp(n,t,r)}}function Wv(e,t,n){var r=bn(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Fp(e))Mp(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var s=t.lastRenderedState,a=o(s,n);if(i.hasEagerState=!0,i.eagerState=a,At(a,s)){var c=t.interleaved;c===null?(i.next=i,Yc(t)):(i.next=c.next,c.next=i),t.interleaved=i;return}}catch{}finally{}n=hp(e,t,i,r),n!==null&&(i=Qe(),Rt(n,e,r,i),zp(n,t,r))}}function Fp(e){var t=e.alternate;return e===we||t!==null&&t===we}function Mp(e,t){Si=vs=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function zp(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Mc(e,n)}}var ys={readContext:_t,useCallback:$e,useContext:$e,useEffect:$e,useImperativeHandle:$e,useInsertionEffect:$e,useLayoutEffect:$e,useMemo:$e,useReducer:$e,useRef:$e,useState:$e,useDebugValue:$e,useDeferredValue:$e,useTransition:$e,useMutableSource:$e,useSyncExternalStore:$e,useId:$e,unstable_isNewReconciler:!1},qv={readContext:_t,useCallback:function(e,t){return Lt().memoizedState=[e,t===void 0?null:t],e},useContext:_t,useEffect:Ad,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Mo(4194308,4,Tp.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Mo(4194308,4,e,t)},useInsertionEffect:function(e,t){return Mo(4,2,e,t)},useMemo:function(e,t){var n=Lt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Lt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Hv.bind(null,we,e),[r.memoizedState,e]},useRef:function(e){var t=Lt();return e={current:e},t.memoizedState=e},useState:Nd,useDebugValue:su,useDeferredValue:function(e){return Lt().memoizedState=e},useTransition:function(){var e=Nd(!1),t=e[0];return e=Dv.bind(null,e[1]),Lt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=we,i=Lt();if(ve){if(n===void 0)throw Error(F(407));n=n()}else{if(n=t(),Me===null)throw Error(F(349));Yn&30||Sp(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,Ad(bp.bind(null,r,o,e),[e]),r.flags|=2048,Hi(9,jp.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Lt(),t=Me.identifierPrefix;if(ve){var n=Yt,r=Gt;n=(r&~(1<<32-Tt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=$i++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),n==="select"&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Bt]=t,e[zi]=r,Kp(e,t,!1,!1),t.stateNode=e;e:{switch(s=jl(n,r),n){case"dialog":he("cancel",e),he("close",e),i=r;break;case"iframe":case"object":case"embed":he("load",e),i=r;break;case"video":case"audio":for(i=0;iMr&&(t.flags|=128,r=!0,oi(o,!1),t.lanes=4194304)}else{if(!r)if(e=ms(s),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),oi(o,!0),o.tail===null&&o.tailMode==="hidden"&&!s.alternate&&!ve)return De(t),null}else 2*be()-o.renderingStartTime>Mr&&n!==1073741824&&(t.flags|=128,r=!0,oi(o,!1),t.lanes=4194304);o.isBackwards?(s.sibling=t.child,t.child=s):(n=o.last,n!==null?n.sibling=s:t.child=s,o.last=s)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=be(),t.sibling=null,n=xe.current,de(xe,r?n&1|2:n&1),t):(De(t),null);case 22:case 23:return fu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?st&1073741824&&(De(t),t.subtreeFlags&6&&(t.flags|=8192)):De(t),null;case 24:return null;case 25:return null}throw Error(F(156,t.tag))}function Zv(e,t){switch(Vc(t),t.tag){case 1:return rt(t.type)&&cs(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Lr(),ge(nt),ge(We),tu(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return eu(t),null;case 13:if(ge(xe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(F(340));Ar()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ge(xe),null;case 4:return Lr(),null;case 10:return Gc(t.type._context),null;case 22:case 23:return fu(),null;case 24:return null;default:return null}}var jo=!1,He=!1,ey=typeof WeakSet=="function"?WeakSet:Set,D=null;function wr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){je(e,t,r)}else n.current=null}function Gl(e,t,n){try{n()}catch(r){je(e,t,r)}}var Dd=!1;function ty(e,t){if(Al=os,e=Zh(),Wc(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var s=0,a=-1,c=-1,u=0,d=0,f=e,g=null;t:for(;;){for(var h;f!==n||i!==0&&f.nodeType!==3||(a=s+i),f!==o||r!==0&&f.nodeType!==3||(c=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(h=f.firstChild)!==null;)g=f,f=h;for(;;){if(f===e)break t;if(g===n&&++u===i&&(a=s),g===o&&++d===r&&(c=s),(h=f.nextSibling)!==null)break;f=g,g=f.parentNode}f=h}n=a===-1||c===-1?null:{start:a,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Il={focusedElem:e,selectionRange:n},os=!1,D=t;D!==null;)if(t=D,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,D=e;else for(;D!==null;){t=D;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var _=y.memoizedProps,C=y.memoizedState,w=t.stateNode,m=w.getSnapshotBeforeUpdate(t.elementType===t.type?_:Ct(t.type,_),C);w.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var p=t.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(F(163))}}catch(x){je(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,D=e;break}D=t.return}return y=Dd,Dd=!1,y}function ji(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&Gl(t,n,o)}i=i.next}while(i!==r)}}function $s(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Yl(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Gp(e){var t=e.alternate;t!==null&&(e.alternate=null,Gp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Bt],delete t[zi],delete t[Ml],delete t[Mv],delete t[zv])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Yp(e){return e.tag===5||e.tag===3||e.tag===4}function Hd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Yp(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Xl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ls));else if(r!==4&&(e=e.child,e!==null))for(Xl(e,t,n),e=e.sibling;e!==null;)Xl(e,t,n),e=e.sibling}function Zl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Zl(e,t,n),e=e.sibling;e!==null;)Zl(e,t,n),e=e.sibling}var ze=null,Ot=!1;function an(e,t,n){for(n=n.child;n!==null;)Xp(e,t,n),n=n.sibling}function Xp(e,t,n){if(Dt&&typeof Dt.onCommitFiberUnmount=="function")try{Dt.onCommitFiberUnmount(As,n)}catch{}switch(n.tag){case 5:He||wr(n,t);case 6:var r=ze,i=Ot;ze=null,an(e,t,n),ze=r,Ot=i,ze!==null&&(Ot?(e=ze,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ze.removeChild(n.stateNode));break;case 18:ze!==null&&(Ot?(e=ze,n=n.stateNode,e.nodeType===8?Ea(e.parentNode,n):e.nodeType===1&&Ea(e,n),Ai(e)):Ea(ze,n.stateNode));break;case 4:r=ze,i=Ot,ze=n.stateNode.containerInfo,Ot=!0,an(e,t,n),ze=r,Ot=i;break;case 0:case 11:case 14:case 15:if(!He&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,s=o.destroy;o=o.tag,s!==void 0&&(o&2||o&4)&&Gl(n,t,s),i=i.next}while(i!==r)}an(e,t,n);break;case 1:if(!He&&(wr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){je(n,t,a)}an(e,t,n);break;case 21:an(e,t,n);break;case 22:n.mode&1?(He=(r=He)||n.memoizedState!==null,an(e,t,n),He=r):an(e,t,n);break;default:an(e,t,n)}}function Wd(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new ey),t.forEach(function(r){var i=uy.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Et(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=s),r&=~o}if(r=i,r=be()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ry(r/1960))-r,10e?16:e,mn===null)var r=!1;else{if(e=mn,mn=null,_s=0,re&6)throw Error(F(331));var i=re;for(re|=4,D=e.current;D!==null;){var o=D,s=o.child;if(D.flags&16){var a=o.deletions;if(a!==null){for(var c=0;cbe()-uu?Wn(e,0):cu|=n),it(e,t)}function sg(e,t){t===0&&(e.mode&1?(t=po,po<<=1,!(po&130023424)&&(po=4194304)):t=1);var n=Qe();e=nn(e,t),e!==null&&(Yi(e,t,n),it(e,n))}function cy(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),sg(e,n)}function uy(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(F(314))}r!==null&&r.delete(t),sg(e,n)}var ag;ag=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||nt.current)et=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return et=!1,Yv(e,t,n);et=!!(e.flags&131072)}else et=!1,ve&&t.flags&1048576&&up(t,fs,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;zo(e,t),e=t.pendingProps;var i=Nr(t,We.current);Cr(t,n),i=ru(null,t,r,e,i,n);var o=iu();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,rt(r)?(o=!0,us(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Xc(t),i.updater=Bs,t.stateNode=i,i._reactInternals=t,Hl(t,r,e,n),t=Vl(null,t,r,!0,o,n)):(t.tag=0,ve&&o&&qc(t),Ke(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(zo(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=fy(r),e=Ct(r,e),i){case 0:t=ql(null,t,r,e,n);break e;case 1:t=Bd(null,t,r,e,n);break e;case 11:t=Md(null,t,r,e,n);break e;case 14:t=zd(null,t,r,Ct(r.type,e),n);break e}throw Error(F(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ct(r,i),ql(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ct(r,i),Bd(e,t,r,i,n);case 3:e:{if(Wp(t),e===null)throw Error(F(387));r=t.pendingProps,o=t.memoizedState,i=o.element,pp(e,t),gs(t,r,null,n);var s=t.memoizedState;if(r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Fr(Error(F(423)),t),t=Ud(e,t,r,n,i);break e}else if(r!==i){i=Fr(Error(F(424)),t),t=Ud(e,t,r,n,i);break e}else for(lt=_n(t.stateNode.containerInfo.firstChild),ct=t,ve=!0,Pt=null,n=yp(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ar(),r===i){t=rn(e,t,n);break e}Ke(e,t,r,n)}t=t.child}return t;case 5:return xp(t),e===null&&Ul(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,s=i.children,Ll(r,i)?s=null:o!==null&&Ll(r,o)&&(t.flags|=32),Hp(e,t),Ke(e,t,s,n),t.child;case 6:return e===null&&Ul(t),null;case 13:return qp(e,t,n);case 4:return Zc(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ir(t,null,r,n):Ke(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ct(r,i),Md(e,t,r,i,n);case 7:return Ke(e,t,t.pendingProps,n),t.child;case 8:return Ke(e,t,t.pendingProps.children,n),t.child;case 12:return Ke(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,s=i.value,de(hs,r._currentValue),r._currentValue=s,o!==null)if(At(o.value,s)){if(o.children===i.children&&!nt.current){t=rn(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){s=o.child;for(var c=a.firstContext;c!==null;){if(c.context===r){if(o.tag===1){c=Xt(-1,n&-n),c.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),$l(o.return,n,t),a.lanes|=n;break}c=c.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(F(341));s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),$l(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}Ke(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Cr(t,n),i=_t(i),r=r(i),t.flags|=1,Ke(e,t,r,n),t.child;case 14:return r=t.type,i=Ct(r,t.pendingProps),i=Ct(r.type,i),zd(e,t,r,i,n);case 15:return $p(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ct(r,i),zo(e,t),t.tag=1,rt(r)?(e=!0,us(t)):e=!1,Cr(t,n),mp(t,r,i),Hl(t,r,i,n),Vl(null,t,r,!0,e,n);case 19:return Vp(e,t,n);case 22:return Dp(e,t,n)}throw Error(F(156,t.tag))};function lg(e,t){return Ih(e,t)}function dy(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function vt(e,t,n,r){return new dy(e,t,n,r)}function pu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function fy(e){if(typeof e=="function")return pu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ac)return 11;if(e===Ic)return 14}return 2}function kn(e,t){var n=e.alternate;return n===null?(n=vt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function $o(e,t,n,r,i,o){var s=2;if(r=e,typeof e=="function")pu(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case dr:return qn(n.children,i,o,t);case Nc:s=8,i|=8;break;case hl:return e=vt(12,n,t,i|2),e.elementType=hl,e.lanes=o,e;case pl:return e=vt(13,n,t,i),e.elementType=pl,e.lanes=o,e;case gl:return e=vt(19,n,t,i),e.elementType=gl,e.lanes=o,e;case vh:return Hs(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gh:s=10;break e;case mh:s=9;break e;case Ac:s=11;break e;case Ic:s=14;break e;case un:s=16,r=null;break e}throw Error(F(130,e==null?e:typeof e,""))}return t=vt(s,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function qn(e,t,n,r){return e=vt(7,e,r,t),e.lanes=n,e}function Hs(e,t,n,r){return e=vt(22,e,r,t),e.elementType=vh,e.lanes=n,e.stateNode={isHidden:!1},e}function Ia(e,t,n){return e=vt(6,e,null,t),e.lanes=n,e}function La(e,t,n){return t=vt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function hy(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ga(0),this.expirationTimes=ga(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ga(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function gu(e,t,n,r,i,o,s,a,c){return e=new hy(e,t,n,a,c),t===1?(t=1,o===!0&&(t|=8)):t=0,o=vt(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Xc(o),e}function py(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(fg)}catch(e){console.error(e)}}fg(),uh.exports=dt;var xy=uh.exports,Xd=xy;dl.createRoot=Xd.createRoot,dl.hydrateRoot=Xd.hydrateRoot;/** + * @remix-run/router v1.6.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function qi(){return qi=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function xu(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function _y(){return Math.random().toString(36).substr(2,8)}function ef(e,t){return{usr:e.state,key:e.key,idx:t}}function ic(e,t,n,r){return n===void 0&&(n=null),qi({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Kr(t):t,{state:n,key:t&&t.key||r||_y()})}function bs(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Kr(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Sy(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:o=!1}=r,s=i.history,a=vn.Pop,c=null,u=d();u==null&&(u=0,s.replaceState(qi({},s.state,{idx:u}),""));function d(){return(s.state||{idx:null}).idx}function f(){a=vn.Pop;let C=d(),w=C==null?null:C-u;u=C,c&&c({action:a,location:_.location,delta:w})}function g(C,w){a=vn.Push;let m=ic(_.location,C,w);n&&n(m,C),u=d()+1;let p=ef(m,u),x=_.createHref(m);try{s.pushState(p,"",x)}catch{i.location.assign(x)}o&&c&&c({action:a,location:_.location,delta:1})}function h(C,w){a=vn.Replace;let m=ic(_.location,C,w);n&&n(m,C),u=d();let p=ef(m,u),x=_.createHref(m);s.replaceState(p,"",x),o&&c&&c({action:a,location:_.location,delta:0})}function y(C){let w=i.location.origin!=="null"?i.location.origin:i.location.href,m=typeof C=="string"?C:bs(C);return Pe(w,"No window.location.(origin|href) available to create URL for href: "+m),new URL(m,w)}let _={get action(){return a},get location(){return e(i,s)},listen(C){if(c)throw new Error("A history only accepts one active listener");return i.addEventListener(Zd,f),c=C,()=>{i.removeEventListener(Zd,f),c=null}},createHref(C){return t(i,C)},createURL:y,encodeLocation(C){let w=y(C);return{pathname:w.pathname,search:w.search,hash:w.hash}},push:g,replace:h,go(C){return s.go(C)}};return _}var tf;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(tf||(tf={}));function jy(e,t,n){n===void 0&&(n="/");let r=typeof t=="string"?Kr(t):t,i=wu(r.pathname||"/",n);if(i==null)return null;let o=hg(e);by(o);let s=null;for(let a=0;s==null&&a{let c={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};c.relativePath.startsWith("/")&&(Pe(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=En([r,c.relativePath]),d=n.concat(c);o.children&&o.children.length>0&&(Pe(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),hg(o.children,t,d,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:Ry(u,o.index),routesMeta:d})};return e.forEach((o,s)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))i(o,s);else for(let c of pg(o.path))i(o,s,c)}),t}function pg(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return i?[o,""]:[o];let s=pg(r.join("/")),a=[];return a.push(...s.map(c=>c===""?o:[o,c].join("/"))),i&&a.push(...s),a.map(c=>e.startsWith("/")&&c===""?"/":c)}function by(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Ny(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const ky=/^:\w+$/,Ey=3,Cy=2,Oy=1,Py=10,Ty=-2,nf=e=>e==="*";function Ry(e,t){let n=e.split("/"),r=n.length;return n.some(nf)&&(r+=Ty),t&&(r+=Cy),n.filter(i=>!nf(i)).reduce((i,o)=>i+(ky.test(o)?Ey:o===""?Oy:Py),r)}function Ny(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function Ay(e,t){let{routesMeta:n}=e,r={},i="/",o=[];for(let s=0;s{if(d==="*"){let g=a[f]||"";s=o.slice(0,o.length-g.length).replace(/(.)\/+$/,"$1")}return u[d]=My(a[f]||"",d),u},{}),pathname:o,pathnameBase:s,pattern:e}}function Ly(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),xu(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/\/:(\w+)/g,(s,a)=>(r.push(a),"/([^\\/]+)"));return e.endsWith("*")?(r.push("*"),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function Fy(e){try{return decodeURI(e)}catch(t){return xu(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function My(e,t){try{return decodeURIComponent(e)}catch(n){return xu(!1,'The value for the URL param "'+t+'" will not be decoded because'+(' the string "'+e+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+n+").")),e}}function wu(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function zy(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Kr(e):e;return{pathname:n?n.startsWith("/")?n:By(n,t):t,search:$y(r),hash:Dy(i)}}function By(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function Fa(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function gg(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function mg(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=Kr(e):(i=qi({},e),Pe(!i.pathname||!i.pathname.includes("?"),Fa("?","pathname","search",i)),Pe(!i.pathname||!i.pathname.includes("#"),Fa("#","pathname","hash",i)),Pe(!i.search||!i.search.includes("#"),Fa("#","search","hash",i)));let o=e===""||i.pathname==="",s=o?"/":i.pathname,a;if(r||s==null)a=n;else{let f=t.length-1;if(s.startsWith("..")){let g=s.split("/");for(;g[0]==="..";)g.shift(),f-=1;i.pathname=g.join("/")}a=f>=0?t[f]:"/"}let c=zy(i,a),u=s&&s!=="/"&&s.endsWith("/"),d=(o||s===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const En=e=>e.join("/").replace(/\/\/+/g,"/"),Uy=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),$y=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Dy=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function Hy(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const vg=["post","put","patch","delete"];new Set(vg);const Wy=["get",...vg];new Set(Wy);/** + * React Router v6.11.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function ks(){return ks=Object.assign?Object.assign.bind():function(e){for(var t=1;ta.pathnameBase)),o=N.useRef(!1);return wg(()=>{o.current=!0}),N.useCallback(function(a,c){if(c===void 0&&(c={}),!o.current)return;if(typeof a=="number"){t.go(a);return}let u=mg(a,JSON.parse(i),r,c.relative==="path");e!=="/"&&(u.pathname=u.pathname==="/"?e:En([e,u.pathname])),(c.replace?t.replace:t.push)(u,c.state,c)},[e,t,i,r])}function Qy(){let{matches:e}=N.useContext(An),t=e[e.length-1];return t?t.params:{}}function Sg(e,t){let{relative:n}=t===void 0?{}:t,{matches:r}=N.useContext(An),{pathname:i}=Js(),o=JSON.stringify(gg(r).map(s=>s.pathnameBase));return N.useMemo(()=>mg(e,JSON.parse(o),i,n==="path"),[e,o,i,n])}function Jy(e,t){return Gy(e,t)}function Gy(e,t,n){to()||Pe(!1);let{navigator:r}=N.useContext(Qr),{matches:i}=N.useContext(An),o=i[i.length-1],s=o?o.params:{};o&&o.pathname;let a=o?o.pathnameBase:"/";o&&o.route;let c=Js(),u;if(t){var d;let _=typeof t=="string"?Kr(t):t;a==="/"||(d=_.pathname)!=null&&d.startsWith(a)||Pe(!1),u=_}else u=c;let f=u.pathname||"/",g=a==="/"?f:f.slice(a.length)||"/",h=jy(e,{pathname:g}),y=tx(h&&h.map(_=>Object.assign({},_,{params:Object.assign({},s,_.params),pathname:En([a,r.encodeLocation?r.encodeLocation(_.pathname).pathname:_.pathname]),pathnameBase:_.pathnameBase==="/"?a:En([a,r.encodeLocation?r.encodeLocation(_.pathnameBase).pathname:_.pathnameBase])})),i,n);return t&&y?N.createElement(Qs.Provider,{value:{location:ks({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:vn.Pop}},y):y}function Yy(){let e=ox(),t=Hy(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"},o=null;return N.createElement(N.Fragment,null,N.createElement("h2",null,"Unexpected Application Error!"),N.createElement("h3",{style:{fontStyle:"italic"}},t),n?N.createElement("pre",{style:i},n):null,o)}const Xy=N.createElement(Yy,null);class Zy extends N.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error||n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error?N.createElement(An.Provider,{value:this.props.routeContext},N.createElement(xg.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function ex(e){let{routeContext:t,match:n,children:r}=e,i=N.useContext(yg);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),N.createElement(An.Provider,{value:t},r)}function tx(e,t,n){var r;if(t===void 0&&(t=[]),n===void 0&&(n=null),e==null){var i;if((i=n)!=null&&i.errors)e=n.matches;else return null}let o=e,s=(r=n)==null?void 0:r.errors;if(s!=null){let a=o.findIndex(c=>c.route.id&&(s==null?void 0:s[c.route.id]));a>=0||Pe(!1),o=o.slice(0,Math.min(o.length,a+1))}return o.reduceRight((a,c,u)=>{let d=c.route.id?s==null?void 0:s[c.route.id]:null,f=null;n&&(f=c.route.errorElement||Xy);let g=t.concat(o.slice(0,u+1)),h=()=>{let y;return d?y=f:c.route.Component?y=N.createElement(c.route.Component,null):c.route.element?y=c.route.element:y=a,N.createElement(ex,{match:c,routeContext:{outlet:a,matches:g,isDataRoute:n!=null},children:y})};return n&&(c.route.ErrorBoundary||c.route.errorElement||u===0)?N.createElement(Zy,{location:n.location,revalidation:n.revalidation,component:f,error:d,children:h(),routeContext:{outlet:null,matches:g,isDataRoute:!0}}):h()},null)}var oc;(function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate"})(oc||(oc={}));var Vi;(function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId"})(Vi||(Vi={}));function nx(e){let t=N.useContext(yg);return t||Pe(!1),t}function rx(e){let t=N.useContext(qy);return t||Pe(!1),t}function ix(e){let t=N.useContext(An);return t||Pe(!1),t}function jg(e){let t=ix(),n=t.matches[t.matches.length-1];return n.route.id||Pe(!1),n.route.id}function ox(){var e;let t=N.useContext(xg),n=rx(Vi.UseRouteError),r=jg(Vi.UseRouteError);return t||((e=n.errors)==null?void 0:e[r])}function sx(){let{router:e}=nx(oc.UseNavigateStable),t=jg(Vi.UseNavigateStable),n=N.useRef(!1);return wg(()=>{n.current=!0}),N.useCallback(function(i,o){o===void 0&&(o={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,ks({fromRouteId:t},o)))},[e,t])}function bg(e){Pe(!1)}function ax(e){let{basename:t="/",children:n=null,location:r,navigationType:i=vn.Pop,navigator:o,static:s=!1}=e;to()&&Pe(!1);let a=t.replace(/^\/*/,"/"),c=N.useMemo(()=>({basename:a,navigator:o,static:s}),[a,o,s]);typeof r=="string"&&(r=Kr(r));let{pathname:u="/",search:d="",hash:f="",state:g=null,key:h="default"}=r,y=N.useMemo(()=>{let _=wu(u,a);return _==null?null:{location:{pathname:_,search:d,hash:f,state:g,key:h},navigationType:i}},[a,u,d,f,g,h,i]);return y==null?null:N.createElement(Qr.Provider,{value:c},N.createElement(Qs.Provider,{children:n,value:y}))}function lx(e){let{children:t,location:n}=e;return Jy(sc(t),n)}var rf;(function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"})(rf||(rf={}));new Promise(()=>{});function sc(e,t){t===void 0&&(t=[]);let n=[];return N.Children.forEach(e,(r,i)=>{if(!N.isValidElement(r))return;let o=[...t,i];if(r.type===N.Fragment){n.push.apply(n,sc(r.props.children,o));return}r.type!==bg&&Pe(!1),!r.props.index||!r.props.children||Pe(!1);let s={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(s.children=sc(r.props.children,o)),n.push(s)}),n}/** + * React Router DOM v6.11.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function ac(){return ac=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function ux(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function dx(e,t){return e.button===0&&(!t||t==="_self")&&!ux(e)}const fx=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset"];function hx(e){let{basename:t,children:n,window:r}=e,i=N.useRef();i.current==null&&(i.current=wy({window:r,v5Compat:!0}));let o=i.current,[s,a]=N.useState({action:o.action,location:o.location});return N.useLayoutEffect(()=>o.listen(a),[o]),N.createElement(ax,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:o})}const px=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",gx=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Mn=N.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:o,replace:s,state:a,target:c,to:u,preventScrollReset:d}=t,f=cx(t,fx),{basename:g}=N.useContext(Qr),h,y=!1;if(typeof u=="string"&&gx.test(u)&&(h=u,px))try{let m=new URL(window.location.href),p=u.startsWith("//")?new URL(m.protocol+u):new URL(u),x=wu(p.pathname,g);p.origin===m.origin&&x!=null?u=x+p.search+p.hash:y=!0}catch{}let _=Vy(u,{relative:i}),C=mx(u,{replace:s,state:a,target:c,preventScrollReset:d,relative:i});function w(m){r&&r(m),m.defaultPrevented||C(m)}return N.createElement("a",ac({},f,{href:h||_,onClick:y||o?r:w,ref:n,target:c}))});var of;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmitImpl="useSubmitImpl",e.UseFetcher="useFetcher"})(of||(of={}));var sf;(function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(sf||(sf={}));function mx(e,t){let{target:n,replace:r,state:i,preventScrollReset:o,relative:s}=t===void 0?{}:t,a=_g(),c=Js(),u=Sg(e,{relative:s});return N.useCallback(d=>{if(dx(d,n)){d.preventDefault();let f=r!==void 0?r:bs(c)===bs(u);a(e,{replace:f,state:i,preventScrollReset:o,relative:s})}},[c,a,u,r,i,n,e,o,s])}var tt=function(){return tt=Object.assign||function(t){for(var n,r=1,i=arguments.length;r0?Fe(Jr,--jt):0,Br--,Ce===10&&(Br=1,Ys--),Ce}function Nt(){return Ce=jt2||lc(Ce)>3?"":" "}function Ox(e,t){for(;--t&&Nt()&&!(Ce<48||Ce>102||Ce>57&&Ce<65||Ce>70&&Ce<97););return Zs(e,Ho()+(t<6&&Vn()==32&&Nt()==32))}function cc(e){for(;Nt();)switch(Ce){case e:return jt;case 34:case 39:e!==34&&e!==39&&cc(Ce);break;case 40:e===41&&cc(e);break;case 92:Nt();break}return jt}function Px(e,t){for(;Nt()&&e+Ce!==47+10;)if(e+Ce===42+42&&Vn()===47)break;return"/*"+Zs(t,jt-1)+"*"+Su(e===47?e:Nt())}function Tx(e){for(;!lc(Vn());)Nt();return Zs(e,jt)}function Rx(e){return Ex(Wo("",null,null,null,[""],e=kx(e),0,[0],e))}function Wo(e,t,n,r,i,o,s,a,c){for(var u=0,d=0,f=s,g=0,h=0,y=0,_=1,C=1,w=1,m=0,p="",x=i,j=o,b=r,k=p;C;)switch(y=m,m=Nt()){case 40:if(y!=108&&Fe(k,f-1)==58){Do(k+=Z(Ma(m),"&","&\f"),"&\f")!=-1&&(w=-1);break}case 34:case 39:case 91:k+=Ma(m);break;case 9:case 10:case 13:case 32:k+=Cx(y);break;case 92:k+=Ox(Ho()-1,7);continue;case 47:switch(Vn()){case 42:case 47:Eo(Nx(Px(Nt(),Ho()),t,n),c);break;default:k+="/"}break;case 123*_:a[u++]=Qt(k)*w;case 125*_:case 59:case 0:switch(m){case 0:case 125:C=0;case 59+d:w==-1&&(k=Z(k,/\f/g,"")),h>0&&Qt(k)-f&&Eo(h>32?lf(k+";",r,n,f-1):lf(Z(k," ","")+";",r,n,f-2),c);break;case 59:k+=";";default:if(Eo(b=af(k,t,n,u,d,i,a,p,x=[],j=[],f),o),m===123)if(d===0)Wo(k,t,b,b,x,o,f,a,j);else switch(g===99&&Fe(k,3)===110?100:g){case 100:case 108:case 109:case 115:Wo(e,b,b,r&&Eo(af(e,b,b,0,0,i,a,p,i,x=[],f),j),i,j,f,a,r?x:j);break;default:Wo(k,b,b,b,[""],j,0,a,j)}}u=d=h=0,_=w=1,p=k="",f=s;break;case 58:f=1+Qt(k),h=y;default:if(_<1){if(m==123)--_;else if(m==125&&_++==0&&bx()==125)continue}switch(k+=Su(m),m*_){case 38:w=d>0?1:(k+="\f",-1);break;case 44:a[u++]=(Qt(k)-1)*w,w=1;break;case 64:Vn()===45&&(k+=Ma(Nt())),g=Vn(),d=f=Qt(p=k+=Tx(Ho())),m++;break;case 45:y===45&&Qt(k)==2&&(_=0)}}return o}function af(e,t,n,r,i,o,s,a,c,u,d){for(var f=i-1,g=i===0?o:[""],h=ju(g),y=0,_=0,C=0;y0?g[w]+" "+m:Z(m,/&\f/g,g[w])))&&(c[C++]=p);return Xs(e,t,n,i===0?Gs:a,c,u,d)}function Nx(e,t,n){return Xs(e,t,n,kg,Su(jx()),zr(e,2,-2),0)}function lf(e,t,n,r){return Xs(e,t,n,_u,zr(e,0,r),zr(e,r+1,-1),r)}function Pg(e,t,n){switch(_x(e,t)){case 5103:return ae+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return ae+e+e;case 4789:return Ei+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return ae+e+Ei+e+pe+e+e;case 5936:switch(Fe(e,t+11)){case 114:return ae+e+pe+Z(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return ae+e+pe+Z(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return ae+e+pe+Z(e,/[svh]\w+-[tblr]{2}/,"lr")+e}case 6828:case 4268:case 2903:return ae+e+pe+e+e;case 6165:return ae+e+pe+"flex-"+e+e;case 5187:return ae+e+Z(e,/(\w+).+(:[^]+)/,ae+"box-$1$2"+pe+"flex-$1$2")+e;case 5443:return ae+e+pe+"flex-item-"+Z(e,/flex-|-self/g,"")+(cn(e,/flex-|baseline/)?"":pe+"grid-row-"+Z(e,/flex-|-self/g,""))+e;case 4675:return ae+e+pe+"flex-line-pack"+Z(e,/align-content|flex-|-self/g,"")+e;case 5548:return ae+e+pe+Z(e,"shrink","negative")+e;case 5292:return ae+e+pe+Z(e,"basis","preferred-size")+e;case 6060:return ae+"box-"+Z(e,"-grow","")+ae+e+pe+Z(e,"grow","positive")+e;case 4554:return ae+Z(e,/([^-])(transform)/g,"$1"+ae+"$2")+e;case 6187:return Z(Z(Z(e,/(zoom-|grab)/,ae+"$1"),/(image-set)/,ae+"$1"),e,"")+e;case 5495:case 3959:return Z(e,/(image-set\([^]*)/,ae+"$1$`$1");case 4968:return Z(Z(e,/(.+:)(flex-)?(.*)/,ae+"box-pack:$3"+pe+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+ae+e+e;case 4200:if(!cn(e,/flex-|baseline/))return pe+"grid-column-align"+zr(e,t)+e;break;case 2592:case 3360:return pe+Z(e,"template-","")+e;case 4384:case 3616:return n&&n.some(function(r,i){return t=i,cn(r.props,/grid-\w+-end/)})?~Do(e+(n=n[t].value),"span")?e:pe+Z(e,"-start","")+e+pe+"grid-row-span:"+(~Do(n,"span")?cn(n,/\d+/):+cn(n,/\d+/)-+cn(e,/\d+/))+";":pe+Z(e,"-start","")+e;case 4896:case 4128:return n&&n.some(function(r){return cn(r.props,/grid-\w+-start/)})?e:pe+Z(Z(e,"-end","-span"),"span ","")+e;case 4095:case 3583:case 4068:case 2532:return Z(e,/(.+)-inline(.+)/,ae+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Qt(e)-1-t>6)switch(Fe(e,t+1)){case 109:if(Fe(e,t+4)!==45)break;case 102:return Z(e,/(.+:)(.+)-([^]+)/,"$1"+ae+"$2-$3$1"+Ei+(Fe(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~Do(e,"stretch")?Pg(Z(e,"stretch","fill-available"),t,n)+e:e}break;case 5152:case 5920:return Z(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(r,i,o,s,a,c,u){return pe+i+":"+o+u+(s?pe+i+"-span:"+(a?c:+c-+o)+u:"")+e});case 4949:if(Fe(e,t+6)===121)return Z(e,":",":"+ae)+e;break;case 6444:switch(Fe(e,Fe(e,14)===45?18:11)){case 120:return Z(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+ae+(Fe(e,14)===45?"inline-":"")+"box$3$1"+ae+"$2$3$1"+pe+"$2box$3")+e;case 100:return Z(e,":",":"+pe)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return Z(e,"scroll-","scroll-snap-")+e}return e}function Ci(e,t){for(var n="",r=ju(e),i=0;i-1&&!e.return)switch(e.type){case _u:e.return=Pg(e.value,e.length,n);return;case Eg:return Ci([ai(e,{value:Z(e.value,"@","@"+ae)})],r);case Gs:if(e.length)return Sx(e.props,function(i){switch(cn(i,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Ci([ai(e,{props:[Z(i,/:(read-\w+)/,":"+Ei+"$1")]})],r);case"::placeholder":return Ci([ai(e,{props:[Z(i,/:(plac\w+)/,":"+ae+"input-$1")]}),ai(e,{props:[Z(i,/:(plac\w+)/,":"+Ei+"$1")]}),ai(e,{props:[Z(i,/:(plac\w+)/,pe+"input-$1")]})],r)}return""})}}var Fx={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Ur=typeof process<"u"&&process.env!==void 0&&({}.REACT_APP_SC_ATTR||{}.SC_ATTR)||"data-styled",bu=typeof window<"u"&&"HTMLElement"in window,Mx=!!(typeof SC_DISABLE_SPEEDY=="boolean"?SC_DISABLE_SPEEDY:typeof process<"u"&&process.env!==void 0&&{}.REACT_APP_SC_DISABLE_SPEEDY!==void 0&&{}.REACT_APP_SC_DISABLE_SPEEDY!==""?{}.REACT_APP_SC_DISABLE_SPEEDY!=="false"&&{}.REACT_APP_SC_DISABLE_SPEEDY:typeof process<"u"&&process.env!==void 0&&{}.SC_DISABLE_SPEEDY!==void 0&&{}.SC_DISABLE_SPEEDY!==""&&{}.SC_DISABLE_SPEEDY!=="false"&&{}.SC_DISABLE_SPEEDY),ku=Object.freeze([]),er=Object.freeze({});function zx(e,t,n){return n===void 0&&(n=er),e.theme!==n.theme&&e.theme||t||n.theme}var Tg=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","use","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"]),Bx=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,Ux=/(^-|-$)/g;function cf(e){return e.replace(Bx,"-").replace(Ux,"")}var $x=/(a)(d)/gi,uf=function(e){return String.fromCharCode(e+(e>25?39:97))};function uc(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=uf(t%52)+n;return(uf(t%52)+n).replace($x,"$1-$2")}var za,Sr=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},Rg=function(e){return Sr(5381,e)};function Ng(e){return uc(Rg(e)>>>0)}function Dx(e){return e.displayName||e.name||"Component"}function Ba(e){return typeof e=="string"&&!0}var Ag=typeof Symbol=="function"&&Symbol.for,Ig=Ag?Symbol.for("react.memo"):60115,Hx=Ag?Symbol.for("react.forward_ref"):60112,Wx={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},qx={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Lg={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Vx=((za={})[Hx]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},za[Ig]=Lg,za);function df(e){return("type"in(t=e)&&t.type.$$typeof)===Ig?Lg:"$$typeof"in e?Vx[e.$$typeof]:Wx;var t}var Kx=Object.defineProperty,Qx=Object.getOwnPropertyNames,ff=Object.getOwnPropertySymbols,Jx=Object.getOwnPropertyDescriptor,Gx=Object.getPrototypeOf,hf=Object.prototype;function Fg(e,t,n){if(typeof t!="string"){if(hf){var r=Gx(t);r&&r!==hf&&Fg(e,r,n)}var i=Qx(t);ff&&(i=i.concat(ff(t)));for(var o=df(e),s=df(t),a=0;a0?" Args: ".concat(t.join(", ")):""))}var Yx=function(){function e(t){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=t}return e.prototype.indexOfGroup=function(t){for(var n=0,r=0;r=this.groupSizes.length){for(var r=this.groupSizes,i=r.length,o=i;t>=o;)if((o<<=1)<0)throw no(16,"".concat(t));this.groupSizes=new Uint32Array(o),this.groupSizes.set(r),this.length=o;for(var s=i;s=this.length||this.groupSizes[t]===0)return n;for(var r=this.groupSizes[t],i=this.indexOfGroup(t),o=i+r,s=i;s=0;u--){var d=c[u];if(d&&d.nodeType===1&&d.hasAttribute(Ur))return d}}(n),o=i!==void 0?i.nextSibling:null;r.setAttribute(Ur,"active"),r.setAttribute("data-styled-version","6.0.0-rc.1");var s=r1();return s&&r.setAttribute("nonce",s),n.insertBefore(r,o),r},i1=function(){function e(t){this.element=Mg(t),this.element.appendChild(document.createTextNode("")),this.sheet=function(n){if(n.sheet)return n.sheet;for(var r=document.styleSheets,i=0,o=r.length;i=0){var r=document.createTextNode(n);return this.element.insertBefore(r,this.nodes[t]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(t){this.element.removeChild(this.nodes[t]),this.length--},e.prototype.getRule=function(t){return t0&&(g+="".concat(h,","))}),i+="".concat(d).concat(f,'{content:"').concat(g,'"}').concat(`/*!sc*/ +`)},s=0;s0?".".concat(t):g},d=c.slice();s.prefix&&d.unshift(Lx),d.push(function(g){g.type===Gs&&g.value.includes("&")&&(g.props[0]=g.props[0].replace(l1,n).replace(r,u))},Ax);var f=function(g,h,y,_){h===void 0&&(h=""),y===void 0&&(y=""),_===void 0&&(_="&"),t=_,n=h,r=new RegExp("\\".concat(n,"\\b"),"g");var C=g.replace(c1,""),w=Rx(y||h?"".concat(y," ").concat(h," { ").concat(C," }"):C);return s.namespace&&(w=Bg(w,s.namespace)),function(m,p){for(var x=[],j=0,b=void 0;j="A"&&e<="Z"};function mf(e){for(var t="",n=0;n>>0);if(!n.hasNameForId(this.componentId,s)){var a=r(o,".".concat(s),void 0,this.componentId);n.insertRules(this.componentId,s,a)}i=$n(i,s),this.staticRulesId=s}else{for(var c=Sr(this.baseHash,r.hash),u="",d=0;d>>0);n.hasNameForId(this.componentId,h)||n.insertRules(this.componentId,h,r(u,".".concat(h),void 0,this.componentId)),i=$n(i,h)}}return i},e}(),Wg=bt.createContext(void 0);Wg.Consumer;function m1(){return N.useContext(Wg)}var $a={};function v1(e,t,n){var r=Eu(e),i=e,o=!Ba(e),s=t.attrs,a=s===void 0?ku:s,c=t.componentId,u=c===void 0?function(j,b){var k=typeof j!="string"?"sc":cf(j);$a[k]=($a[k]||0)+1;var O="".concat(k,"-").concat(Ng("6.0.0-rc.1"+k+$a[k]));return b?"".concat(b,"-").concat(O):O}(t.displayName,t.parentComponentId):c,d=t.displayName,f=d===void 0?function(j){return Ba(j)?"styled.".concat(j):"Styled(".concat(Dx(j),")")}(e):d,g=t.displayName&&t.componentId?"".concat(cf(t.displayName),"-").concat(t.componentId):t.componentId||u,h=r&&i.attrs?i.attrs.concat(a).filter(Boolean):a,y=t.shouldForwardProp;if(r&&i.shouldForwardProp){var _=i.shouldForwardProp;if(t.shouldForwardProp){var C=t.shouldForwardProp;y=function(j,b){return _(j,b)&&C(j,b)}}else y=_}var w=new g1(n,g,r?i.componentStyle:void 0),m=w.isStatic&&a.length===0;function p(j,b){return function(k,O,M,z){var H=k.attrs,te=k.componentStyle,Q=k.defaultProps,$=k.foldedComponentIds,U=k.styledComponentId,J=k.target,fe=m1(),B=gf(),V=k.shouldForwardProp||B.shouldForwardProp,W=function(qe,ot,kt){for(var qt,ye=tt(tt({},ot),{className:void 0,theme:kt}),ir=0;ire.width?e.width:24}px; + height: ${e=>e.height?e.height:24}px; + background: url(${e=>e.src}); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + margin: 0 8px; + display: inline-block +`,x1=P.header` + min-width: 950px; + display: flex; + justify-content: space-between; + align-items: center; + margin: 18px 8%; +`,w1=P.section` + display: flex; + align-items: center; +`,_1=P.div` + width: 1px; + height: 37px; + margin: 0px 17px; + background-color: #a9a9a9; +`,S1=P.button` + width: 150px; + height: 28px; + margin-left: 20px; + border-radius: 40px; + background-color: #CCC; + font-size: 15px; + & ${Y} { + margin-left: 0; + } +`,j1=P.h1` + user-select: none; +`,Vo=P.div` + & a:hover { + color: #0050A1; + transition: 0.3s ease; + } +`,b1=P.nav` + display: flex; + align-items: center; + & ${Vo} { + margin-right: 55px + } +`,k1=function(){return l.jsxs(x1,{children:[l.jsxs(w1,{children:[l.jsx("a",{href:"https://vvsu.ru",children:l.jsx("img",{width:"100",height:"32",src:"/images/vvsu_logo.png"})}),l.jsx(_1,{}),l.jsx(Mn,{to:"/",children:l.jsx(j1,{children:"Pairent"})}),l.jsx(Mn,{to:"/",children:l.jsxs(S1,{children:[l.jsx(Y,{src:"/images/icons/pin.svg",width:"8",height:"14"}),"Владивосток"]})})]}),l.jsxs(b1,{children:[l.jsx(Vo,{children:l.jsxs(Mn,{to:"/favorites",children:[l.jsx(Y,{src:"/images/icons/heart.svg",width:"16",height:"14"}),"Избранное"]})}),l.jsx(Vo,{children:l.jsxs(Mn,{to:"/comparisons",children:[l.jsx(Y,{src:"/images/icons/stats.svg",width:"16",height:"14"}),"Сравнения"]})}),l.jsx(Vo,{children:l.jsxs(Mn,{to:"/",children:[l.jsx(Y,{src:"/images/icons/chat-bubble.svg",width:"16",height:"14"}),"Чаты"]})}),l.jsx(Mn,{to:"/",children:l.jsx(Y,{src:"/images/icons/user.svg",width:"32",height:"32"})})]})]})};function Kg(e,t){return function(){return e.apply(t,arguments)}}const{toString:E1}=Object.prototype,{getPrototypeOf:Cu}=Object,ea=(e=>t=>{const n=E1.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Wt=e=>(e=e.toLowerCase(),t=>ea(t)===e),ta=e=>t=>typeof t===e,{isArray:Gr}=Array,Ji=ta("undefined");function C1(e){return e!==null&&!Ji(e)&&e.constructor!==null&&!Ji(e.constructor)&&xt(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Qg=Wt("ArrayBuffer");function O1(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Qg(e.buffer),t}const P1=ta("string"),xt=ta("function"),Jg=ta("number"),na=e=>e!==null&&typeof e=="object",T1=e=>e===!0||e===!1,Ko=e=>{if(ea(e)!=="object")return!1;const t=Cu(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},R1=Wt("Date"),N1=Wt("File"),A1=Wt("Blob"),I1=Wt("FileList"),L1=e=>na(e)&&xt(e.pipe),F1=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||xt(e.append)&&((t=ea(e))==="formdata"||t==="object"&&xt(e.toString)&&e.toString()==="[object FormData]"))},M1=Wt("URLSearchParams"),z1=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ro(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),Gr(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const Yg=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),Xg=e=>!Ji(e)&&e!==Yg;function gc(){const{caseless:e}=Xg(this)&&this||{},t={},n=(r,i)=>{const o=e&&Gg(t,i)||i;Ko(t[o])&&Ko(r)?t[o]=gc(t[o],r):Ko(r)?t[o]=gc({},r):Gr(r)?t[o]=r.slice():t[o]=r};for(let r=0,i=arguments.length;r(ro(t,(i,o)=>{n&&xt(i)?e[o]=Kg(i,n):e[o]=i},{allOwnKeys:r}),e),U1=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),$1=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},D1=(e,t,n,r)=>{let i,o,s;const a={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),o=i.length;o-- >0;)s=i[o],(!r||r(s,e,t))&&!a[s]&&(t[s]=e[s],a[s]=!0);e=n!==!1&&Cu(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},H1=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},W1=e=>{if(!e)return null;if(Gr(e))return e;let t=e.length;if(!Jg(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},q1=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Cu(Uint8Array)),V1=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let i;for(;(i=r.next())&&!i.done;){const o=i.value;t.call(e,o[0],o[1])}},K1=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Q1=Wt("HTMLFormElement"),J1=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),xf=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),G1=Wt("RegExp"),Zg=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};ro(n,(i,o)=>{t(i,o,e)!==!1&&(r[o]=i)}),Object.defineProperties(e,r)},Y1=e=>{Zg(e,(t,n)=>{if(xt(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(xt(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},X1=(e,t)=>{const n={},r=i=>{i.forEach(o=>{n[o]=!0})};return Gr(e)?r(e):r(String(e).split(t)),n},Z1=()=>{},ew=(e,t)=>(e=+e,Number.isFinite(e)?e:t),Da="abcdefghijklmnopqrstuvwxyz",wf="0123456789",em={DIGIT:wf,ALPHA:Da,ALPHA_DIGIT:Da+Da.toUpperCase()+wf},tw=(e=16,t=em.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function nw(e){return!!(e&&xt(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const rw=e=>{const t=new Array(10),n=(r,i)=>{if(na(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[i]=r;const o=Gr(r)?[]:{};return ro(r,(s,a)=>{const c=n(s,i+1);!Ji(c)&&(o[a]=c)}),t[i]=void 0,o}}return r};return n(e,0)},iw=Wt("AsyncFunction"),ow=e=>e&&(na(e)||xt(e))&&xt(e.then)&&xt(e.catch),R={isArray:Gr,isArrayBuffer:Qg,isBuffer:C1,isFormData:F1,isArrayBufferView:O1,isString:P1,isNumber:Jg,isBoolean:T1,isObject:na,isPlainObject:Ko,isUndefined:Ji,isDate:R1,isFile:N1,isBlob:A1,isRegExp:G1,isFunction:xt,isStream:L1,isURLSearchParams:M1,isTypedArray:q1,isFileList:I1,forEach:ro,merge:gc,extend:B1,trim:z1,stripBOM:U1,inherits:$1,toFlatObject:D1,kindOf:ea,kindOfTest:Wt,endsWith:H1,toArray:W1,forEachEntry:V1,matchAll:K1,isHTMLForm:Q1,hasOwnProperty:xf,hasOwnProp:xf,reduceDescriptors:Zg,freezeMethods:Y1,toObjectSet:X1,toCamelCase:J1,noop:Z1,toFiniteNumber:ew,findKey:Gg,global:Yg,isContextDefined:Xg,ALPHABET:em,generateString:tw,isSpecCompliantForm:nw,toJSONObject:rw,isAsyncFn:iw,isThenable:ow};function ne(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}R.inherits(ne,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:R.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const tm=ne.prototype,nm={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{nm[e]={value:e}});Object.defineProperties(ne,nm);Object.defineProperty(tm,"isAxiosError",{value:!0});ne.from=(e,t,n,r,i,o)=>{const s=Object.create(tm);return R.toFlatObject(e,s,function(c){return c!==Error.prototype},a=>a!=="isAxiosError"),ne.call(s,e.message,t,n,r,i),s.cause=e,s.name=e.name,o&&Object.assign(s,o),s};const sw=null;function mc(e){return R.isPlainObject(e)||R.isArray(e)}function rm(e){return R.endsWith(e,"[]")?e.slice(0,-2):e}function _f(e,t,n){return e?e.concat(t).map(function(i,o){return i=rm(i),!n&&o?"["+i+"]":i}).join(n?".":""):t}function aw(e){return R.isArray(e)&&!e.some(mc)}const lw=R.toFlatObject(R,{},null,function(t){return/^is[A-Z]/.test(t)});function ra(e,t,n){if(!R.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=R.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(_,C){return!R.isUndefined(C[_])});const r=n.metaTokens,i=n.visitor||d,o=n.dots,s=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&R.isSpecCompliantForm(t);if(!R.isFunction(i))throw new TypeError("visitor must be a function");function u(y){if(y===null)return"";if(R.isDate(y))return y.toISOString();if(!c&&R.isBlob(y))throw new ne("Blob is not supported. Use a Buffer instead.");return R.isArrayBuffer(y)||R.isTypedArray(y)?c&&typeof Blob=="function"?new Blob([y]):Buffer.from(y):y}function d(y,_,C){let w=y;if(y&&!C&&typeof y=="object"){if(R.endsWith(_,"{}"))_=r?_:_.slice(0,-2),y=JSON.stringify(y);else if(R.isArray(y)&&aw(y)||(R.isFileList(y)||R.endsWith(_,"[]"))&&(w=R.toArray(y)))return _=rm(_),w.forEach(function(p,x){!(R.isUndefined(p)||p===null)&&t.append(s===!0?_f([_],x,o):s===null?_:_+"[]",u(p))}),!1}return mc(y)?!0:(t.append(_f(C,_,o),u(y)),!1)}const f=[],g=Object.assign(lw,{defaultVisitor:d,convertValue:u,isVisitable:mc});function h(y,_){if(!R.isUndefined(y)){if(f.indexOf(y)!==-1)throw Error("Circular reference detected in "+_.join("."));f.push(y),R.forEach(y,function(w,m){(!(R.isUndefined(w)||w===null)&&i.call(t,w,R.isString(m)?m.trim():m,_,g))===!0&&h(w,_?_.concat(m):[m])}),f.pop()}}if(!R.isObject(e))throw new TypeError("data must be an object");return h(e),t}function Sf(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ou(e,t){this._pairs=[],e&&ra(e,this,t)}const im=Ou.prototype;im.append=function(t,n){this._pairs.push([t,n])};im.toString=function(t){const n=t?function(r){return t.call(this,r,Sf)}:Sf;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function cw(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function om(e,t,n){if(!t)return e;const r=n&&n.encode||cw,i=n&&n.serialize;let o;if(i?o=i(t,n):o=R.isURLSearchParams(t)?t.toString():new Ou(t,n).toString(r),o){const s=e.indexOf("#");s!==-1&&(e=e.slice(0,s)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class uw{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){R.forEach(this.handlers,function(r){r!==null&&t(r)})}}const jf=uw,sm={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},dw=typeof URLSearchParams<"u"?URLSearchParams:Ou,fw=typeof FormData<"u"?FormData:null,hw=typeof Blob<"u"?Blob:null,pw=(()=>{let e;return typeof navigator<"u"&&((e=navigator.product)==="ReactNative"||e==="NativeScript"||e==="NS")?!1:typeof window<"u"&&typeof document<"u"})(),gw=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),Ut={isBrowser:!0,classes:{URLSearchParams:dw,FormData:fw,Blob:hw},isStandardBrowserEnv:pw,isStandardBrowserWebWorkerEnv:gw,protocols:["http","https","file","blob","url","data"]};function mw(e,t){return ra(e,new Ut.classes.URLSearchParams,Object.assign({visitor:function(n,r,i,o){return Ut.isNode&&R.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}function vw(e){return R.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function yw(e){const t={},n=Object.keys(e);let r;const i=n.length;let o;for(r=0;r=n.length;return s=!s&&R.isArray(i)?i.length:s,c?(R.hasOwnProp(i,s)?i[s]=[i[s],r]:i[s]=r,!a):((!i[s]||!R.isObject(i[s]))&&(i[s]=[]),t(n,r,i[s],o)&&R.isArray(i[s])&&(i[s]=yw(i[s])),!a)}if(R.isFormData(e)&&R.isFunction(e.entries)){const n={};return R.forEachEntry(e,(r,i)=>{t(vw(r),i,n,0)}),n}return null}const xw={"Content-Type":void 0};function ww(e,t,n){if(R.isString(e))try{return(t||JSON.parse)(e),R.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const ia={transitional:sm,adapter:["xhr","http"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=R.isObject(t);if(o&&R.isHTMLForm(t)&&(t=new FormData(t)),R.isFormData(t))return i&&i?JSON.stringify(am(t)):t;if(R.isArrayBuffer(t)||R.isBuffer(t)||R.isStream(t)||R.isFile(t)||R.isBlob(t))return t;if(R.isArrayBufferView(t))return t.buffer;if(R.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return mw(t,this.formSerializer).toString();if((a=R.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return ra(a?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||i?(n.setContentType("application/json",!1),ww(t)):t}],transformResponse:[function(t){const n=this.transitional||ia.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(t&&R.isString(t)&&(r&&!this.responseType||i)){const s=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(a){if(s)throw a.name==="SyntaxError"?ne.from(a,ne.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ut.classes.FormData,Blob:Ut.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};R.forEach(["delete","get","head"],function(t){ia.headers[t]={}});R.forEach(["post","put","patch"],function(t){ia.headers[t]=R.merge(xw)});const Pu=ia,_w=R.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Sw=e=>{const t={};let n,r,i;return e&&e.split(` +`).forEach(function(s){i=s.indexOf(":"),n=s.substring(0,i).trim().toLowerCase(),r=s.substring(i+1).trim(),!(!n||t[n]&&_w[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},bf=Symbol("internals");function li(e){return e&&String(e).trim().toLowerCase()}function Qo(e){return e===!1||e==null?e:R.isArray(e)?e.map(Qo):String(e)}function jw(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const bw=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ha(e,t,n,r,i){if(R.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!R.isString(t)){if(R.isString(r))return t.indexOf(r)!==-1;if(R.isRegExp(r))return r.test(t)}}function kw(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Ew(e,t){const n=R.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(i,o,s){return this[r].call(this,t,i,o,s)},configurable:!0})})}class oa{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function o(a,c,u){const d=li(c);if(!d)throw new Error("header name must be a non-empty string");const f=R.findKey(i,d);(!f||i[f]===void 0||u===!0||u===void 0&&i[f]!==!1)&&(i[f||c]=Qo(a))}const s=(a,c)=>R.forEach(a,(u,d)=>o(u,d,c));return R.isPlainObject(t)||t instanceof this.constructor?s(t,n):R.isString(t)&&(t=t.trim())&&!bw(t)?s(Sw(t),n):t!=null&&o(n,t,r),this}get(t,n){if(t=li(t),t){const r=R.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return jw(i);if(R.isFunction(n))return n.call(this,i,r);if(R.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=li(t),t){const r=R.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Ha(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function o(s){if(s=li(s),s){const a=R.findKey(r,s);a&&(!n||Ha(r,r[a],a,n))&&(delete r[a],i=!0)}}return R.isArray(t)?t.forEach(o):o(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const o=n[r];(!t||Ha(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const n=this,r={};return R.forEach(this,(i,o)=>{const s=R.findKey(r,o);if(s){n[s]=Qo(i),delete n[o];return}const a=t?kw(o):String(o).trim();a!==o&&delete n[o],n[a]=Qo(i),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return R.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&R.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[bf]=this[bf]={accessors:{}}).accessors,i=this.prototype;function o(s){const a=li(s);r[a]||(Ew(i,s),r[a]=!0)}return R.isArray(t)?t.forEach(o):o(t),this}}oa.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);R.freezeMethods(oa.prototype);R.freezeMethods(oa);const Zt=oa;function Wa(e,t){const n=this||Pu,r=t||n,i=Zt.from(r.headers);let o=r.data;return R.forEach(e,function(a){o=a.call(n,o,i.normalize(),t?t.status:void 0)}),i.normalize(),o}function lm(e){return!!(e&&e.__CANCEL__)}function io(e,t,n){ne.call(this,e??"canceled",ne.ERR_CANCELED,t,n),this.name="CanceledError"}R.inherits(io,ne,{__CANCEL__:!0});function Cw(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ne("Request failed with status code "+n.status,[ne.ERR_BAD_REQUEST,ne.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const Ow=Ut.isStandardBrowserEnv?function(){return{write:function(n,r,i,o,s,a){const c=[];c.push(n+"="+encodeURIComponent(r)),R.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),R.isString(o)&&c.push("path="+o),R.isString(s)&&c.push("domain="+s),a===!0&&c.push("secure"),document.cookie=c.join("; ")},read:function(n){const r=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function Pw(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Tw(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function cm(e,t){return e&&!Pw(t)?Tw(e,t):t}const Rw=Ut.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let r;function i(o){let s=o;return t&&(n.setAttribute("href",s),s=n.href),n.setAttribute("href",s),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=i(window.location.href),function(s){const a=R.isString(s)?i(s):s;return a.protocol===r.protocol&&a.host===r.host}}():function(){return function(){return!0}}();function Nw(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Aw(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,o=0,s;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[o];s||(s=u),n[i]=c,r[i]=u;let f=o,g=0;for(;f!==i;)g+=n[f++],f=f%e;if(i=(i+1)%e,i===o&&(o=(o+1)%e),u-s{const o=i.loaded,s=i.lengthComputable?i.total:void 0,a=o-n,c=r(a),u=o<=s;n=o;const d={loaded:o,total:s,progress:s?o/s:void 0,bytes:a,rate:c||void 0,estimated:c&&s&&u?(s-o)/c:void 0,event:i};d[t?"download":"upload"]=!0,e(d)}}const Iw=typeof XMLHttpRequest<"u",Lw=Iw&&function(e){return new Promise(function(n,r){let i=e.data;const o=Zt.from(e.headers).normalize(),s=e.responseType;let a;function c(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}R.isFormData(i)&&(Ut.isStandardBrowserEnv||Ut.isStandardBrowserWebWorkerEnv?o.setContentType(!1):o.setContentType("multipart/form-data;",!1));let u=new XMLHttpRequest;if(e.auth){const h=e.auth.username||"",y=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(h+":"+y))}const d=cm(e.baseURL,e.url);u.open(e.method.toUpperCase(),om(d,e.params,e.paramsSerializer),!0),u.timeout=e.timeout;function f(){if(!u)return;const h=Zt.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),_={data:!s||s==="text"||s==="json"?u.responseText:u.response,status:u.status,statusText:u.statusText,headers:h,config:e,request:u};Cw(function(w){n(w),c()},function(w){r(w),c()},_),u=null}if("onloadend"in u?u.onloadend=f:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf("file:")===0)||setTimeout(f)},u.onabort=function(){u&&(r(new ne("Request aborted",ne.ECONNABORTED,e,u)),u=null)},u.onerror=function(){r(new ne("Network Error",ne.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let y=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const _=e.transitional||sm;e.timeoutErrorMessage&&(y=e.timeoutErrorMessage),r(new ne(y,_.clarifyTimeoutError?ne.ETIMEDOUT:ne.ECONNABORTED,e,u)),u=null},Ut.isStandardBrowserEnv){const h=(e.withCredentials||Rw(d))&&e.xsrfCookieName&&Ow.read(e.xsrfCookieName);h&&o.set(e.xsrfHeaderName,h)}i===void 0&&o.setContentType(null),"setRequestHeader"in u&&R.forEach(o.toJSON(),function(y,_){u.setRequestHeader(_,y)}),R.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),s&&s!=="json"&&(u.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&u.addEventListener("progress",kf(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&u.upload&&u.upload.addEventListener("progress",kf(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=h=>{u&&(r(!h||h.type?new io(null,e,u):h),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const g=Nw(d);if(g&&Ut.protocols.indexOf(g)===-1){r(new ne("Unsupported protocol "+g+":",ne.ERR_BAD_REQUEST,e));return}u.send(i||null)})},Jo={http:sw,xhr:Lw};R.forEach(Jo,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Fw={getAdapter:e=>{e=R.isArray(e)?e:[e];const{length:t}=e;let n,r;for(let i=0;ie instanceof Zt?e.toJSON():e;function Dr(e,t){t=t||{};const n={};function r(u,d,f){return R.isPlainObject(u)&&R.isPlainObject(d)?R.merge.call({caseless:f},u,d):R.isPlainObject(d)?R.merge({},d):R.isArray(d)?d.slice():d}function i(u,d,f){if(R.isUndefined(d)){if(!R.isUndefined(u))return r(void 0,u,f)}else return r(u,d,f)}function o(u,d){if(!R.isUndefined(d))return r(void 0,d)}function s(u,d){if(R.isUndefined(d)){if(!R.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function a(u,d,f){if(f in t)return r(u,d);if(f in e)return r(void 0,u)}const c={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(u,d)=>i(Cf(u),Cf(d),!0)};return R.forEach(Object.keys(Object.assign({},e,t)),function(d){const f=c[d]||i,g=f(e[d],t[d],d);R.isUndefined(g)&&f!==a||(n[d]=g)}),n}const um="1.4.0",Tu={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Tu[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Of={};Tu.transitional=function(t,n,r){function i(o,s){return"[Axios v"+um+"] Transitional option '"+o+"'"+s+(r?". "+r:"")}return(o,s,a)=>{if(t===!1)throw new ne(i(s," has been removed"+(n?" in "+n:"")),ne.ERR_DEPRECATED);return n&&!Of[s]&&(Of[s]=!0,console.warn(i(s," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,s,a):!0}};function Mw(e,t,n){if(typeof e!="object")throw new ne("options must be an object",ne.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const o=r[i],s=t[o];if(s){const a=e[o],c=a===void 0||s(a,o,e);if(c!==!0)throw new ne("option "+o+" must be "+c,ne.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ne("Unknown option "+o,ne.ERR_BAD_OPTION)}}const vc={assertOptions:Mw,validators:Tu},ln=vc.validators;class Cs{constructor(t){this.defaults=t,this.interceptors={request:new jf,response:new jf}}request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Dr(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&vc.assertOptions(r,{silentJSONParsing:ln.transitional(ln.boolean),forcedJSONParsing:ln.transitional(ln.boolean),clarifyTimeoutError:ln.transitional(ln.boolean)},!1),i!=null&&(R.isFunction(i)?n.paramsSerializer={serialize:i}:vc.assertOptions(i,{encode:ln.function,serialize:ln.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s;s=o&&R.merge(o.common,o[n.method]),s&&R.forEach(["delete","get","head","post","put","patch","common"],y=>{delete o[y]}),n.headers=Zt.concat(s,o);const a=[];let c=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen=="function"&&_.runWhen(n)===!1||(c=c&&_.synchronous,a.unshift(_.fulfilled,_.rejected))});const u=[];this.interceptors.response.forEach(function(_){u.push(_.fulfilled,_.rejected)});let d,f=0,g;if(!c){const y=[Ef.bind(this),void 0];for(y.unshift.apply(y,a),y.push.apply(y,u),g=y.length,d=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](i);r._listeners=null}),this.promise.then=i=>{let o;const s=new Promise(a=>{r.subscribe(a),o=a}).then(i);return s.cancel=function(){r.unsubscribe(o)},s},t(function(o,s,a){r.reason||(r.reason=new io(o,s,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new Ru(function(i){t=i}),cancel:t}}}const zw=Ru;function Bw(e){return function(n){return e.apply(null,n)}}function Uw(e){return R.isObject(e)&&e.isAxiosError===!0}const yc={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(yc).forEach(([e,t])=>{yc[t]=e});const $w=yc;function dm(e){const t=new Go(e),n=Kg(Go.prototype.request,t);return R.extend(n,Go.prototype,t,{allOwnKeys:!0}),R.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return dm(Dr(e,i))},n}const Ne=dm(Pu);Ne.Axios=Go;Ne.CanceledError=io;Ne.CancelToken=zw;Ne.isCancel=lm;Ne.VERSION=um;Ne.toFormData=ra;Ne.AxiosError=ne;Ne.Cancel=Ne.CanceledError;Ne.all=function(t){return Promise.all(t)};Ne.spread=Bw;Ne.isAxiosError=Uw;Ne.mergeConfig=Dr;Ne.AxiosHeaders=Zt;Ne.formToJSON=e=>am(R.isHTMLForm(e)?new FormData(e):e);Ne.HttpStatusCode=$w;Ne.default=Ne;const Pr=Ne,fm=e=>hm+e,hm=window.location.protocol+"//127.0.0.1:8000",Dw={authority:fm("/api/auth/vvsu/"),client_id:"it-hub-client",redirect_uri:"https://pairent.vvsu.ru/sign-in/",scope:"openid vvsu_IdUser vvsu_IdEmpl vvsu_IdStud vvsu_login given_name family_name"},oo=Object.freeze({API_ROOT:hm,OIDCConfig:Dw,api_path:fm}),{API_ROOT:Va}=oo;class Yr{static async getAll(t,n){return await Pr.get(Va+"/api/apartaments/",{params:{limit:t,...n!==0?{offset:n}:{}}})}static async getById(t){return await Pr.get(Va+"/api/apartament/"+t+"/")}static async getComparisons(){return await Pr.get(Va+"/api/comparison/")}}const Hw=P.section` + display: flex; + justify-content: space-between; + margin-top: 22px; +`,Ww=P.div` + display: flex; + & img { + } +`,qw=P.img` + width: 350px; + height: 250px; +`,Vw=P.div` + padding-left: 34px; + & h3 { + font-weight: 600; + font-size: 24px; + color: #222; + } +`,Kw=P.p` + margin-top: 4px; + font-size: 16px; + color: #222; +`,Pf=P.div` + display: flex; + justify-content: space-around; + align-items: center; + width: fit-content; + height: 38px; + border: 1px solid #A9A9A9; + border-radius: 16px; + margin-right: 8px; + padding-right: 8px; +`,Qw=P.div` + display: flex; + margin-top: 10px; + & p { + font-weight: 500; + font-size: 15px; + color: #A9A9A9; + } +`,ar=P.td` + width: fit-content; + padding: 0 5px; + border-right: 1px solid #e1e3e1; + & ${Y} { + display:inline-block; + } +`,Jw=P.div` + width: 500px; + padding-top: 10px; + display: flex +`,Yo=P.div` + width: 32px; + height: 32px; + margin-right: 10px; + + user-select: none; + font-weight: 600; + font-size: 16px; + + display: flex; + align-items: center; + + border: 1px solid black; + border-color: #e2e0e2 #e2e0e2 #d1cfd1; + border-radius: 32px; + + box-shadow: 0 1px 1px #00000020; +`,Gw=P.div``,Yw=P(Yo)` + width: fit-content; + background: #E3F0FF; + color: #007EFF; + padding-right: 10px; +`,pm=P.div``,Xw=P.div` + text-align: right; + & ${pm} { + display: flex; + justify-content: end; + align-items: center; + } +`,Nu=P.p` + color: gray; +`,Zw=P(Nu)` + font-size: 16px; + margin-right: 18px +`,e_=P(Nu)` + margin-top: 48px; + font-size: 15px; + line-height: 18px; + word-wrap: break-word; +`,t_=P(Nu)` + margin-top: 48px; + font-size: 15px; +`,n_=e=>l.jsx("svg",{width:"14",height:"12",viewBox:"0 0 14 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{transform:`rotate(${e.up?180:0}deg)`,marginRight:4},children:l.jsx("path",{d:"M7 12L13.9282 0H0.0717969L7 12Z",fill:e.up?"tomato":"limegreen"})}),r_=function(e){return l.jsxs(Hw,{children:[l.jsxs(Ww,{children:[l.jsx(qw,{src:"/images/apartment.png"}),l.jsxs(Vw,{children:[l.jsxs("h3",{children:[e.results.perimetrs," м², ",e.results.rooms==0?"":e.results.rooms,e.results.rooms==0?"Гостинка":e.results.rooms>1?"-х комнатная":" комнатная"]}),l.jsxs(Kw,{children:[e.results.address,", ",e.results.floor," этаж из ",e.results.floorHouse]}),l.jsxs(Qw,{children:[l.jsxs(Pf,{children:[l.jsx(Y,{src:"/images/icons/bus.svg",width:20,height:21}),l.jsxs("p",{children:[e.results.timeToBus," мин"]})]}),l.jsxs(Pf,{children:[l.jsx(Y,{src:"/images/icons/train.svg",width:18,height:20}),l.jsxs("p",{children:[e.results.timeToTrain," мин"]})]})]}),l.jsx("div",{style:{height:24}}),l.jsx("table",{children:l.jsxs("tbody",{children:[l.jsxs("tr",{children:[l.jsxs(ar,{children:[l.jsx(Y,{src:"/images/icons/chair.svg"}),l.jsx(Y,{src:"/images/icons/paw.svg"})]}),l.jsxs(ar,{children:[l.jsx(Y,{src:"/images/icons/parking.svg"}),l.jsx(Y,{src:"/images/icons/dish.svg"})]}),l.jsxs(ar,{style:{borderRight:0},children:[l.jsx(Y,{src:"/images/icons/burger.svg"}),l.jsx(Y,{src:"/images/icons/game.svg"})]})]}),l.jsxs("tr",{children:[l.jsxs(ar,{children:[l.jsx(Y,{src:"/images/icons/wifi.svg"}),l.jsx(Y,{src:"/images/icons/paint.svg"})]}),l.jsxs(ar,{children:[l.jsx(Y,{src:"/images/icons/recycle.svg"}),l.jsx(Y,{src:"/images/icons/up-down-arrows.svg"})]}),l.jsxs(ar,{style:{borderRight:0},children:[l.jsx(Y,{src:"/images/icons/store.svg"}),l.jsx(Y,{src:"/images/icons/drugs.svg"})]})]})]})}),l.jsx("div",{style:{height:12}}),l.jsxs(Jw,{children:[l.jsxs(Yw,{children:[l.jsx(Y,{src:"/images/icons/phone.svg",width:16,height:17}),l.jsx(Gw,{children:"Показать телефон"})]}),l.jsx(Yo,{children:l.jsx(Y,{src:"/images/icons/heart.svg",width:18,height:17})}),l.jsx(Yo,{children:l.jsx(Y,{src:"/images/icons/stack.svg",width:18,height:19})}),l.jsx(Yo,{children:l.jsx(Y,{src:"/images/icons/pencil.svg",width:16,height:17})})]})]})]}),l.jsxs(Xw,{children:[l.jsxs(pm,{children:[l.jsx(n_,{up:e.results.lastPrice>e.results.price}),l.jsxs("h3",{children:[e.results.price," ₽"]})]}),l.jsx(Zw,{children:"в месяц"}),l.jsx(e_,{children:e.results.description}),l.jsx(t_,{children:e.results.dateCreate})]})]})},i_=P.li` + border-bottom: 1px solid; + border-image: linear-gradient(to right, transparent 33.5%, #c2c4c2 33.5%) 100% 1; + box-sizing: border-box; + list-style-type: none; + padding: 20px 0; + + & section { + margin-top: 0; + } +`;function gm(e){const t=e.list;return t.length==0?null:l.jsx("ul",{children:t.map((n,r)=>l.jsx(i_,{children:l.jsx(r_,{results:n})},r))})}const Xr=e=>{const[t,n]=N.useState(!1),[r,i]=N.useState("");return[async(...s)=>{try{n(!0),await e(...s)}catch(a){i(a.message)}finally{n(!1)}},t,r]},sa=(e,t)=>Math.ceil(e/t),Au=e=>{let t=[];for(let n=0;n{let n=Au(e),r=t!==1?t-1:t,i=te.is_active?` + color: royalblue; + font-weight: 600; + border: 1px solid royalblue; + `:""} + + &:hover { + background: #f2f2f2; + } + + &:active { + background: #eeefee; + } +`,a_=P(mi)` + background: url(/images/icons/dots.svg) no-repeat; + background-position: center; + background-size: 20px; + user-select: none; + + &:hover, &:active { + background: url(/images/icons/caret-double-blue.svg) no-repeat; + background-position: center; + background-size: 14px; + } +`,l_=(e,t)=>{if(tthis.props.pages&&(n=this.props.pages)),this.props.onChange(n),!this.value_controlled&&this.setState({value:n})}render(){const{pages:n}=this.props;let r=this.state.value;return this.value_controlled&&(r=this.props.value),l.jsxs(s_,{children:[this.props.viewAllButton?l.jsx(mi,{style:{float:"left",padding:"0 16px"},children:"Показать все"}):null,this.props.sideButtons?l.jsx(mi,{onClick:()=>this.updateValue(r-1),children:l.jsx(Tf,{width:"16",height:"16",style:{transform:"rotate(180deg) translateY(-2px)"},src:"/images/icons/caret-right.svg"})}):null,l_(0,n).map((i,o)=>!(o==0|o==n-1)&&or+2?o==r-3|o==r+3?l.jsx(a_,{style:{transform:o==r-3?"rotate(180deg)":""},onClick:()=>{o==r-3?this.updateValue(r-3):this.updateValue(r+3)},children:" "}):null:l.jsx(mi,{is_active:r==o,onClick:()=>this.updateValue(o),children:o+1},o)),this.props.sideButtons?l.jsx(mi,{onClick:()=>this.updateValue(r+1),children:l.jsx(Tf,{width:"16",height:"16",src:"/images/icons/caret-right.svg"})}):null]})}}Ie(aa,"defaultProps",{onChange:()=>{},disabled:!1,sideButtons:!0,value:0,styles:{},viewAllButton:!1,onViewAll:()=>{}});const c_=()=>{const[e,t]=N.useState([]),[n,r]=N.useState(0),[i,o]=N.useState(1),[s,a]=N.useState(5),[c,u,d]=Xr(async h=>{let y=(i-1)*h;const _=await Yr.getAll(h,y);t(_.data.results);let C=_.data.count;r(sa(C,h))});N.useEffect(()=>{c(s)},[i,s]);const f=h=>{o(h)},g=()=>{a(n*s),o(1)};return!e.length&&!u&&!d?l.jsx("h1",{style:{textAlign:"center"},children:"В избранном ничего нет :/"}):d?l.jsxs("h1",{style:{textAlign:"center"},children:["Произошла ошибка (",d,")"]}):l.jsxs(l.Fragment,{children:[u&&l.jsx("h1",{style:{textAlign:"center"},children:"Идет загрузка..."}),l.jsx(gm,{list:e}),l.jsx(aa,{value:i,onChange:f,onViewAll:g,viewAllButton:!0,pages:n})]})};const mm=function(e){return l.jsxs("div",{className:"viewedElem",children:[l.jsx("img",{src:"/images/apartment.png",alt:""}),l.jsxs("p",{children:[e.results.perimetrs," м², ",e.results.rooms==0?"":e.results.rooms,e.results.rooms==0?"Гостинка":e.results.rooms>1?"-х комнатная":" комнатная"]}),l.jsxs("h3",{children:[e.results.price,"₽ / мес."]}),l.jsx("p",{children:e.results.address})]})};const Iu=function(){const[e,t]=N.useState([]),[n,r]=N.useState(0),[i,o]=N.useState(1),s=4,[a,c]=N.useState(0),[u,d,f]=Xr(async h=>{let y=(i-1)*h;const _=await Yr.getAll(h,y);t(_.data.results),c(_.data.count),r(sa(a,h))});N.useEffect(()=>{u(s)},[i]);const g=h=>{o(h)};return l.jsx(l.Fragment,{children:l.jsxs("section",{className:"viewedSection",children:[l.jsxs("div",{className:"viewedTittle",children:[l.jsxs("h2",{children:["Недавно просмотренные ",l.jsx("span",{children:a})]}),l.jsxs("div",{className:"viewedBtnSection",children:[l.jsx("button",{className:"btnViewed",children:"Посмотреть все Недавние"}),l.jsxs("div",{className:"viewedBtn",children:[l.jsx("button",{className:"btnPrevious",onClick:()=>g(i!==1?i-1:i),children:l.jsx("svg",{width:"9",height:"16",viewBox:"0 0 9 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:l.jsx("path",{d:"M0.238707 8.62179L6.83881 15.7424C7.15713 16.0859 7.6732 16.0859 7.99148 15.7424L8.76127 14.9119C9.07904 14.5691 9.07965 14.0134 8.76263 13.6698L3.53193 7.99998L8.76263 2.33019C9.07965 1.98655 9.07904 1.43091 8.76127 1.08808L7.99148 0.257567C7.67316 -0.0858556 7.15709 -0.0858556 6.83881 0.257567L0.238741 7.37821C-0.0795746 7.72159 -0.0795746 8.27837 0.238707 8.62179Z",fill:"black"})})}),l.jsx("button",{className:"btnNext",onClick:()=>g(il.jsx(l.Fragment,{children:l.jsx(mm,{results:h},y)}))})})]})})};const Rf=function(){return l.jsxs(l.Fragment,{children:[l.jsx("h2",{children:"Избранное"}),l.jsx(c_,{}),l.jsx(Iu,{})]})},u_=P.section` + display: flex; + justify-content: space-between; + margin-top: 24px; + padding: 0 3% 0 3%; +`,Nf=P.div` + display: flex; + align-items: center; + & h2 { + margin: 0px; + padding: 0px; + margin-left: 31px; + font-size: 24px; + color: #222; + } +`,d_=P.button` + display: flex; + justify-content: space-evenly; + align-items: center; + width: 180px; + height: 36px; + color: #BABABA; + background: #fff; + border: 1px solid #ccc; + border-radius: 12px; + font-size: 15px; +`,Af=P.button` + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 20px; + background: #fff; + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25); + margin-right: 10px; +`,f_=function({title:e,totalPages:t,page:n,changePage:r,displayPages:i}){let[o,s]=o_(t,n);return l.jsxs(u_,{children:[l.jsxs(Nf,{children:[l.jsx(Mn,{to:"/",children:l.jsxs(d_,{children:[l.jsx(Y,{src:"/images/icons/left-arrow-light.svg",width:10,height:16}),"Вернуться назад"]})}),l.jsx("h2",{children:e})]}),l.jsx(Nf,{children:i?l.jsxs(l.Fragment,{children:[l.jsx(Af,{onClick:()=>r(o),children:l.jsx(Y,{src:"/images/icons/left-arrow.svg",width:9,height:16})}),l.jsx(Af,{onClick:()=>r(s),children:l.jsx(Y,{src:"/images/icons/right-arrow.svg",width:9,height:16})})]}):null})]})},h_=P.div` + width: 20%; + margin-top: 26px; + position:relative; +`,p_=P.img` + width: 100%; +`,g_=P.h3` + margin-top: 16px; + font-weight: 600; + font-size: 20px; + color: #222; +`,m_=P.p` + margin-top: 16px; + font-size: 16px; + color: #0050A1; +`,v_=P.div` + display: flex; + margin-top: 9px; + & p { + font-weight: 500; + font-size: 15px; + color: #A9A9A9; + } +`,If=P.div` + display: flex; + justify-content: space-around; + align-items: center; + width: fit-content; + height: 38px; + border: 1px solid #A9A9A9; + border-radius: 16px; + margin-right: 8px; + padding-right: 8px; +`,y_=P.button` + width: 180px; + height: 36px; + background: #175FA9; + border-radius: 12px; + font-weight: 500; + font-size: 16px; + color: #fff; + position: absolute; + bottom:-62px; +`,x_=function(e){return l.jsxs(h_,{children:[l.jsx(p_,{src:"/images/apartment.png"}),l.jsxs(g_,{children:[e.results.price," ₽ / мес."]}),l.jsx(m_,{children:e.results.address}),l.jsxs(v_,{children:[l.jsxs(If,{children:[l.jsx(Y,{src:"/images/icons/bus.svg",width:20,height:21}),l.jsxs("p",{children:[e.results.timeToBus," мин"]})]}),l.jsxs(If,{children:[l.jsx(Y,{src:"/images/icons/train.svg",width:18,height:20}),l.jsxs("p",{children:[e.results.timeToTrain," мин"]})]})]}),l.jsx(y_,{children:"Показать контакты"})]})},w_=P.section` + display: flex; + justify-content: space-between; + padding-left: 3%; +`,__=P.div` + width: 19%; +`,Ka=P.h3` + font-weight: 600; + font-size: 16px; + display: flex; + align-items: center; +`,Qa=P.div` + margin-top: 86px; +`,Ja=P.p` + margin-left: 3%; + font-weight: 500; + font-size: 16px; + color: rgba(0, 0, 0, 0.5); +`,Ga=P.div` + height: 2px; + margin-top: 8px; + width: 100%; + background-color: #CCC; +`,Ya=P.section` + display: flex; + justify-content: space-between; + margin-left: 3%; +`,me=P.h3` + margin-top: 33px; + font-weight: 600; + font-size: 16px; +`,Xe=P.p` + color: rgba(0, 0, 0, 0.5); + margin-top: 33px; + font-weight: 600; + font-size: 16px; +`,Xa=P.div` + width: 20%; + text-align: center; +`,S_=()=>{const[e,t]=N.useState([]),[n,r]=N.useState(0),[i,o]=N.useState(1),s=4,[a,c,u]=Xr(async f=>{let g=(i-1)*f;const h=await Yr.getAll(f,g);t(h.data.results);let y=h.data.count;r(sa(y,f))});N.useEffect(()=>{a(s)},[i]);const d=f=>{o(f)};return l.jsxs(l.Fragment,{children:[l.jsx(f_,{title:"Сравнения квартир",totalPages:n,page:i,changePage:d,displayPages:!0}),l.jsxs(w_,{children:[l.jsxs(__,{children:[l.jsx(Ka,{style:{height:300},children:"Фото"}),l.jsx(Ka,{style:{height:1},children:"Cтоимость"}),l.jsx(Ka,{style:{height:65},children:"Адрес"})]}),e.map((f,g)=>l.jsx(l.Fragment,{children:l.jsx(x_,{results:f})}))]}),l.jsxs(Qa,{children:[l.jsx(Ja,{children:"Характеристики"}),l.jsx(Ga,{})]}),l.jsxs(Ya,{children:[l.jsxs("div",{children:[l.jsx(me,{children:"Количество комнат"}),l.jsx(me,{children:"Этаж"}),l.jsx(me,{children:"Общая площадь"}),l.jsx(me,{children:"Санузел"})]}),e.map((f,g)=>l.jsxs(Xa,{children:[l.jsx(me,{children:f.rooms===0?"Гостинка":f.rooms}),l.jsxs(me,{children:[f.floor," из ",f.floorHouse]}),l.jsxs(me,{children:[f.perimetrs," м²"]}),l.jsx(Xe,{children:f.isBathroom?"✓":"—"})]}))]}),l.jsxs(Qa,{children:[l.jsx(Ja,{children:"Удобства"}),l.jsx(Ga,{})]}),l.jsxs(Ya,{children:[l.jsxs("div",{children:[l.jsx(me,{children:"Мебель"}),l.jsx(me,{children:"Интернет"}),l.jsx(me,{children:"Телевизор"}),l.jsx(me,{children:"Стиральная машинка"}),l.jsx(me,{children:"Холодильник"}),l.jsx(me,{children:"Кондиционер"}),l.jsx(me,{children:"Можно с детьми"}),l.jsx(me,{children:"Можно с животными"}),l.jsx(me,{children:"Свежий ремонт"})]}),e.map((f,g)=>l.jsxs(Xa,{children:[l.jsx(Xe,{children:f.isFurniture?"✓":"—"}),l.jsx(Xe,{children:f.isInternet?"✓":"—"}),l.jsx(Xe,{children:f.isTelevision?"✓":"—"}),l.jsx(Xe,{children:f.isWasher?"✓":"—"}),l.jsx(Xe,{children:f.isRefrigerator?"✓":"—"}),l.jsx(Xe,{children:f.isAirConditioning?"✓":"—"}),l.jsx(Xe,{children:f.isChild?"✓":"—"}),l.jsx(Xe,{children:f.isAnimal?"✓":"—"}),l.jsx(Xe,{children:f.isFreshRepair?"✓":"—"})]}))]}),l.jsxs(Qa,{children:[l.jsx(Ja,{children:"О здании"}),l.jsx(Ga,{})]}),l.jsxs(Ya,{children:[l.jsxs("div",{children:[l.jsx(me,{children:"Высота потолков"}),l.jsx(me,{children:"Количество этажей"}),l.jsx(me,{children:"Лифт"}),l.jsx(me,{children:"Мусоропровод"}),l.jsx(me,{children:"Закрытая парковка"}),l.jsx(me,{children:"Охрана или консьерж"})]}),e.map((f,g)=>l.jsxs(Xa,{children:[l.jsxs(me,{children:[f.ceilingHeight," м"]}),l.jsx(me,{children:f.floorHouse}),l.jsx(Xe,{children:f.isElevator?"✓":"—"}),l.jsx(Xe,{children:f.isGarbageChute?"✓":"—"}),l.jsx(Xe,{children:f.isParking?"✓":"—"}),l.jsx(Xe,{children:f.isConcierge?"✓":"—"})]}))]})]})},Lf=function(){return l.jsxs(l.Fragment,{children:[l.jsx(S_,{}),l.jsx(Iu,{})]})},j_=function(){const[e,t]=N.useState([]),[n,r]=N.useState(0),[i,o]=N.useState(1),s=4,[a,c]=N.useState(0),[u,d,f]=Xr(async h=>{let y=(i-1)*h;const _=await Yr.getAll(h,y);t(_.data.results),c(_.data.count),r(sa(a,h))});N.useEffect(()=>{u(s)},[i]);const g=h=>{o(h)};return l.jsx(l.Fragment,{children:l.jsxs("section",{className:"viewedSection",children:[l.jsxs("div",{className:"viewedTittle",children:[l.jsxs("h2",{children:["Похожие объявления ",l.jsx("span",{children:a})]}),l.jsxs("div",{className:"viewedBtnSection",children:[l.jsx("button",{className:"btnViewed",children:"Посмотреть все Похожие"}),l.jsxs("div",{className:"viewedBtn",children:[l.jsx("button",{className:"btnPrevious",onClick:()=>g(i!==1?i-1:i),children:l.jsx("svg",{width:"9",height:"16",viewBox:"0 0 9 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:l.jsx("path",{d:"M0.238707 8.62179L6.83881 15.7424C7.15713 16.0859 7.6732 16.0859 7.99148 15.7424L8.76127 14.9119C9.07904 14.5691 9.07965 14.0134 8.76263 13.6698L3.53193 7.99998L8.76263 2.33019C9.07965 1.98655 9.07904 1.43091 8.76127 1.08808L7.99148 0.257567C7.67316 -0.0858556 7.15709 -0.0858556 6.83881 0.257567L0.238741 7.37821C-0.0795746 7.72159 -0.0795746 8.27837 0.238707 8.62179Z",fill:"black"})})}),l.jsx("button",{className:"btnNext",onClick:()=>g(il.jsx(l.Fragment,{children:l.jsx(mm,{results:h},y)}))})})]})})};var vm={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var r=[],i=0;i{const u=r[c];delete r[c];let d,f,g;typeof u=="object"&&u!=null?{span:d,offset:f,order:g}=u:d=u;const h=c!==o?`-${c}`:"";d&&s.push(d===!0?`${t}${h}`:`${t}${h}-${d}`),g!=null&&a.push(`order${h}-${g}`),f!=null&&a.push(`offset${h}-${f}`)}),[{...r,className:so(n,...s,...a)},{as:e,bsPrefix:t,spans:s}]}const wm=N.forwardRef((e,t)=>{const[{className:n,...r},{as:i="div",bsPrefix:o,spans:s}]=C_(e);return l.jsx(i,{...r,ref:t,className:so(n,!s.length&&o)})});wm.displayName="Col";const le=wm,_m=N.forwardRef(({bsPrefix:e,fluid:t=!1,as:n="div",className:r,...i},o)=>{const s=la(e,"container"),a=typeof t=="string"?`-${t}`:"-fluid";return l.jsx(n,{ref:o,...i,className:so(r,t?`${s}${a}`:s)})});_m.displayName="Container";const O_=_m,Sm=N.forwardRef(({bsPrefix:e,className:t,as:n="div",...r},i)=>{const o=la(e,"row"),s=Fu(),a=Mu(),c=`${o}-cols`,u=[];return s.forEach(d=>{const f=r[d];delete r[d];let g;f!=null&&typeof f=="object"?{cols:g}=f:g=f;const h=d!==a?`-${d}`:"";g!=null&&u.push(`${c}${h}-${g}`)}),l.jsx(n,{ref:i,...r,className:so(t,o,...u)})});Sm.displayName="Row";const at=Sm;function P_(e,t=ym,n=xm){const r=[];return Object.entries(e).forEach(([i,o])=>{o!=null&&(typeof o=="object"?t.forEach(s=>{const a=o[s];if(a!=null){const c=s!==n?`-${s}`:"";r.push(`${i}${c}-${a}`)}}):r.push(`${i}-${o}`))}),r}const jm=N.forwardRef(({as:e="div",bsPrefix:t,className:n,direction:r,gap:i,...o},s)=>{t=la(t,r==="horizontal"?"hstack":"vstack");const a=Fu(),c=Mu();return l.jsx(e,{...o,ref:s,className:so(n,t,...P_({gap:i},a,c))})});jm.displayName="Stack";const Dn=jm;var bm={exports:{}};(function(e,t){(function(r,i){e.exports=i(zu(),N)})(Jt,function(n,r){return function(i){var o={};function s(a){if(o[a])return o[a].exports;var c=o[a]={i:a,l:!1,exports:{}};return i[a].call(c.exports,c,c.exports,s),c.l=!0,c.exports}return s.m=i,s.c=o,s.d=function(a,c,u){s.o(a,c)||Object.defineProperty(a,c,{enumerable:!0,get:u})},s.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},s.t=function(a,c){if(1&c&&(a=s(a)),8&c||4&c&&typeof a=="object"&&a&&a.__esModule)return a;var u=Object.create(null);if(s.r(u),Object.defineProperty(u,"default",{enumerable:!0,value:a}),2&c&&typeof a!="string")for(var d in a)s.d(u,d,function(f){return a[f]}.bind(null,d));return u},s.n=function(a){var c=a&&a.__esModule?function(){return a.default}:function(){return a};return s.d(c,"a",c),c},s.o=function(a,c){return Object.prototype.hasOwnProperty.call(a,c)},s.p="",s(s.s=5)}([function(i,o,s){function a(f,g){for(var h=0;h0||y.image.height>0)&&_(!0))})}},{key:"loadImage",value:function(h){var y=this,_=new Image,C=!1;_.onload=function(){C||y.pumpLoaded()},_.onerror=function(){C||y.pumpLoaded()},_.src=h,C===!1&&(_.width>0||_.height>0)&&(C=!0,this.pumpLoaded())}},{key:"loadVideo",value:function(h){var y=this,_=document.createElement("video");_.addEventListener("loadeddata",function(){y.pumpLoaded()}),_.addEventListener("error",function(){y.pumpLoaded()}),_.setAttribute("src",h)}},{key:"pumpLoaded",value:function(){this.loaded+=1,this.loaded===this.toLoad&&this.resolver(!0)}},{key:"startLoad",value:function(h){h.match(/\.(mp4|webm)/i)&&this.loadVideo(h),h.match(/\.(png|jp(e)?g|gif|webp)/i)&&this.loadImage(h)}},{key:"loadMultiple",value:function(h){var y=this;return this.loaded=0,this.toLoad=h.length,new Promise(function(_){y.resolver=_,h.forEach(function(C){y.startLoad(C)})})}}]),f}();function u(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],g=arguments.length>1?arguments[1]:void 0;if(!g)return f.join(" ").trim();for(var h=[],y=f.length;y--;)g[f[y]]&&h.push(g[f[y]]);return h}function d(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",g=arguments.length>1?arguments[1]:void 0;return g&&g[f]||f}},function(i,o,s){s.d(o,"a",function(){return g}),s.d(o,"b",function(){return h}),s.d(o,"c",function(){return y}),s.d(o,"e",function(){return _}),s.d(o,"d",function(){return C}),s.d(o,"g",function(){return w}),s.d(o,"f",function(){return m});var a=s(0);function c(p){return function(j){if(Array.isArray(j)){for(var b=0,k=new Array(j.length);b2&&arguments[2]!==void 0?arguments[2]:{},_=y.tolerance,C=_===void 0?0:_,w=y.propertyName;return new Promise(function(m){if(g){var p=null,x=h.charAt(0).toUpperCase()+h.slice(1),j=0;g.style["Webkit"+x]!==void 0&&(p="webkit"+x+"End"),g.style.OTransition!==void 0&&(p="o"+h+"End"),g.style[h]!==void 0&&(p=h+"end"),g.clearCssEndEvent&&g.clearCssEndEvent(),g.clearCssEndEvent=function(){g.removeEventListener(p,b)},g.addEventListener(p,b)}else m(!1);function b(k){if((k.srcElement||k.target)===g){if(j>=C){if(w&&w!==k.propertyName)return;g.removeEventListener(p,b),m(k)}j+=1}}})}function f(g){window&&window.requestAnimationFrame(function(){window.requestAnimationFrame(g)})}Object.defineProperty(c,"__esModule",{value:!0}),c.setCssEndEvent=d,c.beforeCssLayout=function(g){window&&window.requestAnimationFrame(g)},c.beforeNextCssLayout=f,c.beforeFutureCssLayout=function(g,h){(function y(_,C){window&&_&&Number.isInteger(_)&&_>0?window.requestAnimationFrame(function(){y(_-1,C)}):C()})(g+1,h)},c.onceNextCssLayout=function(){return new Promise(function(g){f(g)})},c.onceTransitionEnd=function(g){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise(function(y){d(g,"transition",h).then(y)})},c.onceAnimationEnd=function(g){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise(function(y){d(g,"animation",h).then(y)})}}])},function(i,o,s){i.exports=s(13)},,,,,,,,function(i,o,s){s.r(o);var a=s(3),c=s.n(a),u=s(2),d=s.n(u),f=s(4),g=s(0),h=s(1);function y(L){return(y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(E){return typeof E}:function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E})(L)}function _(L,I){for(var E=0;EA);v.props.onClick({index:A,direction:q})}),v.rootElement=E.rootElement,v}return function(v,S){if(typeof S!="function"&&S!==null)throw new TypeError("Super expression must either be null or a function");v.prototype=Object.create(S&&S.prototype,{constructor:{value:v,writable:!0,configurable:!0}}),S&&m(v,S)}(I,L),function(v,S,T){return S&&_(v.prototype,S),T&&_(v,T),v}(I,[{key:"renderBullets",value:function(){var v=this,S=this.props,T=S.cssModule,A=S.selected,q=S.media;return(q===void 0?[]:q).map(function(X,K){var se=K===A?Object(g.c)("".concat(v.rootElement,"__bullets--active"),T):null;return c.a.createElement("button",{key:"bullet-".concat(K),"data-index":K,onClick:v.bulletClick,className:se},K)})}},{key:"render",value:function(){var v=this.props,S=v.cssModule,T=v.rootElement;return c.a.createElement("nav",{className:Object(g.c)("".concat(T,"__bullets"),S)},this.renderBullets())}}]),I}(c.a.Component);function j(L){return(j=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(E){return typeof E}:function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E})(L)}function b(L,I){for(var E=0;E=0||(Se[K]=q[K]);return Se}(L,I);if(Object.getOwnPropertySymbols){var T=Object.getOwnPropertySymbols(L);for(v=0;v=0||Object.prototype.propertyIsEnumerable.call(L,E)&&(S[E]=L[E])}return S}function U(L,I){for(var E=0;E0),se=Math.abs(A);v.touchEnabled!==!1?se>=10&&(v.loading===!1?v.goTo({index:K?v.index+1:v.index-1,direction:K,touch:!0}):v.direction===!0?(A+=10,Math.abs(A)>q.offsetWidth?A=-q.offsetWidth:A>0&&(A=0),q.style.transform="translate3d(".concat(A,"px, 0, 0)"),X.style.transform="translate3d(calc(100% + ".concat(A,"px), 0, 0)")):(A-=10,Math.abs(A)>q.offsetWidth?A=q.offsetWidth:A<0&&(A=0),q.style.transform="translate3d(".concat(A,"px, 0, 0)"),X.style.transform="translate3d(calc(-100% + ".concat(A,"px), 0, 0)"))):se>20&&(v.touchEnabled=!0,v.touchStartPoint=T.touches[0].clientX)}}),ye(kt(v),"touchEnd",function(){!v.animating&&v.touchStartPoint&&v.loading&&(v.touchStartPoint=null,v.animating=!0,v.touchEnabled=!1,v.animateMobileEnd(function(){v.index=v.nextIndex,v.setState({index:v.index}),v.onTransitionEnd(),v.animating=!1,v.loading=!1,v.unchargeIndex()}))}),ye(kt(v),"bulletClick",function(S){var T=S.currentTarget,A=parseInt(T.getAttribute("data-index"),10);v.goTo({index:A,direction:!(v.index>A)},function(){Object(f.onceNextCssLayout)().then(function(){Object(h.a)(T,v.classNames.bulletsLoading)})})}),v.rootElement=E.rootElement||ir,v.boxA=null,v.boxB=null,v.loaded=[],v.active="boxA",v.loader="boxB",v.nextIndex=null,v.loading=!1,v.media=null,v.started=!1,v.touchEnabled=!1,v.setupStartup(E),v}return function(v,S){if(typeof S!="function"&&S!==null)throw new TypeError("Super expression must either be null or a function");v.prototype=Object.create(S&&S.prototype,{constructor:{value:v,writable:!0,configurable:!0}}),S&&qt(v,S)}(I,L),function(v,S,T){return S&&qe(v.prototype,S),T&&qe(v,T),v}(I,[{key:"componentDidMount",value:function(){var v=this;Object(h.a)(this.boxA,this.classNames.active),this.props.startupScreen&&(this.buttons&&(Object(h.a)(this.buttons.element,this.classNames.controlsHidden),Object(h.a)(this.buttons.element,this.classNames.controlsActive)),this.props.startup===!0&&this.media.length>0&&this.startup()),this.props.onFirstMount&&this.props.onFirstMount(Ee({},this.getInfo())),this.buttons&&Object(f.onceNextCssLayout)().then(function(){v.buttons&&v.buttons.element&&Object(h.b)(v.buttons.element,v.classNames.controlsHidden)})}},{key:"UNSAFE_componentWillReceiveProps",value:function(v){if(this.checkChildren(v),this.setupClassNames(Object(h.e)(v.cssModule)),v.name===this.props.name)if(v.startup!==!0||this.started!==!1)if(v.selected===this.props.selected)this.refreshSlider();else{var S=this.getIndex(v.selected),T=v.infinite===!0&&S===0&&this.index===this.media.length-1||!(this.index>S);this.goTo({index:S,direction:T})}else this.startup();else this.resetSlider(v.selected)}},{key:"onTransitionStart",value:function(){var v=this.media[this.index],S=this.media[this.nextIndex],T=Ee({},this.getInfo(),{nextSlide:this[this.loader],nextIndex:this.nextIndex,nextMedia:S});this.props.onTransitionStart&&this.props.onTransitionStart(T),v&&v.onTransitionStartOut&&v.onTransitionStartOut(T),S&&S.onTransitionStartIn&&S.onTransitionStartIn(T)}},{key:"onTransitionRequest",value:function(v,S){var T=this.media[this.index],A=this.checkIndex(S),q=this.media[A],X=Ee({eventName:v},this.getInfo(),{nextSlide:null,nextIndex:A,nextMedia:q});this.props.onTransitionRequest&&this.props.onTransitionRequest(X),T&&T.onTransitionRequestOut&&T.onTransitionRequestOut(X),q&&q.onTransitionRequestIn&&q.onTransitionRequestIn(X)}},{key:"onTransitionEnd",value:function(){var v=this.media[this.index],S=Ee({},this.getInfo());this.props.onTransitionEnd&&this.props.onTransitionEnd(S),v&&v.onTransitionEnd&&v.onTransitionEnd(S)}},{key:"getRootClassName",value:function(){var v=this.props,S=v.animation,T=v.className,A=v.cssModule,q=v.disabled,X=v.fillParent,K=v.infinite,se=v.organicArrows;return Object(h.d)({animation:S,className:T,cssModule:Object(h.e)(A),current:this.state.index,disabled:q,fillParent:X,infinite:K,organicArrows:se,rootElement:this.rootElement,total:this.media.length})}},{key:"setupStartup",value:function(v){if(this.checkChildren(v),this.setupClassNames(Object(h.e)(v.cssModule)),v.startupScreen){var S=this.getIndex(this.props.selected);this.index=null,this.state={index:this.index,boxA:{className:this.classNames.startUp,children:v.startupScreen},boxB:this.media[S]||null}}else this.started=!0,this.index=this.getIndex(this.props.selected),this.state={index:this.index,boxA:this.media[this.index]||null,boxB:null}}},{key:"getInfo",value:function(){return{slides:this.media.length,currentIndex:this.index,currentSlide:this[this.active],currentMedia:this.media[this.index],element:this.slider}}},{key:"getProgressBar",value:function(){if(!document)return{};var v=document.createElement("div");return v.className=this.classNames.bar,v}},{key:"setupClassNames",value:function(v){this.classNames=Object(h.f)(this.rootElement,v)}},{key:"getIndex",value:function(v){var S=0;return typeof v=="number"?v:(typeof v=="string"&&this.media.forEach(function(T,A){T.slug===v&&(S=A)}),S)}},{key:"refreshSlider",value:function(){var v;if(this.loading!==!0&&this.props.startup!==!1&&this.index!==null){var S=this.index;this.setState((ye(v={index:S},this.active,this.media[this.getIndex(S)]),ye(v,this.loader,null),v))}}},{key:"startup",value:function(){var v=this;this.started=!0,setTimeout(function(){v.goTo({index:v.props.selected,direction:!0,touch:!1})},this.props.startupDelay||75)}},{key:"resetSlider",value:function(){var v,S=this,T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.index=T,this.setState((ye(v={index:T},this.active,this.media[this.getIndex(T)]),ye(v,this.loader,null),v),function(){S.props.onResetSlider&&S.props.onResetSlider(Ee({},S.getInfo()))})}},{key:"checkChildren",value:function(v){v.children&&(v.children!==this.props.children||this.props.children&&!this.media)?this.media=Object(h.g)(v.children):v.media&&v.media.length?this.media=v.media:this.media||(this.media=[])}},{key:"startBarAnimation",value:function(v){var S=this,T=v.active;return new Promise(function(A){S.bar=S.getProgressBar(),T.appendChild(S.bar),Object(f.onceNextCssLayout)().then(function(){Object(f.onceNextCssLayout)().then(function(){Object(h.a)(S.bar,S.classNames.barActive),A()})})})}},{key:"endBarAnimation",value:function(v){var S=this;this.bar&&Object(f.onceNextCssLayout)().then(function(){Object(f.onceTransitionEnd)(S.bar).then(function(){v()}),Object(h.a)(S.bar,S.classNames.barEnd)})}},{key:"loadContent",value:function(v,S){var T=this;return new Promise(function(A,q){if(T.props.onLoadStart||S&&S.onLoadStart){var X=T.props.onLoadStart||S&&S.onLoadStart;return T.startBarAnimation({active:v}),void X(Ee({next:function(){T.endBarAnimation(function(){A(T.bar)})},error:q},T.getInfo()))}if(S&&(S.source||S.preload)){var K=S.preload?S.preload:S.source&&[S.source]||[];return T.checkLoadedUrls(K)===!0?void A(null):(T.startBarAnimation({active:v}),void or.loadMultiple(K).then(function(){T.pushLoaded(K),T.endBarAnimation(function(){A(T.bar)})}))}A(null)})}},{key:"pushLoaded",value:function(v){this.loaded=[].concat(ke(this.loaded),ke(v))}},{key:"checkLoadedUrls",value:function(v){var S=this,T=!0;return v.forEach(function(A){S.loaded.includes(A)||(T=!1)}),T}},{key:"startAnimationMobile",value:function(){var v=this.direction,S=this[this.active],T=this[this.loader],A=v?this.classNames.contentMoveRight:this.classNames.contentMoveLeft,q=v?this.classNames.contentMoveLeft:this.classNames.contentMoveRight;this.props.onTransitionStart&&this.props.onTransitionStart(Ee({},this.getInfo(),{nextSlide:this[this.loader],nextIndex:this.nextIndex,nextMedia:this.media[this.nextIndex]}));var X=S.querySelector(".".concat(Object(h.c)(this.classNames.content)));Object(h.a)(X,q),Object(h.a)(X,this.classNames.contentExit);var K=T.querySelector(".".concat(Object(h.c)(this.classNames.content)));Object(h.a)(K,A),Object(h.a)(K,this.classNames.contentStatic),Object(h.a)(S,this.classNames.animated),Object(h.a)(T,this.classNames.animated)}},{key:"animateMobileEnd",value:function(v){var S=this,T=this.direction,A=this[this.active],q=this[this.loader],X=T?this.classNames.moveLeft:this.classNames.moveRight,K=T?this.classNames.contentMoveRight:this.classNames.contentMoveLeft,se=T?this.classNames.contentMoveLeft:this.classNames.contentMoveRight,Se=q.querySelector(".".concat(Object(h.c)(this.classNames.content))),Ae=A.querySelector(".".concat(Object(h.c)(this.classNames.content)));Object(h.b)(Se,this.classNames.contentStatic),Object(h.a)(q,this.classNames.animatedMobile),Object(h.a)(A,this.classNames.animatedMobile),Object(f.onceNextCssLayout)().then(function(){q.style.transform="translate3d(0, 0, 0)",A.style.transform="translate3d(".concat(S.direction?"-":"","100%, 0, 0)"),Object(f.onceTransitionEnd)(A).then(function(){S.loading&&(Object(h.b)(A,S.classNames.animated),Object(h.b)(q,S.classNames.animated),Object(h.a)(q,S.classNames.active),Object(h.b)(A,S.classNames.active),Object(h.b)(A,X),Object(h.b)(q,S.classNames.animatedMobile),Object(h.b)(A,S.classNames.animatedMobile),Object(h.b)(Ae,se),Object(h.b)(Ae,S.classNames.contentExit),Object(h.b)(Se,K),S.buttons&&setTimeout(function(){S.buttons&&Object(h.b)(S.buttons.element,S.classNames.controlsActive)},S.props.controlsReturnDelay),S.activeArrow&&(Object(h.b)(S.activeArrow,S.activeArrowClass),S.activeArrow=null,S.activeArrowClass=null),S.active=S.active==="boxA"?"boxB":"boxA",S.loader=S.active==="boxA"?"boxB":"boxA",v&&v())})})}},{key:"runAnimation",value:function(v){var S=this,T=v.active,A=v.media,q=v.contentExitMoveClass,X=v.contentEnterMoveClass,K=v.activeContentElement,se=v.loaderContentElement,Se=v.loader,Ae=v.loaderPosition,Ve=v.exitPosition,sn=v.callback,Ye=v.transitionDelay;this.loadContent(T,A).then(function(Hu){Object(h.a)(K,q),Object(h.a)(K,S.classNames.contentExit),Object(h.a)(se,X),Object(h.a)(se,S.classNames.contentStatic),setTimeout(function(){Object(f.onceNextCssLayout)().then(function(){Object(h.a)(T,S.classNames.animated),Object(h.a)(Se,S.classNames.animated),Object(h.b)(se,S.classNames.contentStatic),Object(h.a)(T,S.classNames.exit),Object(h.a)(Se,Ae),Object(h.a)(T,Ve),Object(f.onceAnimationEnd)(T).then(function(){Object(h.a)(Se,S.classNames.active),Object(h.b)(Se,Ae),Object(h.b)(Se,S.classNames.animated),Object(h.b)(T,S.classNames.animated),Object(h.b)(T,S.classNames.active),Object(h.b)(T,Ve),Object(h.b)(T,S.classNames.exit),Object(h.b)(K,q),Object(h.b)(K,S.classNames.contentExit),Object(h.b)(se,X),Hu&&T.removeChild(Hu),S.buttons&&setTimeout(function(){S.buttons&&Object(h.b)(S.buttons.element,S.classNames.controlsActive)},S.props.controlsReturnDelay),S.active=S.active==="boxA"?"boxB":"boxA",S.loader=S.active==="boxA"?"boxB":"boxA";var qm=!S.activeArrow;S.activeArrow&&(Object(f.onceTransitionEnd)(S.activeArrow,{tolerance:S.index===null?0:2}).then(function(){S.releaseTransition()}),Object(h.b)(S.activeArrow,S.activeArrowClass),S.activeArrow=null,S.activeArrowClass=null),sn({release:qm})})})},Ye)})}},{key:"releaseTransition",value:function(){this.loading=!1}},{key:"startAnimation",value:function(v,S,T){var A=this.props.transitionDelay,q=this[this.active],X=this[this.loader],K=v?this.classNames.moveRight:this.classNames.moveLeft,se=v?this.classNames.moveLeft:this.classNames.moveRight,Se=v?this.classNames.contentMoveRight:this.classNames.contentMoveLeft,Ae=v?this.classNames.contentMoveLeft:this.classNames.contentMoveRight,Ve=q.querySelector(".".concat(Object(h.c)(this.classNames.content))),sn=X.querySelector(".".concat(Object(h.c)(this.classNames.content)));q.style.removeProperty("transform"),X.style.removeProperty("transform"),this.onTransitionStart();var Ye={active:q,media:S,contentExitMoveClass:Ae,contentEnterMoveClass:Se,activeContentElement:Ve,loaderContentElement:sn,loader:X,loaderPosition:K,exitPosition:se,callback:T,transitionDelay:A};this.runAnimation(Ye)}},{key:"goTo",value:function(v){var S=this,T=v.index,A=v.direction,q=v.touch,X=q!==void 0&&q,K=this.getIndex(T);this.loading!==!0&&T!==this.index?(this.loading=!0,this.direction=A,X!==!0?this.activateArrows(A,function(){S.chargeIndex(K,function(se){S.renderedLoader=!0,S.startAnimation(A,se,function(Se){var Ae=Se.release,Ve=Ae===void 0||Ae;S.index=S.nextIndex,S.setState({index:S.index},function(){S.onTransitionEnd(),Ve===!0&&S.releaseTransition()})})})}):this.chargeIndex(K,function(){S.activateArrows(A),S.startAnimationMobile()})):this.props.onTransitionReject&&this.props.onTransitionReject(Ee({},this.getInfo(),{forceTransition:function(){S.goTo({index:T,direction:A,touch:X})}}))}},{key:"checkIndex",value:function(v){return v>this.media.length-1?0:v<0?this.media.length-1:v}},{key:"chargeIndex",value:function(v,S){this.nextIndex=this.checkIndex(v);var T={},A=this.media[this.nextIndex];T[this.loader]=Ee({loader:!0},A),this.setState(T,function(){S(A)})}},{key:"unchargeIndex",value:function(){var v={};v[this.loader]=null,this.setState(v,function(){})}},{key:"activateArrows",value:function(v,S){var T=v?"right":"left",A=Object(h.e)(this.props.cssModule),q=Object(h.c)(Object(g.c)("".concat(this.rootElement,"__controls__arrow-").concat(T),A));if(this.buttons){var X=v?this.buttons.next:this.buttons.prev;this.activeArrow=X.querySelector(".".concat(q))}!this.activeArrow||this.buttons&&this.buttons.element&&this.buttons.element.classList.contains(this.classNames.controlsActive)?S&&S():(this.activeArrowClass=Object(g.c)("".concat(this.rootElement,"__controls__arrow-").concat(T,"--active"),A),Object(f.onceTransitionEnd)(this.activeArrow,{tolerance:this.index===null?0:2}).then(function(){S&&S()}),this.buttons&&this.buttons.element&&(Object(h.a)(this.buttons.element,this.classNames.controlsActive),Object(h.a)(this.activeArrow,this.activeArrowClass)))}},{key:"renderBox",value:function(v){var S=this,T={};return this.props.mobileTouch&&(T.onTouchStart=this.touchStart,T.onTouchMove=this.touchMove,T.onTouchEnd=this.touchEnd),c.a.createElement("div",oe({ref:function(q){S["box".concat(v)]=q},className:this.classNames.box},T),this.state["box".concat(v)]&&c.a.createElement(W,{media:this.state["box".concat(v)],className:this.classNames.content}))}},{key:"render",value:function(){var v=this,S=this.props,T=S.cssModule,A=S.organicArrows,q=S.bullets,X=S.style,K=S.customContent,se=S.buttons,Se=S.buttonContentLeft,Ae=S.buttonContentRight,Ve=this.rootElement;return c.a.createElement("div",{ref:function(Ye){v.slider=Ye},className:this.getRootClassName(),style:X},c.a.createElement("div",{ref:function(Ye){v.wrapper=Ye},className:this.classNames.wrapper},c.a.createElement("div",{ref:function(Ye){v.container=Ye},className:this.classNames.container},this.renderBox("A"),this.renderBox("B")),se&&c.a.createElement(H,{rootElement:Ve,cssModule:Object(h.e)(T),onMount:function(Ye){v.buttons=Ye},onNext:this.clickNext,onPrev:this.clickPrev,organicArrows:A,buttonContentLeft:Se,buttonContentRight:Ae}),K),q&&c.a.createElement(x,{cssModule:Object(h.e)(T),rootElement:Ve,media:this.media,selected:this.state.index,onClick:function(Ye){v.onTransitionRequest("bullet",Ye.index),v.goTo(Ye)}}))}}]),I}(c.a.Component);ye(ht,"propTypes",{animation:d.a.string,bullets:d.a.bool,buttonContentLeft:d.a.node,buttonContentRight:d.a.node,buttons:d.a.bool,children:d.a.node,className:d.a.string,controlsReturnDelay:d.a.number,cssModule:d.a.any,customContent:d.a.node,onLoadStart:d.a.func,disabled:d.a.bool,fillParent:d.a.bool,infinite:d.a.bool,media:d.a.array,name:d.a.string,onFirstMount:d.a.func,onResetSlider:d.a.func,onStartupRelease:d.a.func,onTransitionEnd:d.a.func,onTransitionRequest:d.a.func,onTransitionStart:d.a.func,organicArrows:d.a.bool,rootElement:d.a.string,selected:d.a.any,startup:d.a.bool,startupDelay:d.a.number,startupScreen:d.a.object,style:d.a.object,transitionDelay:d.a.number,mobileTouch:d.a.bool}),ye(ht,"defaultProps",{animation:null,bullets:!0,buttonContentLeft:null,buttonContentRight:null,buttons:!0,children:null,className:null,controlsReturnDelay:0,cssModule:null,customContent:null,onLoadStart:null,disabled:!1,fillParent:!1,infinite:!0,media:[],name:"awesome-slider",onFirstMount:null,onResetSlider:null,onStartupRelease:null,onTransitionEnd:null,onTransitionRequest:null,onTransitionStart:null,organicArrows:!0,rootElement:ir,selected:0,startup:!0,startupDelay:0,startupScreen:null,style:{},transitionDelay:0,mobileTouch:!0}),o.default=ht}])})})(bm);var T_=bm.exports;const km=Pn(T_),R_="";const zt=P(Y)` + margin-left: 0px; + margin-right: 0px; +`,N_=P.div` + max-width: 800px; +`,A_=P.div` + max-width: 800px; + max-height: 500px; + + clip-path: inset(0% 0% 5% 0% round 20px); +`,I_=P.div` + font-size: 15px; + line-height: 18px; + font-weight: 300; + color: #C0C0C0; + margin-bottom: 8px; + display: flex; + align-items: center; + + & span { + margin-left: 15px; + font-size: 15px; + line-height: 18px; + font-weight: 300; + color: #C0C0C0; + } +`,L_=P.h3` + font-size: 20px; + line-height: 24px; + font-weight: 500; + margin-bottom: 10px; +`,F_=P.button` + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 20px; + background: #FFFFFF; + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25); + margin-right: 10px; +`,M_=P.button` + display: flex; + align-items: center; + justify-content: center; + background: #FFFFFF; + width: 201px; + height: 28px; + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25); + border-radius: 8px; + font-style: normal; + font-weight: 500; + font-size: 14px; + margin-bottom: 12px; +`,Bf=P.div` + background: #E3F0FF; + border-radius: 20px; + padding: 13px 16px 11px 17px; +`,z_=P.p` + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 18px; + margin-bottom: 15px; +`,B_=P.h3` + font-size: 15px; + line-height: 18px; + text-align: end; +`,ci=P.div` + height: 1px; + margin-top: 9px; + margin-bottom: 9px; + width: 100%; + background-color: #CCC; +`,nl=P.div` + max-width: 256px; + max-height: 160px; + background: #FFFFFF; + border: 1px solid #C0C0C0; + border-radius: 20px; + padding: 8px; + + + &:hover { + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25); + cursor: pointer; + } +`,rl=P.img` + width:100%; + max-height: 120px; + margin-bottom: 4px; + border-radius: 12px; +`,il=P.p` + font-weight: 500; + font-size: 16px; + line-height: 15px; +`,ol=P.span` + font-weight: 500; + font-size: 14px; + line-height: 17px; + color: #BABABA; +`,U_=P.h3` + font-weight: 600; + font-size: 20px; + line-height: 24px; + padding-left: 0px; + margin-top: 35px; + margin-bottom: 10px; +`,$_=P.p` + font-weight: 500; + font-size: 15px; + line-height: 18px; +`,Uf=P.button` + background: #007EFF; + border-radius: 12px; + height: 36px; + width: 100%; + + display: flex; + align-items: center; + justify-content: center; + text-align: center; + + font-weight: 500; + font-size: 16px; + line-height: 19px; + + color: #FFFFFF; + + &:hover { + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25); + cursor: pointer; + } +`,D_=P.button` + border-radius: 12px; + background: #2348CC; + height: 36px; + width: 100%; + + display: flex; + align-items: center; + justify-content: center; + text-align: center; + + font-weight: 500; + font-size: 16px; + line-height: 19px; + color: #FFFFFF; + + &:hover { + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25); + cursor: pointer; + } +`,H_=P.input` + border: 1px solid #CCCCCC; + border-radius: 12px; + height: 36px; + width: 100%; + + font-weight: 500; + font-size: 15px; + line-height: 18px; + + padding-left: 46px; + + &::placeholder { + font-weight: 500; + font-size: 15px; + line-height: 18px; + color: #CCCCCC; + } +`,W_=P.div` + align-items: center; + justify-content: center; + text-align: center; +`,Em=P.p` + font-weight: 500; + font-size: 20px; + line-height: 24px; + color: #000000; +`,xc=P(Em)` + font-size: 15px; + line-height: 18px; +`,q_=P.p` + font-weight: 300; + font-size: 16px; + line-height: 24px; + color: #C0C0C0; +`,V_=P.div` + position: relative; + + & input { + padding-left: 30px; + background-image: url("/images/icons/pencil-gray.svg"); + background-size: 16px 16px; + background-repeat: no-repeat; + background-position: 8px 0.6rem; + } +`,$f=P.table` + margin-left: 15px; + width: 100%; + + & td { + padding-top: 19px; + } +`,lr=e=>l.jsxs(at,{children:[l.jsx(le,{xs:e.columnsize,children:l.jsx(z_,{children:e.title})}),l.jsx(le,{className:"end",children:l.jsx(B_,{children:e.price})})]}),sl=e=>l.jsx(le,{children:l.jsxs(W_,{children:[l.jsx(Em,{children:e.params}),l.jsx(q_,{children:e.title})]})}),al=e=>l.jsxs(at,{style:{marginBottom:16},children:[l.jsx(le,{xs:2,className:"d-flex justify-content-center",children:l.jsx(zt,{src:e.icon,width:e.width,height:e.height})}),l.jsx(le,{children:l.jsx(xc,{children:e.text})})]}),In=e=>l.jsxs(at,{children:[l.jsx(le,{xs:1,children:l.jsx(zt,{src:e.iconFirst,width:20,height:20})}),l.jsx(le,{xs:5,children:l.jsx(xc,{children:e.textFirst})}),l.jsx(le,{xs:1,children:l.jsx(zt,{src:e.iconSecond,width:20,height:20})}),l.jsx(le,{xs:5,children:l.jsx(xc,{children:e.textSecond})})]}),K_=function(){const t=Qy().id,[n,r]=N.useState([]),[i,o,s]=Xr(async a=>{const c=await Yr.getById(a);r(c.data)});return N.useEffect(()=>{i(t)},[]),l.jsx(O_,{fluid:"xl",style:{marginBottom:50,marginTop:50},children:l.jsxs(at,{children:[l.jsx(le,{xs:8,children:l.jsx(Dn,{children:l.jsxs(N_,{children:[l.jsx(A_,{children:l.jsxs(km,{cssModule:R_,bullets:!1,children:[l.jsx("div",{"data-src":"/images/house-s.jpg"}),l.jsx("div",{"data-src":"/images/house-s-2.jpg"})]})}),l.jsxs(at,{children:[l.jsx(le,{xs:4,children:l.jsxs(nl,{children:[l.jsx(rl,{src:"/images/plan.png"}),l.jsx(il,{children:"Планировка"}),l.jsx(ol,{children:"Схема помещений"})]})}),l.jsx(le,{xs:4,children:l.jsxs(nl,{children:[l.jsx(rl,{src:"/images/location.png"}),l.jsx(il,{children:"Расположение"}),l.jsx(ol,{children:"Показать на карте"})]})}),l.jsx(le,{xs:4,children:l.jsxs(nl,{children:[l.jsx(rl,{src:"/images/panorama.png"}),l.jsx(il,{children:"Панорама"}),l.jsx(ol,{children:"Обзор вокруг"})]})})]}),l.jsxs("div",{children:[l.jsx(U_,{children:"Описание"}),l.jsx($_,{children:n.description})]}),l.jsx(j_,{}),l.jsx(Iu,{})]})})}),l.jsx(le,{xs:4,children:l.jsxs(Dn,{children:[l.jsx("div",{style:{marginBottom:12},children:l.jsxs(I_,{children:[n.dateCreate," ",l.jsx("span",{children:"78"})," ",l.jsx(zt,{style:{marginLeft:5},src:"/images/icons/eye.svg",width:16,height:10})]})}),l.jsxs(L_,{children:[n.perimetrs," м², ",n.rooms==0?"":n.rooms,n.rooms==0?"Гостинка":n.rooms>1?"-х комнатная":" комнатная"]}),l.jsx("div",{children:l.jsxs(at,{children:[l.jsx(le,{xs:10,children:l.jsxs("h1",{style:{marginBottom:12},children:[n.price," ₽ / мес."]})}),l.jsx(le,{xs:2,children:l.jsx(F_,{children:l.jsx(zt,{src:"/images/icons/heart.svg",width:18,height:16})})})]})}),l.jsxs(M_,{children:[l.jsx(zt,{style:{marginRight:5},src:"/images/icons/stats.svg",width:16,height:12}),"Добавить к сравнению"]}),l.jsxs(Bf,{children:[l.jsxs(Dn,{children:[l.jsx(lr,{columnsize:9,title:"Оплата в первый месяц",price:`${n.price} ₽`}),l.jsx(lr,{columnsize:9,title:"Залог",price:`${n.bail} ₽`}),l.jsx(lr,{columnsize:9,title:"Комиссия агенству",price:`${n.agencyCommission} ₽`}),l.jsx(lr,{columnsize:9,title:"Коммун. услуги",price:`${n.utilitiesPrice}`})]}),l.jsx(ci,{}),l.jsxs(Dn,{children:[l.jsx(lr,{columnsize:8,title:"Итого",price:`${n.price+n.bail+n.agencyCommission} ₽ + КУ`}),l.jsx(lr,{columnsize:9,title:"Мин. срок аренды",price:`${n.minimumLeasePeriod} мес.`})]})]}),l.jsxs(at,{style:{marginTop:14},children:[l.jsx(le,{xs:7,children:l.jsxs(Uf,{children:[l.jsx(zt,{style:{marginRight:5},src:"/images/icons/two-people.svg",width:20,height:16}),"Снимать вдвоём"]})}),l.jsx(le,{children:l.jsxs(Uf,{children:[l.jsx(zt,{style:{marginRight:5},src:"/images/icons/people.svg",width:14,height:16}),"Снять"]})})]}),l.jsxs(D_,{style:{marginTop:12},children:[l.jsx(zt,{style:{marginRight:5},src:"/images/icons/phone-white.svg",width:16,height:16}),"Показать телефон +7 (xxx) xxx-xx-xx"]}),l.jsx(V_,{children:l.jsx(H_,{style:{marginTop:12},placeholder:"Добавить заметку"})}),l.jsx(ci,{style:{marginTop:17}}),l.jsxs(at,{children:[l.jsx(sl,{params:`${n.perimetrs} м²`,title:"общая"}),l.jsx(sl,{params:`${n.ceilingHeight} м`,title:"потолки"}),l.jsx(sl,{params:`${n.floor} этаж`,title:`из ${n.floorHouse}`})]}),l.jsx(ci,{}),l.jsxs($f,{children:[l.jsx("tr",{children:l.jsx("td",{children:l.jsx(In,{iconFirst:"/images/icons/chair-dark.svg",textFirst:"Мебель",iconSecond:"/images/icons/paw-dark.svg",textSecond:"Можно с питомцем"})})}),l.jsx("tr",{children:l.jsx("td",{children:l.jsx(In,{iconFirst:"/images/icons/tv-dark.svg",textFirst:"Телевизор",iconSecond:"/images/icons/child-dark.svg",textSecond:"Можно с детьми"})})}),l.jsx("tr",{children:l.jsx("td",{children:l.jsx(In,{iconFirst:"/images/icons/wifi-dark.svg",textFirst:"Интернет",iconSecond:"/images/icons/toilet-dark.svg",textSecond:"Санузел"})})}),l.jsx("tr",{children:l.jsx("td",{children:l.jsx(In,{iconFirst:"/images/icons/snowflake-dark.svg",textFirst:"Холодильник",iconSecond:"/images/icons/socks-dark.svg",textSecond:"Стиральная машина"})})}),l.jsx("tr",{children:l.jsx("td",{children:l.jsx(In,{iconFirst:"/images/icons/fan-dark.svg",textFirst:"Кондиционер",iconSecond:"/images/icons/paint-dark.svg",textSecond:"Свежий ремонт"})})})]}),l.jsx(ci,{style:{marginTop:19}}),l.jsxs($f,{children:[l.jsx("tr",{children:l.jsx("td",{children:l.jsx(In,{iconFirst:"/images/icons/up-down-arrows-dark.svg",textFirst:"Лифт",iconSecond:"/images/icons/parking-dark.svg",textSecond:"Парковка"})})}),l.jsx("tr",{children:l.jsx("td",{children:l.jsx(In,{iconFirst:"/images/icons/recycle-dark.svg",textFirst:"Мусоропровод",iconSecond:"/images/icons/dish-dark.svg",textSecond:"Консьерж"})})})]}),l.jsx(ci,{style:{marginTop:19,marginBottom:19}}),l.jsx(al,{icon:"/images/icons/pin.svg",width:12,height:20,text:n.address}),l.jsx(al,{icon:"/images/icons/bus-dark.svg",width:20,height:20,text:`${n.timeToBus} минут до остановки`}),l.jsx(al,{icon:"/images/icons/train-dark.svg",width:20,height:20,text:`${n.timeToTrain} минут до станции`}),l.jsx(Bf,{style:{marginTop:18},children:l.jsxs(at,{children:[l.jsx(le,{xs:2,children:l.jsx(zt,{style:{marginRight:5},src:"/images/icons/thinking-face.svg",width:60,height:64})}),l.jsxs(le,{children:[l.jsx("h4",{style:{marginBottom:4},children:"Не подходит квартира?"}),"Попробуйте сменить настройки поиска на главной странице."]})]})})]})})]})})};class Df{constructor(){Ie(this,"from");Ie(this,"to")}}let Q_=class{constructor(){Ie(this,"price_range");Ie(this,"area_range");Ie(this,"lease_period");Ie(this,"address");Ie(this,"rooms");this.price_range=new Df,this.area_range=new Df,this.lease_period=[],this.address="",this.rooms=0}};var J_={cm:!0,mm:!0,in:!0,px:!0,pt:!0,pc:!0,em:!0,ex:!0,ch:!0,rem:!0,vw:!0,vh:!0,vmin:!0,vmax:!0,"%":!0};function Cm(e){if(typeof e=="number")return{value:e,unit:"px"};var t,n=(e.match(/^[0-9.]*/)||"").toString();n.includes(".")?t=parseFloat(n):t=parseInt(n,10);var r=(e.match(/[^0-9]*$/)||"").toString();return J_[r]?{value:t,unit:r}:(console.warn("React Spinners: ".concat(e," is not a valid css value. Defaulting to ").concat(t,"px.")),{value:t,unit:"px"})}function Oo(e){var t=Cm(e);return"".concat(t.value).concat(t.unit)}var Hf=function(e,t,n){var r="react-spinners-".concat(e,"-").concat(n);if(typeof window>"u"||!window.document)return r;var i=document.createElement("style");document.head.appendChild(i);var o=i.sheet,s=` + @keyframes `.concat(r,` { + `).concat(t,` + } + `);return o&&o.insertRule(s,0),r},Os;(function(e){e.maroon="#800000",e.red="#FF0000",e.orange="#FFA500",e.yellow="#FFFF00",e.olive="#808000",e.green="#008000",e.purple="#800080",e.fuchsia="#FF00FF",e.lime="#00FF00",e.teal="#008080",e.aqua="#00FFFF",e.blue="#0000FF",e.navy="#000080",e.black="#000000",e.gray="#808080",e.silver="#C0C0C0",e.white="#FFFFFF"})(Os||(Os={}));var G_=function(e,t){if(Object.keys(Os).includes(e)&&(e=Os[e]),e[0]==="#"&&(e=e.slice(1)),e.length===3){var n="";e.split("").forEach(function(i){n+=i,n+=i}),e=n}var r=(e.match(/.{2}/g)||[]).map(function(i){return parseInt(i,16)}).join(", ");return"rgba(".concat(r,", ").concat(t,")")},Ps=globalThis&&globalThis.__assign||function(){return Ps=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0||y.image.height>0)&&_(!0))})}},{key:"loadImage",value:function(h){var y=this,_=new Image,C=!1;_.onload=function(){C||y.pumpLoaded()},_.onerror=function(){C||y.pumpLoaded()},_.src=h,C===!1&&(_.width>0||_.height>0)&&(C=!0,this.pumpLoaded())}},{key:"loadVideo",value:function(h){var y=this,_=document.createElement("video");_.addEventListener("loadeddata",function(){y.pumpLoaded()}),_.addEventListener("error",function(){y.pumpLoaded()}),_.setAttribute("src",h)}},{key:"pumpLoaded",value:function(){this.loaded+=1,this.loaded===this.toLoad&&this.resolver(!0)}},{key:"startLoad",value:function(h){h.match(/\.(mp4|webm)/i)&&this.loadVideo(h),h.match(/\.(png|jp(e)?g|gif|webp)/i)&&this.loadImage(h)}},{key:"loadMultiple",value:function(h){var y=this;return this.loaded=0,this.toLoad=h.length,new Promise(function(_){y.resolver=_,h.forEach(function(C){y.startLoad(C)})})}}]),f}();function u(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],g=arguments.length>1?arguments[1]:void 0;if(!g)return f.join(" ").trim();for(var h=[],y=f.length;y--;)g[f[y]]&&h.push(g[f[y]]);return h}function d(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",g=arguments.length>1?arguments[1]:void 0;return g&&g[f]||f}},function(i,o,s){s.d(o,"a",function(){return g}),s.d(o,"b",function(){return h}),s.d(o,"c",function(){return y}),s.d(o,"e",function(){return _}),s.d(o,"d",function(){return C}),s.d(o,"g",function(){return w}),s.d(o,"f",function(){return m});var a=s(0);function c(p){return function(j){if(Array.isArray(j)){for(var b=0,k=new Array(j.length);b2&&arguments[2]!==void 0?arguments[2]:{},_=y.tolerance,C=_===void 0?0:_,w=y.propertyName;return new Promise(function(m){if(g){var p=null,x=h.charAt(0).toUpperCase()+h.slice(1),j=0;g.style["Webkit"+x]!==void 0&&(p="webkit"+x+"End"),g.style.OTransition!==void 0&&(p="o"+h+"End"),g.style[h]!==void 0&&(p=h+"end"),g.clearCssEndEvent&&g.clearCssEndEvent(),g.clearCssEndEvent=function(){g.removeEventListener(p,b)},g.addEventListener(p,b)}else m(!1);function b(k){if((k.srcElement||k.target)===g){if(j>=C){if(w&&w!==k.propertyName)return;g.removeEventListener(p,b),m(k)}j+=1}}})}function f(g){window&&window.requestAnimationFrame(function(){window.requestAnimationFrame(g)})}Object.defineProperty(c,"__esModule",{value:!0}),c.setCssEndEvent=d,c.beforeCssLayout=function(g){window&&window.requestAnimationFrame(g)},c.beforeNextCssLayout=f,c.beforeFutureCssLayout=function(g,h){(function y(_,C){window&&_&&Number.isInteger(_)&&_>0?window.requestAnimationFrame(function(){y(_-1,C)}):C()})(g+1,h)},c.onceNextCssLayout=function(){return new Promise(function(g){f(g)})},c.onceTransitionEnd=function(g){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise(function(y){d(g,"transition",h).then(y)})},c.onceAnimationEnd=function(g){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise(function(y){d(g,"animation",h).then(y)})}}])},,function(i,o,s){i.exports=s(7)},function(i,o,s){s.r(o),s.d(o,"default",function(){return k});var a=s(3),c=s.n(a),u=s(4),d=s(2),f=s.n(d),g=s(0),h=s(1);function y(O){return(y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(O)}function _(){return(_=Object.assign||function(O){for(var M=1;M=0||(V[fe]=U[fe]);return V}(O,M);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(O);for(H=0;H=0||Object.prototype.propertyIsEnumerable.call(O,z)&&(te[z]=O[z])}return te}function w(O,M){for(var z=0;z$.slides-1?0:U;J!==this.state.selected?this.setState({selected:J}):this.forceClearBar(this.currentInfo)}},{key:"render",value:function(){var $=this,U=this.props,J=(U.inverval,U.play),fe=U.cancelOnInteraction,B=(U.showTimer,U.onTransitionStart),V=U.onTransitionEnd,W=U.onFirstMount,ie=U.onTransitionRequest,oe=C(U,["inverval","play","cancelOnInteraction","showTimer","onTransitionStart","onTransitionEnd","onFirstMount","onTransitionRequest"]);return c.a.createElement(O,_({},oe,{selected:this.state.selected,onFirstMount:function(ue){W&&W(ue),oe.startupScreen||($.setInfo(ue),J===!0&&$.setTimer(ue.currentSlide))},onTransitionStart:function(ue){var Ee=$.getBarFromSlide(ue.nextSlide);Ee&&$.restartBarAnimation(Ee),B&&B(ue)},onTransitionRequest:function(ue){$.clearBar(ue),$.currentInfo=ue,fe===!0&&($.forceStop=!0),ie&&ie(ue)},onTransitionEnd:function(ue){$.setInfo(ue),J===!0&&$.setTimer(ue.currentSlide),V&&V(ue)}}))}}]),te}(a.Component),j(M,"propTypes",{interval:f.a.number,cssModule:f.a.any,play:f.a.bool,cancelOnInteraction:f.a.bool,timerHeight:f.a.string,timerBackgroundColor:f.a.string,showTimer:f.a.bool,onTransitionStart:f.a.func,onTransitionEnd:f.a.func,onTransitionRequest:f.a.func,rootElement:f.a.string}),j(M,"defaultProps",{interval:2e3,play:!1,cancelOnInteraction:!1,timerHeight:"6px",cssModule:null,timerBackgroundColor:"rgba(0, 0, 0, 0.15)",showTimer:!0,onTransitionStart:null,onTransitionEnd:null,onTransitionRequest:null,rootElement:b}),z}}])})})(Om);var X_=Om.exports;const Z_=Pn(X_);const eS=Z_(km),tS=oo.API_ROOT,nS=P.select` + padding: 6px 10px; + border: 1px solid #c2c4c2; + border-radius: 6px; + box-shadow: 0 2px 2px #00000010 +`,Po=P(Y)` + margin-left:0; +`,rS=P.p` + font-size: 20pt; + font-weight: 600; + text-align: center; + margin: 32px 0; + text-shadow: 0 2px 1px #00000020; +`,iS=P.div` + background: url(/images/filter.png); + height: 300px; + width: 1150px; + margin: 0 auto; + margin-bottom: 60px; + border-radius: 20px; + box-shadow: 0 2px 12px #00000060; + padding: 30px; + text-shadow: 0 2px 16px #ffffffa0; +`,oS=P.div` + display: block; + + margin: 12px 0; +`,wc=P.button` + width: fit-content; + height: 27px; + display: inline-block; + margin-right: 16px; + + border-radius: 10px; + padding: 0 16px; + box-shadow: 0 2px 16px #ffffff30; + + color: ${e=>e.active?"green":"black"}; + box-sizing: border-box; + ${e=>e.active?"font-weight: 600;":""} +`,sS=P.h1` + font-size: 16pt; + color: #f0f4f0; + user-select: none; + + padding-bottom: 6px; + border-bottom: 1px solid #f0f2f060; + margin-bottom: 20px; padding-bottom: 1px +`,aS=P(wc)` + float: right; + color: darkred; + margin-right: 0; +`,lS=P.button` + background: royalblue; + padding: 10px; + border-radius: 8px; + color: #f9f9f9; + width: 180px; + + &:disabled { + background: #3a5dc8; + } +`,cS=P.div` + background: #f2f3f2; + border-radius: 12px; + width: 100%; + height: 56px; + margin: 12px 0; + font-weight: 400; + padding: 0 16px +`,uS=P.div` + display: flex; + align-items: center +`,ll=P.div` + height: 55px; + width: 1px; + border-left: 1px solid #c1c3c1; + display: inline-block; + margin: 0 20px +`,ui=P.input` + border: 0; background: 0; + margin: 0 16px; + margin-right: 0; + font-size: 105%; + width: 30px; + outline: none; +`,dS=P.div` + width: 1150px; + margin: 50px auto +`,Wf=P.h3` + font-weight: 500; + margin: 48px 0; + text-align: center; +`,fS=P.div` + filter: drop-shadow(0 2px 8px #00000060); + clip-path: inset(0% 0% 0% 0% round 16px); + + & .awssld, .awssld__container { + width: 1150px; + height: 200px; + } +`,hS=e=>{const t=[{value:0,label:"Гостинка"},{value:1,label:"1 комната"},{value:2,label:"2 комнаты"},{value:3,label:"3 комнаты"},{value:4,label:"4 комнаты"},{value:-1,label:"Выберите"}],n={per_day:!1,per_month:!0,area_from:"",area_to:"",price_from:"",price_to:"",address:"",rooms:t[5],form_err:!1};let r=window.sessionStorage.getItem("pairent_filters");r&&(r=JSON.parse(r));const[i,o]=N.useState(r||n),s=c=>(window.sessionStorage.setItem("pairent_filters",JSON.stringify({...i,...c})),o({...i,...c})),a=()=>{let c=new Q_;c.address=i.address,c.area_range={from:i.area_from,to:i.area_to},c.price_range={from:i.price_from,to:i.price_to},i.per_day&&c.lease_period.push("day"),i.per_month&&c.lease_period.push("month"),i.rooms.value!=-1&&(c.rooms=i.rooms.value),e.onSubmit&&e.onSubmit(c)};return l.jsxs(iS,{children:[l.jsx(sS,{children:"Фильтры"}),l.jsxs(oS,{children:[l.jsxs(wc,{active:i.per_day?1:0,onClick:()=>s({per_day:!i.per_day}),children:[l.jsx(Po,{src:"/images/icons/calendar-day.svg",width:"14",height:"14"}),"Посуточно"]}),l.jsxs(wc,{active:i.per_month?1:0,onClick:()=>s({per_month:!i.per_month}),children:[l.jsx(Po,{src:"/images/icons/calendar.svg",width:"14",height:"14"}),"Ежемесячно"]}),l.jsxs(aS,{onClick:()=>s(n),children:[l.jsx(Po,{src:"/images/icons/eraser-fill.svg",width:"14",height:"14"}),"Сбросить"]})]}),l.jsx(cS,{children:l.jsxs(uS,{children:["Площадь",l.jsx("span",{style:{color:"gray",paddingLeft:10},children:" от "}),l.jsx(ui,{type:"text",placeholder:"—",maxLength:"3",value:i.area_from,onChange:c=>s({area_from:c.target.value})}),l.jsx("span",{style:{color:"gray",paddingLeft:10},children:" до "}),l.jsx(ui,{type:"text",placeholder:"—",maxLength:"3",value:i.area_to,onChange:c=>s({area_to:c.target.value})}),"м²",l.jsx(ll,{}),l.jsx(nS,{onChange:c=>s({rooms:t[c.target.value]??t[5]}),value:i.rooms.value,children:t.map((c,u)=>l.jsx("option",{value:c.value,label:c.label},u))}),l.jsx(ll,{}),"Цена",l.jsx("span",{style:{color:"gray",paddingLeft:6},children:" от "}),l.jsx(ui,{type:"text",placeholder:"—",value:i.price_from,onChange:c=>s({price_from:c.target.value}),style:{width:60}}),l.jsx("span",{style:{color:"gray",paddingLeft:6},children:" до "}),l.jsx(ui,{type:"text",placeholder:"—",value:i.price_to,onChange:c=>s({price_to:c.target.value}),style:{width:60}}),"₽",l.jsx(ll,{}),l.jsx(ui,{type:"text",placeholder:"Район, квартал, ж/д, индекс...",value:i.address,onChange:c=>s({address:c.target.value}),style:{width:300,marginLeft:0}})]})}),l.jsx("div",{style:{float:"right"},children:l.jsx(lS,{onClick:a,disabled:e.loading,children:e.loading?l.jsxs(l.Fragment,{children:[l.jsx(ao,{color:"#a1adb3",cssOverride:{marginRight:6,transform:"translate(-3px, 2px) scale(1.3)"},size:14}),"Загрузка данных..."]}):l.jsxs(l.Fragment,{children:[l.jsx(Po,{src:"/images/icons/search.svg",width:"14",height:"14"}),"Показать варианты"]})})})]})};class pS extends bt.Component{constructor(t){super(t),this.state={apartments:[],pageSize:10,page:1,data_loaded:!1,load_err:!1,loading_filters:!1},Yr.getAll(100).then(n=>{this.setState({apartments:n.data.results,data_loaded:!0})}).catch(n=>{this.setState({data_loaded:!0,apartments:[],load_err:n.message})}),this.filterData=this.filterData.bind(this)}async filterData(t){this.setState({loading_filters:!0});const r=await(await fetch(tS+"/api/apartaments/filters/",{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}}).catch(i=>console.error(i))).json();this.setState({apartments:r,data_loaded:!0,loading_filters:!1,load_err:!1})}render(){let{page:t,pageSize:n}=this.state,r=Math.floor(this.state.apartments.length/n),i=this.state.apartments.slice(t*n,t*n+n);return l.jsxs(dS,{children:[l.jsx(fS,{children:l.jsxs(eS,{play:!0,cancelOnInteraction:!1,interval:8e3,bullets:!1,children:[l.jsx("a",{href:"https://vvsu.ithub.ru/dod","data-src":"/images/OpenDoorDay.jpg"}),l.jsx("div",{"data-src":"/images/Business.jpg"})]})}),l.jsxs(rS,{children:["Выбор квартиры во",l.jsx("span",{style:{color:"#0066ff"},children:" Владивостоке"})]}),l.jsx(hS,{onSubmit:this.filterData,loading:this.state.loading_filters}),l.jsx(gm,{list:i,loading:this.state.loading_filters}),this.state.data_loaded?null:l.jsxs(l.Fragment,{children:[l.jsx(Wf,{children:"Данные загружаются, подождите немного"}),l.jsx("div",{style:{margin:"0 auto",width:"fit-content"},children:l.jsx(ao,{color:"#0077aa"})})]}),this.state.load_err?l.jsxs(Wf,{children:["Ошибка загрузки данных: ",l.jsx("br",{})," ",this.state.load_err]}):null,l.jsx(aa,{pages:r,onChange:o=>this.setState({page:o}),value:t})]})}}const pt=e=>{const t=n=>{e.onChangeAnswer(n.target.value,n.target.name)};return l.jsxs("div",{className:"question",children:[l.jsx("div",{className:"question__account",children:+e.account+1}),l.jsx("p",{className:"question__title",children:e.name}),l.jsxs("div",{className:"question__answers",children:[l.jsx("p",{children:"Не важно"}),l.jsxs("label",{className:"question__answer",children:[l.jsx("input",{name:e.account,type:"radio",value:"1",onChange:t}),l.jsx("span",{children:"1"})]}),l.jsxs("label",{className:"question__answer",children:[l.jsx("input",{name:e.account,type:"radio",value:"2",onChange:t}),l.jsx("span",{children:"2"})]}),l.jsxs("label",{className:"question__answer",children:[l.jsx("input",{name:e.account,type:"radio",value:"3",onChange:t}),l.jsx("span",{children:"3"})]}),l.jsxs("label",{className:"question__answer",children:[l.jsx("input",{name:e.account,type:"radio",value:"4",onChange:t}),l.jsx("span",{children:"4"})]}),l.jsxs("label",{className:"question__answer",children:[l.jsx("input",{name:e.account,type:"radio",value:"5",onChange:t}),l.jsx("span",{children:"5"})]}),l.jsx("p",{children:"Очень важно"})]})]})},{API_ROOT:gS}=oo;class mS{static async addById(t,n){await Pr.post(gS+"/api/psych_test/add_result/"+t,n)}}const vS=()=>{const[e,t]=N.useState(!0),n=_g(),[r,i]=N.useState(new Array(12)),o=(a,c)=>{r[c]=a,i(r)},s=async a=>{a.preventDefault();let c=!0;for(let u=0;u<12;u++)r[u]==null&&(t(!1),c=!1);c&&(await mS.addById(1,r),n("/"))};return l.jsxs("form",{onSubmit:s,className:"form",children:[l.jsx(pt,{name:"На сколько Вам важна национальность вашего соседа/соседки?",account:"0",onChangeAnswer:o}),l.jsx(pt,{name:"Согласны ли Вы делить одну комнату с вашим соседом/соседкой?",account:"1",onChangeAnswer:o}),l.jsx(pt,{name:"Какое число людей, снимающих квартиру (включая Вас), для вас приемлемо?",account:"2",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важно такое коммуникативное качество, как общительность, в вашем соседе/соседке?",account:"3",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важно такое коммуникативное качество, как эмпатия, в вашем соседе/соседке?",account:"4",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важно такое коммуникативное качество, как доброжелательность, в вашем соседе/соседке?",account:"5",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важно такое коммуникативное качество, как тактичность, в вашем соседе/соседке?",account:"6",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важно такое личностное качество, как ответственность, в вашем соседе/соседке?",account:"7",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важно такое личностное качество, как аккуратность, в вашем соседе/соседке?",account:"8",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важно такое личностное качество, как честность (искренность) , в вашем соседе/соседке ?",account:"9",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важно такое личностное качество, как чистоплотность , в вашем соседе/соседке ?",account:"10",onChangeAnswer:o}),l.jsx(pt,{name:"На сколько вам важна такия черта характера, как трудолюбие , в вашем соседе/соседке ?",account:"11",onChangeAnswer:o}),e&&l.jsx("div",{className:"btn-box",children:l.jsx("button",{className:"btn-box__form-btn",type:"submit",children:"Отправить"})}),!e&&l.jsxs("div",{className:"btn-box",children:[l.jsx("button",{className:"btn-box__form-btn",type:"submit",children:"Отправить"}),l.jsx("p",{className:"btn-box__text",children:"Вы не ответили на один из вопросов"})]})]})};const yS=()=>l.jsxs("div",{className:"header",children:[l.jsx("button",{type:"button",className:"header__btn",children:"Вернуться назад"}),l.jsx("h1",{className:"header__title",children:"Тест на совместимость"})]}),xS=()=>l.jsxs(l.Fragment,{children:[l.jsx(yS,{}),l.jsx(vS,{})]}),wS=()=>l.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",viewBox:"0 0 16 16",children:l.jsx("path",{d:"M8 15c4.418 0 8-3.134 8-7s-3.582-7-8-7-8 3.134-8 7c0 1.76.743 3.37 1.97 4.6-.097 1.016-.417 2.13-.771 2.966-.079.186.074.394.273.362 2.256-.37 3.597-.938 4.18-1.234A9.06 9.06 0 0 0 8 15z"})}),Pm=P.div` + box-shadow: 0 2px 1px #00000010; + border: 1px solid #c2c4c2; + border-radius: 14px; +`,_S=P.button` + border: 1px solid #c2c4c2; + display: inline-block; + padding: 12px 16px; + border-radius: 14px; + + background: #ffffff; + color: gray; + box-shadow: 0 2px 1px #00000010; + + font-size: 12pt; + float: left; + + & ${Y} { + transform: translate(-4px, 2px) + } +`,SS=P.div` + text-align: center; + height: 100px; + padding-top: 32px; + + z-index: 1; + position: relative; + top: 0; + + & h2 { + font-weight: 600; + text-align: center; + padding: 0; + display: inline-block; + transform: translateY(6px); + } +`,jS=P.div` + display: inline-block; + float: right +`,qf=P(Pm)` + display: inline-block; + border: 1px solid #c2c4c2; + border-radius: 14px; + padding: 6px 10px; + margin: 0 12px; + font-size: 11pt; + width: 160px; + + & input[type=text] { + margin: 0 8px; + display: inline-block; + width: 20px; + border: 0; + border-bottom: 1px solid gray; + outline: none; + padding-bottom: 2px; + } +`,Vf=P.div` + border-top: 1px solid #c2c4c2; + margin-top: 6px; + padding-top: 8px; + font-size: 10pt; + transform: translate(4px) +`,bS=P.button` + background: royalblue; + width: 40px; + height: 40px; + border-radius: 20px; + float: right; + margin: 0 10px; + box-shadow: 0 2px 1px #00000020; + transition: 250ms ease; + + transform: translateY(12px); + + &:hover { + box-shadow: 0 2px 2px #00000060; + } +`,kS=P.div` + margin: 32px auto; + margin-bottom: 0; + display: block; +`,Tm=P.button` + background: white; + border: 2px solid royalblue; + border-radius: 12px; + color: royalblue; + font-weight: 600; + line-height: 20px; + transition: 150ms ease; + width: 100%; + font-size: 10.5pt; + height: 36px; + opacity: 0; + padding: 0px 10px; + clip-path: border-box; + box-sizing: border-box; + + & svg { + fill: royalblue; + margin: 0; + margin-right: 6px; + transform: translateY(2px); + } + + &:hover { + color: white; + background: royalblue; + } + &:hover svg { + fill: white + } +`,ES=y1` + 0%, 50% { + opacity: 0; + transform: scale(1.05) + } + to { + opacity: 1; + transform: scale(1) + } +`,CS=P(Pm)` + display: inline-block; + padding: 10px; + padding-top: 20px; + background: white; + + width: 200px; + height: 256px; + + margin-right: 20px; + margin-bottom: 84px; + + text-align: center; + + animation: ${ES} 500ms ease; + + & h4 { + margin: 10px 0; + font-weight: 600; + } + & p { + margin: 10px 0; + height: 74px; + color: gray; + font-size: 10pt; + } + + transition: 150ms ease; + &:hover > ${Tm} { + opacity: 1; + padding: 6px 10px; + } + &:hover { + height: 300px; + margin-bottom: 40px; + } +`,OS=P.div` + height: 0px; +`,Rm=P.div` + float: left; + transform: translate(90%, -100%); + background: lightgray; + border: 3px solid white; + border-radius: 100px; + width: 36px; height: 36px; +`,PS=P(Rm)` + float: right; + transform: translate(-75%, -100%); + background: limegreen; + & p { + transform: translateY(6px); + font-size: 11pt; + font-weight: 600; + color: white; + text-shadow: 0 2px 1px #00000040; + margin: 0; + height: auto; + } +`,TS=P.h2` + text-align: center; + line-height: 3.5em; + margin: 0; + padding: 100px 0; + + & span { + display: inline; + margin: 0px auto + } +`;class RS extends bt.Component{constructor(n){super(n);Ie(this,"props")}render(){return l.jsxs("div",{children:["123",this.props.value.map(n=>l.jsxs(CS,{children:[l.jsx(Y,{src:"/images/icons/user.svg",width:"100",height:"100"}),l.jsxs(OS,{children:[l.jsx(Rm,{children:l.jsx(Y,{src:"/images/icons/question.svg",style:{margin:"5px 0"},width:"20",height:"20"})}),l.jsx(PS,{children:l.jsx("p",{children:"?"})})]}),l.jsx("h4",{className:"inner-element",children:"User, 0"}),l.jsx("p",{children:"No description provided."}),l.jsxs(Tm,{children:[l.jsx(wS,{}),"Перейти в чат"]})]}))]})}}class NS extends bt.Component{constructor(t){super(t),this.state={data:[{}],loading:!1}}componentDidMount(){}render(){return l.jsxs(kS,{children:[l.jsxs("h2",{style:{textAlign:"center",lineHeight:"11pt",marginBottom:32},children:["Выбери соседа",l.jsx("br",{}),l.jsx("br",{}),l.jsxs("span",{style:{fontSize:"11pt",fontWeight:500},children:["Не забывай, с этим человеком",l.jsx("br",{}),"придется жить бок-о-бок!"]})]}),this.state.loading?l.jsx(RS,{value:this.state.data}):l.jsxs(TS,{children:["Пожалуйста подождите, идет загрузка данных",l.jsx("br",{}),l.jsx(ao,{color:"#0077aa"})]})]})}}class AS extends bt.Component{render(){return l.jsxs(jS,{children:[l.jsxs(qf,{children:["Совместимость",l.jsxs(Vf,{children:["от",l.jsx("input",{type:"text"}),"до",l.jsx("input",{type:"text"})]})]}),l.jsxs(qf,{children:["Возраст",l.jsxs(Vf,{children:["от",l.jsx("input",{type:"text"}),"до",l.jsx("input",{type:"text"})]})]}),l.jsx(bS,{children:l.jsx(Y,{src:"/images/icons/search.svg",width:"18",height:"18"})})]})}}class IS extends bt.Component{constructor(t){super(t),this.state={}}render(){return l.jsxs(l.Fragment,{children:[l.jsxs(SS,{children:[l.jsxs(_S,{children:[l.jsx(Y,{src:"/images/icons/left-arrow-light.svg",width:10,height:16}),"Вернуться назад"]}),l.jsx(AS,{})]}),l.jsxs("div",{style:{transform:"translateY(-100px)",position:"relative",top:0,zIndex:0},children:[l.jsx(NS,{}),l.jsx(aa,{pages:0})]})]})}}const LS=P.button` + background: white; + border: 2px solid royalblue; + border-radius: 12px; + color: royalblue; + font-weight: 600; + line-height: 20px; + transition: 150ms ease; + width: 100%; + font-size: 10.5pt; + height: 36px; + padding: 6px 10px; + clip-path: border-box; + box-sizing: border-box; + + & svg { + fill: royalblue; + margin: 0; + margin-right: 6px; + transform: translateY(2px); + } + + &:hover { + color: white; + background: royalblue; + } + &:hover svg { + fill: white + } +`,Nm=P.div` + position: fixed; + top: 45%; + left: 50%; + transform: translate(-50%, -50%); + border: 1px solid #c2c4c2; + border-radius: 12px; + padding: 24px 36px; + background: white; + box-shadow: 0 2px 1px #00000010; + + text-align: center; + + & hr { + margin-bottom: 24px; + height: 0px; + border: 0; + border-bottom: 1px solid #c2c4c2; + box-shadow: 0 2px 1px #c2c4c280; + } + +`;function FS(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Am={exports:{}};const MS={},zS=Object.freeze(Object.defineProperty({__proto__:null,default:MS},Symbol.toStringTag,{value:"Module"})),BS=Qm(zS);(function(e,t){(function(n,r){e.exports=r()})(Jt,function(){var n=n||function(r,i){var o;if(typeof window<"u"&&window.crypto&&(o=window.crypto),typeof self<"u"&&self.crypto&&(o=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(o=globalThis.crypto),!o&&typeof window<"u"&&window.msCrypto&&(o=window.msCrypto),!o&&typeof Jt<"u"&&Jt.crypto&&(o=Jt.crypto),!o&&typeof FS=="function")try{o=BS}catch{}var s=function(){if(o){if(typeof o.getRandomValues=="function")try{return o.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof o.randomBytes=="function")try{return o.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},a=Object.create||function(){function m(){}return function(p){var x;return m.prototype=p,x=new m,m.prototype=null,x}}(),c={},u=c.lib={},d=u.Base=function(){return{extend:function(m){var p=a(this);return m&&p.mixIn(m),(!p.hasOwnProperty("init")||this.init===p.init)&&(p.init=function(){p.$super.init.apply(this,arguments)}),p.init.prototype=p,p.$super=this,p},create:function(){var m=this.extend();return m.init.apply(m,arguments),m},init:function(){},mixIn:function(m){for(var p in m)m.hasOwnProperty(p)&&(this[p]=m[p]);m.hasOwnProperty("toString")&&(this.toString=m.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),f=u.WordArray=d.extend({init:function(m,p){m=this.words=m||[],p!=i?this.sigBytes=p:this.sigBytes=m.length*4},toString:function(m){return(m||h).stringify(this)},concat:function(m){var p=this.words,x=m.words,j=this.sigBytes,b=m.sigBytes;if(this.clamp(),j%4)for(var k=0;k>>2]>>>24-k%4*8&255;p[j+k>>>2]|=O<<24-(j+k)%4*8}else for(var M=0;M>>2]=x[M>>>2];return this.sigBytes+=b,this},clamp:function(){var m=this.words,p=this.sigBytes;m[p>>>2]&=4294967295<<32-p%4*8,m.length=r.ceil(p/4)},clone:function(){var m=d.clone.call(this);return m.words=this.words.slice(0),m},random:function(m){for(var p=[],x=0;x>>2]>>>24-b%4*8&255;j.push((k>>>4).toString(16)),j.push((k&15).toString(16))}return j.join("")},parse:function(m){for(var p=m.length,x=[],j=0;j>>3]|=parseInt(m.substr(j,2),16)<<24-j%8*4;return new f.init(x,p/2)}},y=g.Latin1={stringify:function(m){for(var p=m.words,x=m.sigBytes,j=[],b=0;b>>2]>>>24-b%4*8&255;j.push(String.fromCharCode(k))}return j.join("")},parse:function(m){for(var p=m.length,x=[],j=0;j>>2]|=(m.charCodeAt(j)&255)<<24-j%4*8;return new f.init(x,p)}},_=g.Utf8={stringify:function(m){try{return decodeURIComponent(escape(y.stringify(m)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(m){return y.parse(unescape(encodeURIComponent(m)))}},C=u.BufferedBlockAlgorithm=d.extend({reset:function(){this._data=new f.init,this._nDataBytes=0},_append:function(m){typeof m=="string"&&(m=_.parse(m)),this._data.concat(m),this._nDataBytes+=m.sigBytes},_process:function(m){var p,x=this._data,j=x.words,b=x.sigBytes,k=this.blockSize,O=k*4,M=b/O;m?M=r.ceil(M):M=r.max((M|0)-this._minBufferSize,0);var z=M*k,H=r.min(z*4,b);if(z){for(var te=0;te>>7)^(M<<14|M>>>18)^M>>>3,H=f[O-2],te=(H<<15|H>>>17)^(H<<13|H>>>19)^H>>>10;f[O]=z+f[O-7]+te+f[O-16]}var Q=x&j^~x&b,$=C&w^C&m^w&m,U=(C<<30|C>>>2)^(C<<19|C>>>13)^(C<<10|C>>>22),J=(x<<26|x>>>6)^(x<<21|x>>>11)^(x<<7|x>>>25),fe=k+J+Q+d[O]+f[O],B=U+$;k=b,b=j,j=x,x=p+fe|0,p=m,m=w,w=C,C=fe+B|0}_[0]=_[0]+C|0,_[1]=_[1]+w|0,_[2]=_[2]+m|0,_[3]=_[3]+p|0,_[4]=_[4]+x|0,_[5]=_[5]+j|0,_[6]=_[6]+b|0,_[7]=_[7]+k|0},_doFinalize:function(){var h=this._data,y=h.words,_=this._nDataBytes*8,C=h.sigBytes*8;return y[C>>>5]|=128<<24-C%32,y[(C+64>>>9<<4)+14]=r.floor(_/4294967296),y[(C+64>>>9<<4)+15]=_,h.sigBytes=y.length*4,this._process(),this._hash},clone:function(){var h=a.clone.call(this);return h._hash=this._hash.clone(),h}});i.SHA256=a._createHelper(g),i.HmacSHA256=a._createHmacHelper(g)}(Math),n.SHA256})})(Im);var $S=Im.exports;const DS=Pn($S);var Lm={exports:{}};(function(e,t){(function(n,r){e.exports=r(ca)})(Jt,function(n){return function(){var r=n,i=r.lib,o=i.WordArray,s=r.enc;s.Base64={stringify:function(c){var u=c.words,d=c.sigBytes,f=this._map;c.clamp();for(var g=[],h=0;h>>2]>>>24-h%4*8&255,_=u[h+1>>>2]>>>24-(h+1)%4*8&255,C=u[h+2>>>2]>>>24-(h+2)%4*8&255,w=y<<16|_<<8|C,m=0;m<4&&h+m*.75>>6*(3-m)&63));var p=f.charAt(64);if(p)for(;g.length%4;)g.push(p);return g.join("")},parse:function(c){var u=c.length,d=this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var g=0;g>>6-h%4*2,C=y|_;f[g>>>2]|=C<<24-g%4*8,g++}return o.create(f,g)}}(),n.enc.Base64})})(Lm);var HS=Lm.exports;const Kf=Pn(HS);var Fm={exports:{}};(function(e,t){(function(n,r){e.exports=r(ca)})(Jt,function(n){return n.enc.Utf8})})(Fm);var WS=Fm.exports;const qS=Pn(WS);function _c(e){this.message=e}_c.prototype=new Error,_c.prototype.name="InvalidCharacterError";var Qf=typeof window<"u"&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new _c("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,i=0,o=0,s="";r=t.charAt(o++);~r&&(n=i%4?64*n+r:r,i++%4)?s+=String.fromCharCode(255&n>>(-2*i&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return s};function VS(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(n){return decodeURIComponent(Qf(n).replace(/(.)/g,function(r,i){var o=i.charCodeAt(0).toString(16).toUpperCase();return o.length<2&&(o="0"+o),"%"+o}))}(t)}catch{return Qf(t)}}function Ts(e){this.message=e}function KS(e,t){if(typeof e!="string")throw new Ts("Invalid token specified");var n=(t=t||{}).header===!0?0:1;try{return JSON.parse(VS(e.split(".")[n]))}catch(r){throw new Ts("Invalid token specified: "+r.message)}}Ts.prototype=new Error,Ts.prototype.name="InvalidTokenError";var QS={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},Ft,Mt,Qn=(e=>(e[e.NONE=0]="NONE",e[e.ERROR=1]="ERROR",e[e.WARN=2]="WARN",e[e.INFO=3]="INFO",e[e.DEBUG=4]="DEBUG",e))(Qn||{});(e=>{function t(){Ft=3,Mt=QS}e.reset=t;function n(i){if(!(0<=i&&i<=4))throw new Error("Invalid log level");Ft=i}e.setLevel=n;function r(i){Mt=i}e.setLogger=r})(Qn||(Qn={}));var G=class{constructor(e){this._name=e}debug(...e){Ft>=4&&Mt.debug(G._format(this._name,this._method),...e)}info(...e){Ft>=3&&Mt.info(G._format(this._name,this._method),...e)}warn(...e){Ft>=2&&Mt.warn(G._format(this._name,this._method),...e)}error(...e){Ft>=1&&Mt.error(G._format(this._name,this._method),...e)}throw(e){throw this.error(e),e}create(e){const t=Object.create(this);return t._method=e,t.debug("begin"),t}static createStatic(e,t){const n=new G(`${e}.${t}`);return n.debug("begin"),n}static _format(e,t){const n=`[${e}]`;return t?`${n} ${t}:`:n}static debug(e,...t){Ft>=4&&Mt.debug(G._format(e),...t)}static info(e,...t){Ft>=3&&Mt.info(G._format(e),...t)}static warn(e,...t){Ft>=2&&Mt.warn(G._format(e),...t)}static error(e,...t){Ft>=1&&Mt.error(G._format(e),...t)}};Qn.reset();var JS="10000000-1000-4000-8000-100000000000",$t=class{static _randomWord(){return US.lib.WordArray.random(1).words[0]}static generateUUIDv4(){return JS.replace(/[018]/g,t=>(+t^$t._randomWord()&15>>+t/4).toString(16)).replace(/-/g,"")}static generateCodeVerifier(){return $t.generateUUIDv4()+$t.generateUUIDv4()+$t.generateUUIDv4()}static generateCodeChallenge(e){try{const t=DS(e);return Kf.stringify(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}catch(t){throw G.error("CryptoUtils.generateCodeChallenge",t),t}}static generateBasicAuth(e,t){const n=qS.parse([e,t].join(":"));return Kf.stringify(n)}},fn=class{constructor(e){this._name=e,this._logger=new G(`Event('${this._name}')`),this._callbacks=[]}addHandler(e){return this._callbacks.push(e),()=>this.removeHandler(e)}removeHandler(e){const t=this._callbacks.lastIndexOf(e);t>=0&&this._callbacks.splice(t,1)}raise(...e){this._logger.debug("raise:",...e);for(const t of this._callbacks)t(...e)}},Sc=class{static decode(e){try{return KS(e)}catch(t){throw G.error("JwtUtils.decode",t),t}}},Jf=class{static center({...e}){var t,n,r;return e.width==null&&(e.width=(t=[800,720,600,480].find(i=>i<=window.outerWidth/1.618))!=null?t:360),(n=e.left)!=null||(e.left=Math.max(0,Math.round(window.screenX+(window.outerWidth-e.width)/2))),e.height!=null&&((r=e.top)!=null||(e.top=Math.max(0,Math.round(window.screenY+(window.outerHeight-e.height)/2)))),e}static serialize(e){return Object.entries(e).filter(([,t])=>t!=null).map(([t,n])=>`${t}=${typeof n!="boolean"?n:n?"yes":"no"}`).join(",")}},wt=class extends fn{constructor(){super(...arguments),this._logger=new G(`Timer('${this._name}')`),this._timerHandle=null,this._expiration=0,this._callback=()=>{const e=this._expiration-wt.getEpochTime();this._logger.debug("timer completes in",e),this._expiration<=wt.getEpochTime()&&(this.cancel(),super.raise())}}static getEpochTime(){return Math.floor(Date.now()/1e3)}init(e){const t=this._logger.create("init");e=Math.max(Math.floor(e),1);const n=wt.getEpochTime()+e;if(this.expiration===n&&this._timerHandle){t.debug("skipping since already initialized for expiration at",this.expiration);return}this.cancel(),t.debug("using duration",e),this._expiration=n;const r=Math.min(e,5);this._timerHandle=setInterval(this._callback,r*1e3)}get expiration(){return this._expiration}cancel(){this._logger.create("cancel"),this._timerHandle&&(clearInterval(this._timerHandle),this._timerHandle=null)}},jc=class{static readParams(e,t="query"){if(!e)throw new TypeError("Invalid URL");const r=new URL(e,window.location.origin)[t==="fragment"?"hash":"search"];return new URLSearchParams(r.slice(1))}},tr=class extends Error{constructor(e,t){var n,r,i;if(super(e.error_description||e.error||""),this.form=t,this.name="ErrorResponse",!e.error)throw G.error("ErrorResponse","No error passed"),new Error("No error passed");this.error=e.error,this.error_description=(n=e.error_description)!=null?n:null,this.error_uri=(r=e.error_uri)!=null?r:null,this.state=e.userState,this.session_state=(i=e.session_state)!=null?i:null}},Bu=class extends Error{constructor(e){super(e),this.name="ErrorTimeout"}},GS=class{constructor(e){this._logger=new G("AccessTokenEvents"),this._expiringTimer=new wt("Access token expiring"),this._expiredTimer=new wt("Access token expired"),this._expiringNotificationTimeInSeconds=e.expiringNotificationTimeInSeconds}load(e){const t=this._logger.create("load");if(e.access_token&&e.expires_in!==void 0){const n=e.expires_in;if(t.debug("access token present, remaining duration:",n),n>0){let i=n-this._expiringNotificationTimeInSeconds;i<=0&&(i=1),t.debug("registering expiring timer, raising in",i,"seconds"),this._expiringTimer.init(i)}else t.debug("canceling existing expiring timer because we're past expiration."),this._expiringTimer.cancel();const r=n+1;t.debug("registering expired timer, raising in",r,"seconds"),this._expiredTimer.init(r)}else this._expiringTimer.cancel(),this._expiredTimer.cancel()}unload(){this._logger.debug("unload: canceling existing access token timers"),this._expiringTimer.cancel(),this._expiredTimer.cancel()}addAccessTokenExpiring(e){return this._expiringTimer.addHandler(e)}removeAccessTokenExpiring(e){this._expiringTimer.removeHandler(e)}addAccessTokenExpired(e){return this._expiredTimer.addHandler(e)}removeAccessTokenExpired(e){this._expiredTimer.removeHandler(e)}},YS=class{constructor(e,t,n,r,i){this._callback=e,this._client_id=t,this._intervalInSeconds=r,this._stopOnError=i,this._logger=new G("CheckSessionIFrame"),this._timer=null,this._session_state=null,this._message=s=>{s.origin===this._frame_origin&&s.source===this._frame.contentWindow&&(s.data==="error"?(this._logger.error("error message from check session op iframe"),this._stopOnError&&this.stop()):s.data==="changed"?(this._logger.debug("changed message from check session op iframe"),this.stop(),this._callback()):this._logger.debug(s.data+" message from check session op iframe"))};const o=new URL(n);this._frame_origin=o.origin,this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="fixed",this._frame.style.left="-1000px",this._frame.style.top="0",this._frame.width="0",this._frame.height="0",this._frame.src=o.href}load(){return new Promise(e=>{this._frame.onload=()=>{e()},window.document.body.appendChild(this._frame),window.addEventListener("message",this._message,!1)})}start(e){if(this._session_state===e)return;this._logger.create("start"),this.stop(),this._session_state=e;const t=()=>{!this._frame.contentWindow||!this._session_state||this._frame.contentWindow.postMessage(this._client_id+" "+this._session_state,this._frame_origin)};t(),this._timer=setInterval(t,this._intervalInSeconds*1e3)}stop(){this._logger.create("stop"),this._session_state=null,this._timer&&(clearInterval(this._timer),this._timer=null)}},Mm=class{constructor(){this._logger=new G("InMemoryWebStorage"),this._data={}}clear(){this._logger.create("clear"),this._data={}}getItem(e){return this._logger.create(`getItem('${e}')`),this._data[e]}setItem(e,t){this._logger.create(`setItem('${e}')`),this._data[e]=t}removeItem(e){this._logger.create(`removeItem('${e}')`),delete this._data[e]}get length(){return Object.getOwnPropertyNames(this._data).length}key(e){return Object.getOwnPropertyNames(this._data)[e]}},Uu=class{constructor(e=[],t=null,n={}){this._jwtHandler=t,this._extraHeaders=n,this._logger=new G("JsonService"),this._contentTypes=[],this._contentTypes.push(...e,"application/json"),t&&this._contentTypes.push("application/jwt")}async fetchWithTimeout(e,t={}){const{timeoutInSeconds:n,...r}=t;if(!n)return await fetch(e,r);const i=new AbortController,o=setTimeout(()=>i.abort(),n*1e3);try{return await fetch(e,{...t,signal:i.signal})}catch(s){throw s instanceof DOMException&&s.name==="AbortError"?new Bu("Network timed out"):s}finally{clearTimeout(o)}}async getJson(e,{token:t,credentials:n}={}){const r=this._logger.create("getJson"),i={Accept:this._contentTypes.join(", ")};t&&(r.debug("token passed, setting Authorization header"),i.Authorization="Bearer "+t),this.appendExtraHeaders(i);let o;try{r.debug("url:",e),o=await this.fetchWithTimeout(e,{method:"GET",headers:i,credentials:n})}catch(c){throw r.error("Network Error"),c}r.debug("HTTP response received, status",o.status);const s=o.headers.get("Content-Type");if(s&&!this._contentTypes.find(c=>s.startsWith(c))&&r.throw(new Error(`Invalid response Content-Type: ${s??"undefined"}, from URL: ${e}`)),o.ok&&this._jwtHandler&&(s!=null&&s.startsWith("application/jwt")))return await this._jwtHandler(await o.text());let a;try{a=await o.json()}catch(c){throw r.error("Error parsing JSON response",c),o.ok?c:new Error(`${o.statusText} (${o.status})`)}if(!o.ok)throw r.error("Error from server:",a),a.error?new tr(a):new Error(`${o.statusText} (${o.status}): ${JSON.stringify(a)}`);return a}async postForm(e,{body:t,basicAuth:n,timeoutInSeconds:r,initCredentials:i}){const o=this._logger.create("postForm"),s={Accept:this._contentTypes.join(", "),"Content-Type":"application/x-www-form-urlencoded"};n!==void 0&&(s.Authorization="Basic "+n),this.appendExtraHeaders(s);let a;try{o.debug("url:",e),a=await this.fetchWithTimeout(e,{method:"POST",headers:s,body:t,timeoutInSeconds:r,credentials:i})}catch(f){throw o.error("Network error"),f}o.debug("HTTP response received, status",a.status);const c=a.headers.get("Content-Type");if(c&&!this._contentTypes.find(f=>c.startsWith(f)))throw new Error(`Invalid response Content-Type: ${c??"undefined"}, from URL: ${e}`);const u=await a.text();let d={};if(u)try{d=JSON.parse(u)}catch(f){throw o.error("Error parsing JSON response",f),a.ok?f:new Error(`${a.statusText} (${a.status})`)}if(!a.ok)throw o.error("Error from server:",d),d.error?new tr(d,t):new Error(`${a.statusText} (${a.status}): ${JSON.stringify(d)}`);return d}appendExtraHeaders(e){const t=this._logger.create("appendExtraHeaders"),n=Object.keys(this._extraHeaders),r=["authorization","accept","content-type"];n.length!==0&&n.forEach(i=>{if(r.includes(i.toLocaleLowerCase())){t.warn("Protected header could not be overridden",i,r);return}const o=typeof this._extraHeaders[i]=="function"?this._extraHeaders[i]():this._extraHeaders[i];o&&o!==""&&(e[i]=o)})}},XS=class{constructor(e){this._settings=e,this._logger=new G("MetadataService"),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new Uu(["application/jwk-set+json"],null,this._settings.extraHeaders),this._settings.signingKeys&&(this._logger.debug("using signingKeys from settings"),this._signingKeys=this._settings.signingKeys),this._settings.metadata&&(this._logger.debug("using metadata from settings"),this._metadata=this._settings.metadata),this._settings.fetchRequestCredentials&&(this._logger.debug("using fetchRequestCredentials from settings"),this._fetchRequestCredentials=this._settings.fetchRequestCredentials)}resetSigningKeys(){this._signingKeys=null}async getMetadata(){const e=this._logger.create("getMetadata");if(this._metadata)return e.debug("using cached values"),this._metadata;if(!this._metadataUrl)throw e.throw(new Error("No authority or metadataUrl configured on settings")),null;e.debug("getting metadata from",this._metadataUrl);const t=await this._jsonService.getJson(this._metadataUrl,{credentials:this._fetchRequestCredentials});return e.debug("merging remote JSON with seed metadata"),this._metadata=Object.assign({},this._settings.metadataSeed,t),this._metadata}getIssuer(){return this._getMetadataProperty("issuer")}getAuthorizationEndpoint(){return this._getMetadataProperty("authorization_endpoint")}getUserInfoEndpoint(){return this._getMetadataProperty("userinfo_endpoint")}getTokenEndpoint(e=!0){return this._getMetadataProperty("token_endpoint",e)}getCheckSessionIframe(){return this._getMetadataProperty("check_session_iframe",!0)}getEndSessionEndpoint(){return this._getMetadataProperty("end_session_endpoint",!0)}getRevocationEndpoint(e=!0){return this._getMetadataProperty("revocation_endpoint",e)}getKeysEndpoint(e=!0){return this._getMetadataProperty("jwks_uri",e)}async _getMetadataProperty(e,t=!1){const n=this._logger.create(`_getMetadataProperty('${e}')`),r=await this.getMetadata();if(n.debug("resolved"),r[e]===void 0){if(t===!0){n.warn("Metadata does not contain optional property");return}n.throw(new Error("Metadata does not contain property "+e))}return r[e]}async getSigningKeys(){const e=this._logger.create("getSigningKeys");if(this._signingKeys)return e.debug("returning signingKeys from cache"),this._signingKeys;const t=await this.getKeysEndpoint(!1);e.debug("got jwks_uri",t);const n=await this._jsonService.getJson(t);if(e.debug("got key set",n),!Array.isArray(n.keys))throw e.throw(new Error("Missing keys on keyset")),null;return this._signingKeys=n.keys,this._signingKeys}},zm=class{constructor({prefix:e="oidc.",store:t=localStorage}={}){this._logger=new G("WebStorageStateStore"),this._store=t,this._prefix=e}async set(e,t){this._logger.create(`set('${e}')`),e=this._prefix+e,await this._store.setItem(e,t)}async get(e){return this._logger.create(`get('${e}')`),e=this._prefix+e,await this._store.getItem(e)}async remove(e){this._logger.create(`remove('${e}')`),e=this._prefix+e;const t=await this._store.getItem(e);return await this._store.removeItem(e),t}async getAllKeys(){this._logger.create("getAllKeys");const e=await this._store.length,t=[];for(let n=0;n{const r=this._logger.create("_getClaimsFromJwt");try{const i=Sc.decode(n);return r.debug("JWT decoding successful"),i}catch(i){throw r.error("Error parsing JWT response"),i}},this._jsonService=new Uu(void 0,this._getClaimsFromJwt,this._settings.extraHeaders)}async getClaims(e){const t=this._logger.create("getClaims");e||this._logger.throw(new Error("No token passed"));const n=await this._metadataService.getUserInfoEndpoint();t.debug("got userinfo url",n);const r=await this._jsonService.getJson(n,{token:e,credentials:this._settings.fetchRequestCredentials});return t.debug("got claims",r),r}},Um=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new G("TokenClient"),this._jsonService=new Uu(this._settings.revokeTokenAdditionalContentTypes,null,this._settings.extraHeaders)}async exchangeCode({grant_type:e="authorization_code",redirect_uri:t=this._settings.redirect_uri,client_id:n=this._settings.client_id,client_secret:r=this._settings.client_secret,...i}){const o=this._logger.create("exchangeCode");n||o.throw(new Error("A client_id is required")),t||o.throw(new Error("A redirect_uri is required")),i.code||o.throw(new Error("A code is required"));const s=new URLSearchParams({grant_type:e,redirect_uri:t});for(const[d,f]of Object.entries(i))f!=null&&s.set(d,f);let a;switch(this._settings.client_authentication){case"client_secret_basic":if(!r)throw o.throw(new Error("A client_secret is required")),null;a=$t.generateBasicAuth(n,r);break;case"client_secret_post":s.append("client_id",n),r&&s.append("client_secret",r);break}const c=await this._metadataService.getTokenEndpoint(!1);o.debug("got token endpoint");const u=await this._jsonService.postForm(c,{body:s,basicAuth:a,initCredentials:this._settings.fetchRequestCredentials});return o.debug("got response"),u}async exchangeCredentials({grant_type:e="password",client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,scope:r=this._settings.scope,...i}){const o=this._logger.create("exchangeCredentials");t||o.throw(new Error("A client_id is required"));const s=new URLSearchParams({grant_type:e,scope:r});for(const[d,f]of Object.entries(i))f!=null&&s.set(d,f);let a;switch(this._settings.client_authentication){case"client_secret_basic":if(!n)throw o.throw(new Error("A client_secret is required")),null;a=$t.generateBasicAuth(t,n);break;case"client_secret_post":s.append("client_id",t),n&&s.append("client_secret",n);break}const c=await this._metadataService.getTokenEndpoint(!1);o.debug("got token endpoint");const u=await this._jsonService.postForm(c,{body:s,basicAuth:a,initCredentials:this._settings.fetchRequestCredentials});return o.debug("got response"),u}async exchangeRefreshToken({grant_type:e="refresh_token",client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,timeoutInSeconds:r,...i}){const o=this._logger.create("exchangeRefreshToken");t||o.throw(new Error("A client_id is required")),i.refresh_token||o.throw(new Error("A refresh_token is required"));const s=new URLSearchParams({grant_type:e});for(const[d,f]of Object.entries(i))f!=null&&s.set(d,f);let a;switch(this._settings.client_authentication){case"client_secret_basic":if(!n)throw o.throw(new Error("A client_secret is required")),null;a=$t.generateBasicAuth(t,n);break;case"client_secret_post":s.append("client_id",t),n&&s.append("client_secret",n);break}const c=await this._metadataService.getTokenEndpoint(!1);o.debug("got token endpoint");const u=await this._jsonService.postForm(c,{body:s,basicAuth:a,timeoutInSeconds:r,initCredentials:this._settings.fetchRequestCredentials});return o.debug("got response"),u}async revoke(e){var t;const n=this._logger.create("revoke");e.token||n.throw(new Error("A token is required"));const r=await this._metadataService.getRevocationEndpoint(!1);n.debug(`got revocation endpoint, revoking ${(t=e.token_type_hint)!=null?t:"default token type"}`);const i=new URLSearchParams;for(const[o,s]of Object.entries(e))s!=null&&i.set(o,s);i.set("client_id",this._settings.client_id),this._settings.client_secret&&i.set("client_secret",this._settings.client_secret),await this._jsonService.postForm(r,{body:i}),n.debug("got response")}},sj=class{constructor(e,t,n){this._settings=e,this._metadataService=t,this._claimsService=n,this._logger=new G("ResponseValidator"),this._userInfoService=new oj(this._settings,this._metadataService),this._tokenClient=new Um(this._settings,this._metadataService)}async validateSigninResponse(e,t){const n=this._logger.create("validateSigninResponse");this._processSigninState(e,t),n.debug("state processed"),await this._processCode(e,t),n.debug("code processed"),e.isOpenId&&this._validateIdTokenAttributes(e),n.debug("tokens validated"),await this._processClaims(e,t==null?void 0:t.skipUserInfo,e.isOpenId),n.debug("claims processed")}async validateCredentialsResponse(e,t){const n=this._logger.create("validateCredentialsResponse");e.isOpenId&&this._validateIdTokenAttributes(e),n.debug("tokens validated"),await this._processClaims(e,t,e.isOpenId),n.debug("claims processed")}async validateRefreshResponse(e,t){var n,r;const i=this._logger.create("validateRefreshResponse");e.userState=t.data,(n=e.session_state)!=null||(e.session_state=t.session_state),(r=e.scope)!=null||(e.scope=t.scope),e.isOpenId&&e.id_token&&(this._validateIdTokenAttributes(e,t.id_token),i.debug("ID Token validated")),e.id_token||(e.id_token=t.id_token,e.profile=t.profile);const o=e.isOpenId&&!!e.id_token;await this._processClaims(e,!1,o),i.debug("claims processed")}validateSignoutResponse(e,t){const n=this._logger.create("validateSignoutResponse");if(t.id!==e.state&&n.throw(new Error("State does not match")),n.debug("state validated"),e.userState=t.data,e.error)throw n.warn("Response was error",e.error),new tr(e)}_processSigninState(e,t){var n;const r=this._logger.create("_processSigninState");if(t.id!==e.state&&r.throw(new Error("State does not match")),t.client_id||r.throw(new Error("No client_id on state")),t.authority||r.throw(new Error("No authority on state")),this._settings.authority!==t.authority&&r.throw(new Error("authority mismatch on settings vs. signin state")),this._settings.client_id&&this._settings.client_id!==t.client_id&&r.throw(new Error("client_id mismatch on settings vs. signin state")),r.debug("state validated"),e.userState=t.data,(n=e.scope)!=null||(e.scope=t.scope),e.error)throw r.warn("Response was error",e.error),new tr(e);t.code_verifier&&!e.code&&r.throw(new Error("Expected code in response"))}async _processClaims(e,t=!1,n=!0){const r=this._logger.create("_processClaims");if(e.profile=this._claimsService.filterProtocolClaims(e.profile),t||!this._settings.loadUserInfo||!e.access_token){r.debug("not loading user info");return}r.debug("loading user info");const i=await this._userInfoService.getClaims(e.access_token);r.debug("user info claims received from user info endpoint"),n&&i.sub!==e.profile.sub&&r.throw(new Error("subject from UserInfo response does not match subject in ID Token")),e.profile=this._claimsService.mergeClaims(e.profile,this._claimsService.filterProtocolClaims(i)),r.debug("user info claims received, updated profile:",e.profile)}async _processCode(e,t){const n=this._logger.create("_processCode");if(e.code){n.debug("Validating code");const r=await this._tokenClient.exchangeCode({client_id:t.client_id,client_secret:t.client_secret,code:e.code,redirect_uri:t.redirect_uri,code_verifier:t.code_verifier,...t.extraTokenParams});Object.assign(e,r)}else n.debug("No code to process")}_validateIdTokenAttributes(e,t){var n;const r=this._logger.create("_validateIdTokenAttributes");r.debug("decoding ID Token JWT");const i=Sc.decode((n=e.id_token)!=null?n:"");if(i.sub||r.throw(new Error("ID Token is missing a subject claim")),t){const o=Sc.decode(t);o.sub!==i.sub&&r.throw(new Error("sub in id_token does not match current sub")),o.auth_time&&o.auth_time!==i.auth_time&&r.throw(new Error("auth_time in id_token does not match original auth_time")),o.azp&&o.azp!==i.azp&&r.throw(new Error("azp in id_token does not match original azp")),!o.azp&&i.azp&&r.throw(new Error("azp not in id_token, but present in original id_token"))}e.profile=i}},Hr=class{constructor(e){this.id=e.id||$t.generateUUIDv4(),this.data=e.data,e.created&&e.created>0?this.created=e.created:this.created=wt.getEpochTime(),this.request_type=e.request_type}toStorageString(){return new G("State").create("toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})}static fromStorageString(e){return G.createStatic("State","fromStorageString"),new Hr(JSON.parse(e))}static async clearStaleState(e,t){const n=G.createStatic("State","clearStaleState"),r=wt.getEpochTime()-t,i=await e.getAllKeys();n.debug("got keys",i);for(let o=0;ow.searchParams.append("resource",p));for(const[m,p]of Object.entries({response_mode:a,...C,...h}))p!=null&&w.searchParams.append(m,p.toString());this.url=w.href}},lj="openid",Xo=class{constructor(e){this.access_token="",this.token_type="",this.profile={},this.state=e.get("state"),this.session_state=e.get("session_state"),this.error=e.get("error"),this.error_description=e.get("error_description"),this.error_uri=e.get("error_uri"),this.code=e.get("code")}get expires_in(){if(this.expires_at!==void 0)return this.expires_at-wt.getEpochTime()}set expires_in(e){typeof e=="string"&&(e=Number(e)),e!==void 0&&e>=0&&(this.expires_at=Math.floor(e)+wt.getEpochTime())}get isOpenId(){var e;return((e=this.scope)==null?void 0:e.split(" ").includes(lj))||!!this.id_token}},cj=class{constructor({url:e,state_data:t,id_token_hint:n,post_logout_redirect_uri:r,extraQueryParams:i,request_type:o}){if(this._logger=new G("SignoutRequest"),!e)throw this._logger.error("ctor: No url passed"),new Error("url");const s=new URL(e);n&&s.searchParams.append("id_token_hint",n),r&&(s.searchParams.append("post_logout_redirect_uri",r),t&&(this.state=new Hr({data:t,request_type:o}),s.searchParams.append("state",this.state.id)));for(const[a,c]of Object.entries({...i}))c!=null&&s.searchParams.append(a,c.toString());this.url=s.href}},uj=class{constructor(e){this.state=e.get("state"),this.error=e.get("error"),this.error_description=e.get("error_description"),this.error_uri=e.get("error_uri")}},dj=["nbf","jti","auth_time","nonce","acr","amr","azp","at_hash"],fj=["sub","iss","aud","exp","iat"],hj=class{constructor(e){this._settings=e,this._logger=new G("ClaimsService")}filterProtocolClaims(e){const t={...e};if(this._settings.filterProtocolClaims){let n;Array.isArray(this._settings.filterProtocolClaims)?n=this._settings.filterProtocolClaims:n=dj;for(const r of n)fj.includes(r)||delete t[r]}return t}mergeClaims(e,t){const n={...e};for(const[r,i]of Object.entries(t))for(const o of Array.isArray(i)?i:[i]){const s=n[r];s?Array.isArray(s)?s.includes(o)||s.push(o):n[r]!==o&&(typeof o=="object"&&this._settings.mergeClaims?n[r]=this.mergeClaims(s,o):n[r]=[s,o]):n[r]=o}return n}},pj=class{constructor(e){this._logger=new G("OidcClient"),this.settings=new Bm(e),this.metadataService=new XS(this.settings),this._claimsService=new hj(this.settings),this._validator=new sj(this.settings,this.metadataService,this._claimsService),this._tokenClient=new Um(this.settings,this.metadataService)}async createSigninRequest({state:e,request:t,request_uri:n,request_type:r,id_token_hint:i,login_hint:o,skipUserInfo:s,nonce:a,response_type:c=this.settings.response_type,scope:u=this.settings.scope,redirect_uri:d=this.settings.redirect_uri,prompt:f=this.settings.prompt,display:g=this.settings.display,max_age:h=this.settings.max_age,ui_locales:y=this.settings.ui_locales,acr_values:_=this.settings.acr_values,resource:C=this.settings.resource,response_mode:w=this.settings.response_mode,extraQueryParams:m=this.settings.extraQueryParams,extraTokenParams:p=this.settings.extraTokenParams}){const x=this._logger.create("createSigninRequest");if(c!=="code")throw new Error("Only the Authorization Code flow (with PKCE) is supported");const j=await this.metadataService.getAuthorizationEndpoint();x.debug("Received authorization endpoint",j);const b=new aj({url:j,authority:this.settings.authority,client_id:this.settings.client_id,redirect_uri:d,response_type:c,scope:u,state_data:e,prompt:f,display:g,max_age:h,ui_locales:y,id_token_hint:i,login_hint:o,acr_values:_,resource:C,request:t,request_uri:n,extraQueryParams:m,extraTokenParams:p,request_type:r,response_mode:w,client_secret:this.settings.client_secret,skipUserInfo:s,nonce:a,disablePKCE:this.settings.disablePKCE});await this.clearStaleState();const k=b.state;return await this.settings.stateStore.set(k.id,k.toStorageString()),b}async readSigninResponseState(e,t=!1){const n=this._logger.create("readSigninResponseState"),r=new Xo(jc.readParams(e,this.settings.response_mode));if(!r.state)throw n.throw(new Error("No state in response")),null;const i=await this.settings.stateStore[t?"remove":"get"](r.state);if(!i)throw n.throw(new Error("No matching state found in storage")),null;return{state:$u.fromStorageString(i),response:r}}async processSigninResponse(e){const t=this._logger.create("processSigninResponse"),{state:n,response:r}=await this.readSigninResponseState(e,!0);return t.debug("received state from storage; validating response"),await this._validator.validateSigninResponse(r,n),r}async processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n=!1,extraTokenParams:r={}}){const i=await this._tokenClient.exchangeCredentials({username:e,password:t,...r}),o=new Xo(new URLSearchParams);return Object.assign(o,i),await this._validator.validateCredentialsResponse(o,n),o}async useRefreshToken({state:e,timeoutInSeconds:t}){var n;const r=this._logger.create("useRefreshToken");let i;if(this.settings.refreshTokenAllowedScope===void 0)i=e.scope;else{const a=this.settings.refreshTokenAllowedScope.split(" ");i=(((n=e.scope)==null?void 0:n.split(" "))||[]).filter(u=>a.includes(u)).join(" ")}const o=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:i,timeoutInSeconds:t}),s=new Xo(new URLSearchParams);return Object.assign(s,o),r.debug("validating response",s),await this._validator.validateRefreshResponse(s,{...e,scope:i}),s}async createSignoutRequest({state:e,id_token_hint:t,request_type:n,post_logout_redirect_uri:r=this.settings.post_logout_redirect_uri,extraQueryParams:i=this.settings.extraQueryParams}={}){const o=this._logger.create("createSignoutRequest"),s=await this.metadataService.getEndSessionEndpoint();if(!s)throw o.throw(new Error("No end session endpoint")),null;o.debug("Received end session endpoint",s);const a=new cj({url:s,id_token_hint:t,post_logout_redirect_uri:r,state_data:e,extraQueryParams:i,request_type:n});await this.clearStaleState();const c=a.state;return c&&(o.debug("Signout request has state to persist"),await this.settings.stateStore.set(c.id,c.toStorageString())),a}async readSignoutResponseState(e,t=!1){const n=this._logger.create("readSignoutResponseState"),r=new uj(jc.readParams(e,this.settings.response_mode));if(!r.state){if(n.debug("No state in response"),r.error)throw n.warn("Response was error:",r.error),new tr(r);return{state:void 0,response:r}}const i=await this.settings.stateStore[t?"remove":"get"](r.state);if(!i)throw n.throw(new Error("No matching state found in storage")),null;return{state:Hr.fromStorageString(i),response:r}}async processSignoutResponse(e){const t=this._logger.create("processSignoutResponse"),{state:n,response:r}=await this.readSignoutResponseState(e,!0);return n?(t.debug("Received state from storage; validating response"),this._validator.validateSignoutResponse(r,n)):t.debug("No state from storage; skipping response validation"),r}clearStaleState(){return this._logger.create("clearStaleState"),Hr.clearStaleState(this.settings.stateStore,this.settings.staleStateAgeInSeconds)}async revokeToken(e,t){return this._logger.create("revokeToken"),await this._tokenClient.revoke({token:e,token_type_hint:t})}},gj=class{constructor(e){this._userManager=e,this._logger=new G("SessionMonitor"),this._start=async t=>{const n=t.session_state;if(!n)return;const r=this._logger.create("_start");if(t.profile?(this._sub=t.profile.sub,this._sid=t.profile.sid,r.debug("session_state",n,", sub",this._sub)):(this._sub=void 0,this._sid=void 0,r.debug("session_state",n,", anonymous user")),this._checkSessionIFrame){this._checkSessionIFrame.start(n);return}try{const i=await this._userManager.metadataService.getCheckSessionIframe();if(i){r.debug("initializing check session iframe");const o=this._userManager.settings.client_id,s=this._userManager.settings.checkSessionIntervalInSeconds,a=this._userManager.settings.stopCheckSessionOnError,c=new YS(this._callback,o,i,s,a);await c.load(),this._checkSessionIFrame=c,c.start(n)}else r.warn("no check session iframe found in the metadata")}catch(i){r.error("Error from getCheckSessionIframe:",i instanceof Error?i.message:i)}},this._stop=()=>{const t=this._logger.create("_stop");if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&this._checkSessionIFrame.stop(),this._userManager.settings.monitorAnonymousSession){const n=setInterval(async()=>{clearInterval(n);try{const r=await this._userManager.querySessionStatus();if(r){const i={session_state:r.session_state,profile:r.sub&&r.sid?{sub:r.sub,sid:r.sid}:null};this._start(i)}}catch(r){t.error("error from querySessionStatus",r instanceof Error?r.message:r)}},1e3)}},this._callback=async()=>{const t=this._logger.create("_callback");try{const n=await this._userManager.querySessionStatus();let r=!0;n&&this._checkSessionIFrame?n.sub===this._sub?(r=!1,this._checkSessionIFrame.start(n.session_state),n.sid===this._sid?t.debug("same sub still logged in at OP, restarting check session iframe; session_state",n.session_state):(t.debug("same sub still logged in at OP, session state has changed, restarting check session iframe; session_state",n.session_state),this._userManager.events._raiseUserSessionChanged())):t.debug("different subject signed into OP",n.sub):t.debug("subject no longer signed into OP"),r?this._sub?this._userManager.events._raiseUserSignedOut():this._userManager.events._raiseUserSignedIn():t.debug("no change in session detected, no event to raise")}catch(n){this._sub&&(t.debug("Error calling queryCurrentSigninSession; raising signed out event",n),this._userManager.events._raiseUserSignedOut())}},e||this._logger.throw(new Error("No user manager passed")),this._userManager.events.addUserLoaded(this._start),this._userManager.events.addUserUnloaded(this._stop),this._init().catch(t=>{this._logger.error(t)})}async _init(){this._logger.create("_init");const e=await this._userManager.getUser();if(e)this._start(e);else if(this._userManager.settings.monitorAnonymousSession){const t=await this._userManager.querySessionStatus();if(t){const n={session_state:t.session_state,profile:t.sub&&t.sid?{sub:t.sub,sid:t.sid}:null};this._start(n)}}}},Zo=class{constructor(t){var n;this.id_token=t.id_token,this.session_state=(n=t.session_state)!=null?n:null,this.access_token=t.access_token,this.refresh_token=t.refresh_token,this.token_type=t.token_type,this.scope=t.scope,this.profile=t.profile,this.expires_at=t.expires_at,this.state=t.userState}get expires_in(){if(this.expires_at!==void 0)return this.expires_at-wt.getEpochTime()}set expires_in(t){t!==void 0&&(this.expires_at=Math.floor(t)+wt.getEpochTime())}get expired(){const t=this.expires_in;if(t!==void 0)return t<=0}get scopes(){var t,n;return(n=(t=this.scope)==null?void 0:t.split(" "))!=null?n:[]}toStorageString(){return new G("User").create("toStorageString"),JSON.stringify({id_token:this.id_token,session_state:this.session_state,access_token:this.access_token,refresh_token:this.refresh_token,token_type:this.token_type,scope:this.scope,profile:this.profile,expires_at:this.expires_at})}static fromStorageString(t){return G.createStatic("User","fromStorageString"),new Zo(JSON.parse(t))}},Gf="oidc-client",$m=class{constructor(){this._abort=new fn("Window navigation aborted"),this._disposeHandlers=new Set,this._window=null}async navigate(e){const t=this._logger.create("navigate");if(!this._window)throw new Error("Attempted to navigate on a disposed window");t.debug("setting URL in window"),this._window.location.replace(e.url);const{url:n,keepOpen:r}=await new Promise((i,o)=>{const s=a=>{var c;const u=a.data,d=(c=e.scriptOrigin)!=null?c:window.location.origin;if(!(a.origin!==d||(u==null?void 0:u.source)!==Gf)){try{const f=jc.readParams(u.url,e.response_mode).get("state");if(f||t.warn("no state found in response url"),a.source!==this._window&&f!==e.state)return}catch{this._dispose(),o(new Error("Invalid response from window"))}i(u)}};window.addEventListener("message",s,!1),this._disposeHandlers.add(()=>window.removeEventListener("message",s,!1)),this._disposeHandlers.add(this._abort.addHandler(a=>{this._dispose(),o(a)}))});return t.debug("got response from window"),this._dispose(),r||this.close(),{url:n}}_dispose(){this._logger.create("_dispose");for(const e of this._disposeHandlers)e();this._disposeHandlers.clear()}static _notifyParent(e,t,n=!1,r=window.location.origin){e.postMessage({source:Gf,url:t,keepOpen:n},r)}},Dm={location:!1,toolbar:!1,height:640},Hm="_blank",mj=60,vj=2,Wm=10,yj=class extends Bm{constructor(e){const{popup_redirect_uri:t=e.redirect_uri,popup_post_logout_redirect_uri:n=e.post_logout_redirect_uri,popupWindowFeatures:r=Dm,popupWindowTarget:i=Hm,redirectMethod:o="assign",redirectTarget:s="self",iframeNotifyParentOrigin:a=e.iframeNotifyParentOrigin,iframeScriptOrigin:c=e.iframeScriptOrigin,silent_redirect_uri:u=e.redirect_uri,silentRequestTimeoutInSeconds:d=Wm,automaticSilentRenew:f=!0,validateSubOnSilentRenew:g=!0,includeIdTokenInSilentRenew:h=!1,monitorSession:y=!1,monitorAnonymousSession:_=!1,checkSessionIntervalInSeconds:C=vj,query_status_response_type:w="code",stopCheckSessionOnError:m=!0,revokeTokenTypes:p=["access_token","refresh_token"],revokeTokensOnSignout:x=!1,includeIdTokenInSilentSignout:j=!1,accessTokenExpiringNotificationTimeInSeconds:b=mj,userStore:k}=e;if(super(e),this.popup_redirect_uri=t,this.popup_post_logout_redirect_uri=n,this.popupWindowFeatures=r,this.popupWindowTarget=i,this.redirectMethod=o,this.redirectTarget=s,this.iframeNotifyParentOrigin=a,this.iframeScriptOrigin=c,this.silent_redirect_uri=u,this.silentRequestTimeoutInSeconds=d,this.automaticSilentRenew=f,this.validateSubOnSilentRenew=g,this.includeIdTokenInSilentRenew=h,this.monitorSession=y,this.monitorAnonymousSession=_,this.checkSessionIntervalInSeconds=C,this.stopCheckSessionOnError=m,this.query_status_response_type=w,this.revokeTokenTypes=p,this.revokeTokensOnSignout=x,this.includeIdTokenInSilentSignout=j,this.accessTokenExpiringNotificationTimeInSeconds=b,k)this.userStore=k;else{const O=typeof window<"u"?window.sessionStorage:new Mm;this.userStore=new zm({store:O})}}},bc=class extends $m{constructor({silentRequestTimeoutInSeconds:e=Wm}){super(),this._logger=new G("IFrameWindow"),this._timeoutInSeconds=e,this._frame=bc.createHiddenIframe(),this._window=this._frame.contentWindow}static createHiddenIframe(){const e=window.document.createElement("iframe");return e.style.visibility="hidden",e.style.position="fixed",e.style.left="-1000px",e.style.top="0",e.width="0",e.height="0",e.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),window.document.body.appendChild(e),e}async navigate(e){this._logger.debug("navigate: Using timeout of:",this._timeoutInSeconds);const t=setTimeout(()=>this._abort.raise(new Bu("IFrame timed out without a response")),this._timeoutInSeconds*1e3);return this._disposeHandlers.add(()=>clearTimeout(t)),await super.navigate(e)}close(){var e;this._frame&&(this._frame.parentNode&&(this._frame.addEventListener("load",t=>{var n;const r=t.target;(n=r.parentNode)==null||n.removeChild(r),this._abort.raise(new Error("IFrame removed from DOM"))},!0),(e=this._frame.contentWindow)==null||e.location.replace("about:blank")),this._frame=null),this._window=null}static notifyParent(e,t){return super._notifyParent(window.parent,e,!1,t)}},xj=class{constructor(e){this._settings=e,this._logger=new G("IFrameNavigator")}async prepare({silentRequestTimeoutInSeconds:e=this._settings.silentRequestTimeoutInSeconds}){return new bc({silentRequestTimeoutInSeconds:e})}async callback(e){this._logger.create("callback"),bc.notifyParent(e,this._settings.iframeNotifyParentOrigin)}},wj=500,Yf=class extends $m{constructor({popupWindowTarget:e=Hm,popupWindowFeatures:t={}}){super(),this._logger=new G("PopupWindow");const n=Jf.center({...Dm,...t});this._window=window.open(void 0,e,Jf.serialize(n))}async navigate(e){var t;(t=this._window)==null||t.focus();const n=setInterval(()=>{(!this._window||this._window.closed)&&this._abort.raise(new Error("Popup closed by user"))},wj);return this._disposeHandlers.add(()=>clearInterval(n)),await super.navigate(e)}close(){this._window&&(this._window.closed||(this._window.close(),this._abort.raise(new Error("Popup closed")))),this._window=null}static notifyOpener(e,t){if(!window.opener)throw new Error("No window.opener. Can't complete notification.");return super._notifyParent(window.opener,e,t)}},_j=class{constructor(e){this._settings=e,this._logger=new G("PopupNavigator")}async prepare({popupWindowFeatures:e=this._settings.popupWindowFeatures,popupWindowTarget:t=this._settings.popupWindowTarget}){return new Yf({popupWindowFeatures:e,popupWindowTarget:t})}async callback(e,t=!1){this._logger.create("callback"),Yf.notifyOpener(e,t)}},Sj=class{constructor(e){this._settings=e,this._logger=new G("RedirectNavigator")}async prepare({redirectMethod:e=this._settings.redirectMethod,redirectTarget:t=this._settings.redirectTarget}){var n;this._logger.create("prepare");let r=window.self;t==="top"&&(r=(n=window.top)!=null?n:window.self);const i=r.location[e].bind(r.location);let o;return{navigate:async s=>{this._logger.create("navigate");const a=new Promise((c,u)=>{o=u});return i(s.url),await a},close:()=>{this._logger.create("close"),o==null||o(new Error("Redirect aborted")),r.stop()}}}},jj=class extends GS{constructor(e){super({expiringNotificationTimeInSeconds:e.accessTokenExpiringNotificationTimeInSeconds}),this._logger=new G("UserManagerEvents"),this._userLoaded=new fn("User loaded"),this._userUnloaded=new fn("User unloaded"),this._silentRenewError=new fn("Silent renew error"),this._userSignedIn=new fn("User signed in"),this._userSignedOut=new fn("User signed out"),this._userSessionChanged=new fn("User session changed")}load(e,t=!0){super.load(e),t&&this._userLoaded.raise(e)}unload(){super.unload(),this._userUnloaded.raise()}addUserLoaded(e){return this._userLoaded.addHandler(e)}removeUserLoaded(e){return this._userLoaded.removeHandler(e)}addUserUnloaded(e){return this._userUnloaded.addHandler(e)}removeUserUnloaded(e){return this._userUnloaded.removeHandler(e)}addSilentRenewError(e){return this._silentRenewError.addHandler(e)}removeSilentRenewError(e){return this._silentRenewError.removeHandler(e)}_raiseSilentRenewError(e){this._silentRenewError.raise(e)}addUserSignedIn(e){return this._userSignedIn.addHandler(e)}removeUserSignedIn(e){this._userSignedIn.removeHandler(e)}_raiseUserSignedIn(){this._userSignedIn.raise()}addUserSignedOut(e){return this._userSignedOut.addHandler(e)}removeUserSignedOut(e){this._userSignedOut.removeHandler(e)}_raiseUserSignedOut(){this._userSignedOut.raise()}addUserSessionChanged(e){return this._userSessionChanged.addHandler(e)}removeUserSessionChanged(e){this._userSessionChanged.removeHandler(e)}_raiseUserSessionChanged(){this._userSessionChanged.raise()}},bj=class{constructor(e){this._userManager=e,this._logger=new G("SilentRenewService"),this._isStarted=!1,this._retryTimer=new wt("Retry Silent Renew"),this._tokenExpiring=async()=>{const t=this._logger.create("_tokenExpiring");try{await this._userManager.signinSilent(),t.debug("silent token renewal successful")}catch(n){if(n instanceof Bu){t.warn("ErrorTimeout from signinSilent:",n,"retry in 5s"),this._retryTimer.init(5);return}t.error("Error from signinSilent:",n),this._userManager.events._raiseSilentRenewError(n)}}}async start(){const e=this._logger.create("start");if(!this._isStarted){this._isStarted=!0,this._userManager.events.addAccessTokenExpiring(this._tokenExpiring),this._retryTimer.addHandler(this._tokenExpiring);try{await this._userManager.getUser()}catch(t){e.error("getUser error",t)}}}stop(){this._isStarted&&(this._retryTimer.cancel(),this._retryTimer.removeHandler(this._tokenExpiring),this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring),this._isStarted=!1)}},kj=class{constructor(e){this.refresh_token=e.refresh_token,this.id_token=e.id_token,this.session_state=e.session_state,this.scope=e.scope,this.profile=e.profile,this.data=e.state}},Ej=class{constructor(e){this._logger=new G("UserManager"),this.settings=new yj(e),this._client=new pj(e),this._redirectNavigator=new Sj(this.settings),this._popupNavigator=new _j(this.settings),this._iframeNavigator=new xj(this.settings),this._events=new jj(this.settings),this._silentRenewService=new bj(this),this.settings.automaticSilentRenew&&this.startSilentRenew(),this._sessionMonitor=null,this.settings.monitorSession&&(this._sessionMonitor=new gj(this))}get events(){return this._events}get metadataService(){return this._client.metadataService}async getUser(){const e=this._logger.create("getUser"),t=await this._loadUser();return t?(e.info("user loaded"),this._events.load(t,!1),t):(e.info("user not found in storage"),null)}async removeUser(){const e=this._logger.create("removeUser");await this.storeUser(null),e.info("user removed from storage"),this._events.unload()}async signinRedirect(e={}){this._logger.create("signinRedirect");const{redirectMethod:t,...n}=e,r=await this._redirectNavigator.prepare({redirectMethod:t});await this._signinStart({request_type:"si:r",...n},r)}async signinRedirectCallback(e=window.location.href){const t=this._logger.create("signinRedirectCallback"),n=await this._signinEnd(e);return n.profile&&n.profile.sub?t.info("success, signed in subject",n.profile.sub):t.info("no subject"),n}async signinResourceOwnerCredentials({username:e,password:t,skipUserInfo:n=!1}){const r=this._logger.create("signinResourceOwnerCredential"),i=await this._client.processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n,extraTokenParams:this.settings.extraTokenParams});r.debug("got signin response");const o=await this._buildUser(i);return o.profile&&o.profile.sub?r.info("success, signed in subject",o.profile.sub):r.info("no subject"),o}async signinPopup(e={}){const t=this._logger.create("signinPopup"),{popupWindowFeatures:n,popupWindowTarget:r,...i}=e,o=this.settings.popup_redirect_uri;o||t.throw(new Error("No popup_redirect_uri configured"));const s=await this._popupNavigator.prepare({popupWindowFeatures:n,popupWindowTarget:r}),a=await this._signin({request_type:"si:p",redirect_uri:o,display:"popup",...i},s);return a&&(a.profile&&a.profile.sub?t.info("success, signed in subject",a.profile.sub):t.info("no subject")),a}async signinPopupCallback(e=window.location.href,t=!1){const n=this._logger.create("signinPopupCallback");await this._popupNavigator.callback(e,t),n.info("success")}async signinSilent(e={}){var t;const n=this._logger.create("signinSilent"),{silentRequestTimeoutInSeconds:r,...i}=e;let o=await this._loadUser();if(o!=null&&o.refresh_token){n.debug("using refresh token");const u=new kj(o);return await this._useRefreshToken(u)}const s=this.settings.silent_redirect_uri;s||n.throw(new Error("No silent_redirect_uri configured"));let a;o&&this.settings.validateSubOnSilentRenew&&(n.debug("subject prior to silent renew:",o.profile.sub),a=o.profile.sub);const c=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:r});return o=await this._signin({request_type:"si:s",redirect_uri:s,prompt:"none",id_token_hint:this.settings.includeIdTokenInSilentRenew?o==null?void 0:o.id_token:void 0,...i},c,a),o&&((t=o.profile)!=null&&t.sub?n.info("success, signed in subject",o.profile.sub):n.info("no subject")),o}async _useRefreshToken(e){const t=await this._client.useRefreshToken({state:e,timeoutInSeconds:this.settings.silentRequestTimeoutInSeconds}),n=new Zo({...e,...t});return await this.storeUser(n),this._events.load(n),n}async signinSilentCallback(e=window.location.href){const t=this._logger.create("signinSilentCallback");await this._iframeNavigator.callback(e),t.info("success")}async signinCallback(e=window.location.href){const{state:t}=await this._client.readSigninResponseState(e);switch(t.request_type){case"si:r":return await this.signinRedirectCallback(e);case"si:p":return await this.signinPopupCallback(e);case"si:s":return await this.signinSilentCallback(e);default:throw new Error("invalid response_type in state")}}async signoutCallback(e=window.location.href,t=!1){const{state:n}=await this._client.readSignoutResponseState(e);if(n)switch(n.request_type){case"so:r":await this.signoutRedirectCallback(e);break;case"so:p":await this.signoutPopupCallback(e,t);break;case"so:s":await this.signoutSilentCallback(e);break;default:throw new Error("invalid response_type in state")}}async querySessionStatus(e={}){const t=this._logger.create("querySessionStatus"),{silentRequestTimeoutInSeconds:n,...r}=e,i=this.settings.silent_redirect_uri;i||t.throw(new Error("No silent_redirect_uri configured"));const o=await this._loadUser(),s=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n}),a=await this._signinStart({request_type:"si:s",redirect_uri:i,prompt:"none",id_token_hint:this.settings.includeIdTokenInSilentRenew?o==null?void 0:o.id_token:void 0,response_type:this.settings.query_status_response_type,scope:"openid",skipUserInfo:!0,...r},s);try{const c=await this._client.processSigninResponse(a.url);return t.debug("got signin response"),c.session_state&&c.profile.sub?(t.info("success for subject",c.profile.sub),{session_state:c.session_state,sub:c.profile.sub,sid:c.profile.sid}):(t.info("success, user not authenticated"),null)}catch(c){if(this.settings.monitorAnonymousSession&&c instanceof tr)switch(c.error){case"login_required":case"consent_required":case"interaction_required":case"account_selection_required":return t.info("success for anonymous user"),{session_state:c.session_state}}throw c}}async _signin(e,t,n){const r=await this._signinStart(e,t);return await this._signinEnd(r.url,n)}async _signinStart(e,t){const n=this._logger.create("_signinStart");try{const r=await this._client.createSigninRequest(e);return n.debug("got signin request"),await t.navigate({url:r.url,state:r.state.id,response_mode:r.state.response_mode,scriptOrigin:this.settings.iframeScriptOrigin})}catch(r){throw n.debug("error after preparing navigator, closing navigator window"),t.close(),r}}async _signinEnd(e,t){const n=this._logger.create("_signinEnd"),r=await this._client.processSigninResponse(e);return n.debug("got signin response"),await this._buildUser(r,t)}async _buildUser(e,t){const n=this._logger.create("_buildUser"),r=new Zo(e);if(t){if(t!==r.profile.sub)throw n.debug("current user does not match user returned from signin. sub from signin:",r.profile.sub),new tr({...e,error:"login_required"});n.debug("current user matches user returned from signin")}return await this.storeUser(r),n.debug("user stored"),this._events.load(r),r}async signoutRedirect(e={}){const t=this._logger.create("signoutRedirect"),{redirectMethod:n,...r}=e,i=await this._redirectNavigator.prepare({redirectMethod:n});await this._signoutStart({request_type:"so:r",post_logout_redirect_uri:this.settings.post_logout_redirect_uri,...r},i),t.info("success")}async signoutRedirectCallback(e=window.location.href){const t=this._logger.create("signoutRedirectCallback"),n=await this._signoutEnd(e);return t.info("success"),n}async signoutPopup(e={}){const t=this._logger.create("signoutPopup"),{popupWindowFeatures:n,popupWindowTarget:r,...i}=e,o=this.settings.popup_post_logout_redirect_uri,s=await this._popupNavigator.prepare({popupWindowFeatures:n,popupWindowTarget:r});await this._signout({request_type:"so:p",post_logout_redirect_uri:o,state:o==null?void 0:{},...i},s),t.info("success")}async signoutPopupCallback(e=window.location.href,t=!1){const n=this._logger.create("signoutPopupCallback");await this._popupNavigator.callback(e,t),n.info("success")}async _signout(e,t){const n=await this._signoutStart(e,t);return await this._signoutEnd(n.url)}async _signoutStart(e={},t){var n;const r=this._logger.create("_signoutStart");try{const i=await this._loadUser();r.debug("loaded current user from storage"),this.settings.revokeTokensOnSignout&&await this._revokeInternal(i);const o=e.id_token_hint||i&&i.id_token;o&&(r.debug("setting id_token_hint in signout request"),e.id_token_hint=o),await this.removeUser(),r.debug("user removed, creating signout request");const s=await this._client.createSignoutRequest(e);return r.debug("got signout request"),await t.navigate({url:s.url,state:(n=s.state)==null?void 0:n.id})}catch(i){throw r.debug("error after preparing navigator, closing navigator window"),t.close(),i}}async _signoutEnd(e){const t=this._logger.create("_signoutEnd"),n=await this._client.processSignoutResponse(e);return t.debug("got signout response"),n}async signoutSilent(e={}){var t;const n=this._logger.create("signoutSilent"),{silentRequestTimeoutInSeconds:r,...i}=e,o=this.settings.includeIdTokenInSilentSignout?(t=await this._loadUser())==null?void 0:t.id_token:void 0,s=this.settings.popup_post_logout_redirect_uri,a=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:r});await this._signout({request_type:"so:s",post_logout_redirect_uri:s,id_token_hint:o,...i},a),n.info("success")}async signoutSilentCallback(e=window.location.href){const t=this._logger.create("signoutSilentCallback");await this._iframeNavigator.callback(e),t.info("success")}async revokeTokens(e){const t=await this._loadUser();await this._revokeInternal(t,e)}async _revokeInternal(e,t=this.settings.revokeTokenTypes){const n=this._logger.create("_revokeInternal");if(!e)return;const r=t.filter(i=>typeof e[i]=="string");if(!r.length){n.debug("no need to revoke due to no token(s)");return}for(const i of r)await this._client.revokeToken(e[i],i),n.info(`${i} revoked successfully`),i!=="access_token"&&(e[i]=null);await this.storeUser(e),n.debug("user stored"),this._events.load(e)}startSilentRenew(){this._logger.create("startSilentRenew"),this._silentRenewService.start()}stopSilentRenew(){this._silentRenewService.stop()}get _userStoreKey(){return`user:${this.settings.authority}:${this.settings.client_id}`}async _loadUser(){const e=this._logger.create("_loadUser"),t=await this.settings.userStore.get(this._userStoreKey);return t?(e.debug("user storageString loaded"),Zo.fromStorageString(t)):(e.debug("no user storageString"),null)}async storeUser(e){const t=this._logger.create("storeUser");if(e){t.debug("storing user");const n=e.toStorageString();await this.settings.userStore.set(this._userStoreKey,n)}else this._logger.debug("removing user"),await this.settings.userStore.remove(this._userStoreKey)}async clearStaleState(){await this._client.clearStaleState()}};class Du{static _checkStorageSupport(){if(this.storage_key===void 0)throw Error("This doesn't support local storage")}_getStorageKey(){return Object.getPrototypeOf(this).constructor.storage_key}_IcheckStorageSupport(){if(this._getStorageKey()===void 0)throw Error("This doesn't support local storage")}static restoreFromLocalStorage(){return _checkStorageSupport(),window.sessionStorage.getItem(this.storage_key)?new APIToken(window.sessionStorage.getItem(this.storage_key)):!1}static isCached(){return this._checkStorageSupport(),!!window.sessionStorage.getItem(this.storage_key)}saveToLocalStorage(){this._IcheckStorageSupport(),window.sessionStorage.setItem(this._getStorageKey(),JSON.stringify(this))}}Ie(Du,"storage_key");var ul;let Cj=(ul=class extends Du{constructor(n){super();Ie(this,"user");Ie(this,"key");Ie(this,"expires");Ie(this,"ip");this.user=n.user,this.key=n.key,this.expires=n.expires,this.ip=n.ip}},Ie(ul,"storage_key","pairent_api_key"),ul);const{API_ROOT:Oj,api_path:Pj}=oo,Rs=class extends Du{isLoggedIn(){return!1}constructor(t){super();for(const n in t)this[n]=t[n]}static restoreFromLocalStorage(){}static async getById(t){const n=await Pr.get(Oj+"/api/user/get",{params:{id:t}});if(n.data.error)throw new Error(n.data.error);return new Rs(n.data)}static async login(t){if(t.error!==null)throw new Error(t.error+": "+t.error_description);const n=await Pr.post(Pj("/api/auth/user/login"),t);return n.status!==200?!1:(n.data.error||(new Cj(n.data.token).saveToLocalStorage(),new Rs(n.data.user_data).saveToLocalStorage()),n.data)}};let Tr=Rs;Ie(Tr,"storage_key","pairent_user_data");const{OIDCConfig:Tj}=oo,Rj=P(LS)` + font-size: 11pt; + width: 250px; + height: 60px; + padding: 16px 20px; + + font-size: 11.5pt; + font-weight: 700; + cursor: ${e=>e.disabled?"default":"pointer"}; + + & svg { + height: 14pt; + transform: translateY(4px); + margin-left: 10px; + } + &:hover { + background: ${e=>e.disabled?"white":"royalblue"}; + } +`,Xf=P.p` + font-size: 8pt; + color: gray; + margin-top: 16px; +`,Nj=()=>l.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 451.5 155.9",children:l.jsx("path",{fillRule:"evenodd",d:"M408.7 0h42.8L416 102.5l-2.8 8.1c-8.2 23.9-33.9 43.6-58 45.2h-.6c-.8.1-1.6.1-2.5.1H348c-.8 0-1.6 0-2.4-.1h-43l15.7-45.2.3-.8h35.7c9.1 0 19.2-7.8 22.5-17.2l.4-1 1.2-3.5h-32.7c-4.4 0-19.5 0-13.1-18.5l4.4-12.9 3.9-11.2L356.5 0H393l-21.7 62.8H387c2.6-7.5 15.8-45.6 21.7-62.8zm-91.2 0h25.9l-15.7 45.3h-7c-9.6 0-20.1 7.9-23.5 17.4L265 155.9c-.5 0-1-.1-1.5-.1h-43l15.8-45.2 7.8-22.6 14.8-42.5c8.3-24.1 34.4-44 58.6-45.2V0zM208 0h48.7l-20.1 58.1c-3.2 9.1-9.4 15.2-19.4 17.2l16.8.1-12.3 35.2c-8.2 23.9-33.9 43.6-58 45.2h-.7c-.8.1-1.6.1-2.5.1h-4.1c-.8 0-1.6 0-2.4-.1h-43l38.2-110.4c8.4-24.1 34.4-44 58.7-45.2l.1-.2zm-12.7 40.8h15.4l-8.1 23h-23.9l4.4-12.5c1.7-4.6 7.3-10.5 12.2-10.5zm-25.6 48.8H194l-5.5 16.1c-1.1 3.4-6.1 10.8-13.6 10.8h-14.1l8.9-26.9zM96.9 0h48.7l-20.2 58.1c-3.2 9.1-9.4 15.2-19.4 17.2l16.8.1-9.3 27.1h-.2l-2.8 8.1c-8.2 23.9-33.9 43.6-58 45.2h-.6c-.8.1-1.7.1-2.5.1h-4.1c-.8 0-1.6 0-2.4-.1H0l15.7-45.2L23.6 88l14.7-42.5C46.7 21.4 72.7 1.5 97 .3V0zM84.2 40.8h15.4l-8.1 23H67.6L72 51.3c1.7-4.6 7.3-10.5 12.2-10.5zM58.6 89.6h24.3l-5.5 16.1c-1.1 3.4-6.1 10.8-13.5 10.8H49.7l8.9-26.9z",clipRule:"evenodd"})});class Aj extends bt.Component{constructor(t){super(t),this.state={loading:!1,error:JSON.parse(window.localStorage.getItem("auth_fail"))},window.localStorage.removeItem("auth_fail"),this.openid=this.openid.bind(this)}async openid(){if(this.state.loading===!0)return;this.setState({loading:!0}),Qn.setLogger(console),Qn.setLevel(Qn.NONE),new Ej(Tj).signinRedirect()}render(){return Tr.isCached()&&(window.location.href="/"),l.jsx("div",{style:{height:"65vh"},children:l.jsxs(Nm,{children:[l.jsx("h2",{children:"Вход"}),l.jsx("hr",{}),l.jsx(Rj,{onClick:this.openid,disabled:this.state.loading,children:this.state.loading?l.jsx(ao,{size:"24px",color:"#4169e1"}):l.jsxs(l.Fragment,{children:["Войти через",l.jsx(Nj,{})]})}),l.jsxs(Xf,{children:["Вход осуществляется только через",l.jsx("br",{}),"Систему Единого Входа ВВГУ"]}),this.state.error?l.jsxs(Xf,{style:{color:"darkred",fontWeight:"600"},children:["Произошла ошибка: ",this.state.error.error,this.state.error.error_description?l.jsxs(l.Fragment,{children:[l.jsx("br",{}),this.state.error.error_description]}):null]}):null]})})}}const Ij=P.div` + position: relative; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 400px; + text-align: center; + + & h2 { + font-size: 1.8em; + font-weight: 600; + margin: 1.5em 0; + } +`,Lj=P.p` + font-family: monospace; + margin: 10px 0; + width: 780px; +`;class Fj extends bt.Component{constructor(t){super(t),this.response=new Xo(new URL(window.location.href).searchParams)}async componentDidMount(){if(this.response.error)return;window.localStorage.removeItem("auth_fail");let t="?";for(const r in localStorage)if(r.startsWith("oidc.")){t=JSON.parse(localStorage[r]).code_verifier,localStorage.removeItem(r);break}const n=await Tr.login({...this.response,code_verifier:t});if(n.error){window.localStorage.setItem("auth_fail",JSON.stringify(n)),window.location.href="/login";return}n.new_user?window.location.href="/register":window.location.href="/"}render(){return l.jsxs(l.Fragment,{children:[l.jsx("div",{style:{height:"65vh"},children:l.jsxs(Ij,{children:[l.jsx("h2",{children:"Подождите пожалуйста"}),l.jsx("div",{style:{margin:"36px auto",width:"fit-content"},children:l.jsx(ao,{size:"80px",color:"#0077aa"})})]})}),this.response.error?l.jsx("div",{children:l.jsxs(Nm,{children:[l.jsx("h2",{children:"Ошибка авторизации"}),l.jsx("p",{children:this.response.error}),l.jsx(Lj,{children:this.response.error_description})]})}):null]})}}const Mj=P.button` + border: 1px solid #c2c4c2; + display: inline-block; + padding: 12px 16px; + border-radius: 14px; + + background: #ffffff; + color: gray; + box-shadow: 0 2px 1px #00000010; + + font-size: 12pt; + float: left; + + & ${Y} { + transform: translate(-4px, 2px) + } +`,zj=P.div` + height: 100px; + padding-top: 32px; + z-index: 1; + position: relative; + display: flex; + align-items: center; + top: 0; + + & h2 { + margin-left: 28px; + font-weight: 600; + padding: 0; + display: inline-block; + transform: translateY(4px); + } + + & span { + margin-left: 14px; + font-weight: 500; + font-size: 18px; + line-height: 19px; + } +`,Bj=P.div` + width: 1270px; + height: 650px; + + background: #FFFFFF; + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25); + border-radius: 20px; + margin: 27px auto; +`,Uj=P(at)` + padding: 30px 26px 30px 36px; +`,$j=P.img` + width: 256px; + height: 256px; + + margin: 25px 0px 0px 65px; + + border-radius: 50%; + box-shadow: 0px 0px 12px 2px rgba(0, 0, 0, 0.34); +`,Dj=P.button` + display: flex; + align-items: center; + justify-content: center; + + width: 192px; + height: 32px; + + margin: 16px auto 0px; + + font-weight: 700; + font-size: 16px; + line-height: 19px; + color: #FFFFFF; + + background: #007EFF; + border-radius: 12px; +`,Hj=P.p` + font-weight: 700; + font-size: 20px; + line-height: 24px; +`,Hn=P.p` + font-weight: 500; + font-size: 14px; + line-height: 24px; +`,Wj=P.input` + border: 1px solid #CCCCCC; + border-radius: 12px; + + width: ${e=>e.width}px; + height: ${e=>e.height}px; + + padding-left: 10px; + + font-weight: 500; + font-size: 14px; + line-height: 18px; + color: #000000; + + &::placeholder { + font-weight: 500; + font-size: 12px; + line-height: 24px; + color: #CCCCCC; + } +`,Zf=P.textarea` + border: 1px solid #CCCCCC; + border-radius: 12px; + + margin: 16px 0px 0px 55px; + resize: none; + + padding: 8px; + + font-weight: 500; + font-size: 14px; + line-height: 18px; + color: #000000; + + &::placeholder { + font-weight: 500; + font-size: 14px; + line-height: 24px; + color: #CCCCCC; + } +`,qj=P.div` + width: calc(100% + 15px); + height: 28px; + + padding: 0; + + font-size: 14px; + line-height: 28px; + display: inline-block; + align-items: center; + text-align: center; + color: #FFFFFF; + + background: ${e=>e.background}; + border-radius: 20px; +`,Vj=P.button` + width: 28px; + height: 28px; + + padding: 0px; + + font-weight: 700; + font-size: 20px; + + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + border-radius: 70%; + + color: #FFFFFF; + background: #D9D9D9; +`,Kj=P.button` + margin-top: 14px; + + width: auto; + height: 27px; + + padding: 0; + + font-weight: 500; + font-size: 14px; + line-height: 17px; + + text-align: left; + + color: #007EFF; + background: none; +`,cr=e=>l.jsx(l.Fragment,{children:l.jsxs(at,{style:{marginTop:e.marginTop,marginLeft:19},children:[l.jsx(le,{xs:5,children:l.jsx(Hn,{children:e.title})}),l.jsx(le,{children:l.jsx(Hn,{children:e.text})})]})}),di=e=>l.jsx(l.Fragment,{children:l.jsxs(at,{style:{marginTop:e.marginTop,marginLeft:19},children:[l.jsx(le,{xs:5,children:l.jsx(Hn,{children:e.title})}),l.jsx(le,{xs:5,children:l.jsx(Wj,{width:e.width,height:e.height,placeholder:e.placeholderInput,value:e.valueInput})})]})}),cl=e=>{const t=e.list;return t.length==0?l.jsx(l.Fragment,{children:l.jsx("h1",{children:"Вы ничего не указали"})}):l.jsx(l.Fragment,{children:l.jsxs(at,{style:{marginLeft:19},children:[t.map((n,r)=>l.jsx(le,{style:{paddingLeft:0,marginRight:9,marginTop:10},children:l.jsx(qj,{background:n.color,children:n.text})},r)),e.button?l.jsx(l.Fragment,{children:l.jsx(le,{style:{paddingLeft:0,marginRight:9,marginTop:10},children:l.jsx(Vj,{children:"+"})})}):l.jsx(l.Fragment,{children:l.jsx(Kj,{children:"Изменить.."})})]})})},Qj=function(){const[e,t]=N.useState(),n=1,[r,i,o]=Xr(async u=>{const d=await Tr.getById(u);t(d),console.log(e.name)});N.useEffect(()=>{r(n)},[]);const s=[{text:"Честность",color:"#3F51B5"},{text:"Аккуратность",color:"#03BCD6"},{text:"Музыкальность",color:"#E91D65"},{text:"Общительность",color:"#03A9F4"},{text:"Дружелюбность",color:"#8CC34D"}],a=[{text:"Честность",color:"#3F51B5"},{text:"Аккуратность",color:"#03BCD6"},{text:"Музыкальность",color:"#E91D65"},{text:"Общительность",color:"#03A9F4"},{text:"Дружелюбность",color:"#8CC34D"},{text:"Мудрость",color:"#FF5923"},{text:"Адекватность",color:"#2196F4"},{text:"Щедрость",color:"#FFC308"},{text:"Вежливость",color:"#9D28B2"}],c=[{text:"Курит",color:"#94740B"},{text:"Равнодушие",color:"#D9B8B0"},{text:"Эгоист",color:"#6E3F58"},{text:"Лень",color:"#9F6844"},{text:"Лживость",color:"#AD9029"},{text:"Диструктивность",color:"#9A150C"},{text:"Токсичность",color:"#608426"}];return l.jsxs(l.Fragment,{children:[l.jsxs(zj,{children:[l.jsxs(Mj,{children:[l.jsx(Y,{src:"/images/icons/left-arrow-light.svg",width:10,height:16}),"Вернуться назад"]}),l.jsxs("h2",{children:["Личный кабинет",l.jsx("span",{children:"/ Мои данные"})]})]}),l.jsx(Bj,{children:l.jsxs(Uj,{children:[l.jsx(le,{children:l.jsxs(Dn,{children:[l.jsx(Hj,{children:"Добрый день, Александр!"}),l.jsx(Hn,{children:"Ваш статус - Студент"}),l.jsx($j,{src:"/images/avatar-test.jpg"}),l.jsxs(Dj,{children:[l.jsx(Y,{src:"/images/icons/camera.svg",width:18,height:16}),"Загрузить фото"]}),l.jsx(Zf,{rows:3,cols:30,placeholder:"Опиши себя парой предложений.."}),l.jsx(Zf,{style:{marginTop:9},rows:3,cols:30,placeholder:"Напишите сюда свои хобби.."})]})}),l.jsx(le,{children:l.jsxs(Dn,{style:{borderLeft:"1px solid #CCCCCC",height:"100%"},children:[l.jsx(cr,{marginTop:13,title:"Имя",text:"Александр"}),l.jsx(cr,{marginTop:13,title:"Фамилия",text:"Манаенков"}),l.jsx(cr,{marginTop:13,title:"Отчество",text:"Викторович"}),l.jsx(cr,{marginTop:13,title:"Дата рождения",text:"14.09.2004"}),l.jsx(cr,{marginTop:33,title:"Факультет",text:"Информационные системы (по отраслям)"}),l.jsx(cr,{marginTop:44,title:"Группа",text:"СО-ИС-20"}),l.jsx(di,{marginTop:33,title:"Телефон",width:190,height:32,placeholderInput:"Введите номер телефона"}),l.jsx(di,{marginTop:10,title:"E-mail",width:190,height:32,placeholderInput:"Введите E-mail"}),l.jsx(di,{marginTop:10,title:"Telegram",width:190,height:32,placeholderInput:"Введите Ваш телеграмм"}),l.jsx(di,{marginTop:10,title:"Discord",width:190,height:32,placeholderInput:"Введите Ваш дискорд"}),l.jsx(di,{marginTop:55,title:"Город",width:190,height:32,placeholderInput:"Введите город"})]})}),l.jsx(le,{children:l.jsxs(Dn,{style:{borderLeft:"1px solid #CCCCCC",height:"100%"},children:[l.jsx(Hn,{style:{marginLeft:19,marginTop:13},children:"Ваши личностные характеристики"}),l.jsx(cl,{list:s,button:!0}),l.jsx(Hn,{style:{marginLeft:19,marginTop:25},children:"Желаемые черты соседа"}),l.jsx(cl,{list:a}),l.jsx(Hn,{style:{marginLeft:19,marginTop:19},children:"Нежелаемые черты соседа"}),l.jsx(cl,{list:c})]})})]})})]})},Jj=Object.freeze({publicRoutes:[{path:"/",component:l.jsx(pS,{}),exact:!0},{path:"/favorites",component:l.jsx(Rf,{}),exact:!0},{path:"/comparisons",component:l.jsx(Lf,{}),exact:!0},{path:"/apartment/:id",component:l.jsx(K_,{}),exact:!0},{path:"/favorites",component:l.jsx(Rf,{}),exact:!0},{path:"/comparisons",component:l.jsx(Lf,{}),exact:!0},{path:"/tinder",component:l.jsx(IS,{}),exact:!0},{path:"/login",component:l.jsx(Aj,{}),exact:!0},{path:"/sign-in",component:l.jsx(Fj,{}),exact:!0},{path:"/psych_test",component:l.jsx(xS,{}),exact:!0},{path:"/personal_cabinet",component:l.jsx(Qj,{}),exact:!0}],privateRoutes:[]}),{publicRoutes:Gj}=Jj,Yj=()=>l.jsx(lx,{children:Gj.map(e=>l.jsx(bg,{element:e.component,path:e.path,exact:e.exact},e.path))});const Xj=function(){return l.jsxs("footer",{children:[l.jsxs("div",{className:"footerHouses",children:[l.jsxs("svg",{width:"64",height:"112",viewBox:"0 0 64 112",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[l.jsx("path",{d:"M0 16L31.5 0.5L64 16V112H0V16Z",fill:"#D9D9D9"}),l.jsx("rect",{x:"45",width:"8",height:"16",fill:"#D9D9D9"}),l.jsx("rect",{x:"37",y:"27",width:"16",height:"16",fill:"white"}),l.jsx("rect",{x:"10",y:"27",width:"16",height:"16",fill:"white"}),l.jsx("rect",{x:"37",y:"79",width:"16",height:"16",fill:"white"}),l.jsx("rect",{x:"10",y:"79",width:"16",height:"16",fill:"white"}),l.jsx("rect",{x:"37",y:"53",width:"16",height:"16",fill:"white"}),l.jsx("rect",{x:"10",y:"53",width:"16",height:"16",fill:"white"})]}),l.jsxs("svg",{width:"64",height:"64",viewBox:"0 0 64 64",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[l.jsx("rect",{width:"64",height:"64",fill:"#D9D9D9"}),l.jsx("rect",{x:"38",y:"38",width:"16",height:"16",fill:"white"}),l.jsx("rect",{x:"11",y:"38",width:"16",height:"16",fill:"white"}),l.jsx("rect",{x:"38",y:"12",width:"16",height:"16",fill:"white"}),l.jsx("rect",{x:"11",y:"12",width:"16",height:"16",fill:"white"})]})]}),l.jsx("div",{className:"footerBlock"})]})};function Zj(){return l.jsxs(l.Fragment,{children:[l.jsxs(hx,{children:[l.jsx(k1,{}),l.jsxs("main",{children:[l.jsx("div",{className:"horizontalLine"}),l.jsx(Yj,{})]})]}),l.jsx(Xj,{})]})}const eb=dl.createRoot(document.getElementById("root"));eb.render(l.jsx(Zj,{})); diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..7b2ba46 --- /dev/null +++ b/static/index.html @@ -0,0 +1,20 @@ + + + + + Pairent + + + + + + + + +
+ + + From 0ffd513a2f5726ab8981607cab0ffa9b6f435f3f Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 06:57:23 +1000 Subject: [PATCH 09/17] configure nginx and front --- README.md | 1 + build.sh | 74 +++++++++++++++++++ conf/nginx/nginx.conf | 10 ++- genkeys.sh | 39 ---------- pairent_backend/docker-entry.sh | 2 +- pairent_backend/pairent_app/.gitignore | 1 + pairent_backend/pairent_app/views.py | 2 +- pairent_backend/pairent_backend/settings.py | 16 ++-- .../pairent_backend/templates/index.html | 20 ----- pairent_backend/pairent_backend/urls.py | 3 +- pairent_backend/requirements.txt | 3 +- pairent_frontend_react/package.json | 1 + pairent_frontend_react/vite.config.js | 2 +- static/.gitignore | 2 + 14 files changed, 102 insertions(+), 74 deletions(-) create mode 100755 build.sh create mode 100644 pairent_backend/pairent_app/.gitignore delete mode 100644 pairent_backend/pairent_backend/templates/index.html create mode 100644 static/.gitignore diff --git a/README.md b/README.md index c5c94ae..3bfce55 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,5 @@ # Запуск локального сайта 1. Создайте `.env` файл, рекомендуем использовать для этого шаблон `.env.example` 2. Сгенерируйте ключи `genkeys.sh` +3. Постройте статичные файлы `build.sh` 3. Поднимите контейнеры `docker-compose up -d` \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..fba5196 --- /dev/null +++ b/build.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +# ----- Start commands ----- + +fatal_err() { + echo -e "\033[31mFatal error $*\033[0m" +} + +# ----- End commands ----- + + + +# ----- Start safeguards ----- + +if [[ "$1" != '-a' ]]; then + fatal_err + echo " This script will potentially break any existing instance of Pairent." + echo " To execute this script, re-run it with option -a as first argument." + exit -1 +fi + +if ! [ -f .env ]; then + fatal_err + echo -e " No .env file was found." + echo -e " Please use the \033[32m.env.example\033[0m to create a dotenv file:" + echo -e " 1. \033[34mcp .env.example .env\033[0m" + echo -e " 2. Edit your \033[32m.env\033[0m in your favourite editor" + exit -1 +fi + +# ----- End safeguards ----- + + + +# ----- Start bootstrap front ----- + +echo Building frontend static files... + +cd pairent_frontend_react + +NPMS=('npm' 'pnpm' 'yarn') +NPM='None' + +for n in ${NPMS[@]}; do + if [ -x "$(command -v "$n")" ]; then + NPM=$n + fi +done + +if [[ "$NPM" == 'None' ]]; then + fatal_err + echo ' No node package manager was found in your system.' + echo ' Please install one of the following:' + for n in ${NPMS[@]}; do + echo -e " $n" + done + exit -1 +fi + +rm -rf node_modules + +$NPM install +$NPM run build + +DIST_FOLDER=$(realpath dist) + +cd .. +cp -r $DIST_FOLDER/* static +cp $DIST_FOLDER/index.html pairent_backend/pairent_app/templates +cp $DIST_FOLDER/../public/* static -r + +echo Done building frontend static files + +# ----- End bootstrap front ----- \ No newline at end of file diff --git a/conf/nginx/nginx.conf b/conf/nginx/nginx.conf index 896e473..580c430 100644 --- a/conf/nginx/nginx.conf +++ b/conf/nginx/nginx.conf @@ -26,13 +26,17 @@ http { server { listen 80; - location / { + location ~ ^/(api|admin|index.html|/)$ { proxy_pass http://back; } - location /static { - root /var/www/static; + location / { + root /var/www/html; try_files $uri $uri/ index.html; } + + location ~ ^/\. { + deny all; + } } } \ No newline at end of file diff --git a/genkeys.sh b/genkeys.sh index 14845bc..6ea1bf6 100755 --- a/genkeys.sh +++ b/genkeys.sh @@ -56,42 +56,3 @@ ln -s .env pairent_backend/.env # ----- End bootstrap back ----- exit - -# ----- Start bootstrap front ----- - -echo Building frontend static files... - -cd pairent_frontend_react - -NPMS=('npm' 'pnpm' 'yarn') -NPM='None' - -for n in ${NPMS[@]}; do - if [ -x "$(command -v "$n")" ]; then - NPM=$n - fi -done - -if [[ "$NPM" == 'None' ]]; then - fatal_err - echo ' No node package manager was found in your system.' - echo ' Please install one of the following:' - for n in ${NPMS[@]}; do - echo -e " $n" - done - exit -1 -fi - -rm -rf node_modules - -$NPM install -$NPM run build - -DIST_FOLDER=$(realpath dist) - -cd .. -cp -r $DIST_FOLDER/* static - -echo Done building frontend static files - -# ----- End bootstrap front ----- \ No newline at end of file diff --git a/pairent_backend/docker-entry.sh b/pairent_backend/docker-entry.sh index 22efc3c..1b98e55 100644 --- a/pairent_backend/docker-entry.sh +++ b/pairent_backend/docker-entry.sh @@ -3,4 +3,4 @@ PYTHON='/usr/bin/env python3' $PYTHON manage.py migrate -$PYTHON manage.py runserver 0.0.0.0:80 \ No newline at end of file +$PYTHON -m gunicorn -w 3 -b 0.0.0.0:80 pairent_backend.wsgi \ No newline at end of file diff --git a/pairent_backend/pairent_app/.gitignore b/pairent_backend/pairent_app/.gitignore new file mode 100644 index 0000000..559b34a --- /dev/null +++ b/pairent_backend/pairent_app/.gitignore @@ -0,0 +1 @@ +templates/index.html diff --git a/pairent_backend/pairent_app/views.py b/pairent_backend/pairent_app/views.py index 840307c..05ed745 100644 --- a/pairent_backend/pairent_app/views.py +++ b/pairent_backend/pairent_app/views.py @@ -21,7 +21,7 @@ from .serializer import (ApartamentListSerializer, from .authlib import * -import json, math, random, re, requests, oidc_client, base64, uuid, time, ipware as iplib +import json, math, random, re, requests, base64, uuid, time, ipware as iplib ipware = iplib.IpWare(); class ApartamentViewSet(viewsets.ReadOnlyModelViewSet): diff --git a/pairent_backend/pairent_backend/settings.py b/pairent_backend/pairent_backend/settings.py index 9caabb4..37fcd3a 100644 --- a/pairent_backend/pairent_backend/settings.py +++ b/pairent_backend/pairent_backend/settings.py @@ -20,12 +20,12 @@ BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/ -DOTENV = dotenv_values(BASE_DIR / '..' / '.env'); +DOTENV = dotenv_values(BASE_DIR / '.env'); # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = DOTENV['DJANGO_KEY'] # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = DOTENV['APP_DEBUG'] == 'true' +DEBUG = True#DOTENV['APP_DEBUG'] == 'true' ALLOWED_HOSTS = ['*'] @@ -74,7 +74,9 @@ ROOT_URLCONF = 'pairent_backend.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': [ + 'templates/' + ], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -97,10 +99,10 @@ DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'pairent_db', - 'USER': 'django', - 'PASSWORD': 'Budnya1924$', - 'HOST': '178.20.44.123', - 'PORT': '3306', + 'USER': DOTENV['DB_USER'], + 'PASSWORD': DOTENV['DB_PASSWORD'], + 'HOST': DOTENV['DB_HOST'], + 'PORT': DOTENV['DB_PORT'], 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'" } diff --git a/pairent_backend/pairent_backend/templates/index.html b/pairent_backend/pairent_backend/templates/index.html deleted file mode 100644 index 7b2ba46..0000000 --- a/pairent_backend/pairent_backend/templates/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Pairent - - - - - - - - -
- - - diff --git a/pairent_backend/pairent_backend/urls.py b/pairent_backend/pairent_backend/urls.py index 96340ac..1601e09 100644 --- a/pairent_backend/pairent_backend/urls.py +++ b/pairent_backend/pairent_backend/urls.py @@ -16,9 +16,10 @@ Including another URLconf from django.template import loader from django.contrib import admin from django.urls import path, include +from django.http import HttpResponse def root_url(req): - return loader.get_template('index.html').render() + return HttpResponse(loader.get_template('index.html').render()) urlpatterns = [ path('admin/', admin.site.urls), diff --git a/pairent_backend/requirements.txt b/pairent_backend/requirements.txt index bb650f4..5b3d1ab 100644 --- a/pairent_backend/requirements.txt +++ b/pairent_backend/requirements.txt @@ -5,4 +5,5 @@ django-cors-headers Pillow requests python-ipware -python-dotenv \ No newline at end of file +python-dotenv +gunicorn \ No newline at end of file diff --git a/pairent_frontend_react/package.json b/pairent_frontend_react/package.json index 96546ba..68ebc0e 100644 --- a/pairent_frontend_react/package.json +++ b/pairent_frontend_react/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "type": "module", + "homepage": "/static/dist", "dependencies": { "axios": "^1.4.0", "bootstrap": "^5.2.3", diff --git a/pairent_frontend_react/vite.config.js b/pairent_frontend_react/vite.config.js index dc49f83..82c7627 100644 --- a/pairent_frontend_react/vite.config.js +++ b/pairent_frontend_react/vite.config.js @@ -5,6 +5,6 @@ export default { plugins: [ react() ], - publicDir: '/static/dist' + publicDir: 'static/dist', } \ No newline at end of file diff --git a/static/.gitignore b/static/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/static/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file From 83d90193859b4783fda0c837aa77c0728848bafd Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 07:02:20 +1000 Subject: [PATCH 10/17] fix invalid port --- .env.example | 2 +- conf/nginx/nginx.conf | 2 +- pairent_frontend_react/src/constants.js | 4 ++-- static/index.html | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index de209ae..c0ba556 100644 --- a/.env.example +++ b/.env.example @@ -2,7 +2,7 @@ APP_DEBUG=false APP_PORT=80 DB_HOST=db -DB_PORT=3306a +DB_PORT=3306 DB_PASSWORD= DB_DATABASE=pairent diff --git a/conf/nginx/nginx.conf b/conf/nginx/nginx.conf index 580c430..1aaf8e4 100644 --- a/conf/nginx/nginx.conf +++ b/conf/nginx/nginx.conf @@ -26,7 +26,7 @@ http { server { listen 80; - location ~ ^/(api|admin|index.html|/)$ { + location ~ ^/(api|admin)/ { proxy_pass http://back; } diff --git a/pairent_frontend_react/src/constants.js b/pairent_frontend_react/src/constants.js index 7e07e9a..67ea348 100644 --- a/pairent_frontend_react/src/constants.js +++ b/pairent_frontend_react/src/constants.js @@ -7,8 +7,8 @@ const api_path = path => API_ROOT + path; * Api root path * @type {string} */ -const API_ROOT = window.location.protocol + '//127.0.0.1:8000'; -// ДЛЯ ПРОДА ПОСТАВИТЬ ЭТО: '//pairent.vvsu.ru' +const API_ROOT = window.location.protocol + '//' + window.location.host; +// ДЛЯ ПРОДА ПОСТАВИТЬ ЭТО: '//' + window.location.host /** OpenID Connect Client Config * @type {import('oidc-client-ts').OidcClientSettings} diff --git a/static/index.html b/static/index.html index 7b2ba46..0db5bc4 100644 --- a/static/index.html +++ b/static/index.html @@ -9,7 +9,7 @@ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" /> - + From 19d9d2c7cddc58c257a02802c151fc50dacd90ec Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 07:03:56 +1000 Subject: [PATCH 11/17] fix svg content type --- conf/nginx/mime.types | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/nginx/mime.types b/conf/nginx/mime.types index 62bd4b6..eb9a9ca 100644 --- a/conf/nginx/mime.types +++ b/conf/nginx/mime.types @@ -12,6 +12,7 @@ types { image/x-icon ico; image/x-jng jng; image/vnd.wap.wbmp wbmp; + image/svg+xml svg svgz; application/java-archive jar war ear; application/mac-binhex40 hqx; application/pdf pdf; From 02fa61b64583d37b6704cd169f8d94a7c7f78fa7 Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 07:09:27 +1000 Subject: [PATCH 12/17] fix path --- conf/nginx/nginx.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/nginx/nginx.conf b/conf/nginx/nginx.conf index 1aaf8e4..5ce002e 100644 --- a/conf/nginx/nginx.conf +++ b/conf/nginx/nginx.conf @@ -32,7 +32,7 @@ http { location / { root /var/www/html; - try_files $uri $uri/ index.html; + try_files $uri $uri/ /; } location ~ ^/\. { From 4ab95432fcec34af1eb8335127d0b9f51c0e2b64 Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 07:42:00 +1000 Subject: [PATCH 13/17] production ready image --- docker-compose.yml | 7 ++++--- pairent_backend/Dockerfile | 10 ++++++---- pairent_backend/pairent_backend/settings.py | 9 +++++---- pairent_backend/requirements.txt | 4 ++-- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index bc0b466..e5f471d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: depends_on: - db db: - image: mariadb + image: postgres networks: pairent: aliases: @@ -37,8 +37,9 @@ services: volumes: - './data/db:/etc/mysql' environment: - MARIADB_ROOT_PASSWORD: '${DB_PASSWORD}' - MARIADB_DATABASE: 'pairent_db' + POSTGRES_PASSWORD: '${DB_PASSWORD}' + POSTGRES_DB: 'pairent_db' + POSTGRES_USER: 'root' networks: pairent: diff --git a/pairent_backend/Dockerfile b/pairent_backend/Dockerfile index 49f3e5f..98ce58e 100644 --- a/pairent_backend/Dockerfile +++ b/pairent_backend/Dockerfile @@ -1,9 +1,11 @@ FROM python:alpine -RUN apk add --no-cache \ - gcc musl-dev \ - mysql mariadb-connector-c-dev && \ - mkdir /opt/code +# mysql mariadb-connector-c-dev + +RUN apk add --no-cache postgresql-libs && \ + apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev && \ + mkdir /opt/code && \ + apk --purge del .build-deps COPY requirements.txt /opt/code/requirements.txt WORKDIR /opt/code diff --git a/pairent_backend/pairent_backend/settings.py b/pairent_backend/pairent_backend/settings.py index 37fcd3a..4ac650c 100644 --- a/pairent_backend/pairent_backend/settings.py +++ b/pairent_backend/pairent_backend/settings.py @@ -97,15 +97,16 @@ WSGI_APPLICATION = 'pairent_backend.wsgi.application' DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.mysql', + 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'pairent_db', 'USER': DOTENV['DB_USER'], 'PASSWORD': DOTENV['DB_PASSWORD'], 'HOST': DOTENV['DB_HOST'], 'PORT': DOTENV['DB_PORT'], - 'OPTIONS': { - 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'" - } + # 'OPTIONS': { + # 'init_command': "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci", + # 'charset': 'utf8mb4' + # } } } diff --git a/pairent_backend/requirements.txt b/pairent_backend/requirements.txt index 5b3d1ab..14c096b 100644 --- a/pairent_backend/requirements.txt +++ b/pairent_backend/requirements.txt @@ -1,4 +1,4 @@ -mysqlclient +psycopg2-binary django djangorestframework django-cors-headers @@ -6,4 +6,4 @@ Pillow requests python-ipware python-dotenv -gunicorn \ No newline at end of file +gunicorn From 9fb9982e8f7bc2e23d01f54fc2c69530864391af Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 07:57:33 +1000 Subject: [PATCH 14/17] fix default env --- .env.example | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index c0ba556..66bcfd8 100644 --- a/.env.example +++ b/.env.example @@ -2,7 +2,8 @@ APP_DEBUG=false APP_PORT=80 DB_HOST=db -DB_PORT=3306 +DB_PORT=5432 +DB_USER=root DB_PASSWORD= DB_DATABASE=pairent From 5f0a52a8ba305b81e17de03d5e8ce46791004b7f Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 08:08:45 +1000 Subject: [PATCH 15/17] fix requirements.txt factory boy --- pairent_backend/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/pairent_backend/requirements.txt b/pairent_backend/requirements.txt index 14c096b..7451ea3 100644 --- a/pairent_backend/requirements.txt +++ b/pairent_backend/requirements.txt @@ -7,3 +7,4 @@ requests python-ipware python-dotenv gunicorn +factory-boy \ No newline at end of file From 6725ac6966dcd596e5e880f37273215daa328834 Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 09:43:37 +1000 Subject: [PATCH 16/17] refactor PsychTestQuestion --- .../src/components/PsychTestForm/index.jsx | 2 + .../components/PsychTestQuestion/index.jsx | 107 +++++++++++++++--- pairent_frontend_react/vite.config.js | 4 +- 3 files changed, 93 insertions(+), 20 deletions(-) diff --git a/pairent_frontend_react/src/components/PsychTestForm/index.jsx b/pairent_frontend_react/src/components/PsychTestForm/index.jsx index fc31af8..3e6fb58 100644 --- a/pairent_frontend_react/src/components/PsychTestForm/index.jsx +++ b/pairent_frontend_react/src/components/PsychTestForm/index.jsx @@ -4,6 +4,8 @@ import PsychTestAddResult from "../../API/PsychTestAddResult"; import { useNavigate } from "react-router-dom"; import "./styles/PsychTestForm.css"; +import { styled } from "styled-components"; + const PsychTestForm = () => { const [isValid, setIsValid] = useState(true); const navigate = useNavigate(); diff --git a/pairent_frontend_react/src/components/PsychTestQuestion/index.jsx b/pairent_frontend_react/src/components/PsychTestQuestion/index.jsx index 2637e8b..3ffad52 100644 --- a/pairent_frontend_react/src/components/PsychTestQuestion/index.jsx +++ b/pairent_frontend_react/src/components/PsychTestQuestion/index.jsx @@ -1,17 +1,90 @@ import React, { useState } from "react"; -import "./styles/PsychTestQuestion.css"; + +import { styled } from "styled-components"; + +const Question = styled.div` + padding-top: 4px; + position: relative; + display: flex; + flex-direction: column; + align-items: center; + margin: 0 auto; + width: 799px; + min-height: 151px; + border-bottom: 1px solid #cccccc; + margin-bottom: 34.5px; + & h2 { + color: #cccccc; + position: absolute; + top: 0px; + left: 0; + display: flex; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + border: 2px solid #cccccc; + border-radius: 100px; + } +`; + +const QuestionTitle = styled.p` + margin-bottom: 80px; + text-align: center; + width: 638px; + font-size: 16px; + margin-right: 0; +`; + +const Answers = styled.div` + display: flex; + margin-bottom: 29.5px; + & p, & span { + font-size: 14px; + } + & input, & p { + margin-right: 32px; + transform: translateY(6px) + } + & label { + transform: translateY(6px) + } +`; + +const Answer = styled.label` + & span { + position: absolute; + top: -17px; + left: 3.5px + } +`; + +const Id = styled.div` + color: #cccccc; + position: absolute; + top: 0px; + left: 0; + display: flex; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + border: 1px solid #b2b4b2; + border-radius: 100px; +`; + const PsychTestQuestion = (props) => { const answerChangeHandler = (event) => { props.onChangeAnswer(event.target.value, event.target.name); }; return ( -
-
{+props.account + 1}
-

{props.name}

-
+ + {+props.account + 1} + {props.name} +

Не важно

- - - - - +

Очень важно

-
-
+ + ); }; diff --git a/pairent_frontend_react/vite.config.js b/pairent_frontend_react/vite.config.js index 82c7627..c88c8e3 100644 --- a/pairent_frontend_react/vite.config.js +++ b/pairent_frontend_react/vite.config.js @@ -4,7 +4,5 @@ import react from '@vitejs/plugin-react' export default { plugins: [ react() - ], - publicDir: 'static/dist', - + ], } \ No newline at end of file From 9a70756d5043bef0d34131c514e48f06d34db4c0 Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 17 May 2023 09:55:02 +1000 Subject: [PATCH 17/17] move test components to their folder --- .../src/components/Header/index.jsx | 2 +- .../src/components/PsychTestHeader/index.jsx | 14 ------- .../PsychTest}/PsychTestForm/index.jsx | 4 +- .../PsychTestForm/styles/PsychTestForm.css | 0 .../pages/PsychTest/PsychTestHeader/index.jsx | 37 +++++++++++++++++++ .../styles/PsychTestHeader.css | 0 .../src/pages/PsychTest/index.jsx | 4 +- 7 files changed, 42 insertions(+), 19 deletions(-) delete mode 100644 pairent_frontend_react/src/components/PsychTestHeader/index.jsx rename pairent_frontend_react/src/{components => pages/PsychTest}/PsychTestForm/index.jsx (97%) rename pairent_frontend_react/src/{components => pages/PsychTest}/PsychTestForm/styles/PsychTestForm.css (100%) create mode 100644 pairent_frontend_react/src/pages/PsychTest/PsychTestHeader/index.jsx rename pairent_frontend_react/src/{components => pages/PsychTest}/PsychTestHeader/styles/PsychTestHeader.css (100%) diff --git a/pairent_frontend_react/src/components/Header/index.jsx b/pairent_frontend_react/src/components/Header/index.jsx index ae882f4..145edf9 100644 --- a/pairent_frontend_react/src/components/Header/index.jsx +++ b/pairent_frontend_react/src/components/Header/index.jsx @@ -64,7 +64,7 @@ const Header = function () {
- Pairent + Точка. diff --git a/pairent_frontend_react/src/components/PsychTestHeader/index.jsx b/pairent_frontend_react/src/components/PsychTestHeader/index.jsx deleted file mode 100644 index 2318911..0000000 --- a/pairent_frontend_react/src/components/PsychTestHeader/index.jsx +++ /dev/null @@ -1,14 +0,0 @@ -import "./styles/PsychTestHeader.css"; - -const PsychTestHeader = () => { - return ( -
- -

Тест на совместимость

-
- ); -}; - -export default PsychTestHeader; diff --git a/pairent_frontend_react/src/components/PsychTestForm/index.jsx b/pairent_frontend_react/src/pages/PsychTest/PsychTestForm/index.jsx similarity index 97% rename from pairent_frontend_react/src/components/PsychTestForm/index.jsx rename to pairent_frontend_react/src/pages/PsychTest/PsychTestForm/index.jsx index 3e6fb58..b4a3ce6 100644 --- a/pairent_frontend_react/src/components/PsychTestForm/index.jsx +++ b/pairent_frontend_react/src/pages/PsychTest/PsychTestForm/index.jsx @@ -1,6 +1,6 @@ -import PsychTestQuestion from "../PsychTestQuestion"; +import PsychTestQuestion from "../../../components/PsychTestQuestion"; import React, { useState } from "react"; -import PsychTestAddResult from "../../API/PsychTestAddResult"; +import PsychTestAddResult from "../../../API/PsychTestAddResult"; import { useNavigate } from "react-router-dom"; import "./styles/PsychTestForm.css"; diff --git a/pairent_frontend_react/src/components/PsychTestForm/styles/PsychTestForm.css b/pairent_frontend_react/src/pages/PsychTest/PsychTestForm/styles/PsychTestForm.css similarity index 100% rename from pairent_frontend_react/src/components/PsychTestForm/styles/PsychTestForm.css rename to pairent_frontend_react/src/pages/PsychTest/PsychTestForm/styles/PsychTestForm.css diff --git a/pairent_frontend_react/src/pages/PsychTest/PsychTestHeader/index.jsx b/pairent_frontend_react/src/pages/PsychTest/PsychTestHeader/index.jsx new file mode 100644 index 0000000..fc6a364 --- /dev/null +++ b/pairent_frontend_react/src/pages/PsychTest/PsychTestHeader/index.jsx @@ -0,0 +1,37 @@ +import { styled } from "styled-components"; +import "./styles/PsychTestHeader.css"; + +const Header = styled.div` + display: flex; + padding-left: 40px; + padding-top: 14px; + align-items: center; + margin-bottom: 55px; + + & h1 { + font-size: 20pt; + } + & button { + color: #bababa; + font-size: 15px; + width: 180px; + height: 36px; + background-color: white; + border: 1px solid #cccccc; + border-radius: 12px; + margin-right: 13px; + } +`; + +const PsychTestHeader = () => { + return ( +
+ +

Тест на совместимость

+
+ ); +}; + +export default PsychTestHeader; diff --git a/pairent_frontend_react/src/components/PsychTestHeader/styles/PsychTestHeader.css b/pairent_frontend_react/src/pages/PsychTest/PsychTestHeader/styles/PsychTestHeader.css similarity index 100% rename from pairent_frontend_react/src/components/PsychTestHeader/styles/PsychTestHeader.css rename to pairent_frontend_react/src/pages/PsychTest/PsychTestHeader/styles/PsychTestHeader.css diff --git a/pairent_frontend_react/src/pages/PsychTest/index.jsx b/pairent_frontend_react/src/pages/PsychTest/index.jsx index 9661156..87db7b6 100644 --- a/pairent_frontend_react/src/pages/PsychTest/index.jsx +++ b/pairent_frontend_react/src/pages/PsychTest/index.jsx @@ -1,5 +1,5 @@ -import PsychTestForm from "../../components/PsychTestForm"; -import PsychTestHeader from "../../components/PsychTestHeader"; +import PsychTestForm from "./PsychTestForm"; +import PsychTestHeader from "./PsychTestHeader"; const PsychTest = () => { return (