diff --git a/aircox/admin/diffusion.py b/aircox/admin/diffusion.py index 2e2fee5..79763f1 100644 --- a/aircox/admin/diffusion.py +++ b/aircox/admin/diffusion.py @@ -30,9 +30,9 @@ class DiffusionAdmin(DiffusionBaseAdmin, admin.ModelAdmin): end_date.short_description = _("end") - list_display = ("episode", "start_date", "end_date", "type", "initial") + list_display = ("episode", "start", "end", "type", "initial") list_filter = ("type", "start", "program") - list_editable = ("type",) + list_editable = ("type", "start", "end") ordering = ("-start", "id") fields = ("type", "start", "end", "initial", "program", "schedule") diff --git a/aircox/models/diffusion.py b/aircox/models/diffusion.py index db72f51..91e4c03 100644 --- a/aircox/models/diffusion.py +++ b/aircox/models/diffusion.py @@ -137,8 +137,6 @@ class Diffusion(Rerun): # help_text = _('use this input port'), # ) - item_template_name = "aircox/widgets/diffusion_item.html" - class Meta: verbose_name = _("Diffusion") verbose_name_plural = _("Diffusions") @@ -208,6 +206,11 @@ class Diffusion(Rerun): and self.end >= now ) + @property + def is_today(self): + """True if diffusion is currently today.""" + return self.start.date() == datetime.date.today() + @property def is_live(self): """True if Diffusion is live (False if there are sounds files).""" diff --git a/aircox/models/episode.py b/aircox/models/episode.py index 9d94439..5945567 100644 --- a/aircox/models/episode.py +++ b/aircox/models/episode.py @@ -13,7 +13,9 @@ __all__ = ("Episode",) class Episode(Page): objects = ProgramChildQuerySet.as_manager() detail_url_name = "episode-detail" + template_prefix = "episode" item_template_name = "aircox/widgets/episode_item.html" + card_template_name = "aircox/widgets/episode_card.html" @property def program(self): diff --git a/aircox/models/log.py b/aircox/models/log.py index 8a8b942..c99b808 100644 --- a/aircox/models/log.py +++ b/aircox/models/log.py @@ -9,6 +9,7 @@ from django.utils.translation import gettext_lazy as _ from .diffusion import Diffusion from .sound import Sound, Track from .station import Station +from .page import Renderable logger = logging.getLogger("aircox") @@ -54,13 +55,15 @@ class LogQuerySet(models.QuerySet): return self.filter(track__isnull=not with_it) -class Log(models.Model): +class Log(Renderable, models.Model): """Log sounds and diffusions that are played on the station. This only remember what has been played on the outputs, not on each source; Source designate here which source is responsible of that. """ + template_prefix = "log" + TYPE_STOP = 0x00 """Source has been stopped, e.g. manually.""" # Rule: \/ diffusion != null \/ sound != null diff --git a/aircox/models/page.py b/aircox/models/page.py index 6df60cb..1a076f0 100644 --- a/aircox/models/page.py +++ b/aircox/models/page.py @@ -16,6 +16,7 @@ from model_utils.managers import InheritanceQuerySet from .station import Station __all__ = ( + "Renderable", "Category", "PageQuerySet", "Page", @@ -30,6 +31,17 @@ headline_re = re.compile( ) +class Renderable: + template_prefix = "page" + template_name = "aircox/widgets/{prefix}.html" + + def get_template_name(self, widget): + """Return template name for the provided widget.""" + return self.template_name.format( + prefix=self.template_prefix, widget=widget + ) + + class Category(models.Model): title = models.CharField(_("title"), max_length=64) slug = models.SlugField(_("slug"), max_length=64, db_index=True) @@ -68,7 +80,7 @@ class BasePageQuerySet(InheritanceQuerySet): return self.filter(title__icontains=q) -class BasePage(models.Model): +class BasePage(Renderable, models.Model): """Base class for publishable content.""" STATUS_DRAFT = 0x00 @@ -112,7 +124,6 @@ class BasePage(models.Model): objects = BasePageQuerySet.as_manager() detail_url_name = None - item_template_name = "aircox/widgets/page_item.html" class Meta: abstract = True @@ -152,14 +163,14 @@ class BasePage(models.Model): @property def display_title(self): - if self.is_published(): + if self.is_published: return self.title - return self.parent.display_title() + return self.parent and self.parent.display_title or "" @cached_property - def headline(self): - if not self.content: - return "" + def display_headline(self): + if not self.content or not self.is_published: + return self.parent and self.parent.display_headline or "" content = bleach.clean(self.content, tags=[], strip=True) headline = headline_re.search(content) return mark_safe(headline.groupdict()["headline"]) if headline else "" diff --git a/aircox/models/signals.py b/aircox/models/signals.py index 058fd07..751b7d0 100755 --- a/aircox/models/signals.py +++ b/aircox/models/signals.py @@ -43,6 +43,7 @@ def user_default_groups(sender, instance, created, *args, **kwargs): @receiver(signals.post_save, sender=Page) def page_post_save(sender, instance, created, *args, **kwargs): + return if not created and instance.cover: Page.objects.filter(parent=instance, cover__isnull=True).update( cover=instance.cover @@ -67,6 +68,7 @@ def program_post_save(sender, instance, created, *args, **kwargs): @receiver(signals.pre_save, sender=Schedule) def schedule_pre_save(sender, instance, *args, **kwargs): + return if getattr(instance, "pk") is not None: instance._initial = Schedule.objects.get(pk=instance.pk) diff --git a/aircox/static/aircox/css/chunk-common.css b/aircox/static/aircox/css/chunk-common.css index 90019a9..8e20b81 100644 --- a/aircox/static/aircox/css/chunk-common.css +++ b/aircox/static/aircox/css/chunk-common.css @@ -96,7 +96,7 @@ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fields user-select: none; -moz-appearance: none; -webkit-appearance: none; - background-color: rgba(10, 10, 10, 0.2); + background-color: rgba(0, 0, 0, 0.2); border: none; border-radius: 9999px; cursor: pointer; @@ -116,7 +116,7 @@ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fields width: 20px; } .modal-close::before, .delete::before, .modal-close::after, .delete::after { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; content: ""; display: block; left: 50%; @@ -134,10 +134,10 @@ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fields width: 2px; } .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { - background-color: rgba(10, 10, 10, 0.3); + background-color: rgba(0, 0, 0, 0.3); } .modal-close:active, .delete:active { - background-color: rgba(10, 10, 10, 0.4); + background-color: rgba(0, 0, 0, 0.4); } .is-small.modal-close, .is-small.delete { height: 16px; @@ -244,9 +244,9 @@ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fields } .dropdown-content { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-radius: 4px; - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + box-shadow: 0 0.5em 1em -0.125em rgba(0, 0, 0, 0.1), 0 0px 0 1px rgba(0, 0, 0, 0.02); padding-bottom: 0.5rem; padding-top: 0.5rem; } @@ -270,7 +270,7 @@ button.dropdown-item { a.dropdown-item:hover, button.dropdown-item:hover { background-color: hsl(0deg, 0%, 96%); - color: hsl(0deg, 0%, 4%); + color: #000; } a.dropdown-item.is-active, button.dropdown-item.is-active { @@ -381,7 +381,7 @@ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fields user-select: none; -moz-appearance: none; -webkit-appearance: none; - background-color: rgba(10, 10, 10, 0.2); + background-color: rgba(0, 0, 0, 0.2); border: none; border-radius: 9999px; cursor: pointer; @@ -401,7 +401,7 @@ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fields width: 20px; } .modal-close::before, .delete::before, .modal-close::after, .delete::after { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; content: ""; display: block; left: 50%; @@ -419,10 +419,10 @@ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fields width: 2px; } .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { - background-color: rgba(10, 10, 10, 0.3); + background-color: rgba(0, 0, 0, 0.3); } .modal-close:active, .delete:active { - background-color: rgba(10, 10, 10, 0.4); + background-color: rgba(0, 0, 0, 0.4); } .is-small.modal-close, .is-small.delete { height: 16px; @@ -722,23 +722,23 @@ table th { } /* Bulma Elements */ .box { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-radius: 6px; - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + box-shadow: 0 0.5em 1em -0.125em rgba(0, 0, 0, 0.1), 0 0px 0 1px rgba(0, 0, 0, 0.02); color: hsl(0deg, 0%, 29%); display: block; padding: 1.25rem; } a.box:hover, a.box:focus { - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px hsl(229deg, 53%, 53%); + box-shadow: 0 0.5em 1em -0.125em rgba(0, 0, 0, 0.1), 0 0 0 1px hsl(229deg, 53%, 53%); } a.box:active { - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px hsl(229deg, 53%, 53%); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px hsl(229deg, 53%, 53%); } .button { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-color: hsl(0deg, 0%, 86%); border-width: 1px; color: hsl(0deg, 0%, 21%); @@ -815,18 +815,18 @@ a.box:active { text-decoration: underline; } .button.is-white { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-color: transparent; - color: hsl(0deg, 0%, 4%); + color: #000; } .button.is-white:hover, .button.is-white.is-hovered { background-color: #f9f9f9; border-color: transparent; - color: hsl(0deg, 0%, 4%); + color: #000; } .button.is-white:focus, .button.is-white.is-focused { border-color: transparent; - color: hsl(0deg, 0%, 4%); + color: #000; } .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); @@ -834,151 +834,151 @@ a.box:active { .button.is-white:active, .button.is-white.is-active { background-color: #f2f2f2; border-color: transparent; - color: hsl(0deg, 0%, 4%); + color: #000; } .button.is-white[disabled], fieldset[disabled] .button.is-white { - background-color: hsl(0deg, 0%, 100%); - border-color: hsl(0deg, 0%, 100%); + background-color: #fff; + border-color: #fff; box-shadow: none; } .button.is-white.is-inverted { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { background-color: black; } .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { - background-color: hsl(0deg, 0%, 4%); + background-color: #000; border-color: transparent; box-shadow: none; - color: hsl(0deg, 0%, 100%); + color: #fff; } .button.is-white.is-loading::after { - border-color: transparent transparent hsl(0deg, 0%, 4%) hsl(0deg, 0%, 4%) !important; + border-color: transparent transparent #000 #000 !important; } .button.is-white.is-outlined { background-color: transparent; - border-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 100%); + border-color: #fff; + color: #fff; } .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { - background-color: hsl(0deg, 0%, 100%); - border-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + border-color: #fff; + color: #000; } .button.is-white.is-outlined.is-loading::after { - border-color: transparent transparent hsl(0deg, 0%, 100%) hsl(0deg, 0%, 100%) !important; + border-color: transparent transparent #fff #fff !important; } .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent hsl(0deg, 0%, 4%) hsl(0deg, 0%, 4%) !important; + border-color: transparent transparent #000 #000 !important; } .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { background-color: transparent; - border-color: hsl(0deg, 0%, 100%); + border-color: #fff; box-shadow: none; - color: hsl(0deg, 0%, 100%); + color: #fff; } .button.is-white.is-inverted.is-outlined { background-color: transparent; - border-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 4%); + border-color: #000; + color: #000; } .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent hsl(0deg, 0%, 100%) hsl(0deg, 0%, 100%) !important; + border-color: transparent transparent #fff #fff !important; } .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { background-color: transparent; - border-color: hsl(0deg, 0%, 4%); + border-color: #000; box-shadow: none; - color: hsl(0deg, 0%, 4%); + color: #000; } .button.is-black { - background-color: hsl(0deg, 0%, 4%); + background-color: #000; border-color: transparent; - color: hsl(0deg, 0%, 100%); + color: #fff; } .button.is-black:hover, .button.is-black.is-hovered { - background-color: #040404; + background-color: black; border-color: transparent; - color: hsl(0deg, 0%, 100%); + color: #fff; } .button.is-black:focus, .button.is-black.is-focused { border-color: transparent; - color: hsl(0deg, 0%, 100%); + color: #fff; } .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); + box-shadow: 0 0 0 0.125em rgba(0, 0, 0, 0.25); } .button.is-black:active, .button.is-black.is-active { background-color: black; border-color: transparent; - color: hsl(0deg, 0%, 100%); + color: #fff; } .button.is-black[disabled], fieldset[disabled] .button.is-black { - background-color: hsl(0deg, 0%, 4%); - border-color: hsl(0deg, 0%, 4%); + background-color: #000; + border-color: #000; box-shadow: none; } .button.is-black.is-inverted { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { background-color: #f2f2f2; } .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-color: transparent; box-shadow: none; - color: hsl(0deg, 0%, 4%); + color: #000; } .button.is-black.is-loading::after { - border-color: transparent transparent hsl(0deg, 0%, 100%) hsl(0deg, 0%, 100%) !important; + border-color: transparent transparent #fff #fff !important; } .button.is-black.is-outlined { background-color: transparent; - border-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 4%); + border-color: #000; + color: #000; } .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { - background-color: hsl(0deg, 0%, 4%); - border-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + border-color: #000; + color: #fff; } .button.is-black.is-outlined.is-loading::after { - border-color: transparent transparent hsl(0deg, 0%, 4%) hsl(0deg, 0%, 4%) !important; + border-color: transparent transparent #000 #000 !important; } .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent hsl(0deg, 0%, 100%) hsl(0deg, 0%, 100%) !important; + border-color: transparent transparent #fff #fff !important; } .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { background-color: transparent; - border-color: hsl(0deg, 0%, 4%); + border-color: #000; box-shadow: none; - color: hsl(0deg, 0%, 4%); + color: #000; } .button.is-black.is-inverted.is-outlined { background-color: transparent; - border-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 100%); + border-color: #fff; + color: #fff; } .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent hsl(0deg, 0%, 4%) hsl(0deg, 0%, 4%) !important; + border-color: transparent transparent #000 #000 !important; } .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { background-color: transparent; - border-color: hsl(0deg, 0%, 100%); + border-color: #fff; box-shadow: none; - color: hsl(0deg, 0%, 100%); + color: #fff; } .button.is-light { background-color: hsl(0deg, 0%, 96%); @@ -1744,7 +1744,7 @@ a.box:active { font-size: 1.5rem; } .button[disabled], fieldset[disabled] .button { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-color: hsl(0deg, 0%, 86%); box-shadow: none; opacity: 0.5; @@ -2250,7 +2250,7 @@ div.icon-text { } .notification code, .notification pre { - background: hsl(0deg, 0%, 100%); + background: #fff; } .notification pre code { background: transparent; @@ -2266,12 +2266,12 @@ div.icon-text { color: currentColor; } .notification.is-white { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } .notification.is-black { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } .notification.is-light { background-color: hsl(0deg, 0%, 96%); @@ -2355,28 +2355,28 @@ div.icon-text { border: none; } .progress.is-white::-webkit-progress-value { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; } .progress.is-white::-moz-progress-bar { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; } .progress.is-white::-ms-fill { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; } .progress.is-white:indeterminate { - background-image: linear-gradient(to right, hsl(0deg, 0%, 100%) 30%, hsl(0deg, 0%, 93%) 30%); + background-image: linear-gradient(to right, #fff 30%, hsl(0deg, 0%, 93%) 30%); } .progress.is-black::-webkit-progress-value { - background-color: hsl(0deg, 0%, 4%); + background-color: #000; } .progress.is-black::-moz-progress-bar { - background-color: hsl(0deg, 0%, 4%); + background-color: #000; } .progress.is-black::-ms-fill { - background-color: hsl(0deg, 0%, 4%); + background-color: #000; } .progress.is-black:indeterminate { - background-image: linear-gradient(to right, hsl(0deg, 0%, 4%) 30%, hsl(0deg, 0%, 93%) 30%); + background-image: linear-gradient(to right, #000 30%, hsl(0deg, 0%, 93%) 30%); } .progress.is-light::-webkit-progress-value { background-color: hsl(0deg, 0%, 96%); @@ -2513,7 +2513,7 @@ div.icon-text { } } .table { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; color: hsl(0deg, 0%, 21%); } .table td, @@ -2525,15 +2525,15 @@ div.icon-text { } .table td.is-white, .table th.is-white { - background-color: hsl(0deg, 0%, 100%); - border-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + border-color: #fff; + color: #000; } .table td.is-black, .table th.is-black { - background-color: hsl(0deg, 0%, 4%); - border-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + border-color: #000; + color: #fff; } .table td.is-light, .table th.is-light { @@ -2752,12 +2752,12 @@ div.icon-text { margin-right: -0.375rem; } .tag:not(body).is-white { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } .tag:not(body).is-black { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } .tag:not(body).is-light { background-color: hsl(0deg, 0%, 96%); @@ -2992,7 +2992,7 @@ a.tag:hover { /* Bulma Form */ .select select, .textarea, .input { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-color: hsl(0deg, 0%, 86%); border-radius: 4px; color: hsl(0deg, 0%, 21%); @@ -3036,7 +3036,7 @@ a.tag:hover { } .textarea, .input { - box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05); + box-shadow: inset 0 0.0625em 0.125em rgba(0, 0, 0, 0.05); max-width: 100%; width: 100%; } @@ -3044,16 +3044,16 @@ a.tag:hover { box-shadow: none; } .is-white.textarea, .is-white.input { - border-color: hsl(0deg, 0%, 100%); + border-color: #fff; } .is-white.textarea:focus, .is-white.input:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, .is-white.textarea:active, .is-white.input:active, .is-white.is-active.textarea, .is-white.is-active.input { box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } .is-black.textarea, .is-black.input { - border-color: hsl(0deg, 0%, 4%); + border-color: #000; } .is-black.textarea:focus, .is-black.input:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, .is-black.textarea:active, .is-black.input:active, .is-black.is-active.textarea, .is-black.is-active.input { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); + box-shadow: 0 0 0 0.125em rgba(0, 0, 0, 0.25); } .is-light.textarea, .is-light.input { border-color: hsl(0deg, 0%, 96%); @@ -3221,10 +3221,10 @@ a.tag:hover { border-color: hsl(0deg, 0%, 21%); } .select.is-white:not(:hover)::after { - border-color: hsl(0deg, 0%, 100%); + border-color: #fff; } .select.is-white select { - border-color: hsl(0deg, 0%, 100%); + border-color: #fff; } .select.is-white select:hover, .select.is-white select.is-hovered { border-color: #f2f2f2; @@ -3233,16 +3233,16 @@ a.tag:hover { box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } .select.is-black:not(:hover)::after { - border-color: hsl(0deg, 0%, 4%); + border-color: #000; } .select.is-black select { - border-color: hsl(0deg, 0%, 4%); + border-color: #000; } .select.is-black select:hover, .select.is-black select.is-hovered { border-color: black; } .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); + box-shadow: 0 0 0 0.125em rgba(0, 0, 0, 0.25); } .select.is-light:not(:hover)::after { border-color: hsl(0deg, 0%, 96%); @@ -3384,44 +3384,44 @@ a.tag:hover { position: relative; } .file.is-white .file-cta { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-color: transparent; - color: hsl(0deg, 0%, 4%); + color: #000; } .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { background-color: #f9f9f9; border-color: transparent; - color: hsl(0deg, 0%, 4%); + color: #000; } .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { border-color: transparent; box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); - color: hsl(0deg, 0%, 4%); + color: #000; } .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { background-color: #f2f2f2; border-color: transparent; - color: hsl(0deg, 0%, 4%); + color: #000; } .file.is-black .file-cta { - background-color: hsl(0deg, 0%, 4%); + background-color: #000; border-color: transparent; - color: hsl(0deg, 0%, 100%); + color: #fff; } .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { - background-color: #040404; + background-color: black; border-color: transparent; - color: hsl(0deg, 0%, 100%); + color: #fff; } .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { border-color: transparent; - box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); - color: hsl(0deg, 0%, 100%); + box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.25); + color: #fff; } .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { background-color: black; border-color: transparent; - color: hsl(0deg, 0%, 100%); + color: #fff; } .file.is-light .file-cta { background-color: hsl(0deg, 0%, 96%); @@ -3767,10 +3767,10 @@ a.tag:hover { margin-top: 0.25rem; } .help.is-white { - color: hsl(0deg, 0%, 100%); + color: #fff; } .help.is-black { - color: hsl(0deg, 0%, 4%); + color: #000; } .help.is-light { color: hsl(0deg, 0%, 96%); @@ -4104,9 +4104,9 @@ a.tag:hover { } .card { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-radius: 0.25rem; - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + box-shadow: 0 0.5em 1em -0.125em rgba(0, 0, 0, 0.1), 0 0px 0 1px rgba(0, 0, 0, 0.02); color: hsl(0deg, 0%, 29%); max-width: 100%; position: relative; @@ -4124,7 +4124,7 @@ a.tag:hover { .card-header { background-color: transparent; align-items: stretch; - box-shadow: 0 0.125em 0.25em rgba(10, 10, 10, 0.1); + box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.1); display: flex; } @@ -4230,9 +4230,9 @@ a.tag:hover { } .dropdown-content { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-radius: 4px; - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + box-shadow: 0 0.5em 1em -0.125em rgba(0, 0, 0, 0.1), 0 0px 0 1px rgba(0, 0, 0, 0.02); padding-bottom: 0.5rem; padding-top: 0.5rem; } @@ -4256,7 +4256,7 @@ button.dropdown-item { a.dropdown-item:hover, button.dropdown-item:hover { background-color: hsl(0deg, 0%, 96%); - color: hsl(0deg, 0%, 4%); + color: #000; } a.dropdown-item.is-active, button.dropdown-item.is-active { @@ -4503,21 +4503,21 @@ button.dropdown-item.is-active { background-color: white; } .message.is-white .message-header { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } .message.is-white .message-body { - border-color: hsl(0deg, 0%, 100%); + border-color: #fff; } .message.is-black { background-color: #fafafa; } .message.is-black .message-header { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } .message.is-black .message-body { - border-color: hsl(0deg, 0%, 4%); + border-color: #000; } .message.is-light { background-color: #fafafa; @@ -4639,7 +4639,7 @@ button.dropdown-item.is-active { } .message-body code, .message-body pre { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; } .message-body pre code { background-color: transparent; @@ -4659,7 +4659,7 @@ button.dropdown-item.is-active { } .modal-background { - background-color: rgba(10, 10, 10, 0.86); + background-color: rgba(0, 0, 0, 0.86); } .modal-content, @@ -4732,7 +4732,7 @@ button.dropdown-item.is-active { .modal-card-body { -webkit-overflow-scrolling: touch; - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; flex-grow: 1; flex-shrink: 1; overflow: auto; @@ -4740,38 +4740,38 @@ button.dropdown-item.is-active { } .navbar { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; min-height: 3.25rem; position: relative; z-index: 30; } .navbar.is-white { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } .navbar.is-white .navbar-brand > .navbar-item, .navbar.is-white .navbar-brand .navbar-link { - color: hsl(0deg, 0%, 4%); + color: #000; } .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, .navbar.is-white .navbar-brand .navbar-link:focus, .navbar.is-white .navbar-brand .navbar-link:hover, .navbar.is-white .navbar-brand .navbar-link.is-active { background-color: #f2f2f2; - color: hsl(0deg, 0%, 4%); + color: #000; } .navbar.is-white .navbar-brand .navbar-link::after { - border-color: hsl(0deg, 0%, 4%); + border-color: #000; } .navbar.is-white .navbar-burger { - color: hsl(0deg, 0%, 4%); + color: #000; } @media screen and (min-width: 1024px) { .navbar.is-white .navbar-start > .navbar-item, .navbar.is-white .navbar-start .navbar-link, .navbar.is-white .navbar-end > .navbar-item, .navbar.is-white .navbar-end .navbar-link { - color: hsl(0deg, 0%, 4%); + color: #000; } .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, .navbar.is-white .navbar-start .navbar-link:focus, @@ -4784,50 +4784,50 @@ button.dropdown-item.is-active { .navbar.is-white .navbar-end .navbar-link:hover, .navbar.is-white .navbar-end .navbar-link.is-active { background-color: #f2f2f2; - color: hsl(0deg, 0%, 4%); + color: #000; } .navbar.is-white .navbar-start .navbar-link::after, .navbar.is-white .navbar-end .navbar-link::after { - border-color: hsl(0deg, 0%, 4%); + border-color: #000; } .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { background-color: #f2f2f2; - color: hsl(0deg, 0%, 4%); + color: #000; } .navbar.is-white .navbar-dropdown a.navbar-item.is-active { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } } .navbar.is-black { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } .navbar.is-black .navbar-brand > .navbar-item, .navbar.is-black .navbar-brand .navbar-link { - color: hsl(0deg, 0%, 100%); + color: #fff; } .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, .navbar.is-black .navbar-brand .navbar-link:focus, .navbar.is-black .navbar-brand .navbar-link:hover, .navbar.is-black .navbar-brand .navbar-link.is-active { background-color: black; - color: hsl(0deg, 0%, 100%); + color: #fff; } .navbar.is-black .navbar-brand .navbar-link::after { - border-color: hsl(0deg, 0%, 100%); + border-color: #fff; } .navbar.is-black .navbar-burger { - color: hsl(0deg, 0%, 100%); + color: #fff; } @media screen and (min-width: 1024px) { .navbar.is-black .navbar-start > .navbar-item, .navbar.is-black .navbar-start .navbar-link, .navbar.is-black .navbar-end > .navbar-item, .navbar.is-black .navbar-end .navbar-link { - color: hsl(0deg, 0%, 100%); + color: #fff; } .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, .navbar.is-black .navbar-start .navbar-link:focus, @@ -4840,21 +4840,21 @@ button.dropdown-item.is-active { .navbar.is-black .navbar-end .navbar-link:hover, .navbar.is-black .navbar-end .navbar-link.is-active { background-color: black; - color: hsl(0deg, 0%, 100%); + color: #fff; } .navbar.is-black .navbar-start .navbar-link::after, .navbar.is-black .navbar-end .navbar-link::after { - border-color: hsl(0deg, 0%, 100%); + border-color: #fff; } .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { background-color: black; - color: hsl(0deg, 0%, 100%); + color: #fff; } .navbar.is-black .navbar-dropdown a.navbar-item.is-active { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } } .navbar.is-light { @@ -5514,8 +5514,8 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i display: none; } .navbar-menu { - background-color: hsl(0deg, 0%, 100%); - box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + background-color: #fff; + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); padding: 0.5rem 0; } .navbar-menu.is-active { @@ -5531,7 +5531,7 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i bottom: 0; } .navbar.is-fixed-bottom-touch.has-shadow { - box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + box-shadow: 0 -2px 3px rgba(0, 0, 0, 0.1); } .navbar.is-fixed-top-touch { top: 0; @@ -5583,7 +5583,7 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i } .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { background-color: hsl(0deg, 0%, 96%); - color: hsl(0deg, 0%, 4%); + color: #000; } .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { background-color: hsl(0deg, 0%, 96%); @@ -5608,7 +5608,7 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i border-radius: 6px 6px 0 0; border-top: none; bottom: 100%; - box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + box-shadow: 0 -8px 8px rgba(0, 0, 0, 0.1); top: auto; } .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { @@ -5632,11 +5632,11 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i margin-left: auto; } .navbar-dropdown { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-bottom-left-radius: 6px; border-bottom-right-radius: 6px; border-top: 2px solid hsl(0deg, 0%, 86%); - box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + box-shadow: 0 8px 8px rgba(0, 0, 0, 0.1); display: none; font-size: 0.875rem; left: 0; @@ -5654,7 +5654,7 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i } .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { background-color: hsl(0deg, 0%, 96%); - color: hsl(0deg, 0%, 4%); + color: #000; } .navbar-dropdown a.navbar-item.is-active { background-color: hsl(0deg, 0%, 96%); @@ -5663,7 +5663,7 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { border-radius: 6px; border-top: none; - box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + box-shadow: 0 8px 8px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.1); display: block; opacity: 0; pointer-events: none; @@ -5697,7 +5697,7 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i bottom: 0; } .navbar.is-fixed-bottom-desktop.has-shadow { - box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + box-shadow: 0 -2px 3px rgba(0, 0, 0, 0.1); } .navbar.is-fixed-top-desktop { top: 0; @@ -5720,7 +5720,7 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i } a.navbar-item.is-active, .navbar-link.is-active { - color: hsl(0deg, 0%, 4%); + color: #000; } a.navbar-item.is-active:not(:focus):not(:hover), .navbar-link.is-active:not(:focus):not(:hover) { @@ -5798,7 +5798,7 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i .pagination-previous:active, .pagination-next:active, .pagination-link:active { - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); } .pagination-previous[disabled], .pagination-previous.is-disabled, .pagination-next[disabled], @@ -5899,31 +5899,31 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i } .panel { border-radius: 6px; - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + box-shadow: 0 0.5em 1em -0.125em rgba(0, 0, 0, 0.1), 0 0px 0 1px rgba(0, 0, 0, 0.02); font-size: 1rem; } .panel:not(:last-child) { margin-bottom: 1.5rem; } .panel.is-white .panel-heading { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } .panel.is-white .panel-tabs a.is-active { - border-bottom-color: hsl(0deg, 0%, 100%); + border-bottom-color: #fff; } .panel.is-white .panel-block.is-active .panel-icon { - color: hsl(0deg, 0%, 100%); + color: #fff; } .panel.is-black .panel-heading { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } .panel.is-black .panel-tabs a.is-active { - border-bottom-color: hsl(0deg, 0%, 4%); + border-bottom-color: #000; } .panel.is-black .panel-block.is-active .panel-icon { - color: hsl(0deg, 0%, 4%); + color: #000; } .panel.is-light .panel-heading { background-color: hsl(0deg, 0%, 96%); @@ -6176,7 +6176,7 @@ label.panel-block:hover { border-bottom-color: hsl(0deg, 0%, 86%); } .tabs.is-boxed li.is-active a { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; border-color: hsl(0deg, 0%, 86%); border-bottom-color: transparent !important; } @@ -7970,7 +7970,7 @@ label.panel-block:hover { /* Bulma Helpers */ .has-text-white { - color: hsl(0deg, 0%, 100%) !important; + color: #fff !important; } a.has-text-white:hover, a.has-text-white:focus { @@ -7978,11 +7978,11 @@ a.has-text-white:hover, a.has-text-white:focus { } .has-background-white { - background-color: hsl(0deg, 0%, 100%) !important; + background-color: #fff !important; } .has-text-black { - color: hsl(0deg, 0%, 4%) !important; + color: #000 !important; } a.has-text-black:hover, a.has-text-black:focus { @@ -7990,7 +7990,7 @@ a.has-text-black:hover, a.has-text-black:focus { } .has-background-black { - background-color: hsl(0deg, 0%, 4%) !important; + background-color: #000 !important; } .has-text-light { @@ -9427,7 +9427,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { } .has-text-weight-light { - font-weight: 300 !important; + font-weight: 100 !important; } .has-text-weight-normal { @@ -9834,89 +9834,89 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { border-bottom: none; } .hero.is-white { - background-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + color: #000; } .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .hero.is-white strong { color: inherit; } .hero.is-white .title { - color: hsl(0deg, 0%, 4%); + color: #000; } .hero.is-white .subtitle { - color: rgba(10, 10, 10, 0.9); + color: rgba(0, 0, 0, 0.9); } .hero.is-white .subtitle a:not(.button), .hero.is-white .subtitle strong { - color: hsl(0deg, 0%, 4%); + color: #000; } @media screen and (max-width: 1023px) { .hero.is-white .navbar-menu { - background-color: hsl(0deg, 0%, 100%); + background-color: #fff; } } .hero.is-white .navbar-item, .hero.is-white .navbar-link { - color: rgba(10, 10, 10, 0.7); + color: rgba(0, 0, 0, 0.7); } .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, .hero.is-white .navbar-link:hover, .hero.is-white .navbar-link.is-active { background-color: #f2f2f2; - color: hsl(0deg, 0%, 4%); + color: #000; } .hero.is-white .tabs a { - color: hsl(0deg, 0%, 4%); + color: #000; opacity: 0.9; } .hero.is-white .tabs a:hover { opacity: 1; } .hero.is-white .tabs li.is-active a { - color: hsl(0deg, 0%, 100%) !important; + color: #fff !important; opacity: 1; } .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { - color: hsl(0deg, 0%, 4%); + color: #000; } .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { - background-color: hsl(0deg, 0%, 4%); - border-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + border-color: #000; + color: #fff; } .hero.is-white.is-bold { - background-image: linear-gradient(141deg, #e8e3e4 0%, hsl(0deg, 0%, 100%) 71%, white 100%); + background-image: linear-gradient(141deg, #e8e3e4 0%, #fff 71%, white 100%); } @media screen and (max-width: 768px) { .hero.is-white.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #e8e3e4 0%, hsl(0deg, 0%, 100%) 71%, white 100%); + background-image: linear-gradient(141deg, #e8e3e4 0%, #fff 71%, white 100%); } } .hero.is-black { - background-color: hsl(0deg, 0%, 4%); - color: hsl(0deg, 0%, 100%); + background-color: #000; + color: #fff; } .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .hero.is-black strong { color: inherit; } .hero.is-black .title { - color: hsl(0deg, 0%, 100%); + color: #fff; } .hero.is-black .subtitle { color: rgba(255, 255, 255, 0.9); } .hero.is-black .subtitle a:not(.button), .hero.is-black .subtitle strong { - color: hsl(0deg, 0%, 100%); + color: #fff; } @media screen and (max-width: 1023px) { .hero.is-black .navbar-menu { - background-color: hsl(0deg, 0%, 4%); + background-color: #000; } } .hero.is-black .navbar-item, @@ -9927,36 +9927,36 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { .hero.is-black .navbar-link:hover, .hero.is-black .navbar-link.is-active { background-color: black; - color: hsl(0deg, 0%, 100%); + color: #fff; } .hero.is-black .tabs a { - color: hsl(0deg, 0%, 100%); + color: #fff; opacity: 0.9; } .hero.is-black .tabs a:hover { opacity: 1; } .hero.is-black .tabs li.is-active a { - color: hsl(0deg, 0%, 4%) !important; + color: #000 !important; opacity: 1; } .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { - color: hsl(0deg, 0%, 100%); + color: #fff; } .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { - background-color: hsl(0deg, 0%, 100%); - border-color: hsl(0deg, 0%, 100%); - color: hsl(0deg, 0%, 4%); + background-color: #fff; + border-color: #fff; + color: #000; } .hero.is-black.is-bold { - background-image: linear-gradient(141deg, black 0%, hsl(0deg, 0%, 4%) 71%, #181616 100%); + background-image: linear-gradient(141deg, black 0%, #000 71%, #0d0c0c 100%); } @media screen and (max-width: 768px) { .hero.is-black.is-bold .navbar-menu { - background-image: linear-gradient(141deg, black 0%, hsl(0deg, 0%, 4%) 71%, #181616 100%); + background-image: linear-gradient(141deg, black 0%, #000 71%, #0d0c0c 100%); } } .hero.is-light { @@ -10007,7 +10007,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { color: rgba(0, 0, 0, 0.7); } .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { background-color: rgba(0, 0, 0, 0.7); @@ -10070,7 +10070,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { color: #fff; } .hero.is-dark .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-dark .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { background-color: #fff; @@ -10133,7 +10133,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { color: #fff; } .hero.is-primary .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-primary .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { background-color: #fff; @@ -10196,7 +10196,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { color: #fff; } .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { background-color: #fff; @@ -10259,7 +10259,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { color: #fff; } .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { background-color: #fff; @@ -10322,7 +10322,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { color: #fff; } .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { background-color: #fff; @@ -10385,7 +10385,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { color: rgba(0, 0, 0, 0.7); } .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { background-color: rgba(0, 0, 0, 0.7); @@ -10448,7 +10448,7 @@ a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { color: #fff; } .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); + background-color: rgba(0, 0, 0, 0.1); } .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { background-color: #fff; @@ -10678,7 +10678,7 @@ a.navbar-item.is-active { border-right: 1px hsl(0deg, 0%, 71%) solid; font-size: 1.25rem; color: hsl(0deg, 0%, 48%); - font-weight: 300; + font-weight: 100; } .card .title { @@ -10690,7 +10690,7 @@ a.navbar-item.is-active { color: hsl(0deg, 0%, 21%); } .card.is-primary { - box-shadow: 0em 0em 0.5em hsl(0deg, 0%, 4%); + box-shadow: 0em 0em 0.5em #000; } .card-super-title { @@ -10894,3 +10894,286 @@ aside .media .subtitle { width: 100%; border: none; } + +:root { + --text-color: black; + --highlight-color: rgba(255, 255, 0, 1); + --highlight-color-alpha: rgba(255, 255, 0, 0.6); + --highlight-color-2: rgb(0, 0, 254); + --highlight-color-2-alpha: rgb(0, 0, 254, 0.6); + --heading-height: 30em; + --heading-title-bg-color: rgba(255, 255, 0, 1); + --heading-bg-color: var(--highlight-color); + --heading-bg-highlight-color: var(--highlight-color-2); + --preview-media-height: 10em; + --preview-media-cover-size: 10em; + --preview-cover-size: 24em; + --preview-cover-small-size: 14em; +} + +.page a { + background-color: var(--highlight-color-alpha); + color: var(--text-color); +} + +.d-inline { + display: inline; +} + +.d-block { + display: block; +} + +.d-inline-block { + display: inline-block; +} + +.p-relative { + position: relative; +} + +.p-absolute { + position: absolute; +} + +.p-fixed { + position: fixed; +} + +.p-sticky { + position: sticky; +} + +.p-static { + position: static; +} + +.height-full { + height: 100%; +} + +.flex-push-right { + margin-left: auto; +} + +.is-clickable { + cursor: pointer; +} + +.btn-hg, .btn-outline-hg { + border: 0.1em var(--highlight-color) solid; + background-color: var(--highlight-color-alpha) !important; + border-radius: 0.2em; +} + +.button.action { + border-color: var(--highlight-color-2-alpha); + justify-content: center; + padding: 0.4em !important; + min-width: 2em; +} +.button.action .icon { + margin: 0em !important; +} +.button.action label { + margin-left: 0.4em; +} + +.list-filters { + text-align: right; +} + +.content { + font-size: 1.2em; +} + +.preview { + position: relative; + background-size: cover; +} +.preview.preview-card:not(.wide) { + max-width: 30em; +} +.preview.preview-item { + width: 100%; +} +.preview.columns, .preview .headings.columns { + margin: 0em; +} +.preview.columns .column, .preview .headings.columns .column { + padding: 0em; +} +.preview .title { + font-weight: 700; + font-size: 1.6em; +} +.preview .subtitle { + font-weight: 500; + font-size: 1.6em; +} +.preview .content, .preview .actions { + font-size: 1.2em; +} +.preview .headings { + background-size: cover; +} +.preview .headings * { + margin: 0em; + padding: 0em; +} +.preview .headings a { + color: var(--text-color); +} + +.heading, .headings-container > * { + display: inline-block; +} +.heading:not(:empty), .headings-container > *:not(:empty) { + background-color: var(--heading-bg-color); + padding: 0.2em; + margin-top: 0em !important; + vertical-align: top; +} +.heading:not(:empty).highlight, .headings-container > *:not(:empty).highlight { + background-color: var(--heading-bg-highlight-color); + color: var(--highlight-color); +} +.heading.title, .headings-container > *.title { + background-color: var(--heading-title-bg-color); +} + +.actions.no-label label { + display: none; +} + +.list-item { + width: 100%; +} +.list-item:not(:last-child) { + margin-bottom: 0.6em; +} +.list-item:not(:first-child) { + margin-top: 0.6em; +} +.list-item .headings { + padding-top: 0em; + margin-bottom: 0.8em !important; + background-color: var(--heading-bg-color); +} +.list-item .media-content { + height: var(--preview-cover-small-size); + display: flex; + flex-direction: column; +} +.list-item .media-content .content { + flex-grow: 1; +} +.list-item .media-content .actions { + flex-grow: 0; + text-align: right; +} + +.preview-cover { + background-size: cover; + height: var(--preview-cover-size); + width: var(--preview-cover-size); +} +.preview-cover.small { + min-width: unset; + height: var(--preview-cover-small-size); + width: var(--preview-cover-small-size) !important; +} + +.preview-card { + height: var(--preview-cover-size); + min-width: var(--preview-cover-size); +} +.card-grid .preview-card { + min-width: unset; +} +.preview-card .headings { + width: 100%; + min-height: 100%; + padding-top: 0.8em; +} +.preview-card .headings > div:not(:last-child) { + margin-bottom: 0.8em; +} +.preview-card .headings nav a { + font-size: 1em; +} +.preview-card .heading { + margin-bottom: 0.8em; +} +.preview-card .actions { + position: absolute; + bottom: 0.8em; + right: 0.8em; +} +.preview-card .actions label { + display: none; +} + +.header { + background-size: cover; +} +.header .preview { + height: var(--heading-height); +} +.header .preview.no-cover { + height: unset; +} +.header .preview .headings, .header .preview > .container { + width: 100%; +} +.header .preview > .container { + height: 100%; +} +.header .preview-card { + max-width: unset; +} +.header .title { + font-size: 40px; +} +.header .subtitle { + font-size: 32px; +} +.header .content { + display: inline !important; + font-size: 1.2em; + font-weight: 500; + text-align: right; +} +.header .content p { + margin-bottom: 0.8em; +} + +.preview-card header .info { + float: right; +} +.preview-card.is-active { + border-bottom: 1px var(--highlight-color) solid; +} + +.card-grid { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + gap: 1.2em; +} + +@media screen and (max-width: 1380px) { + .preview:not(.list-item) { + height: 20em !important; + } + .card-grid .preview-card { + height: 20em; + } +} +@media screen and (max-width: 1024px) { + .card-grid { + grid-template-columns: 1fr 1fr; + } + .card-grid .preview-card:nth-child(3) { + display: none; + } +} diff --git a/aircox/static/aircox/css/chunk-vendors.css b/aircox/static/aircox/css/chunk-vendors.css index ced33d2..2742fad 100644 --- a/aircox/static/aircox/css/chunk-vendors.css +++ b/aircox/static/aircox/css/chunk-vendors.css @@ -7,3 +7,165 @@ * Copyright 2022 Fonticons, Inc. */ .fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(data:font/woff2;base64,d09GMgABAAAAABHYAAoAAAAAJGQAABGQAwIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAATgCJAQgBmADgRwAghzKuWDLUAWJAAcghTESEVW1HwKgkbJw/n4/vdPsvbE1o5GlGcmyNMl6dy1LG42zFHAsBbqNismW0QVi96CAOeIcEOvgt/B18HU5Yqf8ZVuU06qWZY1GGklWQNrliR3HWbJZyjoLAEcQ8iVesHyxjumH5OcB0ovoB/jE9+b/X/vWF7FGiHAGL8FL59AJ6d43K+9LmEFn3UfQ0dX5mGr6gtmqRg5pK65xD1WblrClZmSRzRpMTrxGiLWReykPIECFVODlDxTiUnnE61Aj/wPAen9491sf+vQ3LskASwAwYUgYHOsDy3EJQAqA0kIQvlHd2lfDQ8AofplGXr6Kv8ENMADwJLwaANbKZ3sdJuEdAASMCtD50YXv56hzzzwZyuFRr9yPRzyWUOB1CQBcws8CQASAg5+9CLjclW5EJAkLUHVCGezGdhUOwCUFqCvutDxeDaQATQpgW4TGos8Ag7ZgkzbSJa4AQAMqqP2ua0AVTQA4EiKowu7hUcO14dXDh4eD4dPD54Ybww8PvzL82vBbw5eHvxn+Zfif7dp2sn3k9uHtk7bP2b5k+7LtK7bv3X7f9luvTL5y/3gMMDxquDa8avgQjE5Wl/XR+ttXbN/1TctS/lh+XD4hH5cPyQfk/fI22ZeXyovkqlyWB2QquXhF/E68JF4QvxY/FT8RPxZfEs+J/cJ2viLnQv/WJgyAcYkDLKEBE7ATItgDgO2Y0cBrqLDbns+znreg04R5Ome6K4nXIkmO/VEpOOdcYFEuU3TBBYMLvnNBesEF6QXfuQBLzsWou2RYCs7vH7322GMnPfbY8mNoP7b82GMC48a/OP+MO2A/gMryuR8+Up1qyigL1e1Wdedzneq5VGd5locqVJRR9rum1q3dhGTZGWdkGSG7W1o3LSGsiWa9jlivN8vibnsxX1k5MPK+suyMAysr+WLbtl99xDXrdVTa/2/GJQEs4TAApslcLJGqUHWDpJfqVCINGi0M8yzvdYOEMtrCsDu/iplOddLrBqEKVzHrLcxgyigLkl43y7MZRGU5jlUIxoOoj77vFpwXru9jPwo4E4XlOFYhTDOI+uj7bsF54fo+9qOAM1Hg9zkvXN/HfhRwJgrLcaxCmGYQ9dH3XXgiIOCOX6brOxPAPgDshiqgjM4gozOYrqJO8yyvJKnuZXnWwjxrYShRhYwyPG8jJCiErc/1vEiIc3WNUndzIyQoREe7tAzqYknCDZfSmj5XiMjzztW2EDhy7/E1KVD2xUu8/KUSdcooC0LFtfQ8m0FkMjBaWEXF+cRU4+9PYHosZDRGQFOTAkmIP8TbdFvp6E2kIHwjJPIPwv3EAH6a3KxlDWi+2HeblmVea1EmFxclo9a1bc+LPzDNW2vSwRIdWbv1mSyQ97FKAAuIAaYUx1rbQLUWE98COUdfw4fM9R/hFgHchCbMwNFwDlwH4M+ruTDwQtWeV2HQYDRppzrV3kKeddW8mgt3YYPRJNbpIVzIs24eNG2NeRUGQ2eKBOcocWNN8DO6NVYhci4GbdjjHtQ2T3Be9Kpxk3Mx+obEpoChivE0wXnJuThSUgjOi81PUkyPOBf9EUP0Bef9LbKhXiKP6qThGAB/Pp/Legs63YeUUeaFKlTd+bz5XmOd9ryFPFtBY8r7iRndhQ0VruBqQJA4fjHdbCI2m9MIBuZcFHg+Yxu2EMgI1QCFsDewT6m+2Zwew3SzifRfFkFw/k1mWewJy2ByHZ5sXTLDesLSkTVMtAOOB8BVKo3RoKGWKpxHQESCQdkcZePaWQ/ScBzK2qn2spzgkmA/4Ezs/RLnluNYX5x2fV98otEwViGKwFmIFAQtHZUSUd5KcL1vxRJ9353+ouU4Fudf2isYDwaC8whDFY9KMOwhCokosZAvoQtlI0rhaADUKKnXYHQfxuQFXMEsz3Iv1alOmhe3y0SzEuwXwrCS0eyxnR/DKCKioXG2vrmXGkGNS5zGEiYApvKkt5BnebcX87xFWZAE3aDbQyXOt2u7OxgGO/N2hKeffuXmxUc0hMRTK5UoOnT8xVtbXgyR8Y2twGG4EiBXYQtDFYQqVEHjIl7FbBWz3A752ofxDKY6XcXMcsGa7z+bwTihjDIj1cyMpbUw63WVQjpHWapTbW3x6c9JqJa5M7ncJCglcm5PmoRNmApFVTT2eTJmxJDUqilhMlNI6QqrYhhrvV6A78fJHbZhVF3q7SKzGMfLS+vrS8txjBjHy0vr60vLcYxjVzGP7+rUTbOubUYJn6w1HUPsNBuiKsxGlbm8YlRZtWbX3KDhe40qdjrF6uIBy6jVnHmvagqxvrQcg8Z6PABUXcAS4ACqsANa0APApNcNpiguFsyCRyTVqW5j0O61u69UDgajWxvCQXREAzdrp2XUx40xILxpoyjqoyMaxRNUdjHaiqKiC22D3/EWlrgJBYCf4LKxVVTMSnKKmSjEMFGizndiOuU6z3Sqv2Cw1++cemrnff3Oqad2bGN+Riw93DzEamP9S45E+l+Dg9CFk+AqAJ/RoNEiYXd+lWS9hRlib9MqNJhruFTO3It6SEnMODKdK+OYRRLsuJd/p4aRCmIYRNQC/FSIRDR8iQ/dSjt6O37/uonrJkaJaS4GFdOsBEuMLW2rXsR+j8f3gW6vqWGko03p+zIRAh+SfkMkQozejovXTVw3EV8O0TQXgzFsPEDc9oGQAgcQwE5IYB904Ti4EMCnSzUsdL7aftILVah0rzuXwW0WgiR3k6O6AZvKrMt8SR2qIKEsVCuY5alOFMVV+MrjsfSahVFR9HBF8ZQxwHq92aq9FaPW7GwrwnKp3ouyWiekPjFRJ6ReJXW3To6aMAboUONGJUhagofz8UX5aoIJ7xVyq7OkXiekXifH1gmpAwBd917BHbAfjofz4Hp4EGBqzcrSC3outQYZ83nWq0QWZ8gznUqM5+K5CMNzZbyLGf9ge+J5CubqEMAVbbktzt0YGkUjWq9gflArEGMT22nj3KcdEcm5sP9YmkV5ClzlbJvH0RE/dc36u4Ia898d19hc2LaNmy3qtfAb0jMAvx0LlCgMGhKpTnWvHeu0t5BnXXQYwVHEKKIBaW9hFTMVqqAdYYG+7/Y577u+j+EhKS8wKkeUCgvsFwFnom85jtUXphkU+PFjwDN47837EiP4uHGJZdwg0rAfwA8XZ2iHKlQeZa7LxlPtoQKI/LbX9kAlg9W+88gNvDiL4HwwKrHAwbDg2oo4GLmqFEdTwGuM7rjEW7t1OyUj8PskXtdzXVvnhIrtZaTW1mlbWw9fBNT4F6SDJeyO9SJUqGK5jBlkVH/4WyVZHraQzbewue3PoIf3f0gaVeuWHcR27Cefsm0bm7dYVUN8+FgmJTv2QmZc1yD8nLsdI8MpRYSwbv6o4CY9fJiaXHz0ZksIop51EJ1n/1ZZvNfmZ3uV2o2jFwEBxnJzzfKHzrsVQphnJgpDfQinLW1ug5LeBoYqnvB9i9qObVcNWo/j/YemO8SVTrBQazLE2ViF6NiBXa0a1LadqTBE0pk+NLv+sJKFL+dsXk01LrGPJWi7BM77/JT5jIAQOsNolLTfeso0TfsslNFESWdbEZ5lm6b5FDVNij96yrRt03zZh4Ww54FErdmXTdO2zacoPa9DTa2sFeylOqziVtCdA0f3yDQk0iTW552D5RvGNuBTnDiAGQAM1dykUWZ5lrdZHC2QrMbxVZhnhzDVyaToVn64xZZlVFhnjdI91DTpWsfkFsoN3BzrpVmv48CyWGft4msPpWsdVqnWNmR+8vLjLSxwE9YB/IV8LlupBKJZ+zBU3bqIMspUmJRIpzOY5uFJZJ7EPLxkqtN9JNZpDzgXhfsNVsUvCpbUSr/HarcPvsuqENN0bHvLo0ydNuk3+IcG34s/7uN9vfNTG2zOaW7x3oJy2VYuWcKmdUsII6HoXdvrJ8vyhtXOsji3oSI395PiUBdpbMI5mAB8LZPGVhH43lJyw2WH2xrvew4RTaluIBf8dSAuzveWKlSn54YKlKmUPje0XglCVsmxVw3bNk7jRNwUliHRLp00LGFyIn7azZzbV/dzZu+qEGVoaO2xXmNDKqmqQgjB2GmMCSGEqiZTG4zevuG+Ps8wxkxhGZyID1KeJ6U88dUgJ+KGsMwxutvmnHp7UzuZxVZr+C65V0shBEuqqrBtoapJJoSQV7t06/CwP5jG5n5SNvDqaKhhB85E68mgDawxmif9zXNwL++cj5pHUhx2bNiuRQahgJxzvKxaqGBz4eoGC76N/QC7cA5m4/x0rsSICaM0reZVrb1AvEO0C5mDBdO42TMYlG/WkXnZSRd24PRXkqpVDDHNIdfFc7itmOTThH1+yRul/kTChFEl54OJE0Waaf2htviAssZrjqLZtMT1FNRy17vd53t+V9vkhv0u53bKUeOLRdLOluLcLtqcn8MYrR9RcpcxXVFM0xK81E/z52ez8+eT6y6Uk1VtCXPM6Nqcu1bINpIBm/BEoqMufTzkpiW4rijmpsWD2fnziebPzy7xfG6vZlxP72IhkPXsEVmC3a4m6d2K59O6pHFzYsp5mhbIT3PY+ba4NZ3iJMVIOvET2faXwOcoCPhIypW6OTT4vcPqVYIQfmCyHfNWXb/VdCw6oVJxJMnaBoFUQGP23mzqswyUw2AtVXNDmYHaUO55KEYUd23ROZp52mKA7ziXL6Z8v2vAc9hfZaDf82k//UYUF8dOkwR8US+d+4m61MX+3Cy/mCzG9kxzqL9KK37SDEEYVDzfW2wjMS2LhmL7MFhPteo7qIZB5Wqb84ssYaoJTbNuuZVvQ3VwUCWD2xbXtSDYN2Zz7o8otmwTOLczr/eUSSc0zbKEqeYWv5X3fkqna7rFdeKGre+rVBTO7UfZ8PnMJZszWNtYf168ADmUsdYPyArCirfUIroyscf2oxSyAaeF+pkQ8BRnXanKb+J9F/dxlvBlHeYVxth0iHoqYw6R4xA5lQPR0y6Ra0+fBeyWZ3PYNpDzk0MFpNH3TzRHjyIBBoHU7xVuHz/M+KyS81eQH2YrOZZMaJl0LjG0noJRKi8ljz126mnPfL/jmtXl559//vkTd1+zc4Se/4uZJvvLNNpM/C1Y2zDp4rPPXrh37xUffljcu3d4DrpOcJx7DeNexwGgArnsey1gIw6jAWSD363hKsVr7DdpvjTWlyn2r1Y131OtSK+SswHBwvBcad1I2MdKa+GiCAHreywkXZ0lFGKJpLFyKNNbHAlezA22Lsv9gxYuKhTq9UJh0UJ6fR9bq9kFNlMVImYYiptyep4VkmmzyR74PW+bvxF/U52upzfpf+V65Y/EgcSzie/UtvppMp98XzvAwE5iD7Pf9Lx+uf6y/jdfw7tG1fjMPCKEqIsZcbf40Kpbj1t/2W0AHtkgAACwAAyEmCIiizP6eAWzGuPEiBX4dC+ujmOSKOM/RkMaI4yBlXiQMeFjgElhMa6i7m/6AyVAKgdQpUqdIeyiHxkFNmWZBE5RXiqu7kwSUwmT0bCF7mIMnKaczZjI0zSTQl3J3AwXNmUPNaYvODY+uzlqXzLbnJ6J5fDkMrktasVy40WNTnS8MRPH7U69UDgvasXjzar8ZHR8W9SK3y97YXVzdLw9Hjcnmsea8SWrwJoAbSgvrMqBoyw/6U+aaciLGhO5jjwedWLZjtoXHBuflc3JqCU7jViOt6ZkHEXHjjbj/BnbxaogX86XTmnMdppRS4ZhMV8slcLSSFiTwyjjMK4uD2r5ZTiEBqZxAY5hHLPYjAhtXIJZNDGNGcSQGMYklkFiGyK0Wn1vxEVooIMIx9EYGThGGx3UUUAB5z3Zxzchj8ljWEgWD+FCVM//oR1HG+OI0cQEmjiGJmJcglWY5gsbKmHNrnzqGPIinISZsRe/CA1MIIcOJI4jQodLtM1LFmdBoskBcQsSHTT4ePFxtDAFiRgRIhzDUdgdJU9f2VYhQB5l5FHCKWhgFh00MSlpiBBF5FFECSWEKGEEIWoSzzcWJkjL1yHP4liWd8r/NwMDAAA=) format("woff2"),url(../fonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} +/*!********************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-14.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-14.use[2]!./node_modules/vue3-carousel/dist/carousel.css ***! + \********************************************************************************************************************************************************************************************/ +:root { + /* Color */ + --vc-clr-primary: #000; + --vc-clr-secondary: #090f207f; + --vc-clr-white: #ffffff; + + /* Icon */ + --vc-icn-width: 1.2em; + + /* Navigation */ + --vc-nav-width: 30px; + --vc-nav-height: 30px; + --vc-nav-border-radius: 0; + --vc-nav-color: var(--vc-clr-primary); + --vc-nav-color-hover: var(--vc-clr-secondary); + --vc-nav-background: transparent; + + /* Pagination */ + --vc-pgn-width: 12px; + --vc-pgn-height: 4px; + --vc-pgn-margin: 4px; + --vc-pgn-border-radius: 0; + --vc-pgn-background-color: var(--vc-clr-secondary); + --vc-pgn-active-color: var(--vc-clr-primary); +} +.carousel__prev, +.carousel__next { + box-sizing: content-box; + background: var(--vc-nav-background); + border-radius: var(--vc-nav-border-radius); + width: var(--vc-nav-width); + height: var(--vc-nav-height); + text-align: center; + font-size: var(--vc-nav-height); + padding: 0; + color: var(--vc-nav-color); + display: flex; + justify-content: center; + align-items: center; + position: absolute; + border: 0; + cursor: pointer; + margin: 0 10px; + top: 50%; + transform: translateY(-50%); +} + +.carousel__prev:hover, +.carousel__next:hover { + color: var(--vc-nav-color-hover); +} + +.carousel__next--disabled, +.carousel__prev--disabled { + cursor: not-allowed; + opacity: 0.5; +} + +.carousel__prev { + left: 0; +} + +.carousel__next { + right: 0; +} + +.carousel--rtl .carousel__prev { + left: auto; + right: 0; +} + +.carousel--rtl .carousel__next { + right: auto; + left: 0; +} +.carousel { + position: relative; + text-align: center; + box-sizing: border-box; + touch-action: pan-y; + overscroll-behavior: none; +} + +.carousel.is-dragging { + touch-action: none; +} + +.carousel * { + box-sizing: border-box; +} + +.carousel__track { + display: flex; + padding: 0 !important; + position: relative; +} + +.carousel__viewport { + overflow: hidden; +} + +.carousel__sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.carousel__icon { + width: var(--vc-icn-width); + height: var(--vc-icn-width); + fill: currentColor; +} +.carousel__pagination { + display: flex; + justify-content: center; + list-style: none; + line-height: 0; + margin: 10px 0 0; +} + +.carousel__pagination-button { + display: block; + border: 0; + margin: 0; + cursor: pointer; + padding: var(--vc-pgn-margin); + background: transparent; +} + +.carousel__pagination-button::after { + display: block; + content: ''; + width: var(--vc-pgn-width); + height: var(--vc-pgn-height); + border-radius: var(--vc-pgn-border-radius); + background-color: var(--vc-pgn-background-color); +} + +.carousel__pagination-button:hover::after, +.carousel__pagination-button--active::after { + background-color: var(--vc-pgn-active-color); +} +.carousel__slide { + scroll-snap-stop: auto; + flex-shrink: 0; + margin: 0; + position: relative; + + display: flex; + justify-content: center; + align-items: center; + + /* Fix iOS scrolling #22 */ + transform: translateZ(0); +} diff --git a/aircox/static/aircox/js/chunk-common.js b/aircox/static/aircox/js/chunk-common.js index 66de28d..796ad43 100644 --- a/aircox/static/aircox/js/chunk-common.js +++ b/aircox/static/aircox/js/chunk-common.js @@ -29,6 +29,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mod /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ADropdown.vue?vue&type=script&lang=js": +/*!*******************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ADropdown.vue?vue&type=script&lang=js ***! + \*******************************************************************************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data() {\n return {\n \"active\": this.open\n };\n },\n props: {\n itemClass: String,\n buttonClass: String,\n buttonIconOpen: {\n type: String,\n default: \"fa fa-angle-down\"\n },\n buttonIconClose: {\n type: String,\n default: \"fa fa-angle-up\"\n },\n contentClass: String,\n open: {\n type: Boolean,\n default: false\n },\n noButton: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n toggle() {\n this.active = !this.active;\n }\n }\n});\n\n//# sourceURL=webpack://aircox-assets/./src/components/ADropdown.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/AEpisode.vue?vue&type=script&lang=js": /*!******************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/AEpisode.vue?vue&type=script&lang=js ***! @@ -169,6 +179,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ADropdown.vue?vue&type=template&id=a87ed2dc": +/*!***********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ADropdown.vue?vue&type=template&id=a87ed2dc ***! + \***********************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"icon\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)($props.itemClass),\n onClick: _cache[1] || (_cache[1] = $event => $props.noButton && $options.toggle())\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"button\", {}, () => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['float-right', $props.buttonClass]),\n onClick: _cache[0] || (_cache[0] = $event => $options.toggle())\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_1, [!$data.active ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)($props.buttonIconOpen)\n }, null, 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $data.active ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", {\n key: 1,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)($props.buttonIconClose)\n }, null, 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])], 2 /* CLASS */)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"item\")], 2 /* CLASS */), $data.active ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)($props.contentClass)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]);\n}\n\n//# sourceURL=webpack://aircox-assets/./src/components/ADropdown.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/AEpisode.vue?vue&type=template&id=2e4db98a": /*!**********************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/AEpisode.vue?vue&type=template&id=2e4db98a ***! @@ -295,7 +315,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \********************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"PlayerApp\": function() { return /* binding */ PlayerApp; }\n/* harmony export */ });\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components */ \"./src/components/index.js\");\n\nconst App = {\n el: '#app',\n delimiters: ['[[', ']]'],\n components: {\n ..._components__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n computed: {\n player() {\n return window.aircox.player;\n }\n }\n};\nconst PlayerApp = {\n el: '#player',\n delimiters: ['[[', ']]'],\n components: {\n ..._components__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (App);\n\n//# sourceURL=webpack://aircox-assets/./src/app.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"PlayerApp\": function() { return /* binding */ PlayerApp; }\n/* harmony export */ });\n/* harmony import */ var vue3_carousel_dist_carousel_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue3-carousel/dist/carousel.css */ \"./node_modules/vue3-carousel/dist/carousel.css\");\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components */ \"./src/components/index.js\");\n/* harmony import */ var vue3_carousel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue3-carousel */ \"./node_modules/vue3-carousel/dist/carousel.es.js\");\n\n\n\nconst App = {\n el: '#app',\n delimiters: ['[[', ']]'],\n components: {\n ..._components__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Slide: vue3_carousel__WEBPACK_IMPORTED_MODULE_2__.Slide,\n Carousel: vue3_carousel__WEBPACK_IMPORTED_MODULE_2__.Carousel,\n Pagination: vue3_carousel__WEBPACK_IMPORTED_MODULE_2__.Pagination,\n Navigation: vue3_carousel__WEBPACK_IMPORTED_MODULE_2__.Navigation\n },\n computed: {\n player() {\n return window.aircox.player;\n }\n },\n data() {\n return {\n carouselBreakpoints: {\n 400: {\n itemsToShow: 1\n },\n 600: {\n itemsToShow: 1.75\n },\n 800: {\n itemsToShow: 3\n },\n 1024: {\n itemsToShow: 4\n },\n 1280: {\n itemsToShow: 4\n },\n 1380: {\n itemsToShow: 5\n }\n }\n };\n }\n};\nconst PlayerApp = {\n el: '#player',\n delimiters: ['[[', ']]'],\n components: {\n ..._components__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (App);\n\n//# sourceURL=webpack://aircox-assets/./src/app.js?"); /***/ }), @@ -305,7 +325,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \***************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Builder; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\n\n/**\n * Utility class used to handle Vue applications. It provides way to load\n * remote application and update history.\n */\nclass Builder {\n constructor(config = {}) {\n this.config = config;\n this.title = null;\n this.app = null;\n this.vm = null;\n }\n\n /**\n * Fetch app from remote and mount application.\n */\n fetch(url, {\n el = '#app',\n ...options\n } = {}) {\n return fetch(url, options).then(response => response.text()).then(content => {\n let doc = new DOMParser().parseFromString(content, 'text/html');\n let app = doc.querySelector(el);\n content = app ? app.innerHTML : content;\n return this.mount({\n content,\n title: doc.title,\n reset: true,\n url\n });\n });\n }\n\n /**\n * Mount application, using `create_app` if required.\n *\n * @param {String} options.content: replace app container content with it\n * @param {String} options.title: set DOM document title.\n * @param {String} [options.el=this.config.el]: mount application on this element (querySelector argument)\n * @param {Boolean} [reset=False]: if True, force application recreation.\n * @return `app.mount`'s result.\n */\n mount({\n content = null,\n title = null,\n el = null,\n reset = false,\n props = null\n } = {}) {\n try {\n this.unmount();\n let config = this.config;\n if (el === null) el = config.el;\n if (reset || !this.app) this.app = this.createApp({\n title,\n content,\n el,\n ...config\n }, props);\n this.vm = this.app.mount(el);\n window.scroll(0, 0);\n return this.vm;\n } catch (error) {\n this.unmount();\n throw error;\n }\n }\n createApp({\n el,\n title = null,\n content = null,\n ...config\n }, props) {\n const container = document.querySelector(el);\n if (!container) return;\n if (content) container.innerHTML = content;\n if (title) document.title = title;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.createApp)(config, props);\n }\n unmount() {\n this.app && this.app.unmount();\n this.app = null;\n this.vm = null;\n }\n\n /**\n * Enable hot reload: catch page change in order to fetch them and\n * load page without actually leaving current one.\n */\n enableHotReload(node = null, historySave = true) {\n if (historySave) this.historySave(document.location, true);\n node.addEventListener('click', event => this._onPageChange(event), true);\n node.addEventListener('submit', event => this._onPageChange(event), true);\n node.addEventListener('popstate', event => this._onPopState(event), true);\n }\n _onPageChange(event) {\n let submit = event.type == 'submit';\n let target = submit || event.target.tagName == 'A' ? event.target : event.target.closest('a');\n if (!target || target.hasAttribute('target')) return;\n let url = submit ? target.getAttribute('action') || '' : target.getAttribute('href');\n if (url === null || !(url === '' || url.startsWith('/') || url.startsWith('?'))) return;\n let options = {};\n if (submit) {\n let formData = new FormData(event.target);\n if (target.method == 'get') url += '?' + new URLSearchParams(formData).toString();else options = {\n ...options,\n method: target.method,\n body: formData\n };\n }\n this.fetch(url, options).then(() => this.historySave(url));\n event.preventDefault();\n event.stopPropagation();\n }\n _onPopState(event) {\n if (event.state && event.state.content)\n // document.title = this.title;\n this.historyLoad(event.state);\n }\n\n /// Save application state into browser history\n historySave(url, replace = false) {\n const el = document.querySelector(this.config.el);\n const state = {\n content: el.innerHTML,\n title: document.title\n };\n if (replace) history.replaceState(state, '', url);else history.pushState(state, '', url);\n }\n\n /// Load application from browser history's state\n historyLoad(state) {\n return this.mount({\n content: state.content,\n title: state.title\n });\n }\n}\n\n//# sourceURL=webpack://aircox-assets/./src/appBuilder.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Builder; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\n\n/**\n * Utility class used to handle Vue applications. It provides way to load\n * remote application and update history.\n */\nclass Builder {\n constructor(config = {}) {\n this.config = config;\n this.title = null;\n this.app = null;\n this.vm = null;\n }\n\n /**\n * Fetch app from remote and mount application.\n */\n fetch(url, {\n el = '#app',\n ...options\n } = {}) {\n return fetch(url, options).then(response => response.text()).then(content => {\n let doc = new DOMParser().parseFromString(content, 'text/html');\n let app = doc.querySelector(el);\n content = app ? app.innerHTML : content;\n return this.mount({\n content,\n title: doc.title,\n reset: true,\n url\n });\n });\n }\n\n /**\n * Mount application, using `create_app` if required.\n *\n * @param {String} options.content: replace app container content with it\n * @param {String} options.title: set DOM document title.\n * @param {String} [options.el=this.config.el]: mount application on this element (querySelector argument)\n * @param {Boolean} [reset=False]: if True, force application recreation.\n * @return `app.mount`'s result.\n */\n mount({\n content = null,\n title = null,\n el = null,\n reset = false,\n props = null\n } = {}) {\n try {\n this.unmount();\n let config = this.config;\n if (el === null) el = config.el;\n if (reset || !this.app) this.app = this.createApp({\n title,\n content,\n el,\n ...config\n }, props);\n this.vm = this.app.mount(el);\n window.scroll(0, 0);\n return this.vm;\n } catch (error) {\n this.unmount();\n throw error;\n }\n }\n createApp({\n el,\n title = null,\n content = null,\n ...config\n }, props) {\n const container = document.querySelector(el);\n if (!container) return;\n if (content) container.innerHTML = content;\n if (title) document.title = title;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.createApp)(config, props);\n }\n unmount() {\n this.app && this.app.unmount();\n this.app = null;\n this.vm = null;\n }\n\n /**\n * Enable hot reload: catch page change in order to fetch them and\n * load page without actually leaving current one.\n */\n enableHotReload(node = null, historySave = true) {\n if (historySave) this.historySave(document.location, true);\n node.addEventListener('click', event => this.pageChanged(event), true);\n node.addEventListener('submit', event => this.pageChanged(event), true);\n node.addEventListener('popstate', event => this.statePopped(event), true);\n }\n pageChanged(event) {\n let submit = event.type == 'submit';\n let target = submit || event.target.tagName == 'A' ? event.target : event.target.closest('a');\n if (!target || target.hasAttribute('target')) return;\n let url = submit ? target.getAttribute('action') || '' : target.getAttribute('href');\n let domain = window.location.protocol + '//' + window.location.hostname;\n let stay = (url === '' || url.startsWith('/') || url.startsWith('?') || url.startsWith(domain)) && url.indexOf('wp-admin') == -1;\n if (url === null || !stay) {\n return;\n }\n let options = {};\n if (submit) {\n let formData = new FormData(event.target);\n if (target.method == 'get') url += '?' + new URLSearchParams(formData).toString();else options = {\n ...options,\n method: target.method,\n body: formData\n };\n }\n this.fetch(url, options).then(() => this.historySave(url));\n event.preventDefault();\n event.stopPropagation();\n }\n statePopped(event) {\n const state = event.state;\n if (state && state.content)\n // document.title = this.title;\n this.historyLoad(state);\n }\n\n /// Save application state into browser history\n historySave(url, replace = false) {\n const el = document.querySelector(this.config.el);\n const state = {\n content: el.innerHTML,\n title: document.title\n };\n if (replace) history.replaceState(state, '', url);else history.pushState(state, '', url);\n }\n\n /// Load application from browser history's state\n historyLoad(state) {\n return this.mount({\n content: state.content,\n title: state.title\n });\n }\n}\n\n//# sourceURL=webpack://aircox-assets/./src/appBuilder.js?"); /***/ }), @@ -315,7 +335,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"admin\": function() { return /* binding */ admin; },\n/* harmony export */ \"base\": function() { return /* binding */ base; }\n/* harmony export */ });\n/* harmony import */ var _AAutocomplete_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AAutocomplete.vue */ \"./src/components/AAutocomplete.vue\");\n/* harmony import */ var _AEpisode_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AEpisode.vue */ \"./src/components/AEpisode.vue\");\n/* harmony import */ var _AList_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AList.vue */ \"./src/components/AList.vue\");\n/* harmony import */ var _APage_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./APage.vue */ \"./src/components/APage.vue\");\n/* harmony import */ var _APlayer_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./APlayer.vue */ \"./src/components/APlayer.vue\");\n/* harmony import */ var _APlaylist_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./APlaylist.vue */ \"./src/components/APlaylist.vue\");\n/* harmony import */ var _APlaylistEditor_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./APlaylistEditor.vue */ \"./src/components/APlaylistEditor.vue\");\n/* harmony import */ var _AProgress_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AProgress.vue */ \"./src/components/AProgress.vue\");\n/* harmony import */ var _ASoundItem_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ASoundItem.vue */ \"./src/components/ASoundItem.vue\");\n/* harmony import */ var _AStatistics_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./AStatistics.vue */ \"./src/components/AStatistics.vue\");\n/* harmony import */ var _AStreamer_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./AStreamer.vue */ \"./src/components/AStreamer.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Core components\n */\nconst base = {\n AAutocomplete: _AAutocomplete_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n AEpisode: _AEpisode_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AList: _AList_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n APage: _APage_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n APlayer: _APlayer_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n APlaylist: _APlaylist_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n AProgress: _AProgress_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n ASoundItem: _ASoundItem_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (base);\nconst admin = {\n ...base,\n AStatistics: _AStatistics_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n AStreamer: _AStreamer_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n APlaylistEditor: _APlaylistEditor_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n};\n\n//# sourceURL=webpack://aircox-assets/./src/components/index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"admin\": function() { return /* binding */ admin; },\n/* harmony export */ \"base\": function() { return /* binding */ base; }\n/* harmony export */ });\n/* harmony import */ var _AAutocomplete_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AAutocomplete.vue */ \"./src/components/AAutocomplete.vue\");\n/* harmony import */ var _ADropdown_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ADropdown.vue */ \"./src/components/ADropdown.vue\");\n/* harmony import */ var _AEpisode_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AEpisode.vue */ \"./src/components/AEpisode.vue\");\n/* harmony import */ var _AList_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AList.vue */ \"./src/components/AList.vue\");\n/* harmony import */ var _APage_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./APage.vue */ \"./src/components/APage.vue\");\n/* harmony import */ var _APlayer_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./APlayer.vue */ \"./src/components/APlayer.vue\");\n/* harmony import */ var _APlaylist_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./APlaylist.vue */ \"./src/components/APlaylist.vue\");\n/* harmony import */ var _APlaylistEditor_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./APlaylistEditor.vue */ \"./src/components/APlaylistEditor.vue\");\n/* harmony import */ var _AProgress_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./AProgress.vue */ \"./src/components/AProgress.vue\");\n/* harmony import */ var _ASoundItem_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ASoundItem.vue */ \"./src/components/ASoundItem.vue\");\n/* harmony import */ var _AStatistics_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./AStatistics.vue */ \"./src/components/AStatistics.vue\");\n/* harmony import */ var _AStreamer_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./AStreamer.vue */ \"./src/components/AStreamer.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Core components\n */\nconst base = {\n AAutocomplete: _AAutocomplete_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n ADropdown: _ADropdown_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AEpisode: _AEpisode_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n AList: _AList_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n APage: _APage_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n APlayer: _APlayer_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n APlaylist: _APlaylist_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n AProgress: _AProgress_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n ASoundItem: _ASoundItem_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (base);\nconst admin = {\n ...base,\n AStatistics: _AStatistics_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n AStreamer: _AStreamer_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n APlaylistEditor: _APlaylistEditor_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n};\n\n//# sourceURL=webpack://aircox-assets/./src/components/index.js?"); /***/ }), @@ -345,7 +365,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**********************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Set\": function() { return /* binding */ Set; },\n/* harmony export */ \"default\": function() { return /* binding */ Model; },\n/* harmony export */ \"getCsrf\": function() { return /* binding */ getCsrf; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Return cookie with provided key\n */\nfunction getCookie(key) {\n if (document.cookie && document.cookie !== '') {\n const cookie = document.cookie.split(';').find(c => c.trim().startsWith(key + '='));\n return cookie ? decodeURIComponent(cookie.split('=')[1]) : null;\n }\n return null;\n}\n\n/**\n * CSRF token provided by Django\n */\nvar csrfToken = null;\n\n/**\n * Get CSRF token\n */\nfunction getCsrf() {\n if (csrfToken === null) csrfToken = getCookie('csrftoken');\n return csrfToken;\n}\n\n// TODO: prevent duplicate simple fetch\n/**\n * Provide interface used to fetch and manipulate objects.\n */\nclass Model {\n /**\n * Instanciate model with provided data and options.\n * By default `url` is taken from `data.url_`.\n */\n constructor(data = {}, {\n url = null,\n ...options\n } = {}) {\n this.url = url || data.url_;\n this.options = options;\n this.commit(data);\n }\n get errors() {\n return this.data && this.data.__errors__;\n }\n\n /**\n * Get instance id from its data\n */\n static getId(data) {\n return 'id' in data ? data.id : data.pk;\n }\n\n /**\n * Return fetch options\n */\n static getOptions(options) {\n return {\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-CSRFToken': getCsrf()\n },\n ...options\n };\n }\n\n /**\n * Return model instances for the provided list of model data.\n * @param {Array} items: array of data\n * @param {Object} options: options passed down to all model instances\n */\n static fromList(items, options = {}) {\n return items ? items.map(d => new this(d, options)) : [];\n }\n\n /**\n * Fetch item from server\n */\n static fetch(url, {\n many = false,\n ...options\n } = {}, args = {}) {\n options = this.getOptions(options);\n const request = fetch(url, options).then(response => response.json());\n if (many) return request.then(data => {\n if (!(data instanceof Array)) data = data.results;\n return this.fromList(data, args);\n });else return request.then(data => new this(data, {\n url: url,\n ...args\n }));\n }\n\n /**\n * Fetch data from server.\n */\n fetch(options) {\n options = this.constructor.getOptions(options);\n return fetch(this.url, options).then(response => response.json()).then(data => this.commit(data));\n }\n\n /**\n * Call API action on object.\n */\n action(path, options, commit = false) {\n options = this.constructor.getOptions(options);\n const promise = fetch(this.url + path, options);\n return commit ? promise.then(data => data.json()).then(data => {\n this.commit(data);\n this.data;\n }) : promise;\n }\n\n /**\n * Update instance's data with provided data. Return None\n */\n commit(data) {\n this.data = data;\n this.id = this.constructor.getId(this.data);\n }\n\n /**\n * Update model data, without reset previous value\n */\n update(data) {\n this.data = {\n ...this.data,\n ...data\n };\n this.id = this.constructor.getId(this.data);\n }\n\n /**\n * Save instance into localStorage.\n */\n store(key) {\n window.localStorage.setItem(key, JSON.stringify(this.data));\n }\n\n /**\n * Load model instance from localStorage.\n */\n static storeLoad(key) {\n let item = window.localStorage.getItem(key);\n return item === null ? item : new this(JSON.parse(item));\n }\n\n /**\n * Return true if model instance has no data\n */\n get isEmpty() {\n return !this.data || Object.keys(this.data).findIndex(k => !!this.data[k] && this.data[k] !== 0) == -1;\n }\n\n /**\n * Return error for a specific attribute name if any \n */\n error(attr = null) {\n return attr === null ? this.errors : this.errors && this.errors[attr];\n }\n}\n\n/**\n * List of models\n */\nclass Set {\n constructor(model, {\n items = [],\n url = null,\n args = {},\n unique = null,\n max = null,\n storeKey = null\n } = {}) {\n this.items = [];\n this.model = model;\n this.url = url;\n this.unique = unique;\n this.max = max;\n this.storeKey = storeKey;\n for (var item of items) this.push(item, {\n args: args,\n save: false\n });\n }\n get length() {\n return this.items.length;\n }\n\n /**\n * Fetch multiple items from server\n */\n static fetch(model, url, options = null, args = null) {\n options = model.getOptions(options);\n return fetch(url, options).then(response => response.json()).then(data => (data instanceof Array ? data : data.results).map(d => new model(d, {\n url: url,\n ...args\n })));\n }\n\n /**\n * Load list from localStorage\n */\n static storeLoad(model, key, args = {}) {\n let items = window.localStorage.getItem(key);\n return new this(model, {\n ...args,\n storeKey: key,\n items: items ? JSON.parse(items) : []\n });\n }\n\n /**\n * Store list into localStorage\n */\n store() {\n this.storeKey && window.localStorage.setItem(this.storeKey, JSON.stringify(this.items.map(i => i.data)));\n }\n\n /**\n * Save item\n */\n save() {\n this.storeKey && this.store();\n }\n\n /**\n * Get item at index\n */\n get(index) {\n return this.items[index];\n }\n\n /**\n * Find an item by id or using a predicate function\n */\n find(pred) {\n return pred instanceof Function ? this.items.find(pred) : this.items.find(x => x.id == pred.id);\n }\n\n /**\n * Find item index by id or using a predicate function\n */\n findIndex(pred) {\n return pred instanceof Function ? this.items.findIndex(pred) : this.items.findIndex(x => x.id == pred.id);\n }\n\n /**\n * Add item to set, return index.\n */\n push(item, {\n args = {},\n save = true\n } = {}) {\n item = item instanceof this.model ? item : new this.model(item, args);\n if (this.unique) {\n let index = this.findIndex(item);\n if (index > -1) return index;\n }\n if (this.max && this.items.length >= this.max) this.items.splice(0, this.items.length - this.max);\n this.items.push(item);\n save && this.save();\n return this.items.length - 1;\n }\n\n /**\n * Remove item from set by index\n */\n remove(index, {\n save = true\n } = {}) {\n this.items.splice(index, 1);\n save && this.save();\n }\n\n /**\n * Clear items, assign new ones\n */\n reset(items = []) {\n // TODO: check reactivity\n this.items = [];\n for (var item of items) this.push(item);\n }\n move(from, to) {\n if (from >= this.length || to > this.length) throw \"source or target index is not in range\";\n const value = this.items[from];\n this.items.splice(from, 1);\n this.items.splice(to, 0, value);\n }\n}\nSet[Symbol.iterator] = function () {\n return this.items[Symbol.iterator]();\n};\n\n//# sourceURL=webpack://aircox-assets/./src/model.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Set\": function() { return /* binding */ Set; },\n/* harmony export */ \"default\": function() { return /* binding */ Model; },\n/* harmony export */ \"getCsrf\": function() { return /* binding */ getCsrf; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Return cookie with provided key\n */\nfunction getCookie(key) {\n if (document.cookie && document.cookie !== '') {\n const cookie = document.cookie.split(';').find(c => c.trim().startsWith(key + '='));\n return cookie ? decodeURIComponent(cookie.split('=')[1]) : null;\n }\n return null;\n}\n\n/**\n * CSRF token provided by Django\n */\nvar csrfToken = null;\n\n/**\n * Get CSRF token\n */\nfunction getCsrf() {\n if (csrfToken === null) csrfToken = getCookie('csrftoken');\n return csrfToken;\n}\n\n// TODO: prevent duplicate simple fetch\n/**\n * Provide interface used to fetch and manipulate objects.\n */\nclass Model {\n /**\n * Instanciate model with provided data and options.\n * By default `url` is taken from `data.url_`.\n */\n constructor(data = {}, {\n url = null,\n ...options\n } = {}) {\n this.url = url || data.url_;\n this.options = options;\n this.commit(data);\n }\n get errors() {\n return this.data && this.data.__errors__;\n }\n\n /**\n * Get instance id from its data\n */\n static getId(data) {\n return 'id' in data ? data.id : data.pk;\n }\n\n /**\n * Return fetch options\n */\n static getOptions(options) {\n return {\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-CSRFToken': getCsrf()\n },\n ...options\n };\n }\n\n /**\n * Return model instances for the provided list of model data.\n * @param {Array} items: array of data\n * @param {Object} options: options passed down to all model instances\n */\n static fromList(items, options = {}) {\n return items ? items.map(d => new this(d, options)) : [];\n }\n\n /**\n * Fetch item from server\n */\n static fetch(url, {\n many = false,\n ...options\n } = {}, args = {}) {\n options = this.getOptions(options);\n const request = fetch(url, options).then(response => response.json());\n if (many) return request.then(data => {\n if (!(data instanceof Array)) data = data.results;\n return this.fromList(data, args);\n });else return request.then(data => new this(data, {\n url: url,\n ...args\n }));\n }\n\n /**\n * Fetch data from server.\n */\n fetch(options) {\n options = this.constructor.getOptions(options);\n return fetch(this.url, options).then(response => response.json()).then(data => this.commit(data));\n }\n\n /**\n * Call API action on object.\n */\n action(path, options, commit = false) {\n options = this.constructor.getOptions(options);\n const promise = fetch(this.url + path, options);\n return commit ? promise.then(data => data.json()).then(data => {\n this.commit(data);\n this.data;\n }) : promise;\n }\n\n /**\n * Update instance's data with provided data. Return None\n */\n commit(data) {\n this.data = data;\n this.id = this.constructor.getId(this.data);\n }\n\n /**\n * Update model data, without reset previous value\n */\n update(data) {\n this.data = {\n ...this.data,\n ...data\n };\n this.id = this.constructor.getId(this.data);\n }\n\n /**\n * Save instance into localStorage.\n */\n store(key) {\n window.localStorage.setItem(key, JSON.stringify(this.data));\n }\n\n /**\n * Load model instance from localStorage.\n */\n static storeLoad(key) {\n let item = window.localStorage.getItem(key);\n return item === null ? item : new this(JSON.parse(item));\n }\n\n /**\n * Return true if model instance has no data\n */\n get isEmpty() {\n return !this.data || Object.keys(this.data).findIndex(k => !!this.data[k] && this.data[k] !== 0) == -1;\n }\n\n /**\n * Return error for a specific attribute name if any\n */\n error(attr = null) {\n return attr === null ? this.errors : this.errors && this.errors[attr];\n }\n}\n\n/**\n * List of models\n */\nclass Set {\n constructor(model, {\n items = [],\n url = null,\n args = {},\n unique = null,\n max = null,\n storeKey = null\n } = {}) {\n this.items = [];\n this.model = model;\n this.url = url;\n this.unique = unique;\n this.max = max;\n this.storeKey = storeKey;\n for (var item of items) this.push(item, {\n args: args,\n save: false\n });\n }\n get length() {\n return this.items.length;\n }\n\n /**\n * Fetch multiple items from server\n */\n static fetch(model, url, options = null, args = null) {\n options = model.getOptions(options);\n return fetch(url, options).then(response => response.json()).then(data => (data instanceof Array ? data : data.results).map(d => new model(d, {\n url: url,\n ...args\n })));\n }\n\n /**\n * Load list from localStorage\n */\n static storeLoad(model, key, args = {}) {\n let items = window.localStorage.getItem(key);\n return new this(model, {\n ...args,\n storeKey: key,\n items: items ? JSON.parse(items) : []\n });\n }\n\n /**\n * Store list into localStorage\n */\n store() {\n this.storeKey && window.localStorage.setItem(this.storeKey, JSON.stringify(this.items.map(i => i.data)));\n }\n\n /**\n * Save item\n */\n save() {\n this.storeKey && this.store();\n }\n\n /**\n * Get item at index\n */\n get(index) {\n return this.items[index];\n }\n\n /**\n * Find an item by id or using a predicate function\n */\n find(pred) {\n return pred instanceof Function ? this.items.find(pred) : this.items.find(x => x.id == pred.id);\n }\n\n /**\n * Find item index by id or using a predicate function\n */\n findIndex(pred) {\n return pred instanceof Function ? this.items.findIndex(pred) : this.items.findIndex(x => x.id == pred.id);\n }\n\n /**\n * Add item to set, return index.\n */\n push(item, {\n args = {},\n save = true\n } = {}) {\n item = item instanceof this.model ? item : new this.model(item, args);\n if (this.unique) {\n let index = this.findIndex(item);\n if (index > -1) return index;\n }\n if (this.max && this.items.length >= this.max) this.items.splice(0, this.items.length - this.max);\n this.items.push(item);\n save && this.save();\n return this.items.length - 1;\n }\n\n /**\n * Remove item from set by index\n */\n remove(index, {\n save = true\n } = {}) {\n this.items.splice(index, 1);\n save && this.save();\n }\n\n /**\n * Clear items, assign new ones\n */\n reset(items = []) {\n // TODO: check reactivity\n this.items = [];\n for (var item of items) this.push(item);\n }\n move(from, to) {\n if (from >= this.length || to > this.length) throw \"source or target index is not in range\";\n const value = this.items[from];\n this.items.splice(from, 1);\n this.items.splice(to, 0, value);\n }\n}\nSet[Symbol.iterator] = function () {\n return this.items[Symbol.iterator]();\n};\n\n//# sourceURL=webpack://aircox-assets/./src/model.js?"); /***/ }), @@ -419,6 +439,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AAu /***/ }), +/***/ "./src/components/ADropdown.vue": +/*!**************************************!*\ + !*** ./src/components/ADropdown.vue ***! + \**************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ADropdown_vue_vue_type_template_id_a87ed2dc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ADropdown.vue?vue&type=template&id=a87ed2dc */ \"./src/components/ADropdown.vue?vue&type=template&id=a87ed2dc\");\n/* harmony import */ var _ADropdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ADropdown.vue?vue&type=script&lang=js */ \"./src/components/ADropdown.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ADropdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ADropdown_vue_vue_type_template_id_a87ed2dc__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ADropdown.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ADropdown.vue?"); + +/***/ }), + /***/ "./src/components/AEpisode.vue": /*!*************************************!*\ !*** ./src/components/AEpisode.vue ***! @@ -559,6 +589,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./src/components/ADropdown.vue?vue&type=script&lang=js": +/*!**************************************************************!*\ + !*** ./src/components/ADropdown.vue?vue&type=script&lang=js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ADropdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ADropdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ADropdown.vue?vue&type=script&lang=js */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ADropdown.vue?vue&type=script&lang=js\");\n \n\n//# sourceURL=webpack://aircox-assets/./src/components/ADropdown.vue?"); + +/***/ }), + /***/ "./src/components/AEpisode.vue?vue&type=script&lang=js": /*!*************************************************************!*\ !*** ./src/components/AEpisode.vue?vue&type=script&lang=js ***! @@ -699,6 +739,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./src/components/ADropdown.vue?vue&type=template&id=a87ed2dc": +/*!********************************************************************!*\ + !*** ./src/components/ADropdown.vue?vue&type=template&id=a87ed2dc ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ADropdown_vue_vue_type_template_id_a87ed2dc__WEBPACK_IMPORTED_MODULE_0__.render; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ADropdown_vue_vue_type_template_id_a87ed2dc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ADropdown.vue?vue&type=template&id=a87ed2dc */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ADropdown.vue?vue&type=template&id=a87ed2dc\");\n\n\n//# sourceURL=webpack://aircox-assets/./src/components/ADropdown.vue?"); + +/***/ }), + /***/ "./src/components/AEpisode.vue?vue&type=template&id=2e4db98a": /*!*******************************************************************!*\ !*** ./src/components/AEpisode.vue?vue&type=template&id=2e4db98a ***! diff --git a/aircox/static/aircox/js/chunk-vendors.js b/aircox/static/aircox/js/chunk-vendors.js index 4dddfab..bb06507 100644 --- a/aircox/static/aircox/js/chunk-vendors.js +++ b/aircox/static/aircox/js/chunk-vendors.js @@ -106,6 +106,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/vue3-carousel/dist/carousel.es.js": +/*!********************************************************!*\ + !*** ./node_modules/vue3-carousel/dist/carousel.es.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Carousel\": function() { return /* binding */ Carousel; },\n/* harmony export */ \"Icon\": function() { return /* binding */ Icon; },\n/* harmony export */ \"Navigation\": function() { return /* binding */ Navigation; },\n/* harmony export */ \"Pagination\": function() { return /* binding */ Pagination; },\n/* harmony export */ \"Slide\": function() { return /* binding */ Slide; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\n/**\n * Vue 3 Carousel 0.3.1\n * (c) 2023\n * @license MIT\n */\n\nconst defaultConfigs = {\n itemsToShow: 1,\n itemsToScroll: 1,\n modelValue: 0,\n transition: 300,\n autoplay: 0,\n snapAlign: 'center',\n wrapAround: false,\n throttle: 16,\n pauseAutoplayOnHover: false,\n mouseDrag: true,\n touchDrag: true,\n dir: 'ltr',\n breakpoints: undefined,\n i18n: {\n ariaNextSlide: 'Navigate to next slide',\n ariaPreviousSlide: 'Navigate to previous slide',\n ariaNavigateToSlide: 'Navigate to slide {slideNumber}',\n ariaGallery: 'Gallery',\n itemXofY: 'Item {currentSlide} of {slidesCount}',\n iconArrowUp: 'Arrow pointing upwards',\n iconArrowDown: 'Arrow pointing downwards',\n iconArrowRight: 'Arrow pointing to the right',\n iconArrowLeft: 'Arrow pointing to the left'\n }\n};\nconst carouselProps = {\n // count of items to showed per view\n itemsToShow: {\n default: defaultConfigs.itemsToShow,\n type: Number\n },\n // count of items to be scrolled\n itemsToScroll: {\n default: defaultConfigs.itemsToScroll,\n type: Number\n },\n // control infinite scrolling mode\n wrapAround: {\n default: defaultConfigs.wrapAround,\n type: Boolean\n },\n // control max drag\n throttle: {\n default: defaultConfigs.throttle,\n type: Number\n },\n // control snap position alignment\n snapAlign: {\n default: defaultConfigs.snapAlign,\n validator(value) {\n // The value must match one of these strings\n return ['start', 'end', 'center', 'center-even', 'center-odd'].includes(value);\n }\n },\n // sliding transition time in ms\n transition: {\n default: defaultConfigs.transition,\n type: Number\n },\n // an object to store breakpoints\n breakpoints: {\n default: defaultConfigs.breakpoints,\n type: Object\n },\n // time to auto advance slides in ms\n autoplay: {\n default: defaultConfigs.autoplay,\n type: Number\n },\n // pause autoplay when mouse hover over the carousel\n pauseAutoplayOnHover: {\n default: defaultConfigs.pauseAutoplayOnHover,\n type: Boolean\n },\n // slide number number of initial slide\n modelValue: {\n default: undefined,\n type: Number\n },\n // toggle mouse dragging.\n mouseDrag: {\n default: defaultConfigs.mouseDrag,\n type: Boolean\n },\n // toggle mouse dragging.\n touchDrag: {\n default: defaultConfigs.touchDrag,\n type: Boolean\n },\n // control snap position alignment\n dir: {\n default: defaultConfigs.dir,\n validator(value) {\n // The value must match one of these strings\n return ['rtl', 'ltr'].includes(value);\n }\n },\n // aria-labels and additional text labels\n i18n: {\n default: defaultConfigs.i18n,\n type: Object\n },\n // an object to pass all settings\n settings: {\n default() {\n return {};\n },\n type: Object\n }\n};\nfunction getMaxSlideIndex({\n config,\n slidesCount\n}) {\n const {\n snapAlign,\n wrapAround,\n itemsToShow = 1\n } = config;\n if (wrapAround) {\n return Math.max(slidesCount - 1, 0);\n }\n let output;\n switch (snapAlign) {\n case 'start':\n output = slidesCount - itemsToShow;\n break;\n case 'end':\n output = slidesCount - 1;\n break;\n case 'center':\n case 'center-odd':\n output = slidesCount - Math.ceil((itemsToShow - 0.5) / 2);\n break;\n case 'center-even':\n output = slidesCount - Math.ceil(itemsToShow / 2);\n break;\n default:\n output = 0;\n break;\n }\n return Math.max(output, 0);\n}\nfunction getMinSlideIndex({\n config,\n slidesCount\n}) {\n const {\n wrapAround,\n snapAlign,\n itemsToShow = 1\n } = config;\n let output = 0;\n if (wrapAround || itemsToShow > slidesCount) {\n return output;\n }\n switch (snapAlign) {\n case 'start':\n output = 0;\n break;\n case 'end':\n output = itemsToShow - 1;\n break;\n case 'center':\n case 'center-odd':\n output = Math.floor((itemsToShow - 1) / 2);\n break;\n case 'center-even':\n output = Math.floor((itemsToShow - 2) / 2);\n break;\n default:\n output = 0;\n break;\n }\n return output;\n}\nfunction getNumberInRange({\n val,\n max,\n min\n}) {\n if (max < min) {\n return val;\n }\n return Math.min(Math.max(val, min), max);\n}\nfunction getSlidesToScroll({\n config,\n currentSlide,\n slidesCount\n}) {\n const {\n snapAlign,\n wrapAround,\n itemsToShow = 1\n } = config;\n let output = currentSlide;\n switch (snapAlign) {\n case 'center':\n case 'center-odd':\n output -= (itemsToShow - 1) / 2;\n break;\n case 'center-even':\n output -= (itemsToShow - 2) / 2;\n break;\n case 'end':\n output -= itemsToShow - 1;\n break;\n }\n if (wrapAround) {\n return output;\n }\n return getNumberInRange({\n val: output,\n max: slidesCount - itemsToShow,\n min: 0\n });\n}\nfunction getSlidesVNodes(vNode) {\n if (!vNode) return [];\n return vNode.reduce((acc, node) => {\n var _a;\n if (node.type === vue__WEBPACK_IMPORTED_MODULE_1__.Fragment) {\n return [...acc, ...getSlidesVNodes(node.children)];\n }\n if (((_a = node.type) === null || _a === void 0 ? void 0 : _a.name) === 'CarouselSlide') {\n return [...acc, node];\n }\n return acc;\n }, []);\n}\nfunction mapNumberToRange({\n val,\n max,\n min = 0\n}) {\n if (val > max) {\n return mapNumberToRange({\n val: val - (max + 1),\n max,\n min\n });\n }\n if (val < min) {\n return mapNumberToRange({\n val: val + (max + 1),\n max,\n min\n });\n }\n return val;\n}\n\n/**\r\n * return a throttle version of the function\r\n * Throttling\r\n *\r\n */\n// eslint-disable-next-line no-unused-vars\nfunction throttle(fn, limit) {\n let inThrottle;\n if (!limit) {\n return fn;\n }\n return function (...args) {\n const self = this;\n if (!inThrottle) {\n fn.apply(self, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\n/**\r\n * return a debounced version of the function\r\n * @param fn\r\n * @param delay\r\n */\n// eslint-disable-next-line no-unused-vars\nfunction debounce(fn, delay) {\n let timerId;\n return function (...args) {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(() => {\n fn(...args);\n timerId = null;\n }, delay);\n };\n}\nfunction i18nFormatter(string = '', values = {}) {\n return Object.entries(values).reduce((acc, [key, value]) => acc.replace(`{${key}}`, String(value)), string);\n}\nvar ARIAComponent = (0,vue__WEBPACK_IMPORTED_MODULE_1__.defineComponent)({\n name: 'ARIA',\n setup() {\n const config = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('config', (0,vue__WEBPACK_IMPORTED_MODULE_1__.reactive)(Object.assign({}, defaultConfigs)));\n const currentSlide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('currentSlide', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0));\n const slidesCount = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('slidesCount', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0));\n return () => (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('div', {\n class: ['carousel__liveregion', 'carousel__sr-only'],\n 'aria-live': 'polite',\n 'aria-atomic': 'true'\n }, i18nFormatter(config.i18n['itemXofY'], {\n currentSlide: currentSlide.value + 1,\n slidesCount: slidesCount.value\n }));\n }\n});\nvar Carousel = (0,vue__WEBPACK_IMPORTED_MODULE_1__.defineComponent)({\n name: 'Carousel',\n props: carouselProps,\n setup(props, {\n slots,\n emit,\n expose\n }) {\n var _a;\n const root = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(null);\n const slides = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)([]);\n const slideWidth = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0);\n const slidesCount = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0);\n // current config\n const config = (0,vue__WEBPACK_IMPORTED_MODULE_1__.reactive)(Object.assign({}, defaultConfigs));\n // default carousel configs\n let __defaultConfig = Object.assign({}, defaultConfigs);\n // breakpoints configs\n let breakpoints;\n // slides\n const currentSlideIndex = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)((_a = props.modelValue) !== null && _a !== void 0 ? _a : 0);\n const prevSlideIndex = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0);\n const middleSlideIndex = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0);\n const maxSlideIndex = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0);\n const minSlideIndex = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0);\n let autoplayTimer;\n let transitionTimer;\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('config', config);\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('slidesCount', slidesCount);\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('currentSlide', currentSlideIndex);\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('maxSlide', maxSlideIndex);\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('minSlide', minSlideIndex);\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('slideWidth', slideWidth);\n /**\r\n * Configs\r\n */\n function initDefaultConfigs() {\n breakpoints = Object.assign({}, props.breakpoints);\n __defaultConfig = Object.assign(Object.assign(Object.assign({}, __defaultConfig), props), {\n i18n: Object.assign(Object.assign({}, __defaultConfig.i18n), props.i18n),\n breakpoints: undefined\n });\n bindConfigs(__defaultConfig);\n }\n function updateBreakpointsConfigs() {\n if (!breakpoints || !Object.keys(breakpoints).length) return;\n const breakpointsArray = Object.keys(breakpoints).map(key => Number(key)).sort((a, b) => +b - +a);\n let newConfig = Object.assign({}, __defaultConfig);\n breakpointsArray.some(breakpoint => {\n const isMatched = window.matchMedia(`(min-width: ${breakpoint}px)`).matches;\n if (isMatched) {\n newConfig = Object.assign(Object.assign({}, newConfig), breakpoints[breakpoint]);\n }\n return isMatched;\n });\n bindConfigs(newConfig);\n }\n function bindConfigs(newConfig) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n Object.entries(newConfig).forEach(([key, val]) => config[key] = val);\n }\n const handleWindowResize = debounce(() => {\n updateBreakpointsConfigs();\n updateSlideWidth();\n }, 16);\n /**\r\n * Setup functions\r\n */\n function updateSlideWidth() {\n if (!root.value) return;\n const rect = root.value.getBoundingClientRect();\n slideWidth.value = rect.width / config.itemsToShow;\n }\n function updateSlidesData() {\n if (slidesCount.value <= 0) return;\n middleSlideIndex.value = Math.ceil((slidesCount.value - 1) / 2);\n maxSlideIndex.value = getMaxSlideIndex({\n config,\n slidesCount: slidesCount.value\n });\n minSlideIndex.value = getMinSlideIndex({\n config,\n slidesCount: slidesCount.value\n });\n if (!config.wrapAround) {\n currentSlideIndex.value = getNumberInRange({\n val: currentSlideIndex.value,\n max: maxSlideIndex.value,\n min: minSlideIndex.value\n });\n }\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onMounted)(() => {\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => updateSlideWidth());\n // Overcome some edge cases\n setTimeout(() => updateSlideWidth(), 1000);\n updateBreakpointsConfigs();\n initAutoplay();\n window.addEventListener('resize', handleWindowResize, {\n passive: true\n });\n emit('init');\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onUnmounted)(() => {\n if (transitionTimer) {\n clearTimeout(transitionTimer);\n }\n if (autoplayTimer) {\n clearInterval(autoplayTimer);\n }\n window.removeEventListener('resize', handleWindowResize, {\n passive: true\n });\n });\n /**\r\n * Carousel Event listeners\r\n */\n let isTouch = false;\n const startPosition = {\n x: 0,\n y: 0\n };\n const endPosition = {\n x: 0,\n y: 0\n };\n const dragged = (0,vue__WEBPACK_IMPORTED_MODULE_1__.reactive)({\n x: 0,\n y: 0\n });\n const isHover = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(false);\n const isDragging = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(false);\n const handleMouseEnter = () => {\n isHover.value = true;\n };\n const handleMouseLeave = () => {\n isHover.value = false;\n };\n function handleDragStart(event) {\n if (['INPUT', 'TEXTAREA', 'SELECT'].includes(event.target.tagName)) {\n return;\n }\n isTouch = event.type === 'touchstart';\n if (!isTouch) {\n event.preventDefault();\n }\n if (!isTouch && event.button !== 0 || isSliding.value) {\n return;\n }\n startPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\n startPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\n document.addEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\n document.addEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\n }\n const handleDragging = throttle(event => {\n isDragging.value = true;\n endPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\n endPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\n const deltaX = endPosition.x - startPosition.x;\n const deltaY = endPosition.y - startPosition.y;\n dragged.y = deltaY;\n dragged.x = deltaX;\n }, config.throttle);\n function handleDragEnd() {\n const direction = config.dir === 'rtl' ? -1 : 1;\n const tolerance = Math.sign(dragged.x) * 0.4;\n const draggedSlides = Math.round(dragged.x / slideWidth.value + tolerance) * direction;\n // Prevent clicking if there is clicked slides\n if (draggedSlides && !isTouch) {\n const captureClick = e => {\n e.stopPropagation();\n window.removeEventListener('click', captureClick, true);\n };\n window.addEventListener('click', captureClick, true);\n }\n slideTo(currentSlideIndex.value - draggedSlides);\n dragged.x = 0;\n dragged.y = 0;\n isDragging.value = false;\n document.removeEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\n document.removeEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\n }\n /**\r\n * Autoplay\r\n */\n function initAutoplay() {\n if (!config.autoplay || config.autoplay <= 0) {\n return;\n }\n autoplayTimer = setInterval(() => {\n if (config.pauseAutoplayOnHover && isHover.value) {\n return;\n }\n next();\n }, config.autoplay);\n }\n function resetAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer);\n autoplayTimer = null;\n }\n initAutoplay();\n }\n /**\r\n * Navigation function\r\n */\n const isSliding = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(false);\n function slideTo(slideIndex) {\n const currentVal = config.wrapAround ? slideIndex : getNumberInRange({\n val: slideIndex,\n max: maxSlideIndex.value,\n min: minSlideIndex.value\n });\n if (currentSlideIndex.value === currentVal || isSliding.value) {\n return;\n }\n emit('slide-start', {\n slidingToIndex: slideIndex,\n currentSlideIndex: currentSlideIndex.value,\n prevSlideIndex: prevSlideIndex.value,\n slidesCount: slidesCount.value\n });\n isSliding.value = true;\n prevSlideIndex.value = currentSlideIndex.value;\n currentSlideIndex.value = currentVal;\n transitionTimer = setTimeout(() => {\n if (config.wrapAround) {\n const mappedNumber = mapNumberToRange({\n val: currentVal,\n max: maxSlideIndex.value,\n min: 0\n });\n if (mappedNumber !== currentSlideIndex.value) {\n currentSlideIndex.value = mappedNumber;\n emit('loop', {\n currentSlideIndex: currentSlideIndex.value,\n slidingToIndex: slideIndex\n });\n }\n }\n emit('update:modelValue', currentSlideIndex.value);\n emit('slide-end', {\n currentSlideIndex: currentSlideIndex.value,\n prevSlideIndex: prevSlideIndex.value,\n slidesCount: slidesCount.value\n });\n isSliding.value = false;\n resetAutoplay();\n }, config.transition);\n }\n function next() {\n slideTo(currentSlideIndex.value + config.itemsToScroll);\n }\n function prev() {\n slideTo(currentSlideIndex.value - config.itemsToScroll);\n }\n const nav = {\n slideTo,\n next,\n prev\n };\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('nav', nav);\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('isSliding', isSliding);\n /**\r\n * Track style\r\n */\n const slidesToScroll = (0,vue__WEBPACK_IMPORTED_MODULE_1__.computed)(() => getSlidesToScroll({\n config,\n currentSlide: currentSlideIndex.value,\n slidesCount: slidesCount.value\n }));\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.provide)('slidesToScroll', slidesToScroll);\n const trackStyle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {\n const direction = config.dir === 'rtl' ? -1 : 1;\n const xScroll = slidesToScroll.value * slideWidth.value * direction;\n return {\n transform: `translateX(${dragged.x - xScroll}px)`,\n transition: `${isSliding.value ? config.transition : 0}ms`,\n margin: config.wrapAround ? `0 -${slidesCount.value * slideWidth.value}px` : '',\n width: `100%`\n };\n });\n function restartCarousel() {\n initDefaultConfigs();\n updateBreakpointsConfigs();\n updateSlidesData();\n updateSlideWidth();\n resetAutoplay();\n }\n // Update the carousel on props change\n Object.keys(carouselProps).forEach(prop => {\n if (['modelValue'].includes(prop)) return;\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.watch)(() => props[prop], restartCarousel);\n });\n // Handle changing v-model value\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.watch)(() => props['modelValue'], val => {\n if (val === currentSlideIndex.value) {\n return;\n }\n slideTo(Number(val));\n });\n // Handel when slides added/removed\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.watch)(slidesCount, updateSlidesData);\n // Init carousel\n emit('before-init');\n initDefaultConfigs();\n const data = {\n config,\n slidesCount,\n slideWidth,\n next,\n prev,\n slideTo,\n currentSlide: currentSlideIndex,\n maxSlide: maxSlideIndex,\n minSlide: minSlideIndex,\n middleSlide: middleSlideIndex\n };\n expose({\n updateBreakpointsConfigs,\n updateSlidesData,\n updateSlideWidth,\n initDefaultConfigs,\n restartCarousel,\n slideTo,\n next,\n prev,\n nav,\n data\n });\n const slotSlides = slots.default || slots.slides;\n const slotAddons = slots.addons;\n const slotsProps = (0,vue__WEBPACK_IMPORTED_MODULE_1__.reactive)(data);\n return () => {\n const slidesElements = getSlidesVNodes(slotSlides === null || slotSlides === void 0 ? void 0 : slotSlides(slotsProps));\n const addonsElements = (slotAddons === null || slotAddons === void 0 ? void 0 : slotAddons(slotsProps)) || [];\n slidesElements.forEach((el, index) => el.props.index = index);\n let output = slidesElements;\n if (config.wrapAround) {\n const slidesBefore = slidesElements.map((el, index) => (0,vue__WEBPACK_IMPORTED_MODULE_1__.cloneVNode)(el, {\n index: -slidesElements.length + index,\n isClone: true,\n key: `clone-before-${index}`\n }));\n const slidesAfter = slidesElements.map((el, index) => (0,vue__WEBPACK_IMPORTED_MODULE_1__.cloneVNode)(el, {\n index: slidesElements.length + index,\n isClone: true,\n key: `clone-after-${index}`\n }));\n output = [...slidesBefore, ...slidesElements, ...slidesAfter];\n }\n slides.value = slidesElements;\n slidesCount.value = Math.max(slidesElements.length, 1);\n const trackEl = (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('ol', {\n class: 'carousel__track',\n style: trackStyle.value,\n onMousedownCapture: config.mouseDrag ? handleDragStart : null,\n onTouchstartPassiveCapture: config.touchDrag ? handleDragStart : null\n }, output);\n const viewPortEl = (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('div', {\n class: 'carousel__viewport'\n }, trackEl);\n return (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('section', {\n ref: root,\n class: {\n carousel: true,\n 'is-sliding': isSliding.value,\n 'is-dragging': isDragging.value,\n 'is-hover': isHover.value,\n 'carousel--rtl': config.dir === 'rtl'\n },\n dir: config.dir,\n 'aria-label': config.i18n['ariaGallery'],\n tabindex: '0',\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave\n }, [viewPortEl, addonsElements, (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)(ARIAComponent)]);\n };\n }\n});\nvar IconName;\n(function (IconName) {\n IconName[\"arrowUp\"] = \"arrowUp\";\n IconName[\"arrowDown\"] = \"arrowDown\";\n IconName[\"arrowRight\"] = \"arrowRight\";\n IconName[\"arrowLeft\"] = \"arrowLeft\";\n})(IconName || (IconName = {}));\nconst icons = {\n arrowUp: 'M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z',\n arrowDown: 'M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z',\n arrowRight: 'M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z',\n arrowLeft: 'M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z'\n};\nfunction isIconName(candidate) {\n return candidate in IconName;\n}\nconst Icon = props => {\n const config = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('config', (0,vue__WEBPACK_IMPORTED_MODULE_1__.reactive)(Object.assign({}, defaultConfigs)));\n const iconName = String(props.name);\n const iconI18n = `icon${iconName.charAt(0).toUpperCase() + iconName.slice(1)}`;\n if (!iconName || typeof iconName !== 'string' || !isIconName(iconName)) {\n return;\n }\n const path = icons[iconName];\n const pathEl = (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('path', {\n d: path\n });\n const iconTitle = config.i18n[iconI18n] || props.title || iconName;\n const titleEl = (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('title', iconTitle);\n return (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('svg', {\n class: 'carousel__icon',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-label': iconTitle\n }, [titleEl, pathEl]);\n};\nIcon.props = {\n name: String,\n title: String\n};\nconst Navigation = (props, {\n slots,\n attrs\n}) => {\n const {\n next: slotNext,\n prev: slotPrev\n } = slots || {};\n const config = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('config', (0,vue__WEBPACK_IMPORTED_MODULE_1__.reactive)(Object.assign({}, defaultConfigs)));\n const maxSlide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('maxSlide', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(1));\n const minSlide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('minSlide', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(1));\n const currentSlide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('currentSlide', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(1));\n const nav = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('nav', {});\n const {\n dir,\n wrapAround,\n i18n\n } = config;\n const isRTL = dir === 'rtl';\n const prevButton = (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('button', {\n type: 'button',\n class: ['carousel__prev', !wrapAround && currentSlide.value <= minSlide.value && 'carousel__prev--disabled', attrs === null || attrs === void 0 ? void 0 : attrs.class],\n 'aria-label': i18n['ariaPreviousSlide'],\n onClick: nav.prev\n }, (slotPrev === null || slotPrev === void 0 ? void 0 : slotPrev()) || (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)(Icon, {\n name: isRTL ? 'arrowRight' : 'arrowLeft'\n }));\n const nextButton = (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('button', {\n type: 'button',\n class: ['carousel__next', !wrapAround && currentSlide.value >= maxSlide.value && 'carousel__next--disabled', attrs === null || attrs === void 0 ? void 0 : attrs.class],\n 'aria-label': i18n['ariaNextSlide'],\n onClick: nav.next\n }, (slotNext === null || slotNext === void 0 ? void 0 : slotNext()) || (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)(Icon, {\n name: isRTL ? 'arrowLeft' : 'arrowRight'\n }));\n return [prevButton, nextButton];\n};\nconst Pagination = () => {\n const config = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('config', (0,vue__WEBPACK_IMPORTED_MODULE_1__.reactive)(Object.assign({}, defaultConfigs)));\n const maxSlide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('maxSlide', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(1));\n const minSlide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('minSlide', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(1));\n const currentSlide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('currentSlide', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(1));\n const nav = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('nav', {});\n const isActive = slide => mapNumberToRange({\n val: currentSlide.value,\n max: maxSlide.value,\n min: 0\n }) === slide;\n const children = [];\n for (let slide = minSlide.value; slide < maxSlide.value + 1; slide++) {\n const button = (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('button', {\n type: 'button',\n class: {\n 'carousel__pagination-button': true,\n 'carousel__pagination-button--active': isActive(slide)\n },\n 'aria-label': i18nFormatter(config.i18n['ariaNavigateToSlide'], {\n slideNumber: slide + 1\n }),\n onClick: () => nav.slideTo(slide)\n });\n const item = (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('li', {\n class: 'carousel__pagination-item',\n key: slide\n }, button);\n children.push(item);\n }\n return (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('ol', {\n class: 'carousel__pagination'\n }, children);\n};\nvar Slide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.defineComponent)({\n name: 'CarouselSlide',\n props: {\n index: {\n type: Number,\n default: 1\n },\n isClone: {\n type: Boolean,\n default: false\n }\n },\n setup(props, {\n slots\n }) {\n const config = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('config', (0,vue__WEBPACK_IMPORTED_MODULE_1__.reactive)(Object.assign({}, defaultConfigs)));\n const currentSlide = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('currentSlide', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0));\n const slidesToScroll = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('slidesToScroll', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0));\n const isSliding = (0,vue__WEBPACK_IMPORTED_MODULE_1__.inject)('isSliding', (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(false));\n const isActive = () => props.index === currentSlide.value;\n const isPrev = () => props.index === currentSlide.value - 1;\n const isNext = () => props.index === currentSlide.value + 1;\n const isVisible = () => {\n const min = Math.floor(slidesToScroll.value);\n const max = Math.ceil(slidesToScroll.value + config.itemsToShow - 1);\n return props.index >= min && props.index <= max;\n };\n return () => {\n var _a;\n return (0,vue__WEBPACK_IMPORTED_MODULE_1__.h)('li', {\n style: {\n width: `${100 / config.itemsToShow}%`\n },\n class: {\n carousel__slide: true,\n 'carousel__slide--clone': props.isClone,\n 'carousel__slide--visible': isVisible(),\n 'carousel__slide--active': isActive(),\n 'carousel__slide--prev': isPrev(),\n 'carousel__slide--next': isNext(),\n 'carousel__slide--sliding': isSliding.value\n },\n 'aria-hidden': !isVisible()\n }, (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots));\n };\n }\n});\n\n\n//# sourceURL=webpack://aircox-assets/./node_modules/vue3-carousel/dist/carousel.es.js?"); + +/***/ }), + /***/ "./node_modules/core-js/internals/a-callable.js": /*!******************************************************!*\ !*** ./node_modules/core-js/internals/a-callable.js ***! @@ -840,6 +851,17 @@ eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/ "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://aircox-assets/./node_modules/@fortawesome/fontawesome-free/css/all.min.css?"); +/***/ }), + +/***/ "./node_modules/vue3-carousel/dist/carousel.css": +/*!******************************************************!*\ + !*** ./node_modules/vue3-carousel/dist/carousel.css ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://aircox-assets/./node_modules/vue3-carousel/dist/carousel.css?"); + /***/ }) }]); diff --git a/aircox/templates/aircox/base.html b/aircox/templates/aircox/base.html index 097b4c9..c9ec1d1 100644 --- a/aircox/templates/aircox/base.html +++ b/aircox/templates/aircox/base.html @@ -49,7 +49,7 @@ Usefull context: