diff --git a/Alumno/__init__.py b/Alumno/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Alumno/__pycache__/__init__.cpython-310.pyc b/Alumno/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ab75d6235a57dd8db0a5402ffefa6210ac81fc4b Binary files /dev/null and b/Alumno/__pycache__/__init__.cpython-310.pyc differ diff --git a/Alumno/__pycache__/admin.cpython-310.pyc b/Alumno/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e39621afeb2cba54c17bd01e64df924b3e8fae2a Binary files /dev/null and b/Alumno/__pycache__/admin.cpython-310.pyc differ diff --git a/Alumno/__pycache__/apps.cpython-310.pyc b/Alumno/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..67067c211a75b28603ef98c8a387dcee8af1bff5 Binary files /dev/null and b/Alumno/__pycache__/apps.cpython-310.pyc differ diff --git a/Alumno/__pycache__/forms.cpython-310.pyc b/Alumno/__pycache__/forms.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..28b488980b6ecdb2fbeab4ec3c4714965a317916 Binary files /dev/null and b/Alumno/__pycache__/forms.cpython-310.pyc differ diff --git a/Alumno/__pycache__/models.cpython-310.pyc b/Alumno/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2515fec4263e6f8c6148490c73888c6f88044964 Binary files /dev/null and b/Alumno/__pycache__/models.cpython-310.pyc differ diff --git a/Alumno/__pycache__/urls.cpython-310.pyc b/Alumno/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9f2ef878c7777734e03d07dd66aa10567a2d58fb Binary files /dev/null and b/Alumno/__pycache__/urls.cpython-310.pyc differ diff --git a/Alumno/__pycache__/views.cpython-310.pyc b/Alumno/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..555d09be34c417ab9f5fac700b10c4fc80e7e2be Binary files /dev/null and b/Alumno/__pycache__/views.cpython-310.pyc differ diff --git a/Alumno/admin.py b/Alumno/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..dd3a051b044299c5ea3fb6c184cb77f73970ede7 --- /dev/null +++ b/Alumno/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin +from .models import Alumno + +@admin.register(Alumno) +class AlumnoAdmin(admin.ModelAdmin): + list_display = ['ID_alumno', 'nombre', 'apellido_1', 'apellido_2', 'fecha_nacimiento', 'telefono', 'correo', 'foto'] + search_fields = ['ID_alumno', 'nombre', 'apellido_1', 'apellido_2', 'fecha_nacimiento', 'telefono', 'correo', 'foto'] \ No newline at end of file diff --git a/Alumno/apps.py b/Alumno/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..9caa7b3055596be57f46fbce41e9d71c9265ba3b --- /dev/null +++ b/Alumno/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class AlumnoConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'Alumno' diff --git a/Alumno/forms.py b/Alumno/forms.py new file mode 100644 index 0000000000000000000000000000000000000000..f04aea5f900655161896476445339d95a775f5df --- /dev/null +++ b/Alumno/forms.py @@ -0,0 +1,49 @@ +from django import forms +from .models import Alumno +from django.forms import DateInput + +class AlumnoForm(forms.ModelForm): + fecha_nacimiento = forms.DateField(widget=DateInput(attrs={'type': 'date'})) + + class Meta: + model = Alumno + exclude = ['ID_alumno'] + + def __init__(self, *args, **kwargs): + super(AlumnoForm, self).__init__(*args, **kwargs) + + self.fields['nombre'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Nombre', + 'id': 'nombre-id', + }) + + self.fields['apellido_1'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Apellido Paterno', + 'id': 'apellido-1-id', + }) + + self.fields['apellido_2'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Apellido Materno', + 'id': 'apellido-2-id', + }) + + self.fields['fecha_nacimiento'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'fecha_nacimiento', + 'id': 'fecha_nacimiento-id', + }) + + self.fields['telefono'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Teléfono', + 'id': 'telefono-id', + }) + + self.fields['correo'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Correo', + 'id': 'correo-id', + }) diff --git a/Alumno/migrations/0001_initial.py b/Alumno/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..559f4a3e742eb931c2de1d3b3bbb83410ba22c58 --- /dev/null +++ b/Alumno/migrations/0001_initial.py @@ -0,0 +1,31 @@ +# Generated by Django 5.0.1 on 2024-01-17 19:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Alumno', + fields=[ + ('ID_alumno', models.AutoField(primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=255, verbose_name='Nombre')), + ('apellido_1', models.CharField(max_length=255, verbose_name='Apellido Paterno')), + ('apellido_2', models.CharField(max_length=255, verbose_name='Apellido Materno')), + ('fecha_nacimiento', models.DateField()), + ('telefono', models.CharField(max_length=15, verbose_name='Teléfono')), + ('correo', models.EmailField(blank=True, max_length=100, null=True, verbose_name='Correo Electrónico')), + ('foto', models.ImageField(blank=True, null=True, upload_to='alumno_fotos/')), + ], + options={ + 'verbose_name': 'Alumno', + 'verbose_name_plural': 'Alumnos', + }, + ), + ] diff --git a/Alumno/migrations/__init__.py b/Alumno/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Alumno/migrations/__pycache__/0001_initial.cpython-310.pyc b/Alumno/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb1f7e1d707be322e9e2676df9b76cc0afd0c7b6 Binary files /dev/null and b/Alumno/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/Alumno/migrations/__pycache__/__init__.cpython-310.pyc b/Alumno/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..71df88a18ec44f68c7a1e9ef21eba905de7cfbec Binary files /dev/null and b/Alumno/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/Alumno/models.py b/Alumno/models.py new file mode 100644 index 0000000000000000000000000000000000000000..e44f65c796eb1734b944065966604eae982bcac2 --- /dev/null +++ b/Alumno/models.py @@ -0,0 +1,24 @@ +from django.db import models + +class Alumno(models.Model): + ID_alumno = models.AutoField(primary_key=True, verbose_name='ID') + nombre = models.CharField(max_length=255, verbose_name='Nombre') + apellido_1 = models.CharField(max_length=255, verbose_name='Apellido Paterno') + apellido_2 = models.CharField(max_length=255, verbose_name='Apellido Materno') + fecha_nacimiento = models.DateField(null=False) + telefono = models.CharField(max_length=15, verbose_name='Teléfono') + correo = models.EmailField(max_length=100, blank=True, null=True, verbose_name='Correo Electrónico') + foto = models.ImageField(upload_to='alumno_fotos/', null=True, blank=True) + + def save(self, *args, **kwargs): + # Si es un nuevo alumno, guarda para obtener el ID_alumno asignado + if not self.ID_alumno: + super().save(*args, **kwargs) + + def __str__(self): + return f"{self.nombre} {self.apellido_1} {self.apellido_2 or ''}" + + class Meta: + verbose_name = 'Alumno' + verbose_name_plural = 'Alumnos' + diff --git a/Alumno/tests.py b/Alumno/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/Alumno/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Alumno/urls.py b/Alumno/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..1fab27b48a47a11c7b3c14c840571e7a6678e693 --- /dev/null +++ b/Alumno/urls.py @@ -0,0 +1,12 @@ +from django.urls import path +from . import views + +app_name = 'alumno' + +urlpatterns = [ + path('dar_alta/', views.ingresar_alumno, name='ingresar_alumno'), + path('lista_alumnos/', views.lista_alumnos, name='lista_alumnos'), + path('editar_alumno//', views.editar_alumno, name='editar_alumno'), + path('detalle//', views.detalle_alumno, name='detalle_alumno'), + path('eliminar_alumno//', views.eliminar_alumno, name='eliminar_alumno'), +] \ No newline at end of file diff --git a/Alumno/views.py b/Alumno/views.py new file mode 100644 index 0000000000000000000000000000000000000000..d5bef84907268829acaa8bef25dda861171585a9 --- /dev/null +++ b/Alumno/views.py @@ -0,0 +1,46 @@ +from django.shortcuts import render, get_object_or_404, redirect +from django.urls import reverse +from django.http import HttpResponseRedirect +from .forms import AlumnoForm +from .models import Alumno + +def ingresar_alumno(request): + if request.method == 'POST': + form = AlumnoForm(request.POST, request.FILES) + if form.is_valid(): + form.save() + return redirect('alumno:lista_alumnos') + else: + form = AlumnoForm() + + return render(request, 'ingresar_alumno.html', {'form': form}) + +def lista_alumnos(request): + alumnos = Alumno.objects.all() + return render(request, 'lista_alumnos.html', {'alumnos': alumnos}) + +def editar_alumno(request, pk): + alumno = get_object_or_404(Alumno, pk=pk) + + if request.method == 'POST': + form = AlumnoForm(request.POST, instance=alumno) + if form.is_valid(): + form.save() + return HttpResponseRedirect(reverse('alumno:lista_alumnos')) + else: + form = AlumnoForm(instance=alumno) + + return render(request, 'editar_alumno.html', {'form': form, 'alumno': alumno}) + +def detalle_alumno(request, pk): + alumno = get_object_or_404(Alumno, pk=pk) + return render(request, 'detalle_alumno.html', {'alumno': alumno}) + +def eliminar_alumno(request, pk): + alumno = get_object_or_404(Alumno, pk=pk) + + if request.method == 'POST': + alumno.delete() + return redirect('alumno:lista_alumnos') + + return redirect('alumno:lista_alumnos') \ No newline at end of file diff --git a/Plantel/__init__.py b/Plantel/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Plantel/__pycache__/__init__.cpython-310.pyc b/Plantel/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d9ba3c7ff4b20b2abc8dbfab15b6259fa56b9c9b Binary files /dev/null and b/Plantel/__pycache__/__init__.cpython-310.pyc differ diff --git a/Plantel/__pycache__/admin.cpython-310.pyc b/Plantel/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db03993823726db6e86c2173a7a5e734748cf0a8 Binary files /dev/null and b/Plantel/__pycache__/admin.cpython-310.pyc differ diff --git a/Plantel/__pycache__/apps.cpython-310.pyc b/Plantel/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a36109b7dba2b80978e7364972f540b18b1f7fd Binary files /dev/null and b/Plantel/__pycache__/apps.cpython-310.pyc differ diff --git a/Plantel/__pycache__/forms.cpython-310.pyc b/Plantel/__pycache__/forms.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..92d10fa4a026de56f60b6d4f4defe10870926304 Binary files /dev/null and b/Plantel/__pycache__/forms.cpython-310.pyc differ diff --git a/Plantel/__pycache__/models.cpython-310.pyc b/Plantel/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..587cf04a497434fdc656d0765240365dce4aeff5 Binary files /dev/null and b/Plantel/__pycache__/models.cpython-310.pyc differ diff --git a/Plantel/__pycache__/urls.cpython-310.pyc b/Plantel/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a8b17837eb914d6f5fbedb2fb831e3ddfd130d1a Binary files /dev/null and b/Plantel/__pycache__/urls.cpython-310.pyc differ diff --git a/Plantel/__pycache__/views.cpython-310.pyc b/Plantel/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9dc73a624f8c35d9054298a47668edcc2d746e0 Binary files /dev/null and b/Plantel/__pycache__/views.cpython-310.pyc differ diff --git a/Plantel/admin.py b/Plantel/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/Plantel/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/Plantel/apps.py b/Plantel/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..0ba5ed3df61897d8eb7f26e9775095a0c72e3f2a --- /dev/null +++ b/Plantel/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class PlantelConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'Plantel' diff --git a/Plantel/forms.py b/Plantel/forms.py new file mode 100644 index 0000000000000000000000000000000000000000..ee048e608625178b03500a1ee65a0c857d377a3f --- /dev/null +++ b/Plantel/forms.py @@ -0,0 +1,66 @@ +from django import forms +from .models import Plantel +from django.forms import DateInput + +class PlantelForm(forms.ModelForm): + + class Meta: + model = Plantel + exclude = ['ID_plantel'] + + def __init__(self, *args, **kwargs): + super(PlantelForm, self).__init__(*args, **kwargs) + + self.fields['nombre'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Nombre', + 'id': 'nombre-id', + }) + + self.fields['telefono'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Teléfono', + 'id': 'telefono-id', + }) + + self.fields['correo'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Correo', + 'id': 'correo-id', + }) + + self.fields['calle'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Calle', + 'id': 'calle-id', + }) + + self.fields['numero_exterior'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Número exterior', + 'id': 'numero_exterior-id', + }) + + self.fields['colonia'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Colonia', + 'id': 'colonia-id', + }) + + self.fields['codigo_postal'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Código postal', + 'id': 'codigo_postal-id', + }) + + self.fields['ciudad'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Ciudad', + 'id': 'ciudad-id', + }) + + self.fields['estado'].widget.attrs.update({ + 'class': 'form-control', + 'placeholder': 'Estado', + 'id': 'estado-id', + }) \ No newline at end of file diff --git a/Plantel/migrations/0001_initial.py b/Plantel/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..555d424b79af087b4bb41577d01ab108aa11424b --- /dev/null +++ b/Plantel/migrations/0001_initial.py @@ -0,0 +1,33 @@ +# Generated by Django 5.0.1 on 2024-01-17 20:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Plantel', + fields=[ + ('ID_plantel', models.AutoField(primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=255, verbose_name='Nombre')), + ('telefono', models.CharField(max_length=15, verbose_name='Teléfono')), + ('correo', models.EmailField(blank=True, max_length=100, null=True, verbose_name='Correo Electrónico')), + ('calle', models.CharField(max_length=255, verbose_name='Calle')), + ('numero_exterior', models.CharField(max_length=10, verbose_name='Número Exterior')), + ('colonia', models.CharField(max_length=100, verbose_name='Colonia')), + ('codigo_postal', models.CharField(max_length=10, verbose_name='Código Postal')), + ('ciudad', models.CharField(max_length=100, verbose_name='Ciudad')), + ('estado', models.CharField(max_length=100, verbose_name='Estado')), + ], + options={ + 'verbose_name': 'Plantel', + 'verbose_name_plural': 'Planteles', + }, + ), + ] diff --git a/Plantel/migrations/__init__.py b/Plantel/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Plantel/migrations/__pycache__/0001_initial.cpython-310.pyc b/Plantel/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4a4932dc2dac8f7e890e6f873a631f3ccf7089a Binary files /dev/null and b/Plantel/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/Plantel/migrations/__pycache__/__init__.cpython-310.pyc b/Plantel/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d721df85fde55ce42fbc9e8c16ee4cffbb605f32 Binary files /dev/null and b/Plantel/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/Plantel/models.py b/Plantel/models.py new file mode 100644 index 0000000000000000000000000000000000000000..fc35f45d8b3519a54c9896fe7bf106a25ec0c60b --- /dev/null +++ b/Plantel/models.py @@ -0,0 +1,26 @@ +from django.db import models + +class Plantel(models.Model): + ID_plantel = models.AutoField(primary_key=True, verbose_name='ID') + nombre = models.CharField(max_length=255, verbose_name='Nombre') + telefono = models.CharField(max_length=15, verbose_name='Teléfono') + correo = models.EmailField(max_length=100, blank=True, null=True, verbose_name='Correo Electrónico') + + # Campos de dirección + calle = models.CharField(max_length=255, verbose_name='Calle') + numero_exterior = models.CharField(max_length=10, verbose_name='Número Exterior') + colonia = models.CharField(max_length=100, verbose_name='Colonia') + codigo_postal = models.CharField(max_length=10, verbose_name='Código Postal') + ciudad = models.CharField(max_length=100, verbose_name='Ciudad') + estado = models.CharField(max_length=100, verbose_name='Estado') + + def save(self, *args, **kwargs): + if not self.ID_plantel: + super().save(*args, **kwargs) + + def __str__(self): + return f"{self.nombre} - {self.calle}, {self.numero_exterior}, {self.colonia}, {self.ciudad}, {self.estado}" + + class Meta: + verbose_name = 'Plantel' + verbose_name_plural = 'Planteles' diff --git a/Plantel/tests.py b/Plantel/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/Plantel/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Plantel/urls.py b/Plantel/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..05402a83aaf4b03bec4f118f9f8ed1f40965d4fc --- /dev/null +++ b/Plantel/urls.py @@ -0,0 +1,12 @@ +from django.urls import path +from . import views + +app_name = 'plantel' + +urlpatterns = [ + path('dar_alta/', views.ingresar_plantel, name='ingresar_plantel'), + path('lista_planteles/', views.lista_planteles, name='lista_planteles'), + path('editar_plantel//', views.editar_plantel, name='editar_plantel'), + path('detalle//', views.detalle_plantel, name='detalle_plantel'), + path('eliminar_plantel//', views.eliminar_plantel, name='eliminar_plantel'), +] \ No newline at end of file diff --git a/Plantel/views.py b/Plantel/views.py new file mode 100644 index 0000000000000000000000000000000000000000..0f835f45073884677187c020c2b53c0899fd00d0 --- /dev/null +++ b/Plantel/views.py @@ -0,0 +1,46 @@ +from django.shortcuts import render, get_object_or_404, redirect +from django.urls import reverse +from django.http import HttpResponseRedirect +from .forms import PlantelForm +from .models import Plantel + +def ingresar_plantel(request): + if request.method == 'POST': + form = PlantelForm(request.POST) + if form.is_valid(): + form.save() + return redirect('plantel:lista_planteles') + else: + form = PlantelForm() + + return render(request, 'ingresar_plantel.html', {'form': form}) + +def lista_planteles(request): + planteles = Plantel.objects.all() + return render(request, 'lista_planteles.html', {'planteles': planteles}) + +def editar_plantel(request, pk): + plantel = get_object_or_404(Plantel, pk=pk) + + if request.method == 'POST': + form = PlantelForm(request.POST, instance=plantel) + if form.is_valid(): + form.save() + return HttpResponseRedirect(reverse('plantel:lista_planteles')) + else: + form = PlantelForm(instance=plantel) + + return render(request, 'editar_plantel.html', {'form': form, 'plantel': plantel}) + +def detalle_plantel(request, pk): + plantel = get_object_or_404(Plantel, pk=pk) + return render(request, 'detalle_plantel.html', {'plantel': plantel}) + +def eliminar_plantel(request, pk): + plantel = get_object_or_404(Plantel, pk=pk) + + if request.method == 'POST': + plantel.delete() + return redirect('plantel:lista_planteles') + + return redirect('plantel:lista_planteles') \ No newline at end of file diff --git a/RedStorge/__pycache__/__init__.cpython-310.pyc b/RedStorge/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0ec4f0bf6b0ebdbac1124d402e65d3701ed54804 Binary files /dev/null and b/RedStorge/__pycache__/__init__.cpython-310.pyc differ diff --git a/RedStorge/__pycache__/settings.cpython-310.pyc b/RedStorge/__pycache__/settings.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5102e05f0cf7a3de9218107cd0d31162612966fc Binary files /dev/null and b/RedStorge/__pycache__/settings.cpython-310.pyc differ diff --git a/RedStorge/__pycache__/urls.cpython-310.pyc b/RedStorge/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fe1a5fde4085002673be9bec42f562322056753 Binary files /dev/null and b/RedStorge/__pycache__/urls.cpython-310.pyc differ diff --git a/RedStorge/__pycache__/views.cpython-310.pyc b/RedStorge/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d4a61b0d0754427692e597e4e68fe38ab932e6e Binary files /dev/null and b/RedStorge/__pycache__/views.cpython-310.pyc differ diff --git a/RedStorge/__pycache__/wsgi.cpython-310.pyc b/RedStorge/__pycache__/wsgi.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ddef3ed0e6b7aef4ac69a38e0085d2cfa96e1f0 Binary files /dev/null and b/RedStorge/__pycache__/wsgi.cpython-310.pyc differ diff --git a/RedStorge/settings.py b/RedStorge/settings.py index d4c6014df12f1a7017c2ae5572c65b9b805b2732..913fd58cc2f4cb6a824fece54a2e745fb6bc4769 100644 --- a/RedStorge/settings.py +++ b/RedStorge/settings.py @@ -1,13 +1,13 @@ """ Django settings for RedStorge project. -Generated by 'django-admin startproject' using Django 5.0.1. +Generated by 'django-admin startproject' using Django 4.2.7. For more information on this file, see -https://docs.djangoproject.com/en/5.0/topics/settings/ +https://docs.djangoproject.com/en/4.2/topics/settings/ For the full list of settings and their values, see -https://docs.djangoproject.com/en/5.0/ref/settings/ +https://docs.djangoproject.com/en/4.2/ref/settings/ """ from pathlib import Path @@ -17,16 +17,17 @@ BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/ +# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-2_)a%g2ymk2ai2)8-5yyzv8%uhg(w__j0m65b3a_gxe-rn_k=w' +SECRET_KEY = 'django-insecure-_nht*br*4w@)-4rxd6$$_gi8x+(j626)&iqv-_n$@4_ata6i-n' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] +LOGIN_URL = '/login/' # Application definition @@ -37,6 +38,9 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'django_extensions', + 'Alumno', + 'Plantel', ] MIDDLEWARE = [ @@ -54,7 +58,7 @@ ROOT_URLCONF = 'RedStorge.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': [BASE_DIR / 'templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -71,7 +75,7 @@ WSGI_APPLICATION = 'RedStorge.wsgi.application' # Database -# https://docs.djangoproject.com/en/5.0/ref/settings/#databases +# https://docs.djangoproject.com/en/4.2/ref/settings/#databases DATABASES = { 'default': { @@ -82,7 +86,7 @@ DATABASES = { # Password validation -# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators +# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { @@ -101,7 +105,7 @@ AUTH_PASSWORD_VALIDATORS = [ # Internationalization -# https://docs.djangoproject.com/en/5.0/topics/i18n/ +# https://docs.djangoproject.com/en/4.2/topics/i18n/ LANGUAGE_CODE = 'en-us' @@ -113,11 +117,27 @@ USE_TZ = True # Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/5.0/howto/static-files/ +# https://docs.djangoproject.com/en/4.2/howto/static-files/ STATIC_URL = 'static/' +MEDIA_URL = 'images/' + +STATICFILES_DIRS=[ + BASE_DIR / 'static' +] + +STATIC_ROOT = BASE_DIR / 'staticfiles' +MEDIA_ROOT = BASE_DIR / 'images' # Default primary key field type -# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field +# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +# Custom user model +AUTH_USER_MODEL = 'auth.User' + +# Authentication backends +AUTHENTICATION_BACKENDS = [ + 'django.contrib.auth.backends.ModelBackend', +] \ No newline at end of file diff --git a/RedStorge/urls.py b/RedStorge/urls.py index 0ef7a592d25b239f60a0507e5bd2f2af38cadd7f..9755c5c7bb784ff1982a180e0835709ed512e708 100644 --- a/RedStorge/urls.py +++ b/RedStorge/urls.py @@ -2,7 +2,7 @@ URL configuration for RedStorge project. The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/5.0/topics/http/urls/ + https://docs.djangoproject.com/en/4.2/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views @@ -15,8 +15,23 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include +from django.conf.urls.static import static +from django.conf import settings +from . import views +from .views import login_view, logout_view, BASE, acceso_no_permitido_view +from django.contrib.auth.decorators import login_required + urlpatterns = [ + path('', login_required(BASE), name='base'), path('admin/', admin.site.urls), + path('login/', login_view, name='login'), + path('logout/', logout_view, name='logout'), + path('alumno/', include('Alumno.urls')), + path('plantel/', include('Plantel.urls')), + path('acceso_no_permitido/', acceso_no_permitido_view, name='acceso_no_permitido'), ] + +urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) diff --git a/RedStorge/views.py b/RedStorge/views.py new file mode 100644 index 0000000000000000000000000000000000000000..55ad70e36d759dc7f857b13b76f494465f1aa0a8 --- /dev/null +++ b/RedStorge/views.py @@ -0,0 +1,39 @@ +from django.shortcuts import render, redirect +from django.contrib.auth import authenticate, login, logout +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from django.views.decorators.cache import never_cache + +@login_required(login_url='login.html') +def BASE(request): + return render(request, 'base.html') + +@never_cache +def login_view(request): + if request.method == 'POST': + username = request.POST['username'] + password = request.POST['password'] + user = authenticate(request, username=username, password=password) + + if user is not None: + login(request, user) + messages.success(request, 'Inicio de sesión exitoso.') + + if user.is_superuser: + return redirect('/admin/') + else: + return redirect('/') + + # Si el usuario no es superusuario, administrador ni médico, redirige a la página de acceso no permitido. + return redirect('acceso_no_permitido') + + return render(request, 'login.html') + +@never_cache +def logout_view(request): + logout(request) + messages.success(request, 'Has cerrado sesión exitosamente.') + return redirect('/') + +def acceso_no_permitido_view(request): + return render(request, 'acceso_no_permitido.html') diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..81744bb2460de224ef8caa058a16da667c8627ca Binary files /dev/null and b/db.sqlite3 differ diff --git a/images/alumno_fotos/images.jpeg b/images/alumno_fotos/images.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3a81397ac54e5a87627e13e5bc90f0370b17361b Binary files /dev/null and b/images/alumno_fotos/images.jpeg differ diff --git a/images/alumno_fotos/images_B5UWi3h.jpeg b/images/alumno_fotos/images_B5UWi3h.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3a81397ac54e5a87627e13e5bc90f0370b17361b Binary files /dev/null and b/images/alumno_fotos/images_B5UWi3h.jpeg differ diff --git a/static/assets/assets/css/app.css b/static/assets/assets/css/app.css new file mode 100644 index 0000000000000000000000000000000000000000..12f23f8d11c50da8f460bcac60639f661b5b422a --- /dev/null +++ b/static/assets/assets/css/app.css @@ -0,0 +1,1503 @@ +@import url(https://fonts.googleapis.com/css2?family=Raleway:wght@400;500&display=swap);/** + * Voler + * + * Voler is a clean & modern HTML5 admin template based on Bootstrap 5 + * Voler will make it easier for you to create your own admin interface. + * + * @package Voler + * @version 0.1 + * @author Ahmad Saugi + * @url https://github.com/zuramai/voler + * + */ +/** + * TABLE OF CONTENTS + * + * 1. Variables + * 2. Bootstrap Override + * 2.1 Alert + * 2.2 Avatar + * 2.3 Badge + * 2.4 Buttons + * 2.5 Breadcrumb + * 2.6 Carousel + * 2.7 Divider + * 2.8 Dropdowns + * 2.9 Forms + * 2.10 Modal + * 2.11 Sidebar + * 2.12 Card + * 2.13 Navs + * 2.14 Navbar + * 2.15 Pagination + * 2.16 Table + * 2.17 Progress + * 4. Pages + * 4.1 Auth + * 4.2 Error + * 5. Utilities + */ +/** 1. Variables **/ +/** + * VARIABLE - TABLE OF CONTENTS + * + * 1. Theme Colors + * 2. Bootstrap Override + * 2.4 Alert + * 2.11 Badge + * 2.12 Button + * 2.14 Breadcrumb + * 2.1 Card + * 2.2 Form + * 2.3 List + * 2.5 Progress + * 2.6 Table + * 2.7 Tooltip + * 2.8 Modal + * 2.9 Nav + * 2.10 Pagination + * 2.13 Media + * 2.15 Accordion + * 2.16 Popover + * 2.17 Grid + * 2.18 Navbar + * 2.19 Dropdown + * 2.20 Tab + * 2.21 Progressbar + * 2.22 Jumbotron + * 2.23 Carousel + * 5. Utilities + * 6. Responsive + */ +.color-primary { + color: #5A8DEE; +} + +.color-secondary { + color: #475F7B; +} + +.color-success { + color: #39DA8A; +} + +.color-danger { + color: #FF5B5C; +} + +.color-warning { + color: #FDAC41; +} + +.color-info { + color: #00CFDD; +} + +.color-dark { + color: #222f3e; +} + +.color-light { + color: #A3AFBD; +} + +.color-link { + color: #2178d1; +} + +* { + font-family: "Raleway"; +} + +#app { + position: relative; +} + +#main { + margin-left: 260px; + background-color: #F7FAFF; + min-height: 100vh; + transition: margin-left 0.6s ease-out; +} +#main .main-content { + padding: 2rem 1.5rem; +} +#main .main-content .page-title h3 { + font-size: 2rem; +} +#main .main-content .text-subtitle { + font-size: 0.9rem; +} + +.breadcrumb-header .breadcrumb { + justify-content: flex-end; +} + +.alert.alert-dismissible .close:focus, .custom-switch .custom-control-label:focus, .dropdown .dropdown-toggle:focus, .dropleft .dropdown-toggle:focus, .dropright .dropdown-toggle:focus, .dropup .dropdown-toggle:focus, .list-group button.list-group-item:focus, .modal .modal-content .modal-header .close:active, .modal .modal-content .modal-header .close:focus, .modal .modal-content .modal-header .close:hover, .navbar-components-wrapper .navbar .navbar-container.navbar-dark .navbar-toggler:focus, .navbar-components-wrapper .navbar .navbar-container.navbar-light .navbar-toggler:focus, .toast .toast-header .close:active, .toast .toast-header .close:focus, a:focus { + outline: 0; +} + +section .section-title:after { + width: 70px; + height: 2px; + content: ""; + margin: 0.6rem 0 1rem; + background-color: #5A8DEE; + display: block; +} + +a { + text-decoration: none; + outline: 0; +} + +button { + outline: 0; +} + +svg.feather, i { + font-size: 14px; + height: 1rem; +} + +footer { + padding: 1rem 1.5rem; +} + +@media screen and (max-width: 767px) { + #main { + margin-left: 0; + } + + .breadcrumb-header .breadcrumb { + justify-content: flex-start; + padding: 0; + font-size: 0.8rem; + } +} +/** 2.1 Alert **/ +.alert { + border: none; +} +.alert p { + margin-bottom: 0; +} +.alert button.close { + padding: 0.75rem; + line-height: 0.75; +} +.alert .alert-heading { + margin-left: 0.4rem; +} +.alert .alert-heading + p { + margin-left: 0.4rem; +} + +.alert-primary { + background-color: #029eff; + color: #fff; + box-shadow: 1px 2px 9px rgba(2, 158, 255, 0.3); +} +.alert-primary a { + color: #fff; +} + +.alert-secondary { + background-color: #ebeef3; + color: #383d41; + box-shadow: 1px 2px 9px rgba(235, 238, 243, 0.3); +} +.alert-secondary a { + color: #fff; +} + +.alert-success { + background-color: #39DA8A; + color: #fff; + box-shadow: 1px 2px 9px rgba(57, 218, 138, 0.3); +} +.alert-success a { + color: #fff; +} + +.alert-warning { + background-color: #fdd347; + color: #fff; + box-shadow: 1px 2px 9px rgba(253, 211, 71, 0.3); +} +.alert-warning a { + color: #fff; +} + +.alert-danger { + background-color: #f55260; + color: #fff; + box-shadow: 1px 2px 9px rgba(245, 82, 96, 0.3); +} +.alert-danger a { + color: #fff; +} + +.alert-dark { + background-color: #454546; + color: #fff; + box-shadow: 1px 2px 9px rgba(69, 69, 70, 0.3); +} +.alert-dark a { + color: #fff; +} + +.alert-light { + background-color: #fefefe; + color: #818182; + box-shadow: 1px 2px 9px rgba(254, 254, 254, 0.3); +} +.alert-light a { + color: #fff; +} + +.alert-info { + background-color: #56b6f7; + color: #fff; + box-shadow: 1px 2px 9px rgba(86, 182, 247, 0.3); +} +.alert-info a { + color: #fff; +} + +.alert-light-primary { + background-color: #E2ECFF; +} + +.alert-light-secondary { + background-color: #E6EAEE; +} + +.alert-light-success { + background-color: #D2FFE8; +} + +.alert-light-danger { + background-color: #FFDEDE; +} + +.alert-light-warning { + background-color: #FFEED9; +} + +.alert-light-info { + background-color: #CCF5F8; +} + +/** 2.2 Avatar **/ +.avatar { + display: inline-flex; + border-radius: 50%; + text-align: center; + vertical-align: middle; + position: relative; +} +.avatar .avatar-content { + width: 32px; + height: 32px; + color: #fff; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.875rem; +} +.avatar .avatar-content svg, .avatar .avatar-content i { + color: #fff; + font-size: 1rem; + height: 1rem; +} +.avatar img { + width: 32px; + height: 32px; + border-radius: 50%; +} +.avatar .avatar-status { + width: 0.7rem; + height: 0.7rem; + position: absolute; + border-radius: 50%; + border: 1px solid #fff; + bottom: 0; + right: 0; +} +.avatar.avatar-sm .avatar-content, .avatar.avatar-sm img { + width: 24px; + height: 24px; + font-size: 0.8rem; +} +.avatar.avatar-lg .avatar-content, .avatar.avatar-lg img { + width: 48px; + height: 48px; + font-size: 1.2rem; +} +.avatar.avatar-xl .avatar-content, .avatar.avatar-xl img { + width: 60px; + height: 60px; + font-size: 1.4rem; +} + +/** 2.3 Badge **/ +.btn .badge { + border-radius: 50%; + margin-left: 5px; +} +.btn .badge.bg-transparent { + background-color: rgba(255, 255, 255, 0.25) !important; + color: #fff; +} + +/** 2.4 Buttons **/ +.btn i, .btn svg { + width: 16px; + height: 16px; +} +.btn.icon { + padding: 0.4rem 0.6rem; +} +.btn.icon svg { + width: 16px; + height: 16px; +} +.btn.icon.icon-left svg { + margin-right: 3px; +} +.btn.icon.icon-right svg { + margin-left: 3px; +} +.btn.btn-outline-white { + color: #fff; + border-color: #fff; +} +.btn.btn-outline-white:hover { + color: #333; + background-color: #fff; +} +.btn.btn-primary { + color: #fff; +} +.btn.btn-secondary { + color: #fff; +} +.btn.btn-success { + color: #fff; +} +.btn.btn-danger { + color: #fff; +} +.btn.btn-warning { + color: #fff; +} +.btn.btn-info { + color: #fff; +} +.btn.btn-dark { + color: #fff; +} +.btn.btn-light { + color: #fff; +} +.btn.btn-link { + color: #fff; +} + +.btn-group:not(.dropdown) .btn:not([class*=btn-]) { + border: 1px solid #DFE3E7; +} +.btn-group > .btn { + border-radius: 0.267rem; +} +.buttons .btn { + margin: 0 10px 10px 0; +} + +/** 2.5 Breadcrumb **/ +.breadcrumb.breadcrumb-right { + justify-content: flex-end; + margin-top: 1rem; +} +.breadcrumb.breadcrumb-center { + justify-content: center; + margin-top: 1rem; +} + +/** 2.6 Carousel **/ +.carousel-inner { + border-radius: 0.7rem; + box-shadow: 0 5px 10px #adb5bd; +} + +.carousel-caption h5 { + color: #fff; +} + +/** 2.7 Divider **/ +.divider { + display: block; + text-align: center; + overflow: hidden; + margin: 1rem 0; +} +.divider .divider-text { + position: relative; + display: inline-block; + padding: 0 1rem; + background-color: #FFF; +} +.divider .divider-text:before, .divider .divider-text:after { + content: ""; + position: absolute; + top: 50%; + width: 9999px; + border-top: 1px solid #DFE3E7; +} +.divider .divider-text:before { + right: 100%; +} +.divider .divider-text:after { + left: 100%; +} +.divider.divider-left .divider-text { + left: 0; + float: left; + padding-left: 0; +} +.divider.divider-left-center .divider-text { + left: -25%; +} +.divider.divider-right-center .divider-text { + left: 25%; +} +.divider.divider-right .divider-text { + float: right; + padding-right: 0; +} + +/** 2.8 Dropdowns **/ +.dropdown-toggle:after { + color: #fff; +} + +.dropdown-menu-large { + min-width: 16rem; +} + +/** 2.9 Forms **/ +.form-group { + margin-bottom: 0.7rem; +} +.form-group label { + font-size: 0.755rem; + text-transform: uppercase; + color: rgba(35, 28, 99, 0.7); + font-weight: 500; +} +.form-group small { + font-size: 0.7rem; +} +.form-group.with-title { + position: relative; +} +.form-group.with-title label { + position: absolute; + top: 0; + left: 0; + padding: 5px; + font-size: 0.6rem; + background-color: #e9ecef; + width: 100%; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.form-group.with-title .form-control, .form-group.with-title dataTable-input { + padding-top: 2rem; +} +.form-group.with-title .form-control:focus ~ label, .form-group.with-title dataTable-input:focus ~ label { + border-left: 1px solid #5A8DEE; + border-top: 1px solid #5A8DEE; + border-right: 1px solid #5A8DEE; +} +.form-group[class*=has-icon-].has-icon-left .form-control { + padding-left: 2.5rem; +} +.form-group[class*=has-icon-].has-icon-left .form-control-icon { + left: 0; +} +.form-group[class*=has-icon-].has-icon-right .form-control { + padding-right: 2.5rem; +} +.form-group[class*=has-icon-].has-icon-right .form-control-icon { + right: 0; +} +.form-group[class*=has-icon-] .form-control:focus ~ .form-control-icon i, .form-group[class*=has-icon-] .form-control:focus ~ .form-control-icon svg { + color: #5A8DEE; +} +.form-group[class*=has-icon-] .form-control-icon { + position: absolute; + top: 50%; + transform: translateY(-50%); + padding: 0 0.6rem; +} +.form-group[class*=has-icon-] .form-control-icon i, .form-group[class*=has-icon-] .form-control-icon svg { + width: 1.2rem; +} + +.form-check .form-check-input[class*=bg-] { + border: 0; +} +.form-check .form-check-input:focus { + box-shadow: none; +} +.form-check .form-check-input.form-check-primary { + background-color: #5A8DEE; + border-color: #5A8DEE; +} +.form-check .form-check-input.form-check-primary:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-primary.form-check-glow { + box-shadow: 0 0 5px #88adf3; +} +.form-check .form-check-input.form-check-primary.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check .form-check-input.form-check-secondary { + background-color: #475F7B; + border-color: #475F7B; +} +.form-check .form-check-input.form-check-secondary:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-secondary.form-check-glow { + box-shadow: 0 0 5px #5a789b; +} +.form-check .form-check-input.form-check-secondary.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check .form-check-input.form-check-success { + background-color: #39DA8A; + border-color: #39DA8A; +} +.form-check .form-check-input.form-check-success:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-success.form-check-glow { + box-shadow: 0 0 5px #64e2a3; +} +.form-check .form-check-input.form-check-success.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check .form-check-input.form-check-danger { + background-color: #FF5B5C; + border-color: #FF5B5C; +} +.form-check .form-check-input.form-check-danger:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-danger.form-check-glow { + box-shadow: 0 0 5px #ff8e8f; +} +.form-check .form-check-input.form-check-danger.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check .form-check-input.form-check-warning { + background-color: #FDAC41; + border-color: #FDAC41; +} +.form-check .form-check-input.form-check-warning:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-warning.form-check-glow { + box-shadow: 0 0 5px #fec273; +} +.form-check .form-check-input.form-check-warning.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check .form-check-input.form-check-info { + background-color: #00CFDD; + border-color: #00CFDD; +} +.form-check .form-check-input.form-check-info:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-info.form-check-glow { + box-shadow: 0 0 5px #11f0ff; +} +.form-check .form-check-input.form-check-info.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check .form-check-input.form-check-dark { + background-color: #222f3e; + border-color: #222f3e; +} +.form-check .form-check-input.form-check-dark:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-dark.form-check-glow { + box-shadow: 0 0 5px #34485f; +} +.form-check .form-check-input.form-check-dark.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check .form-check-input.form-check-light { + background-color: #A3AFBD; + border-color: #A3AFBD; +} +.form-check .form-check-input.form-check-light:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-light.form-check-glow { + box-shadow: 0 0 5px #c1c9d2; +} +.form-check .form-check-input.form-check-light.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check .form-check-input.form-check-link { + background-color: #2178d1; + border-color: #2178d1; +} +.form-check .form-check-input.form-check-link:not(:checked) { + background-color: transparent; + border: 1px solid #ced4da; +} +.form-check .form-check-input.form-check-link.form-check-glow { + box-shadow: 0 0 5px #4492e1; +} +.form-check .form-check-input.form-check-link.form-check-glow:not(:checked) { + box-shadow: none; +} +.form-check.form-check-sm .form-check-input { + width: 0.9rem; + height: 0.9rem; + margin-top: 0.3em; +} +.form-check.form-check-sm label { + font-size: 0.7rem; +} +.form-check.form-check-primary .form-check-input { + background-color: #5A8DEE; + border-color: #5A8DEE; +} +.form-check.form-check-secondary .form-check-input { + background-color: #475F7B; + border-color: #475F7B; +} +.form-check.form-check-success .form-check-input { + background-color: #39DA8A; + border-color: #39DA8A; +} +.form-check.form-check-danger .form-check-input { + background-color: #FF5B5C; + border-color: #FF5B5C; +} +.form-check.form-check-warning .form-check-input { + background-color: #FDAC41; + border-color: #FDAC41; +} +.form-check.form-check-info .form-check-input { + background-color: #00CFDD; + border-color: #00CFDD; +} +.form-check.form-check-dark .form-check-input { + background-color: #222f3e; + border-color: #222f3e; +} +.form-check.form-check-light .form-check-input { + background-color: #A3AFBD; + border-color: #A3AFBD; +} +.form-check.form-check-link .form-check-input { + background-color: #2178d1; + border-color: #2178d1; +} + +.dataTable-input { + min-height: calc(1.5em + 0.934rem + 2px); + padding: 0.467rem 0.6rem; + font-size: 0.9025rem; + font-weight: 400; + line-height: 1.5; + color: #555252; + background-color: white; + background-clip: padding-box; + border: 1px solid #DFE3E7; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.dataTable-input:focus { + color: #555252; + background-color: white; + border-color: #5A8DEE; + outline: 0; + box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.1); +} + +/** 2.10 Modal **/ +.modal .modal-content { + box-shadow: -8px 12px 18px 0 rgba(25, 42, 70, 0.13); + border: none; +} +.modal .modal-full { + max-width: 94%; +} +.modal .white { + color: white; +} +.modal .modal-header { + display: flex; + justify-content: space-between; + align-items: center; +} +.modal .modal-header .modal-title { + font-size: 1.1rem; +} +.modal .modal-header .close { + padding: 7px 10px; + border-radius: 50%; +} +.modal .modal-header .close:hover { + background: #dee2e6; +} +.modal .modal-header i, .modal .modal-header svg { + font-size: 12px; + height: 12px; + width: 12px; +} +.modal .modal-footer { + padding: 1rem 2rem; +} +.modal.modal-borderless .modal-header { + border-bottom: 0; +} +.modal.modal-borderless .modal-footer { + border-top: 0; +} + +/** 2.11 Sidebar **/ +#sidebar.active .sidebar-wrapper { + left: 0; +} +#sidebar:not(.active) ~ #main { + margin-left: 0; +} + +.sidebar-wrapper { + width: 260px; + height: 100vh; + position: fixed; + top: 0; + z-index: 10; + background-color: #fff; + bottom: 0; + border-right: 1px solid #eee; + box-shadow: 0 0 10px #ececec; + left: -260px; + transition: left 0.6s ease-out; +} +.sidebar-wrapper .sidebar-header { + padding: 2rem 2rem 1rem; + font-size: 2rem; + font-weight: bold; +} +.sidebar-wrapper .sidebar-header img { + height: 2.5rem; +} +.sidebar-wrapper .sidebar-toggler.x { + position: absolute; + right: 0; + top: 0.5rem; + display: none; +} +.sidebar-wrapper .menu { + padding-left: 0; + margin-top: 2rem; +} +.sidebar-wrapper .menu .sidebar-title { + padding: 1.5rem 1.8rem 0.5rem; + font-size: 0.8rem; + font-weight: 600; + color: #888; + text-transform: uppercase; +} +.sidebar-wrapper .menu .sidebar-link { + display: block; + padding: 0.7rem 1.5rem; + font-size: 0.85rem; + display: flex; + align-items: center; + transition: all 0.5s; +} +.sidebar-wrapper .menu .sidebar-link:hover span { + opacity: 1; +} +.sidebar-wrapper .menu .sidebar-link > span { + color: #053382; + font-weight: 500; + margin-left: 1rem; + opacity: 0.8; +} +.sidebar-wrapper .menu .sidebar-item { + list-style: none; + margin-top: 0.5rem; + position: relative; +} +.sidebar-wrapper .menu .sidebar-item.has-sub .sidebar-link:after { + content: url('data:image/svg+xml,'); + position: absolute; + color: #ccc; + right: 15px; + top: 12px; + display: block; +} +.sidebar-wrapper .menu .sidebar-item.active .sidebar-link { + background-color: #e8f3ff; +} +.sidebar-wrapper .menu .sidebar-item.active .sidebar-link:before { + content: ""; + position: absolute; + left: 0; + height: 100%; + top: 0; + bottom: 0; + background-color: rgba(46, 170, 244, 0.5); + width: 5px; +} +.sidebar-wrapper .menu .submenu { + list-style: none; + max-height: 0; + transition: max-height 0.5s ease-out; + overflow: hidden; +} +.sidebar-wrapper .menu .submenu.active { + max-height: 500px; +} +.sidebar-wrapper .menu .submenu li a { + padding: 0.7rem 3rem; + display: block; + color: #676767; + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.5px; + transition: all 0.2s; +} +.sidebar-wrapper .menu .submenu li a:hover { + margin-left: 0.3rem; +} + +@media screen and (max-width: 767px) { + .sidebar-wrapper { + left: -270px; + } + .sidebar-wrapper .sidebar-toggler.x { + display: block; + } +} +/** 2.12 Card **/ +.card { + box-shadow: -8px 12px 18px 0 rgba(25, 42, 70, 0.13); + margin-bottom: 2.2rem; +} +.card.card-statistic { + box-shadow: 1px 2px 5px rgba(47, 170, 244, 0.5); + background: linear-gradient(to bottom, #25a6f1, #54b9ff); + border: none; +} +.card.card-statistic .card-title { + text-transform: uppercase; + color: #fff; + letter-spacing: 0.8px; + font-weight: 400; + font-size: 1.3rem; + margin-bottom: 0; + margin-top: 5px; +} +.card.card-statistic .card-right p { + font-size: 1.5rem; + color: #fff; + margin-bottom: 0; +} +.card.card-statistic .card-right span.green { + color: #6fff6f; +} +.card.card-statistic .card-right span.red { + color: #ff7979; +} +.card.card-statistic .chart-wrapper { + height: 100px; +} +.card .card-header { + border: none; +} +.card .card-header h4 { + font-size: 1.2rem; +} +.card .card-header ~ .card-body { + padding-top: 0; +} +.card .card-content { + position: relative; +} +.card .card-title { + font-size: 1.2rem; +} +.card .card-body { + padding: 1.4rem 1.7rem; +} +.card .card-heading { + color: #555; + font-size: 1.5rem; +} +.card .card-img-overlay { + background-color: rgba(0, 0, 0, 0.6); +} +.card .card-img-overlay p { + color: #eee; +} +.card .card-img-overlay .card-title { + color: #fff; +} + +.pricing .card { + box-shadow: none; + margin-bottom: 0; + border-right: 1px solid #e9ecef; + box-shadow: 0 10px 10px #e9ecef; + margin-bottom: 0.5rem; +} +.pricing h1 { + text-align: center; + font-size: 4rem; + margin-bottom: 3rem; +} +.pricing .card-header .card-title { + font-size: 2rem !important; + margin-bottom: 0; +} +.pricing .card-header p { + font-size: 0.8rem; +} +.pricing ul li { + list-style: none; + margin-bottom: 0.5rem; +} +.pricing ul li i, .pricing ul li svg { + width: 1rem; + color: #39DA8A; + font-size: 1rem; + margin-right: 7px; +} +.pricing .card-highlighted { + background-color: #5A8DEE; + padding-top: 20px; + padding-bottom: 20px; +} +.pricing .card-highlighted .card-header, .pricing .card-highlighted .card-body { + background-color: #5A8DEE; + color: #fff; +} +.pricing .card-highlighted ul li { + color: #fff; +} +.pricing .card-highlighted ul li i, .pricing .card-highlighted ul li svg { + color: tint-color(#28a745, 2); +} +.pricing .card-highlighted .card-footer { + background-color: #5A8DEE; +} +.pricing .card-highlighted .card-title { + color: #fff; + font-size: 1.8rem; +} + +/** 2.13 Navs **/ +.nav-pills .nav-link.active { + box-shadow: 0 2px 10px rgba(90, 141, 238, 0.5); +} + +.nav-tabs { + border: none; +} +.nav-tabs .nav-link { + border: none; +} +.nav-tabs .nav-link:hover { + border: none; + text-shadow: 0 0 2px rgba(90, 141, 238, 0.3); +} +.nav-tabs .nav-link.active { + border: none; + position: relative; + color: #5A8DEE; +} +.nav-tabs .nav-link.active:after { + content: ""; + width: 100%; + position: absolute; + bottom: 0; + height: 2px; + background-color: #5A8DEE; + left: 0; + box-shadow: 0 2px 5px rgba(90, 141, 238, 0.5); +} + +/** 2.14 Navbar **/ +.navbar { + height: 70px; + padding: 1.5rem; +} +.navbar .nav-link-user img { + width: 30px; +} +.navbar.navbar-header li { + display: flex; + align-items: center; +} +.navbar.navbar-header li.nav-icon { + margin-right: 0.4rem; +} +.navbar.navbar-header li.nav-icon .nav-link { + display: block; + padding: 0.4rem; + border-radius: 50%; +} +.navbar.navbar-header li.nav-icon .nav-link:hover { + background-color: #e9ecef; +} +.navbar.navbar-header .dropdown > a { + color: #6c757d; + font-weight: 600; +} +.navbar.navbar-header .dropdown > a svg { + height: 24px; + width: 24px; +} +.navbar.navbar-header .dropdown > a:after { + display: none; +} + +/** 2.15 Pagination **/ +.pagination.pagination-primary .page-item.active .page-link { + background-color: #5A8DEE; + border-color: #5A8DEE; + box-shadow: 0 2px 5px rgba(90, 141, 238, 0.3); +} +.pagination.pagination-secondary .page-item.active .page-link { + background-color: #475F7B; + border-color: #475F7B; + box-shadow: 0 2px 5px rgba(71, 95, 123, 0.3); +} +.pagination.pagination-success .page-item.active .page-link { + background-color: #39DA8A; + border-color: #39DA8A; + box-shadow: 0 2px 5px rgba(57, 218, 138, 0.3); +} +.pagination.pagination-danger .page-item.active .page-link { + background-color: #FF5B5C; + border-color: #FF5B5C; + box-shadow: 0 2px 5px rgba(255, 91, 92, 0.3); +} +.pagination.pagination-warning .page-item.active .page-link { + background-color: #FDAC41; + border-color: #FDAC41; + box-shadow: 0 2px 5px rgba(253, 172, 65, 0.3); +} +.pagination.pagination-info .page-item.active .page-link { + background-color: #00CFDD; + border-color: #00CFDD; + box-shadow: 0 2px 5px rgba(0, 207, 221, 0.3); +} +.pagination.pagination-dark .page-item.active .page-link { + background-color: #222f3e; + border-color: #222f3e; + box-shadow: 0 2px 5px rgba(34, 47, 62, 0.3); +} +.pagination.pagination-light .page-item.active .page-link { + background-color: #A3AFBD; + border-color: #A3AFBD; + box-shadow: 0 2px 5px rgba(163, 175, 189, 0.3); +} +.pagination.pagination-link .page-item.active .page-link { + background-color: #2178d1; + border-color: #2178d1; + box-shadow: 0 2px 5px rgba(33, 120, 209, 0.3); +} + +.page-item:not(.active) .page-link:hover { + color: #000; +} +.page-item i, .page-item svg { + font-size: 13px; + width: 13px; + height: 13px; +} +.page-item .page-link { + font-size: 0.875rem; +} +.page-item .page-link:focus { + box-shadow: none; +} +.page-item:first-child { + margin-right: 0.4rem; +} +.page-item:last-child { + margin-left: 0.4rem; +} + +/** 2.16 Table **/ +.table td, .dataTable-table td, .table thead th, .dataTable-table thead th { + vertical-align: middle; +} + +.table thead th, .dataTable-table thead th { + border-bottom: 2px solid #475F7B; +} + +.dataTable-container { + overflow-x: auto; +} + +/** 2.17 Progress **/ +.progress.progress-primary { + overflow: visible; +} +.progress.progress-primary .progress-bar { + background-color: #5A8DEE; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(90, 141, 238, 0.8); +} +.progress.progress-secondary { + overflow: visible; +} +.progress.progress-secondary .progress-bar { + background-color: #475F7B; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(71, 95, 123, 0.8); +} +.progress.progress-success { + overflow: visible; +} +.progress.progress-success .progress-bar { + background-color: #39DA8A; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(57, 218, 138, 0.8); +} +.progress.progress-danger { + overflow: visible; +} +.progress.progress-danger .progress-bar { + background-color: #FF5B5C; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(255, 91, 92, 0.8); +} +.progress.progress-warning { + overflow: visible; +} +.progress.progress-warning .progress-bar { + background-color: #FDAC41; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(253, 172, 65, 0.8); +} +.progress.progress-info { + overflow: visible; +} +.progress.progress-info .progress-bar { + background-color: #00CFDD; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(0, 207, 221, 0.8); +} +.progress.progress-dark { + overflow: visible; +} +.progress.progress-dark .progress-bar { + background-color: #222f3e; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(34, 47, 62, 0.8); +} +.progress.progress-light { + overflow: visible; +} +.progress.progress-light .progress-bar { + background-color: #A3AFBD; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(163, 175, 189, 0.8); +} +.progress.progress-link { + overflow: visible; +} +.progress.progress-link .progress-bar { + background-color: #2178d1; + border-radius: 1rem; + box-shadow: 0px 2px 3px rgba(33, 120, 209, 0.8); +} +.progress.progress-sm { + height: 0.4rem; +} +.progress.progress-lg { + height: 0.8rem; +} +.progress .progress-bar { + position: relative; + overflow: visible; +} +.progress .progress-bar.progress-label:before { + content: attr(aria-valuenow) "%"; + position: absolute; + right: 0; + top: -1.3rem; + color: #495057; + font-size: 0.8rem; +} + +/** 3.1 Chat **/ +.chat { + border-radius: 5px; +} +.chat.chat-left .chat-message { + background: #5A8DEE !important; + float: left !important; + color: #fff; +} +.chat .chat-message { + text-align: left !important; + float: right !important; + margin: 0.2rem 0 1.8rem 0.2rem !important; + color: #525361; + background-color: #FAFBFB !important; + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.3) !important; + padding: 0.75rem 1rem !important; + position: relative !important; + max-width: calc(100% - 5rem) !important; + clear: both !important; + word-break: break-word !important; + border-radius: 0.267rem !important; +} + +/** 3.1 Todo **/ +.widget-todo-list-wrapper { + padding: 0; + margin: 0; +} +.widget-todo-list-wrapper .widget-todo-item { + padding: 0.8rem 2rem 0.8rem 0.8rem; + list-style: none; +} +.widget-todo-list-wrapper .widget-todo-item:hover { + background-color: #f8f9fa; +} +.widget-todo-list-wrapper .widget-todo-item .checkbox { + margin-left: 1rem; +} +.widget-todo-list-wrapper .widget-todo-item i, .widget-todo-list-wrapper .widget-todo-item svg { + font-size: 12px; + cursor: move; + height: 1rem; +} + +/** 4.1 Auth Pages **/ +#auth { + background: #6c757d; + min-height: 100vh; + padding-top: 100px; + background-image: url(../images/background/auth.jpg); +} +#auth .card { + box-shadow: 0 5px 15px rgba(36, 104, 146, 0.6); + border: none; +} + +/** 4.1 Error Pages **/ +#error { + height: 100vh; + width: 100%; + background-color: #e9ecef; +} +#error .error-title { + font-size: 10rem; +} + +/** 5. Utilities **/ +.text-xxs { + font-size: 0.65rem; +} + +.text-xs { + font-size: 0.75rem; +} + +.text-sm { + font-size: 0.85rem; +} + +.font-bold { + font-weight: 800; +} + +.font-semibold { + font-weight: 600; +} + +.pt-32 { + padding-top: 6rem; +} + +.ml-50 { + margin-left: 0.5rem; +} + +.w-0 { + width: 0; +} + +.w-1 { + width: 0.25rem; +} + +.w-2 { + width: 0.5rem; +} + +.w-3 { + width: 0.75rem; +} + +.w-4 { + width: 1rem; +} + +.w-5 { + width: 1.25rem; +} + +.w-10 { + width: 2.25rem; +} + +.h-0 { + height: 0; +} + +.h-1 { + height: 0.25rem; +} + +.h-2 { + height: 0.5rem; +} + +.h-3 { + height: 0.75rem; +} + +.h-4 { + height: 1rem; +} + +.h-5 { + height: 1.25rem; +} + +.h-10 { + height: 2.25rem; +} + +.rounded-none { + border-radius: 0; +} + +.round { + border-radius: 1.5rem; +} + +.rounded-full { + border-radius: 50%; +} + +.square { + border-radius: 0; +} + +.text-red { + color: #ff6384; +} + +.bg-red { + background-color: #ff6384 !important; +} + +.text-orange { + color: #ff9f40; +} + +.bg-orange { + background-color: #ff9f40 !important; +} + +.text-yellow { + color: #ffcd56; +} + +.bg-yellow { + background-color: #ffcd56 !important; +} + +.text-green { + color: #4bc0c0; +} + +.bg-green { + background-color: #4bc0c0 !important; +} + +.text-info { + color: #41B1F9; +} + +.bg-info { + background-color: #41B1F9 !important; +} + +.text-blue { + color: #3245D1; +} + +.bg-blue { + background-color: #3245D1 !important; +} + +.text-purple { + color: #9966ff; +} + +.bg-purple { + background-color: #9966ff !important; +} + +.text-grey { + color: #EBEFF6; +} + +.bg-grey { + background-color: #EBEFF6 !important; +} + +.text-gray-700 { + color: #4a5568; +} + +.bg-gray-700 { + background-color: #4a5568 !important; +} \ No newline at end of file diff --git a/static/assets/assets/css/bootstrap.css b/static/assets/assets/css/bootstrap.css new file mode 100644 index 0000000000000000000000000000000000000000..97edbf45761dd665690c432e0d87e3edace58cf5 --- /dev/null +++ b/static/assets/assets/css/bootstrap.css @@ -0,0 +1,10384 @@ +@charset "UTF-8"; +/** + * VARIABLE - TABLE OF CONTENTS + * + * 1. Theme Colors + * 2. Bootstrap Override + * 2.4 Alert + * 2.11 Badge + * 2.12 Button + * 2.14 Breadcrumb + * 2.1 Card + * 2.2 Form + * 2.3 List + * 2.5 Progress + * 2.6 Table + * 2.7 Tooltip + * 2.8 Modal + * 2.9 Nav + * 2.10 Pagination + * 2.13 Media + * 2.15 Accordion + * 2.16 Popover + * 2.17 Grid + * 2.18 Navbar + * 2.19 Dropdown + * 2.20 Tab + * 2.21 Progressbar + * 2.22 Jumbotron + * 2.23 Carousel + * 5. Utilities + * 6. Responsive + */ +.color-primary { + color: #5A8DEE; +} + +.color-secondary { + color: #475F7B; +} + +.color-success { + color: #39DA8A; +} + +.color-danger { + color: #FF5B5C; +} + +.color-warning { + color: #FDAC41; +} + +.color-info { + color: #00CFDD; +} + +.color-dark { + color: #222f3e; +} + +.color-light { + color: #A3AFBD; +} + +.color-link { + color: #2178d1; +} + +/*! + * Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 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: #28a745; + --bs-teal: #20c997; + --bs-cyan: #17a2b8; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-primary: #5A8DEE; + --bs-secondary: #475F7B; + --bs-success: #39DA8A; + --bs-danger: #FF5B5C; + --bs-warning: #FDAC41; + --bs-info: #00CFDD; + --bs-dark: #222f3e; + --bs-light: #A3AFBD; + --bs-link: #2178d1; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", 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, 0.15), rgba(255, 255, 255, 0)); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: var(--bs-font-sans-serif); + font-size: 0.9rem; + font-weight: 400; + line-height: 1.5; + color: #727E8C; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: 0.25; +} + +hr:not([size]) { + height: 1px; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: #475F7B; +} + +h1, .h1 { + font-size: calc(1.35rem + 1.2vw); +} +@media (min-width: 1200px) { + h1, .h1 { + font-size: 2.25rem; + } +} + +h2, .h2 { + font-size: calc(1.305rem + 0.66vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 1.8rem; + } +} + +h3, .h3 { + font-size: calc(1.2825rem + 0.39vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.575rem; + } +} + +h4, .h4 { + font-size: calc(1.26rem + 0.12vw); +} +@media (min-width: 1200px) { + h4, .h4 { + font-size: 1.35rem; + } +} + +h5, .h5 { + font-size: 1.125rem; +} + +h6, .h6 { + font-size: 0.9rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: #0d6efd; + text-decoration: underline; +} +a:hover { + color: #024dbc; +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; + -ms-overflow-style: scrollbar; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: #d63384; + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 0.875em; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} +kbd kbd { + padding: 0; + font-size: 1em; + font-weight: 700; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 1.15rem; + padding-bottom: 1.15rem; + color: #ced4da; + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} + +[list]::-webkit-calendar-picker-indicator { + display: none; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; + white-space: normal; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +.lead { + font-size: 1.125rem; + font-weight: 300; +} + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.125rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "\2014\A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-right: 1rem; + padding-left: 1rem; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex: 1 0 100%; + flex-wrap: wrap; + margin-top: calc(var(--bs-gutter-y) * -1); + margin-right: calc(var(--bs-gutter-x) / -2); + margin-left: calc(var(--bs-gutter-x) / -2); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) / 2); + padding-left: calc(var(--bs-gutter-x) / 2); + 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.3333333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.6666666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.3333333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.6666666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.3333333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.6666666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.3333333333%; +} + +.offset-2 { + margin-left: 16.6666666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.3333333333%; +} + +.offset-5 { + margin-left: 41.6666666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.3333333333%; +} + +.offset-8 { + margin-left: 66.6666666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.3333333333%; +} + +.offset-11 { + margin-left: 91.6666666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.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.3333333333%; + } + + .col-sm-2 { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-sm-4 { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .col-sm-5 { + flex: 0 0 auto; + width: 41.6666666667%; + } + + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-sm-7 { + flex: 0 0 auto; + width: 58.3333333333%; + } + + .col-sm-8 { + flex: 0 0 auto; + width: 66.6666666667%; + } + + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-sm-10 { + flex: 0 0 auto; + width: 83.3333333333%; + } + + .col-sm-11 { + flex: 0 0 auto; + width: 91.6666666667%; + } + + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-sm-0 { + margin-left: 0; + } + + .offset-sm-1 { + margin-left: 8.3333333333%; + } + + .offset-sm-2 { + margin-left: 16.6666666667%; + } + + .offset-sm-3 { + margin-left: 25%; + } + + .offset-sm-4 { + margin-left: 33.3333333333%; + } + + .offset-sm-5 { + margin-left: 41.6666666667%; + } + + .offset-sm-6 { + margin-left: 50%; + } + + .offset-sm-7 { + margin-left: 58.3333333333%; + } + + .offset-sm-8 { + margin-left: 66.6666666667%; + } + + .offset-sm-9 { + margin-left: 75%; + } + + .offset-sm-10 { + margin-left: 83.3333333333%; + } + + .offset-sm-11 { + margin-left: 91.6666666667%; + } + + .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: 0.25rem; + } + + .g-sm-1, +.gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .g-sm-2, +.gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .g-sm-2, +.gy-sm-2 { + --bs-gutter-y: 0.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.3333333333%; + } + + .col-md-2 { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-md-4 { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .col-md-5 { + flex: 0 0 auto; + width: 41.6666666667%; + } + + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-md-7 { + flex: 0 0 auto; + width: 58.3333333333%; + } + + .col-md-8 { + flex: 0 0 auto; + width: 66.6666666667%; + } + + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-md-10 { + flex: 0 0 auto; + width: 83.3333333333%; + } + + .col-md-11 { + flex: 0 0 auto; + width: 91.6666666667%; + } + + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-md-0 { + margin-left: 0; + } + + .offset-md-1 { + margin-left: 8.3333333333%; + } + + .offset-md-2 { + margin-left: 16.6666666667%; + } + + .offset-md-3 { + margin-left: 25%; + } + + .offset-md-4 { + margin-left: 33.3333333333%; + } + + .offset-md-5 { + margin-left: 41.6666666667%; + } + + .offset-md-6 { + margin-left: 50%; + } + + .offset-md-7 { + margin-left: 58.3333333333%; + } + + .offset-md-8 { + margin-left: 66.6666666667%; + } + + .offset-md-9 { + margin-left: 75%; + } + + .offset-md-10 { + margin-left: 83.3333333333%; + } + + .offset-md-11 { + margin-left: 91.6666666667%; + } + + .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: 0.25rem; + } + + .g-md-1, +.gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .g-md-2, +.gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .g-md-2, +.gy-md-2 { + --bs-gutter-y: 0.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.3333333333%; + } + + .col-lg-2 { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-lg-4 { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .col-lg-5 { + flex: 0 0 auto; + width: 41.6666666667%; + } + + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-lg-7 { + flex: 0 0 auto; + width: 58.3333333333%; + } + + .col-lg-8 { + flex: 0 0 auto; + width: 66.6666666667%; + } + + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-lg-10 { + flex: 0 0 auto; + width: 83.3333333333%; + } + + .col-lg-11 { + flex: 0 0 auto; + width: 91.6666666667%; + } + + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-lg-0 { + margin-left: 0; + } + + .offset-lg-1 { + margin-left: 8.3333333333%; + } + + .offset-lg-2 { + margin-left: 16.6666666667%; + } + + .offset-lg-3 { + margin-left: 25%; + } + + .offset-lg-4 { + margin-left: 33.3333333333%; + } + + .offset-lg-5 { + margin-left: 41.6666666667%; + } + + .offset-lg-6 { + margin-left: 50%; + } + + .offset-lg-7 { + margin-left: 58.3333333333%; + } + + .offset-lg-8 { + margin-left: 66.6666666667%; + } + + .offset-lg-9 { + margin-left: 75%; + } + + .offset-lg-10 { + margin-left: 83.3333333333%; + } + + .offset-lg-11 { + margin-left: 91.6666666667%; + } + + .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: 0.25rem; + } + + .g-lg-1, +.gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .g-lg-2, +.gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .g-lg-2, +.gy-lg-2 { + --bs-gutter-y: 0.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.3333333333%; + } + + .col-xl-2 { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-xl-4 { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .col-xl-5 { + flex: 0 0 auto; + width: 41.6666666667%; + } + + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-xl-7 { + flex: 0 0 auto; + width: 58.3333333333%; + } + + .col-xl-8 { + flex: 0 0 auto; + width: 66.6666666667%; + } + + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-xl-10 { + flex: 0 0 auto; + width: 83.3333333333%; + } + + .col-xl-11 { + flex: 0 0 auto; + width: 91.6666666667%; + } + + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-xl-0 { + margin-left: 0; + } + + .offset-xl-1 { + margin-left: 8.3333333333%; + } + + .offset-xl-2 { + margin-left: 16.6666666667%; + } + + .offset-xl-3 { + margin-left: 25%; + } + + .offset-xl-4 { + margin-left: 33.3333333333%; + } + + .offset-xl-5 { + margin-left: 41.6666666667%; + } + + .offset-xl-6 { + margin-left: 50%; + } + + .offset-xl-7 { + margin-left: 58.3333333333%; + } + + .offset-xl-8 { + margin-left: 66.6666666667%; + } + + .offset-xl-9 { + margin-left: 75%; + } + + .offset-xl-10 { + margin-left: 83.3333333333%; + } + + .offset-xl-11 { + margin-left: 91.6666666667%; + } + + .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: 0.25rem; + } + + .g-xl-1, +.gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xl-2, +.gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xl-2, +.gy-xl-2 { + --bs-gutter-y: 0.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.3333333333%; + } + + .col-xxl-2 { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-xxl-4 { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .col-xxl-5 { + flex: 0 0 auto; + width: 41.6666666667%; + } + + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-xxl-7 { + flex: 0 0 auto; + width: 58.3333333333%; + } + + .col-xxl-8 { + flex: 0 0 auto; + width: 66.6666666667%; + } + + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-xxl-10 { + flex: 0 0 auto; + width: 83.3333333333%; + } + + .col-xxl-11 { + flex: 0 0 auto; + width: 91.6666666667%; + } + + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-xxl-0 { + margin-left: 0; + } + + .offset-xxl-1 { + margin-left: 8.3333333333%; + } + + .offset-xxl-2 { + margin-left: 16.6666666667%; + } + + .offset-xxl-3 { + margin-left: 25%; + } + + .offset-xxl-4 { + margin-left: 33.3333333333%; + } + + .offset-xxl-5 { + margin-left: 41.6666666667%; + } + + .offset-xxl-6 { + margin-left: 50%; + } + + .offset-xxl-7 { + margin-left: 58.3333333333%; + } + + .offset-xxl-8 { + margin-left: 66.6666666667%; + } + + .offset-xxl-9 { + margin-left: 75%; + } + + .offset-xxl-10 { + margin-left: 83.3333333333%; + } + + .offset-xxl-11 { + margin-left: 91.6666666667%; + } + + .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: 0.25rem; + } + + .g-xxl-1, +.gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xxl-2, +.gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xxl-2, +.gy-xxl-2 { + --bs-gutter-y: 0.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; + } +} +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #727E8C; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #727E8C; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #727E8C; + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: #727E8C; + vertical-align: top; + border-color: #DFE3E7; +} +.table > :not(caption) > * > * { + padding: 1.15rem 2rem; + background-color: var(--bs-table-bg); + background-image: linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg)); + border-bottom-width: 1px; +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} +.table > :not(:last-child) > :last-child > * { + border-bottom-color: #DFE3E7; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.table-hover > tbody > tr:hover { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.table-primary { + --bs-table-bg: #bbd6fe; + --bs-table-striped-bg: #b3cdf3; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #acc4e9; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #afc9ee; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #acc4e9; +} + +.table-secondary { + --bs-table-bg: #d6d8db; + --bs-table-striped-bg: #cdcfd2; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #c4c6c9; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #c8cbce; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #c4c6c9; +} + +.table-success { + --bs-table-bg: #c3e6cb; + --bs-table-striped-bg: #bbdcc3; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #b3d3bb; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #b7d8bf; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #b3d3bb; +} + +.table-info { + --bs-table-bg: #bee5eb; + --bs-table-striped-bg: #b6dbe1; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #aed2d8; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #b2d7dc; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #aed2d8; +} + +.table-warning { + --bs-table-bg: #ffeeba; + --bs-table-striped-bg: #f4e4b3; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #e9daac; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #eedfaf; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #e9daac; +} + +.table-danger { + --bs-table-bg: #f5c6cb; + --bs-table-striped-bg: #eabec3; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #e0b6bb; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #e5babf; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #e0b6bb; +} + +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #edeef0; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #e3e4e5; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #e8e9ea; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #e3e4e5; +} + +.table-dark { + --bs-table-bg: #343a40; + --bs-table-striped-bg: #3e444a; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #484e53; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #43494e; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #484e53; +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.form-label { + margin-bottom: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.467rem + 1px); + padding-bottom: calc(0.467rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.6rem + 1px); + padding-bottom: calc(0.6rem + 1px); + font-size: 1.125rem; +} + +.col-form-label-sm { + padding-top: calc(0.467rem + 1px); + padding-bottom: calc(0.467rem + 1px); + font-size: 0.8rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.form-control { + display: block; + width: 100%; + min-height: calc(1.5em + 0.934rem + 2px); + padding: 0.467rem 0.6rem; + font-size: 0.855rem; + font-weight: 400; + line-height: 1.5; + color: #555252; + background-color: white; + background-clip: padding-box; + border: 1px solid #DFE3E7; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control:focus { + color: #555252; + background-color: white; + border-color: #5A8DEE; + outline: 0; + box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.1); +} +.form-control::-moz-placeholder { + color: #828D99; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #828D99; + opacity: 1; +} +.form-control::-ms-input-placeholder { + color: #828D99; + opacity: 1; +} +.form-control::placeholder { + color: #828D99; + opacity: 1; +} +.form-control:disabled, .form-control[readonly] { + background-color: #F2F4F4; + opacity: 1; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.467rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #a2a2ad; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + min-height: calc(1.5em + 0.934rem + 2px); + padding: 0.467rem 0.8rem; + font-size: 0.8rem; + border-radius: 0.25rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1.2rem + 2px); + padding: 0.6rem 0.6rem; + font-size: 1.125rem; + border-radius: 0.25rem; +} + +.form-control-color { + max-width: 3rem; + padding: 0.467rem; +} + +.form-control-color::-moz-color-swatch { + border-radius: 0.25rem; +} + +.form-control-color::-webkit-color-swatch { + border-radius: 0.25rem; +} + +.form-select { + display: block; + width: 100%; + height: calc(1.5em + 0.934rem + 2px); + padding: 0.467rem 1.6rem 0.467rem 0.6rem; + font-size: 0.855rem; + font-weight: 400; + line-height: 1.5; + color: #555252; + vertical-align: middle; + background-color: white; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.6rem center; + background-size: 16px 12px; + border: 1px solid #DFE3E7; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.form-select:focus { + border-color: #5A8DEE; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); +} +.form-select:focus::-ms-value { + color: #555252; + background-color: white; +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.6rem; + background-image: none; +} +.form-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #555252; +} + +.form-select-sm { + height: calc(1.5em + 0.934rem + 2px); + padding-top: 0.467rem; + padding-bottom: 0.467rem; + padding-left: 0.8rem; + font-size: 0.8rem; +} + +.form-select-lg { + height: calc(1.5em + 1.2rem + 2px); + padding-top: 0.6rem; + padding-bottom: 0.6rem; + padding-left: 0.6rem; + font-size: 1.125rem; +} + +.form-check { + display: block; + min-height: 1.35rem; + padding-left: 1.75em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: left; + margin-left: -1.75em; +} + +.form-check-input { + width: 1.25em; + height: 1.25em; + margin-top: 0.125em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-check-input { + transition: none; + } +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + -webkit-filter: brightness(90%); + filter: brightness(90%); +} +.form-check-input:focus { + border-color: #5A8DEE; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); +} +.form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} +.form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} +.form-check-input:disabled { + pointer-events: none; + -webkit-filter: none; + filter: none; + opacity: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + opacity: 0.5; +} + +.form-check-label { + color: black; +} + +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; +} +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%235A8DEE'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.form-file { + --bs-form-file-height: calc(1.5em + 0.934rem + 2px); + position: relative; +} + +.form-file-input { + position: relative; + z-index: 2; + width: 100%; + height: var(--bs-form-file-height); + margin: 0; + opacity: 0; +} +.form-file-input:focus-within ~ .form-file-label { + border-color: #5A8DEE; + box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.1); +} +.form-file-input[disabled] ~ .form-file-label .form-file-text, .form-file-input:disabled ~ .form-file-label .form-file-text { + background-color: #F2F4F4; +} + +.form-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + display: flex; + height: var(--bs-form-file-height); + border-color: #DFE3E7; + border-radius: 0.25rem; +} + +.form-file-text { + display: block; + flex-grow: 1; + padding: 0.467rem 0.6rem; + overflow: hidden; + font-weight: 400; + line-height: 1.5; + color: #555252; + text-overflow: ellipsis; + white-space: nowrap; + background-color: white; + border-color: inherit; + border-style: solid; + border-width: 1px; + border-top-left-radius: inherit; + border-bottom-left-radius: inherit; +} + +.form-file-button { + display: block; + flex-shrink: 0; + padding: 0.467rem 0.6rem; + margin-left: -1px; + line-height: 1.5; + color: #555252; + background-color: #F0F4F7; + border-color: inherit; + border-style: solid; + border-width: 1px; + border-top-right-radius: inherit; + border-bottom-right-radius: inherit; +} + +.form-file-sm { + --bs-form-file-height: calc(1.5em + 0.934rem + 2px); + font-size: 0.8rem; +} +.form-file-sm .form-file-text, +.form-file-sm .form-file-button { + padding: 0.467rem 0.8rem; +} + +.form-file-lg { + --bs-form-file-height: calc(1.5em + 1.2rem + 2px); + font-size: 1.125rem; +} +.form-file-lg .form-file-text, +.form-file-lg .form-file-button { + padding: 0.6rem 0.6rem; +} + +.form-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.form-range:focus { + outline: none; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 3px 8px 0 rgba(0, 0, 0, 0.1); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 3px 8px 0 rgba(0, 0, 0, 0.1); +} +.form-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 3px 8px 0 rgba(0, 0, 0, 0.1); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: #bed8fe; +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: #bed8fe; +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-ms-thumb { + -ms-transition: none; + transition: none; + } +} +.form-range::-ms-thumb:active { + background-color: #bed8fe; +} +.form-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} +.form-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} +.form-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} +.form-range:disabled::-ms-thumb { + background-color: #adb5bd; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select, +.input-group > .form-file { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus, +.input-group > .form-file .form-file-input:focus ~ .form-file-label { + z-index: 3; +} +.input-group > .form-file > .form-file-input:focus { + z-index: 4; +} +.input-group > .form-file:not(:last-child) > .form-file-label { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .form-file:not(:first-child) > .form-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 3; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.467rem 0.6rem; + font-size: 0.855rem; + font-weight: 400; + line-height: 1.5; + color: #475F7B; + text-align: center; + white-space: nowrap; + background-color: #F0F4F7; + border: 1px solid #DFE3E7; + border-radius: 0.25rem; +} + +.input-group-lg > .form-control { + min-height: calc(1.5em + 1.2rem + 2px); +} + +.input-group-lg > .form-select { + height: calc(1.5em + 1.2rem + 2px); +} + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.6rem 0.6rem; + font-size: 1.125rem; + border-radius: 0.25rem; +} + +.input-group-sm > .form-control { + min-height: calc(1.5em + 0.934rem + 2px); +} + +.input-group-sm > .form-select { + height: calc(1.5em + 0.934rem + 2px); +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.467rem 0.8rem; + font-size: 0.8rem; + border-radius: 0.25rem; +} + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 1.6rem; +} + +.input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), +.input-group > .dropdown-toggle:nth-last-child(n+3) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > :not(:first-child):not(.dropdown-menu) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.7875rem; + color: #fff; + background-color: rgba(40, 167, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #28a745; + padding-right: calc(1.5em + 0.934rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.2335rem) center; + background-size: calc(0.75em + 0.467rem) calc(0.75em + 0.467rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.934rem); + background-position: top calc(0.375em + 0.2335rem) right calc(0.375em + 0.2335rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: #28a745; + padding-right: calc(0.75em + 2.3005rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: right 0.6rem center, center right 1.6rem; + background-size: 16px 12px, calc(0.75em + 0.467rem) calc(0.75em + 0.467rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: #28a745; +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: #28a745; +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .form-file-input:valid ~ .form-file-label, .form-file-input.is-valid ~ .form-file-label { + border-color: #28a745; +} +.was-validated .form-file-input:valid:focus ~ .form-file-label, .form-file-input.is-valid:focus ~ .form-file-label { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.7875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.934rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.2335rem) center; + background-size: calc(0.75em + 0.467rem) calc(0.75em + 0.467rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.934rem); + background-position: top calc(0.375em + 0.2335rem) right calc(0.375em + 0.2335rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: #dc3545; + padding-right: calc(0.75em + 2.3005rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right 0.6rem center, center right 1.6rem; + background-size: 16px 12px, calc(0.75em + 0.467rem) calc(0.75em + 0.467rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: #dc3545; +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: #dc3545; +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .form-file-input:invalid ~ .form-file-label, .form-file-input.is-invalid ~ .form-file-label { + border-color: #dc3545; +} +.was-validated .form-file-input:invalid:focus ~ .form-file-label, .form-file-input.is-invalid:focus ~ .form-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #727E8C; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.467rem 1.5rem; + font-size: 0.855rem; + border-radius: 0.267rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: #727E8C; +} +.btn-check:focus + .btn, .btn:focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); +} +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; +} + +.btn-primary { + color: #fff; + background-color: #5A8DEE; + border-color: #5A8DEE; +} +.btn-primary:hover { + color: #fff; + background-color: #3775ea; + border-color: #2c6de9; +} +.btn-check:focus + .btn-primary, .btn-primary:focus { + color: #fff; + background-color: #3775ea; + border-color: #2c6de9; + box-shadow: 0 0 0 0.2rem rgba(115, 158, 241, 0.5); +} +.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #2c6de9; + border-color: #2065e8; +} +.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(115, 158, 241, 0.5); +} +.btn-primary:disabled, .btn-primary.disabled { + color: #fff; + background-color: #5A8DEE; + border-color: #5A8DEE; +} + +.btn-secondary { + color: #fff; + background-color: #475F7B; + border-color: #475F7B; +} +.btn-secondary:hover { + color: #fff; + background-color: #394c63; + border-color: #34465b; +} +.btn-check:focus + .btn-secondary, .btn-secondary:focus { + color: #fff; + background-color: #394c63; + border-color: #34465b; + box-shadow: 0 0 0 0.2rem rgba(99, 119, 143, 0.5); +} +.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #34465b; + border-color: #304053; +} +.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(99, 119, 143, 0.5); +} +.btn-secondary:disabled, .btn-secondary.disabled { + color: #fff; + background-color: #475F7B; + border-color: #475F7B; +} + +.btn-success { + color: #212529; + background-color: #39DA8A; + border-color: #39DA8A; +} +.btn-success:hover { + color: #212529; + background-color: #25c777; + border-color: #23bd70; +} +.btn-check:focus + .btn-success, .btn-success:focus { + color: #212529; + background-color: #25c777; + border-color: #23bd70; + box-shadow: 0 0 0 0.2rem rgba(53, 191, 123, 0.5); +} +.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle { + color: #212529; + background-color: #23bd70; + border-color: #21b26a; +} +.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(53, 191, 123, 0.5); +} +.btn-success:disabled, .btn-success.disabled { + color: #212529; + background-color: #39DA8A; + border-color: #39DA8A; +} + +.btn-danger { + color: #fff; + background-color: #FF5B5C; + border-color: #FF5B5C; +} +.btn-danger:hover { + color: #fff; + background-color: #ff3536; + border-color: #ff2829; +} +.btn-check:focus + .btn-danger, .btn-danger:focus { + color: #fff; + background-color: #ff3536; + border-color: #ff2829; + box-shadow: 0 0 0 0.2rem rgba(255, 116, 116, 0.5); +} +.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #ff2829; + border-color: #ff1b1d; +} +.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 116, 116, 0.5); +} +.btn-danger:disabled, .btn-danger.disabled { + color: #fff; + background-color: #FF5B5C; + border-color: #FF5B5C; +} + +.btn-warning { + color: #212529; + background-color: #FDAC41; + border-color: #FDAC41; +} +.btn-warning:hover { + color: #212529; + background-color: #fd9b1b; + border-color: #fc960f; +} +.btn-check:focus + .btn-warning, .btn-warning:focus { + color: #212529; + background-color: #fd9b1b; + border-color: #fc960f; + box-shadow: 0 0 0 0.2rem rgba(220, 152, 61, 0.5); +} +.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #fc960f; + border-color: #fc9003; +} +.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 152, 61, 0.5); +} +.btn-warning:disabled, .btn-warning.disabled { + color: #212529; + background-color: #FDAC41; + border-color: #FDAC41; +} + +.btn-info { + color: #212529; + background-color: #00CFDD; + border-color: #00CFDD; +} +.btn-info:hover { + color: #212529; + background-color: #00abb7; + border-color: #009faa; +} +.btn-check:focus + .btn-info, .btn-info:focus { + color: #212529; + background-color: #00abb7; + border-color: #009faa; + box-shadow: 0 0 0 0.2rem rgba(5, 182, 194, 0.5); +} +.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #009faa; + border-color: #00939d; +} +.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(5, 182, 194, 0.5); +} +.btn-info:disabled, .btn-info.disabled { + color: #212529; + background-color: #00CFDD; + border-color: #00CFDD; +} + +.btn-dark { + color: #fff; + background-color: #222f3e; + border-color: #222f3e; +} +.btn-dark:hover { + color: #fff; + background-color: #141c25; + border-color: #10161d; +} +.btn-check:focus + .btn-dark, .btn-dark:focus { + color: #fff; + background-color: #141c25; + border-color: #10161d; + box-shadow: 0 0 0 0.2rem rgba(67, 78, 91, 0.5); +} +.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #10161d; + border-color: #0b1015; +} +.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(67, 78, 91, 0.5); +} +.btn-dark:disabled, .btn-dark.disabled { + color: #fff; + background-color: #222f3e; + border-color: #222f3e; +} + +.btn-light { + color: #212529; + background-color: #A3AFBD; + border-color: #A3AFBD; +} +.btn-light:hover { + color: #212529; + background-color: #8d9cad; + border-color: #8595a8; +} +.btn-check:focus + .btn-light, .btn-light:focus { + color: #212529; + background-color: #8d9cad; + border-color: #8595a8; + box-shadow: 0 0 0 0.2rem rgba(144, 154, 167, 0.5); +} +.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle { + color: #fff; + background-color: #8595a8; + border-color: #7e8fa2; +} +.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(144, 154, 167, 0.5); +} +.btn-light:disabled, .btn-light.disabled { + color: #212529; + background-color: #A3AFBD; + border-color: #A3AFBD; +} + +.btn-link { + color: #fff; + background-color: #2178d1; + border-color: #2178d1; +} +.btn-link:hover { + color: #fff; + background-color: #1c65b0; + border-color: #1a5fa5; +} +.btn-check:focus + .btn-link, .btn-link:focus { + color: #fff; + background-color: #1c65b0; + border-color: #1a5fa5; + box-shadow: 0 0 0 0.2rem rgba(66, 140, 216, 0.5); +} +.btn-check:checked + .btn-link, .btn-check:active + .btn-link, .btn-link:active, .btn-link.active, .show > .btn-link.dropdown-toggle { + color: #fff; + background-color: #1a5fa5; + border-color: #18589a; +} +.btn-check:checked + .btn-link:focus, .btn-check:active + .btn-link:focus, .btn-link:active:focus, .btn-link.active:focus, .show > .btn-link.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(66, 140, 216, 0.5); +} +.btn-link:disabled, .btn-link.disabled { + color: #fff; + background-color: #2178d1; + border-color: #2178d1; +} + +.btn-outline-primary { + color: #5A8DEE; + border-color: #5A8DEE; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #5A8DEE; + border-color: #5A8DEE; +} +.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { + box-shadow: 0 0 0 0.2rem rgba(90, 141, 238, 0.5); +} +.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show { + color: #fff; + background-color: #5A8DEE; + border-color: #5A8DEE; +} +.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(90, 141, 238, 0.5); +} +.btn-outline-primary:disabled, .btn-outline-primary.disabled { + color: #5A8DEE; + background-color: transparent; +} + +.btn-outline-secondary { + color: #475F7B; + border-color: #475F7B; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #475F7B; + border-color: #475F7B; +} +.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { + box-shadow: 0 0 0 0.2rem rgba(71, 95, 123, 0.5); +} +.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { + color: #fff; + background-color: #475F7B; + border-color: #475F7B; +} +.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(71, 95, 123, 0.5); +} +.btn-outline-secondary:disabled, .btn-outline-secondary.disabled { + color: #475F7B; + background-color: transparent; +} + +.btn-outline-success { + color: #39DA8A; + border-color: #39DA8A; +} +.btn-outline-success:hover { + color: #212529; + background-color: #39DA8A; + border-color: #39DA8A; +} +.btn-check:focus + .btn-outline-success, .btn-outline-success:focus { + box-shadow: 0 0 0 0.2rem rgba(57, 218, 138, 0.5); +} +.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show { + color: #212529; + background-color: #39DA8A; + border-color: #39DA8A; +} +.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(57, 218, 138, 0.5); +} +.btn-outline-success:disabled, .btn-outline-success.disabled { + color: #39DA8A; + background-color: transparent; +} + +.btn-outline-danger { + color: #FF5B5C; + border-color: #FF5B5C; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #FF5B5C; + border-color: #FF5B5C; +} +.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 91, 92, 0.5); +} +.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show { + color: #fff; + background-color: #FF5B5C; + border-color: #FF5B5C; +} +.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 91, 92, 0.5); +} +.btn-outline-danger:disabled, .btn-outline-danger.disabled { + color: #FF5B5C; + background-color: transparent; +} + +.btn-outline-warning { + color: #FDAC41; + border-color: #FDAC41; +} +.btn-outline-warning:hover { + color: #212529; + background-color: #FDAC41; + border-color: #FDAC41; +} +.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { + box-shadow: 0 0 0 0.2rem rgba(253, 172, 65, 0.5); +} +.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show { + color: #212529; + background-color: #FDAC41; + border-color: #FDAC41; +} +.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(253, 172, 65, 0.5); +} +.btn-outline-warning:disabled, .btn-outline-warning.disabled { + color: #FDAC41; + background-color: transparent; +} + +.btn-outline-info { + color: #00CFDD; + border-color: #00CFDD; +} +.btn-outline-info:hover { + color: #212529; + background-color: #00CFDD; + border-color: #00CFDD; +} +.btn-check:focus + .btn-outline-info, .btn-outline-info:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 207, 221, 0.5); +} +.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show { + color: #212529; + background-color: #00CFDD; + border-color: #00CFDD; +} +.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 207, 221, 0.5); +} +.btn-outline-info:disabled, .btn-outline-info.disabled { + color: #00CFDD; + background-color: transparent; +} + +.btn-outline-dark { + color: #222f3e; + border-color: #222f3e; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #222f3e; + border-color: #222f3e; +} +.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { + box-shadow: 0 0 0 0.2rem rgba(34, 47, 62, 0.5); +} +.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { + color: #fff; + background-color: #222f3e; + border-color: #222f3e; +} +.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(34, 47, 62, 0.5); +} +.btn-outline-dark:disabled, .btn-outline-dark.disabled { + color: #222f3e; + background-color: transparent; +} + +.btn-outline-light { + color: #A3AFBD; + border-color: #A3AFBD; +} +.btn-outline-light:hover { + color: #212529; + background-color: #A3AFBD; + border-color: #A3AFBD; +} +.btn-check:focus + .btn-outline-light, .btn-outline-light:focus { + box-shadow: 0 0 0 0.2rem rgba(163, 175, 189, 0.5); +} +.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { + color: #212529; + background-color: #A3AFBD; + border-color: #A3AFBD; +} +.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(163, 175, 189, 0.5); +} +.btn-outline-light:disabled, .btn-outline-light.disabled { + color: #A3AFBD; + background-color: transparent; +} + +.btn-outline-link { + color: #2178d1; + border-color: #2178d1; +} +.btn-outline-link:hover { + color: #fff; + background-color: #2178d1; + border-color: #2178d1; +} +.btn-check:focus + .btn-outline-link, .btn-outline-link:focus { + box-shadow: 0 0 0 0.2rem rgba(33, 120, 209, 0.5); +} +.btn-check:checked + .btn-outline-link, .btn-check:active + .btn-outline-link, .btn-outline-link:active, .btn-outline-link.active, .btn-outline-link.dropdown-toggle.show { + color: #fff; + background-color: #2178d1; + border-color: #2178d1; +} +.btn-check:checked + .btn-outline-link:focus, .btn-check:active + .btn-outline-link:focus, .btn-outline-link:active:focus, .btn-outline-link.active:focus, .btn-outline-link.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.2rem rgba(33, 120, 209, 0.5); +} +.btn-outline-link:disabled, .btn-outline-link.disabled { + color: #2178d1; + background-color: transparent; +} + +.btn-link { + font-weight: 400; + color: #0d6efd; + text-decoration: underline; +} +.btn-link:hover { + color: #024dbc; +} +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.6rem 1.8rem; + font-size: 1.125rem; + border-radius: 0.267rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.467rem 1.2rem; + font-size: 0.8rem; + border-radius: 0.267rem; +} + +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +.fade { + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 0.9rem; + color: #727E8C; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } + + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } + + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } + + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } + + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-left { + right: auto; + left: 0; + } + + .dropdown-menu-xxl-right { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropleft .dropdown-toggle::after { + display: none; +} +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] { + right: auto; + bottom: auto; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + background-color: #f8f9fa; +} +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #5A8DEE; +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.7875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1rem; + color: #212529; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 1.125rem; + padding-left: 1.125rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after { + margin-left: 0; +} +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.9rem; + padding-left: 0.9rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 1.35rem; + padding-left: 1.35rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; + text-decoration: none; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #5A8DEE; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-sm, +.navbar > .container-md, +.navbar > .container-lg, +.navbar > .container-xl, +.navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} +.navbar-brand { + padding-top: 0.33125rem; + padding-bottom: 0.33125rem; + margin-right: 1rem; + font-size: 1.125rem; + text-decoration: none; + white-space: nowrap; +} +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} +.navbar-nav .dropdown-menu { + position: static; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + align-items: center; + width: 100%; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.125rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.267rem; + transition: box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; + } +} +.navbar-toggler:hover { + text-decoration: none; +} +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 0.2rem; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } +} +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} +.navbar-expand .navbar-nav { + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} +.navbar-expand .navbar-collapse { + display: flex !important; +} +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-text a, +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.55); + border-color: rgba(255, 255, 255, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-text a, +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 0 solid #DFE3E7; + border-radius: 0.267rem; +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: 0.267rem; + border-top-right-radius: 0.267rem; +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: 0.267rem; + border-bottom-left-radius: 0.267rem; +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + flex: 1 1 auto; + padding: 1rem 1rem; +} + +.card-title { + margin-bottom: 0.5rem; +} + +.card-subtitle { + margin-top: -0.25rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} +.card-link + .card-link { + margin-left: 1rem; +} + +.card-header { + padding: 1.4rem 1.7rem; + margin-bottom: 0; + background-color: #fff; + border-bottom: 0 solid #DFE3E7; +} +.card-header:first-child { + border-radius: 0.267rem 0.267rem 0 0; +} + +.card-footer { + padding: 1.4rem 1.7rem; + background-color: #fff; + border-top: 0 solid #DFE3E7; +} +.card-footer:last-child { + border-radius: 0 0 0.267rem 0.267rem; +} + +.card-header-tabs { + margin-right: -0.85rem; + margin-bottom: -1.4rem; + margin-left: -0.85rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.85rem; + margin-left: -0.85rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: 0.267rem; +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: 0.267rem; + border-top-right-radius: 0.267rem; +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: 0.267rem; + border-bottom-left-radius: 0.267rem; +} + +.card-group > .card { + margin-bottom: 0.75rem; +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, +.card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, +.card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, +.card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, +.card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.accordion > .card { + overflow: hidden; +} +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: 0; +} + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0 1rem; + margin-bottom: 0; + list-style: none; + background-color: transparent; + border-radius: 0.25rem; +} + +.breadcrumb-item { + display: flex; +} +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #ddd; + content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M2.5 0L1 1.5 3.5 4 1 6.5 2.5 8l4-4-4-4z' fill='%23777'/%3E%3C/svg%3E"); +} +.breadcrumb-item.active { + color: #555; +} + +.pagination { + display: flex; + padding-left: 0; + list-style: none; +} + +.page-link { + position: relative; + display: block; + color: #6c757d; + text-decoration: none; + background-color: #fff; + border: 1px solid #dee2e6; +} +.page-link:hover { + z-index: 2; + color: #024dbc; + background-color: #e9ecef; + border-color: #dee2e6; +} +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); +} + +.page-item:not(:first-child) .page-link { + margin-left: -1px; +} +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + background-color: #fff; + border-color: #dee2e6; +} + +.page-link { + padding: 0.375rem 0.75rem; +} + +.page-item:first-child .page-link { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.125rem; +} +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.5rem 0.5rem; + font-size: 0.7875rem; +} +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.4rem 0.55rem; + font-size: 0.75rem; + font-weight: 500; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 1rem; +} +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.alert { + position: relative; + padding: 0.75rem 0.75rem; + margin-bottom: 1rem; + border: none solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 2.85rem; +} +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 0.75rem; + color: inherit; +} + +.alert-primary { + color: #2f497c; + background-color: #dee8fc; + border-color: #d1dffa; +} +.alert-primary .alert-link { + color: #213357; +} + +.alert-secondary { + color: #253140; + background-color: #dadfe5; + border-color: #cbd2da; +} +.alert-secondary .alert-link { + color: #121820; +} + +.alert-success { + color: #1e7148; + background-color: #d7f8e8; + border-color: #c8f5de; +} +.alert-success .alert-link { + color: #13492e; +} + +.alert-danger { + color: #852f30; + background-color: #ffdede; + border-color: #ffd1d1; +} +.alert-danger .alert-link { + color: #5f2222; +} + +.alert-warning { + color: #845922; + background-color: #ffeed9; + border-color: #fee8ca; +} +.alert-warning .alert-link { + color: #5b3e18; +} + +.alert-info { + color: #006c73; + background-color: #ccf5f8; + border-color: #b8f2f5; +} +.alert-info .alert-link { + color: #003c40; +} + +.alert-dark { + color: #121820; + background-color: #d3d5d8; + border-color: #c1c5c9; +} +.alert-dark .alert-link { + color: black; +} + +.alert-light { + color: #555b62; + background-color: #edeff2; + border-color: #e5e9ed; +} +.alert-light .alert-link { + color: #3d4247; +} + +.alert-link { + color: #113e6d; + background-color: #d3e4f6; + border-color: #c1d9f2; +} +.alert-link .alert-link { + color: #0a2541; +} + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 0.6rem; + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 0.6rem; + } +} +.progress { + display: flex; + height: 0.6rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 1rem; +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #0d6efd; + transition: width 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 0.6rem 0.6rem; +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.4rem; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #727E8C; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.5rem 1rem; + text-decoration: none; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #5A8DEE; + border-color: #5A8DEE; +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.4rem; + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.4rem; + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.4rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.4rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.4rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.4rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.4rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.4rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.4rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.4rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-left-radius: 0.4rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-right-radius: 0.4rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #2f497c; + background-color: #d1dffa; +} +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #2f497c; + background-color: #bacff8; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #2f497c; + border-color: #2f497c; +} + +.list-group-item-secondary { + color: #253140; + background-color: #cbd2da; +} +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #253140; + background-color: #bcc5cf; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #253140; + border-color: #253140; +} + +.list-group-item-success { + color: #1e7148; + background-color: #c8f5de; +} +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #1e7148; + background-color: #b2f1d1; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #1e7148; + border-color: #1e7148; +} + +.list-group-item-danger { + color: #852f30; + background-color: #ffd1d1; +} +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #852f30; + background-color: #ffb8b8; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #852f30; + border-color: #852f30; +} + +.list-group-item-warning { + color: #845922; + background-color: #fee8ca; +} +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #845922; + background-color: #feddb1; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #845922; + border-color: #845922; +} + +.list-group-item-info { + color: #006c73; + background-color: #b8f2f5; +} +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #006c73; + background-color: #a2eef2; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #006c73; + border-color: #006c73; +} + +.list-group-item-dark { + color: #121820; + background-color: #c1c5c9; +} +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #121820; + background-color: #b3b8bd; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #121820; + border-color: #121820; +} + +.list-group-item-light { + color: #555b62; + background-color: #e5e9ed; +} +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #555b62; + background-color: #d6dce3; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #555b62; + border-color: #555b62; +} + +.list-group-item-link { + color: #113e6d; + background-color: #c1d9f2; +} +.list-group-item-link.list-group-item-action:hover, .list-group-item-link.list-group-item-action:focus { + color: #113e6d; + background-color: #acccee; +} +.list-group-item-link.list-group-item-action.active { + color: #fff; + background-color: #113e6d; + border-color: #113e6d; +} + +.close { + font-size: calc(1.26rem + 0.12vw); + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: 0.5; +} +@media (min-width: 1200px) { + .close { + font-size: 1.35rem; + } +} +.close:hover { + color: #000; + text-decoration: none; +} +.close:hover, .close:focus { + opacity: 0.75; +} +.close:disabled, .close.disabled { + pointer-events: none; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; +} + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: 0.25rem; +} +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} +.toast.showing { + opacity: 1; +} +.toast.show { + display: block; + opacity: 1; +} +.toast.hide { + display: none; +} + +.toast-header { + display: flex; + align-items: center; + padding: 0.25rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.toast-body { + padding: 0.75rem; +} + +.modal-open { + overflow: hidden; +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + max-height: calc(100% - 1rem); +} +.modal-dialog-scrollable .modal-content { + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #e9ecef; + border-radius: 0.2rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 2rem 1rem 2rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.2rem - 1px); + border-top-right-radius: calc(0.2rem - 1px); +} +.modal-header .close { + padding: 1rem 2rem 1rem 2rem; + margin: -1rem 2rem -1rem 2rem -1rem 2rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem 2rem; +} + +.modal-footer { + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + align-items: center; + justify-content: flex-end; + padding: 1rem 2rem-0.25rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.2rem - 1px); + border-bottom-left-radius: calc(0.2rem - 1px); +} +.modal-footer > * { + margin: 0.25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 540px; + margin: 1.75rem auto; + } + + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem); + } + + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, +.modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} +.modal-fullscreen .modal-footer { + border-radius: 0; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.7875rem; + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] { + padding: 0.4rem 0; +} +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[x-placement^=top] .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] { + padding: 0 0.4rem; +} +.bs-tooltip-right .tooltip-arrow, .bs-tooltip-auto[x-placement^=right] .tooltip-arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-right .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow { + top: 0; +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] { + padding: 0 0.4rem; +} +.bs-tooltip-left .tooltip-arrow, .bs-tooltip-auto[x-placement^=left] .tooltip-arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-left .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.7875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^=top] { + margin-bottom: 0.5rem; +} +.bs-popover-top > .popover-arrow, .bs-popover-auto[x-placement^=top] > .popover-arrow { + bottom: calc(-0.5rem - 1px); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[x-placement^=top] > .popover-arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[x-placement^=top] > .popover-arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^=right] { + margin-left: 0.5rem; +} +.bs-popover-right > .popover-arrow, .bs-popover-auto[x-placement^=right] > .popover-arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} +.bs-popover-right > .popover-arrow::before, .bs-popover-auto[x-placement^=right] > .popover-arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-right > .popover-arrow::after, .bs-popover-auto[x-placement^=right] > .popover-arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] { + margin-top: 0.5rem; +} +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[x-placement^=bottom] > .popover-arrow { + top: calc(-0.5rem - 1px); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[x-placement^=bottom] > .popover-arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[x-placement^=bottom] > .popover-arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, .bs-popover-auto[x-placement^=left] { + margin-right: 0.5rem; +} +.bs-popover-left > .popover-arrow, .bs-popover-auto[x-placement^=left] > .popover-arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} +.bs-popover-left > .popover-arrow::before, .bs-popover-auto[x-placement^=left] > .popover-arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-left > .popover-arrow::after, .bs-popover-auto[x-placement^=left] > .popover-arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.9rem; + color: #475F7B; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 1rem 1rem; + color: #727E8C; +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, +.carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} +.carousel-indicators li { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border 0.75s linear infinite; + animation: spinner-border 0.75s linear infinite; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow 0.75s linear infinite; + animation: spinner-grow 0.75s linear infinite; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.link-primary { + color: #5A8DEE; +} +.link-primary:hover, .link-primary:focus { + color: #175ee4; +} + +.link-secondary { + color: #475F7B; +} +.link-secondary:hover, .link-secondary:focus { + color: #2b3a4a; +} + +.link-success { + color: #39DA8A; +} +.link-success:hover, .link-success:focus { + color: #1fa764; +} + +.link-danger { + color: #FF5B5C; +} +.link-danger:hover, .link-danger:focus { + color: #ff0f10; +} + +.link-warning { + color: #FDAC41; +} +.link-warning:hover, .link-warning:focus { + color: #ef8903; +} + +.link-info { + color: #00CFDD; +} +.link-info:hover, .link-info:focus { + color: #008791; +} + +.link-dark { + color: #222f3e; +} +.link-dark:hover, .link-dark:focus { + color: #070a0d; +} + +.link-light { + color: #A3AFBD; +} +.link-light:hover, .link-light:focus { + color: #76889d; +} + +.link-link { + color: #2178d1; +} +.link-link:hover, .link-link:focus { + color: #17528f; +} + +.embed-responsive { + position: relative; + width: 100%; +} +.embed-responsive::before { + display: block; + content: ""; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.embed-responsive-21by9::before { + padding-top: 42.8571428571%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +.sr-only, +.sr-only-focusable:not(:focus) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !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; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #5A8DEE !important; +} + +.border-secondary { + border-color: #475F7B !important; +} + +.border-success { + border-color: #39DA8A !important; +} + +.border-danger { + border-color: #FF5B5C !important; +} + +.border-warning { + border-color: #FDAC41 !important; +} + +.border-info { + border-color: #00CFDD !important; +} + +.border-dark { + border-color: #222f3e !important; +} + +.border-light { + border-color: #A3AFBD !important; +} + +.border-link { + border-color: #2178d1 !important; +} + +.border-white { + border-color: #fff !important; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.vw-100 { + width: 100vw !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.vh-100 { + height: 100vh !important; +} + +.min-vh-100 { + min-height: 100vh !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: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mr-3 { + margin-right: 1rem !important; +} + +.mr-4 { + margin-right: 1.5rem !important; +} + +.mr-5 { + margin-right: 3rem !important; +} + +.mr-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.ml-3 { + margin-left: 1rem !important; +} + +.ml-4 { + margin-left: 1.5rem !important; +} + +.ml-5 { + margin-left: 3rem !important; +} + +.ml-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pr-3 { + padding-right: 1rem !important; +} + +.pr-4 { + padding-right: 1.5rem !important; +} + +.pr-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.pl-3 { + padding-left: 1rem !important; +} + +.pl-4 { + padding-left: 1.5rem !important; +} + +.pl-5 { + padding-left: 3rem !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-lighter { + font-weight: lighter !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-weight-bolder { + font-weight: bolder !important; +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-primary { + color: #5A8DEE !important; +} + +.text-secondary { + color: #475F7B !important; +} + +.text-success { + color: #39DA8A !important; +} + +.text-danger { + color: #FF5B5C !important; +} + +.text-warning { + color: #FDAC41 !important; +} + +.text-info { + color: #00CFDD !important; +} + +.text-dark { + color: #222f3e !important; +} + +.text-light { + color: #A3AFBD !important; +} + +.text-link { + color: #2178d1 !important; +} + +.text-white { + color: #fff !important; +} + +.text-body { + color: #727E8C !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-reset { + color: inherit !important; +} + +.lh-1 { + line-height: 1 !important; +} + +.lh-sm { + line-height: 1.25 !important; +} + +.lh-base { + line-height: 1.5 !important; +} + +.lh-lg { + line-height: 2 !important; +} + +.bg-primary { + background-color: #5A8DEE !important; +} + +.bg-secondary { + background-color: #475F7B !important; +} + +.bg-success { + background-color: #39DA8A !important; +} + +.bg-danger { + background-color: #FF5B5C !important; +} + +.bg-warning { + background-color: #FDAC41 !important; +} + +.bg-info { + background-color: #00CFDD !important; +} + +.bg-dark { + background-color: #222f3e !important; +} + +.bg-light { + background-color: #A3AFBD !important; +} + +.bg-link { + background-color: #2178d1 !important; +} + +.bg-body { + background-color: #fff !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-decoration-underline { + text-decoration: underline !important; +} + +.text-decoration-line-through { + text-decoration: line-through !important; +} + +.font-italic { + font-style: italic !important; +} + +.font-normal { + font-style: normal !important; +} + +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + -ms-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + -ms-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-sm { + border-radius: 0.2rem !important; +} + +.rounded-lg { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-bottom-left-radius: 0.25rem !important; + border-top-left-radius: 0.25rem !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + + .float-sm-right { + float: right !important; + } + + .float-sm-none { + float: none !important; + } + + .d-sm-none { + display: none !important; + } + + .d-sm-inline { + display: inline !important; + } + + .d-sm-inline-block { + display: inline-block !important; + } + + .d-sm-block { + display: block !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; + } + + .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: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.5rem !important; + } + + .m-sm-3 { + margin: 1rem !important; + } + + .m-sm-4 { + margin: 1.5rem !important; + } + + .m-sm-5 { + margin: 3rem !important; + } + + .m-sm-auto { + margin: auto !important; + } + + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-sm-0 { + margin-top: 0 !important; + } + + .mt-sm-1 { + margin-top: 0.25rem !important; + } + + .mt-sm-2 { + margin-top: 0.5rem !important; + } + + .mt-sm-3 { + margin-top: 1rem !important; + } + + .mt-sm-4 { + margin-top: 1.5rem !important; + } + + .mt-sm-5 { + margin-top: 3rem !important; + } + + .mt-sm-auto { + margin-top: auto !important; + } + + .mr-sm-0 { + margin-right: 0 !important; + } + + .mr-sm-1 { + margin-right: 0.25rem !important; + } + + .mr-sm-2 { + margin-right: 0.5rem !important; + } + + .mr-sm-3 { + margin-right: 1rem !important; + } + + .mr-sm-4 { + margin-right: 1.5rem !important; + } + + .mr-sm-5 { + margin-right: 3rem !important; + } + + .mr-sm-auto { + margin-right: auto !important; + } + + .mb-sm-0 { + margin-bottom: 0 !important; + } + + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + + .mb-sm-3 { + margin-bottom: 1rem !important; + } + + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + + .mb-sm-5 { + margin-bottom: 3rem !important; + } + + .mb-sm-auto { + margin-bottom: auto !important; + } + + .ml-sm-0 { + margin-left: 0 !important; + } + + .ml-sm-1 { + margin-left: 0.25rem !important; + } + + .ml-sm-2 { + margin-left: 0.5rem !important; + } + + .ml-sm-3 { + margin-left: 1rem !important; + } + + .ml-sm-4 { + margin-left: 1.5rem !important; + } + + .ml-sm-5 { + margin-left: 3rem !important; + } + + .ml-sm-auto { + margin-left: auto !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.5rem !important; + } + + .p-sm-3 { + padding: 1rem !important; + } + + .p-sm-4 { + padding: 1.5rem !important; + } + + .p-sm-5 { + padding: 3rem !important; + } + + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-sm-0 { + padding-top: 0 !important; + } + + .pt-sm-1 { + padding-top: 0.25rem !important; + } + + .pt-sm-2 { + padding-top: 0.5rem !important; + } + + .pt-sm-3 { + padding-top: 1rem !important; + } + + .pt-sm-4 { + padding-top: 1.5rem !important; + } + + .pt-sm-5 { + padding-top: 3rem !important; + } + + .pr-sm-0 { + padding-right: 0 !important; + } + + .pr-sm-1 { + padding-right: 0.25rem !important; + } + + .pr-sm-2 { + padding-right: 0.5rem !important; + } + + .pr-sm-3 { + padding-right: 1rem !important; + } + + .pr-sm-4 { + padding-right: 1.5rem !important; + } + + .pr-sm-5 { + padding-right: 3rem !important; + } + + .pb-sm-0 { + padding-bottom: 0 !important; + } + + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + + .pb-sm-3 { + padding-bottom: 1rem !important; + } + + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + + .pb-sm-5 { + padding-bottom: 3rem !important; + } + + .pl-sm-0 { + padding-left: 0 !important; + } + + .pl-sm-1 { + padding-left: 0.25rem !important; + } + + .pl-sm-2 { + padding-left: 0.5rem !important; + } + + .pl-sm-3 { + padding-left: 1rem !important; + } + + .pl-sm-4 { + padding-left: 1.5rem !important; + } + + .pl-sm-5 { + padding-left: 3rem !important; + } + + .text-sm-left { + text-align: left !important; + } + + .text-sm-right { + text-align: right !important; + } + + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + + .float-md-right { + float: right !important; + } + + .float-md-none { + float: none !important; + } + + .d-md-none { + display: none !important; + } + + .d-md-inline { + display: inline !important; + } + + .d-md-inline-block { + display: inline-block !important; + } + + .d-md-block { + display: block !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; + } + + .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: 0.25rem !important; + } + + .m-md-2 { + margin: 0.5rem !important; + } + + .m-md-3 { + margin: 1rem !important; + } + + .m-md-4 { + margin: 1.5rem !important; + } + + .m-md-5 { + margin: 3rem !important; + } + + .m-md-auto { + margin: auto !important; + } + + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-md-0 { + margin-top: 0 !important; + } + + .mt-md-1 { + margin-top: 0.25rem !important; + } + + .mt-md-2 { + margin-top: 0.5rem !important; + } + + .mt-md-3 { + margin-top: 1rem !important; + } + + .mt-md-4 { + margin-top: 1.5rem !important; + } + + .mt-md-5 { + margin-top: 3rem !important; + } + + .mt-md-auto { + margin-top: auto !important; + } + + .mr-md-0 { + margin-right: 0 !important; + } + + .mr-md-1 { + margin-right: 0.25rem !important; + } + + .mr-md-2 { + margin-right: 0.5rem !important; + } + + .mr-md-3 { + margin-right: 1rem !important; + } + + .mr-md-4 { + margin-right: 1.5rem !important; + } + + .mr-md-5 { + margin-right: 3rem !important; + } + + .mr-md-auto { + margin-right: auto !important; + } + + .mb-md-0 { + margin-bottom: 0 !important; + } + + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + + .mb-md-3 { + margin-bottom: 1rem !important; + } + + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + + .mb-md-5 { + margin-bottom: 3rem !important; + } + + .mb-md-auto { + margin-bottom: auto !important; + } + + .ml-md-0 { + margin-left: 0 !important; + } + + .ml-md-1 { + margin-left: 0.25rem !important; + } + + .ml-md-2 { + margin-left: 0.5rem !important; + } + + .ml-md-3 { + margin-left: 1rem !important; + } + + .ml-md-4 { + margin-left: 1.5rem !important; + } + + .ml-md-5 { + margin-left: 3rem !important; + } + + .ml-md-auto { + margin-left: auto !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .p-md-2 { + padding: 0.5rem !important; + } + + .p-md-3 { + padding: 1rem !important; + } + + .p-md-4 { + padding: 1.5rem !important; + } + + .p-md-5 { + padding: 3rem !important; + } + + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-md-0 { + padding-top: 0 !important; + } + + .pt-md-1 { + padding-top: 0.25rem !important; + } + + .pt-md-2 { + padding-top: 0.5rem !important; + } + + .pt-md-3 { + padding-top: 1rem !important; + } + + .pt-md-4 { + padding-top: 1.5rem !important; + } + + .pt-md-5 { + padding-top: 3rem !important; + } + + .pr-md-0 { + padding-right: 0 !important; + } + + .pr-md-1 { + padding-right: 0.25rem !important; + } + + .pr-md-2 { + padding-right: 0.5rem !important; + } + + .pr-md-3 { + padding-right: 1rem !important; + } + + .pr-md-4 { + padding-right: 1.5rem !important; + } + + .pr-md-5 { + padding-right: 3rem !important; + } + + .pb-md-0 { + padding-bottom: 0 !important; + } + + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + + .pb-md-3 { + padding-bottom: 1rem !important; + } + + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + + .pb-md-5 { + padding-bottom: 3rem !important; + } + + .pl-md-0 { + padding-left: 0 !important; + } + + .pl-md-1 { + padding-left: 0.25rem !important; + } + + .pl-md-2 { + padding-left: 0.5rem !important; + } + + .pl-md-3 { + padding-left: 1rem !important; + } + + .pl-md-4 { + padding-left: 1.5rem !important; + } + + .pl-md-5 { + padding-left: 3rem !important; + } + + .text-md-left { + text-align: left !important; + } + + .text-md-right { + text-align: right !important; + } + + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + + .float-lg-right { + float: right !important; + } + + .float-lg-none { + float: none !important; + } + + .d-lg-none { + display: none !important; + } + + .d-lg-inline { + display: inline !important; + } + + .d-lg-inline-block { + display: inline-block !important; + } + + .d-lg-block { + display: block !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; + } + + .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: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.5rem !important; + } + + .m-lg-3 { + margin: 1rem !important; + } + + .m-lg-4 { + margin: 1.5rem !important; + } + + .m-lg-5 { + margin: 3rem !important; + } + + .m-lg-auto { + margin: auto !important; + } + + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-lg-0 { + margin-top: 0 !important; + } + + .mt-lg-1 { + margin-top: 0.25rem !important; + } + + .mt-lg-2 { + margin-top: 0.5rem !important; + } + + .mt-lg-3 { + margin-top: 1rem !important; + } + + .mt-lg-4 { + margin-top: 1.5rem !important; + } + + .mt-lg-5 { + margin-top: 3rem !important; + } + + .mt-lg-auto { + margin-top: auto !important; + } + + .mr-lg-0 { + margin-right: 0 !important; + } + + .mr-lg-1 { + margin-right: 0.25rem !important; + } + + .mr-lg-2 { + margin-right: 0.5rem !important; + } + + .mr-lg-3 { + margin-right: 1rem !important; + } + + .mr-lg-4 { + margin-right: 1.5rem !important; + } + + .mr-lg-5 { + margin-right: 3rem !important; + } + + .mr-lg-auto { + margin-right: auto !important; + } + + .mb-lg-0 { + margin-bottom: 0 !important; + } + + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + + .mb-lg-3 { + margin-bottom: 1rem !important; + } + + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + + .mb-lg-5 { + margin-bottom: 3rem !important; + } + + .mb-lg-auto { + margin-bottom: auto !important; + } + + .ml-lg-0 { + margin-left: 0 !important; + } + + .ml-lg-1 { + margin-left: 0.25rem !important; + } + + .ml-lg-2 { + margin-left: 0.5rem !important; + } + + .ml-lg-3 { + margin-left: 1rem !important; + } + + .ml-lg-4 { + margin-left: 1.5rem !important; + } + + .ml-lg-5 { + margin-left: 3rem !important; + } + + .ml-lg-auto { + margin-left: auto !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.5rem !important; + } + + .p-lg-3 { + padding: 1rem !important; + } + + .p-lg-4 { + padding: 1.5rem !important; + } + + .p-lg-5 { + padding: 3rem !important; + } + + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-lg-0 { + padding-top: 0 !important; + } + + .pt-lg-1 { + padding-top: 0.25rem !important; + } + + .pt-lg-2 { + padding-top: 0.5rem !important; + } + + .pt-lg-3 { + padding-top: 1rem !important; + } + + .pt-lg-4 { + padding-top: 1.5rem !important; + } + + .pt-lg-5 { + padding-top: 3rem !important; + } + + .pr-lg-0 { + padding-right: 0 !important; + } + + .pr-lg-1 { + padding-right: 0.25rem !important; + } + + .pr-lg-2 { + padding-right: 0.5rem !important; + } + + .pr-lg-3 { + padding-right: 1rem !important; + } + + .pr-lg-4 { + padding-right: 1.5rem !important; + } + + .pr-lg-5 { + padding-right: 3rem !important; + } + + .pb-lg-0 { + padding-bottom: 0 !important; + } + + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + + .pb-lg-3 { + padding-bottom: 1rem !important; + } + + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + + .pb-lg-5 { + padding-bottom: 3rem !important; + } + + .pl-lg-0 { + padding-left: 0 !important; + } + + .pl-lg-1 { + padding-left: 0.25rem !important; + } + + .pl-lg-2 { + padding-left: 0.5rem !important; + } + + .pl-lg-3 { + padding-left: 1rem !important; + } + + .pl-lg-4 { + padding-left: 1.5rem !important; + } + + .pl-lg-5 { + padding-left: 3rem !important; + } + + .text-lg-left { + text-align: left !important; + } + + .text-lg-right { + text-align: right !important; + } + + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + + .float-xl-right { + float: right !important; + } + + .float-xl-none { + float: none !important; + } + + .d-xl-none { + display: none !important; + } + + .d-xl-inline { + display: inline !important; + } + + .d-xl-inline-block { + display: inline-block !important; + } + + .d-xl-block { + display: block !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; + } + + .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: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.5rem !important; + } + + .m-xl-3 { + margin: 1rem !important; + } + + .m-xl-4 { + margin: 1.5rem !important; + } + + .m-xl-5 { + margin: 3rem !important; + } + + .m-xl-auto { + margin: auto !important; + } + + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-xl-0 { + margin-top: 0 !important; + } + + .mt-xl-1 { + margin-top: 0.25rem !important; + } + + .mt-xl-2 { + margin-top: 0.5rem !important; + } + + .mt-xl-3 { + margin-top: 1rem !important; + } + + .mt-xl-4 { + margin-top: 1.5rem !important; + } + + .mt-xl-5 { + margin-top: 3rem !important; + } + + .mt-xl-auto { + margin-top: auto !important; + } + + .mr-xl-0 { + margin-right: 0 !important; + } + + .mr-xl-1 { + margin-right: 0.25rem !important; + } + + .mr-xl-2 { + margin-right: 0.5rem !important; + } + + .mr-xl-3 { + margin-right: 1rem !important; + } + + .mr-xl-4 { + margin-right: 1.5rem !important; + } + + .mr-xl-5 { + margin-right: 3rem !important; + } + + .mr-xl-auto { + margin-right: auto !important; + } + + .mb-xl-0 { + margin-bottom: 0 !important; + } + + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + + .mb-xl-3 { + margin-bottom: 1rem !important; + } + + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + + .mb-xl-5 { + margin-bottom: 3rem !important; + } + + .mb-xl-auto { + margin-bottom: auto !important; + } + + .ml-xl-0 { + margin-left: 0 !important; + } + + .ml-xl-1 { + margin-left: 0.25rem !important; + } + + .ml-xl-2 { + margin-left: 0.5rem !important; + } + + .ml-xl-3 { + margin-left: 1rem !important; + } + + .ml-xl-4 { + margin-left: 1.5rem !important; + } + + .ml-xl-5 { + margin-left: 3rem !important; + } + + .ml-xl-auto { + margin-left: auto !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.5rem !important; + } + + .p-xl-3 { + padding: 1rem !important; + } + + .p-xl-4 { + padding: 1.5rem !important; + } + + .p-xl-5 { + padding: 3rem !important; + } + + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-xl-0 { + padding-top: 0 !important; + } + + .pt-xl-1 { + padding-top: 0.25rem !important; + } + + .pt-xl-2 { + padding-top: 0.5rem !important; + } + + .pt-xl-3 { + padding-top: 1rem !important; + } + + .pt-xl-4 { + padding-top: 1.5rem !important; + } + + .pt-xl-5 { + padding-top: 3rem !important; + } + + .pr-xl-0 { + padding-right: 0 !important; + } + + .pr-xl-1 { + padding-right: 0.25rem !important; + } + + .pr-xl-2 { + padding-right: 0.5rem !important; + } + + .pr-xl-3 { + padding-right: 1rem !important; + } + + .pr-xl-4 { + padding-right: 1.5rem !important; + } + + .pr-xl-5 { + padding-right: 3rem !important; + } + + .pb-xl-0 { + padding-bottom: 0 !important; + } + + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + + .pb-xl-3 { + padding-bottom: 1rem !important; + } + + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + + .pb-xl-5 { + padding-bottom: 3rem !important; + } + + .pl-xl-0 { + padding-left: 0 !important; + } + + .pl-xl-1 { + padding-left: 0.25rem !important; + } + + .pl-xl-2 { + padding-left: 0.5rem !important; + } + + .pl-xl-3 { + padding-left: 1rem !important; + } + + .pl-xl-4 { + padding-left: 1.5rem !important; + } + + .pl-xl-5 { + padding-left: 3rem !important; + } + + .text-xl-left { + text-align: left !important; + } + + .text-xl-right { + text-align: right !important; + } + + .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1400px) { + .float-xxl-left { + float: left !important; + } + + .float-xxl-right { + float: right !important; + } + + .float-xxl-none { + float: none !important; + } + + .d-xxl-none { + display: none !important; + } + + .d-xxl-inline { + display: inline !important; + } + + .d-xxl-inline-block { + display: inline-block !important; + } + + .d-xxl-block { + display: block !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; + } + + .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: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.5rem !important; + } + + .m-xxl-3 { + margin: 1rem !important; + } + + .m-xxl-4 { + margin: 1.5rem !important; + } + + .m-xxl-5 { + margin: 3rem !important; + } + + .m-xxl-auto { + margin: auto !important; + } + + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-xxl-0 { + margin-top: 0 !important; + } + + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + + .mt-xxl-3 { + margin-top: 1rem !important; + } + + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + + .mt-xxl-5 { + margin-top: 3rem !important; + } + + .mt-xxl-auto { + margin-top: auto !important; + } + + .mr-xxl-0 { + margin-right: 0 !important; + } + + .mr-xxl-1 { + margin-right: 0.25rem !important; + } + + .mr-xxl-2 { + margin-right: 0.5rem !important; + } + + .mr-xxl-3 { + margin-right: 1rem !important; + } + + .mr-xxl-4 { + margin-right: 1.5rem !important; + } + + .mr-xxl-5 { + margin-right: 3rem !important; + } + + .mr-xxl-auto { + margin-right: auto !important; + } + + .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + + .mb-xxl-auto { + margin-bottom: auto !important; + } + + .ml-xxl-0 { + margin-left: 0 !important; + } + + .ml-xxl-1 { + margin-left: 0.25rem !important; + } + + .ml-xxl-2 { + margin-left: 0.5rem !important; + } + + .ml-xxl-3 { + margin-left: 1rem !important; + } + + .ml-xxl-4 { + margin-left: 1.5rem !important; + } + + .ml-xxl-5 { + margin-left: 3rem !important; + } + + .ml-xxl-auto { + margin-left: auto !important; + } + + .p-xxl-0 { + padding: 0 !important; + } + + .p-xxl-1 { + padding: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.5rem !important; + } + + .p-xxl-3 { + padding: 1rem !important; + } + + .p-xxl-4 { + padding: 1.5rem !important; + } + + .p-xxl-5 { + padding: 3rem !important; + } + + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-xxl-0 { + padding-top: 0 !important; + } + + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + + .pt-xxl-3 { + padding-top: 1rem !important; + } + + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + + .pt-xxl-5 { + padding-top: 3rem !important; + } + + .pr-xxl-0 { + padding-right: 0 !important; + } + + .pr-xxl-1 { + padding-right: 0.25rem !important; + } + + .pr-xxl-2 { + padding-right: 0.5rem !important; + } + + .pr-xxl-3 { + padding-right: 1rem !important; + } + + .pr-xxl-4 { + padding-right: 1.5rem !important; + } + + .pr-xxl-5 { + padding-right: 3rem !important; + } + + .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + + .pl-xxl-0 { + padding-left: 0 !important; + } + + .pl-xxl-1 { + padding-left: 0.25rem !important; + } + + .pl-xxl-2 { + padding-left: 0.5rem !important; + } + + .pl-xxl-3 { + padding-left: 1rem !important; + } + + .pl-xxl-4 { + padding-left: 1.5rem !important; + } + + .pl-xxl-5 { + padding-left: 3rem !important; + } + + .text-xxl-left { + text-align: left !important; + } + + .text-xxl-right { + text-align: right !important; + } + + .text-xxl-center { + text-align: center !important; + } +} +@media print { + .d-print-none { + display: none !important; + } + + .d-print-inline { + display: inline !important; + } + + .d-print-inline-block { + display: inline-block !important; + } + + .d-print-block { + display: block !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; + } +} \ No newline at end of file diff --git a/static/assets/assets/fonts/Raleway-Regular.ttf b/static/assets/assets/fonts/Raleway-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e570a2d5c39b2841b5753350a3822bd2b685e771 Binary files /dev/null and b/static/assets/assets/fonts/Raleway-Regular.ttf differ diff --git a/static/assets/assets/images/avatar/avatar-1.png b/static/assets/assets/images/avatar/avatar-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ddecd116ff2e26f6cf16e803e1d5dc1b69953894 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-1.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-1.png b/static/assets/assets/images/avatar/avatar-s-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6b7067ae3fddd62e41e36f05a2a55fb7cfce7054 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-1.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-10.png b/static/assets/assets/images/avatar/avatar-s-10.png new file mode 100644 index 0000000000000000000000000000000000000000..bfff09189ca8d1de8a9757a8f0426f82bec9ae91 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-10.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-11.png b/static/assets/assets/images/avatar/avatar-s-11.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e62fb36ffefa042cd13725a71f18bf0240decd Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-11.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-12.png b/static/assets/assets/images/avatar/avatar-s-12.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c23c295bde0c941192c8d5290b6bd46b8c3e35 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-12.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-13.png b/static/assets/assets/images/avatar/avatar-s-13.png new file mode 100644 index 0000000000000000000000000000000000000000..af4a67ba22b2800359de4c6737726bf8fe5a1f90 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-13.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-14.png b/static/assets/assets/images/avatar/avatar-s-14.png new file mode 100644 index 0000000000000000000000000000000000000000..3e7f657e83720eec02b75b75e148636cc864900d Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-14.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-15.png b/static/assets/assets/images/avatar/avatar-s-15.png new file mode 100644 index 0000000000000000000000000000000000000000..ae640f52046e99183cdfc8bfc6193886ae32a0f9 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-15.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-16.png b/static/assets/assets/images/avatar/avatar-s-16.png new file mode 100644 index 0000000000000000000000000000000000000000..2defcd8a2a2388c1958aea5b93848037d8b6c269 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-16.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-17.png b/static/assets/assets/images/avatar/avatar-s-17.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0a5c447d94b4a0773e9456590ffa27688e569d Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-17.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-18.png b/static/assets/assets/images/avatar/avatar-s-18.png new file mode 100644 index 0000000000000000000000000000000000000000..12a7f6d37afaf3ea2f21d816f7e7cdb5a0b02f16 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-18.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-19.png b/static/assets/assets/images/avatar/avatar-s-19.png new file mode 100644 index 0000000000000000000000000000000000000000..ddecd116ff2e26f6cf16e803e1d5dc1b69953894 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-19.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-2.png b/static/assets/assets/images/avatar/avatar-s-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b44124d46430ba7e2a4ffe57fb4a410d834ff58e Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-2.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-20.png b/static/assets/assets/images/avatar/avatar-s-20.png new file mode 100644 index 0000000000000000000000000000000000000000..16dc0eb088e1048a8532aa147261e717068aafd8 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-20.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-21.png b/static/assets/assets/images/avatar/avatar-s-21.png new file mode 100644 index 0000000000000000000000000000000000000000..ebbc8c2df586c0fee7b90f5fa01c9dafd459a86a Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-21.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-22.png b/static/assets/assets/images/avatar/avatar-s-22.png new file mode 100644 index 0000000000000000000000000000000000000000..f482911bf1f2fcf76702ffd76ccc4c9ad27db5cc Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-22.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-23.png b/static/assets/assets/images/avatar/avatar-s-23.png new file mode 100644 index 0000000000000000000000000000000000000000..3f02f517a83d22c3b3a80732343af929015686a4 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-23.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-24.png b/static/assets/assets/images/avatar/avatar-s-24.png new file mode 100644 index 0000000000000000000000000000000000000000..6a68d85c55f1c2c3351543377bd46c31b848e63b Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-24.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-25.png b/static/assets/assets/images/avatar/avatar-s-25.png new file mode 100644 index 0000000000000000000000000000000000000000..4488a14c48fcbe1bdc294d11debd22b65926ecba Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-25.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-26.png b/static/assets/assets/images/avatar/avatar-s-26.png new file mode 100644 index 0000000000000000000000000000000000000000..4488a14c48fcbe1bdc294d11debd22b65926ecba Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-26.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-3.png b/static/assets/assets/images/avatar/avatar-s-3.png new file mode 100644 index 0000000000000000000000000000000000000000..72c69692a4439dfec4f8958ddd2518859cec004e Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-3.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-4.png b/static/assets/assets/images/avatar/avatar-s-4.png new file mode 100644 index 0000000000000000000000000000000000000000..4e41453a01cdd62052874a0f67d95d519ace4fb6 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-4.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-5.png b/static/assets/assets/images/avatar/avatar-s-5.png new file mode 100644 index 0000000000000000000000000000000000000000..3e5f6338571ef1d1ec9849cfa620a9a26f0d4e7c Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-5.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-6.png b/static/assets/assets/images/avatar/avatar-s-6.png new file mode 100644 index 0000000000000000000000000000000000000000..5435a8e6a77bbfc9f365def482ae2d5470d16658 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-6.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-7.png b/static/assets/assets/images/avatar/avatar-s-7.png new file mode 100644 index 0000000000000000000000000000000000000000..82405ddc0b10fdbdc1f63b7bcc76775c69ddadc6 Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-7.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-8.png b/static/assets/assets/images/avatar/avatar-s-8.png new file mode 100644 index 0000000000000000000000000000000000000000..30a56beefd8b3bf4632e64d5a553ac118ea7534e Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-8.png differ diff --git a/static/assets/assets/images/avatar/avatar-s-9.png b/static/assets/assets/images/avatar/avatar-s-9.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd5890fead424237106e3e8339be7e1a9fea3aa Binary files /dev/null and b/static/assets/assets/images/avatar/avatar-s-9.png differ diff --git a/static/assets/assets/images/background/auth.jpg b/static/assets/assets/images/background/auth.jpg new file mode 100644 index 0000000000000000000000000000000000000000..569be2b27c19b2ebe3c0c95300e8d31274569852 Binary files /dev/null and b/static/assets/assets/images/background/auth.jpg differ diff --git a/static/assets/assets/images/favicon (2).png b/static/assets/assets/images/favicon (2).png new file mode 100644 index 0000000000000000000000000000000000000000..72d142335a3674265d7fd489f6b6dcfa6e0aae28 Binary files /dev/null and b/static/assets/assets/images/favicon (2).png differ diff --git a/static/assets/assets/images/favicon.png b/static/assets/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..0de2bf5c03ae71a186a3b29e2fee5ed03984fccc Binary files /dev/null and b/static/assets/assets/images/favicon.png differ diff --git a/static/assets/assets/images/logo.png b/static/assets/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6c703e86248f9d33068e1549e3623d46cab087f1 Binary files /dev/null and b/static/assets/assets/images/logo.png differ diff --git a/static/assets/assets/images/logo.svg b/static/assets/assets/images/logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..b8e40f5c90a0f03d343d48ad29ecc5b6eb18b80a --- /dev/null +++ b/static/assets/assets/images/logo.svg @@ -0,0 +1 @@ +logo \ No newline at end of file diff --git a/static/assets/assets/images/samples/aerial-panoramic-image-of-sansonvale-lake-X6TCENW.jpg b/static/assets/assets/images/samples/aerial-panoramic-image-of-sansonvale-lake-X6TCENW.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e6f342f7d8225217aeedc80d5223f0b481bd4a2e Binary files /dev/null and b/static/assets/assets/images/samples/aerial-panoramic-image-of-sansonvale-lake-X6TCENW.jpg differ diff --git a/static/assets/assets/images/samples/amazing-animal-beautiful-beautifull.jpg b/static/assets/assets/images/samples/amazing-animal-beautiful-beautifull.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac0e61caded96fe067f3d94f7d9c77fcff5ffa6e Binary files /dev/null and b/static/assets/assets/images/samples/amazing-animal-beautiful-beautifull.jpg differ diff --git a/static/assets/assets/images/samples/back-view-of-focused-programmer-writing-code-and-PDVAFDS.jpg b/static/assets/assets/images/samples/back-view-of-focused-programmer-writing-code-and-PDVAFDS.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f78a12b69bc5ca6bbbcff88fb6f91014b2c387a5 Binary files /dev/null and b/static/assets/assets/images/samples/back-view-of-focused-programmer-writing-code-and-PDVAFDS.jpg differ diff --git a/static/assets/assets/images/samples/bright-milky-way-over-snow-covered-mountains-and-UEAQBXN.jpg b/static/assets/assets/images/samples/bright-milky-way-over-snow-covered-mountains-and-UEAQBXN.jpg new file mode 100644 index 0000000000000000000000000000000000000000..80d04c862a9ab89aa3f6b7ba62ba5f56a10657da Binary files /dev/null and b/static/assets/assets/images/samples/bright-milky-way-over-snow-covered-mountains-and-UEAQBXN.jpg differ diff --git a/static/assets/assets/images/samples/happy-children-building-robots-at-robotics-school-PW3NYKH.jpg b/static/assets/assets/images/samples/happy-children-building-robots-at-robotics-school-PW3NYKH.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5adf606969c5b6ecca16f7a313543f09d79d5e9e Binary files /dev/null and b/static/assets/assets/images/samples/happy-children-building-robots-at-robotics-school-PW3NYKH.jpg differ diff --git a/static/assets/assets/images/samples/inspirational-aerial-landscape-autumn-forest-and-FU2LKHA.jpg b/static/assets/assets/images/samples/inspirational-aerial-landscape-autumn-forest-and-FU2LKHA.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d976576870072f69cd9089e71dc134b214199b30 Binary files /dev/null and b/static/assets/assets/images/samples/inspirational-aerial-landscape-autumn-forest-and-FU2LKHA.jpg differ diff --git a/static/assets/assets/images/samples/introspective-programmer-examining-code-5YKU7FP.jpg b/static/assets/assets/images/samples/introspective-programmer-examining-code-5YKU7FP.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3fdcf1ba636290dbd7f5df39fe62471b880de0dc Binary files /dev/null and b/static/assets/assets/images/samples/introspective-programmer-examining-code-5YKU7FP.jpg differ diff --git a/static/assets/assets/images/samples/learning-new-codes-8VKXG4E.jpg b/static/assets/assets/images/samples/learning-new-codes-8VKXG4E.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e3c122d19e3ff565278aae46faf35fca17c45792 Binary files /dev/null and b/static/assets/assets/images/samples/learning-new-codes-8VKXG4E.jpg differ diff --git a/static/assets/assets/images/samples/lovatnet-lake-beautiful-nature-norway-PUTLQJ4.jpg b/static/assets/assets/images/samples/lovatnet-lake-beautiful-nature-norway-PUTLQJ4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6f457d69d61c7ddfba5991cdec4be0413900f7e6 Binary files /dev/null and b/static/assets/assets/images/samples/lovatnet-lake-beautiful-nature-norway-PUTLQJ4.jpg differ diff --git a/static/assets/assets/images/samples/man-coding-in-office-LHVW23S.jpg b/static/assets/assets/images/samples/man-coding-in-office-LHVW23S.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19d96d15ee93e6defdb3a09d5ffabc03bd8e95bb Binary files /dev/null and b/static/assets/assets/images/samples/man-coding-in-office-LHVW23S.jpg differ diff --git a/static/assets/assets/images/samples/modern-teaching-concept-P7BTJU7.jpg b/static/assets/assets/images/samples/modern-teaching-concept-P7BTJU7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6a8abcac671675dd96d4c5ce1af02579859eb270 Binary files /dev/null and b/static/assets/assets/images/samples/modern-teaching-concept-P7BTJU7.jpg differ diff --git a/static/assets/assets/images/samples/moody-autumn-day-in-the-dolomites-forest-and-MBFNHV2.jpg b/static/assets/assets/images/samples/moody-autumn-day-in-the-dolomites-forest-and-MBFNHV2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ddf39fa098f90208c2079ace96cca72732e12a59 Binary files /dev/null and b/static/assets/assets/images/samples/moody-autumn-day-in-the-dolomites-forest-and-MBFNHV2.jpg differ diff --git a/static/assets/assets/images/samples/pexels-photo-443446.jpeg b/static/assets/assets/images/samples/pexels-photo-443446.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..02366bfdb4ddda7ff05421cd2cb6703b3ab7fc04 Binary files /dev/null and b/static/assets/assets/images/samples/pexels-photo-443446.jpeg differ diff --git a/static/assets/assets/images/samples/portrait-of-a-cheerful-couple-shopping-online-LQH69WU.jpg b/static/assets/assets/images/samples/portrait-of-a-cheerful-couple-shopping-online-LQH69WU.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1785cb2b120c5789ac40138a17276e7526d956da Binary files /dev/null and b/static/assets/assets/images/samples/portrait-of-a-cheerful-couple-shopping-online-LQH69WU.jpg differ diff --git a/static/assets/assets/images/samples/programmer-working-on-code-X596MJF.jpg b/static/assets/assets/images/samples/programmer-working-on-code-X596MJF.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d43dcd0bccce963492ec21103685a9776b22a8a0 Binary files /dev/null and b/static/assets/assets/images/samples/programmer-working-on-code-X596MJF.jpg differ diff --git a/static/assets/assets/images/samples/programmers-coding-computer-app-7CFXNL5.jpg b/static/assets/assets/images/samples/programmers-coding-computer-app-7CFXNL5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bff7f5141d2ce214d7042c738438be4e49e501ea Binary files /dev/null and b/static/assets/assets/images/samples/programmers-coding-computer-app-7CFXNL5.jpg differ diff --git a/static/assets/assets/images/samples/road-over-dutch-dike-PLN5XJR.jpg b/static/assets/assets/images/samples/road-over-dutch-dike-PLN5XJR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcd063e4d7456d425e5bce3c026ba8a5bc016bf3 Binary files /dev/null and b/static/assets/assets/images/samples/road-over-dutch-dike-PLN5XJR.jpg differ diff --git a/static/assets/assets/images/samples/tuscany-foggy-hills-panorama-view-crop-Z9RFQ5X.jpg b/static/assets/assets/images/samples/tuscany-foggy-hills-panorama-view-crop-Z9RFQ5X.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c04ba3ed64b457ca97febb6eac27e793a9a13f3 Binary files /dev/null and b/static/assets/assets/images/samples/tuscany-foggy-hills-panorama-view-crop-Z9RFQ5X.jpg differ diff --git a/static/assets/assets/images/samples/white-pelicans-pelecanus-onocrotalus-P4TFZ6E.jpg b/static/assets/assets/images/samples/white-pelicans-pelecanus-onocrotalus-P4TFZ6E.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f07b8e93b59e9d3dc10fce0be0a94e7b5c665f0 Binary files /dev/null and b/static/assets/assets/images/samples/white-pelicans-pelecanus-onocrotalus-P4TFZ6E.jpg differ diff --git a/static/assets/assets/images/screenshot.png b/static/assets/assets/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4c24165a9c75d6a8f588a7f717d5d3ee64277068 Binary files /dev/null and b/static/assets/assets/images/screenshot.png differ diff --git a/static/assets/assets/js/app.html b/static/assets/assets/js/app.html new file mode 100644 index 0000000000000000000000000000000000000000..69e29cff10de954ff778d19a8a893c335e90b0ac --- /dev/null +++ b/static/assets/assets/js/app.html @@ -0,0 +1 @@ +require('bootstrap'); diff --git a/static/assets/assets/js/app.js b/static/assets/assets/js/app.js new file mode 100644 index 0000000000000000000000000000000000000000..04a649aa59b3bd99590b8562999dabacbd56d693 --- /dev/null +++ b/static/assets/assets/js/app.js @@ -0,0 +1,7860 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/"; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 0); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/bootstrap/dist/js/bootstrap.esm.js": +/*!*********************************************************!*\ + !*** ./node_modules/bootstrap/dist/js/bootstrap.esm.js ***! + \*********************************************************/ +/*! exports provided: Alert, Button, Carousel, Collapse, Dropdown, Modal, Popover, ScrollSpy, Tab, Toast, Tooltip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Alert", function() { return Alert; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return Button; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return Carousel; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Collapse", function() { return Collapse; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return Dropdown; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return Modal; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return Popover; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollSpy", function() { return ScrollSpy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Tab", function() { return Tab; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Toast", function() { return Toast; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return Tooltip; }); +/* harmony import */ var popper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js"); +/*! + * Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-alpha1): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +var MAX_UID = 1000000; +var MILLISECONDS_MULTIPLIER = 1000; +var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + +var toType = function toType(obj) { + if (obj === null || obj === undefined) { + return "" + obj; + } + + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); +}; +/** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + +var getUID = function getUID(prefix) { + do { + prefix += Math.floor(Math.random() * MAX_UID); + } while (document.getElementById(prefix)); + + return prefix; +}; + +var getSelector = function getSelector(element) { + var selector = element.getAttribute('data-target'); + + if (!selector || selector === '#') { + var hrefAttr = element.getAttribute('href'); + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + } + + return selector; +}; + +var getSelectorFromElement = function getSelectorFromElement(element) { + var selector = getSelector(element); + + if (selector) { + return document.querySelector(selector) ? selector : null; + } + + return null; +}; + +var getElementFromSelector = function getElementFromSelector(element) { + var selector = getSelector(element); + return selector ? document.querySelector(selector) : null; +}; + +var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { + if (!element) { + return 0; + } // Get transition-duration of the element + + + var _window$getComputedSt = window.getComputedStyle(element), + transitionDuration = _window$getComputedSt.transitionDuration, + transitionDelay = _window$getComputedSt.transitionDelay; + + var floatTransitionDuration = parseFloat(transitionDuration); + var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } // If multiple durations are defined, take the first + + + transitionDuration = transitionDuration.split(',')[0]; + transitionDelay = transitionDelay.split(',')[0]; + return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; +}; + +var triggerTransitionEnd = function triggerTransitionEnd(element) { + element.dispatchEvent(new Event(TRANSITION_END)); +}; + +var isElement = function isElement(obj) { + return (obj[0] || obj).nodeType; +}; + +var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { + var called = false; + var durationPadding = 5; + var emulatedDuration = duration + durationPadding; + + function listener() { + called = true; + element.removeEventListener(TRANSITION_END, listener); + } + + element.addEventListener(TRANSITION_END, listener); + setTimeout(function () { + if (!called) { + triggerTransitionEnd(element); + } + }, emulatedDuration); +}; + +var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { + Object.keys(configTypes).forEach(function (property) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = value && isElement(value) ? 'element' : toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + } + }); +}; + +var isVisible = function isVisible(element) { + if (!element) { + return false; + } + + if (element.style && element.parentNode && element.parentNode.style) { + var elementStyle = getComputedStyle(element); + var parentNodeStyle = getComputedStyle(element.parentNode); + return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden'; + } + + return false; +}; + +var findShadowRoot = function findShadowRoot(element) { + if (!document.documentElement.attachShadow) { + return null; + } // Can find the shadow root otherwise it'll return the document + + + if (typeof element.getRootNode === 'function') { + var root = element.getRootNode(); + return root instanceof ShadowRoot ? root : null; + } + + if (element instanceof ShadowRoot) { + return element; + } // when we don't find a shadow root + + + if (!element.parentNode) { + return null; + } + + return findShadowRoot(element.parentNode); +}; + +var noop = function noop() { + return function () {}; +}; + +var reflow = function reflow(element) { + return element.offsetHeight; +}; + +var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-no-jquery')) { + return jQuery; + } + + return null; +}; + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-alpha1): dom/data.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ +var mapData = function () { + var storeData = {}; + var id = 1; + return { + set: function set(element, key, data) { + if (typeof element.key === 'undefined') { + element.key = { + key: key, + id: id + }; + id++; + } + + storeData[element.key.id] = data; + }, + get: function get(element, key) { + if (!element || typeof element.key === 'undefined') { + return null; + } + + var keyProperties = element.key; + + if (keyProperties.key === key) { + return storeData[keyProperties.id]; + } + + return null; + }, + delete: function _delete(element, key) { + if (typeof element.key === 'undefined') { + return; + } + + var keyProperties = element.key; + + if (keyProperties.key === key) { + delete storeData[keyProperties.id]; + delete element.key; + } + } + }; +}(); + +var Data = { + setData: function setData(instance, key, data) { + mapData.set(instance, key, data); + }, + getData: function getData(instance, key) { + return mapData.get(instance, key); + }, + removeData: function removeData(instance, key) { + mapData.delete(instance, key); + } +}; + +/* istanbul ignore file */ +var find = Element.prototype.querySelectorAll; +var findOne = Element.prototype.querySelector; // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached + +var defaultPreventedPreservedOnDispatch = function () { + var e = new CustomEvent('Bootstrap', { + cancelable: true + }); + var element = document.createElement('div'); + element.addEventListener('Bootstrap', function () { + return null; + }); + e.preventDefault(); + element.dispatchEvent(e); + return e.defaultPrevented; +}(); + +var scopeSelectorRegex = /:scope\b/; + +var supportScopeQuery = function () { + var element = document.createElement('div'); + + try { + element.querySelectorAll(':scope *'); + } catch (_) { + return false; + } + + return true; +}(); + +if (!supportScopeQuery) { + find = function find(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelectorAll(selector); + } + + var hasId = Boolean(this.id); + + if (!hasId) { + this.id = getUID('scope'); + } + + var nodeList = null; + + try { + selector = selector.replace(scopeSelectorRegex, "#" + this.id); + nodeList = this.querySelectorAll(selector); + } finally { + if (!hasId) { + this.removeAttribute('id'); + } + } + + return nodeList; + }; + + findOne = function findOne(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelector(selector); + } + + var matches = find.call(this, selector); + + if (typeof matches[0] !== 'undefined') { + return matches[0]; + } + + return null; + }; +} + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-alpha1): dom/event-handler.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var $ = getjQuery(); +var namespaceRegex = /[^.]*(?=\..*)\.|.*/; +var stripNameRegex = /\..*/; +var stripUidRegex = /::\d+$/; +var eventRegistry = {}; // Events storage + +var uidEvent = 1; +var customEvents = { + mouseenter: 'mouseover', + mouseleave: 'mouseout' +}; +var nativeEvents = ['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']; +/** + * ------------------------------------------------------------------------ + * Private methods + * ------------------------------------------------------------------------ + */ + +function getUidEvent(element, uid) { + return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++; +} + +function getEvent(element) { + var uid = getUidEvent(element); + element.uidEvent = uid; + eventRegistry[uid] = eventRegistry[uid] || {}; + return eventRegistry[uid]; +} + +function bootstrapHandler(element, fn) { + return function handler(event) { + if (handler.oneOff) { + EventHandler.off(element, event.type, fn); + } + + return fn.apply(element, [event]); + }; +} + +function bootstrapDelegationHandler(element, selector, fn) { + return function handler(event) { + var domElements = element.querySelectorAll(selector); + + for (var target = event.target; target && target !== this; target = target.parentNode) { + for (var i = domElements.length; i--;) { + if (domElements[i] === target) { + if (handler.oneOff) { + EventHandler.off(element, event.type, fn); + } + + return fn.apply(target, [event]); + } + } + } // To please ESLint + + + return null; + }; +} + +function findHandler(events, handler, delegationSelector) { + if (delegationSelector === void 0) { + delegationSelector = null; + } + + var uidEventList = Object.keys(events); + + for (var i = 0, len = uidEventList.length; i < len; i++) { + var event = events[uidEventList[i]]; + + if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { + return event; + } + } + + return null; +} + +function normalizeParams(originalTypeEvent, handler, delegationFn) { + var delegation = typeof handler === 'string'; + var originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') + + var typeEvent = originalTypeEvent.replace(stripNameRegex, ''); + var custom = customEvents[typeEvent]; + + if (custom) { + typeEvent = custom; + } + + var isNative = nativeEvents.indexOf(typeEvent) > -1; + + if (!isNative) { + typeEvent = originalTypeEvent; + } + + return [delegation, originalHandler, typeEvent]; +} + +function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) { + if (typeof originalTypeEvent !== 'string' || !element) { + return; + } + + if (!handler) { + handler = delegationFn; + delegationFn = null; + } + + var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn), + delegation = _normalizeParams[0], + originalHandler = _normalizeParams[1], + typeEvent = _normalizeParams[2]; + + var events = getEvent(element); + var handlers = events[typeEvent] || (events[typeEvent] = {}); + var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); + + if (previousFn) { + previousFn.oneOff = previousFn.oneOff && oneOff; + return; + } + + var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); + var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); + fn.delegationSelector = delegation ? handler : null; + fn.originalHandler = originalHandler; + fn.oneOff = oneOff; + fn.uidEvent = uid; + handlers[uid] = fn; + element.addEventListener(typeEvent, fn, delegation); +} + +function removeHandler(element, events, typeEvent, handler, delegationSelector) { + var fn = findHandler(events[typeEvent], handler, delegationSelector); + + if (!fn) { + return; + } + + element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); + delete events[typeEvent][fn.uidEvent]; +} + +function removeNamespacedHandlers(element, events, typeEvent, namespace) { + var storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(function (handlerKey) { + if (handlerKey.indexOf(namespace) > -1) { + var event = storeElementEvent[handlerKey]; + removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); + } + }); +} + +var EventHandler = { + on: function on(element, event, handler, delegationFn) { + addHandler(element, event, handler, delegationFn, false); + }, + one: function one(element, event, handler, delegationFn) { + addHandler(element, event, handler, delegationFn, true); + }, + off: function off(element, originalTypeEvent, handler, delegationFn) { + if (typeof originalTypeEvent !== 'string' || !element) { + return; + } + + var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn), + delegation = _normalizeParams2[0], + originalHandler = _normalizeParams2[1], + typeEvent = _normalizeParams2[2]; + + var inNamespace = typeEvent !== originalTypeEvent; + var events = getEvent(element); + var isNamespace = originalTypeEvent.charAt(0) === '.'; + + if (typeof originalHandler !== 'undefined') { + // Simplest case: handler is passed, remove that listener ONLY. + if (!events || !events[typeEvent]) { + return; + } + + removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null); + return; + } + + if (isNamespace) { + Object.keys(events).forEach(function (elementEvent) { + removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); + }); + } + + var storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(function (keyHandlers) { + var handlerKey = keyHandlers.replace(stripUidRegex, ''); + + if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) { + var event = storeElementEvent[keyHandlers]; + removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); + } + }); + }, + trigger: function trigger(element, event, args) { + if (typeof event !== 'string' || !element) { + return null; + } + + var typeEvent = event.replace(stripNameRegex, ''); + var inNamespace = event !== typeEvent; + var isNative = nativeEvents.indexOf(typeEvent) > -1; + var jQueryEvent; + var bubbles = true; + var nativeDispatch = true; + var defaultPrevented = false; + var evt = null; + + if (inNamespace && $) { + jQueryEvent = $.Event(event, args); + $(element).trigger(jQueryEvent); + bubbles = !jQueryEvent.isPropagationStopped(); + nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); + defaultPrevented = jQueryEvent.isDefaultPrevented(); + } + + if (isNative) { + evt = document.createEvent('HTMLEvents'); + evt.initEvent(typeEvent, bubbles, true); + } else { + evt = new CustomEvent(event, { + bubbles: bubbles, + cancelable: true + }); + } // merge custom informations in our event + + + if (typeof args !== 'undefined') { + Object.keys(args).forEach(function (key) { + Object.defineProperty(evt, key, { + get: function get() { + return args[key]; + } + }); + }); + } + + if (defaultPrevented) { + evt.preventDefault(); + + if (!defaultPreventedPreservedOnDispatch) { + Object.defineProperty(evt, 'defaultPrevented', { + get: function get() { + return true; + } + }); + } + } + + if (nativeDispatch) { + element.dispatchEvent(evt); + } + + if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') { + jQueryEvent.preventDefault(); + } + + return evt; + } +}; + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME = 'alert'; +var VERSION = '5.0.0-alpha1'; +var DATA_KEY = 'bs.alert'; +var EVENT_KEY = "." + DATA_KEY; +var DATA_API_KEY = '.data-api'; +var SELECTOR_DISMISS = '[data-dismiss="alert"]'; +var EVENT_CLOSE = "close" + EVENT_KEY; +var EVENT_CLOSED = "closed" + EVENT_KEY; +var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; +var CLASSNAME_ALERT = 'alert'; +var CLASSNAME_FADE = 'fade'; +var CLASSNAME_SHOW = 'show'; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var Alert = /*#__PURE__*/function () { + function Alert(element) { + this._element = element; + + if (this._element) { + Data.setData(element, DATA_KEY, this); + } + } // Getters + + + var _proto = Alert.prototype; + + // Public + _proto.close = function close(element) { + var rootElement = this._element; + + if (element) { + rootElement = this._getRootElement(element); + } + + var customEvent = this._triggerCloseEvent(rootElement); + + if (customEvent === null || customEvent.defaultPrevented) { + return; + } + + this._removeElement(rootElement); + }; + + _proto.dispose = function dispose() { + Data.removeData(this._element, DATA_KEY); + this._element = null; + } // Private + ; + + _proto._getRootElement = function _getRootElement(element) { + return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT); + }; + + _proto._triggerCloseEvent = function _triggerCloseEvent(element) { + return EventHandler.trigger(element, EVENT_CLOSE); + }; + + _proto._removeElement = function _removeElement(element) { + var _this = this; + + element.classList.remove(CLASSNAME_SHOW); + + if (!element.classList.contains(CLASSNAME_FADE)) { + this._destroyElement(element); + + return; + } + + var transitionDuration = getTransitionDurationFromElement(element); + EventHandler.one(element, TRANSITION_END, function () { + return _this._destroyElement(element); + }); + emulateTransitionEnd(element, transitionDuration); + }; + + _proto._destroyElement = function _destroyElement(element) { + if (element.parentNode) { + element.parentNode.removeChild(element); + } + + EventHandler.trigger(element, EVENT_CLOSED); + } // Static + ; + + Alert.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + var data = Data.getData(this, DATA_KEY); + + if (!data) { + data = new Alert(this); + } + + if (config === 'close') { + data[config](this); + } + }); + }; + + Alert.handleDismiss = function handleDismiss(alertInstance) { + return function (event) { + if (event) { + event.preventDefault(); + } + + alertInstance.close(this); + }; + }; + + Alert.getInstance = function getInstance(element) { + return Data.getData(element, DATA_KEY); + }; + + _createClass(Alert, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }]); + + return Alert; +}(); +/** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + +EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); +var $$1 = getjQuery(); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .alert to jQuery only if jQuery is present + */ + +/* istanbul ignore if */ + +if ($$1) { + var JQUERY_NO_CONFLICT = $$1.fn[NAME]; + $$1.fn[NAME] = Alert.jQueryInterface; + $$1.fn[NAME].Constructor = Alert; + + $$1.fn[NAME].noConflict = function () { + $$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Alert.jQueryInterface; + }; +} + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME$1 = 'button'; +var VERSION$1 = '5.0.0-alpha1'; +var DATA_KEY$1 = 'bs.button'; +var EVENT_KEY$1 = "." + DATA_KEY$1; +var DATA_API_KEY$1 = '.data-api'; +var CLASS_NAME_ACTIVE = 'active'; +var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]'; +var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var Button = /*#__PURE__*/function () { + function Button(element) { + this._element = element; + Data.setData(element, DATA_KEY$1, this); + } // Getters + + + var _proto = Button.prototype; + + // Public + _proto.toggle = function toggle() { + // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method + this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE)); + }; + + _proto.dispose = function dispose() { + Data.removeData(this._element, DATA_KEY$1); + this._element = null; + } // Static + ; + + Button.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + var data = Data.getData(this, DATA_KEY$1); + + if (!data) { + data = new Button(this); + } + + if (config === 'toggle') { + data[config](); + } + }); + }; + + Button.getInstance = function getInstance(element) { + return Data.getData(element, DATA_KEY$1); + }; + + _createClass(Button, null, [{ + key: "VERSION", + get: function get() { + return VERSION$1; + } + }]); + + return Button; +}(); +/** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + +EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE, function (event) { + event.preventDefault(); + var button = event.target.closest(SELECTOR_DATA_TOGGLE); + var data = Data.getData(button, DATA_KEY$1); + + if (!data) { + data = new Button(button); + } + + data.toggle(); +}); +var $$2 = getjQuery(); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .button to jQuery only if jQuery is present + */ + +/* istanbul ignore if */ + +if ($$2) { + var JQUERY_NO_CONFLICT$1 = $$2.fn[NAME$1]; + $$2.fn[NAME$1] = Button.jQueryInterface; + $$2.fn[NAME$1].Constructor = Button; + + $$2.fn[NAME$1].noConflict = function () { + $$2.fn[NAME$1] = JQUERY_NO_CONFLICT$1; + return Button.jQueryInterface; + }; +} + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-alpha1): dom/manipulator.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +function normalizeData(val) { + if (val === 'true') { + return true; + } + + if (val === 'false') { + return false; + } + + if (val === Number(val).toString()) { + return Number(val); + } + + if (val === '' || val === 'null') { + return null; + } + + return val; +} + +function normalizeDataKey(key) { + return key.replace(/[A-Z]/g, function (chr) { + return "-" + chr.toLowerCase(); + }); +} + +var Manipulator = { + setDataAttribute: function setDataAttribute(element, key, value) { + element.setAttribute("data-" + normalizeDataKey(key), value); + }, + removeDataAttribute: function removeDataAttribute(element, key) { + element.removeAttribute("data-" + normalizeDataKey(key)); + }, + getDataAttributes: function getDataAttributes(element) { + if (!element) { + return {}; + } + + var attributes = _objectSpread2({}, element.dataset); + + Object.keys(attributes).forEach(function (key) { + attributes[key] = normalizeData(attributes[key]); + }); + return attributes; + }, + getDataAttribute: function getDataAttribute(element, key) { + return normalizeData(element.getAttribute("data-" + normalizeDataKey(key))); + }, + offset: function offset(element) { + var rect = element.getBoundingClientRect(); + return { + top: rect.top + document.body.scrollTop, + left: rect.left + document.body.scrollLeft + }; + }, + position: function position(element) { + return { + top: element.offsetTop, + left: element.offsetLeft + }; + }, + toggleClass: function toggleClass(element, className) { + if (!element) { + return; + } + + if (element.classList.contains(className)) { + element.classList.remove(className); + } else { + element.classList.add(className); + } + } +}; + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-alpha1): dom/selector-engine.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NODE_TEXT = 3; +var SelectorEngine = { + matches: function matches(element, selector) { + return element.matches(selector); + }, + find: function find$1(selector, element) { + var _ref; + + if (element === void 0) { + element = document.documentElement; + } + + return (_ref = []).concat.apply(_ref, find.call(element, selector)); + }, + findOne: function findOne$1(selector, element) { + if (element === void 0) { + element = document.documentElement; + } + + return findOne.call(element, selector); + }, + children: function children(element, selector) { + var _ref2; + + var children = (_ref2 = []).concat.apply(_ref2, element.children); + + return children.filter(function (child) { + return child.matches(selector); + }); + }, + parents: function parents(element, selector) { + var parents = []; + var ancestor = element.parentNode; + + while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { + if (this.matches(ancestor, selector)) { + parents.push(ancestor); + } + + ancestor = ancestor.parentNode; + } + + return parents; + }, + prev: function prev(element, selector) { + var previous = element.previousElementSibling; + + while (previous) { + if (previous.matches(selector)) { + return [previous]; + } + + previous = previous.previousElementSibling; + } + + return []; + }, + next: function next(element, selector) { + var next = element.nextElementSibling; + + while (next) { + if (this.matches(next, selector)) { + return [next]; + } + + next = next.nextElementSibling; + } + + return []; + } +}; + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME$2 = 'carousel'; +var VERSION$2 = '5.0.0-alpha1'; +var DATA_KEY$2 = 'bs.carousel'; +var EVENT_KEY$2 = "." + DATA_KEY$2; +var DATA_API_KEY$2 = '.data-api'; +var ARROW_LEFT_KEY = 'ArrowLeft'; +var ARROW_RIGHT_KEY = 'ArrowRight'; +var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch + +var SWIPE_THRESHOLD = 40; +var Default = { + interval: 5000, + keyboard: true, + slide: false, + pause: 'hover', + wrap: true, + touch: true +}; +var DefaultType = { + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean', + touch: 'boolean' +}; +var DIRECTION_NEXT = 'next'; +var DIRECTION_PREV = 'prev'; +var DIRECTION_LEFT = 'left'; +var DIRECTION_RIGHT = 'right'; +var EVENT_SLIDE = "slide" + EVENT_KEY$2; +var EVENT_SLID = "slid" + EVENT_KEY$2; +var EVENT_KEYDOWN = "keydown" + EVENT_KEY$2; +var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$2; +var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$2; +var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$2; +var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$2; +var EVENT_TOUCHEND = "touchend" + EVENT_KEY$2; +var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$2; +var EVENT_POINTERUP = "pointerup" + EVENT_KEY$2; +var EVENT_DRAG_START = "dragstart" + EVENT_KEY$2; +var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$2 + DATA_API_KEY$2; +var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$2 + DATA_API_KEY$2; +var CLASS_NAME_CAROUSEL = 'carousel'; +var CLASS_NAME_ACTIVE$1 = 'active'; +var CLASS_NAME_SLIDE = 'slide'; +var CLASS_NAME_RIGHT = 'carousel-item-right'; +var CLASS_NAME_LEFT = 'carousel-item-left'; +var CLASS_NAME_NEXT = 'carousel-item-next'; +var CLASS_NAME_PREV = 'carousel-item-prev'; +var CLASS_NAME_POINTER_EVENT = 'pointer-event'; +var SELECTOR_ACTIVE = '.active'; +var SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; +var SELECTOR_ITEM = '.carousel-item'; +var SELECTOR_ITEM_IMG = '.carousel-item img'; +var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; +var SELECTOR_INDICATORS = '.carousel-indicators'; +var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'; +var SELECTOR_DATA_RIDE = '[data-ride="carousel"]'; +var PointerType = { + TOUCH: 'touch', + PEN: 'pen' +}; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var Carousel = /*#__PURE__*/function () { + function Carousel(element, config) { + this._items = null; + this._interval = null; + this._activeElement = null; + this._isPaused = false; + this._isSliding = false; + this.touchTimeout = null; + this.touchStartX = 0; + this.touchDeltaX = 0; + this._config = this._getConfig(config); + this._element = element; + this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); + this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + this._pointerEvent = Boolean(window.PointerEvent); + + this._addEventListeners(); + + Data.setData(element, DATA_KEY$2, this); + } // Getters + + + var _proto = Carousel.prototype; + + // Public + _proto.next = function next() { + if (!this._isSliding) { + this._slide(DIRECTION_NEXT); + } + }; + + _proto.nextWhenVisible = function nextWhenVisible() { + // Don't call next when the page isn't visible + // or the carousel or its parent isn't visible + if (!document.hidden && isVisible(this._element)) { + this.next(); + } + }; + + _proto.prev = function prev() { + if (!this._isSliding) { + this._slide(DIRECTION_PREV); + } + }; + + _proto.pause = function pause(event) { + if (!event) { + this._isPaused = true; + } + + if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) { + triggerTransitionEnd(this._element); + this.cycle(true); + } + + clearInterval(this._interval); + this._interval = null; + }; + + _proto.cycle = function cycle(event) { + if (!event) { + this._isPaused = false; + } + + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + + if (this._config && this._config.interval && !this._isPaused) { + this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); + } + }; + + _proto.to = function to(index) { + var _this = this; + + this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + + var activeIndex = this._getItemIndex(this._activeElement); + + if (index > this._items.length - 1 || index < 0) { + return; + } + + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, function () { + return _this.to(index); + }); + return; + } + + if (activeIndex === index) { + this.pause(); + this.cycle(); + return; + } + + var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV; + + this._slide(direction, this._items[index]); + }; + + _proto.dispose = function dispose() { + EventHandler.off(this._element, EVENT_KEY$2); + Data.removeData(this._element, DATA_KEY$2); + this._items = null; + this._config = null; + this._element = null; + this._interval = null; + this._isPaused = null; + this._isSliding = null; + this._activeElement = null; + this._indicatorsElement = null; + } // Private + ; + + _proto._getConfig = function _getConfig(config) { + config = _objectSpread2(_objectSpread2({}, Default), config); + typeCheckConfig(NAME$2, config, DefaultType); + return config; + }; + + _proto._handleSwipe = function _handleSwipe() { + var absDeltax = Math.abs(this.touchDeltaX); + + if (absDeltax <= SWIPE_THRESHOLD) { + return; + } + + var direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; // swipe left + + if (direction > 0) { + this.prev(); + } // swipe right + + + if (direction < 0) { + this.next(); + } + }; + + _proto._addEventListeners = function _addEventListeners() { + var _this2 = this; + + if (this._config.keyboard) { + EventHandler.on(this._element, EVENT_KEYDOWN, function (event) { + return _this2._keydown(event); + }); + } + + if (this._config.pause === 'hover') { + EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) { + return _this2.pause(event); + }); + EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) { + return _this2.cycle(event); + }); + } + + if (this._config.touch && this._touchSupported) { + this._addTouchEventListeners(); + } + }; + + _proto._addTouchEventListeners = function _addTouchEventListeners() { + var _this3 = this; + + var start = function start(event) { + if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { + _this3.touchStartX = event.clientX; + } else if (!_this3._pointerEvent) { + _this3.touchStartX = event.touches[0].clientX; + } + }; + + var move = function move(event) { + // ensure swiping with one touch and not pinching + if (event.touches && event.touches.length > 1) { + _this3.touchDeltaX = 0; + } else { + _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX; + } + }; + + var end = function end(event) { + if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { + _this3.touchDeltaX = event.clientX - _this3.touchStartX; + } + + _this3._handleSwipe(); + + if (_this3._config.pause === 'hover') { + // If it's a touch-enabled device, mouseenter/leave are fired as + // part of the mouse compatibility events on first tap - the carousel + // would stop cycling until user tapped out of it; + // here, we listen for touchend, explicitly pause the carousel + // (as if it's the second time we tap on it, mouseenter compat event + // is NOT fired) and after a timeout (to allow for mouse compatibility + // events to fire) we explicitly restart cycling + _this3.pause(); + + if (_this3.touchTimeout) { + clearTimeout(_this3.touchTimeout); + } + + _this3.touchTimeout = setTimeout(function (event) { + return _this3.cycle(event); + }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval); + } + }; + + SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) { + EventHandler.on(itemImg, EVENT_DRAG_START, function (e) { + return e.preventDefault(); + }); + }); + + if (this._pointerEvent) { + EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) { + return start(event); + }); + EventHandler.on(this._element, EVENT_POINTERUP, function (event) { + return end(event); + }); + + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) { + return start(event); + }); + EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) { + return move(event); + }); + EventHandler.on(this._element, EVENT_TOUCHEND, function (event) { + return end(event); + }); + } + }; + + _proto._keydown = function _keydown(event) { + if (/input|textarea/i.test(event.target.tagName)) { + return; + } + + switch (event.key) { + case ARROW_LEFT_KEY: + event.preventDefault(); + this.prev(); + break; + + case ARROW_RIGHT_KEY: + event.preventDefault(); + this.next(); + break; + } + }; + + _proto._getItemIndex = function _getItemIndex(element) { + this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : []; + return this._items.indexOf(element); + }; + + _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === DIRECTION_NEXT; + var isPrevDirection = direction === DIRECTION_PREV; + + var activeIndex = this._getItemIndex(activeElement); + + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; + + if (isGoingToWrap && !this._config.wrap) { + return activeElement; + } + + var delta = direction === DIRECTION_PREV ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; + return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; + }; + + _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { + var targetIndex = this._getItemIndex(relatedTarget); + + var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); + + return EventHandler.trigger(this._element, EVENT_SLIDE, { + relatedTarget: relatedTarget, + direction: eventDirectionName, + from: fromIndex, + to: targetIndex + }); + }; + + _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + var indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement); + + for (var i = 0; i < indicators.length; i++) { + indicators[i].classList.remove(CLASS_NAME_ACTIVE$1); + } + + var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + + if (nextIndicator) { + nextIndicator.classList.add(CLASS_NAME_ACTIVE$1); + } + } + }; + + _proto._slide = function _slide(direction, element) { + var _this4 = this; + + var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + + var activeElementIndex = this._getItemIndex(activeElement); + + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + + var nextElementIndex = this._getItemIndex(nextElement); + + var isCycling = Boolean(this._interval); + var directionalClassName; + var orderClassName; + var eventDirectionName; + + if (direction === DIRECTION_NEXT) { + directionalClassName = CLASS_NAME_LEFT; + orderClassName = CLASS_NAME_NEXT; + eventDirectionName = DIRECTION_LEFT; + } else { + directionalClassName = CLASS_NAME_RIGHT; + orderClassName = CLASS_NAME_PREV; + eventDirectionName = DIRECTION_RIGHT; + } + + if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$1)) { + this._isSliding = false; + return; + } + + var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + + if (slideEvent.defaultPrevented) { + return; + } + + if (!activeElement || !nextElement) { + // Some weirdness is happening, so we bail + return; + } + + this._isSliding = true; + + if (isCycling) { + this.pause(); + } + + this._setActiveIndicatorElement(nextElement); + + if (this._element.classList.contains(CLASS_NAME_SLIDE)) { + nextElement.classList.add(orderClassName); + reflow(nextElement); + activeElement.classList.add(directionalClassName); + nextElement.classList.add(directionalClassName); + var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); + + if (nextElementInterval) { + this._config.defaultInterval = this._config.defaultInterval || this._config.interval; + this._config.interval = nextElementInterval; + } else { + this._config.interval = this._config.defaultInterval || this._config.interval; + } + + var transitionDuration = getTransitionDurationFromElement(activeElement); + EventHandler.one(activeElement, TRANSITION_END, function () { + nextElement.classList.remove(directionalClassName, orderClassName); + nextElement.classList.add(CLASS_NAME_ACTIVE$1); + activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName); + _this4._isSliding = false; + setTimeout(function () { + EventHandler.trigger(_this4._element, EVENT_SLID, { + relatedTarget: nextElement, + direction: eventDirectionName, + from: activeElementIndex, + to: nextElementIndex + }); + }, 0); + }); + emulateTransitionEnd(activeElement, transitionDuration); + } else { + activeElement.classList.remove(CLASS_NAME_ACTIVE$1); + nextElement.classList.add(CLASS_NAME_ACTIVE$1); + this._isSliding = false; + EventHandler.trigger(this._element, EVENT_SLID, { + relatedTarget: nextElement, + direction: eventDirectionName, + from: activeElementIndex, + to: nextElementIndex + }); + } + + if (isCycling) { + this.cycle(); + } + } // Static + ; + + Carousel.carouselInterface = function carouselInterface(element, config) { + var data = Data.getData(element, DATA_KEY$2); + + var _config = _objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element)); + + if (typeof config === 'object') { + _config = _objectSpread2(_objectSpread2({}, _config), config); + } + + var action = typeof config === 'string' ? config : _config.slide; + + if (!data) { + data = new Carousel(element, _config); + } + + if (typeof config === 'number') { + data.to(config); + } else if (typeof action === 'string') { + if (typeof data[action] === 'undefined') { + throw new TypeError("No method named \"" + action + "\""); + } + + data[action](); + } else if (_config.interval && _config.ride) { + data.pause(); + data.cycle(); + } + }; + + Carousel.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + Carousel.carouselInterface(this, config); + }); + }; + + Carousel.dataApiClickHandler = function dataApiClickHandler(event) { + var target = getElementFromSelector(this); + + if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { + return; + } + + var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this)); + + var slideIndex = this.getAttribute('data-slide-to'); + + if (slideIndex) { + config.interval = false; + } + + Carousel.carouselInterface(target, config); + + if (slideIndex) { + Data.getData(target, DATA_KEY$2).to(slideIndex); + } + + event.preventDefault(); + }; + + Carousel.getInstance = function getInstance(element) { + return Data.getData(element, DATA_KEY$2); + }; + + _createClass(Carousel, null, [{ + key: "VERSION", + get: function get() { + return VERSION$2; + } + }, { + key: "Default", + get: function get() { + return Default; + } + }]); + + return Carousel; +}(); +/** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + +EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); +EventHandler.on(window, EVENT_LOAD_DATA_API, function () { + var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); + + for (var i = 0, len = carousels.length; i < len; i++) { + Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2)); + } +}); +var $$3 = getjQuery(); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .carousel to jQuery only if jQuery is present + */ + +/* istanbul ignore if */ + +if ($$3) { + var JQUERY_NO_CONFLICT$2 = $$3.fn[NAME$2]; + $$3.fn[NAME$2] = Carousel.jQueryInterface; + $$3.fn[NAME$2].Constructor = Carousel; + + $$3.fn[NAME$2].noConflict = function () { + $$3.fn[NAME$2] = JQUERY_NO_CONFLICT$2; + return Carousel.jQueryInterface; + }; +} + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME$3 = 'collapse'; +var VERSION$3 = '5.0.0-alpha1'; +var DATA_KEY$3 = 'bs.collapse'; +var EVENT_KEY$3 = "." + DATA_KEY$3; +var DATA_API_KEY$3 = '.data-api'; +var Default$1 = { + toggle: true, + parent: '' +}; +var DefaultType$1 = { + toggle: 'boolean', + parent: '(string|element)' +}; +var EVENT_SHOW = "show" + EVENT_KEY$3; +var EVENT_SHOWN = "shown" + EVENT_KEY$3; +var EVENT_HIDE = "hide" + EVENT_KEY$3; +var EVENT_HIDDEN = "hidden" + EVENT_KEY$3; +var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$3 + DATA_API_KEY$3; +var CLASS_NAME_SHOW = 'show'; +var CLASS_NAME_COLLAPSE = 'collapse'; +var CLASS_NAME_COLLAPSING = 'collapsing'; +var CLASS_NAME_COLLAPSED = 'collapsed'; +var WIDTH = 'width'; +var HEIGHT = 'height'; +var SELECTOR_ACTIVES = '.show, .collapsing'; +var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="collapse"]'; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var Collapse = /*#__PURE__*/function () { + function Collapse(element, config) { + this._isTransitioning = false; + this._element = element; + this._config = this._getConfig(config); + this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-target=\"#" + element.id + "\"]")); + var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1); + + for (var i = 0, len = toggleList.length; i < len; i++) { + var elem = toggleList[i]; + var selector = getSelectorFromElement(elem); + var filterElement = SelectorEngine.find(selector).filter(function (foundElem) { + return foundElem === element; + }); + + if (selector !== null && filterElement.length) { + this._selector = selector; + + this._triggerArray.push(elem); + } + } + + this._parent = this._config.parent ? this._getParent() : null; + + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); + } + + if (this._config.toggle) { + this.toggle(); + } + + Data.setData(element, DATA_KEY$3, this); + } // Getters + + + var _proto = Collapse.prototype; + + // Public + _proto.toggle = function toggle() { + if (this._element.classList.contains(CLASS_NAME_SHOW)) { + this.hide(); + } else { + this.show(); + } + }; + + _proto.show = function show() { + var _this = this; + + if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { + return; + } + + var actives; + var activesData; + + if (this._parent) { + actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) { + if (typeof _this._config.parent === 'string') { + return elem.getAttribute('data-parent') === _this._config.parent; + } + + return elem.classList.contains(CLASS_NAME_COLLAPSE); + }); + + if (actives.length === 0) { + actives = null; + } + } + + var container = SelectorEngine.findOne(this._selector); + + if (actives) { + var tempActiveData = actives.filter(function (elem) { + return container !== elem; + }); + activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY$3) : null; + + if (activesData && activesData._isTransitioning) { + return; + } + } + + var startEvent = EventHandler.trigger(this._element, EVENT_SHOW); + + if (startEvent.defaultPrevented) { + return; + } + + if (actives) { + actives.forEach(function (elemActive) { + if (container !== elemActive) { + Collapse.collapseInterface(elemActive, 'hide'); + } + + if (!activesData) { + Data.setData(elemActive, DATA_KEY$3, null); + } + }); + } + + var dimension = this._getDimension(); + + this._element.classList.remove(CLASS_NAME_COLLAPSE); + + this._element.classList.add(CLASS_NAME_COLLAPSING); + + this._element.style[dimension] = 0; + + if (this._triggerArray.length) { + this._triggerArray.forEach(function (element) { + element.classList.remove(CLASS_NAME_COLLAPSED); + element.setAttribute('aria-expanded', true); + }); + } + + this.setTransitioning(true); + + var complete = function complete() { + _this._element.classList.remove(CLASS_NAME_COLLAPSING); + + _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + + _this._element.style[dimension] = ''; + + _this.setTransitioning(false); + + EventHandler.trigger(_this._element, EVENT_SHOWN); + }; + + var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + var scrollSize = "scroll" + capitalizedDimension; + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, complete); + emulateTransitionEnd(this._element, transitionDuration); + this._element.style[dimension] = this._element[scrollSize] + "px"; + }; + + _proto.hide = function hide() { + var _this2 = this; + + if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { + return; + } + + var startEvent = EventHandler.trigger(this._element, EVENT_HIDE); + + if (startEvent.defaultPrevented) { + return; + } + + var dimension = this._getDimension(); + + this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; + reflow(this._element); + + this._element.classList.add(CLASS_NAME_COLLAPSING); + + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + + var triggerArrayLength = this._triggerArray.length; + + if (triggerArrayLength > 0) { + for (var i = 0; i < triggerArrayLength; i++) { + var trigger = this._triggerArray[i]; + var elem = getElementFromSelector(trigger); + + if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) { + trigger.classList.add(CLASS_NAME_COLLAPSED); + trigger.setAttribute('aria-expanded', false); + } + } + } + + this.setTransitioning(true); + + var complete = function complete() { + _this2.setTransitioning(false); + + _this2._element.classList.remove(CLASS_NAME_COLLAPSING); + + _this2._element.classList.add(CLASS_NAME_COLLAPSE); + + EventHandler.trigger(_this2._element, EVENT_HIDDEN); + }; + + this._element.style[dimension] = ''; + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, complete); + emulateTransitionEnd(this._element, transitionDuration); + }; + + _proto.setTransitioning = function setTransitioning(isTransitioning) { + this._isTransitioning = isTransitioning; + }; + + _proto.dispose = function dispose() { + Data.removeData(this._element, DATA_KEY$3); + this._config = null; + this._parent = null; + this._element = null; + this._triggerArray = null; + this._isTransitioning = null; + } // Private + ; + + _proto._getConfig = function _getConfig(config) { + config = _objectSpread2(_objectSpread2({}, Default$1), config); + config.toggle = Boolean(config.toggle); // Coerce string values + + typeCheckConfig(NAME$3, config, DefaultType$1); + return config; + }; + + _proto._getDimension = function _getDimension() { + var hasWidth = this._element.classList.contains(WIDTH); + + return hasWidth ? WIDTH : HEIGHT; + }; + + _proto._getParent = function _getParent() { + var _this3 = this; + + var parent = this._config.parent; + + if (isElement(parent)) { + // it's a jQuery object + if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') { + parent = parent[0]; + } + } else { + parent = SelectorEngine.findOne(parent); + } + + var selector = SELECTOR_DATA_TOGGLE$1 + "[data-parent=\"" + parent + "\"]"; + SelectorEngine.find(selector, parent).forEach(function (element) { + var selected = getElementFromSelector(element); + + _this3._addAriaAndCollapsedClass(selected, [element]); + }); + return parent; + }; + + _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { + if (element) { + var isOpen = element.classList.contains(CLASS_NAME_SHOW); + + if (triggerArray.length) { + triggerArray.forEach(function (elem) { + if (isOpen) { + elem.classList.remove(CLASS_NAME_COLLAPSED); + } else { + elem.classList.add(CLASS_NAME_COLLAPSED); + } + + elem.setAttribute('aria-expanded', isOpen); + }); + } + } + } // Static + ; + + Collapse.collapseInterface = function collapseInterface(element, config) { + var data = Data.getData(element, DATA_KEY$3); + + var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$1), Manipulator.getDataAttributes(element)), typeof config === 'object' && config ? config : {}); + + if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { + _config.toggle = false; + } + + if (!data) { + data = new Collapse(element, _config); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }; + + Collapse.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + Collapse.collapseInterface(this, config); + }); + }; + + Collapse.getInstance = function getInstance(element) { + return Data.getData(element, DATA_KEY$3); + }; + + _createClass(Collapse, null, [{ + key: "VERSION", + get: function get() { + return VERSION$3; + } + }, { + key: "Default", + get: function get() { + return Default$1; + } + }]); + + return Collapse; +}(); +/** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + +EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) { + // preventDefault only for elements (which change the URL) not inside the collapsible element + if (event.target.tagName === 'A') { + event.preventDefault(); + } + + var triggerData = Manipulator.getDataAttributes(this); + var selector = getSelectorFromElement(this); + var selectorElements = SelectorEngine.find(selector); + selectorElements.forEach(function (element) { + var data = Data.getData(element, DATA_KEY$3); + var config; + + if (data) { + // update parent attribute + if (data._parent === null && typeof triggerData.parent === 'string') { + data._config.parent = triggerData.parent; + data._parent = data._getParent(); + } + + config = 'toggle'; + } else { + config = triggerData; + } + + Collapse.collapseInterface(element, config); + }); +}); +var $$4 = getjQuery(); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .collapse to jQuery only if jQuery is present + */ + +/* istanbul ignore if */ + +if ($$4) { + var JQUERY_NO_CONFLICT$3 = $$4.fn[NAME$3]; + $$4.fn[NAME$3] = Collapse.jQueryInterface; + $$4.fn[NAME$3].Constructor = Collapse; + + $$4.fn[NAME$3].noConflict = function () { + $$4.fn[NAME$3] = JQUERY_NO_CONFLICT$3; + return Collapse.jQueryInterface; + }; +} + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME$4 = 'dropdown'; +var VERSION$4 = '5.0.0-alpha1'; +var DATA_KEY$4 = 'bs.dropdown'; +var EVENT_KEY$4 = "." + DATA_KEY$4; +var DATA_API_KEY$4 = '.data-api'; +var ESCAPE_KEY = 'Escape'; +var SPACE_KEY = 'Space'; +var TAB_KEY = 'Tab'; +var ARROW_UP_KEY = 'ArrowUp'; +var ARROW_DOWN_KEY = 'ArrowDown'; +var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button + +var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY); +var EVENT_HIDE$1 = "hide" + EVENT_KEY$4; +var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4; +var EVENT_SHOW$1 = "show" + EVENT_KEY$4; +var EVENT_SHOWN$1 = "shown" + EVENT_KEY$4; +var EVENT_CLICK = "click" + EVENT_KEY$4; +var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$4 + DATA_API_KEY$4; +var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$4 + DATA_API_KEY$4; +var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$4 + DATA_API_KEY$4; +var CLASS_NAME_DISABLED = 'disabled'; +var CLASS_NAME_SHOW$1 = 'show'; +var CLASS_NAME_DROPUP = 'dropup'; +var CLASS_NAME_DROPRIGHT = 'dropright'; +var CLASS_NAME_DROPLEFT = 'dropleft'; +var CLASS_NAME_MENURIGHT = 'dropdown-menu-right'; +var CLASS_NAME_NAVBAR = 'navbar'; +var CLASS_NAME_POSITION_STATIC = 'position-static'; +var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]'; +var SELECTOR_FORM_CHILD = '.dropdown form'; +var SELECTOR_MENU = '.dropdown-menu'; +var SELECTOR_NAVBAR_NAV = '.navbar-nav'; +var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; +var PLACEMENT_TOP = 'top-start'; +var PLACEMENT_TOPEND = 'top-end'; +var PLACEMENT_BOTTOM = 'bottom-start'; +var PLACEMENT_BOTTOMEND = 'bottom-end'; +var PLACEMENT_RIGHT = 'right-start'; +var PLACEMENT_LEFT = 'left-start'; +var Default$2 = { + offset: 0, + flip: true, + boundary: 'scrollParent', + reference: 'toggle', + display: 'dynamic', + popperConfig: null +}; +var DefaultType$2 = { + offset: '(number|string|function)', + flip: 'boolean', + boundary: '(string|element)', + reference: '(string|element)', + display: 'string', + popperConfig: '(null|object)' +}; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var Dropdown = /*#__PURE__*/function () { + function Dropdown(element, config) { + this._element = element; + this._popper = null; + this._config = this._getConfig(config); + this._menu = this._getMenuElement(); + this._inNavbar = this._detectNavbar(); + + this._addEventListeners(); + + Data.setData(element, DATA_KEY$4, this); + } // Getters + + + var _proto = Dropdown.prototype; + + // Public + _proto.toggle = function toggle() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) { + return; + } + + var isActive = this._element.classList.contains(CLASS_NAME_SHOW$1); + + Dropdown.clearMenus(); + + if (isActive) { + return; + } + + this.show(); + }; + + _proto.show = function show() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$1)) { + return; + } + + var parent = Dropdown.getParentFromElement(this._element); + var relatedTarget = { + relatedTarget: this._element + }; + var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, relatedTarget); + + if (showEvent.defaultPrevented) { + return; + } // Disable totally Popper.js for Dropdown in Navbar + + + if (!this._inNavbar) { + if (typeof popper_js__WEBPACK_IMPORTED_MODULE_0__["default"] === 'undefined') { + throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)'); + } + + var referenceElement = this._element; + + if (this._config.reference === 'parent') { + referenceElement = parent; + } else if (isElement(this._config.reference)) { + referenceElement = this._config.reference; // Check if it's jQuery element + + if (typeof this._config.reference.jquery !== 'undefined') { + referenceElement = this._config.reference[0]; + } + } // If boundary is not `scrollParent`, then set position to `static` + // to allow the menu to "escape" the scroll parent's boundaries + // https://github.com/twbs/bootstrap/issues/24251 + + + if (this._config.boundary !== 'scrollParent') { + parent.classList.add(CLASS_NAME_POSITION_STATIC); + } + + this._popper = new popper_js__WEBPACK_IMPORTED_MODULE_0__["default"](referenceElement, this._menu, this._getPopperConfig()); + } // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + + + if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) { + var _ref; + + (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) { + return EventHandler.on(elem, 'mouseover', null, noop()); + }); + } + + this._element.focus(); + + this._element.setAttribute('aria-expanded', true); + + Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW$1); + Manipulator.toggleClass(this._element, CLASS_NAME_SHOW$1); + EventHandler.trigger(parent, EVENT_SHOWN$1, relatedTarget); + }; + + _proto.hide = function hide() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$1)) { + return; + } + + var parent = Dropdown.getParentFromElement(this._element); + var relatedTarget = { + relatedTarget: this._element + }; + var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget); + + if (hideEvent.defaultPrevented) { + return; + } + + if (this._popper) { + this._popper.destroy(); + } + + Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW$1); + Manipulator.toggleClass(this._element, CLASS_NAME_SHOW$1); + EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); + }; + + _proto.dispose = function dispose() { + Data.removeData(this._element, DATA_KEY$4); + EventHandler.off(this._element, EVENT_KEY$4); + this._element = null; + this._menu = null; + + if (this._popper) { + this._popper.destroy(); + + this._popper = null; + } + }; + + _proto.update = function update() { + this._inNavbar = this._detectNavbar(); + + if (this._popper) { + this._popper.scheduleUpdate(); + } + } // Private + ; + + _proto._addEventListeners = function _addEventListeners() { + var _this = this; + + EventHandler.on(this._element, EVENT_CLICK, function (event) { + event.preventDefault(); + event.stopPropagation(); + + _this.toggle(); + }); + }; + + _proto._getConfig = function _getConfig(config) { + config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config); + typeCheckConfig(NAME$4, config, this.constructor.DefaultType); + return config; + }; + + _proto._getMenuElement = function _getMenuElement() { + return SelectorEngine.next(this._element, SELECTOR_MENU)[0]; + }; + + _proto._getPlacement = function _getPlacement() { + var parentDropdown = this._element.parentNode; + var placement = PLACEMENT_BOTTOM; // Handle dropup + + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { + placement = PLACEMENT_TOP; + + if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) { + placement = PLACEMENT_TOPEND; + } + } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) { + placement = PLACEMENT_RIGHT; + } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) { + placement = PLACEMENT_LEFT; + } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) { + placement = PLACEMENT_BOTTOMEND; + } + + return placement; + }; + + _proto._detectNavbar = function _detectNavbar() { + return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR)); + }; + + _proto._getOffset = function _getOffset() { + var _this2 = this; + + var offset = {}; + + if (typeof this._config.offset === 'function') { + offset.fn = function (data) { + data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {}); + return data; + }; + } else { + offset.offset = this._config.offset; + } + + return offset; + }; + + _proto._getPopperConfig = function _getPopperConfig() { + var popperConfig = { + placement: this._getPlacement(), + modifiers: { + offset: this._getOffset(), + flip: { + enabled: this._config.flip + }, + preventOverflow: { + boundariesElement: this._config.boundary + } + } + }; // Disable Popper.js if we have a static display + + if (this._config.display === 'static') { + popperConfig.modifiers.applyStyle = { + enabled: false + }; + } + + return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig); + } // Static + ; + + Dropdown.dropdownInterface = function dropdownInterface(element, config) { + var data = Data.getData(element, DATA_KEY$4); + + var _config = typeof config === 'object' ? config : null; + + if (!data) { + data = new Dropdown(element, _config); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }; + + Dropdown.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + Dropdown.dropdownInterface(this, config); + }); + }; + + Dropdown.clearMenus = function clearMenus(event) { + if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) { + return; + } + + var toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$2); + + for (var i = 0, len = toggles.length; i < len; i++) { + var parent = Dropdown.getParentFromElement(toggles[i]); + var context = Data.getData(toggles[i], DATA_KEY$4); + var relatedTarget = { + relatedTarget: toggles[i] + }; + + if (event && event.type === 'click') { + relatedTarget.clickEvent = event; + } + + if (!context) { + continue; + } + + var dropdownMenu = context._menu; + + if (!toggles[i].classList.contains(CLASS_NAME_SHOW$1)) { + continue; + } + + if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) { + continue; + } + + var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget); + + if (hideEvent.defaultPrevented) { + continue; + } // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + + + if ('ontouchstart' in document.documentElement) { + var _ref2; + + (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) { + return EventHandler.off(elem, 'mouseover', null, noop()); + }); + } + + toggles[i].setAttribute('aria-expanded', 'false'); + + if (context._popper) { + context._popper.destroy(); + } + + dropdownMenu.classList.remove(CLASS_NAME_SHOW$1); + toggles[i].classList.remove(CLASS_NAME_SHOW$1); + EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); + } + }; + + Dropdown.getParentFromElement = function getParentFromElement(element) { + return getElementFromSelector(element) || element.parentNode; + }; + + Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) { + // If not input/textarea: + // - And not a key in REGEXP_KEYDOWN => not a dropdown command + // If input/textarea: + // - If space key => not a dropdown command + // - If key is other than escape + // - If key is not up or down => not a dropdown command + // - If trigger inside the menu => not a dropdown command + if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { + return; + } + + event.preventDefault(); + event.stopPropagation(); + + if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) { + return; + } + + var parent = Dropdown.getParentFromElement(this); + var isActive = this.classList.contains(CLASS_NAME_SHOW$1); + + if (event.key === ESCAPE_KEY) { + var button = this.matches(SELECTOR_DATA_TOGGLE$2) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$2)[0]; + button.focus(); + Dropdown.clearMenus(); + return; + } + + if (!isActive || event.key === SPACE_KEY) { + Dropdown.clearMenus(); + return; + } + + var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible); + + if (!items.length) { + return; + } + + var index = items.indexOf(event.target); + + if (event.key === ARROW_UP_KEY && index > 0) { + // Up + index--; + } + + if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { + // Down + index++; + } // index is -1 if the first keydown is an ArrowUp + + + index = index === -1 ? 0 : index; + items[index].focus(); + }; + + Dropdown.getInstance = function getInstance(element) { + return Data.getData(element, DATA_KEY$4); + }; + + _createClass(Dropdown, null, [{ + key: "VERSION", + get: function get() { + return VERSION$4; + } + }, { + key: "Default", + get: function get() { + return Default$2; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType$2; + } + }]); + + return Dropdown; +}(); +/** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + +EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown.dataApiKeydownHandler); +EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); +EventHandler.on(document, EVENT_CLICK_DATA_API$4, Dropdown.clearMenus); +EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); +EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) { + event.preventDefault(); + event.stopPropagation(); + Dropdown.dropdownInterface(this, 'toggle'); +}); +EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) { + return e.stopPropagation(); +}); +var $$5 = getjQuery(); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .dropdown to jQuery only if jQuery is present + */ + +/* istanbul ignore if */ + +if ($$5) { + var JQUERY_NO_CONFLICT$4 = $$5.fn[NAME$4]; + $$5.fn[NAME$4] = Dropdown.jQueryInterface; + $$5.fn[NAME$4].Constructor = Dropdown; + + $$5.fn[NAME$4].noConflict = function () { + $$5.fn[NAME$4] = JQUERY_NO_CONFLICT$4; + return Dropdown.jQueryInterface; + }; +} + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME$5 = 'modal'; +var VERSION$5 = '5.0.0-alpha1'; +var DATA_KEY$5 = 'bs.modal'; +var EVENT_KEY$5 = "." + DATA_KEY$5; +var DATA_API_KEY$5 = '.data-api'; +var ESCAPE_KEY$1 = 'Escape'; +var Default$3 = { + backdrop: true, + keyboard: true, + focus: true, + show: true +}; +var DefaultType$3 = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + focus: 'boolean', + show: 'boolean' +}; +var EVENT_HIDE$2 = "hide" + EVENT_KEY$5; +var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5; +var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5; +var EVENT_SHOW$2 = "show" + EVENT_KEY$5; +var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5; +var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5; +var EVENT_RESIZE = "resize" + EVENT_KEY$5; +var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY$5; +var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5; +var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5; +var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5; +var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5; +var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; +var CLASS_NAME_BACKDROP = 'modal-backdrop'; +var CLASS_NAME_OPEN = 'modal-open'; +var CLASS_NAME_FADE = 'fade'; +var CLASS_NAME_SHOW$2 = 'show'; +var CLASS_NAME_STATIC = 'modal-static'; +var SELECTOR_DIALOG = '.modal-dialog'; +var SELECTOR_MODAL_BODY = '.modal-body'; +var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="modal"]'; +var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]'; +var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; +var SELECTOR_STICKY_CONTENT = '.sticky-top'; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var Modal = /*#__PURE__*/function () { + function Modal(element, config) { + this._config = this._getConfig(config); + this._element = element; + this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element); + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._isTransitioning = false; + this._scrollbarWidth = 0; + Data.setData(element, DATA_KEY$5, this); + } // Getters + + + var _proto = Modal.prototype; + + // Public + _proto.toggle = function toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + }; + + _proto.show = function show(relatedTarget) { + var _this = this; + + if (this._isShown || this._isTransitioning) { + return; + } + + if (this._element.classList.contains(CLASS_NAME_FADE)) { + this._isTransitioning = true; + } + + var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { + relatedTarget: relatedTarget + }); + + if (this._isShown || showEvent.defaultPrevented) { + return; + } + + this._isShown = true; + + this._checkScrollbar(); + + this._setScrollbar(); + + this._adjustDialog(); + + this._setEscapeEvent(); + + this._setResizeEvent(); + + EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { + return _this.hide(event); + }); + EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () { + EventHandler.one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) { + if (event.target === _this._element) { + _this._ignoreBackdropClick = true; + } + }); + }); + + this._showBackdrop(function () { + return _this._showElement(relatedTarget); + }); + }; + + _proto.hide = function hide(event) { + var _this2 = this; + + if (event) { + event.preventDefault(); + } + + if (!this._isShown || this._isTransitioning) { + return; + } + + var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + + if (hideEvent.defaultPrevented) { + return; + } + + this._isShown = false; + + var transition = this._element.classList.contains(CLASS_NAME_FADE); + + if (transition) { + this._isTransitioning = true; + } + + this._setEscapeEvent(); + + this._setResizeEvent(); + + EventHandler.off(document, EVENT_FOCUSIN); + + this._element.classList.remove(CLASS_NAME_SHOW$2); + + EventHandler.off(this._element, EVENT_CLICK_DISMISS); + EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS); + + if (transition) { + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, function (event) { + return _this2._hideModal(event); + }); + emulateTransitionEnd(this._element, transitionDuration); + } else { + this._hideModal(); + } + }; + + _proto.dispose = function dispose() { + [window, this._element, this._dialog].forEach(function (htmlElement) { + return EventHandler.off(htmlElement, EVENT_KEY$5); + }); + /** + * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` + * Do not move `document` in `htmlElements` array + * It will remove `EVENT_CLICK_DATA_API` event that should remain + */ + + EventHandler.off(document, EVENT_FOCUSIN); + Data.removeData(this._element, DATA_KEY$5); + this._config = null; + this._element = null; + this._dialog = null; + this._backdrop = null; + this._isShown = null; + this._isBodyOverflowing = null; + this._ignoreBackdropClick = null; + this._isTransitioning = null; + this._scrollbarWidth = null; + }; + + _proto.handleUpdate = function handleUpdate() { + this._adjustDialog(); + } // Private + ; + + _proto._getConfig = function _getConfig(config) { + config = _objectSpread2(_objectSpread2({}, Default$3), config); + typeCheckConfig(NAME$5, config, DefaultType$3); + return config; + }; + + _proto._showElement = function _showElement(relatedTarget) { + var _this3 = this; + + var transition = this._element.classList.contains(CLASS_NAME_FADE); + + var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); + + if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + // Don't move modal's DOM position + document.body.appendChild(this._element); + } + + this._element.style.display = 'block'; + + this._element.removeAttribute('aria-hidden'); + + this._element.setAttribute('aria-modal', true); + + this._element.setAttribute('role', 'dialog'); + + this._element.scrollTop = 0; + + if (modalBody) { + modalBody.scrollTop = 0; + } + + if (transition) { + reflow(this._element); + } + + this._element.classList.add(CLASS_NAME_SHOW$2); + + if (this._config.focus) { + this._enforceFocus(); + } + + var transitionComplete = function transitionComplete() { + if (_this3._config.focus) { + _this3._element.focus(); + } + + _this3._isTransitioning = false; + EventHandler.trigger(_this3._element, EVENT_SHOWN$2, { + relatedTarget: relatedTarget + }); + }; + + if (transition) { + var transitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler.one(this._dialog, TRANSITION_END, transitionComplete); + emulateTransitionEnd(this._dialog, transitionDuration); + } else { + transitionComplete(); + } + }; + + _proto._enforceFocus = function _enforceFocus() { + var _this4 = this; + + EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop + + EventHandler.on(document, EVENT_FOCUSIN, function (event) { + if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) { + _this4._element.focus(); + } + }); + }; + + _proto._setEscapeEvent = function _setEscapeEvent() { + var _this5 = this; + + if (this._isShown) { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) { + if (_this5._config.keyboard && event.key === ESCAPE_KEY$1) { + event.preventDefault(); + + _this5.hide(); + } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY$1) { + _this5._triggerBackdropTransition(); + } + }); + } else { + EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS); + } + }; + + _proto._setResizeEvent = function _setResizeEvent() { + var _this6 = this; + + if (this._isShown) { + EventHandler.on(window, EVENT_RESIZE, function () { + return _this6._adjustDialog(); + }); + } else { + EventHandler.off(window, EVENT_RESIZE); + } + }; + + _proto._hideModal = function _hideModal() { + var _this7 = this; + + this._element.style.display = 'none'; + + this._element.setAttribute('aria-hidden', true); + + this._element.removeAttribute('aria-modal'); + + this._element.removeAttribute('role'); + + this._isTransitioning = false; + + this._showBackdrop(function () { + document.body.classList.remove(CLASS_NAME_OPEN); + + _this7._resetAdjustments(); + + _this7._resetScrollbar(); + + EventHandler.trigger(_this7._element, EVENT_HIDDEN$2); + }); + }; + + _proto._removeBackdrop = function _removeBackdrop() { + this._backdrop.parentNode.removeChild(this._backdrop); + + this._backdrop = null; + }; + + _proto._showBackdrop = function _showBackdrop(callback) { + var _this8 = this; + + var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ''; + + if (this._isShown && this._config.backdrop) { + this._backdrop = document.createElement('div'); + this._backdrop.className = CLASS_NAME_BACKDROP; + + if (animate) { + this._backdrop.classList.add(animate); + } + + document.body.appendChild(this._backdrop); + EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) { + if (_this8._ignoreBackdropClick) { + _this8._ignoreBackdropClick = false; + return; + } + + if (event.target !== event.currentTarget) { + return; + } + + _this8._triggerBackdropTransition(); + }); + + if (animate) { + reflow(this._backdrop); + } + + this._backdrop.classList.add(CLASS_NAME_SHOW$2); + + if (!animate) { + callback(); + return; + } + + var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler.one(this._backdrop, TRANSITION_END, callback); + emulateTransitionEnd(this._backdrop, backdropTransitionDuration); + } else if (!this._isShown && this._backdrop) { + this._backdrop.classList.remove(CLASS_NAME_SHOW$2); + + var callbackRemove = function callbackRemove() { + _this8._removeBackdrop(); + + callback(); + }; + + if (this._element.classList.contains(CLASS_NAME_FADE)) { + var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + + EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove); + emulateTransitionEnd(this._backdrop, _backdropTransitionDuration); + } else { + callbackRemove(); + } + } else { + callback(); + } + }; + + _proto._triggerBackdropTransition = function _triggerBackdropTransition() { + var _this9 = this; + + if (this._config.backdrop === 'static') { + var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + + if (hideEvent.defaultPrevented) { + return; + } + + this._element.classList.add(CLASS_NAME_STATIC); + + var modalTransitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, function () { + _this9._element.classList.remove(CLASS_NAME_STATIC); + }); + emulateTransitionEnd(this._element, modalTransitionDuration); + + this._element.focus(); + } else { + this.hide(); + } + } // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // ---------------------------------------------------------------------- + ; + + _proto._adjustDialog = function _adjustDialog() { + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing) { + this._element.style.paddingLeft = this._scrollbarWidth + "px"; + } + + if (this._isBodyOverflowing && !isModalOverflowing) { + this._element.style.paddingRight = this._scrollbarWidth + "px"; + } + }; + + _proto._resetAdjustments = function _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + }; + + _proto._checkScrollbar = function _checkScrollbar() { + var rect = document.body.getBoundingClientRect(); + this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth; + this._scrollbarWidth = this._getScrollbarWidth(); + }; + + _proto._setScrollbar = function _setScrollbar() { + var _this10 = this; + + if (this._isBodyOverflowing) { + // Note: DOMNode.style.paddingRight returns the actual value or '' if not set + // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set + // Adjust fixed content padding + SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) { + var actualPadding = element.style.paddingRight; + var calculatedPadding = window.getComputedStyle(element)['padding-right']; + Manipulator.setDataAttribute(element, 'padding-right', actualPadding); + element.style.paddingRight = parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px"; + }); // Adjust sticky content margin + + SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) { + var actualMargin = element.style.marginRight; + var calculatedMargin = window.getComputedStyle(element)['margin-right']; + Manipulator.setDataAttribute(element, 'margin-right', actualMargin); + element.style.marginRight = parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"; + }); // Adjust body padding + + var actualPadding = document.body.style.paddingRight; + var calculatedPadding = window.getComputedStyle(document.body)['padding-right']; + Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding); + document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px"; + } + + document.body.classList.add(CLASS_NAME_OPEN); + }; + + _proto._resetScrollbar = function _resetScrollbar() { + // Restore fixed content padding + SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) { + var padding = Manipulator.getDataAttribute(element, 'padding-right'); + + if (typeof padding !== 'undefined') { + Manipulator.removeDataAttribute(element, 'padding-right'); + element.style.paddingRight = padding; + } + }); // Restore sticky content and navbar-toggler margin + + SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) { + var margin = Manipulator.getDataAttribute(element, 'margin-right'); + + if (typeof margin !== 'undefined') { + Manipulator.removeDataAttribute(element, 'margin-right'); + element.style.marginRight = margin; + } + }); // Restore body padding + + var padding = Manipulator.getDataAttribute(document.body, 'padding-right'); + + if (typeof padding === 'undefined') { + document.body.style.paddingRight = ''; + } else { + Manipulator.removeDataAttribute(document.body, 'padding-right'); + document.body.style.paddingRight = padding; + } + }; + + _proto._getScrollbarWidth = function _getScrollbarWidth() { + // thx d.walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } // Static + ; + + Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) { + return this.each(function () { + var data = Data.getData(this, DATA_KEY$5); + + var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$3), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {}); + + if (!data) { + data = new Modal(this, _config); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](relatedTarget); + } else if (_config.show) { + data.show(relatedTarget); + } + }); + }; + + Modal.getInstance = function getInstance(element) { + return Data.getData(element, DATA_KEY$5); + }; + + _createClass(Modal, null, [{ + key: "VERSION", + get: function get() { + return VERSION$5; + } + }, { + key: "Default", + get: function get() { + return Default$3; + } + }]); + + return Modal; +}(); +/** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + +EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) { + var _this11 = this; + + var target = getElementFromSelector(this); + + if (this.tagName === 'A' || this.tagName === 'AREA') { + event.preventDefault(); + } + + EventHandler.one(target, EVENT_SHOW$2, function (showEvent) { + if (showEvent.defaultPrevented) { + // only register focus restorer if modal will actually get shown + return; + } + + EventHandler.one(target, EVENT_HIDDEN$2, function () { + if (isVisible(_this11)) { + _this11.focus(); + } + }); + }); + var data = Data.getData(target, DATA_KEY$5); + + if (!data) { + var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this)); + + data = new Modal(target, config); + } + + data.show(this); +}); +var $$6 = getjQuery(); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .modal to jQuery only if jQuery is present + */ + +/* istanbul ignore if */ + +if ($$6) { + var JQUERY_NO_CONFLICT$5 = $$6.fn[NAME$5]; + $$6.fn[NAME$5] = Modal.jQueryInterface; + $$6.fn[NAME$5].Constructor = Modal; + + $$6.fn[NAME$5].noConflict = function () { + $$6.fn[NAME$5] = JQUERY_NO_CONFLICT$5; + return Modal.jQueryInterface; + }; +} + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-alpha1): util/sanitizer.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ +var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']; +var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; +/** + * A pattern that recognizes a commonly useful subset of URLs that are safe. + * + * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts + */ + +var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi; +/** + * A pattern that matches safe data URLs. Only matches image, video and audio types. + * + * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts + */ + +var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; + +var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) { + var attrName = attr.nodeName.toLowerCase(); + + if (allowedAttributeList.indexOf(attrName) !== -1) { + if (uriAttrs.indexOf(attrName) !== -1) { + return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)); + } + + return true; + } + + var regExp = allowedAttributeList.filter(function (attrRegex) { + return attrRegex instanceof RegExp; + }); // Check if a regular expression validates the attribute. + + for (var i = 0, len = regExp.length; i < len; i++) { + if (attrName.match(regExp[i])) { + return true; + } + } + + return false; +}; + +var DefaultWhitelist = { + // Global attributes allowed on any supplied element below. + '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], + a: ['target', 'href', 'title', 'rel'], + area: [], + b: [], + br: [], + col: [], + code: [], + div: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [] +}; +function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { + var _ref; + + if (!unsafeHtml.length) { + return unsafeHtml; + } + + if (sanitizeFn && typeof sanitizeFn === 'function') { + return sanitizeFn(unsafeHtml); + } + + var domParser = new window.DOMParser(); + var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); + var whitelistKeys = Object.keys(whiteList); + + var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*')); + + var _loop = function _loop(i, len) { + var _ref2; + + var el = elements[i]; + var elName = el.nodeName.toLowerCase(); + + if (whitelistKeys.indexOf(elName) === -1) { + el.parentNode.removeChild(el); + return "continue"; + } + + var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes); + + var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []); + attributeList.forEach(function (attr) { + if (!allowedAttribute(attr, whitelistedAttributes)) { + el.removeAttribute(attr.nodeName); + } + }); + }; + + for (var i = 0, len = elements.length; i < len; i++) { + var _ret = _loop(i); + + if (_ret === "continue") continue; + } + + return createdDocument.body.innerHTML; +} + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME$6 = 'tooltip'; +var VERSION$6 = '5.0.0-alpha1'; +var DATA_KEY$6 = 'bs.tooltip'; +var EVENT_KEY$6 = "." + DATA_KEY$6; +var CLASS_PREFIX = 'bs-tooltip'; +var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); +var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; +var DefaultType$4 = { + animation: 'boolean', + template: 'string', + title: '(string|element|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: '(number|string|function)', + container: '(string|element|boolean)', + fallbackPlacement: '(string|array)', + boundary: '(string|element)', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + whiteList: 'object', + popperConfig: '(null|object)' +}; +var AttachmentMap = { + AUTO: 'auto', + TOP: 'top', + RIGHT: 'right', + BOTTOM: 'bottom', + LEFT: 'left' +}; +var Default$4 = { + animation: true, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + selector: false, + placement: 'top', + offset: 0, + container: false, + fallbackPlacement: 'flip', + boundary: 'scrollParent', + sanitize: true, + sanitizeFn: null, + whiteList: DefaultWhitelist, + popperConfig: null +}; +var Event$1 = { + HIDE: "hide" + EVENT_KEY$6, + HIDDEN: "hidden" + EVENT_KEY$6, + SHOW: "show" + EVENT_KEY$6, + SHOWN: "shown" + EVENT_KEY$6, + INSERTED: "inserted" + EVENT_KEY$6, + CLICK: "click" + EVENT_KEY$6, + FOCUSIN: "focusin" + EVENT_KEY$6, + FOCUSOUT: "focusout" + EVENT_KEY$6, + MOUSEENTER: "mouseenter" + EVENT_KEY$6, + MOUSELEAVE: "mouseleave" + EVENT_KEY$6 +}; +var CLASS_NAME_FADE$1 = 'fade'; +var CLASS_NAME_MODAL = 'modal'; +var CLASS_NAME_SHOW$3 = 'show'; +var HOVER_STATE_SHOW = 'show'; +var HOVER_STATE_OUT = 'out'; +var SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; +var TRIGGER_HOVER = 'hover'; +var TRIGGER_FOCUS = 'focus'; +var TRIGGER_CLICK = 'click'; +var TRIGGER_MANUAL = 'manual'; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var Tooltip = /*#__PURE__*/function () { + function Tooltip(element, config) { + if (typeof popper_js__WEBPACK_IMPORTED_MODULE_0__["default"] === 'undefined') { + throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)'); + } // private + + + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._popper = null; // Protected + + this.element = element; + this.config = this._getConfig(config); + this.tip = null; + + this._setListeners(); + + Data.setData(element, this.constructor.DATA_KEY, this); + } // Getters + + + var _proto = Tooltip.prototype; + + // Public + _proto.enable = function enable() { + this._isEnabled = true; + }; + + _proto.disable = function disable() { + this._isEnabled = false; + }; + + _proto.toggleEnabled = function toggleEnabled() { + this._isEnabled = !this._isEnabled; + }; + + _proto.toggle = function toggle(event) { + if (!this._isEnabled) { + return; + } + + if (event) { + var dataKey = this.constructor.DATA_KEY; + var context = Data.getData(event.target, dataKey); + + if (!context) { + context = new this.constructor(event.target, this._getDelegateConfig()); + Data.setData(event.target, dataKey, context); + } + + context._activeTrigger.click = !context._activeTrigger.click; + + if (context._isWithActiveTrigger()) { + context._enter(null, context); + } else { + context._leave(null, context); + } + } else { + if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$3)) { + this._leave(null, this); + + return; + } + + this._enter(null, this); + } + }; + + _proto.dispose = function dispose() { + clearTimeout(this._timeout); + Data.removeData(this.element, this.constructor.DATA_KEY); + EventHandler.off(this.element, this.constructor.EVENT_KEY); + EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler); + + if (this.tip) { + this.tip.parentNode.removeChild(this.tip); + } + + this._isEnabled = null; + this._timeout = null; + this._hoverState = null; + this._activeTrigger = null; + + if (this._popper) { + this._popper.destroy(); + } + + this._popper = null; + this.element = null; + this.config = null; + this.tip = null; + }; + + _proto.show = function show() { + var _this = this; + + if (this.element.style.display === 'none') { + throw new Error('Please use show on visible elements'); + } + + if (this.isWithContent() && this._isEnabled) { + var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW); + var shadowRoot = findShadowRoot(this.element); + var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element); + + if (showEvent.defaultPrevented || !isInTheDom) { + return; + } + + var tip = this.getTipElement(); + var tipId = getUID(this.constructor.NAME); + tip.setAttribute('id', tipId); + this.element.setAttribute('aria-describedby', tipId); + this.setContent(); + + if (this.config.animation) { + tip.classList.add(CLASS_NAME_FADE$1); + } + + var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; + + var attachment = this._getAttachment(placement); + + this._addAttachmentClass(attachment); + + var container = this._getContainer(); + + Data.setData(tip, this.constructor.DATA_KEY, this); + + if (!this.element.ownerDocument.documentElement.contains(this.tip)) { + container.appendChild(tip); + } + + EventHandler.trigger(this.element, this.constructor.Event.INSERTED); + this._popper = new popper_js__WEBPACK_IMPORTED_MODULE_0__["default"](this.element, tip, this._getPopperConfig(attachment)); + tip.classList.add(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + + if ('ontouchstart' in document.documentElement) { + var _ref; + + (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) { + EventHandler.on(element, 'mouseover', noop()); + }); + } + + var complete = function complete() { + if (_this.config.animation) { + _this._fixTransition(); + } + + var prevHoverState = _this._hoverState; + _this._hoverState = null; + EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN); + + if (prevHoverState === HOVER_STATE_OUT) { + _this._leave(null, _this); + } + }; + + if (this.tip.classList.contains(CLASS_NAME_FADE$1)) { + var transitionDuration = getTransitionDurationFromElement(this.tip); + EventHandler.one(this.tip, TRANSITION_END, complete); + emulateTransitionEnd(this.tip, transitionDuration); + } else { + complete(); + } + } + }; + + _proto.hide = function hide() { + var _this2 = this; + + var tip = this.getTipElement(); + + var complete = function complete() { + if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { + tip.parentNode.removeChild(tip); + } + + _this2._cleanTipClass(); + + _this2.element.removeAttribute('aria-describedby'); + + EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN); + + _this2._popper.destroy(); + }; + + var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE); + + if (hideEvent.defaultPrevented) { + return; + } + + tip.classList.remove(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + + if ('ontouchstart' in document.documentElement) { + var _ref2; + + (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) { + return EventHandler.off(element, 'mouseover', noop); + }); + } + + this._activeTrigger[TRIGGER_CLICK] = false; + this._activeTrigger[TRIGGER_FOCUS] = false; + this._activeTrigger[TRIGGER_HOVER] = false; + + if (this.tip.classList.contains(CLASS_NAME_FADE$1)) { + var transitionDuration = getTransitionDurationFromElement(tip); + EventHandler.one(tip, TRANSITION_END, complete); + emulateTransitionEnd(tip, transitionDuration); + } else { + complete(); + } + + this._hoverState = ''; + }; + + _proto.update = function update() { + if (this._popper !== null) { + this._popper.scheduleUpdate(); + } + } // Protected + ; + + _proto.isWithContent = function isWithContent() { + return Boolean(this.getTitle()); + }; + + _proto.getTipElement = function getTipElement() { + if (this.tip) { + return this.tip; + } + + var element = document.createElement('div'); + element.innerHTML = this.config.template; + this.tip = element.children[0]; + return this.tip; + }; + + _proto.setContent = function setContent() { + var tip = this.getTipElement(); + this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle()); + tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3); + }; + + _proto.setElementContent = function setElementContent(element, content) { + if (element === null) { + return; + } + + if (typeof content === 'object' && isElement(content)) { + if (content.jquery) { + content = content[0]; + } // content is a DOM node or a jQuery + + + if (this.config.html) { + if (content.parentNode !== element) { + element.innerHTML = ''; + element.appendChild(content); + } + } else { + element.textContent = content.textContent; + } + + return; + } + + if (this.config.html) { + if (this.config.sanitize) { + content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn); + } + + element.innerHTML = content; + } else { + element.textContent = content; + } + }; + + _proto.getTitle = function getTitle() { + var title = this.element.getAttribute('data-original-title'); + + if (!title) { + title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; + } + + return title; + } // Private + ; + + _proto._getPopperConfig = function _getPopperConfig(attachment) { + var _this3 = this; + + var defaultBsConfig = { + placement: attachment, + modifiers: { + offset: this._getOffset(), + flip: { + behavior: this.config.fallbackPlacement + }, + arrow: { + element: "." + this.constructor.NAME + "-arrow" + }, + preventOverflow: { + boundariesElement: this.config.boundary + } + }, + onCreate: function onCreate(data) { + if (data.originalPlacement !== data.placement) { + _this3._handlePopperPlacementChange(data); + } + }, + onUpdate: function onUpdate(data) { + return _this3._handlePopperPlacementChange(data); + } + }; + return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig); + }; + + _proto._addAttachmentClass = function _addAttachmentClass(attachment) { + this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment); + }; + + _proto._getOffset = function _getOffset() { + var _this4 = this; + + var offset = {}; + + if (typeof this.config.offset === 'function') { + offset.fn = function (data) { + data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {}); + return data; + }; + } else { + offset.offset = this.config.offset; + } + + return offset; + }; + + _proto._getContainer = function _getContainer() { + if (this.config.container === false) { + return document.body; + } + + if (isElement(this.config.container)) { + return this.config.container; + } + + return SelectorEngine.findOne(this.config.container); + }; + + _proto._getAttachment = function _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()]; + }; + + _proto._setListeners = function _setListeners() { + var _this5 = this; + + var triggers = this.config.trigger.split(' '); + triggers.forEach(function (trigger) { + if (trigger === 'click') { + EventHandler.on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) { + return _this5.toggle(event); + }); + } else if (trigger !== TRIGGER_MANUAL) { + var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN; + var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT; + EventHandler.on(_this5.element, eventIn, _this5.config.selector, function (event) { + return _this5._enter(event); + }); + EventHandler.on(_this5.element, eventOut, _this5.config.selector, function (event) { + return _this5._leave(event); + }); + } + }); + + this._hideModalHandler = function () { + if (_this5.element) { + _this5.hide(); + } + }; + + EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler); + + if (this.config.selector) { + this.config = _objectSpread2(_objectSpread2({}, this.config), {}, { + trigger: 'manual', + selector: '' + }); + } else { + this._fixTitle(); + } + }; + + _proto._fixTitle = function _fixTitle() { + var titleType = typeof this.element.getAttribute('data-original-title'); + + if (this.element.getAttribute('title') || titleType !== 'string') { + this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); + this.element.setAttribute('title', ''); + } + }; + + _proto._enter = function _enter(event, context) { + var dataKey = this.constructor.DATA_KEY; + context = context || Data.getData(event.target, dataKey); + + if (!context) { + context = new this.constructor(event.target, this._getDelegateConfig()); + Data.setData(event.target, dataKey, context); + } + + if (event) { + context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; + } + + if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) { + context._hoverState = HOVER_STATE_SHOW; + return; + } + + clearTimeout(context._timeout); + context._hoverState = HOVER_STATE_SHOW; + + if (!context.config.delay || !context.config.delay.show) { + context.show(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HOVER_STATE_SHOW) { + context.show(); + } + }, context.config.delay.show); + }; + + _proto._leave = function _leave(event, context) { + var dataKey = this.constructor.DATA_KEY; + context = context || Data.getData(event.target, dataKey); + + if (!context) { + context = new this.constructor(event.target, this._getDelegateConfig()); + Data.setData(event.target, dataKey, context); + } + + if (event) { + context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false; + } + + if (context._isWithActiveTrigger()) { + return; + } + + clearTimeout(context._timeout); + context._hoverState = HOVER_STATE_OUT; + + if (!context.config.delay || !context.config.delay.hide) { + context.hide(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HOVER_STATE_OUT) { + context.hide(); + } + }, context.config.delay.hide); + }; + + _proto._isWithActiveTrigger = function _isWithActiveTrigger() { + for (var trigger in this._activeTrigger) { + if (this._activeTrigger[trigger]) { + return true; + } + } + + return false; + }; + + _proto._getConfig = function _getConfig(config) { + var dataAttributes = Manipulator.getDataAttributes(this.element); + Object.keys(dataAttributes).forEach(function (dataAttr) { + if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { + delete dataAttributes[dataAttr]; + } + }); + + if (config && typeof config.container === 'object' && config.container.jquery) { + config.container = config.container[0]; + } + + config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {}); + + if (typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + + if (typeof config.title === 'number') { + config.title = config.title.toString(); + } + + if (typeof config.content === 'number') { + config.content = config.content.toString(); + } + + typeCheckConfig(NAME$6, config, this.constructor.DefaultType); + + if (config.sanitize) { + config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn); + } + + return config; + }; + + _proto._getDelegateConfig = function _getDelegateConfig() { + var config = {}; + + if (this.config) { + for (var key in this.config) { + if (this.constructor.Default[key] !== this.config[key]) { + config[key] = this.config[key]; + } + } + } + + return config; + }; + + _proto._cleanTipClass = function _cleanTipClass() { + var tip = this.getTipElement(); + var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); + + if (tabClass !== null && tabClass.length > 0) { + tabClass.map(function (token) { + return token.trim(); + }).forEach(function (tClass) { + return tip.classList.remove(tClass); + }); + } + }; + + _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) { + var popperInstance = popperData.instance; + this.tip = popperInstance.popper; + + this._cleanTipClass(); + + this._addAttachmentClass(this._getAttachment(popperData.placement)); + }; + + _proto._fixTransition = function _fixTransition() { + var tip = this.getTipElement(); + var initConfigAnimation = this.config.animation; + + if (tip.getAttribute('x-placement') !== null) { + return; + } + + tip.classList.remove(CLASS_NAME_FADE$1); + this.config.animation = false; + this.hide(); + this.show(); + this.config.animation = initConfigAnimation; + } // Static + ; + + Tooltip.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + var data = Data.getData(this, DATA_KEY$6); + + var _config = typeof config === 'object' && config; + + if (!data && /dispose|hide/.test(config)) { + return; + } + + if (!data) { + data = new Tooltip(this, _config); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }); + }; + + Tooltip.getInstance = function getInstance(element) { + return Data.getData(element, DATA_KEY$6); + }; + + _createClass(Tooltip, null, [{ + key: "VERSION", + get: function get() { + return VERSION$6; + } + }, { + key: "Default", + get: function get() { + return Default$4; + } + }, { + key: "NAME", + get: function get() { + return NAME$6; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY$6; + } + }, { + key: "Event", + get: function get() { + return Event$1; + } + }, { + key: "EVENT_KEY", + get: function get() { + return EVENT_KEY$6; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType$4; + } + }]); + + return Tooltip; +}(); + +var $$7 = getjQuery(); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .tooltip to jQuery only if jQuery is present + */ + +/* istanbul ignore if */ + +if ($$7) { + var JQUERY_NO_CONFLICT$6 = $$7.fn[NAME$6]; + $$7.fn[NAME$6] = Tooltip.jQueryInterface; + $$7.fn[NAME$6].Constructor = Tooltip; + + $$7.fn[NAME$6].noConflict = function () { + $$7.fn[NAME$6] = JQUERY_NO_CONFLICT$6; + return Tooltip.jQueryInterface; + }; +} + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME$7 = 'popover'; +var VERSION$7 = '5.0.0-alpha1'; +var DATA_KEY$7 = 'bs.popover'; +var EVENT_KEY$7 = "." + DATA_KEY$7; +var CLASS_PREFIX$1 = 'bs-popover'; +var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); + +var Default$5 = _objectSpread2(_objectSpread2({}, Tooltip.Default), {}, { + placement: 'right', + trigger: 'click', + content: '', + template: '' +}); + +var DefaultType$5 = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, { + content: '(string|element|function)' +}); + +var Event$2 = { + HIDE: "hide" + EVENT_KEY$7, + HIDDEN: "hidden" + EVENT_KEY$7, + SHOW: "show" + EVENT_KEY$7, + SHOWN: "shown" + EVENT_KEY$7, + INSERTED: "inserted" + EVENT_KEY$7, + CLICK: "click" + EVENT_KEY$7, + FOCUSIN: "focusin" + EVENT_KEY$7, + FOCUSOUT: "focusout" + EVENT_KEY$7, + MOUSEENTER: "mouseenter" + EVENT_KEY$7, + MOUSELEAVE: "mouseleave" + EVENT_KEY$7 +}; +var CLASS_NAME_FADE$2 = 'fade'; +var CLASS_NAME_SHOW$4 = 'show'; +var SELECTOR_TITLE = '.popover-header'; +var SELECTOR_CONTENT = '.popover-body'; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var Popover = /*#__PURE__*/function (_Tooltip) { + _inheritsLoose(Popover, _Tooltip); + + function Popover() { + return _Tooltip.apply(this, arguments) || this; + } + + var _proto = Popover.prototype; + + // Overrides + _proto.isWithContent = function isWithContent() { + return this.getTitle() || this._getContent(); + }; + + _proto.setContent = function setContent() { + var tip = this.getTipElement(); // we use append for html objects to maintain js events + + this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle()); + + var content = this._getContent(); + + if (typeof content === 'function') { + content = content.call(this.element); + } + + this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content); + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4); + }; + + _proto._addAttachmentClass = function _addAttachmentClass(attachment) { + this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + attachment); + } // Private + ; + + _proto._getContent = function _getContent() { + return this.element.getAttribute('data-content') || this.config.content; + }; + + _proto._cleanTipClass = function _cleanTipClass() { + var tip = this.getTipElement(); + var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); + + if (tabClass !== null && tabClass.length > 0) { + tabClass.map(function (token) { + return token.trim(); + }).forEach(function (tClass) { + return tip.classList.remove(tClass); + }); + } + } // Static + ; + + Popover.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + var data = Data.getData(this, DATA_KEY$7); + + var _config = typeof config === 'object' ? config : null; + + if (!data && /dispose|hide/.test(config)) { + return; + } + + if (!data) { + data = new Popover(this, _config); + Data.setData(this, DATA_KEY$7, data); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }); + }; + + Popover.getInstance = function getInstance(element) { + return Data.getData(element, DATA_KEY$7); + }; + + _createClass(Popover, null, [{ + key: "VERSION", + // Getters + get: function get() { + return VERSION$7; + } + }, { + key: "Default", + get: function get() { + return Default$5; + } + }, { + key: "NAME", + get: function get() { + return NAME$7; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY$7; + } + }, { + key: "Event", + get: function get() { + return Event$2; + } + }, { + key: "EVENT_KEY", + get: function get() { + return EVENT_KEY$7; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType$5; + } + }]); + + return Popover; +}(Tooltip); + +var $$8 = getjQuery(); +/** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + +/* istanbul ignore if */ + +if ($$8) { + var JQUERY_NO_CONFLICT$7 = $$8.fn[NAME$7]; + $$8.fn[NAME$7] = Popover.jQueryInterface; + $$8.fn[NAME$7].Constructor = Popover; + + $$8.fn[NAME$7].noConflict = function () { + $$8.fn[NAME$7] = JQUERY_NO_CONFLICT$7; + return Popover.jQueryInterface; + }; +} + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +var NAME$8 = 'scrollspy'; +var VERSION$8 = '5.0.0-alpha1'; +var DATA_KEY$8 = 'bs.scrollspy'; +var EVENT_KEY$8 = "." + DATA_KEY$8; +var DATA_API_KEY$6 = '.data-api'; +var Default$6 = { + offset: 10, + method: 'auto', + target: '' +}; +var DefaultType$6 = { + offset: 'number', + method: 'string', + target: '(string|element)' +}; +var EVENT_ACTIVATE = "activate" + EVENT_KEY$8; +var EVENT_SCROLL = "scroll" + EVENT_KEY$8; +var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$6; +var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; +var CLASS_NAME_ACTIVE$2 = 'active'; +var SELECTOR_DATA_SPY = '[data-spy="scroll"]'; +var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; +var SELECTOR_NAV_LINKS = '.nav-link'; +var SELECTOR_NAV_ITEMS = '.nav-item'; +var SELECTOR_LIST_ITEMS = '.list-group-item'; +var SELECTOR_DROPDOWN = '.dropdown'; +var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; +var METHOD_OFFSET = 'offset'; +var METHOD_POSITION = 'position'; +/** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + +var ScrollSpy = /*#__PURE__*/function () { + function ScrollSpy(element, config) { + var _this = this; + + this._element = element; + this._scrollElement = element.tagName === 'BODY' ? window : element; + this._config = this._getConfig(config); + this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM); + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + EventHandler.on(this._scrollElement, EVENT_SCROLL, function (event) { + return _this._process(event); + }); + this.refresh(); + + this._process(); + + Data.setData(element, DATA_KEY$8, this); + } // Getters + + + var _proto = ScrollSpy.prototype; + + // Public + _proto.refresh = function refresh() { + var _this2 = this; + + var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; + var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; + this._offsets = []; + this._targets = []; + this._scrollHeight = this._getScrollHeight(); + var targets = SelectorEngine.find(this._selector); + targets.map(function (element) { + var target; + var targetSelector = getSelectorFromElement(element); + + if (targetSelector) { + target = SelectorEngine.findOne(targetSelector); + } + + if (target) { + var targetBCR = target.getBoundingClientRect(); + + if (targetBCR.width || targetBCR.height) { + return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector]; + } + } + + return null; + }).filter(function (item) { + return item; + }).sort(function (a, b) { + return a[0] - b[0]; + }).forEach(function (item) { + _this2._offsets.push(item[0]); + + _this2._targets.push(item[1]); + }); + }; + + _proto.dispose = function dispose() { + Data.removeData(this._element, DATA_KEY$8); + EventHandler.off(this._scrollElement, EVENT_KEY$8); + this._element = null; + this._scrollElement = null; + this._config = null; + this._selector = null; + this._offsets = null; + this._targets = null; + this._activeTarget = null; + this._scrollHeight = null; + } // Private + ; + + _proto._getConfig = function _getConfig(config) { + config = _objectSpread2(_objectSpread2({}, Default$6), typeof config === 'object' && config ? config : {}); + + if (typeof config.target !== 'string' && isElement(config.target)) { + var id = config.target.id; + + if (!id) { + id = getUID(NAME$8); + config.target.id = id; + } + + config.target = "#" + id; + } + + typeCheckConfig(NAME$8, config, DefaultType$6); + return config; + }; + + _proto._getScrollTop = function _getScrollTop() { + return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; + }; + + _proto._getScrollHeight = function _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); + }; + + _proto._getOffsetHeight = function _getOffsetHeight() { + return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; + }; + + _proto._process = function _process() { + var scrollTop = this._getScrollTop() + this._config.offset; + + var scrollHeight = this._getScrollHeight(); + + var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); + + if (this._scrollHeight !== scrollHeight) { + this.refresh(); + } + + if (scrollTop >= maxScroll) { + var target = this._targets[this._targets.length - 1]; + + if (this._activeTarget !== target) { + this._activate(target); + } + + return; + } + + if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { + this._activeTarget = null; + + this._clear(); + + return; + } + + for (var i = this._offsets.length; i--;) { + var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); + + if (isActiveTarget) { + this._activate(this._targets[i]); + } + } + }; + + _proto._activate = function _activate(target) { + this._activeTarget = target; + + this._clear(); + + var queries = this._selector.split(',').map(function (selector) { + return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; + }); + + var link = SelectorEngine.findOne(queries.join(',')); + + if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2); + link.classList.add(CLASS_NAME_ACTIVE$2); + } else { + // Set triggered link as active + link.classList.add(CLASS_NAME_ACTIVE$2); + SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) { + // Set triggered links parents as active + // With both