diff --git a/district/blocks.py b/district/blocks.py index 469f09a0fef841b820f429df3ec0d6879ede1e6d..3e98158a20c86ab9348ba92e7c1625708b112a04 100644 --- a/district/blocks.py +++ b/district/blocks.py @@ -154,7 +154,6 @@ class CardLinkBlock(CardLinkBlockMixin): "district.DistrictContactPage", "district.DistrictCrossroadPage", "district.DistrictCustomPage", - "district.DistrictElectionRootPage", "district.DistrictPeoplePage", "district.DistrictProgramPage", "district.DistrictInteractiveProgramPage", @@ -283,7 +282,6 @@ class CardLinkBlock(CardLinkBlockMixin): "district.DistrictCustomPage", "district.DistrictElectionCampaignPage", "district.DistrictElectionProgramPage", - "district.DistrictElectionRootPage", "district.DistrictPeoplePage", "district.DistrictPersonPage", "district.DistrictPostElectionStrategyPage", diff --git a/district/migrations/0068_districtelectioncampaignpage_and_more.py b/district/migrations/0068_districtelectioncampaignpage_and_more.py index 6de9ff058a17b62de65a3fcc024faf07d4247462..e20c9b3eb5e2c675aebf4768050efd44b70aaada 100644 --- a/district/migrations/0068_districtelectioncampaignpage_and_more.py +++ b/district/migrations/0068_districtelectioncampaignpage_and_more.py @@ -9,7 +9,6 @@ import wagtail.images.blocks import wagtailmetadata.models from django.db import migrations, models -import district.models import shared.models @@ -10002,7 +10001,7 @@ class Migration(migrations.Migration): "verbose_name": "Bod programu voleb", }, bases=( - district.models.DistrictElectionSubCampaignPageMixin, + # district.models.DistrictElectionSubCampaignPageMixin, shared.models.SubpageMixin, wagtailmetadata.models.WagtailImageMetadataMixin, "wagtailcore.page", @@ -14885,7 +14884,7 @@ class Migration(migrations.Migration): "verbose_name": "Povolební strategie", }, bases=( - district.models.DistrictElectionSubCampaignPageMixin, + # district.models.DistrictElectionSubCampaignPageMixin, shared.models.SubpageMixin, wagtailmetadata.models.WagtailImageMetadataMixin, "wagtailcore.page", diff --git a/district/migrations/0218_auto_20240601_1530.py b/district/migrations/0218_auto_20240601_1530.py index 2ae930bceec06a78e25a41cdc30f3dd37880461c..84fb952c542ddfd23a665db940260c51065cefe0 100644 --- a/district/migrations/0218_auto_20240601_1530.py +++ b/district/migrations/0218_auto_20240601_1530.py @@ -1,16 +1,24 @@ # Generated by Django 5.0.4 on 2024-06-01 13:30 -from django.db import migrations, transaction import wagtail +from django.apps import apps as base_apps +from django.contrib.contenttypes.management import create_contenttypes +from django.db import migrations, transaction -from district.blocks import ProgramGroupWithCandidatesBlock, CandidateListBlock, CandidateBlock, CandidateSecondaryListBlock, SecondaryCandidateBlock, ProgramGroupBlockPopout -from shared.blocks import SocialLinkBlock, ProgramBlockPopout +from district.blocks import ( + ProgramGroupWithCandidatesBlock, +) +from shared.blocks import SocialLinkBlock def migrate_programs(apps, schema_editor): # Get the models DistrictHomePage = apps.get_model("district", "DistrictHomePage") + # Update content types, as they may not yet have been created. + # This is very ugly, but must be done. + create_contenttypes(base_apps.get_app_config("district")) + DistrictElectionRootPage = apps.get_model("district", "DistrictElectionRootPage") DistrictElectionCampaignPage = apps.get_model( "district", "DistrictElectionCampaignPage" @@ -54,6 +62,7 @@ def migrate_programs(apps, schema_editor): program_post_election_strategy_content_type = ContentType.objects.get( app_label="district", model="districtpostelectionstrategypage" ) + new_program_page_content_type = ContentType.objects.get( app_label="district", model="districtnewprogrampage" ) @@ -105,7 +114,7 @@ def migrate_programs(apps, schema_editor): # Update numchild on the home page home_page.numchild = home_page.numchild + 1 home_page.save(update_fields=["numchild"]) - + # Iterate over all child DistrictElectionRootPage instances for election_root_page in get_children_of_type( DistrictElectionRootPage, home_page, root_page_content_type @@ -124,10 +133,8 @@ def migrate_programs(apps, schema_editor): # Title "title": "", # Done "order": 0, - # Post-election - "post_election_strategies": [], - + "post_election_strategies": [], # Candidates "candidate_list_number": "", "candidate_list_title": "", # Done @@ -135,13 +142,11 @@ def migrate_programs(apps, schema_editor): "candidate_blocks": [], # Done "combined_candidates": [], # Done "primary_candidate_count": 0, # Done - # Program "program_title": "", "program_points": [], "program_is_inline": False, "program_content_before": "", # Done - # Misc. "funding_info": "", } @@ -155,9 +160,11 @@ def migrate_programs(apps, schema_editor): program_data["order"] = campaign_page.order program_data["candidate_list_number"] = campaign_page.number - program_data[ - "candidate_list_title" - ] = campaign_page.candidate_list_title + program_data["candidate_list_title"] = ( + campaign_page.candidate_list_title + if campaign_page.candidate_list_title + else campaign_page.title + ) program_data["program_title"] = ( campaign_page.program_point_list_title @@ -183,9 +190,12 @@ def migrate_programs(apps, schema_editor): for candidate in candidate_list["candidate_list"]: if candidate["type"] == "person_page": - if DistrictPersonPage.objects.filter( - id=candidate["value"] - ).first() is None: + if ( + DistrictPersonPage.objects.filter( + id=candidate["value"] + ).first() + is None + ): # We have nothing to do here, this page ID is either unfilled or points to a missing page continue @@ -349,7 +359,9 @@ def migrate_programs(apps, schema_editor): age=candidate_block["data"]["age"], is_pirate=candidate_block["data"]["is_pirate"], other_party=candidate_block["data"]["other_party"], - other_party_logo_id=candidate_block["data"]["other_party_logo"], + other_party_logo_id=candidate_block["data"][ + "other_party_logo" + ], social_links=social_links, content_type_id=people_page_content_type.id, locale_id=default_locale.id, @@ -375,32 +387,38 @@ def migrate_programs(apps, schema_editor): primary_candidates = [] secondary_candidates = [] - for position, candidate in enumerate(program_data["combined_candidates"]): + for position, candidate in enumerate( + program_data["combined_candidates"] + ): if position <= program_data["primary_candidate_count"]: - primary_candidates.append({ # CandidateBlock value for CandidateListBlock - "page": candidate["page"].id, - "description": ( - candidate["page"].perex - if len(candidate["page"].perex) > 32 - else ( - candidate["page"].job - if candidate["page"].job - else candidate["page"].position - ) - ), - "image": ( - candidate["page"].profile_image.id - # Not sure why there is a need to check for the second condition. - # But, without it, the migration crashes on some images. - if candidate["page"].profile_image is not None - else 0 - ) - }) + primary_candidates.append( + { # CandidateBlock value for CandidateListBlock + "page": candidate["page"].id, + "description": ( + candidate["page"].perex + if len(candidate["page"].perex) > 32 + else ( + candidate["page"].job + if candidate["page"].job + else candidate["page"].position + ) + ), + "image": ( + candidate["page"].profile_image.id + # Not sure why there is a need to check for the second condition. + # But, without it, the migration crashes on some images. + if candidate["page"].profile_image is not None + else 0 + ), + } + ) else: - secondary_candidates.append({ # SecondaryCandidateBlock value for CandidateSecondaryListBlock - "number": candidate["position"], - "page": candidate["page"].id, - }) + secondary_candidates.append( + { # SecondaryCandidateBlock value for CandidateSecondaryListBlock + "number": candidate["position"], + "page": candidate["page"].id, + } + ) primary_candidates_block = { # Acts as CandidateListBlock @@ -417,32 +435,36 @@ def migrate_programs(apps, schema_editor): # There's no time left to set this up properly. We'll just use # inline points for everything, at least for now. - + # Create program point blocks program_points = [] for program_point in program_data["program_points"]: - program_points.append({ # Act as ProgramBlockPopout - "title": program_point["title"], - "content": str(program_point["content"]), - "guarantor": ( - program_point["guarantor_page"].id - if program_point["guarantor_page"] - else None - ) - }) + program_points.append( + { # Act as ProgramBlockPopout + "title": program_point["title"], + "content": str(program_point["content"]), + "guarantor": ( + program_point["guarantor_page"].id + if program_point["guarantor_page"] + else None + ), + } + ) - program_categories = [{ # Act as ProgramPopoutCategory - "name": program_data["candidate_list_title"], - "point_list": program_points - }] + program_categories = [ + { # Act as ProgramPopoutCategory + "name": program_data["candidate_list_title"], + "point_list": program_points, + } + ] program_block = { "type": "program_group_popout", "value": { "title": program_data["program_title"], - "categories": program_categories - } + "categories": program_categories, + }, } # Finally, create a block for this program @@ -450,18 +472,15 @@ def migrate_programs(apps, schema_editor): { "title": program_data["title"], "preamble_content": program_data["program_content_before"], - "primary_candidates": primary_candidates_block, "secondary_candidates": secondary_candidates_block, - - "program": [program_block] + "program": [program_block], } ) - new_program_page.program.append(( - "program_group_with_candidates", - new_program_block - )) + new_program_page.program.append( + ("program_group_with_candidates", new_program_block) + ) new_program_page.save() @@ -472,14 +491,649 @@ class Migration(migrations.Migration): operations = [ migrations.AlterField( - model_name='districtelectioncampaignpage', - name='candidates', - field=wagtail.fields.StreamField([('candidates', wagtail.blocks.StructBlock([('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictPersonPage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False)), ('description', wagtail.blocks.TextBlock(label='Popis'))]), label=' '))]))], blank=True, verbose_name='Kandidátní listina'), + model_name="districtelectioncampaignpage", + name="candidates", + field=wagtail.fields.StreamField( + [ + ( + "candidates", + wagtail.blocks.StructBlock( + [ + ( + "candidates", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popis" + ), + ), + ] + ), + label=" ", + ), + ) + ] + ), + ) + ], + blank=True, + verbose_name="Kandidátní listina", + ), ), migrations.AlterField( - model_name='districtnewprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictArticlePage', 'district.DistrictArticlesPage', 'district.DistrictCenterPage', 'district.DistrictContactPage', 'district.DistrictCrossroadPage', 'district.DistrictCustomPage', 'district.DistrictElectionCampaignPage', 'district.DistrictElectionProgramPage', 'district.DistrictElectionRootPage', 'district.DistrictPeoplePage', 'district.DistrictPersonPage', 'district.DistrictPostElectionStrategyPage', 'district.DistrictProgramPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('description', wagtail.blocks.RichTextBlock(label='Popis', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah')), ('guarantor', wagtail.blocks.PageChooserBlock(label='Garant', page_type=['district.DistrictPersonPage'], required=False))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))])), ('program_group_with_candidates', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('preamble_content', wagtail.blocks.RichTextBlock(help_text='Text, který se zobrazí před přepínačem mezi kandidáty a programem.', label='Preambule', required=False)), ('primary_candidates', wagtail.blocks.StructBlock([('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictPersonPage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False)), ('description', wagtail.blocks.TextBlock(label='Popis'))]), label=' '))], help_text='Zobrazí se ve velkých blocích na začátku stránky.', label='Osoby na čele kandidátky')), ('secondary_candidates', wagtail.blocks.StructBlock([('heading', wagtail.blocks.CharBlock(default='Ostatní kandidátky', label='Nadpis zbytku kandidátky')), ('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('number', wagtail.blocks.CharBlock(label='Číslo')), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictPersonPage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False))]), label='Zbylí kandidáti na listině'))], help_text='Zobrazí se v kompaktním seznamu pod čelem kandidátky.', label='Ostatní osoby na kandidátce')), ('program', wagtail.blocks.StreamBlock([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictArticlePage', 'district.DistrictArticlesPage', 'district.DistrictCenterPage', 'district.DistrictContactPage', 'district.DistrictCrossroadPage', 'district.DistrictCustomPage', 'district.DistrictElectionCampaignPage', 'district.DistrictElectionProgramPage', 'district.DistrictElectionRootPage', 'district.DistrictPeoplePage', 'district.DistrictPersonPage', 'district.DistrictPostElectionStrategyPage', 'district.DistrictProgramPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('description', wagtail.blocks.RichTextBlock(label='Popis', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah')), ('guarantor', wagtail.blocks.PageChooserBlock(label='Garant', page_type=['district.DistrictPersonPage'], required=False))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))]))]))]))], blank=True, verbose_name='Programy'), + model_name="districtnewprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "url", + wagtail.blocks.URLBlock( + label="Odkaz pokrývající celou tuto část", + required=False, + ), + ), + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona", required=False + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek článku programu" + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Obsah", + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ] + ), + ), + ( + "program_group_crossroad", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek" + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + label="Krátký text pod nadpisem", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "district.DistrictArticlePage", + "district.DistrictArticlesPage", + "district.DistrictCenterPage", + "district.DistrictContactPage", + "district.DistrictCrossroadPage", + "district.DistrictCustomPage", + "district.DistrictElectionCampaignPage", + "district.DistrictElectionProgramPage", + "district.DistrictElectionRootPage", + "district.DistrictPeoplePage", + "district.DistrictPersonPage", + "district.DistrictPostElectionStrategyPage", + "district.DistrictProgramPage", + ], + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + label="Karty programu", + ), + ), + ] + ), + ), + ( + "program_group_popout", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "categories", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "name", + wagtail.blocks.CharBlock( + label="Název" + ), + ), + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona", required=False + ), + ), + ( + "description", + wagtail.blocks.RichTextBlock( + label="Popis", required=False + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek vyskakovacího bloku" + ), + ), + ( + "content", + wagtail.blocks.RichTextBlock( + features=[ + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Obsah", + ), + ), + ( + "guarantor", + wagtail.blocks.PageChooserBlock( + label="Garant", + page_type=[ + "district.DistrictPersonPage" + ], + required=False, + ), + ), + ] + ), + label="Jednotlivé bloky programu", + ), + ), + ] + ), + label="Kategorie programu", + ), + ), + ] + ), + ), + ( + "program_group_with_candidates", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "preamble_content", + wagtail.blocks.RichTextBlock( + help_text="Text, který se zobrazí před přepínačem mezi kandidáty a programem.", + label="Preambule", + required=False, + ), + ), + ( + "primary_candidates", + wagtail.blocks.StructBlock( + [ + ( + "candidates", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popis" + ), + ), + ] + ), + label=" ", + ), + ) + ], + help_text="Zobrazí se ve velkých blocích na začátku stránky.", + label="Osoby na čele kandidátky", + ), + ), + ( + "secondary_candidates", + wagtail.blocks.StructBlock( + [ + ( + "heading", + wagtail.blocks.CharBlock( + default="Ostatní kandidátky", + label="Nadpis zbytku kandidátky", + ), + ), + ( + "candidates", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "number", + wagtail.blocks.CharBlock( + label="Číslo" + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ] + ), + label="Zbylí kandidáti na listině", + ), + ), + ], + help_text="Zobrazí se v kompaktním seznamu pod čelem kandidátky.", + label="Ostatní osoby na kandidátce", + ), + ), + ( + "program", + wagtail.blocks.StreamBlock( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "url", + wagtail.blocks.URLBlock( + label="Odkaz pokrývající celou tuto část", + required=False, + ), + ), + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona", + required=False, + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek článku programu" + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Obsah", + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ] + ), + ), + ( + "program_group_crossroad", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek" + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + label="Krátký text pod nadpisem", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "district.DistrictArticlePage", + "district.DistrictArticlesPage", + "district.DistrictCenterPage", + "district.DistrictContactPage", + "district.DistrictCrossroadPage", + "district.DistrictCustomPage", + "district.DistrictElectionCampaignPage", + "district.DistrictElectionProgramPage", + "district.DistrictElectionRootPage", + "district.DistrictPeoplePage", + "district.DistrictPersonPage", + "district.DistrictPostElectionStrategyPage", + "district.DistrictProgramPage", + ], + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Karty programu", + ), + ), + ] + ), + ), + ( + "program_group_popout", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "categories", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "name", + wagtail.blocks.CharBlock( + label="Název" + ), + ), + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona", + required=False, + ), + ), + ( + "description", + wagtail.blocks.RichTextBlock( + label="Popis", + required=False, + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek vyskakovacího bloku" + ), + ), + ( + "content", + wagtail.blocks.RichTextBlock( + features=[ + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Obsah", + ), + ), + ( + "guarantor", + wagtail.blocks.PageChooserBlock( + label="Garant", + page_type=[ + "district.DistrictPersonPage" + ], + required=False, + ), + ), + ] + ), + label="Jednotlivé bloky programu", + ), + ), + ] + ), + label="Kategorie programu", + ), + ), + ] + ), + ), + ] + ), + ), + ] + ), + ), + ], + blank=True, + verbose_name="Programy", + ), ), - migrations.RunPython(migrate_programs) + migrations.RunPython(migrate_programs), ] diff --git a/district/migrations/0219_alter_districtelectioncampaignpage_options_and_more.py b/district/migrations/0219_alter_districtelectioncampaignpage_options_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..6a4ecab2a5af6c1d45c85a5c5dea8c6d2f4b5868 --- /dev/null +++ b/district/migrations/0219_alter_districtelectioncampaignpage_options_and_more.py @@ -0,0 +1,175 @@ +# Generated by Django 5.0.4 on 2024-06-04 13:40 + +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('district', '0218_auto_20240601_1530'), + ] + + operations = [ + migrations.AlterModelOptions( + name='districtelectioncampaignpage', + options={}, + ), + migrations.AlterModelOptions( + name='districtelectionprogrampage', + options={}, + ), + migrations.AlterModelOptions( + name='districtelectionrootpage', + options={}, + ), + migrations.AlterModelOptions( + name='districtinteractiveprogrampage', + options={}, + ), + migrations.AlterModelOptions( + name='districtpostelectionstrategypage', + options={}, + ), + migrations.AlterModelOptions( + name='districtprogrampage', + options={}, + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='campaign_funding_info', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='candidate_list_title', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='candidates', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='content', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='hero_candidates_image', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='hero_cta_buttons', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='hero_headline', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='hero_image', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='hero_motto', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='number', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='order', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='program_point_list_title', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='search_image', + ), + migrations.RemoveField( + model_name='districtelectioncampaignpage', + name='show_program_points_inline', + ), + migrations.RemoveField( + model_name='districtelectionprogrampage', + name='campaign_funding_info', + ), + migrations.RemoveField( + model_name='districtelectionprogrampage', + name='content', + ), + migrations.RemoveField( + model_name='districtelectionprogrampage', + name='guarantor', + ), + migrations.RemoveField( + model_name='districtelectionprogrampage', + name='image', + ), + migrations.RemoveField( + model_name='districtelectionprogrampage', + name='perex', + ), + migrations.RemoveField( + model_name='districtelectionprogrampage', + name='search_image', + ), + migrations.RemoveField( + model_name='districtinteractiveprogrampage', + name='content', + ), + migrations.RemoveField( + model_name='districtinteractiveprogrampage', + name='perex', + ), + migrations.RemoveField( + model_name='districtinteractiveprogrampage', + name='search_image', + ), + migrations.RemoveField( + model_name='districtpostelectionstrategypage', + name='campaign_funding_info', + ), + migrations.RemoveField( + model_name='districtpostelectionstrategypage', + name='content', + ), + migrations.RemoveField( + model_name='districtpostelectionstrategypage', + name='perex', + ), + migrations.RemoveField( + model_name='districtpostelectionstrategypage', + name='search_image', + ), + migrations.RemoveField( + model_name='districtprogrampage', + name='content', + ), + migrations.RemoveField( + model_name='districtprogrampage', + name='perex', + ), + migrations.RemoveField( + model_name='districtprogrampage', + name='search_image', + ), + migrations.AlterField( + model_name='districtcrossroadpage', + name='cards_content', + field=wagtail.fields.StreamField([('cards', wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Titulek bloku', required=False)), ('card_items', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictArticlesPage', 'district.DistrictCenterPage', 'district.DistrictContactPage', 'district.DistrictCrossroadPage', 'district.DistrictCustomPage', 'district.DistrictPeoplePage', 'district.DistrictProgramPage', 'district.DistrictInteractiveProgramPage', 'district.DistrictGeoFeatureCollectionPage', 'district.DistrictCalendarPage', 'district.DistrictPdfPage', 'district.DistrictNewProgramPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))], template='styleguide2/includes/molecules/boxes/card_box_block.html'), label='Karty s odkazy'))]))], blank=True, verbose_name='Karty rozcestníku'), + ), + migrations.AlterField( + model_name='districtnewprogrampage', + name='program', + field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictArticlePage', 'district.DistrictArticlesPage', 'district.DistrictCenterPage', 'district.DistrictContactPage', 'district.DistrictCrossroadPage', 'district.DistrictCustomPage', 'district.DistrictElectionCampaignPage', 'district.DistrictElectionProgramPage', 'district.DistrictPeoplePage', 'district.DistrictPersonPage', 'district.DistrictPostElectionStrategyPage', 'district.DistrictProgramPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('description', wagtail.blocks.RichTextBlock(label='Popis', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah')), ('guarantor', wagtail.blocks.PageChooserBlock(label='Garant', page_type=['district.DistrictPersonPage'], required=False))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))])), ('program_group_with_candidates', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('preamble_content', wagtail.blocks.RichTextBlock(help_text='Text, který se zobrazí před přepínačem mezi kandidáty a programem.', label='Preambule', required=False)), ('primary_candidates', wagtail.blocks.StructBlock([('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictPersonPage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False)), ('description', wagtail.blocks.TextBlock(label='Popis'))]), label=' '))], help_text='Zobrazí se ve velkých blocích na začátku stránky.', label='Osoby na čele kandidátky')), ('secondary_candidates', wagtail.blocks.StructBlock([('heading', wagtail.blocks.CharBlock(default='Ostatní kandidátky', label='Nadpis zbytku kandidátky')), ('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('number', wagtail.blocks.CharBlock(label='Číslo')), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictPersonPage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False))]), label='Zbylí kandidáti na listině'))], help_text='Zobrazí se v kompaktním seznamu pod čelem kandidátky.', label='Ostatní osoby na kandidátce')), ('program', wagtail.blocks.StreamBlock([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictArticlePage', 'district.DistrictArticlesPage', 'district.DistrictCenterPage', 'district.DistrictContactPage', 'district.DistrictCrossroadPage', 'district.DistrictCustomPage', 'district.DistrictElectionCampaignPage', 'district.DistrictElectionProgramPage', 'district.DistrictPeoplePage', 'district.DistrictPersonPage', 'district.DistrictPostElectionStrategyPage', 'district.DistrictProgramPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('description', wagtail.blocks.RichTextBlock(label='Popis', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah')), ('guarantor', wagtail.blocks.PageChooserBlock(label='Garant', page_type=['district.DistrictPersonPage'], required=False))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))]))]))]))], blank=True, verbose_name='Programy'), + ), + migrations.AlterField( + model_name='districtpeoplepage', + name='people', + field=wagtail.fields.StreamField([('people_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug skupiny', required=False)), ('person_list', wagtail.blocks.ListBlock(wagtail.blocks.PageChooserBlock(label='Detail osoby', page_type=['district.DistrictPersonPage']), label='Skupina osob'))], label='Seznam osob')), ('team_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název sekce týmů')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug sekce', required=False)), ('team_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Titulek bloku', required=False)), ('card_items', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictArticlesPage', 'district.DistrictCenterPage', 'district.DistrictContactPage', 'district.DistrictCrossroadPage', 'district.DistrictCustomPage', 'district.DistrictPeoplePage', 'district.DistrictProgramPage', 'district.DistrictInteractiveProgramPage', 'district.DistrictGeoFeatureCollectionPage', 'district.DistrictCalendarPage', 'district.DistrictPdfPage', 'district.DistrictNewProgramPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))], template='styleguide2/includes/molecules/boxes/card_box_block.html'), label='Karty s odkazy'))], label='Karta týmu'), label='Týmy'))]))], blank=True, verbose_name='Lidé a týmy'), + ), + ] diff --git a/district/models.py b/district/models.py index d7a05d9c60da38209785791fa32e91b900ee56c8..dd6da1254cb708f35e3ad22fbcaed96a0d899862 100644 --- a/district/models.py +++ b/district/models.py @@ -1,23 +1,19 @@ import json -from functools import cached_property from django.core.cache import cache from django.core.exceptions import ValidationError from django.db import models -from django.http import HttpResponseNotFound, HttpResponseRedirect from modelcluster.contrib.taggit import ClusterTaggableManager from modelcluster.fields import ParentalKey from taggit.models import TaggedItemBase from wagtail.admin.panels import ( FieldPanel, - HelpPanel, InlinePanel, MultiFieldPanel, ObjectList, PageChooserPanel, TabbedInterface, ) -from wagtail.contrib.routable_page.models import RoutablePageMixin, route from wagtail.fields import RichTextField, StreamField from wagtail.models import Orderable, Page from wagtailmetadata.models import MetadataPageMixin @@ -191,10 +187,7 @@ class DistrictHomePage(CalendarMixin, MainHomePageMixin): "district.DistrictContactPage", "district.DistrictCrossroadPage", "district.DistrictCustomPage", - "district.DistrictElectionRootPage", "district.DistrictPeoplePage", - "district.DistrictProgramPage", - "district.DistrictInteractiveProgramPage", "district.DistrictGeoFeatureCollectionPage", "district.DistrictCalendarPage", "district.DistrictPdfPage", @@ -624,12 +617,9 @@ class DistrictCrossroadPage( "district.DistrictContactPage", "district.DistrictCrossroadPage", "district.DistrictCustomPage", - "district.DistrictElectionRootPage", "district.DistrictGeoFeatureCollectionPage", "district.DistrictPeoplePage", "district.DistrictPersonPage", - "district.DistrictProgramPage", - "district.DistrictInteractiveProgramPage", ] ### OTHERS @@ -671,441 +661,10 @@ class DistrictCustomPage(MainSimplePageMixin): ### RELATIONS parent_page_types = ["district.DistrictHomePage", "district.DistrictCrossroadPage"] - subpage_types = ["district.DistrictElectionRootPage"] - - -# --- END Migrated models --- - - -# --- BEGIN Old election models --- - - -class DistrictElectionBasePage( - ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page -): - ### FIELDS - - content = StreamField( - CONTENT_BLOCKS - + [ - ("badge", blocks.PersonBadgeBlock()), - ], - verbose_name="Obsah", - blank=True, - use_json_field=True, - ) - - campaign_funding_info = models.URLField( - "URL pro zjištění informací o financování kampaně", - blank=True, - null=True, - help_text="Pokud ponecháte prázdné, použije se buď odkaz z nadřazené stránky, nebo https://wiki.pirati.cz/ft/start.", - ) - - ### PANELS - - content_panels = Page.content_panels + [ - FieldPanel("content"), - FieldPanel("campaign_funding_info"), - ] - - promote_panels = make_promote_panels() - - settings_panels = [] - - class Meta: - abstract = True - - @cached_property - def root_election_page(self): - if isinstance(self, DistrictElectionRootPage): - return self - - return ( - self.get_ancestors() - .type(DistrictElectionRootPage) - .live() - .specific() - .first() - ) - - -class DistrictElectionSubCampaignPageMixin: - @cached_property - def campaign_page(self): - return ( - self.get_ancestors() - .type(DistrictElectionCampaignPage) - .live() - .specific() - .first() - ) - - -class DistrictPostElectionStrategyPage( - DistrictElectionSubCampaignPageMixin, DistrictElectionBasePage -): - ### FIELDS - - perex = models.TextField("Perex", help_text="Pro přehled volebního programu") - - content_panels = DistrictElectionBasePage.content_panels + [ - FieldPanel("perex"), - ] - - ### RELATIONS - - parent_page_types = ["district.DistrictElectionCampaignPage"] - subpage_types = [] - - class Meta: - verbose_name = "Povolební strategie" - - def get_meta_description(self): - if self.search_description: - return self.search_description - return self.perex - - -class DistrictElectionProgramPage( - DistrictElectionSubCampaignPageMixin, DistrictElectionBasePage -): - ### FIELDS - - guarantor = models.ForeignKey( - "district.DistrictPersonPage", - verbose_name="Garant", - on_delete=models.PROTECT, - blank=True, - null=True, - ) - image = models.ForeignKey( - "wagtailimages.Image", - verbose_name="Ilustrační obrázek", - on_delete=models.PROTECT, - related_name="+", - ) - perex = models.TextField("Perex", help_text="Pro přehled volebního programu") - - ### PANELS - - content_panels = DistrictElectionBasePage.content_panels + [ - PageChooserPanel("guarantor"), - FieldPanel("image"), - FieldPanel("perex"), - ] - - ### RELATIONS - - parent_page_types = ["district.DistrictProgramPage"] - subpage_types = [] - - class Meta: - verbose_name = "Bod programu voleb" - - def get_meta_image(self): - return self.search_image or self.image or self.root_page.get_meta_image() - - def get_meta_description(self): - if self.search_description: - return self.search_description - return self.perex - - -class DistrictElectionCampaignPage(DistrictElectionBasePage): - ### FIELDS - number = models.CharField( - "Zvolené číslo kandidátní listiny", blank=True, null=True, max_length=4 - ) - candidates = StreamField( - [ - ("candidates", blocks.CandidateListBlock()), - ], - verbose_name="Kandidátní listina", - blank=True, - use_json_field=True, - ) - candidate_list_title = models.CharField( - "Titulek kandidátní listiny", - blank=True, - null=True, - max_length=128, - help_text="Např. Kandidátní listina pro magistrát.", - ) - program_point_list_title = models.CharField( - "Titulek programové sekce", - blank=True, - null=True, - max_length=128, - help_text="Např. Program pro magistrát.", - ) - show_program_points_inline = models.BooleanField( - "Zobrazit obsah programu na jedné stránce", - default=False, - help_text="Hodí se v případě spousty krátkých bodů programu, z nichž si většina nezaslouží vlastní stránku.", - ) - hero_headline = models.CharField( - "Banner headline", - max_length=128, - blank=True, - null=True, - help_text="Použije se v hlavním banneru. Pokud je toto hlavní kampaň voleb, nebo ve vaší obci je jen jedna jediná kandidátní listina, můžete ponechat prázdné a pro titulek se pak použije titulek root volební stránky.", - ) - hero_motto = models.CharField( - "Motto/claim pro banner", - max_length=128, - blank=True, - null=True, - help_text="Použije se v hlavním banneru.", - ) - hero_cta_buttons = StreamField( - [ - ("button_group", ButtonGroupBlock()), - ], - verbose_name="CTAs pro banner", - blank=True, - null=True, - help_text="Použije se v hlavním banneru.", - use_json_field=True, - ) - hero_image = models.ForeignKey( - "wagtailimages.Image", - on_delete=models.PROTECT, - related_name="+", - verbose_name="Ilustrační obrázek pro banner", - help_text="Pokud ponecháte prázdné, použije se výchozí obrázek stránek.", - null=True, - blank=True, - ) - hero_candidates_image = models.ForeignKey( - "wagtailimages.Image", - on_delete=models.PROTECT, - related_name="+", - verbose_name="Obrázek s kandidáty pro banner", - help_text="Použije se jako overlay v hlavním banneru a proto by fotka měla mít průhlednost aby to nevypadalo divně.", - null=True, - blank=True, - ) - order = models.SmallIntegerField( - "Pořadí", - default=0, - help_text="Čím nižší pořadí, tím důležitější kampaň je. Bude použito při řazených výpisech a nejdůležitější kampaň bude automaticky routovaná pokud někdo přistoupí na volební rozcestník.", - ) - - ### PANELS - - content_panels = Page.content_panels + [ - HelpPanel( - "<strong>TIP: </strong>Body programu a stránku povolební strategie přidávejte jako podstránky této stránky" - ), - FieldPanel("candidates"), - MultiFieldPanel( - [ - FieldPanel("number"), - FieldPanel("candidate_list_title"), - FieldPanel("program_point_list_title"), - FieldPanel("show_program_points_inline"), - FieldPanel("content"), - ], - "Personalizace", - ), - MultiFieldPanel( - [ - FieldPanel("hero_headline"), - FieldPanel("hero_motto"), - FieldPanel("hero_image"), - FieldPanel("hero_candidates_image"), - FieldPanel("hero_cta_buttons"), - ], - "Hero banner", - ), - FieldPanel("order"), - FieldPanel("campaign_funding_info"), - ] - - ### RELATIONS - - parent_page_types = ["district.DistrictElectionRootPage"] - subpage_types = [ - "district.DistrictElectionProgramPage", - "district.DistrictPostElectionStrategyPage", - ] - - class Meta: - verbose_name = "Kandidatura" - - @cached_property - def post_election_strategy(self): - return ( - self.get_children() - .type(DistrictPostElectionStrategyPage) - .live() - .specific() - .first() - ) - - @cached_property - def program_points(self): - return self.get_children().type(DistrictElectionProgramPage).live().specific() - - def get_meta_image(self): - return ( - self.search_image - or self.hero_candidates_image - or self.hero_image - or self.root_page.get_meta_image() - ) - - def get_meta_description(self): - if self.search_description: - return self.search_description - - return self.hero_motto - - -class DistrictElectionRootPage(RoutablePageMixin, Page): - """The election root page only serves as a wrapper for sharing stuff among campaign pages. - - It is never rendered on its own. When accessed, it will automatically redirect to the first campaign page. - """ - - ### PANELS - - ### RELATIONS - - parent_page_types = [ - "district.DistrictHomePage", - "district.DistrictCustomPage", - "district.DistrictCrossroadPage", - ] - subpage_types = [ - "district.DistrictElectionCampaignPage", - "district.DistrictGeoFeatureCollectionPage", - ] - - ### OTHERS - - class Meta: - verbose_name = "Volební rozcestník" - - @cached_property - def campaigns(self): - return ( - self.get_children() - .type(DistrictElectionCampaignPage) - .live() - .order_by("districtelectioncampaignpage__order") - ) - - @cached_property - def primary_campaign(self): - return self.campaigns.first() - - @route(r"^$") - def index(self, request): - """When accessed, redirect to first campaign page available or trigger 404.""" - if not self.primary_campaign: - return HttpResponseNotFound() - - return HttpResponseRedirect(self.primary_campaign.get_url()) - - -class DistrictInteractiveProgramPage( - ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page -): - ### FIELDS - - perex = models.TextField("Perex", blank=True) - content = StreamField( - [("interactive_program_block", blocks.InteractiveProgramBlock())], - verbose_name="Části programu", - blank=False, - use_json_field=True, - ) - - ### PANELS - - content_panels = Page.content_panels + [ - FieldPanel("perex"), - FieldPanel("content"), - ] - - promote_panels = make_promote_panels() - - settings_panels = [] - - ### RELATIONS - - parent_page_types = ["district.DistrictHomePage"] subpage_types = [] - ### OTHERS - - class Meta: - verbose_name = "Interaktivní program" - - def save(self, **kwargs): - from redmine_utils.functions import fill_data_from_redmine_for_page - - fill_data_from_redmine_for_page(self) - return super().save(**kwargs) - def get_meta_description(self): - if self.search_description: - return self.search_description - return self.perex - - -class DistrictProgramPage( - ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page -): - ### FIELDS - - perex = models.TextField("Perex", blank=True) - content = StreamField( - [ - ("static_program_block", blocks.StaticProgramBlock()), - ("redmine_program_block", blocks.RedmineProgramBlock()), - ], - verbose_name="obsah stránky", - blank=True, - use_json_field=True, - ) - - ### PANELS - - content_panels = Page.content_panels + [ - FieldPanel("perex"), - FieldPanel("content"), - ] - - promote_panels = make_promote_panels() - - settings_panels = [] - - ### RELATIONS - - parent_page_types = ["district.DistrictHomePage"] - subpage_types = [] - - ### OTHERS - - class Meta: - verbose_name = "Plnění programu" - - def save(self, **kwargs): - from redmine_utils.functions import fill_data_from_redmine_for_page - - fill_data_from_redmine_for_page(self) - return super().save(**kwargs) - - def get_meta_description(self): - if self.search_description: - return self.search_description - return self.perex - - -# --- END Old election models --- +# --- END Migrated models --- class DistrictGeoFeatureCollectionPage( @@ -1218,7 +777,6 @@ class DistrictGeoFeatureCollectionPage( parent_page_types = [ "district.DistrictHomePage", - "district.DistrictElectionRootPage", ] subpage_types = ["district.DistrictGeoFeatureDetailPage"] @@ -1532,3 +1090,30 @@ class DistrictGeoFeatureDetailPage( print(exc) raise ValidationError({"geojson": str(exc)}) from exc + + +# Legacy models required for migrations + + +class DistrictElectionRootPage(Page): + pass + + +class DistrictProgramPage(Page): + pass + + +class DistrictInteractiveProgramPage(Page): + pass + + +class DistrictElectionCampaignPage(Page): + pass + + +class DistrictElectionProgramPage(Page): + pass + + +class DistrictPostElectionStrategyPage(Page): + pass diff --git a/district/templates/district/district_geo_feature_collection_page.html b/district/templates/district/district_geo_feature_collection_page.html index 11c9300f6236a0bd342e71b410b0019a9e865304..77ce4f7e8efbbc4bee1a8768dd162f58ac3fb0b2 100644 --- a/district/templates/district/district_geo_feature_collection_page.html +++ b/district/templates/district/district_geo_feature_collection_page.html @@ -1,173 +1,86 @@ -{% extends "district/base.html" %} -{% load static wagtailcore_tags wagtailimages_tags %} +{% extends "styleguide2/simple_page.html" %} -{% block subheader %} - {% if page.image %} - {% image page.image fill-1920x500-c75 jpegquality-80 as bg_img %} - {% else %} - {% image page.root_page.fallback_image fill-1920x500-c75 jpegquality-80 as bg_img %} - {% endif %} - - <header class="hero hero--image text-center md:text-left py-16" style="--image-url: url({{ bg_img.full_url }})"> - <div class="container container--default grid lg:grid-cols-7 gap-4 items-center text-center lg:text-left"> - <div class="lg:col-span-3 order-2 lg:order-1"> - <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg max-w-2xl mx-auto lg:mx-0"> - {{ page.title }} - </h1> - <h2 class="head-xs text-shadow-lg max-w-xl mx-auto lg:mx-0"> - {{ page.perex }} - </h2> - <div class="mt-4 md:mt-8 space-y-4"> - {% for block in page.hero_cta_buttons %} - {% include_block block %} - {% endfor %} - </div> - </div> - <div class="lg:col-span-4 order-1 lg:order-2"> - {% if page.logo_image %} - {% image page.logo_image width-490 as logo_img %} - <img src="{{ logo_img.url }}" class="h-32 lg:h-80 m-auto object-contain" alt="{{ page.title }}"> - {% endif %} - </div> - </div> - </header> - - {% if promoted_features %} - <section id="propagovane" class="bg-grey-50 py-8 lg:py-16"> - <div class="container container--default"> - {% if page.promoted_block_title %} - <h2 class="head-alt-md mb-4">{{ page.promoted_block_title }}</h2> - {% endif %} - - <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8"> - {% for feature in promoted_features %} - <div class="card card--hoveractive article-card bg-white"> - <div class="article-card-cover"> - <span class="absolute mt-2 ml-2 rounded-full inline-flex items-center justify-center bg-grey-125 font-bold text-center text-base w-8 h-8 no-underline"> - <a href="?item={{ feature.pk }}-{{ feature.slug }}" class="no-underline js-feature-item-anchor">{{ feature.index }}</a> - </span> - {% if feature.image %} - {% image feature.image fill-260x192-c75 jpegquality-80 as img %} - {% image feature.image fill-520x384-c75 jpegquality-80 as img_2x %} - <a href="?item={{ feature.pk }}-{{ feature.slug }}" title="{{ feature.title }}" class="js-feature-item-anchor"><img src="{{ img.url }}" srcset="{{ img.url }}, {{ img_2x.url }} 2x" alt="{{ feature.title }}"></a> - {% endif %} - </div> - <div class="card__body p-4 flex items-center"> - <h2 class="head-heavy-2xs flex-1"><a href="?item={{ feature.pk }}-{{ feature.slug }}" title="{{ feature.title }}" class="js-feature-item-anchor underline">{{ feature.title }}</a></h2> - </div> - </div> - {% endfor %} - </div> - - <div class="text-center mt-8 lg:mt-16"> - <a href="#mapa" class="btn btn--black btn--hoveractive btn--icon text-lg btn--fullwidth md:btn--autowidth"> - <div class="btn__body-wrap"> - <div class="btn__body">Zobrazit další</div> - <div class="btn__icon"><i class="ico--chevron-right"></i></div> - </div> - </a> - </div> - </div> - </section> - {% endif %} -{% endblock subheader %} - -{% block container_class %}container--default{% endblock %} -{% block container_spacing %}py-8 pb-0 lg:py-16{% endblock %} +{% load wagtailcore_tags %} {% block content %} - <article> - <div class="space-y-8 lg:space-y-16"> - <section> - {% for block in page.content %} - {% include_block block with block_id=block.id %} - {% endfor %} - </section> - - <section id="mapa"> - {% if page.map_title %} - <h2 class="head-alt-md mb-4">{{ page.map_title }}</h2> - {% endif %} - <div - class="v-geo-feature-collection" - data-wrapper-class="container-padding--zero lg:container-padding--auto" - data-initial-zoom="14" - data-tile-server-config="{{ js_map.tile_server_config }}" - data-tile-style="{{ js_map.style }}" - data-categories="{{ js_map.categories }}" - data-geojson="{{ js_map.geojson }}" - ></div> - </section> - - <section id="kategorie"> - {% if page.category_list_title %} - <h2 class="head-alt-md mb-4">{{ page.category_list_title }}</h2> - {% endif %} - - <div class="grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8"> - {% for category, features in features_by_category %} - <div class="card md:elevation-2" style="border-right: 4px rgb({{ category.rgb.0 }}, {{ category.rgb.1 }}, {{ category.rgb.2 }}) solid;"> - <div class="card__body p-4"> - <h3 class="head-allcaps-heavy-2xs mb-2">{{ category.name }}</h3> - <ul class="leading-normal {% if not forloop.last %}mb-4{% endif %} md:mb-0"> - {% for feature in features %} - <li> - <span class="rounded-full inline-flex items-center justify-center bg-grey-125 font-bold text-center text-xs w-5 h-5 mr-2 no-underline"> - <a href="?item={{ feature.pk }}-{{ feature.slug }}" class="no-underline js-feature-item-anchor">{{ feature.index }}</a> - </span> - <a href="?item={{ feature.pk }}-{{ feature.slug }}" class="js-feature-item-anchor"><span class="text-sm underline">{{ feature.title }}</span></a> - </a> - </li> - {% endfor %} - </ul> - </div> - </div> - {% endfor %} - </div> - </section> - - {% if page.content_after %} - <section class="space-y-4"> - {% for block in page.content_after %} + {% block navbar %} + {% include 'styleguide2/includes/organisms/layout/district/navbar.html' with selected_item=page.get_menu_title %} + {% endblock %} + + {% block header %} + {% include 'styleguide2/includes/organisms/header/photo_header.html' with title=page.title main_image=page.main_image description=page.perex %} + {% endblock %} + + <main class="container--wide mb-2 lg:mb-12"> + {% block inner_content %} + <div class="mt-8"> + <section> + {% for block in page.content %} {% include_block block with block_id=block.id %} {% endfor %} </section> - {% endif %} - - <div class="space-y-8 lg:flex lg:space-y-0 lg:space-x-16"> - <section class="lg:w-2/3 space-y-4"> - {% for block in page.content_footer %} - {% include_block block with block_id=block.id %} - {% endfor %} + + <section id="mapa"> + {% if page.map_title %} + <h2 class="head-alt-md mb-4">{{ page.map_title }}</h2> + {% endif %} + + <div + class="v-geo-feature-collection" + data-wrapper-class="container-padding--zero lg:container-padding--auto" + data-initial-zoom="14" + data-tile-server-config="{{ js_map.tile_server_config }}" + data-tile-style="{{ js_map.style }}" + data-categories="{{ js_map.categories }}" + data-geojson="{{ js_map.geojson }}" + ></div> </section> - - <div class="lg:w-1/3"> - <aside class="sharebox pt-4 md:card md:elevation-10"> - <div class="md:card__body"> - <span class="head-alt-base md:head-alt-md">Sdílení je aktem lásky</span> - <div class="flex w-full space-x-4 pt-4 md:pt-8 text-center text-white"> - <a - href="https://www.facebook.com/sharer/sharer.php?u={{ page.full_url|urlencode }}" - onclick="window.open(this.href, 'pop-up', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" - class="bg-brands-facebook px-8 py-3 text-2xl w-full hover:no-underline" - ><i class="ico--facebook"></i></a> - <a - href="https://twitter.com/intent/tweet?text={{ page.title|urlencode }}&url={{ page.full_url|urlencode }}" - onclick="window.open(this.href, 'pop-up', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" - class="bg-brands-twitter px-8 py-3 text-2xl w-full hover:no-underline" - ><i class="ico--twitter"></i></a> + + <section id="kategorie"> + {% if page.category_list_title %} + <h2 class="head-alt-md mb-4">{{ page.category_list_title }}</h2> + {% endif %} + + <div class="grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8"> + {% for category, features in features_by_category %} + <div class="card md:elevation-2" style="border-right: 4px rgb({{ category.rgb.0 }}, {{ category.rgb.1 }}, {{ category.rgb.2 }}) solid;"> + <div class="card__body p-4"> + <h3 class="head-allcaps-heavy-2xs mb-2">{{ category.name }}</h3> + <ul class="leading-normal {% if not forloop.last %}mb-4{% endif %} md:mb-0"> + {% for feature in features %} + <li> + <span class="rounded-full inline-flex items-center justify-center bg-grey-125 font-bold text-center text-xs w-5 h-5 mr-2 no-underline"> + <a href="?item={{ feature.pk }}-{{ feature.slug }}" class="no-underline js-feature-item-anchor">{{ feature.index }}</a> + </span> + <a href="?item={{ feature.pk }}-{{ feature.slug }}" class="js-feature-item-anchor"><span class="text-sm underline">{{ feature.title }}</span></a> + </a> + </li> + {% endfor %} + </ul> + </div> </div> - </div> - <div class="h-52 overflow-hidden hidden md:block"> - <img src="{% static "shared/img/flag.png" %}" alt="Pirátská strana" class="w-80 object-cover m-auto"/> - </div> - </aside> - </div> + {% endfor %} + </div> + </section> + + {% if page.content_after %} + <section class="my-4"> + {% for block in page.content_after %} + {% include_block block with block_id=block.id %} + {% endfor %} + </section> + {% endif %} + + {% if page.content_footer %} + <section class="my-4"> + {% for block in page.content_footer %} + {% include_block block with block_id=block.id %} + {% endfor %} + </section> + {% endif%} </div> - - {% include "shared/followus_snippet.html" %} - </div> - </article> + {% endblock %} + </main> {% endblock %} diff --git a/donate/blocks.py b/donate/blocks.py index 3dfce28d65e4ddc314031134d553dd61fe9dc658..880e852e49530f1399a2623b356e1440ed25c0c7 100644 --- a/donate/blocks.py +++ b/donate/blocks.py @@ -11,7 +11,7 @@ from wagtail.blocks import ( from wagtail.images.blocks import ImageChooserBlock from donate.constants import RICH_TEXT_FEATURES -from shared.blocks import MenuItemBlock as MenuItemBlockBase +from shared_legacy.blocks import MenuItemBlock as MenuItemBlockBase class MenuItemBlock(MenuItemBlockBase): diff --git a/donate/constants.py b/donate/constants.py index f6464ce4495d44205eae78fcc81f65696a6596f1..943fa5eb0d918b0197be36d6b76e10a8f7fbbd27 100644 --- a/donate/constants.py +++ b/donate/constants.py @@ -1,4 +1,4 @@ -from shared.const import RICH_TEXT_DEFAULT_FEATURES +from shared_legacy.const import RICH_TEXT_DEFAULT_FEATURES # Select colors for rich text editors font color from style guide font_colors = [ diff --git a/donate/migrations/0047_alter_donatehomepage_menu.py b/donate/migrations/0047_alter_donatehomepage_menu.py index 9a79c60c1b1e8b7886d1db86a1d0a6dc0ad002c3..caa5c588f3bbe5463e4edae3d395ec2ee60fcc6f 100644 --- a/donate/migrations/0047_alter_donatehomepage_menu.py +++ b/donate/migrations/0047_alter_donatehomepage_menu.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.4 on 2024-05-21 10:02 +# Generated by Django 5.0.4 on 2024-06-05 10:41 import wagtail.blocks import wagtail.fields @@ -6,85 +6,15 @@ from django.db import migrations class Migration(migrations.Migration): + dependencies = [ - ("donate", "0046_donatehomepage_transparency_footer_items"), + ('donate', '0046_donatehomepage_transparency_footer_items'), ] operations = [ migrations.AlterField( - model_name="donatehomepage", - name="menu", - field=wagtail.fields.StreamField( - [ - ( - "menu_item", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", required=True - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ] - ), - ), - ( - "menu_parent", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", required=True - ), - ), - ( - "menu_items", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", required=True - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ] - ), - label="Položky menu", - ), - ), - ] - ), - ), - ], - blank=True, - verbose_name="Menu", - ), + model_name='donatehomepage', + name='menu', + field=wagtail.fields.StreamField([('menu_item', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('menu_parent', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('menu_items', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Položky menu'))]))], blank=True, verbose_name='Menu'), ), ] diff --git a/donate/migrations/0048_alter_donatehomepage_menu.py b/donate/migrations/0048_alter_donatehomepage_menu.py deleted file mode 100644 index c75106fe506e1bae1645eecf998b6bd426e335ec..0000000000000000000000000000000000000000 --- a/donate/migrations/0048_alter_donatehomepage_menu.py +++ /dev/null @@ -1,94 +0,0 @@ -# Generated by Django 5.0.4 on 2024-06-01 11:31 - -import wagtail.blocks -import wagtail.fields -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ("donate", "0047_alter_donatehomepage_menu"), - ] - - operations = [ - migrations.AlterField( - model_name="donatehomepage", - name="menu", - field=wagtail.fields.StreamField( - [ - ( - "menu_item", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.", - label="Titulek", - required=True, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ] - ), - ), - ( - "menu_parent", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", required=True - ), - ), - ( - "menu_items", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.", - label="Titulek", - required=True, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ] - ), - label="Položky menu", - ), - ), - ] - ), - ), - ], - blank=True, - verbose_name="Menu", - ), - ), - ] diff --git a/donate/models.py b/donate/models.py index 1e2cdfa4b840fbddbcd645595c2a067d3b2b0855..ace7b27924c2dd727cedfae22f0c17c79428133e 100644 --- a/donate/models.py +++ b/donate/models.py @@ -21,12 +21,12 @@ from wagtail.images.blocks import ImageChooserBlock from wagtail.models import Orderable, Page from wagtailmetadata.models import MetadataPageMixin -from shared.models import ( +from shared_legacy.models import ( ExtendedMetadataHomePageMixin, ExtendedMetadataPageMixin, SubpageMixin, ) -from shared.utils import get_subpage_url, make_promote_panels +from shared_legacy.utils import get_subpage_url, make_promote_panels from tuning import admin_help from .blocks import ( diff --git a/elections/migrations/0037_alter_electionshomepage_content.py b/elections/migrations/0037_alter_electionshomepage_content.py index 376270d3d264959a23d44d642967d8902b0e6c4b..2390bf28e0d3ef5450735a6ebe4399936ebbabd2 100644 --- a/elections/migrations/0037_alter_electionshomepage_content.py +++ b/elections/migrations/0037_alter_electionshomepage_content.py @@ -7,15 +7,243 @@ from django.db import migrations class Migration(migrations.Migration): - dependencies = [ - ('elections', '0036_alter_electionshomepage_menu'), + ("elections", "0036_alter_electionshomepage_menu"), ] operations = [ migrations.AlterField( - model_name='electionshomepage', - name='content', - field=wagtail.fields.StreamField([('carousel', wagtail.blocks.StructBlock([('desktop_image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybráno video, ukáže se na desktopu.', label='Obrázek na pozadí (desktop)')), ('mobile_image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud je vybrán, ukáže se místo videa na mobilu.', label='Obrázek (mobil)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.', label='URL videa', required=False)), ('mobile_line_1', wagtail.blocks.TextBlock(label='První mobilní řádek')), ('mobile_line_2', wagtail.blocks.TextBlock(label='Druhý mobilní řádek'))])), ('candidates', wagtail.blocks.StructBlock([('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['elections.ElectionsCandidatePage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False)), ('description', wagtail.blocks.TextBlock(label='Popis'))]), label='Kandidáti'))])), ('secondary_candidates', wagtail.blocks.StructBlock([('heading', wagtail.blocks.CharBlock(default='Ostatní kandidátky', label='Nadpis zbytku kandidátky')), ('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('number', wagtail.blocks.CharBlock(label='Číslo')), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['elections.ElectionsCandidatePage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False))]), label='Kandidáti'))])), ('program', wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(default='Program', help_text="Např. 'Program'", label='Nadpis')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('number', wagtail.blocks.IntegerBlock(label='Číslo')), ('name', wagtail.blocks.CharBlock(label='Název')), ('points', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('content', wagtail.blocks.TextBlock(label='Obsah'))]), label='Body'))]), label='Kategorie')), ('long_version_url', wagtail.blocks.URLBlock(help_text='Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.', label='Odkaz na celou verzi programu', required=False)), ('long_version_text', wagtail.blocks.CharBlock(label='Nadpis odkazu na celou verzi programu', required=False))])), ('news', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Nejnovější články se načtou automaticky', label='Titulek')), ('description', wagtail.blocks.TextBlock(label='Popis', required=False))], template='styleguide2/includes/organisms/articles/elections/articles_section.html')), ('calendar', wagtail.blocks.StructBlock([('heading', wagtail.blocks.CharBlock(label='Nadpis'))]))], blank=True, verbose_name='Hlavní obsah'), + model_name="electionshomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "carousel", + wagtail.blocks.StructBlock( + [ + ( + "desktop_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybráno video, ukáže se na desktopu.", + label="Obrázek na pozadí (desktop)", + ), + ), + ( + "mobile_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud je vybrán, ukáže se místo videa na mobilu.", + label="Obrázek (mobil)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.", + label="URL videa", + required=False, + ), + ), + ( + "mobile_line_1", + wagtail.blocks.TextBlock( + label="První mobilní řádek" + ), + ), + ( + "mobile_line_2", + wagtail.blocks.TextBlock( + label="Druhý mobilní řádek" + ), + ), + ] + ), + ), + ( + "candidates", + wagtail.blocks.StructBlock( + [ + ( + "candidates", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "elections.ElectionsCandidatePage" + ], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popis" + ), + ), + ] + ), + label="Kandidáti", + ), + ) + ] + ), + ), + ( + "secondary_candidates", + wagtail.blocks.StructBlock( + [ + ( + "heading", + wagtail.blocks.CharBlock( + default="Ostatní kandidátky", + label="Nadpis zbytku kandidátky", + ), + ), + ( + "candidates", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "number", + wagtail.blocks.CharBlock( + label="Číslo" + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "elections.ElectionsCandidatePage" + ], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ] + ), + label="Kandidáti", + ), + ), + ] + ), + ), + ( + "program", + wagtail.blocks.StructBlock( + [ + ( + "label", + wagtail.blocks.CharBlock( + default="Program", + help_text="Např. 'Program'", + label="Nadpis", + ), + ), + ( + "categories", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "number", + wagtail.blocks.IntegerBlock( + label="Číslo" + ), + ), + ( + "name", + wagtail.blocks.CharBlock( + label="Název" + ), + ), + ( + "points", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "content", + wagtail.blocks.TextBlock( + label="Obsah" + ), + ) + ] + ), + label="Body", + ), + ), + ] + ), + label="Kategorie", + ), + ), + ( + "long_version_url", + wagtail.blocks.URLBlock( + help_text="Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.", + label="Odkaz na celou verzi programu", + required=False, + ), + ), + ( + "long_version_text", + wagtail.blocks.CharBlock( + label="Nadpis odkazu na celou verzi programu", + required=False, + ), + ), + ] + ), + ), + ( + "news", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Nejnovější články se načtou automaticky", + label="Titulek", + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popis", required=False + ), + ), + ], + template="styleguide2/includes/organisms/articles/elections/articles_section.html", + ), + ), + ( + "calendar", + wagtail.blocks.StructBlock( + [("heading", wagtail.blocks.CharBlock(label="Nadpis"))] + ), + ), + ], + blank=True, + verbose_name="Hlavní obsah", + ), ), ] diff --git a/main/migrations/0094_alter_mainprogrampage_program.py b/main/migrations/0094_alter_mainprogrampage_program.py index 386665000d5a8e8321d62d5e8c8bfb6539f0e02f..dfb5876da8ca97cb68da3b4f0c598c87b1e55f31 100644 --- a/main/migrations/0094_alter_mainprogrampage_program.py +++ b/main/migrations/0094_alter_mainprogrampage_program.py @@ -7,15 +7,268 @@ from django.db import migrations class Migration(migrations.Migration): - dependencies = [ - ('main', '0093_alter_mainhomepage_menu'), + ("main", "0093_alter_mainhomepage_menu"), ] operations = [ migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['main.MainArticlesPage', 'main.MainArticlePage', 'main.MainProgramPage', 'main.MainPeoplePage', 'main.MainPersonPage', 'main.MainSimplePage', 'main.MainContactPage', 'main.MainCrossroadPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('description', wagtail.blocks.RichTextBlock(label='Popis', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah')), ('guarantor', wagtail.blocks.PageChooserBlock(label='Garant', page_type=['district.DistrictPersonPage'], required=False))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))])), ('elections_program', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('program_page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['elections.ElectionsFullProgramPage'], required=False))]))], blank=True, verbose_name='Programy'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "url", + wagtail.blocks.URLBlock( + label="Odkaz pokrývající celou tuto část", + required=False, + ), + ), + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona", required=False + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek článku programu" + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Obsah", + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ] + ), + ), + ( + "program_group_crossroad", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek" + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + label="Krátký text pod nadpisem", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "main.MainArticlesPage", + "main.MainArticlePage", + "main.MainProgramPage", + "main.MainPeoplePage", + "main.MainPersonPage", + "main.MainSimplePage", + "main.MainContactPage", + "main.MainCrossroadPage", + ], + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + label="Karty programu", + ), + ), + ] + ), + ), + ( + "program_group_popout", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "categories", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "name", + wagtail.blocks.CharBlock( + label="Název" + ), + ), + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona", required=False + ), + ), + ( + "description", + wagtail.blocks.RichTextBlock( + label="Popis", required=False + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek vyskakovacího bloku" + ), + ), + ( + "content", + wagtail.blocks.RichTextBlock( + features=[ + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Obsah", + ), + ), + ( + "guarantor", + wagtail.blocks.PageChooserBlock( + label="Garant", + page_type=[ + "district.DistrictPersonPage" + ], + required=False, + ), + ), + ] + ), + label="Jednotlivé bloky programu", + ), + ), + ] + ), + label="Kategorie programu", + ), + ), + ] + ), + ), + ( + "elections_program", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", + label="Název programu", + ), + ), + ( + "program_page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "elections.ElectionsFullProgramPage" + ], + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + verbose_name="Programy", + ), ), ] diff --git a/majak/settings/base.py b/majak/settings/base.py index a81f7b5ea40c049c83923655f3af19fac22eec5e..dac6184ddfb06501184fc62b6978cdacbb38b48a 100644 --- a/majak/settings/base.py +++ b/majak/settings/base.py @@ -45,6 +45,7 @@ INSTALLED_APPS = [ "district", "czech_inspirational", "shared", + "shared_legacy", "calendar_utils", "maps_utils", "redmine_utils", diff --git a/shared/static/styleguide2/main.css b/shared/static/styleguide2/main.css index fbc3e5614532c0695b4b38c6762fbbf225cf22b4..d7d60cde16f01c98567c9d33cb203bd3943eb15b 100644 --- a/shared/static/styleguide2/main.css +++ b/shared/static/styleguide2/main.css @@ -1 +1 @@ -@import"https://gfonts.pirati.cz/css2?family=Bebas+Neue&family=Roboto+Condensed:wght@300;400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400&display=swap";@font-face{font-family:pirati-ui;src:url(/static/styleguide2/pirati-ui.eot?bna028);src:url(/static/styleguide2/pirati-ui.eot?bna028#iefix) format("embedded-opentype"),url(/static/styleguide2/pirati-ui.ttf?bna028) format("truetype"),url(/static/styleguide2/pirati-ui.woff?bna028) format("woff"),url(/static/styleguide2/pirati-ui.svg?bna028#pirati-ui) format("svg");font-weight:400;font-style:normal;font-display:block}[class^=ico--],[class*=" ico--"]{font-family:pirati-ui!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ico--twitter:before{content:""}.ico--mastodon:before{content:""}.ico--helios:before{content:""}.ico--redmine:before{content:""}.ico--zulip:before{content:""}.ico--forum:before{content:""}.ico--pirati:before{content:""}.ico--jitsi:before{content:""}.ico--open-source:before{content:""}.ico--donation-full:before{content:""}.ico--donation-outline:before{content:""}.ico--strategy:before{content:""}.ico--pig:before{content:""}.ico--thermometer:before{content:""}.ico--menu:before{content:""}.ico--chevron-right:before{content:""}.ico--chevron-left:before{content:""}.ico--chevron-down:before{content:""}.ico--chevron-up:before{content:""}.ico--link-horizontal:before{content:""}.ico--beer:before{content:""}.ico--food:before{content:""}.ico--dots-three-vertical:before{content:""}.ico--dots-three-horizontal:before{content:""}.ico--log-out:before{content:""}.ico--envelope:before{content:""}.ico--pin:before{content:""}.ico--at:before{content:""}.ico--glass:before{content:""}.ico--checkmark:before{content:""}.ico--info:before{content:""}.ico--question:before{content:""}.ico--warning:before{content:""}.ico--code:before{content:""}.ico--checkbox-unchecked:before{content:""}.ico--star-full:before{content:""}.ico--star-empty:before{content:""}.ico--bookmark:before{content:""}.ico--cog:before{content:""}.ico--key:before{content:""}.ico--zoom-in:before{content:""}.ico--zoom-out:before{content:""}.ico--shrink:before{content:""}.ico--printer:before{content:""}.ico--file-openoffice:before{content:""}.ico--user:before{content:""}.ico--file-excel:before{content:""}.ico--file-word:before{content:""}.ico--file-pdf:before{content:""}.ico--file-picture:before{content:""}.ico--file-blank:before{content:""}.ico--folder-upload:before{content:""}.ico--upload:before{content:""}.ico--cloud-upload:before{content:""}.ico--folder-download:before{content:""}.ico--download:before{content:""}.ico--cloud-download:before{content:""}.ico--alarm:before{content:""}.ico--calculator:before{content:""}.ico--facebook-full:before{content:""}.ico--feed:before{content:""}.ico--library:before{content:""}.ico--office:before{content:""}.ico--attachment:before{content:""}.ico--enlarge:before{content:""}.ico--eye-off:before{content:""}.ico--eye:before{content:""}.ico--share:before{content:""}.ico--search:before{content:""}.ico--pencil:before{content:""}.ico--lock-open:before{content:""}.ico--lock:before{content:""}.ico--equalizer:before{content:""}.ico--switch:before{content:""}.ico--loop:before{content:""}.ico--refresh:before{content:""}.ico--bullhorn:before{content:""}.ico--bin:before{content:""}.ico--cross:before{content:""}.ico--checkbox-checked:before{content:""}.ico--globe:before{content:""}.ico--wikipedia:before{content:""}.ico--youtube:before{content:""}.ico--users:before{content:""}.ico--book:before{content:""}.ico--bubbles:before{content:""}.ico--map:before{content:""}.ico--compass:before{content:""}.ico--folder-open:before{content:""}.ico--folder:before{content:""}.ico--drawer:before{content:""}.ico--stop:before{content:""}.ico--github:before{content:""}.ico--clock:before{content:""}.ico--calendar:before{content:""}.ico--flickr:before{content:""}.ico--instagram:before{content:""}.ico--newspaper:before{content:""}.ico--cart:before{content:""}.ico--home:before{content:""}.ico--link:before{content:""}.ico--power:before{content:""}.ico--rocket:before{content:""}.ico--location:before{content:""}.ico--phone:before{content:""}.ico--linkedin:before{content:""}.ico--facebook:before{content:""}.ico--envelop:before{content:""}.ico--file-text2:before{content:""}.ico--price-tag:before{content:""}.ico--price-tags:before{content:""}.ico--stats-dots:before{content:""}.ico--bed:before{content:""}.ico--train:before{content:""}.ico--bus:before{content:""}.ico--wheelchair:before{content:""}.ico--thumbs-down:before{content:""}.ico--thumbs-up:before{content:""}.ico--anchor:before{content:""}.ico--paw:before{content:""}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-black{--tw-prose-body: #000000;--tw-prose-headings: #000000;--tw-prose-lead: #000000;--tw-prose-links: #000000;--tw-prose-bold: #000000;--tw-prose-counters: #000000;--tw-prose-bullets: #000000;--tw-prose-hr: #000000;--tw-prose-quotes: #000000;--tw-prose-quote-borders: #000000;--tw-prose-captions: #000000;--tw-prose-code: #000000;--tw-prose-pre-code: #000000;--tw-prose-pre-bg: #ffffff;--tw-prose-th-borders: #000000;--tw-prose-td-borders: #000000;--tw-prose-invert-body: #ffffff;--tw-prose-invert-headings: #ffffff;--tw-prose-invert-lead: #ffffff;--tw-prose-invert-links: #ffffff;--tw-prose-invert-bold: #ffffff;--tw-prose-invert-counters: #ffffff;--tw-prose-invert-bullets: #ffffff;--tw-prose-invert-hr: #ffffff;--tw-prose-invert-quotes: #ffffff;--tw-prose-invert-quote-borders: #ffffff;--tw-prose-invert-captions: #ffffff;--tw-prose-invert-code: #ffffff;--tw-prose-invert-pre-code: #ffffff;--tw-prose-invert-pre-bg: #000000;--tw-prose-invert-th-borders: #ffffff;--tw-prose-invert-td-borders: #ffffff}.btn{display:inline-block;text-align:center;font-weight:400;max-width:20rem;text-decoration:none}.btn[disabled]{opacity:.7;cursor:not-allowed}.btn:hover{text-decoration:none}.btn__body{display:flex;height:100%;align-items:center;justify-content:center;padding:.25em 2em}.btn__body-wrap{min-width:10rem;min-height:2.75rem}.btn__body,.btn__icon,.btn__inline-icon{transition-property:color,background-color,border-color;transition-duration:.2s;color:#fff}.btn__body,.btn__icon{background-color:#000}.btn--icon .btn__body-wrap{display:flex}.btn--condensed .btn__body{padding:.75em 1em}@keyframes btn-loading-spinner{to{transform:rotate(360deg)}}.btn--black .btn__body,.btn--black .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#262626}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-black:hover .btn__body,.btn--to-black.btn--activated .btn__body{background-color:#000!important;color:#fff!important}.btn--hoveractive.btn--to-black:hover .btn__icon,.btn--to-black.btn--activated .btn__icon{border-color:#343434!important;background-color:#000!important}.btn--hoveractive.btn--to-black:hover .btn__inline-icon,.btn--to-black.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-700 .btn__body,.btn--grey-700 .btn__icon{background-color:#202020;color:#fff}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#343434;color:#fff}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#262626}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-700:hover .btn__body,.btn--to-grey-700.btn--activated .btn__body{background-color:#202020!important;color:#fff!important}.btn--hoveractive.btn--to-grey-700:hover .btn__icon,.btn--to-grey-700.btn--activated .btn__icon{border-color:#303132!important;background-color:#202020!important}.btn--hoveractive.btn--to-grey-700:hover .btn__inline-icon,.btn--to-grey-700.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-500 .btn__body,.btn--grey-500 .btn__icon{background-color:#303132;color:#fff}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#4c4c4c;color:#fff}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#343434}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-500:hover .btn__body,.btn--to-grey-500.btn--activated .btn__body{background-color:#303132!important;color:#fff!important}.btn--hoveractive.btn--to-grey-500:hover .btn__icon,.btn--to-grey-500.btn--activated .btn__icon{border-color:#4c4c4c!important;background-color:#303132!important}.btn--hoveractive.btn--to-grey-500:hover .btn__inline-icon,.btn--to-grey-500.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-125 .btn__body,.btn--grey-125 .btn__icon{background-color:#f0f0f0;color:#000}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:silver;color:#fff}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#a8a8a8}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-125:hover .btn__body,.btn--to-grey-125.btn--activated .btn__body{background-color:#f0f0f0!important;color:#000!important}.btn--hoveractive.btn--to-grey-125:hover .btn__icon,.btn--to-grey-125.btn--activated .btn__icon{border-color:#d8d8d8!important;background-color:#f0f0f0!important}.btn--hoveractive.btn--to-grey-125:hover .btn__inline-icon,.btn--to-grey-125.btn--activated .btn__inline-icon{color:#000!important}.btn--grey-175 .btn__body,.btn--grey-175 .btn__icon{background-color:#d0d0d0;color:#000}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#a6a6a6;color:#fff}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#929292}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-175:hover .btn__body,.btn--to-grey-175.btn--activated .btn__body{background-color:#d0d0d0!important;color:#000!important}.btn--hoveractive.btn--to-grey-175:hover .btn__icon,.btn--to-grey-175.btn--activated .btn__icon{border-color:#bbb!important;background-color:#d0d0d0!important}.btn--hoveractive.btn--to-grey-175:hover .btn__inline-icon,.btn--to-grey-175.btn--activated .btn__inline-icon{color:#000!important}.btn--white .btn__body,.btn--white .btn__icon{background-color:#fff;color:#000}.btn--white .btn__icon{border-color:#f3f3f3;background-color:#fff}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ccc;color:#fff}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#b3b3b3}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-white:hover .btn__body,.btn--to-white.btn--activated .btn__body{background-color:#fff!important;color:#000!important}.btn--hoveractive.btn--to-white:hover .btn__icon,.btn--to-white.btn--activated .btn__icon{border-color:#f3f3f3!important;background-color:#fff!important}.btn--hoveractive.btn--to-white:hover .btn__inline-icon,.btn--to-white.btn--activated .btn__inline-icon{color:#000!important}.btn--blue-300 .btn__body,.btn--blue-300 .btn__icon{background-color:#027da8;color:#fff}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#026486;color:#fff}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#015876}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-blue-300:hover .btn__body,.btn--to-blue-300.btn--activated .btn__body{background-color:#027da8!important;color:#fff!important}.btn--hoveractive.btn--to-blue-300:hover .btn__icon,.btn--to-blue-300.btn--activated .btn__icon{border-color:#027197!important;background-color:#027da8!important}.btn--hoveractive.btn--to-blue-300:hover .btn__inline-icon,.btn--to-blue-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--cyan-200 .btn__body,.btn--cyan-200 .btn__icon{background-color:#57b3bd;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#3e959f;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#37838b}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-cyan-200:hover .btn__body,.btn--to-cyan-200.btn--activated .btn__body{background-color:#57b3bd!important;color:#fff!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__icon,.btn--to-cyan-200.btn--activated .btn__icon{border-color:#46a8b2!important;background-color:#57b3bd!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__inline-icon,.btn--to-cyan-200.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-300 .btn__body,.btn--green-300 .btn__icon{background-color:#76cc9f;color:#fff}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#47bb7e;color:#fff}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#3da46e}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-300:hover .btn__body,.btn--to-green-300.btn--activated .btn__body{background-color:#76cc9f!important;color:#fff!important}.btn--hoveractive.btn--to-green-300:hover .btn__icon,.btn--to-green-300.btn--activated .btn__icon{border-color:#5fc38f!important;background-color:#76cc9f!important}.btn--hoveractive.btn--to-green-300:hover .btn__inline-icon,.btn--to-green-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-400 .btn__body,.btn--green-400 .btn__icon{background-color:#4ca971;color:#fff}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#3d875a;color:#fff}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#35764f}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-400:hover .btn__body,.btn--to-green-400.btn--activated .btn__body{background-color:#4ca971!important;color:#fff!important}.btn--hoveractive.btn--to-green-400:hover .btn__icon,.btn--to-green-400.btn--activated .btn__icon{border-color:#449866!important;background-color:#4ca971!important}.btn--hoveractive.btn--to-green-400:hover .btn__inline-icon,.btn--to-green-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-500 .btn__body,.btn--green-500 .btn__icon{background-color:#4fc49f;color:#000}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#37a582;color:#fff}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#309072}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-500:hover .btn__body,.btn--to-green-500.btn--activated .btn__body{background-color:#4fc49f!important;color:#000!important}.btn--hoveractive.btn--to-green-500:hover .btn__icon,.btn--to-green-500.btn--activated .btn__icon{border-color:#3eb992!important;background-color:#4fc49f!important}.btn--hoveractive.btn--to-green-500:hover .btn__inline-icon,.btn--to-green-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-500 .btn__body,.btn--yellow-500 .btn__icon{background-color:#f9ce05;color:#000}.btn--yellow-500 .btn__icon{border-color:#e0b905;background-color:#f9ce05}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#c7a504;color:#fff}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#ae9004}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-500:hover .btn__body,.btn--to-yellow-500.btn--activated .btn__body{background-color:#f9ce05!important;color:#000!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__icon,.btn--to-yellow-500.btn--activated .btn__icon{border-color:#e0b905!important;background-color:#f9ce05!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__inline-icon,.btn--to-yellow-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-600 .btn__body,.btn--yellow-600 .btn__icon{background-color:#d7b103;color:#000}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ac8e02;color:#fff}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#977c02}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-600:hover .btn__body,.btn--to-yellow-600.btn--activated .btn__body{background-color:#d7b103!important;color:#000!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__icon,.btn--to-yellow-600.btn--activated .btn__icon{border-color:#c29f03!important;background-color:#d7b103!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__inline-icon,.btn--to-yellow-600.btn--activated .btn__inline-icon{color:#000!important}.btn--orange-300 .btn__body,.btn--orange-300 .btn__icon{background-color:#ed9654;color:#fff}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#e7721a;color:#fff}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#cb6415}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-orange-300:hover .btn__body,.btn--to-orange-300.btn--activated .btn__body{background-color:#ed9654!important;color:#fff!important}.btn--hoveractive.btn--to-orange-300:hover .btn__icon,.btn--to-orange-300.btn--activated .btn__icon{border-color:#ea8437!important;background-color:#ed9654!important}.btn--hoveractive.btn--to-orange-300:hover .btn__inline-icon,.btn--to-orange-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-400 .btn__body,.btn--violet-400 .btn__icon{background-color:#840048;color:#fff}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#6a003a;color:#fff}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#5c0032}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-400:hover .btn__body,.btn--to-violet-400.btn--activated .btn__body{background-color:#840048!important;color:#fff!important}.btn--hoveractive.btn--to-violet-400:hover .btn__icon,.btn--to-violet-400.btn--activated .btn__icon{border-color:#770041!important;background-color:#840048!important}.btn--hoveractive.btn--to-violet-400:hover .btn__inline-icon,.btn--to-violet-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-500 .btn__body,.btn--violet-500 .btn__icon{background-color:#670047;color:#000}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#520039;color:#fff}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#480032}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-500:hover .btn__body,.btn--to-violet-500.btn--activated .btn__body{background-color:#670047!important;color:#000!important}.btn--hoveractive.btn--to-violet-500:hover .btn__icon,.btn--to-violet-500.btn--activated .btn__icon{border-color:#5d0040!important;background-color:#670047!important}.btn--hoveractive.btn--to-violet-500:hover .btn__inline-icon,.btn--to-violet-500.btn--activated .btn__inline-icon{color:#000!important}.btn--violet-700 .btn__body,.btn--violet-700 .btn__icon{background-color:#7d347d;color:#000}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#642a64;color:#fff}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#582458}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-700:hover .btn__body,.btn--to-violet-700.btn--activated .btn__body{background-color:#7d347d!important;color:#000!important}.btn--hoveractive.btn--to-violet-700:hover .btn__icon,.btn--to-violet-700.btn--activated .btn__icon{border-color:#712f71!important;background-color:#7d347d!important}.btn--hoveractive.btn--to-violet-700:hover .btn__inline-icon,.btn--to-violet-700.btn--activated .btn__inline-icon{color:#000!important}.btn--red-600 .btn__body,.btn--red-600 .btn__icon{background-color:#d60d53;color:#fff}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ab0a42;color:#fff}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#96093a}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-red-600:hover .btn__body,.btn--to-red-600.btn--activated .btn__body{background-color:#d60d53!important;color:#fff!important}.btn--hoveractive.btn--to-red-600:hover .btn__icon,.btn--to-red-600.btn--activated .btn__icon{border-color:#c10c4b!important;background-color:#d60d53!important}.btn--hoveractive.btn--to-red-600:hover .btn__inline-icon,.btn--to-red-600.btn--activated .btn__inline-icon{color:#fff!important}.btn--brands-facebook .btn__body,.btn--brands-facebook .btn__icon{background-color:#067ceb;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#0563bc;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#0457a5}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-brands-facebook:hover .btn__body,.btn--to-brands-facebook.btn--activated .btn__body{background-color:#067ceb!important;color:#fff!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__icon,.btn--to-brands-facebook.btn--activated .btn__icon{border-color:#0570d4!important;background-color:#067ceb!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__inline-icon,.btn--to-brands-facebook.btn--activated .btn__inline-icon{color:#fff!important}.container--default{max-width:1200px}.container--narrow{margin:auto;width:882px}.container--medium{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1350px}.container--wide{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1400px}.header-max-width{max-width:1340px!important}.container{margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;max-width:1150px}.grid-container{margin-left:1.25rem;margin-right:1.25rem;display:grid;grid-template-columns:1fr;grid-template-areas:"left-side" "content" "right-side";gap:1rem;max-width:1150px}.grid-container.article-section,.grid-container.person-grid-container{max-width:1400px}.grid-container.person-twitter-section{grid-template-columns:minmax(0,1200px)}@media (min-width: 1200px){.grid-container.person-twitter-section{grid-template-columns:minmax(0,240px) minmax(0,1fr) minmax(0,102px)}}.grid-container.no-max{max-width:none}.grid-content{grid-area:content}.grid-full{grid-column:left-side / right-side;grid-row:left-side / right-side}.grid-left-side{grid-area:left-side}.grid-left-side-with-content{grid-column:left-side / content;grid-row:left-side / content}.grid-right-side{grid-area:right-side}.grid-content-with-right-side{grid-column:content / right-side;grid-row:content / right-side}.footer-section{height:450px}.person-box-medium{max-width:485px;width:100%}.person-box-big{max-width:575px;width:100%}@media (min-width: 1200px){.footer-section{height:981px}}.text-input-addon{display:flex;align-items:center;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;font-weight:400;--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.text-input{border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;min-width:0px}.text-input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:active:not([disabled]):not([readonly]),.text-input:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly],.text-input[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.text-input[readonly]::-moz-placeholder,.text-input[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly]::placeholder,.text-input[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input-addon--l{border-right-width:0px}.text-input-addon--r{border-left-width:0px}.text-input:hover:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:focus:not([disabled]):not([readonly])~.text-input-addon,.text-input:active:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input[readonly]~.text-input-addon,.text-input[disabled]~.text-input-addon{--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input--has-addon-l.text-input{border-left-width:0px}.text-input--has-addon-r.text-input{border-right-width:0px}.select{position:relative;display:flex;width:100%;align-items:center;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 1200px){.select{padding-top:1rem;padding-bottom:1rem}}.select:after{position:absolute;right:0;padding-right:.75rem;font-size:1.3rem;font-weight:700;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;font-family:pirati-ui;content:""}.select__control{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 2rem .75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}@media (min-width: 1200px){.select__control{padding-top:1.25rem;padding-bottom:1.25rem}}.select__control{min-width:0px}.select__control:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.select__control:active:not([disabled]):not([readonly]),.select__control:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.select__control::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly],.select__control[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.select__control[readonly]::-moz-placeholder,.select__control[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly]::placeholder,.select__control[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.checkbox{position:relative;display:flex}.checkbox input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.checkbox input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(254 201 0 / var(--tw-border-opacity))}.checkbox input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.checkbox input[disabled]{cursor:not-allowed}.checkbox label{line-height:1.25}.checkbox:after{pointer-events:none;position:absolute;display:inline;content:"";height:5px;width:12px;top:6px;left:4px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg)}.radio{position:relative}.radio input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.radio input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.radio input:active,.radio input:focus{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.radio input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.radio input[disabled]{cursor:not-allowed}.radio label{display:flex;align-items:center;line-height:1.25}.radio:after{pointer-events:none;position:absolute;display:inline;height:.5rem;width:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));content:"";border-radius:50%;top:.375rem;left:.375rem}.form-field--error .text-input,.form-field--error .select__control,.form-field--error .text-input~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(214 13 83 / var(--tw-border-opacity))}.h-default{font-weight:500;line-height:1.25}.h-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:400;line-height:.96}.h-allcaps{font-weight:400;text-transform:uppercase;line-height:1.25}.head-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;text-transform:uppercase;line-height:1}@media (min-width: 992px){.head-xl{font-size:1.3rem}}.head-2xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:500;text-transform:uppercase;line-height:1;letter-spacing:-.01em}.head-3xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;text-transform:uppercase;line-height:1}.head-4xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-4xl{font-size:2.45rem;line-height:1}}@media (min-width: 1200px){.head-4xl{font-size:2.45rem}}.head-6xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-6xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-6xl{font-size:4rem}}.head-7xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-7xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-7xl{font-size:5.3rem}}.head-8xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-8xl{font-size:5.3rem;line-height:1}}@media (min-width: 1200px){.head-8xl{font-size:6.25rem}}.head-9xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-9xl{font-size:6.25rem;line-height:1}}@media (min-width: 1200px){.head-9xl{font-size:6.25rem}}.head-10xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase;letter-spacing:-.025em}@media (min-width: 768px){.head-10xl{font-size:7.5rem;line-height:1}}@media (min-width: 1200px){.head-10xl{font-size:7.5rem}}.head-14xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:500;text-transform:uppercase;line-height:4.75rem}@media (min-width: 1200px){.head-14xl{font-size:10.6rem;line-height:9.8rem}}.head-14xl.head-short{font-size:6.25rem;line-height:9.8rem}@media (min-width: 1200px){.head-14xl.head-short{font-size:10.6rem}}.head-14xl.head-compact{line-height:4rem}@media (min-width: 1200px){.head-14xl.head-compact{line-height:8.9rem}}.prose :where(.head-6xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-7xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-8xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-9xl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.25em}p{font-size:.875rem;line-height:1.5rem}@media (min-width: 992px){p{font-size:1rem}}.vertical-time-line{border-left:1px solid green}.program-perex .content-block p{font-size:1.3rem;line-height:1.75rem}.content-block h2{margin-bottom:1.25rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase;line-height:1.75rem}@media (min-width: 992px){.content-block h2{line-height:2.5rem}}@media (min-width: 1200px){.content-block h2{font-size:2.45rem}}.content-block h3{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;text-transform:uppercase;line-height:1rem}@media (min-width: 1200px){.content-block h3{font-size:1.875rem;line-height:2rem}}.content-block h4{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:500;text-transform:uppercase;line-height:2rem}@media (min-width: 1200px){.content-block h4{font-size:1.6rem}}.content-block h4{letter-spacing:-.01em}.content-block a{--tw-text-opacity: 1;color:rgb(2 125 168 / var(--tw-text-opacity));text-decoration-line:underline}:root{--fc-button-bg-color: #000;--fc-button-border-color: #000;--fc-button-hover-bg-color: #fec900;--fc-button-hover-border-color: #fec900;--fc-button-active-bg-color: #fec900;--fc-button-active-border-color: #fec900;--fc-event-bg-color: #fec900;--fc-event-border-color: #fec900;--fc-event-text-color: #000;--fc-border-color: #000;--fc-today-bg-color: #000;--fc-event-dot-color: #000}.fc-col-header{width:100%!important}.fc .fc-col-header-cell-cushion:not([href]):hover,.fc .fc-daygrid-day-number:not([href]):hover{text-decoration-line:none}.fc .fc-col-header-cell{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.75rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;text-transform:capitalize;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.5rem 1.25rem;text-align:center;font-size:1.125rem;font-weight:600;text-transform:uppercase;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button:hover{text-decoration-line:none}.fc .fc-button:hover:not(:disabled),.fc .fc-button:active:not(:disabled){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.fc .fc-event{cursor:pointer;border-radius:0;border-style:none;padding:.375rem;font-size:1rem;background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);color:var(--fc-event-text-color)}.fc-header-toolbar{align-items:flex-start!important}@media (min-width: 1200px){.fc-header-toolbar{align-items:center!important}}.fc .fc-toolbar-title,.fc .fc-today-button{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;text-transform:capitalize}.fc-toolbar-chunk{display:flex;flex-wrap:wrap-reverse;justify-content:flex-end;gap:.5rem}.fc .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}@media (min-width: 1200px){.fc .fc-daygrid-day-number{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem}}.fc-daygrid-body,.fc-scrollgrid-sync-table{width:100%!important}@media (min-width: 1200px){.fc-daygrid-body,.fc-scrollgrid-sync-table{width:unset}}.fc .fc-day-today .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-dot-color)}.fc .fc-scroller-harness{overflow:visible}.dropdown{position:relative;cursor:pointer}.dropbtn{margin-bottom:.25rem;padding:.75rem}.dropdown-content{position:absolute;z-index:1;display:none;list-style-type:none}@media screen and (max-width: 1200px){.dropdown-content{position:unset}.dropbtn{display:none}}.dropdown-content a{display:block;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}@media screen and (min-width: 1200px){.dropdown:hover .dropdown-content,.dropdown:focus .dropdown-content{display:flex;width:100%;flex-direction:column;gap:.75rem;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.75rem}.dropdown:hover .dropbtn,.dropdown:focus .dropbtn{position:relative;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dropdown-content li{line-height:1.5rem}.dropdown:hover,.dropdown:focus{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}}.drop-arrow{position:relative;top:2px;margin-left:.25rem}@media screen and (max-width: 1200px){.drop-arrow{display:none}}.article-box.dark-theme{background-color:#4c4c4c;color:#fff}.quote-icon{font-size:7rem;height:1rem}@media (min-width: 1200px){.quote-icon{font-size:15rem}}.header-carousel{display:block;margin:0 auto;position:relative}.header-carousel .header-carousel--text-wrapper,.header-carousel .elections--header-carousel--text-wrapper,.header-carousel .onboarding--header-carousel-text-wrapper{position:absolute;width:98vw;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;text-transform:uppercase}@media (min-width: 992px){.header-carousel .header-carousel--text-wrapper,.header-carousel .elections--header-carousel--text-wrapper{font-size:5.3rem}.header-carousel .onboarding--header-carousel-text-wrapper{font-size:4rem}}.header-carousel .header-carousel--text-wrapper{bottom:37%;height:85%}@media (min-width: 1200px){.header-carousel .header-carousel--text-wrapper{bottom:33%}}.header-carousel .elections--header-carousel--text-wrapper{bottom:45%;height:85%}@media (min-width: 1200px){.header-carousel .elections--header-carousel--text-wrapper{bottom:10%}}.header-carousel .header-carousel--image{inset:0;position:absolute;height:100%;width:100vw;-o-object-fit:cover;object-fit:cover}@media (min-width: 1200px){.header-carousel .header-carousel--image{height:458px}}@media (min-width: 768px){.header-carousel .header-carousel--image{height:100%}}@keyframes right_to_left{0%{margin-left:20%}to{margin-left:10%}}.btn{display:inline-flex;align-items:center;justify-content:center;font-family:Bebas Neue,Helvetica,Arial,sans-serif;line-height:2.25rem}.switch{margin-left:auto;margin-right:auto;padding-top:1.25rem;padding-bottom:1.25rem}.switch__item,.switch__item--elections,.switch__item--program{margin-bottom:.5rem;cursor:pointer;white-space:nowrap;padding:.5rem 1.25rem;text-align:center;font-weight:400;transition-duration:.2s}.switch__item:not(:last-child),.switch__item--elections:not(:last-child),.switch__item--program:not(:last-child){margin-right:.5rem}.switch__item{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.switch__item:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item.switch__item--active,.switch__item.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.switch__item--program{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.switch__item--program:hover{--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item--program.switch__item--active,.switch__item--program.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.switch__item--elections{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.switch__item--elections:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item--elections.switch__item--active,.switch__item--elections.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(79 79 79 / var(--tw-bg-opacity))}.horizontal-scrolling{display:block;margin-left:-15px;margin-right:-15px;max-width:calc(100vw - 50px);overflow-x:scroll;overflow-y:hidden;text-align:center;white-space:nowrap}@media (min-width: 1200px){.horizontal-scrolling{max-width:calc(100% + 30px)}}.horizontal-scrolling.draggable{cursor:grab}.horizontal-scrolling.draggable.active,.horizontal-scrolling.draggable.active a{cursor:grabbing}.no-scrollbars{-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:none}.no-scrollbars::-webkit-scrollbar{display:none}.background-hover-zoom{background-position:center;background-size:100%;transition:background-size .3s ease-in}.background-hover-zoom:hover{background-size:110%}.popout__toggle-wrapper{display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding-left:1.25rem;padding-right:1.25rem;font-size:1.125rem;transition-duration:.15s}.popout__toggle-wrapper:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.popout__toggle-wrapper.popout__toggle-wrapper--active{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.popout__toggle-name{padding-top:1rem;padding-bottom:1rem}.popout__content-wrapper{display:flex;flex-direction:column;gap:.75rem;--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity));padding:1rem 1.25rem}.popout__toggle-arrow{font-size:2.45rem}.candidate-secondary-box:not(:last-child){border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(208 208 208 / var(--tw-border-opacity))}.candidate-primary-box:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.candidate-primary-box:nth-child(odd) .candidate-primary-box--content{flex-direction:column-reverse}@media (min-width: 992px){.candidate-primary-box:nth-child(odd) .candidate-primary-box--content{flex-direction:row}.candidate-primary-box:nth-child(odd) .candidate-primary-box--text-column{align-items:flex-end}}.candidate-primary-box:nth-child(odd) .candidate-primary-box--text-column__hidden{--tw-translate-x: -100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(odd) .candidate-primary-box--image-column__hidden{--tw-translate-x: 100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(2n){--tw-bg-opacity: 1;background-color:rgb(238 238 238 / var(--tw-bg-opacity))}.candidate-primary-box:nth-child(2n) .candidate-primary-box--content{flex-direction:column-reverse}@media (min-width: 992px){.candidate-primary-box:nth-child(2n) .candidate-primary-box--content{flex-direction:row-reverse}}.candidate-primary-box:nth-child(2n) .candidate-primary-box--text-column{align-items:flex-start}.candidate-primary-box:nth-child(2n) .candidate-primary-box--text-column__hidden{--tw-translate-x: 100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(2n) .candidate-primary-box--image-column__hidden{--tw-translate-x: -100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flip-card .prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75rem;margin-bottom:.75rem}.flip-card .prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25rem;margin-bottom:.25rem}.flip-card{height:33rem;width:auto;cursor:pointer;perspective:1000px}.flip-card-inner{position:relative;width:100%;height:100%;transition:transform .8s;transform-style:preserve-3d}.flip-card:hover .flip-card-inner,.flip-card:focus .flip-card-inner{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden}.flip-card-back{transform:rotateY(180deg)}.article-timeline-grid{display:grid;gap:.5rem;margin-top:-20px;grid-template-areas:"left-article" "right-article"}@media (min-width: 1200px){.article-timeline-grid{grid-template-columns:minmax(0,570px) 1px minmax(0,570px);grid-template-areas:"left-article timeline right-article"}}.article-timeline-grid__left-article{grid-area:left-article}.article-timeline-grid__right-article{grid-area:right-article}.article-timeline-grid__timeline{grid-area:timeline}.article-timeline-grid__timeline:before{content:"";background:linear-gradient(180deg,#02002400,#fff);position:absolute;bottom:-1px;height:20px;z-index:10;width:2px;left:-1px}.article-timeline-grid__timeline .article-timeline--month{transform:translate(-50%);top:-1rem;z-index:100}.footer-collapsible__toggle{display:flex;cursor:pointer;align-items:center}.footer-collapsible__toggle:after{content:"";font-family:pirati-ui;margin-left:auto;font-size:3rem;font-weight:300;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.footer-collapsible__toggle.footer-collapsible__toggle--open:after{transform:rotate(-180deg)}@media (min-width: 768px){.footer-collapsible__toggle:after{display:none;cursor:auto}}.navbar{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.navbar .navbar__logo--white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity))!important}.navbar .navbar__logo--white:not(.navbar__district__logo){display:inline}.navbar .navbar__logo--white.navbar__district__logo{display:flex}.navbar .navbar__logo--black{display:none;--tw-text-opacity: 1 !important;color:rgb(0 0 0 / var(--tw-text-opacity))!important}.navbar .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.navbar .navbar__menu-item--selected{text-decoration-line:underline}.navbar .navbar__menu-item--selected:hover{text-decoration-line:none}.navbar.navbar--onboarding{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.navbar.navbar--onboarding.navbar--transparent{background-color:transparent}.navbar.navbar--onboarding.navbar--transparent .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.navbar.navbar--onboarding.navbar--transparent .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.navbar.navbar--elections{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar.navbar--elections .navbar__logo--white{display:none}.navbar.navbar--elections .navbar__logo--black{display:inline}.navbar.navbar--elections .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.navbar.navbar--elections .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.navbar.navbar--elections .bar1,.navbar.navbar--elections .bar2,.navbar.navbar--elections .bar3{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.navbar.navbar--elections.navbar--elections-transparent{background-color:transparent}.navbar.navbar--elections.navbar--elections-transparent .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar.navbar--elections.navbar--elections-transparent .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.navbar.navbar--transparent{background-color:transparent}@media (min-width: 1200px){.navbar.navbar--transparent{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}}.navbar.navbar--transparent .navbar__logo--white{display:none}.navbar.navbar--transparent .navbar__logo--black:not(.navbar__district__logo){display:inline}.navbar.navbar--transparent .navbar__logo--black.navbar__district__logo{display:flex}.navbar.navbar--transparent .bar1,.navbar.navbar--transparent .bar2,.navbar.navbar--transparent .bar3{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}@media (min-width: 1200px){.navbar.navbar--transparent.navbar--on-dark-bg{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--white:not(.navbar__district__logo){display:inline}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--white.navbar__district__logo{display:flex}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--black{display:none}.navbar.navbar--transparent.navbar--on-dark-bg .bar1,.navbar.navbar--transparent.navbar--on-dark-bg .bar2,.navbar.navbar--transparent.navbar--on-dark-bg .bar3{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bar1,.bar2,.bar3{background-color:#fff;display:block;height:2px;margin:6px 0;transition:.4s;width:35px}.navbar__mobile-menu__toggle:checked+label .bar1{transform:rotate(-45deg) translate(-3px,4px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu__toggle:checked+label .bar2{opacity:0}.navbar__mobile-menu__toggle:checked+label .bar3{transform:rotate(45deg) translate(-8px,-8px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0;transition:visibility .1s,opacity .1s linear}.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:auto;visibility:visible;z-index:20;opacity:1}@media (min-width: 1200px){.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0}}.newsletter-section{background-size:cover;background-repeat:no-repeat}@media (min-width: 768px){.newsletter-section{background-position:left top}}.region-map__list{-moz-columns:2;columns:2}.region-map__region{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.5s;transition:all .3s ease-out;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.region-map__region:after{content:"";width:10px;position:absolute;height:10px;background:#fec900;z-index:10}.region-map__region--current{fill:#fec900}@media (min-width: 992px){.faq-answer:nth-child(4n) .faq-answer--content{flex-direction:row-reverse}.faq-answer:nth-child(4n) .faq-answer--person{flex-direction:row-reverse}.faq-answer:nth-child(4n) .faq-answer--person--text{margin-left:-5rem}}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.\!bottom-\[0\]{bottom:0!important}.bottom-4{bottom:1rem}.left-0{left:0}.left-10{left:2.5rem}.left-\[30\%\]{left:30%}.right-4{right:1rem}.top-0{top:0}.top-10{top:2.5rem}.top-\[-1px\]{top:-1px}.top-\[2\.75rem\]{top:2.75rem}.top-\[30\%\]{top:30%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-8{grid-column:span 8 / span 8}.float-right{float:right}.float-left{float:left}.m-0{margin:0}.m-10{margin:2.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-20{margin-top:5rem;margin-bottom:5rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.\!mb-0{margin-bottom:0!important}.\!mb-16{margin-bottom:4rem!important}.\!ml-0{margin-left:0!important}.\!ml-\[unset\]{margin-left:unset!important}.\!mr-\[unset\]{margin-right:unset!important}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-\[0\.03rem\]{margin-bottom:.03rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-\[-5\.5rem\]{margin-left:-5.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mr-\[-2rem\]{margin-right:-2rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[-0\.5rem\]{margin-top:-.5rem}.mt-\[-5px\]{margin-top:-5px}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.\!h-0{height:0px!important}.\!h-full{height:100%!important}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-36{height:9rem}.h-64{height:16rem}.h-8{height:2rem}.h-\[17rem\]{height:17rem}.h-\[27rem\]{height:27rem}.h-\[33rem\]{height:33rem}.h-\[600px\]{height:600px}.h-\[700px\]{height:700px}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:0px}.min-h-\[600px\]{min-height:600px}.w-0{width:0px}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-10\/12{width:83.333333%}.w-12{width:3rem}.w-24{width:6rem}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-36{width:9rem}.w-4\/6{width:66.666667%}.w-40{width:10rem}.w-48{width:12rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-60{width:15rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[100px\]{width:100px}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[220px\]{width:220px}.w-\[calc\(100vw_-_3rem\)\]{width:calc(100vw - 3rem)}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[9rem\]{min-width:9rem}.min-w-\[calc\(100vw_-_2\.5rem\)\]{min-width:calc(100vw - 2.5rem)}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-72{max-width:18rem}.max-w-\[350px\]{max-width:350px}.max-w-\[400px\]{max-width:400px}.max-w-\[550px\]{max-width:550px}.max-w-\[60\%\]{max-width:60%}.max-w-\[600px\]{max-width:600px}.max-w-\[650px\]{max-width:650px}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-none{max-width:none}.max-w-screen-lg{max-width:992px}.max-w-xl{max-width:36rem}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-scale-x-100{--tw-scale-x: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-y-4{row-gap:1rem}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.\!border-0{border-width:0px!important}.border{border-width:1px}.border-4{border-width:4px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l-0{border-left-width:0px}.border-r-\[27rem\]{border-right-width:27rem}.border-t-\[33rem\]{border-top-width:33rem}.border-none{border-style:none}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-grey-180{--tw-border-opacity: 1;border-color:rgb(238 238 238 / var(--tw-border-opacity))}.border-grey-200{--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(249 206 5 / var(--tw-border-opacity))}.border-r-\[transparent\]{border-right-color:transparent}.\!bg-grey-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 243 243 / var(--tw-bg-opacity))!important}.\!bg-grey-180{--tw-bg-opacity: 1 !important;background-color:rgb(238 238 238 / var(--tw-bg-opacity))!important}.bg-\[\#00000088\]{background-color:#0008}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.bg-cyan-200{--tw-bg-opacity: 1;background-color:rgb(87 179 189 / var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(76 169 113 / var(--tw-bg-opacity))}.bg-grey-100{--tw-bg-opacity: 1;background-color:rgb(243 243 243 / var(--tw-bg-opacity))}.bg-grey-125{--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.bg-grey-150{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.bg-grey-180{--tw-bg-opacity: 1;background-color:rgb(238 238 238 / var(--tw-bg-opacity))}.bg-grey-185{--tw-bg-opacity: 1;background-color:rgb(189 189 189 / var(--tw-bg-opacity))}.bg-grey-200{--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity))}.bg-grey-50{--tw-bg-opacity: 1;background-color:rgb(247 247 247 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(237 150 84 / var(--tw-bg-opacity))}.bg-pirati-yellow{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(214 13 83 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-violet-400{--tw-bg-opacity: 1;background-color:rgb(132 0 72 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity: 1;background-color:rgb(255 234 90 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-\[top_right_-7rem\]{background-position:top right -7rem}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[200px\]{padding-top:200px;padding-bottom:200px}.\!pl-\[unset\]{padding-left:unset!important}.\!pr-\[unset\]{padding-right:unset!important}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-4{padding-left:1rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-12{padding-top:3rem}.pt-14{padding-top:3.5rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-24{padding-top:6rem}.pt-28{padding-top:7rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-96{padding-top:24rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif}.font-condensed{font-family:Roboto Condensed,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.6rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.45rem}.text-5xl{font-size:3rem}.text-6xl{font-size:4rem}.text-7xl{font-size:5.3rem}.text-8xl{font-size:6.25rem}.text-9xl{font-size:7.5rem}.text-\[3\.25rem\]{font-size:3.25rem}.text-\[3\.5rem\]{font-size:3.5rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.3rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-10{line-height:2.5rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[10\.5rem\]{line-height:10.5rem}.leading-none{line-height:1}.tracking-normal{letter-spacing:0em}.tracking-wide{letter-spacing:.025em}.\!text-black{--tw-text-opacity: 1 !important;color:rgb(0 0 0 / var(--tw-text-opacity))!important}.\!text-grey-250{--tw-text-opacity: 1 !important;color:rgb(136 136 136 / var(--tw-text-opacity))!important}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-grey-185{--tw-text-opacity: 1;color:rgb(189 189 189 / var(--tw-text-opacity))}.text-grey-200{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-grey-250{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity))}.text-grey-300{--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity))}.text-grey-350{--tw-text-opacity: 1;color:rgb(79 79 79 / var(--tw-text-opacity))}.text-grey-600{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(237 150 84 / var(--tw-text-opacity))}.text-pirati-yellow{--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(214 13 83 / var(--tw-text-opacity))}.text-turquoise-500{--tw-text-opacity: 1;color:rgb(37 165 185 / var(--tw-text-opacity))}.text-violet-300{--tw-text-opacity: 1;color:rgb(141 65 95 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.\!no-underline{text-decoration-line:none!important}.decoration-1{text-decoration-thickness:1px}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.bg-blend-darken{background-blend-mode:darken}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-100{transition-delay:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.btn.btn--fullwidth,.btn.btn--fullwidth .btn__body-wrap{width:100%;max-width:100%}.btn.btn--fullwidth .btn__body{flex:1}.btn.btn--autowidth{width:auto}@media (min-width: 1200px){.grid-container{grid-template-columns:240px 1fr 102px;grid-template-areas:"left-side content right-side";margin-left:10vw}}@media (min-width: 2060px){.grid-container{margin-left:20vw}}@media (min-width: 1200px){.grid-container.person-grid-container{grid-template-columns:240px 1fr 339px}}.head-alt-xl,.content-block .head-alt-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:400;line-height:.96}.head-alt-lg,.content-block .head-alt-lg{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:4rem;font-weight:400;line-height:.96}.head-alt-md,.content-block .head-alt-md{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:400;line-height:.96}.head-alt-base,.content-block .head-alt-base{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:400;line-height:.96}.head-alt-sm,.content-block .head-alt-sm{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:400;line-height:.96}.head-alt-xs,.content-block .head-alt-xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:400;line-height:.96}.head-alt-2xs,.content-block .head-alt-2xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:400;line-height:.96}.head-base,.content-block .head-base{font-size:1.875rem;font-weight:500;line-height:1.25}.head-sm,.content-block .head-sm{font-size:1.6rem;font-weight:500;line-height:1.25}.head-xs,.content-block .head-xs{font-size:1.3rem;font-weight:500;line-height:1.25}.head-2xs,.content-block .head-2xs{font-size:1.125rem;font-weight:500;line-height:1.25}.head-heavy-base,.content-block .head-heavy-base{font-size:1.875rem;font-weight:700;line-height:1.25}.head-heavy-sm,.content-block .head-heavy-sm{font-size:1.6rem;font-weight:700;line-height:1.25}.head-heavy-xs,.content-block .head-heavy-xs{font-size:1.3rem;font-weight:700;line-height:1.25}.head-heavy-2xs,.content-block .head-heavy-2xs{font-size:1.125rem;font-weight:700;line-height:1.25}.head-allcaps-2xs,.content-block .head-allcaps-2xs{font-size:1.125rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-3xs,.content-block .head-allcaps-3xs{font-size:1rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-4xs,.content-block .head-allcaps-4xs{font-size:.875rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-2xs,.content-block .head-allcaps-heavy-2xs{font-size:1.125rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-3xs,.content-block .head-allcaps-heavy-3xs{font-size:1rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-4xs,.content-block .head-allcaps-heavy-4xs{font-size:.875rem;font-weight:700;text-transform:uppercase;line-height:1.25}@media (min-width: 1200px){.switch__item{padding:.5rem 1.25rem}}.faq-answer .faq-answer--person{flex-direction:row-reverse}@media (min-width: 992px){.faq-answer:not(:nth-child(4n)) .faq-answer--person{flex-direction:row}}.slick-track[data-v-e4caeaf8]{position:relative;top:0;left:0;display:block;transform:translateZ(0)}.slick-track.slick-center[data-v-e4caeaf8]{margin-left:auto;margin-right:auto}.slick-track[data-v-e4caeaf8]:after,.slick-track[data-v-e4caeaf8]:before{display:table;content:""}.slick-track[data-v-e4caeaf8]:after{clear:both}.slick-loading .slick-track[data-v-e4caeaf8]{visibility:hidden}.slick-slide[data-v-e4caeaf8]{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide[data-v-e4caeaf8]{float:right}.slick-slide img[data-v-e4caeaf8]{display:block}.slick-slide.slick-loading img[data-v-e4caeaf8]{display:none}.slick-slide.dragging img[data-v-e4caeaf8]{pointer-events:none}.slick-initialized .slick-slide[data-v-e4caeaf8]{display:block}.slick-loading .slick-slide[data-v-e4caeaf8]{visibility:hidden}.slick-vertical .slick-slide[data-v-e4caeaf8]{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden[data-v-21137603]{display:none}.slick-slider[data-v-3d1a4f76]{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list[data-v-3d1a4f76]{position:relative;display:block;overflow:hidden;margin:0;padding:0;transform:translateZ(0)}.slick-list[data-v-3d1a4f76]:focus{outline:none}.slick-list.dragging[data-v-3d1a4f76]{cursor:pointer;cursor:hand}::-moz-selection{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity));background:#f9ce05}::selection{background:#f9ce05}:root{font-size:16px}html{scroll-behavior:smooth}body{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1rem}a:hover{text-decoration-line:underline}a.icon-link:hover{text-decoration-line:none}a.icon-link:hover span{text-decoration-line:underline}[v-cloak]{display:none}.copyleft{transform:scaleX(-1)!important}.inline-block-nogap{font-size:0}.iframe-container{position:relative;padding-bottom:56.25%;height:0}.iframe-container iframe{position:absolute;top:0;left:0;height:100%;width:100%}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{background:transparent;width:0px}.universal-content-container{margin-top:10rem!important;margin-bottom:2rem!important;padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1400px}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.hover\:bg-grey-600:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.group:hover .group-hover\:pointer-events-auto{pointer-events:auto}.group:hover .group-hover\:-translate-x-2{--tw-translate-x: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-yellow-600{--tw-border-opacity: 1;border-color:rgb(215 177 3 / var(--tw-border-opacity))}.group:hover .group-hover\:text-8xl{font-size:6.25rem}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:blur-sm{--tw-blur: blur(4px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media (min-width: 576px){.sm\:w-5\/12{width:41.666667%}.sm\:w-6\/12{width:50%}.sm\:text-4xl{font-size:2.45rem}.sm\:btn--autowidth.btn{width:auto}}@media (min-width: 768px){.md\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:mb-16{margin-bottom:4rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-96{width:24rem}.md\:shrink-0{flex-shrink:0}.md\:auto-rows-auto{grid-auto-rows:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:2rem}.md\:gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.md\:gap-y-5{row-gap:1.25rem}.md\:pr-0{padding-right:0}.md\:text-2xl{font-size:1.6rem}.md\:text-4xl{font-size:2.45rem}.md\:text-base{font-size:1rem}}@media (min-width: 992px){.lg\:float-right{float:right}.lg\:float-left{float:left}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-12{margin-top:3rem;margin-bottom:3rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mb-12{margin-bottom:3rem}.lg\:mb-16{margin-bottom:4rem}.lg\:mb-3{margin-bottom:.75rem}.lg\:ml-0{margin-left:0}.lg\:mt-0{margin-top:0}.lg\:mt-\[-1rem\]{margin-top:-1rem}.lg\:block{display:block}.lg\:inline{display:inline}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-96{height:24rem}.lg\:w-1\/2{width:50%}.lg\:w-2\/5{width:40%}.lg\:w-3\/5{width:60%}.lg\:w-5\/12{width:41.666667%}.lg\:w-\[180px\]{width:180px}.lg\:w-\[190px\]{width:190px}.lg\:w-\[280px\]{width:280px}.lg\:w-\[35rem\]{width:35rem}.lg\:w-\[unset\]{width:unset}.lg\:w-min{width:-moz-min-content;width:min-content}.lg\:min-w-\[15rem\]{min-width:15rem}.lg\:min-w-\[24rem\]{min-width:24rem}.lg\:max-w-screen-lg{max-width:992px}.lg\:grow-0{flex-grow:0}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:basis-2\/3{flex-basis:66.666667%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:gap-2{gap:.5rem}.lg\:gap-4{gap:1rem}.lg\:gap-8{gap:2rem}.lg\:overflow-x-visible{overflow-x:visible}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:text-justify{text-align:justify}.lg\:text-6xl{font-size:4rem}.lg\:text-\[5\.5rem\]{font-size:5.5rem}.lg\:text-base{font-size:1rem}}@media (min-width: 1200px){.xl\:absolute{position:absolute}.xl\:col-span-1{grid-column:span 1 / span 1}.xl\:col-span-3{grid-column:span 3 / span 3}.xl\:m-0{margin:0}.xl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xl\:mb-0{margin-bottom:0}.xl\:mb-12{margin-bottom:3rem}.xl\:mb-20{margin-bottom:5rem}.xl\:mb-24{margin-bottom:6rem}.xl\:mb-32{margin-bottom:8rem}.xl\:mb-6{margin-bottom:1.5rem}.xl\:mb-8{margin-bottom:2rem}.xl\:mr-12{margin-right:3rem}.xl\:mr-2{margin-right:.5rem}.xl\:mt-2{margin-top:.5rem}.xl\:mt-\[-0\.7rem\]{margin-top:-.7rem}.xl\:mt-\[-1rem\]{margin-top:-1rem}.xl\:block{display:block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:h-14{height:3.5rem}.xl\:h-\[600px\]{height:600px}.xl\:h-\[620px\]{height:620px}.xl\:h-\[696px\]{height:696px}.xl\:h-screen{height:100vh}.xl\:w-1\/2{width:50%}.xl\:w-14{width:3.5rem}.xl\:w-60{width:15rem}.xl\:w-auto{width:auto}.xl\:shrink-0{flex-shrink:0}.xl\:grow-0{flex-grow:0}.xl\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:flex-col{flex-direction:column}.xl\:items-start{align-items:flex-start}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:justify-start{justify-content:flex-start}.xl\:justify-between{justify-content:space-between}.xl\:gap-0{gap:0px}.xl\:gap-12{gap:3rem}.xl\:gap-16{gap:4rem}.xl\:gap-4{gap:1rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.xl\:justify-self-end{justify-self:end}.xl\:bg-transparent{background-color:transparent}.xl\:bg-center{background-position:center}.xl\:p-12{padding:3rem}.xl\:px-0{padding-left:0;padding-right:0}.xl\:px-3{padding-left:.75rem;padding-right:.75rem}.xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xl\:px-8{padding-left:2rem;padding-right:2rem}.xl\:py-0{padding-top:0;padding-bottom:0}.xl\:py-24{padding-top:6rem;padding-bottom:6rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xl\:py-52{padding-top:13rem;padding-bottom:13rem}.xl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xl\:py-8{padding-top:2rem;padding-bottom:2rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pb-20{padding-bottom:5rem}.xl\:pb-24{padding-bottom:6rem}.xl\:pb-\[110px\]{padding-bottom:110px}.xl\:pl-32{padding-left:8rem}.xl\:pl-8{padding-left:2rem}.xl\:pr-0{padding-right:0}.xl\:pr-3{padding-right:.75rem}.xl\:pr-4{padding-right:1rem}.xl\:pr-40{padding-right:10rem}.xl\:pt-1{padding-top:.25rem}.xl\:pt-16{padding-top:4rem}.xl\:pt-32{padding-top:8rem}.xl\:pt-48{padding-top:12rem}.xl\:pt-6{padding-top:1.5rem}.xl\:pt-8{padding-top:2rem}.xl\:text-14xl{font-size:10.6rem}.xl\:text-3xl{font-size:1.875rem}.xl\:text-4xl{font-size:2.45rem}.xl\:text-7xl{font-size:5.3rem}.xl\:text-9xl{font-size:7.5rem}.xl\:text-lg{font-size:1.125rem}.xl\:text-xl{font-size:1.3rem}.xl\:leading-\[10\.5rem\]{line-height:10.5rem}.xl\:\[flex-flow\:column_wrap\]{flex-flow:column wrap}.xl\:\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}}@media (min-width: 1366px){.\32xl\:h-\[550px\]{height:550px}.\32xl\:h-\[646px\]{height:646px}.\32xl\:text-\[6\.5rem\]{font-size:6.5rem}}@media (min-width: 1600px){.\32\.5xl\:ml-\[-10rem\]{margin-left:-10rem}}@media (min-width: 2060px){.\33xl\:text-lg{font-size:1.125rem}}.\[\&\>div\.content-block\>p\:first-child\]\:mt-0>div.content-block>p:first-child{margin-top:0}.\[\&_\*\]\:mt-0 *{margin-top:0}.\[\&_\*\]\:\!gap-0 *{gap:0px!important}.\[\&_\*\]\:\!p-0 *{padding:0!important}.\[\&_\*\]\:\!text-\[0rem\] *{font-size:0rem!important}.\[\&_\*\]\:\!leading-\[0px\] *{line-height:0px!important}.\[\&_\*\]\:\!text-grey-250 *{--tw-text-opacity: 1 !important;color:rgb(136 136 136 / var(--tw-text-opacity))!important}.\[\&_\*\]\:\!delay-0 *{transition-delay:0s!important}.\[\&_\*\]\:\!duration-0 *{transition-duration:0s!important}.\[\&_\.content-block\]\:flex .content-block{display:flex}.\[\&_\.content-block\]\:flex-col .content-block{flex-direction:column}.\[\&_\.content-block\]\:gap-4 .content-block{gap:1rem}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_p\]\:\!text-lg p{font-size:1.125rem!important}.\[\&_p\]\:text-lg p{font-size:1.125rem}.\[\&_p\]\:leading-7 p{line-height:1.75rem}.\[\&_p\]\:text-black p{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.\[\&_p\]\:delay-300 p{transition-delay:.3s}.\[\&_p\]\:duration-150 p{transition-duration:.15s}:root{--f-spinner-width: 36px;--f-spinner-height: 36px;--f-spinner-color-1: rgba(0, 0, 0, .1);--f-spinner-color-2: rgba(17, 24, 28, .8);--f-spinner-stroke: 2.75}.f-spinner{margin:auto;padding:0;width:var(--f-spinner-width);height:var(--f-spinner-height)}.f-spinner svg{width:100%;height:100%;vertical-align:top;animation:f-spinner-rotate 2s linear infinite}.f-spinner svg *{stroke-width:var(--f-spinner-stroke);fill:none}.f-spinner svg *:first-child{stroke:var(--f-spinner-color-1)}.f-spinner svg *:last-child{stroke:var(--f-spinner-color-2);animation:f-spinner-dash 2s ease-in-out infinite}@keyframes f-spinner-rotate{to{transform:rotate(360deg)}}@keyframes f-spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.f-throwOutUp{animation:var(--f-throw-out-duration, .175s) ease-out both f-throwOutUp}.f-throwOutDown{animation:var(--f-throw-out-duration, .175s) ease-out both f-throwOutDown}@keyframes f-throwOutUp{to{transform:translate3d(0,calc(var(--f-throw-out-distance, 150px) * -1),0);opacity:0}}@keyframes f-throwOutDown{to{transform:translate3d(0,var(--f-throw-out-distance, 150px),0);opacity:0}}.f-zoomInUp{animation:var(--f-transition-duration, .2s) ease .1s both f-zoomInUp}.f-zoomOutDown{animation:var(--f-transition-duration, .2s) ease both f-zoomOutDown}@keyframes f-zoomInUp{0%{transform:scale(.975) translate3d(0,16px,0);opacity:0}to{transform:scale(1) translateZ(0);opacity:1}}@keyframes f-zoomOutDown{to{transform:scale(.975) translate3d(0,16px,0);opacity:0}}.f-fadeIn{animation:var(--f-transition-duration, .2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeIn;z-index:2}.f-fadeOut{animation:var(--f-transition-duration, .2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeOut;z-index:1}@keyframes f-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes f-fadeOut{to{opacity:0}}.f-fadeFastIn{animation:var(--f-transition-duration, .2s) ease-out both f-fadeFastIn;z-index:2}.f-fadeFastOut{animation:var(--f-transition-duration, .1s) ease-out both f-fadeFastOut;z-index:2}@keyframes f-fadeFastIn{0%{opacity:.75}to{opacity:1}}@keyframes f-fadeFastOut{to{opacity:0}}.f-fadeSlowIn{animation:var(--f-transition-duration, .5s) ease both f-fadeSlowIn;z-index:2}.f-fadeSlowOut{animation:var(--f-transition-duration, .5s) ease both f-fadeSlowOut;z-index:1}@keyframes f-fadeSlowIn{0%{opacity:0}to{opacity:1}}@keyframes f-fadeSlowOut{to{opacity:0}}.f-crossfadeIn{animation:var(--f-transition-duration, .2s) ease-out both f-crossfadeIn;z-index:2}.f-crossfadeOut{animation:calc(var(--f-transition-duration, .2s)*.5) linear .1s both f-crossfadeOut;z-index:1}@keyframes f-crossfadeIn{0%{opacity:0}to{opacity:1}}@keyframes f-crossfadeOut{to{opacity:0}}.f-slideIn.from-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInNext}.f-slideIn.from-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInPrev}.f-slideOut.to-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutNext}.f-slideOut.to-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutPrev}@keyframes f-slideInPrev{0%{transform:translate(100%)}to{transform:translateZ(0)}}@keyframes f-slideInNext{0%{transform:translate(-100%)}to{transform:translateZ(0)}}@keyframes f-slideOutNext{to{transform:translate(-100%)}}@keyframes f-slideOutPrev{to{transform:translate(100%)}}.f-classicIn.from-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicInNext;z-index:2}.f-classicIn.from-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicInPrev;z-index:2}.f-classicOut.to-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicOutNext;z-index:1}.f-classicOut.to-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicOutPrev;z-index:1}@keyframes f-classicInNext{0%{transform:translate(-75px);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes f-classicInPrev{0%{transform:translate(75px);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes f-classicOutNext{to{transform:translate(-75px);opacity:0}}@keyframes f-classicOutPrev{to{transform:translate(75px);opacity:0}}:root{--f-button-width: 40px;--f-button-height: 40px;--f-button-border: 0;--f-button-border-radius: 0;--f-button-color: #374151;--f-button-bg: #f8f8f8;--f-button-hover-bg: #e0e0e0;--f-button-active-bg: #d0d0d0;--f-button-shadow: none;--f-button-transition: all .15s ease;--f-button-transform: none;--f-button-svg-width: 20px;--f-button-svg-height: 20px;--f-button-svg-stroke-width: 1.5;--f-button-svg-fill: none;--f-button-svg-filter: none;--f-button-svg-disabled-opacity: .65}.f-button{display:flex;justify-content:center;align-items:center;box-sizing:content-box;position:relative;margin:0;padding:0;width:var(--f-button-width);height:var(--f-button-height);border:var(--f-button-border);border-radius:var(--f-button-border-radius);color:var(--f-button-color);background:var(--f-button-bg);box-shadow:var(--f-button-shadow);pointer-events:all;cursor:pointer;transition:var(--f-button-transition)}@media (hover: hover){.f-button:hover:not([disabled]){color:var(--f-button-hover-color);background-color:var(--f-button-hover-bg)}}.f-button:active:not([disabled]){background-color:var(--f-button-active-bg)}.f-button:focus:not(:focus-visible){outline:none}.f-button:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--f-button-outline, 2px) var(--f-button-outline-color, var(--f-button-color))}.f-button svg{width:var(--f-button-svg-width);height:var(--f-button-svg-height);fill:var(--f-button-svg-fill);stroke:currentColor;stroke-width:var(--f-button-svg-stroke-width);stroke-linecap:round;stroke-linejoin:round;transition:opacity .15s ease;transform:var(--f-button-transform);filter:var(--f-button-svg-filter);pointer-events:none}.f-button[disabled]{cursor:default}.f-button[disabled] svg{opacity:var(--f-button-svg-disabled-opacity)}.f-carousel__nav .f-button.is-prev,.f-carousel__nav .f-button.is-next,.fancybox__nav .f-button.is-prev,.fancybox__nav .f-button.is-next{position:absolute;z-index:1}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-next{top:50%;transform:translateY(-50%)}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-prev{left:var(--f-button-prev-pos)}.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-next{right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-prev,.is-horizontal.is-rtl .fancybox__nav .f-button.is-prev{left:auto;right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-next,.is-horizontal.is-rtl .fancybox__nav .f-button.is-next{right:auto;left:var(--f-button-prev-pos)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-next{top:auto;left:50%;transform:translate(-50%)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-prev{top:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-next{bottom:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-prev svg,.is-vertical .f-carousel__nav .f-button.is-next svg,.is-vertical .fancybox__nav .f-button.is-prev svg,.is-vertical .fancybox__nav .f-button.is-next svg{transform:rotate(90deg)}.f-carousel__nav .f-button:disabled,.fancybox__nav .f-button:disabled{pointer-events:none}html.with-fancybox{width:auto;overflow:visible;scroll-behavior:auto}html.with-fancybox body{touch-action:none}html.with-fancybox body.hide-scrollbar{width:auto;margin-right:calc(var(--fancybox-body-margin, 0px) + var(--fancybox-scrollbar-compensate, 0px));overflow:hidden!important;overscroll-behavior-y:none}.fancybox__container{--fancybox-color: #dbdbdb;--fancybox-hover-color: #fff;--fancybox-bg: rgba(24, 24, 27, .98);--fancybox-slide-gap: 10px;--f-spinner-width: 50px;--f-spinner-height: 50px;--f-spinner-color-1: rgba(255, 255, 255, .1);--f-spinner-color-2: #bbb;--f-spinner-stroke: 3.65;position:fixed;inset:0;direction:ltr;display:flex;flex-direction:column;box-sizing:border-box;margin:0;padding:0;color:#f8f8f8;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:visible;z-index:var(--fancybox-zIndex, 1050);outline:none;transform-origin:top left;-webkit-text-size-adjust:100%;-moz-text-size-adjust:none;text-size-adjust:100%;overscroll-behavior-y:contain}.fancybox__container *,.fancybox__container *:before,.fancybox__container *:after{box-sizing:inherit}.fancybox__container::backdrop{background-color:#0000}.fancybox__backdrop{position:fixed;inset:0;z-index:-1;background:var(--fancybox-bg);opacity:var(--fancybox-opacity, 1);will-change:opacity}.fancybox__carousel{position:relative;box-sizing:border-box;flex:1;min-height:0;z-index:10;overflow-y:visible;overflow-x:clip}.fancybox__viewport{width:100%;height:100%}.fancybox__viewport.is-draggable{cursor:move;cursor:grab}.fancybox__viewport.is-dragging{cursor:move;cursor:grabbing}.fancybox__track{display:flex;margin:0 auto;height:100%}.fancybox__slide{flex:0 0 auto;position:relative;display:flex;flex-direction:column;align-items:center;width:100%;height:100%;margin:0 var(--fancybox-slide-gap) 0 0;padding:4px;overflow:auto;overscroll-behavior:contain;transform:translateZ(0);backface-visibility:hidden}.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn{padding-top:40px}.fancybox__slide.has-iframe,.fancybox__slide.has-video,.fancybox__slide.has-html5video,.fancybox__slide.has-image{overflow:hidden}.fancybox__slide.has-image.is-animating,.fancybox__slide.has-image.is-selected{overflow:visible}.fancybox__slide:before,.fancybox__slide:after{content:"";flex:0 0 0;margin:auto}.fancybox__backdrop:empty,.fancybox__viewport:empty,.fancybox__track:empty,.fancybox__slide:empty{display:block}.fancybox__content{align-self:center;display:flex;flex-direction:column;position:relative;margin:0;padding:2rem;max-width:100%;color:var(--fancybox-content-color, #374151);background:var(--fancybox-content-bg, #fff);cursor:default;border-radius:0;z-index:20}.is-loading .fancybox__content{opacity:0}.is-draggable .fancybox__content{cursor:move;cursor:grab}.can-zoom_in .fancybox__content{cursor:zoom-in}.can-zoom_out .fancybox__content{cursor:zoom-out}.is-dragging .fancybox__content{cursor:move;cursor:grabbing}.fancybox__content [data-selectable],.fancybox__content [contenteditable]{cursor:auto}.fancybox__slide.has-image>.fancybox__content{padding:0;background:#0000;min-height:1px;background-repeat:no-repeat;background-size:contain;background-position:center center;transition:none;transform:translateZ(0);backface-visibility:hidden}.fancybox__slide.has-image>.fancybox__content>picture>img{width:100%;height:auto;max-height:100%}.is-animating .fancybox__content,.is-dragging .fancybox__content{will-change:transform,width,height}.fancybox-image{margin:auto;display:block;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:blur(0px)}.fancybox__caption{align-self:center;max-width:100%;flex-shrink:0;margin:0;padding:14px 0 4px;overflow-wrap:anywhere;line-height:1.375;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);cursor:auto;visibility:visible}.is-loading .fancybox__caption,.is-closing .fancybox__caption{opacity:0;visibility:hidden}.is-compact .fancybox__caption{padding-bottom:0}.f-button.is-close-btn{--f-button-svg-stroke-width: 2;position:absolute;top:0;right:8px;z-index:40}.fancybox__content>.f-button.is-close-btn{--f-button-width: 34px;--f-button-height: 34px;--f-button-border-radius: 4px;--f-button-color: var(--fancybox-color, #fff);--f-button-hover-color: var(--fancybox-color, #fff);--f-button-bg: transparent;--f-button-hover-bg: transparent;--f-button-active-bg: transparent;--f-button-svg-width: 22px;--f-button-svg-height: 22px;position:absolute;top:-38px;right:0;opacity:.75}.is-loading .fancybox__content>.f-button.is-close-btn{visibility:hidden}.is-zooming-out .fancybox__content>.f-button.is-close-btn{visibility:hidden}.fancybox__content>.f-button.is-close-btn:hover{opacity:1}.fancybox__footer{padding:0;margin:0;position:relative}.fancybox__footer .fancybox__caption{width:100%;padding:24px;opacity:var(--fancybox-opacity, 1);transition:all .25s ease}.is-compact .fancybox__footer{position:absolute;bottom:0;left:0;right:0;z-index:20;background:#18181b80}.is-compact .fancybox__footer .fancybox__caption{padding:12px}.is-compact .fancybox__content>.f-button.is-close-btn{--f-button-border-radius: 50%;--f-button-color: #fff;--f-button-hover-color: #fff;--f-button-outline-color: #000;--f-button-bg: rgba(0, 0, 0, .6);--f-button-active-bg: rgba(0, 0, 0, .6);--f-button-hover-bg: rgba(0, 0, 0, .6);--f-button-svg-width: 18px;--f-button-svg-height: 18px;--f-button-svg-filter: none;top:5px;right:5px}.fancybox__nav{--f-button-width: 50px;--f-button-height: 50px;--f-button-border: 0;--f-button-border-radius: 50%;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: transparent;--f-button-hover-bg: rgba(24, 24, 27, .3);--f-button-active-bg: rgba(24, 24, 27, .5);--f-button-shadow: none;--f-button-transition: all .15s ease;--f-button-transform: none;--f-button-svg-width: 26px;--f-button-svg-height: 26px;--f-button-svg-stroke-width: 2.5;--f-button-svg-fill: none;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, .5));--f-button-svg-disabled-opacity: .65;--f-button-next-pos: 1rem;--f-button-prev-pos: 1rem;opacity:var(--fancybox-opacity, 1)}.fancybox__nav .f-button:before{position:absolute;content:"";inset:-30px -20px;z-index:1}.is-idle .fancybox__nav{animation:.15s ease-out both f-fadeOut}.is-idle.is-compact .fancybox__footer{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__slide>.f-spinner{position:absolute;top:50%;left:50%;margin:var(--f-spinner-top, calc(var(--f-spinner-width) * -.5)) 0 0 var(--f-spinner-left, calc(var(--f-spinner-height) * -.5));z-index:30;cursor:pointer}.fancybox-protected{position:absolute;inset:0;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox-ghost{position:absolute;top:0;left:0;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.fancybox-focus-guard{outline:none;opacity:0;position:fixed;pointer-events:none}.fancybox__container:not([aria-hidden]){opacity:0}.fancybox__container.is-animated[aria-hidden=false]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=false] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=false] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-enter-duration, .25s) ease .1s backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=false] .fancybox__backdrop{animation:var(--f-backdrop-enter-duration, .35s) ease backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=true]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=true] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=true] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-exit-duration, .15s) ease forwards f-fadeOut}.fancybox__container.is-animated[aria-hidden=true] .fancybox__backdrop{animation:var(--f-backdrop-exit-duration, .35s) ease forwards f-fadeOut}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{max-width:100%;flex-shrink:1;min-height:1px;overflow:visible}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content{width:calc(100% - 120px);height:90%}.fancybox__container.is-compact .has-iframe .fancybox__content,.fancybox__container.is-compact .has-map .fancybox__content,.fancybox__container.is-compact .has-pdf .fancybox__content{width:100%;height:100%}.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{width:960px;height:540px;max-width:100%;max-height:100%}.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{padding:0;background:#18181be6;color:#fff}.has-map .fancybox__content{background:#e5e3df}.fancybox__html5video,.fancybox__iframe{border:0;display:block;height:100%;width:100%;background:#0000}.fancybox-placeholder{border:0!important;clip:rect(1px,1px,1px,1px)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.f-carousel__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-outline: 0;--f-thumb-outline-color: #5eb0ef;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1;--f-thumb-border-radius: 2px;--f-thumb-offset: 0px;--f-button-next-pos: 0;--f-button-prev-pos: 0}.f-carousel__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: .5;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1}.f-carousel__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px}.f-thumbs{position:relative;flex:0 0 auto;margin:0;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;user-select:none;perspective:1000px;transform:translateZ(0)}.f-thumbs .f-spinner{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:2px;background-image:linear-gradient(#ebeff2,#e2e8f0);z-index:-1}.f-thumbs .f-spinner svg{display:none}.f-thumbs.is-vertical{height:100%}.f-thumbs__viewport{width:100%;height:auto;overflow:hidden;transform:translateZ(0)}.f-thumbs__track{display:flex}.f-thumbs__slide{position:relative;flex:0 0 auto;box-sizing:content-box;display:flex;align-items:center;justify-content:center;padding:0;margin:0;width:var(--f-thumb-width);height:var(--f-thumb-height);overflow:visible;cursor:pointer}.f-thumbs__slide.is-loading img{opacity:0}.is-classic .f-thumbs__viewport{height:100%}.is-modern .f-thumbs__track{width:-moz-max-content;width:max-content}.is-modern .f-thumbs__track:before{content:"";position:absolute;top:0;bottom:0;left:calc((var(--f-thumb-clip-width, 0))*-.5);width:calc(var(--width, 0)*1px + var(--f-thumb-clip-width, 0));cursor:pointer}.is-modern .f-thumbs__slide{width:var(--f-thumb-clip-width);transform:translate3d(calc(var(--shift, 0) * -1px),0,0);transition:none;pointer-events:none}.is-modern.is-resting .f-thumbs__slide{transition:transform .33s ease}.is-modern.is-resting .f-thumbs__slide__button{transition:clip-path .33s ease}.is-using-tab .is-modern .f-thumbs__slide:focus-within{filter:drop-shadow(-1px 0px 0px var(--f-thumb-outline-color)) drop-shadow(2px 0px 0px var(--f-thumb-outline-color)) drop-shadow(0px -1px 0px var(--f-thumb-outline-color)) drop-shadow(0px 2px 0px var(--f-thumb-outline-color))}.f-thumbs__slide__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--f-thumb-width);height:100%;margin:0 -100%;padding:0;border:0;position:relative;border-radius:var(--f-thumb-border-radius);overflow:hidden;background:#0000;outline:none;cursor:pointer;pointer-events:auto;touch-action:manipulation;opacity:var(--f-thumb-opacity);transition:opacity .2s ease}.f-thumbs__slide__button:hover{opacity:var(--f-thumb-hover-opacity)}.f-thumbs__slide__button:focus:not(:focus-visible){outline:none}.f-thumbs__slide__button:focus-visible{outline:none;opacity:var(--f-thumb-selected-opacity)}.is-modern .f-thumbs__slide__button{--clip-path: inset( 0 calc( ((var(--f-thumb-width, 0) - var(--f-thumb-clip-width, 0))) * (1 - var(--progress, 0)) * .5 ) round var(--f-thumb-border-radius, 0) );clip-path:var(--clip-path)}.is-classic .is-nav-selected .f-thumbs__slide__button{opacity:var(--f-thumb-selected-opacity)}.is-classic .is-nav-selected .f-thumbs__slide__button:after{content:"";position:absolute;inset:0;height:auto;border:var(--f-thumb-outline, 0) solid var(--f-thumb-outline-color, transparent);border-radius:var(--f-thumb-border-radius);animation:f-fadeIn .2s ease-out;z-index:10}.f-thumbs__slide__img{overflow:hidden;position:absolute;inset:0;width:100%;height:100%;margin:0;padding:var(--f-thumb-offset);box-sizing:border-box;pointer-events:none;-o-object-fit:cover;object-fit:cover;border-radius:var(--f-thumb-border-radius)}.f-thumbs.is-horizontal .f-thumbs__track{padding:8px 0 12px}.f-thumbs.is-horizontal .f-thumbs__slide{margin:0 var(--f-thumb-gap) 0 0}.f-thumbs.is-vertical .f-thumbs__track{flex-wrap:wrap;padding:0 8px}.f-thumbs.is-vertical .f-thumbs__slide{margin:0 0 var(--f-thumb-gap) 0}.fancybox__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-border-radius: 2px;--f-thumb-outline: 2px;--f-thumb-outline-color: #ededed;position:relative;opacity:var(--fancybox-opacity, 1);transition:max-height .35s cubic-bezier(.23,1,.32,1)}.fancybox__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: .5;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-classic .f-spinner{background-image:linear-gradient(#ffffff1a,#ffffff0d)}.fancybox__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-modern .f-spinner{background-image:linear-gradient(#ffffff1a,#ffffff0d)}.fancybox__thumbs.is-horizontal{padding:0 var(--f-thumb-gap)}.fancybox__thumbs.is-vertical{padding:var(--f-thumb-gap) 0}.is-compact .fancybox__thumbs{--f-thumb-width: 64px;--f-thumb-clip-width: 32px;--f-thumb-height: 48px;--f-thumb-extra-gap: 10px}.fancybox__thumbs.is-masked{max-height:0px!important}.is-closing .fancybox__thumbs{transition:none!important}.fancybox__toolbar{--f-progress-color: var(--fancybox-color, rgba(255, 255, 255, .94));--f-button-width: 46px;--f-button-height: 46px;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: rgba(24, 24, 27, .65);--f-button-hover-bg: rgba(70, 70, 73, .65);--f-button-active-bg: rgba(90, 90, 93, .65);--f-button-border-radius: 0;--f-button-svg-width: 24px;--f-button-svg-height: 24px;--f-button-svg-stroke-width: 1.5;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, .15));--f-button-svg-fill: none;--f-button-svg-disabled-opacity: .65;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI Adjusted,Segoe UI,Liberation Sans,sans-serif;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);text-shadow:var(--fancybox-toolbar-text-shadow, 1px 1px 1px rgba(0, 0, 0, .5));pointer-events:none;z-index:20}.fancybox__toolbar :focus-visible{z-index:1}.fancybox__toolbar.is-absolute,.is-compact .fancybox__toolbar{position:absolute;top:0;left:0;right:0}.is-idle .fancybox__toolbar{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__toolbar__column{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.fancybox__toolbar__column.is-left,.fancybox__toolbar__column.is-right{flex-grow:1;flex-basis:0}.fancybox__toolbar__column.is-right{display:flex;justify-content:flex-end;flex-wrap:nowrap}.fancybox__infobar{padding:0 5px;line-height:var(--f-button-height);text-align:center;font-size:17px;font-variant-numeric:tabular-nums;-webkit-font-smoothing:subpixel-antialiased;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox__infobar span{padding:0 5px}.fancybox__infobar:not(:first-child):not(:last-child){background:var(--f-button-bg)}[data-fancybox-toggle-slideshow]{position:relative}[data-fancybox-toggle-slideshow] .f-progress{height:100%;opacity:.3}[data-fancybox-toggle-slideshow] svg g:first-child{display:flex}[data-fancybox-toggle-slideshow] svg g:last-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:first-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:last-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:first-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:last-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:first-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:last-child{display:flex}.f-progress{position:absolute;top:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;background:var(--f-progress-color, var(--f-carousel-theme-color, #0091ff));z-index:30;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} +@import"https://gfonts.pirati.cz/css2?family=Bebas+Neue&family=Roboto+Condensed:wght@300;400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400&display=swap";@font-face{font-family:pirati-ui;src:url(/static/styleguide2/pirati-ui.eot?bna028);src:url(/static/styleguide2/pirati-ui.eot?bna028#iefix) format("embedded-opentype"),url(/static/styleguide2/pirati-ui.ttf?bna028) format("truetype"),url(/static/styleguide2/pirati-ui.woff?bna028) format("woff"),url(/static/styleguide2/pirati-ui.svg?bna028#pirati-ui) format("svg");font-weight:400;font-style:normal;font-display:block}[class^=ico--],[class*=" ico--"]{font-family:pirati-ui!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ico--twitter:before{content:""}.ico--mastodon:before{content:""}.ico--helios:before{content:""}.ico--redmine:before{content:""}.ico--zulip:before{content:""}.ico--forum:before{content:""}.ico--pirati:before{content:""}.ico--jitsi:before{content:""}.ico--open-source:before{content:""}.ico--donation-full:before{content:""}.ico--donation-outline:before{content:""}.ico--strategy:before{content:""}.ico--pig:before{content:""}.ico--thermometer:before{content:""}.ico--menu:before{content:""}.ico--chevron-right:before{content:""}.ico--chevron-left:before{content:""}.ico--chevron-down:before{content:""}.ico--chevron-up:before{content:""}.ico--link-horizontal:before{content:""}.ico--beer:before{content:""}.ico--food:before{content:""}.ico--dots-three-vertical:before{content:""}.ico--dots-three-horizontal:before{content:""}.ico--log-out:before{content:""}.ico--envelope:before{content:""}.ico--pin:before{content:""}.ico--at:before{content:""}.ico--glass:before{content:""}.ico--checkmark:before{content:""}.ico--info:before{content:""}.ico--question:before{content:""}.ico--warning:before{content:""}.ico--code:before{content:""}.ico--checkbox-unchecked:before{content:""}.ico--star-full:before{content:""}.ico--star-empty:before{content:""}.ico--bookmark:before{content:""}.ico--cog:before{content:""}.ico--key:before{content:""}.ico--zoom-in:before{content:""}.ico--zoom-out:before{content:""}.ico--shrink:before{content:""}.ico--printer:before{content:""}.ico--file-openoffice:before{content:""}.ico--user:before{content:""}.ico--file-excel:before{content:""}.ico--file-word:before{content:""}.ico--file-pdf:before{content:""}.ico--file-picture:before{content:""}.ico--file-blank:before{content:""}.ico--folder-upload:before{content:""}.ico--upload:before{content:""}.ico--cloud-upload:before{content:""}.ico--folder-download:before{content:""}.ico--download:before{content:""}.ico--cloud-download:before{content:""}.ico--alarm:before{content:""}.ico--calculator:before{content:""}.ico--facebook-full:before{content:""}.ico--feed:before{content:""}.ico--library:before{content:""}.ico--office:before{content:""}.ico--attachment:before{content:""}.ico--enlarge:before{content:""}.ico--eye-off:before{content:""}.ico--eye:before{content:""}.ico--share:before{content:""}.ico--search:before{content:""}.ico--pencil:before{content:""}.ico--lock-open:before{content:""}.ico--lock:before{content:""}.ico--equalizer:before{content:""}.ico--switch:before{content:""}.ico--loop:before{content:""}.ico--refresh:before{content:""}.ico--bullhorn:before{content:""}.ico--bin:before{content:""}.ico--cross:before{content:""}.ico--checkbox-checked:before{content:""}.ico--globe:before{content:""}.ico--wikipedia:before{content:""}.ico--youtube:before{content:""}.ico--users:before{content:""}.ico--book:before{content:""}.ico--bubbles:before{content:""}.ico--map:before{content:""}.ico--compass:before{content:""}.ico--folder-open:before{content:""}.ico--folder:before{content:""}.ico--drawer:before{content:""}.ico--stop:before{content:""}.ico--github:before{content:""}.ico--clock:before{content:""}.ico--calendar:before{content:""}.ico--flickr:before{content:""}.ico--instagram:before{content:""}.ico--newspaper:before{content:""}.ico--cart:before{content:""}.ico--home:before{content:""}.ico--link:before{content:""}.ico--power:before{content:""}.ico--rocket:before{content:""}.ico--location:before{content:""}.ico--phone:before{content:""}.ico--linkedin:before{content:""}.ico--facebook:before{content:""}.ico--envelop:before{content:""}.ico--file-text2:before{content:""}.ico--price-tag:before{content:""}.ico--price-tags:before{content:""}.ico--stats-dots:before{content:""}.ico--bed:before{content:""}.ico--train:before{content:""}.ico--bus:before{content:""}.ico--wheelchair:before{content:""}.ico--thumbs-down:before{content:""}.ico--thumbs-up:before{content:""}.ico--anchor:before{content:""}.ico--paw:before{content:""}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-black{--tw-prose-body: #000000;--tw-prose-headings: #000000;--tw-prose-lead: #000000;--tw-prose-links: #000000;--tw-prose-bold: #000000;--tw-prose-counters: #000000;--tw-prose-bullets: #000000;--tw-prose-hr: #000000;--tw-prose-quotes: #000000;--tw-prose-quote-borders: #000000;--tw-prose-captions: #000000;--tw-prose-code: #000000;--tw-prose-pre-code: #000000;--tw-prose-pre-bg: #ffffff;--tw-prose-th-borders: #000000;--tw-prose-td-borders: #000000;--tw-prose-invert-body: #ffffff;--tw-prose-invert-headings: #ffffff;--tw-prose-invert-lead: #ffffff;--tw-prose-invert-links: #ffffff;--tw-prose-invert-bold: #ffffff;--tw-prose-invert-counters: #ffffff;--tw-prose-invert-bullets: #ffffff;--tw-prose-invert-hr: #ffffff;--tw-prose-invert-quotes: #ffffff;--tw-prose-invert-quote-borders: #ffffff;--tw-prose-invert-captions: #ffffff;--tw-prose-invert-code: #ffffff;--tw-prose-invert-pre-code: #ffffff;--tw-prose-invert-pre-bg: #000000;--tw-prose-invert-th-borders: #ffffff;--tw-prose-invert-td-borders: #ffffff}.btn{display:inline-block;text-align:center;font-weight:400;max-width:20rem;text-decoration:none}.btn[disabled]{opacity:.7;cursor:not-allowed}.btn:hover{text-decoration:none}.btn__body{display:flex;height:100%;align-items:center;justify-content:center;padding:.25em 2em}.btn__body-wrap{min-width:10rem;min-height:2.75rem}.btn__body,.btn__icon,.btn__inline-icon{transition-property:color,background-color,border-color;transition-duration:.2s;color:#fff}.btn__body,.btn__icon{background-color:#000}.btn--icon .btn__body-wrap{display:flex}.btn--condensed .btn__body{padding:.75em 1em}@keyframes btn-loading-spinner{to{transform:rotate(360deg)}}.btn--black .btn__body,.btn--black .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#262626}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-black:hover .btn__body,.btn--to-black.btn--activated .btn__body{background-color:#000!important;color:#fff!important}.btn--hoveractive.btn--to-black:hover .btn__icon,.btn--to-black.btn--activated .btn__icon{border-color:#343434!important;background-color:#000!important}.btn--hoveractive.btn--to-black:hover .btn__inline-icon,.btn--to-black.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-700 .btn__body,.btn--grey-700 .btn__icon{background-color:#202020;color:#fff}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#343434;color:#fff}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#262626}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-700:hover .btn__body,.btn--to-grey-700.btn--activated .btn__body{background-color:#202020!important;color:#fff!important}.btn--hoveractive.btn--to-grey-700:hover .btn__icon,.btn--to-grey-700.btn--activated .btn__icon{border-color:#303132!important;background-color:#202020!important}.btn--hoveractive.btn--to-grey-700:hover .btn__inline-icon,.btn--to-grey-700.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-500 .btn__body,.btn--grey-500 .btn__icon{background-color:#303132;color:#fff}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#4c4c4c;color:#fff}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#343434}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-500:hover .btn__body,.btn--to-grey-500.btn--activated .btn__body{background-color:#303132!important;color:#fff!important}.btn--hoveractive.btn--to-grey-500:hover .btn__icon,.btn--to-grey-500.btn--activated .btn__icon{border-color:#4c4c4c!important;background-color:#303132!important}.btn--hoveractive.btn--to-grey-500:hover .btn__inline-icon,.btn--to-grey-500.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-125 .btn__body,.btn--grey-125 .btn__icon{background-color:#f0f0f0;color:#000}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:silver;color:#fff}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#a8a8a8}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-125:hover .btn__body,.btn--to-grey-125.btn--activated .btn__body{background-color:#f0f0f0!important;color:#000!important}.btn--hoveractive.btn--to-grey-125:hover .btn__icon,.btn--to-grey-125.btn--activated .btn__icon{border-color:#d8d8d8!important;background-color:#f0f0f0!important}.btn--hoveractive.btn--to-grey-125:hover .btn__inline-icon,.btn--to-grey-125.btn--activated .btn__inline-icon{color:#000!important}.btn--grey-175 .btn__body,.btn--grey-175 .btn__icon{background-color:#d0d0d0;color:#000}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#a6a6a6;color:#fff}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#929292}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-175:hover .btn__body,.btn--to-grey-175.btn--activated .btn__body{background-color:#d0d0d0!important;color:#000!important}.btn--hoveractive.btn--to-grey-175:hover .btn__icon,.btn--to-grey-175.btn--activated .btn__icon{border-color:#bbb!important;background-color:#d0d0d0!important}.btn--hoveractive.btn--to-grey-175:hover .btn__inline-icon,.btn--to-grey-175.btn--activated .btn__inline-icon{color:#000!important}.btn--white .btn__body,.btn--white .btn__icon{background-color:#fff;color:#000}.btn--white .btn__icon{border-color:#f3f3f3;background-color:#fff}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ccc;color:#fff}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#b3b3b3}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-white:hover .btn__body,.btn--to-white.btn--activated .btn__body{background-color:#fff!important;color:#000!important}.btn--hoveractive.btn--to-white:hover .btn__icon,.btn--to-white.btn--activated .btn__icon{border-color:#f3f3f3!important;background-color:#fff!important}.btn--hoveractive.btn--to-white:hover .btn__inline-icon,.btn--to-white.btn--activated .btn__inline-icon{color:#000!important}.btn--blue-300 .btn__body,.btn--blue-300 .btn__icon{background-color:#027da8;color:#fff}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#026486;color:#fff}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#015876}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-blue-300:hover .btn__body,.btn--to-blue-300.btn--activated .btn__body{background-color:#027da8!important;color:#fff!important}.btn--hoveractive.btn--to-blue-300:hover .btn__icon,.btn--to-blue-300.btn--activated .btn__icon{border-color:#027197!important;background-color:#027da8!important}.btn--hoveractive.btn--to-blue-300:hover .btn__inline-icon,.btn--to-blue-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--cyan-200 .btn__body,.btn--cyan-200 .btn__icon{background-color:#57b3bd;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#3e959f;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#37838b}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-cyan-200:hover .btn__body,.btn--to-cyan-200.btn--activated .btn__body{background-color:#57b3bd!important;color:#fff!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__icon,.btn--to-cyan-200.btn--activated .btn__icon{border-color:#46a8b2!important;background-color:#57b3bd!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__inline-icon,.btn--to-cyan-200.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-300 .btn__body,.btn--green-300 .btn__icon{background-color:#76cc9f;color:#fff}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#47bb7e;color:#fff}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#3da46e}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-300:hover .btn__body,.btn--to-green-300.btn--activated .btn__body{background-color:#76cc9f!important;color:#fff!important}.btn--hoveractive.btn--to-green-300:hover .btn__icon,.btn--to-green-300.btn--activated .btn__icon{border-color:#5fc38f!important;background-color:#76cc9f!important}.btn--hoveractive.btn--to-green-300:hover .btn__inline-icon,.btn--to-green-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-400 .btn__body,.btn--green-400 .btn__icon{background-color:#4ca971;color:#fff}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#3d875a;color:#fff}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#35764f}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-400:hover .btn__body,.btn--to-green-400.btn--activated .btn__body{background-color:#4ca971!important;color:#fff!important}.btn--hoveractive.btn--to-green-400:hover .btn__icon,.btn--to-green-400.btn--activated .btn__icon{border-color:#449866!important;background-color:#4ca971!important}.btn--hoveractive.btn--to-green-400:hover .btn__inline-icon,.btn--to-green-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-500 .btn__body,.btn--green-500 .btn__icon{background-color:#4fc49f;color:#000}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#37a582;color:#fff}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#309072}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-500:hover .btn__body,.btn--to-green-500.btn--activated .btn__body{background-color:#4fc49f!important;color:#000!important}.btn--hoveractive.btn--to-green-500:hover .btn__icon,.btn--to-green-500.btn--activated .btn__icon{border-color:#3eb992!important;background-color:#4fc49f!important}.btn--hoveractive.btn--to-green-500:hover .btn__inline-icon,.btn--to-green-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-500 .btn__body,.btn--yellow-500 .btn__icon{background-color:#f9ce05;color:#000}.btn--yellow-500 .btn__icon{border-color:#e0b905;background-color:#f9ce05}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#c7a504;color:#fff}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#ae9004}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-500:hover .btn__body,.btn--to-yellow-500.btn--activated .btn__body{background-color:#f9ce05!important;color:#000!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__icon,.btn--to-yellow-500.btn--activated .btn__icon{border-color:#e0b905!important;background-color:#f9ce05!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__inline-icon,.btn--to-yellow-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-600 .btn__body,.btn--yellow-600 .btn__icon{background-color:#d7b103;color:#000}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ac8e02;color:#fff}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#977c02}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-600:hover .btn__body,.btn--to-yellow-600.btn--activated .btn__body{background-color:#d7b103!important;color:#000!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__icon,.btn--to-yellow-600.btn--activated .btn__icon{border-color:#c29f03!important;background-color:#d7b103!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__inline-icon,.btn--to-yellow-600.btn--activated .btn__inline-icon{color:#000!important}.btn--orange-300 .btn__body,.btn--orange-300 .btn__icon{background-color:#ed9654;color:#fff}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#e7721a;color:#fff}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#cb6415}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-orange-300:hover .btn__body,.btn--to-orange-300.btn--activated .btn__body{background-color:#ed9654!important;color:#fff!important}.btn--hoveractive.btn--to-orange-300:hover .btn__icon,.btn--to-orange-300.btn--activated .btn__icon{border-color:#ea8437!important;background-color:#ed9654!important}.btn--hoveractive.btn--to-orange-300:hover .btn__inline-icon,.btn--to-orange-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-400 .btn__body,.btn--violet-400 .btn__icon{background-color:#840048;color:#fff}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#6a003a;color:#fff}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#5c0032}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-400:hover .btn__body,.btn--to-violet-400.btn--activated .btn__body{background-color:#840048!important;color:#fff!important}.btn--hoveractive.btn--to-violet-400:hover .btn__icon,.btn--to-violet-400.btn--activated .btn__icon{border-color:#770041!important;background-color:#840048!important}.btn--hoveractive.btn--to-violet-400:hover .btn__inline-icon,.btn--to-violet-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-500 .btn__body,.btn--violet-500 .btn__icon{background-color:#670047;color:#000}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#520039;color:#fff}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#480032}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-500:hover .btn__body,.btn--to-violet-500.btn--activated .btn__body{background-color:#670047!important;color:#000!important}.btn--hoveractive.btn--to-violet-500:hover .btn__icon,.btn--to-violet-500.btn--activated .btn__icon{border-color:#5d0040!important;background-color:#670047!important}.btn--hoveractive.btn--to-violet-500:hover .btn__inline-icon,.btn--to-violet-500.btn--activated .btn__inline-icon{color:#000!important}.btn--violet-700 .btn__body,.btn--violet-700 .btn__icon{background-color:#7d347d;color:#000}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#642a64;color:#fff}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#582458}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-700:hover .btn__body,.btn--to-violet-700.btn--activated .btn__body{background-color:#7d347d!important;color:#000!important}.btn--hoveractive.btn--to-violet-700:hover .btn__icon,.btn--to-violet-700.btn--activated .btn__icon{border-color:#712f71!important;background-color:#7d347d!important}.btn--hoveractive.btn--to-violet-700:hover .btn__inline-icon,.btn--to-violet-700.btn--activated .btn__inline-icon{color:#000!important}.btn--red-600 .btn__body,.btn--red-600 .btn__icon{background-color:#d60d53;color:#fff}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ab0a42;color:#fff}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#96093a}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-red-600:hover .btn__body,.btn--to-red-600.btn--activated .btn__body{background-color:#d60d53!important;color:#fff!important}.btn--hoveractive.btn--to-red-600:hover .btn__icon,.btn--to-red-600.btn--activated .btn__icon{border-color:#c10c4b!important;background-color:#d60d53!important}.btn--hoveractive.btn--to-red-600:hover .btn__inline-icon,.btn--to-red-600.btn--activated .btn__inline-icon{color:#fff!important}.btn--brands-facebook .btn__body,.btn--brands-facebook .btn__icon{background-color:#067ceb;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#0563bc;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#0457a5}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-brands-facebook:hover .btn__body,.btn--to-brands-facebook.btn--activated .btn__body{background-color:#067ceb!important;color:#fff!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__icon,.btn--to-brands-facebook.btn--activated .btn__icon{border-color:#0570d4!important;background-color:#067ceb!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__inline-icon,.btn--to-brands-facebook.btn--activated .btn__inline-icon{color:#fff!important}.container--default{max-width:1200px}.container--narrow{margin:auto;width:882px}.container--medium{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1350px}.container--wide{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1400px}.header-max-width{max-width:1340px!important}.container{margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;max-width:1150px}.grid-container{margin-left:1.25rem;margin-right:1.25rem;display:grid;grid-template-columns:1fr;grid-template-areas:"left-side" "content" "right-side";gap:1rem;max-width:1150px}.grid-container.article-section,.grid-container.person-grid-container{max-width:1400px}.grid-container.person-twitter-section{grid-template-columns:minmax(0,1200px)}@media (min-width: 1200px){.grid-container.person-twitter-section{grid-template-columns:minmax(0,240px) minmax(0,1fr) minmax(0,102px)}}.grid-container.no-max{max-width:none}.grid-content{grid-area:content}.grid-full{grid-column:left-side / right-side;grid-row:left-side / right-side}.grid-left-side{grid-area:left-side}.grid-left-side-with-content{grid-column:left-side / content;grid-row:left-side / content}.grid-right-side{grid-area:right-side}.grid-content-with-right-side{grid-column:content / right-side;grid-row:content / right-side}.footer-section{height:450px}.person-box-medium{max-width:485px;width:100%}.person-box-big{max-width:575px;width:100%}@media (min-width: 1200px){.footer-section{height:981px}}.text-input-addon{display:flex;align-items:center;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;font-weight:400;--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.text-input{border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;min-width:0px}.text-input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:active:not([disabled]):not([readonly]),.text-input:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly],.text-input[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.text-input[readonly]::-moz-placeholder,.text-input[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly]::placeholder,.text-input[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input-addon--l{border-right-width:0px}.text-input-addon--r{border-left-width:0px}.text-input:hover:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:focus:not([disabled]):not([readonly])~.text-input-addon,.text-input:active:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input[readonly]~.text-input-addon,.text-input[disabled]~.text-input-addon{--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input--has-addon-l.text-input{border-left-width:0px}.text-input--has-addon-r.text-input{border-right-width:0px}.select{position:relative;display:flex;width:100%;align-items:center;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 1200px){.select{padding-top:1rem;padding-bottom:1rem}}.select:after{position:absolute;right:0;padding-right:.75rem;font-size:1.3rem;font-weight:700;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;font-family:pirati-ui;content:""}.select__control{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 2rem .75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}@media (min-width: 1200px){.select__control{padding-top:1.25rem;padding-bottom:1.25rem}}.select__control{min-width:0px}.select__control:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.select__control:active:not([disabled]):not([readonly]),.select__control:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.select__control::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly],.select__control[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.select__control[readonly]::-moz-placeholder,.select__control[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly]::placeholder,.select__control[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.checkbox{position:relative;display:flex}.checkbox input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.checkbox input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(254 201 0 / var(--tw-border-opacity))}.checkbox input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.checkbox input[disabled]{cursor:not-allowed}.checkbox label{line-height:1.25}.checkbox:after{pointer-events:none;position:absolute;display:inline;content:"";height:5px;width:12px;top:6px;left:4px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg)}.radio{position:relative}.radio input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.radio input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.radio input:active,.radio input:focus{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.radio input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.radio input[disabled]{cursor:not-allowed}.radio label{display:flex;align-items:center;line-height:1.25}.radio:after{pointer-events:none;position:absolute;display:inline;height:.5rem;width:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));content:"";border-radius:50%;top:.375rem;left:.375rem}.form-field--error .text-input,.form-field--error .select__control,.form-field--error .text-input~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(214 13 83 / var(--tw-border-opacity))}.h-default{font-weight:500;line-height:1.25}.h-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:400;line-height:.96}.h-allcaps{font-weight:400;text-transform:uppercase;line-height:1.25}.head-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;text-transform:uppercase;line-height:1}@media (min-width: 992px){.head-xl{font-size:1.3rem}}.head-2xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:500;text-transform:uppercase;line-height:1;letter-spacing:-.01em}.head-3xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;text-transform:uppercase;line-height:1}.head-4xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-4xl{font-size:2.45rem;line-height:1}}@media (min-width: 1200px){.head-4xl{font-size:2.45rem}}.head-6xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-6xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-6xl{font-size:4rem}}.head-7xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-7xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-7xl{font-size:5.3rem}}.head-8xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-8xl{font-size:5.3rem;line-height:1}}@media (min-width: 1200px){.head-8xl{font-size:6.25rem}}.head-9xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-9xl{font-size:6.25rem;line-height:1}}@media (min-width: 1200px){.head-9xl{font-size:6.25rem}}.head-10xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase;letter-spacing:-.025em}@media (min-width: 768px){.head-10xl{font-size:7.5rem;line-height:1}}@media (min-width: 1200px){.head-10xl{font-size:7.5rem}}.head-14xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:500;text-transform:uppercase;line-height:4.75rem}@media (min-width: 1200px){.head-14xl{font-size:10.6rem;line-height:9.8rem}}.head-14xl.head-short{font-size:6.25rem;line-height:9.8rem}@media (min-width: 1200px){.head-14xl.head-short{font-size:10.6rem}}.head-14xl.head-compact{line-height:4rem}@media (min-width: 1200px){.head-14xl.head-compact{line-height:8.9rem}}.prose :where(.head-6xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-7xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-8xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-9xl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.25em}p{font-size:.875rem;line-height:1.5rem}@media (min-width: 992px){p{font-size:1rem}}.vertical-time-line{border-left:1px solid green}.program-perex .content-block p{font-size:1.3rem;line-height:1.75rem}.content-block h2{margin-bottom:1.25rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase;line-height:1.75rem}@media (min-width: 992px){.content-block h2{line-height:2.5rem}}@media (min-width: 1200px){.content-block h2{font-size:2.45rem}}.content-block h3{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;text-transform:uppercase;line-height:1rem}@media (min-width: 1200px){.content-block h3{font-size:1.875rem;line-height:2rem}}.content-block h4{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:500;text-transform:uppercase;line-height:2rem}@media (min-width: 1200px){.content-block h4{font-size:1.6rem}}.content-block h4{letter-spacing:-.01em}.content-block a{--tw-text-opacity: 1;color:rgb(2 125 168 / var(--tw-text-opacity));text-decoration-line:underline}:root{--fc-button-bg-color: #000;--fc-button-border-color: #000;--fc-button-hover-bg-color: #fec900;--fc-button-hover-border-color: #fec900;--fc-button-active-bg-color: #fec900;--fc-button-active-border-color: #fec900;--fc-event-bg-color: #fec900;--fc-event-border-color: #fec900;--fc-event-text-color: #000;--fc-border-color: #000;--fc-today-bg-color: #000;--fc-event-dot-color: #000}.fc-col-header{width:100%!important}.fc .fc-col-header-cell-cushion:not([href]):hover,.fc .fc-daygrid-day-number:not([href]):hover{text-decoration-line:none}.fc .fc-col-header-cell{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.75rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;text-transform:capitalize;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.5rem 1.25rem;text-align:center;font-size:1.125rem;font-weight:600;text-transform:uppercase;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button:hover{text-decoration-line:none}.fc .fc-button:hover:not(:disabled),.fc .fc-button:active:not(:disabled){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.fc .fc-event{cursor:pointer;border-radius:0;border-style:none;padding:.375rem;font-size:1rem;background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);color:var(--fc-event-text-color)}.fc-header-toolbar{align-items:flex-start!important}@media (min-width: 1200px){.fc-header-toolbar{align-items:center!important}}.fc .fc-toolbar-title,.fc .fc-today-button{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;text-transform:capitalize}.fc-toolbar-chunk{display:flex;flex-wrap:wrap-reverse;justify-content:flex-end;gap:.5rem}.fc .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}@media (min-width: 1200px){.fc .fc-daygrid-day-number{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem}}.fc-daygrid-body,.fc-scrollgrid-sync-table{width:100%!important}@media (min-width: 1200px){.fc-daygrid-body,.fc-scrollgrid-sync-table{width:unset}}.fc .fc-day-today .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-dot-color)}.fc .fc-scroller-harness{overflow:visible}.dropdown{position:relative;cursor:pointer}.dropbtn{margin-bottom:.25rem;padding:.75rem}.dropdown-content{position:absolute;z-index:1;display:none;list-style-type:none}@media screen and (max-width: 1200px){.dropdown-content{position:unset}.dropbtn{display:none}}.dropdown-content a{display:block;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}@media screen and (min-width: 1200px){.dropdown:hover .dropdown-content,.dropdown:focus .dropdown-content{display:flex;width:100%;flex-direction:column;gap:.75rem;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.75rem}.dropdown:hover .dropbtn,.dropdown:focus .dropbtn{position:relative;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dropdown-content li{line-height:1.5rem}.dropdown:hover,.dropdown:focus{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}}.drop-arrow{position:relative;top:2px;margin-left:.25rem}@media screen and (max-width: 1200px){.drop-arrow{display:none}}.article-box.dark-theme{background-color:#4c4c4c;color:#fff}.quote-icon{font-size:7rem;height:1rem}@media (min-width: 1200px){.quote-icon{font-size:15rem}}.header-carousel{display:block;margin:0 auto;position:relative}.header-carousel .header-carousel--text-wrapper,.header-carousel .elections--header-carousel--text-wrapper,.header-carousel .onboarding--header-carousel-text-wrapper{position:absolute;width:98vw;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;text-transform:uppercase}@media (min-width: 992px){.header-carousel .header-carousel--text-wrapper,.header-carousel .elections--header-carousel--text-wrapper{font-size:5.3rem}.header-carousel .onboarding--header-carousel-text-wrapper{font-size:4rem}}.header-carousel .header-carousel--text-wrapper{bottom:37%;height:85%}@media (min-width: 1200px){.header-carousel .header-carousel--text-wrapper{bottom:33%}}.header-carousel .elections--header-carousel--text-wrapper{bottom:45%;height:85%}@media (min-width: 1200px){.header-carousel .elections--header-carousel--text-wrapper{bottom:10%}}.header-carousel .header-carousel--image{inset:0;position:absolute;height:100%;width:100vw;-o-object-fit:cover;object-fit:cover}@media (min-width: 1200px){.header-carousel .header-carousel--image{height:458px}}@media (min-width: 768px){.header-carousel .header-carousel--image{height:100%}}@keyframes right_to_left{0%{margin-left:20%}to{margin-left:10%}}.btn{display:inline-flex;align-items:center;justify-content:center;font-family:Bebas Neue,Helvetica,Arial,sans-serif;line-height:2.25rem}.switch{margin-left:auto;margin-right:auto;padding-top:1.25rem;padding-bottom:1.25rem}.switch__item,.switch__item--elections,.switch__item--program{margin-bottom:.5rem;cursor:pointer;white-space:nowrap;padding:.5rem 1.25rem;text-align:center;font-weight:400;transition-duration:.2s}.switch__item:not(:last-child),.switch__item--elections:not(:last-child),.switch__item--program:not(:last-child){margin-right:.5rem}.switch__item{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.switch__item:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item.switch__item--active,.switch__item.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.switch__item--program{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.switch__item--program:hover{--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item--program.switch__item--active,.switch__item--program.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.switch__item--elections{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.switch__item--elections:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item--elections.switch__item--active,.switch__item--elections.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(79 79 79 / var(--tw-bg-opacity))}.horizontal-scrolling{display:block;margin-left:-15px;margin-right:-15px;max-width:calc(100vw - 50px);overflow-x:scroll;overflow-y:hidden;text-align:center;white-space:nowrap}@media (min-width: 1200px){.horizontal-scrolling{max-width:calc(100% + 30px)}}.horizontal-scrolling.draggable{cursor:grab}.horizontal-scrolling.draggable.active,.horizontal-scrolling.draggable.active a{cursor:grabbing}.no-scrollbars{-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:none}.no-scrollbars::-webkit-scrollbar{display:none}.background-hover-zoom{background-position:center;background-size:100%;transition:background-size .3s ease-in}.background-hover-zoom:hover{background-size:110%}.popout__toggle-wrapper{display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding-left:1.25rem;padding-right:1.25rem;font-size:1.125rem;transition-duration:.15s}.popout__toggle-wrapper:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.popout__toggle-wrapper.popout__toggle-wrapper--active{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.popout__toggle-name{padding-top:1rem;padding-bottom:1rem}.popout__content-wrapper{display:flex;flex-direction:column;gap:.75rem;--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity));padding:1rem 1.25rem}.popout__toggle-arrow{font-size:2.45rem}.candidate-secondary-box:not(:last-child){border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(208 208 208 / var(--tw-border-opacity))}.candidate-primary-box:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.candidate-primary-box:nth-child(odd) .candidate-primary-box--content{flex-direction:column-reverse}@media (min-width: 992px){.candidate-primary-box:nth-child(odd) .candidate-primary-box--content{flex-direction:row}.candidate-primary-box:nth-child(odd) .candidate-primary-box--text-column{align-items:flex-end}}.candidate-primary-box:nth-child(odd) .candidate-primary-box--text-column__hidden{--tw-translate-x: -100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(odd) .candidate-primary-box--image-column__hidden{--tw-translate-x: 100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(2n){--tw-bg-opacity: 1;background-color:rgb(238 238 238 / var(--tw-bg-opacity))}.candidate-primary-box:nth-child(2n) .candidate-primary-box--content{flex-direction:column-reverse}@media (min-width: 992px){.candidate-primary-box:nth-child(2n) .candidate-primary-box--content{flex-direction:row-reverse}}.candidate-primary-box:nth-child(2n) .candidate-primary-box--text-column{align-items:flex-start}.candidate-primary-box:nth-child(2n) .candidate-primary-box--text-column__hidden{--tw-translate-x: 100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(2n) .candidate-primary-box--image-column__hidden{--tw-translate-x: -100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flip-card .prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75rem;margin-bottom:.75rem}.flip-card .prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25rem;margin-bottom:.25rem}.flip-card{height:33rem;width:auto;cursor:pointer;perspective:1000px}.flip-card-inner{position:relative;width:100%;height:100%;transition:transform .8s;transform-style:preserve-3d}.flip-card:hover .flip-card-inner,.flip-card:focus .flip-card-inner{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden}.flip-card-back{transform:rotateY(180deg)}.article-timeline-grid{display:grid;gap:.5rem;margin-top:-20px;grid-template-areas:"left-article" "right-article"}@media (min-width: 1200px){.article-timeline-grid{grid-template-columns:minmax(0,570px) 1px minmax(0,570px);grid-template-areas:"left-article timeline right-article"}}.article-timeline-grid__left-article{grid-area:left-article}.article-timeline-grid__right-article{grid-area:right-article}.article-timeline-grid__timeline{grid-area:timeline}.article-timeline-grid__timeline:before{content:"";background:linear-gradient(180deg,#02002400,#fff);position:absolute;bottom:-1px;height:20px;z-index:10;width:2px;left:-1px}.article-timeline-grid__timeline .article-timeline--month{transform:translate(-50%);top:-1rem;z-index:100}.footer-collapsible__toggle{display:flex;cursor:pointer;align-items:center}.footer-collapsible__toggle:after{content:"";font-family:pirati-ui;margin-left:auto;font-size:3rem;font-weight:300;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.footer-collapsible__toggle.footer-collapsible__toggle--open:after{transform:rotate(-180deg)}@media (min-width: 768px){.footer-collapsible__toggle:after{display:none;cursor:auto}}.navbar{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.navbar .navbar__logo--white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity))!important}.navbar .navbar__logo--white:not(.navbar__district__logo){display:inline}.navbar .navbar__logo--white.navbar__district__logo{display:flex}.navbar .navbar__logo--black{display:none;--tw-text-opacity: 1 !important;color:rgb(0 0 0 / var(--tw-text-opacity))!important}.navbar .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.navbar .navbar__menu-item--selected{text-decoration-line:underline}.navbar .navbar__menu-item--selected:hover{text-decoration-line:none}.navbar.navbar--onboarding{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.navbar.navbar--onboarding.navbar--transparent{background-color:transparent}.navbar.navbar--onboarding.navbar--transparent .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.navbar.navbar--onboarding.navbar--transparent .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.navbar.navbar--elections{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar.navbar--elections .navbar__logo--white{display:none}.navbar.navbar--elections .navbar__logo--black{display:inline}.navbar.navbar--elections .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.navbar.navbar--elections .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.navbar.navbar--elections .bar1,.navbar.navbar--elections .bar2,.navbar.navbar--elections .bar3{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.navbar.navbar--elections.navbar--elections-transparent{background-color:transparent}.navbar.navbar--elections.navbar--elections-transparent .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar.navbar--elections.navbar--elections-transparent .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.navbar.navbar--transparent{background-color:transparent}@media (min-width: 1200px){.navbar.navbar--transparent{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}}.navbar.navbar--transparent .navbar__logo--white{display:none}.navbar.navbar--transparent .navbar__logo--black:not(.navbar__district__logo){display:inline}.navbar.navbar--transparent .navbar__logo--black.navbar__district__logo{display:flex}.navbar.navbar--transparent .bar1,.navbar.navbar--transparent .bar2,.navbar.navbar--transparent .bar3{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}@media (min-width: 1200px){.navbar.navbar--transparent.navbar--on-dark-bg{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--white:not(.navbar__district__logo){display:inline}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--white.navbar__district__logo{display:flex}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--black{display:none}.navbar.navbar--transparent.navbar--on-dark-bg .bar1,.navbar.navbar--transparent.navbar--on-dark-bg .bar2,.navbar.navbar--transparent.navbar--on-dark-bg .bar3{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bar1,.bar2,.bar3{background-color:#fff;display:block;height:2px;margin:6px 0;transition:.4s;width:35px}.navbar__mobile-menu__toggle:checked+label .bar1{transform:rotate(-45deg) translate(-3px,4px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu__toggle:checked+label .bar2{opacity:0}.navbar__mobile-menu__toggle:checked+label .bar3{transform:rotate(45deg) translate(-8px,-8px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0;transition:visibility .1s,opacity .1s linear}.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:auto;visibility:visible;z-index:20;opacity:1}@media (min-width: 1200px){.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0}}.newsletter-section{background-size:cover;background-repeat:no-repeat}@media (min-width: 768px){.newsletter-section{background-position:left top}}.region-map__list{-moz-columns:2;columns:2}.region-map__region{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.5s;transition:all .3s ease-out;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.region-map__region:after{content:"";width:10px;position:absolute;height:10px;background:#fec900;z-index:10}.region-map__region--current{fill:#fec900}@media (min-width: 992px){.faq-answer:nth-child(4n) .faq-answer--content{flex-direction:row-reverse}.faq-answer:nth-child(4n) .faq-answer--person{flex-direction:row-reverse}.faq-answer:nth-child(4n) .faq-answer--person--text{margin-left:-5rem}}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.\!bottom-\[0\]{bottom:0!important}.bottom-4{bottom:1rem}.left-0{left:0}.left-10{left:2.5rem}.left-\[30\%\]{left:30%}.right-4{right:1rem}.top-0{top:0}.top-10{top:2.5rem}.top-\[-1px\]{top:-1px}.top-\[2\.75rem\]{top:2.75rem}.top-\[30\%\]{top:30%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-8{grid-column:span 8 / span 8}.float-right{float:right}.float-left{float:left}.m-0{margin:0}.m-10{margin:2.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-20{margin-top:5rem;margin-bottom:5rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.\!mb-0{margin-bottom:0!important}.\!mb-16{margin-bottom:4rem!important}.\!ml-0{margin-left:0!important}.\!ml-\[unset\]{margin-left:unset!important}.\!mr-\[unset\]{margin-right:unset!important}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-\[0\.03rem\]{margin-bottom:.03rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-\[-5\.5rem\]{margin-left:-5.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mr-\[-2rem\]{margin-right:-2rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[-0\.5rem\]{margin-top:-.5rem}.mt-\[-5px\]{margin-top:-5px}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.\!h-0{height:0px!important}.\!h-full{height:100%!important}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-36{height:9rem}.h-64{height:16rem}.h-8{height:2rem}.h-\[17rem\]{height:17rem}.h-\[27rem\]{height:27rem}.h-\[33rem\]{height:33rem}.h-\[600px\]{height:600px}.h-\[700px\]{height:700px}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:0px}.min-h-\[600px\]{min-height:600px}.w-0{width:0px}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-10\/12{width:83.333333%}.w-12{width:3rem}.w-24{width:6rem}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-36{width:9rem}.w-4\/6{width:66.666667%}.w-40{width:10rem}.w-48{width:12rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-60{width:15rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[100px\]{width:100px}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[220px\]{width:220px}.w-\[calc\(100vw_-_3rem\)\]{width:calc(100vw - 3rem)}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[9rem\]{min-width:9rem}.min-w-\[calc\(100vw_-_2\.5rem\)\]{min-width:calc(100vw - 2.5rem)}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-72{max-width:18rem}.max-w-\[350px\]{max-width:350px}.max-w-\[400px\]{max-width:400px}.max-w-\[550px\]{max-width:550px}.max-w-\[60\%\]{max-width:60%}.max-w-\[600px\]{max-width:600px}.max-w-\[650px\]{max-width:650px}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-none{max-width:none}.max-w-screen-lg{max-width:992px}.max-w-xl{max-width:36rem}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-scale-x-100{--tw-scale-x: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-y-4{row-gap:1rem}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.\!border-0{border-width:0px!important}.border{border-width:1px}.border-4{border-width:4px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l-0{border-left-width:0px}.border-r-\[27rem\]{border-right-width:27rem}.border-t-\[33rem\]{border-top-width:33rem}.border-none{border-style:none}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-grey-180{--tw-border-opacity: 1;border-color:rgb(238 238 238 / var(--tw-border-opacity))}.border-grey-200{--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(249 206 5 / var(--tw-border-opacity))}.border-r-\[transparent\]{border-right-color:transparent}.\!bg-grey-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 243 243 / var(--tw-bg-opacity))!important}.\!bg-grey-180{--tw-bg-opacity: 1 !important;background-color:rgb(238 238 238 / var(--tw-bg-opacity))!important}.bg-\[\#00000088\]{background-color:#0008}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.bg-cyan-200{--tw-bg-opacity: 1;background-color:rgb(87 179 189 / var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(76 169 113 / var(--tw-bg-opacity))}.bg-grey-100{--tw-bg-opacity: 1;background-color:rgb(243 243 243 / var(--tw-bg-opacity))}.bg-grey-125{--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.bg-grey-150{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.bg-grey-180{--tw-bg-opacity: 1;background-color:rgb(238 238 238 / var(--tw-bg-opacity))}.bg-grey-185{--tw-bg-opacity: 1;background-color:rgb(189 189 189 / var(--tw-bg-opacity))}.bg-grey-200{--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity))}.bg-grey-50{--tw-bg-opacity: 1;background-color:rgb(247 247 247 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(237 150 84 / var(--tw-bg-opacity))}.bg-pirati-yellow{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(214 13 83 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-violet-400{--tw-bg-opacity: 1;background-color:rgb(132 0 72 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity: 1;background-color:rgb(255 234 90 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-\[top_right_-7rem\]{background-position:top right -7rem}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[200px\]{padding-top:200px;padding-bottom:200px}.\!pl-\[unset\]{padding-left:unset!important}.\!pr-\[unset\]{padding-right:unset!important}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-4{padding-left:1rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-12{padding-top:3rem}.pt-14{padding-top:3.5rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-24{padding-top:6rem}.pt-28{padding-top:7rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-96{padding-top:24rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif}.font-condensed{font-family:Roboto Condensed,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.6rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.45rem}.text-5xl{font-size:3rem}.text-6xl{font-size:4rem}.text-7xl{font-size:5.3rem}.text-8xl{font-size:6.25rem}.text-9xl{font-size:7.5rem}.text-\[3\.25rem\]{font-size:3.25rem}.text-\[3\.5rem\]{font-size:3.5rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.3rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-10{line-height:2.5rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[10\.5rem\]{line-height:10.5rem}.leading-none{line-height:1}.tracking-normal{letter-spacing:0em}.tracking-wide{letter-spacing:.025em}.\!text-black{--tw-text-opacity: 1 !important;color:rgb(0 0 0 / var(--tw-text-opacity))!important}.\!text-grey-250{--tw-text-opacity: 1 !important;color:rgb(136 136 136 / var(--tw-text-opacity))!important}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-grey-185{--tw-text-opacity: 1;color:rgb(189 189 189 / var(--tw-text-opacity))}.text-grey-200{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-grey-250{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity))}.text-grey-300{--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity))}.text-grey-350{--tw-text-opacity: 1;color:rgb(79 79 79 / var(--tw-text-opacity))}.text-grey-600{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(237 150 84 / var(--tw-text-opacity))}.text-pirati-yellow{--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(214 13 83 / var(--tw-text-opacity))}.text-turquoise-500{--tw-text-opacity: 1;color:rgb(37 165 185 / var(--tw-text-opacity))}.text-violet-300{--tw-text-opacity: 1;color:rgb(141 65 95 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.\!no-underline{text-decoration-line:none!important}.decoration-1{text-decoration-thickness:1px}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.bg-blend-darken{background-blend-mode:darken}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-100{transition-delay:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.btn.btn--fullwidth,.btn.btn--fullwidth .btn__body-wrap{width:100%;max-width:100%}.btn.btn--fullwidth .btn__body{flex:1}.btn.btn--autowidth{width:auto}@media (min-width: 1200px){.grid-container{grid-template-columns:240px 1fr 102px;grid-template-areas:"left-side content right-side";margin-left:10vw}}@media (min-width: 2060px){.grid-container{margin-left:20vw}}@media (min-width: 1200px){.grid-container.person-grid-container{grid-template-columns:240px 1fr 339px}}.head-alt-xl,.content-block .head-alt-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:400;line-height:.96}.head-alt-lg,.content-block .head-alt-lg{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:4rem;font-weight:400;line-height:.96}.head-alt-md,.content-block .head-alt-md{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:400;line-height:.96}.head-alt-base,.content-block .head-alt-base{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:400;line-height:.96}.head-alt-sm,.content-block .head-alt-sm{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:400;line-height:.96}.head-alt-xs,.content-block .head-alt-xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:400;line-height:.96}.head-alt-2xs,.content-block .head-alt-2xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:400;line-height:.96}.head-base,.content-block .head-base{font-size:1.875rem;font-weight:500;line-height:1.25}.head-sm,.content-block .head-sm{font-size:1.6rem;font-weight:500;line-height:1.25}.head-xs,.content-block .head-xs{font-size:1.3rem;font-weight:500;line-height:1.25}.head-2xs,.content-block .head-2xs{font-size:1.125rem;font-weight:500;line-height:1.25}.head-heavy-base,.content-block .head-heavy-base{font-size:1.875rem;font-weight:700;line-height:1.25}.head-heavy-sm,.content-block .head-heavy-sm{font-size:1.6rem;font-weight:700;line-height:1.25}.head-heavy-xs,.content-block .head-heavy-xs{font-size:1.3rem;font-weight:700;line-height:1.25}.head-heavy-2xs,.content-block .head-heavy-2xs{font-size:1.125rem;font-weight:700;line-height:1.25}.head-allcaps-2xs,.content-block .head-allcaps-2xs{font-size:1.125rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-3xs,.content-block .head-allcaps-3xs{font-size:1rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-4xs,.content-block .head-allcaps-4xs{font-size:.875rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-2xs,.content-block .head-allcaps-heavy-2xs{font-size:1.125rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-3xs,.content-block .head-allcaps-heavy-3xs{font-size:1rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-4xs,.content-block .head-allcaps-heavy-4xs{font-size:.875rem;font-weight:700;text-transform:uppercase;line-height:1.25}@media (min-width: 1200px){.switch__item{padding:.5rem 1.25rem}}.faq-answer .faq-answer--person{flex-direction:row-reverse}@media (min-width: 992px){.faq-answer:not(:nth-child(4n)) .faq-answer--person{flex-direction:row}}.slick-track[data-v-e4caeaf8]{position:relative;top:0;left:0;display:block;transform:translateZ(0)}.slick-track.slick-center[data-v-e4caeaf8]{margin-left:auto;margin-right:auto}.slick-track[data-v-e4caeaf8]:after,.slick-track[data-v-e4caeaf8]:before{display:table;content:""}.slick-track[data-v-e4caeaf8]:after{clear:both}.slick-loading .slick-track[data-v-e4caeaf8]{visibility:hidden}.slick-slide[data-v-e4caeaf8]{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide[data-v-e4caeaf8]{float:right}.slick-slide img[data-v-e4caeaf8]{display:block}.slick-slide.slick-loading img[data-v-e4caeaf8]{display:none}.slick-slide.dragging img[data-v-e4caeaf8]{pointer-events:none}.slick-initialized .slick-slide[data-v-e4caeaf8]{display:block}.slick-loading .slick-slide[data-v-e4caeaf8]{visibility:hidden}.slick-vertical .slick-slide[data-v-e4caeaf8]{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden[data-v-21137603]{display:none}.slick-slider[data-v-3d1a4f76]{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list[data-v-3d1a4f76]{position:relative;display:block;overflow:hidden;margin:0;padding:0;transform:translateZ(0)}.slick-list[data-v-3d1a4f76]:focus{outline:none}.slick-list.dragging[data-v-3d1a4f76]{cursor:pointer;cursor:hand}::-moz-selection{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity));background:#f9ce05}::selection{background:#f9ce05}:root{font-size:16px}html{scroll-behavior:smooth}body{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1rem}a:hover{text-decoration-line:underline}a.icon-link:hover{text-decoration-line:none}a.icon-link:hover span{text-decoration-line:underline}[v-cloak]{display:none}.copyleft{transform:scaleX(-1)!important}.inline-block-nogap{font-size:0}.iframe-container{position:relative;padding-bottom:56.25%;height:0}.iframe-container iframe{position:absolute;top:0;left:0;height:100%;width:100%}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{background:transparent;width:0px}.universal-content-container{margin-top:10rem!important;margin-bottom:2rem!important;padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1400px}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.hover\:bg-grey-600:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.group:hover .group-hover\:pointer-events-auto{pointer-events:auto}.group:hover .group-hover\:-translate-x-2{--tw-translate-x: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-yellow-600{--tw-border-opacity: 1;border-color:rgb(215 177 3 / var(--tw-border-opacity))}.group:hover .group-hover\:text-8xl{font-size:6.25rem}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:blur-sm{--tw-blur: blur(4px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media (min-width: 576px){.sm\:w-5\/12{width:41.666667%}.sm\:w-6\/12{width:50%}.sm\:text-4xl{font-size:2.45rem}.sm\:btn--autowidth.btn{width:auto}}@media (min-width: 768px){.md\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:mb-16{margin-bottom:4rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-96{width:24rem}.md\:shrink-0{flex-shrink:0}.md\:auto-rows-auto{grid-auto-rows:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:2rem}.md\:gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.md\:gap-y-5{row-gap:1.25rem}.md\:pr-0{padding-right:0}.md\:text-2xl{font-size:1.6rem}.md\:text-4xl{font-size:2.45rem}.md\:text-base{font-size:1rem}}@media (min-width: 992px){.lg\:float-right{float:right}.lg\:float-left{float:left}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-12{margin-top:3rem;margin-bottom:3rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mb-12{margin-bottom:3rem}.lg\:mb-16{margin-bottom:4rem}.lg\:mb-3{margin-bottom:.75rem}.lg\:ml-0{margin-left:0}.lg\:mt-0{margin-top:0}.lg\:mt-\[-1rem\]{margin-top:-1rem}.lg\:block{display:block}.lg\:inline{display:inline}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-96{height:24rem}.lg\:w-1\/2{width:50%}.lg\:w-2\/5{width:40%}.lg\:w-3\/5{width:60%}.lg\:w-5\/12{width:41.666667%}.lg\:w-\[180px\]{width:180px}.lg\:w-\[190px\]{width:190px}.lg\:w-\[280px\]{width:280px}.lg\:w-\[35rem\]{width:35rem}.lg\:w-\[unset\]{width:unset}.lg\:w-min{width:-moz-min-content;width:min-content}.lg\:min-w-\[15rem\]{min-width:15rem}.lg\:min-w-\[24rem\]{min-width:24rem}.lg\:max-w-screen-lg{max-width:992px}.lg\:grow-0{flex-grow:0}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:basis-2\/3{flex-basis:66.666667%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:gap-2{gap:.5rem}.lg\:gap-4{gap:1rem}.lg\:gap-8{gap:2rem}.lg\:overflow-x-visible{overflow-x:visible}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:text-justify{text-align:justify}.lg\:text-6xl{font-size:4rem}.lg\:text-\[5\.5rem\]{font-size:5.5rem}.lg\:text-base{font-size:1rem}}@media (min-width: 1200px){.xl\:absolute{position:absolute}.xl\:col-span-1{grid-column:span 1 / span 1}.xl\:col-span-3{grid-column:span 3 / span 3}.xl\:m-0{margin:0}.xl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xl\:mb-0{margin-bottom:0}.xl\:mb-12{margin-bottom:3rem}.xl\:mb-20{margin-bottom:5rem}.xl\:mb-24{margin-bottom:6rem}.xl\:mb-32{margin-bottom:8rem}.xl\:mb-6{margin-bottom:1.5rem}.xl\:mb-8{margin-bottom:2rem}.xl\:mr-12{margin-right:3rem}.xl\:mr-2{margin-right:.5rem}.xl\:mt-2{margin-top:.5rem}.xl\:mt-\[-0\.7rem\]{margin-top:-.7rem}.xl\:mt-\[-1rem\]{margin-top:-1rem}.xl\:block{display:block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:h-14{height:3.5rem}.xl\:h-\[600px\]{height:600px}.xl\:h-\[620px\]{height:620px}.xl\:h-\[696px\]{height:696px}.xl\:h-screen{height:100vh}.xl\:w-1\/2{width:50%}.xl\:w-14{width:3.5rem}.xl\:w-60{width:15rem}.xl\:w-auto{width:auto}.xl\:shrink-0{flex-shrink:0}.xl\:grow-0{flex-grow:0}.xl\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:flex-col{flex-direction:column}.xl\:items-start{align-items:flex-start}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:justify-start{justify-content:flex-start}.xl\:justify-between{justify-content:space-between}.xl\:gap-0{gap:0px}.xl\:gap-12{gap:3rem}.xl\:gap-16{gap:4rem}.xl\:gap-4{gap:1rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.xl\:justify-self-end{justify-self:end}.xl\:bg-transparent{background-color:transparent}.xl\:bg-center{background-position:center}.xl\:p-12{padding:3rem}.xl\:px-0{padding-left:0;padding-right:0}.xl\:px-3{padding-left:.75rem;padding-right:.75rem}.xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xl\:px-8{padding-left:2rem;padding-right:2rem}.xl\:py-0{padding-top:0;padding-bottom:0}.xl\:py-24{padding-top:6rem;padding-bottom:6rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xl\:py-52{padding-top:13rem;padding-bottom:13rem}.xl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xl\:py-8{padding-top:2rem;padding-bottom:2rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pb-20{padding-bottom:5rem}.xl\:pb-24{padding-bottom:6rem}.xl\:pb-\[110px\]{padding-bottom:110px}.xl\:pl-32{padding-left:8rem}.xl\:pl-8{padding-left:2rem}.xl\:pr-0{padding-right:0}.xl\:pr-3{padding-right:.75rem}.xl\:pr-4{padding-right:1rem}.xl\:pr-40{padding-right:10rem}.xl\:pt-1{padding-top:.25rem}.xl\:pt-16{padding-top:4rem}.xl\:pt-32{padding-top:8rem}.xl\:pt-48{padding-top:12rem}.xl\:pt-6{padding-top:1.5rem}.xl\:pt-8{padding-top:2rem}.xl\:text-14xl{font-size:10.6rem}.xl\:text-3xl{font-size:1.875rem}.xl\:text-4xl{font-size:2.45rem}.xl\:text-7xl{font-size:5.3rem}.xl\:text-9xl{font-size:7.5rem}.xl\:text-lg{font-size:1.125rem}.xl\:text-xl{font-size:1.3rem}.xl\:leading-\[10\.5rem\]{line-height:10.5rem}.xl\:\[flex-flow\:column_wrap\]{flex-flow:column wrap}.xl\:\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}}@media (min-width: 1366px){.\32xl\:h-\[550px\]{height:550px}.\32xl\:h-\[646px\]{height:646px}.\32xl\:text-\[6\.5rem\]{font-size:6.5rem}}@media (min-width: 1600px){.\32\.5xl\:ml-\[-10rem\]{margin-left:-10rem}}@media (min-width: 2060px){.\33xl\:text-lg{font-size:1.125rem}}.\[\&\>div\.content-block\>p\:first-child\]\:mt-0>div.content-block>p:first-child{margin-top:0}.\[\&_\*\]\:mt-0 *{margin-top:0}.\[\&_\*\]\:\!gap-0 *{gap:0px!important}.\[\&_\*\]\:\!p-0 *{padding:0!important}.\[\&_\*\]\:\!text-\[0rem\] *{font-size:0rem!important}.\[\&_\*\]\:\!leading-\[0px\] *{line-height:0px!important}.\[\&_\*\]\:\!text-grey-250 *{--tw-text-opacity: 1 !important;color:rgb(136 136 136 / var(--tw-text-opacity))!important}.\[\&_\*\]\:\!delay-0 *{transition-delay:0s!important}.\[\&_\*\]\:\!duration-0 *{transition-duration:0s!important}.\[\&_\.content-block\]\:flex .content-block{display:flex}.\[\&_\.content-block\]\:flex-col .content-block{flex-direction:column}.\[\&_\.content-block\]\:gap-4 .content-block{gap:1rem}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_p\]\:\!text-lg p{font-size:1.125rem!important}.\[\&_p\]\:text-lg p{font-size:1.125rem}.\[\&_p\]\:leading-7 p{line-height:1.75rem}.\[\&_p\]\:text-black p{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.\[\&_p\]\:delay-300 p{transition-delay:.3s}.\[\&_p\]\:duration-150 p{transition-duration:.15s}:root{--f-spinner-width: 36px;--f-spinner-height: 36px;--f-spinner-color-1: rgba(0, 0, 0, .1);--f-spinner-color-2: rgba(17, 24, 28, .8);--f-spinner-stroke: 2.75}.f-spinner{margin:auto;padding:0;width:var(--f-spinner-width);height:var(--f-spinner-height)}.f-spinner svg{width:100%;height:100%;vertical-align:top;animation:f-spinner-rotate 2s linear infinite}.f-spinner svg *{stroke-width:var(--f-spinner-stroke);fill:none}.f-spinner svg *:first-child{stroke:var(--f-spinner-color-1)}.f-spinner svg *:last-child{stroke:var(--f-spinner-color-2);animation:f-spinner-dash 2s ease-in-out infinite}@keyframes f-spinner-rotate{to{transform:rotate(360deg)}}@keyframes f-spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.f-throwOutUp{animation:var(--f-throw-out-duration, .175s) ease-out both f-throwOutUp}.f-throwOutDown{animation:var(--f-throw-out-duration, .175s) ease-out both f-throwOutDown}@keyframes f-throwOutUp{to{transform:translate3d(0,calc(var(--f-throw-out-distance, 150px) * -1),0);opacity:0}}@keyframes f-throwOutDown{to{transform:translate3d(0,var(--f-throw-out-distance, 150px),0);opacity:0}}.f-zoomInUp{animation:var(--f-transition-duration, .2s) ease .1s both f-zoomInUp}.f-zoomOutDown{animation:var(--f-transition-duration, .2s) ease both f-zoomOutDown}@keyframes f-zoomInUp{0%{transform:scale(.975) translate3d(0,16px,0);opacity:0}to{transform:scale(1) translateZ(0);opacity:1}}@keyframes f-zoomOutDown{to{transform:scale(.975) translate3d(0,16px,0);opacity:0}}.f-fadeIn{animation:var(--f-transition-duration, .2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeIn;z-index:2}.f-fadeOut{animation:var(--f-transition-duration, .2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeOut;z-index:1}@keyframes f-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes f-fadeOut{to{opacity:0}}.f-fadeFastIn{animation:var(--f-transition-duration, .2s) ease-out both f-fadeFastIn;z-index:2}.f-fadeFastOut{animation:var(--f-transition-duration, .1s) ease-out both f-fadeFastOut;z-index:2}@keyframes f-fadeFastIn{0%{opacity:.75}to{opacity:1}}@keyframes f-fadeFastOut{to{opacity:0}}.f-fadeSlowIn{animation:var(--f-transition-duration, .5s) ease both f-fadeSlowIn;z-index:2}.f-fadeSlowOut{animation:var(--f-transition-duration, .5s) ease both f-fadeSlowOut;z-index:1}@keyframes f-fadeSlowIn{0%{opacity:0}to{opacity:1}}@keyframes f-fadeSlowOut{to{opacity:0}}.f-crossfadeIn{animation:var(--f-transition-duration, .2s) ease-out both f-crossfadeIn;z-index:2}.f-crossfadeOut{animation:calc(var(--f-transition-duration, .2s)*.5) linear .1s both f-crossfadeOut;z-index:1}@keyframes f-crossfadeIn{0%{opacity:0}to{opacity:1}}@keyframes f-crossfadeOut{to{opacity:0}}.f-slideIn.from-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInNext}.f-slideIn.from-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInPrev}.f-slideOut.to-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutNext}.f-slideOut.to-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutPrev}@keyframes f-slideInPrev{0%{transform:translate(100%)}to{transform:translateZ(0)}}@keyframes f-slideInNext{0%{transform:translate(-100%)}to{transform:translateZ(0)}}@keyframes f-slideOutNext{to{transform:translate(-100%)}}@keyframes f-slideOutPrev{to{transform:translate(100%)}}.f-classicIn.from-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicInNext;z-index:2}.f-classicIn.from-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicInPrev;z-index:2}.f-classicOut.to-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicOutNext;z-index:1}.f-classicOut.to-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicOutPrev;z-index:1}@keyframes f-classicInNext{0%{transform:translate(-75px);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes f-classicInPrev{0%{transform:translate(75px);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes f-classicOutNext{to{transform:translate(-75px);opacity:0}}@keyframes f-classicOutPrev{to{transform:translate(75px);opacity:0}}:root{--f-button-width: 40px;--f-button-height: 40px;--f-button-border: 0;--f-button-border-radius: 0;--f-button-color: #374151;--f-button-bg: #f8f8f8;--f-button-hover-bg: #e0e0e0;--f-button-active-bg: #d0d0d0;--f-button-shadow: none;--f-button-transition: all .15s ease;--f-button-transform: none;--f-button-svg-width: 20px;--f-button-svg-height: 20px;--f-button-svg-stroke-width: 1.5;--f-button-svg-fill: none;--f-button-svg-filter: none;--f-button-svg-disabled-opacity: .65}.f-button{display:flex;justify-content:center;align-items:center;box-sizing:content-box;position:relative;margin:0;padding:0;width:var(--f-button-width);height:var(--f-button-height);border:var(--f-button-border);border-radius:var(--f-button-border-radius);color:var(--f-button-color);background:var(--f-button-bg);box-shadow:var(--f-button-shadow);pointer-events:all;cursor:pointer;transition:var(--f-button-transition)}@media (hover: hover){.f-button:hover:not([disabled]){color:var(--f-button-hover-color);background-color:var(--f-button-hover-bg)}}.f-button:active:not([disabled]){background-color:var(--f-button-active-bg)}.f-button:focus:not(:focus-visible){outline:none}.f-button:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--f-button-outline, 2px) var(--f-button-outline-color, var(--f-button-color))}.f-button svg{width:var(--f-button-svg-width);height:var(--f-button-svg-height);fill:var(--f-button-svg-fill);stroke:currentColor;stroke-width:var(--f-button-svg-stroke-width);stroke-linecap:round;stroke-linejoin:round;transition:opacity .15s ease;transform:var(--f-button-transform);filter:var(--f-button-svg-filter);pointer-events:none}.f-button[disabled]{cursor:default}.f-button[disabled] svg{opacity:var(--f-button-svg-disabled-opacity)}.f-carousel__nav .f-button.is-prev,.f-carousel__nav .f-button.is-next,.fancybox__nav .f-button.is-prev,.fancybox__nav .f-button.is-next{position:absolute;z-index:1}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-next{top:50%;transform:translateY(-50%)}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-prev{left:var(--f-button-prev-pos)}.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-next{right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-prev,.is-horizontal.is-rtl .fancybox__nav .f-button.is-prev{left:auto;right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-next,.is-horizontal.is-rtl .fancybox__nav .f-button.is-next{right:auto;left:var(--f-button-prev-pos)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-next{top:auto;left:50%;transform:translate(-50%)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-prev{top:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-next{bottom:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-prev svg,.is-vertical .f-carousel__nav .f-button.is-next svg,.is-vertical .fancybox__nav .f-button.is-prev svg,.is-vertical .fancybox__nav .f-button.is-next svg{transform:rotate(90deg)}.f-carousel__nav .f-button:disabled,.fancybox__nav .f-button:disabled{pointer-events:none}html.with-fancybox{width:auto;overflow:visible;scroll-behavior:auto}html.with-fancybox body{touch-action:none}html.with-fancybox body.hide-scrollbar{width:auto;margin-right:calc(var(--fancybox-body-margin, 0px) + var(--fancybox-scrollbar-compensate, 0px));overflow:hidden!important;overscroll-behavior-y:none}.fancybox__container{--fancybox-color: #dbdbdb;--fancybox-hover-color: #fff;--fancybox-bg: rgba(24, 24, 27, .98);--fancybox-slide-gap: 10px;--f-spinner-width: 50px;--f-spinner-height: 50px;--f-spinner-color-1: rgba(255, 255, 255, .1);--f-spinner-color-2: #bbb;--f-spinner-stroke: 3.65;position:fixed;inset:0;direction:ltr;display:flex;flex-direction:column;box-sizing:border-box;margin:0;padding:0;color:#f8f8f8;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:visible;z-index:var(--fancybox-zIndex, 1050);outline:none;transform-origin:top left;-webkit-text-size-adjust:100%;-moz-text-size-adjust:none;text-size-adjust:100%;overscroll-behavior-y:contain}.fancybox__container *,.fancybox__container *:before,.fancybox__container *:after{box-sizing:inherit}.fancybox__container::backdrop{background-color:#0000}.fancybox__backdrop{position:fixed;inset:0;z-index:-1;background:var(--fancybox-bg);opacity:var(--fancybox-opacity, 1);will-change:opacity}.fancybox__carousel{position:relative;box-sizing:border-box;flex:1;min-height:0;z-index:10;overflow-y:visible;overflow-x:clip}.fancybox__viewport{width:100%;height:100%}.fancybox__viewport.is-draggable{cursor:move;cursor:grab}.fancybox__viewport.is-dragging{cursor:move;cursor:grabbing}.fancybox__track{display:flex;margin:0 auto;height:100%}.fancybox__slide{flex:0 0 auto;position:relative;display:flex;flex-direction:column;align-items:center;width:100%;height:100%;margin:0 var(--fancybox-slide-gap) 0 0;padding:4px;overflow:auto;overscroll-behavior:contain;transform:translateZ(0);backface-visibility:hidden}.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn{padding-top:40px}.fancybox__slide.has-iframe,.fancybox__slide.has-video,.fancybox__slide.has-html5video,.fancybox__slide.has-image{overflow:hidden}.fancybox__slide.has-image.is-animating,.fancybox__slide.has-image.is-selected{overflow:visible}.fancybox__slide:before,.fancybox__slide:after{content:"";flex:0 0 0;margin:auto}.fancybox__backdrop:empty,.fancybox__viewport:empty,.fancybox__track:empty,.fancybox__slide:empty{display:block}.fancybox__content{align-self:center;display:flex;flex-direction:column;position:relative;margin:0;padding:2rem;max-width:100%;color:var(--fancybox-content-color, #374151);background:var(--fancybox-content-bg, #fff);cursor:default;border-radius:0;z-index:20}.is-loading .fancybox__content{opacity:0}.is-draggable .fancybox__content{cursor:move;cursor:grab}.can-zoom_in .fancybox__content{cursor:zoom-in}.can-zoom_out .fancybox__content{cursor:zoom-out}.is-dragging .fancybox__content{cursor:move;cursor:grabbing}.fancybox__content [data-selectable],.fancybox__content [contenteditable]{cursor:auto}.fancybox__slide.has-image>.fancybox__content{padding:0;background:#0000;min-height:1px;background-repeat:no-repeat;background-size:contain;background-position:center center;transition:none;transform:translateZ(0);backface-visibility:hidden}.fancybox__slide.has-image>.fancybox__content>picture>img{width:100%;height:auto;max-height:100%}.is-animating .fancybox__content,.is-dragging .fancybox__content{will-change:transform,width,height}.fancybox-image{margin:auto;display:block;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:blur(0px)}.fancybox__caption{align-self:center;max-width:100%;flex-shrink:0;margin:0;padding:14px 0 4px;overflow-wrap:anywhere;line-height:1.375;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);cursor:auto;visibility:visible}.is-loading .fancybox__caption,.is-closing .fancybox__caption{opacity:0;visibility:hidden}.is-compact .fancybox__caption{padding-bottom:0}.f-button.is-close-btn{--f-button-svg-stroke-width: 2;position:absolute;top:0;right:8px;z-index:40}.fancybox__content>.f-button.is-close-btn{--f-button-width: 34px;--f-button-height: 34px;--f-button-border-radius: 4px;--f-button-color: var(--fancybox-color, #fff);--f-button-hover-color: var(--fancybox-color, #fff);--f-button-bg: transparent;--f-button-hover-bg: transparent;--f-button-active-bg: transparent;--f-button-svg-width: 22px;--f-button-svg-height: 22px;position:absolute;top:-38px;right:0;opacity:.75}.is-loading .fancybox__content>.f-button.is-close-btn{visibility:hidden}.is-zooming-out .fancybox__content>.f-button.is-close-btn{visibility:hidden}.fancybox__content>.f-button.is-close-btn:hover{opacity:1}.fancybox__footer{padding:0;margin:0;position:relative}.fancybox__footer .fancybox__caption{width:100%;padding:24px;opacity:var(--fancybox-opacity, 1);transition:all .25s ease}.is-compact .fancybox__footer{position:absolute;bottom:0;left:0;right:0;z-index:20;background:#18181b80}.is-compact .fancybox__footer .fancybox__caption{padding:12px}.is-compact .fancybox__content>.f-button.is-close-btn{--f-button-border-radius: 50%;--f-button-color: #fff;--f-button-hover-color: #fff;--f-button-outline-color: #000;--f-button-bg: rgba(0, 0, 0, .6);--f-button-active-bg: rgba(0, 0, 0, .6);--f-button-hover-bg: rgba(0, 0, 0, .6);--f-button-svg-width: 18px;--f-button-svg-height: 18px;--f-button-svg-filter: none;top:5px;right:5px}.fancybox__nav{--f-button-width: 50px;--f-button-height: 50px;--f-button-border: 0;--f-button-border-radius: 50%;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: transparent;--f-button-hover-bg: rgba(24, 24, 27, .3);--f-button-active-bg: rgba(24, 24, 27, .5);--f-button-shadow: none;--f-button-transition: all .15s ease;--f-button-transform: none;--f-button-svg-width: 26px;--f-button-svg-height: 26px;--f-button-svg-stroke-width: 2.5;--f-button-svg-fill: none;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, .5));--f-button-svg-disabled-opacity: .65;--f-button-next-pos: 1rem;--f-button-prev-pos: 1rem;opacity:var(--fancybox-opacity, 1)}.fancybox__nav .f-button:before{position:absolute;content:"";inset:-30px -20px;z-index:1}.is-idle .fancybox__nav{animation:.15s ease-out both f-fadeOut}.is-idle.is-compact .fancybox__footer{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__slide>.f-spinner{position:absolute;top:50%;left:50%;margin:var(--f-spinner-top, calc(var(--f-spinner-width) * -.5)) 0 0 var(--f-spinner-left, calc(var(--f-spinner-height) * -.5));z-index:30;cursor:pointer}.fancybox-protected{position:absolute;inset:0;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox-ghost{position:absolute;top:0;left:0;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.fancybox-focus-guard{outline:none;opacity:0;position:fixed;pointer-events:none}.fancybox__container:not([aria-hidden]){opacity:0}.fancybox__container.is-animated[aria-hidden=false]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=false] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=false] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-enter-duration, .25s) ease .1s backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=false] .fancybox__backdrop{animation:var(--f-backdrop-enter-duration, .35s) ease backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=true]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=true] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=true] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-exit-duration, .15s) ease forwards f-fadeOut}.fancybox__container.is-animated[aria-hidden=true] .fancybox__backdrop{animation:var(--f-backdrop-exit-duration, .35s) ease forwards f-fadeOut}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{max-width:100%;flex-shrink:1;min-height:1px;overflow:visible}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content{width:calc(100% - 120px);height:90%}.fancybox__container.is-compact .has-iframe .fancybox__content,.fancybox__container.is-compact .has-map .fancybox__content,.fancybox__container.is-compact .has-pdf .fancybox__content{width:100%;height:100%}.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{width:960px;height:540px;max-width:100%;max-height:100%}.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{padding:0;background:#18181be6;color:#fff}.has-map .fancybox__content{background:#e5e3df}.fancybox__html5video,.fancybox__iframe{border:0;display:block;height:100%;width:100%;background:#0000}.fancybox-placeholder{border:0!important;clip:rect(1px,1px,1px,1px)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.f-carousel__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-outline: 0;--f-thumb-outline-color: #5eb0ef;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1;--f-thumb-border-radius: 2px;--f-thumb-offset: 0px;--f-button-next-pos: 0;--f-button-prev-pos: 0}.f-carousel__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: .5;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1}.f-carousel__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px}.f-thumbs{position:relative;flex:0 0 auto;margin:0;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;user-select:none;perspective:1000px;transform:translateZ(0)}.f-thumbs .f-spinner{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:2px;background-image:linear-gradient(#ebeff2,#e2e8f0);z-index:-1}.f-thumbs .f-spinner svg{display:none}.f-thumbs.is-vertical{height:100%}.f-thumbs__viewport{width:100%;height:auto;overflow:hidden;transform:translateZ(0)}.f-thumbs__track{display:flex}.f-thumbs__slide{position:relative;flex:0 0 auto;box-sizing:content-box;display:flex;align-items:center;justify-content:center;padding:0;margin:0;width:var(--f-thumb-width);height:var(--f-thumb-height);overflow:visible;cursor:pointer}.f-thumbs__slide.is-loading img{opacity:0}.is-classic .f-thumbs__viewport{height:100%}.is-modern .f-thumbs__track{width:-moz-max-content;width:max-content}.is-modern .f-thumbs__track:before{content:"";position:absolute;top:0;bottom:0;left:calc((var(--f-thumb-clip-width, 0))*-.5);width:calc(var(--width, 0)*1px + var(--f-thumb-clip-width, 0));cursor:pointer}.is-modern .f-thumbs__slide{width:var(--f-thumb-clip-width);transform:translate3d(calc(var(--shift, 0) * -1px),0,0);transition:none;pointer-events:none}.is-modern.is-resting .f-thumbs__slide{transition:transform .33s ease}.is-modern.is-resting .f-thumbs__slide__button{transition:clip-path .33s ease}.is-using-tab .is-modern .f-thumbs__slide:focus-within{filter:drop-shadow(-1px 0px 0px var(--f-thumb-outline-color)) drop-shadow(2px 0px 0px var(--f-thumb-outline-color)) drop-shadow(0px -1px 0px var(--f-thumb-outline-color)) drop-shadow(0px 2px 0px var(--f-thumb-outline-color))}.f-thumbs__slide__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--f-thumb-width);height:100%;margin:0 -100%;padding:0;border:0;position:relative;border-radius:var(--f-thumb-border-radius);overflow:hidden;background:#0000;outline:none;cursor:pointer;pointer-events:auto;touch-action:manipulation;opacity:var(--f-thumb-opacity);transition:opacity .2s ease}.f-thumbs__slide__button:hover{opacity:var(--f-thumb-hover-opacity)}.f-thumbs__slide__button:focus:not(:focus-visible){outline:none}.f-thumbs__slide__button:focus-visible{outline:none;opacity:var(--f-thumb-selected-opacity)}.is-modern .f-thumbs__slide__button{--clip-path: inset( 0 calc( ((var(--f-thumb-width, 0) - var(--f-thumb-clip-width, 0))) * (1 - var(--progress, 0)) * .5 ) round var(--f-thumb-border-radius, 0) );clip-path:var(--clip-path)}.is-classic .is-nav-selected .f-thumbs__slide__button{opacity:var(--f-thumb-selected-opacity)}.is-classic .is-nav-selected .f-thumbs__slide__button:after{content:"";position:absolute;inset:0;height:auto;border:var(--f-thumb-outline, 0) solid var(--f-thumb-outline-color, transparent);border-radius:var(--f-thumb-border-radius);animation:f-fadeIn .2s ease-out;z-index:10}.f-thumbs__slide__img{overflow:hidden;position:absolute;inset:0;width:100%;height:100%;margin:0;padding:var(--f-thumb-offset);box-sizing:border-box;pointer-events:none;-o-object-fit:cover;object-fit:cover;border-radius:var(--f-thumb-border-radius)}.f-thumbs.is-horizontal .f-thumbs__track{padding:8px 0 12px}.f-thumbs.is-horizontal .f-thumbs__slide{margin:0 var(--f-thumb-gap) 0 0}.f-thumbs.is-vertical .f-thumbs__track{flex-wrap:wrap;padding:0 8px}.f-thumbs.is-vertical .f-thumbs__slide{margin:0 0 var(--f-thumb-gap) 0}.fancybox__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-border-radius: 2px;--f-thumb-outline: 2px;--f-thumb-outline-color: #ededed;position:relative;opacity:var(--fancybox-opacity, 1);transition:max-height .35s cubic-bezier(.23,1,.32,1)}.fancybox__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: .5;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-classic .f-spinner{background-image:linear-gradient(#ffffff1a,#ffffff0d)}.fancybox__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-modern .f-spinner{background-image:linear-gradient(#ffffff1a,#ffffff0d)}.fancybox__thumbs.is-horizontal{padding:0 var(--f-thumb-gap)}.fancybox__thumbs.is-vertical{padding:var(--f-thumb-gap) 0}.is-compact .fancybox__thumbs{--f-thumb-width: 64px;--f-thumb-clip-width: 32px;--f-thumb-height: 48px;--f-thumb-extra-gap: 10px}.fancybox__thumbs.is-masked{max-height:0px!important}.is-closing .fancybox__thumbs{transition:none!important}.fancybox__toolbar{--f-progress-color: var(--fancybox-color, rgba(255, 255, 255, .94));--f-button-width: 46px;--f-button-height: 46px;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: rgba(24, 24, 27, .65);--f-button-hover-bg: rgba(70, 70, 73, .65);--f-button-active-bg: rgba(90, 90, 93, .65);--f-button-border-radius: 0;--f-button-svg-width: 24px;--f-button-svg-height: 24px;--f-button-svg-stroke-width: 1.5;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, .15));--f-button-svg-fill: none;--f-button-svg-disabled-opacity: .65;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI Adjusted,Segoe UI,Liberation Sans,sans-serif;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);text-shadow:var(--fancybox-toolbar-text-shadow, 1px 1px 1px rgba(0, 0, 0, .5));pointer-events:none;z-index:20}.fancybox__toolbar :focus-visible{z-index:1}.fancybox__toolbar.is-absolute,.is-compact .fancybox__toolbar{position:absolute;top:0;left:0;right:0}.is-idle .fancybox__toolbar{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__toolbar__column{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.fancybox__toolbar__column.is-left,.fancybox__toolbar__column.is-right{flex-grow:1;flex-basis:0}.fancybox__toolbar__column.is-right{display:flex;justify-content:flex-end;flex-wrap:nowrap}.fancybox__infobar{padding:0 5px;line-height:var(--f-button-height);text-align:center;font-size:17px;font-variant-numeric:tabular-nums;-webkit-font-smoothing:subpixel-antialiased;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox__infobar span{padding:0 5px}.fancybox__infobar:not(:first-child):not(:last-child){background:var(--f-button-bg)}[data-fancybox-toggle-slideshow]{position:relative}[data-fancybox-toggle-slideshow] .f-progress{height:100%;opacity:.3}[data-fancybox-toggle-slideshow] svg g:first-child{display:flex}[data-fancybox-toggle-slideshow] svg g:last-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:first-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:last-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:first-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:last-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:first-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:last-child{display:flex}.f-progress{position:absolute;top:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;background:var(--f-progress-color, var(--f-carousel-theme-color, #0091ff));z-index:30;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} diff --git a/shared/static/styleguide2/pirati-ui.svg b/shared/static/styleguide2/pirati-ui.svg index c6e3a71ad07f5229dda5d69c9289dc5ce339be12..ffc20eccf43c3d89476c0124b2475cd314fe2ecd 100644 --- a/shared/static/styleguide2/pirati-ui.svg +++ b/shared/static/styleguide2/pirati-ui.svg @@ -127,4 +127,4 @@ <glyph unicode="" glyph-name="price-tags" horiz-adv-x="1280" d="M1232 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM992 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM128 416l544 544h-80c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l30.058 30.058-416 416z" /> <glyph unicode="" glyph-name="twitter" horiz-adv-x="1001" d="M596.009 526.629l372.819 433.371h-88.346l-323.718-376.29-258.553 376.29h-298.21l390.983-569.018-390.983-454.457h88.351l341.855 397.375 273.051-397.375h298.21l-405.458 590.103zM475 385.969l-354.815 507.521h135.702l624.636-893.48h-135.702l-269.821 385.959z" /> <glyph unicode="" glyph-name="stats-dots" d="M128 64h896v-128h-1024v1024h128zM288 128c-53.020 0-96 42.98-96 96s42.98 96 96 96c2.828 0 5.622-0.148 8.388-0.386l103.192 171.986c-9.84 15.070-15.58 33.062-15.58 52.402 0 53.020 42.98 96 96 96s96-42.98 96-96c0-19.342-5.74-37.332-15.58-52.402l103.192-171.986c2.766 0.238 5.56 0.386 8.388 0.386 2.136 0 4.248-0.094 6.35-0.23l170.356 298.122c-10.536 15.408-16.706 34.036-16.706 54.11 0 53.020 42.98 96 96 96s96-42.98 96-96c0-53.020-42.98-96-96-96-2.14 0-4.248 0.094-6.35 0.232l-170.356-298.124c10.536-15.406 16.706-34.036 16.706-54.11 0-53.020-42.98-96-96-96s-96 42.98-96 96c0 19.34 5.74 37.332 15.578 52.402l-103.19 171.984c-2.766-0.238-5.56-0.386-8.388-0.386s-5.622 0.146-8.388 0.386l-103.192-171.986c9.84-15.068 15.58-33.060 15.58-52.4 0-53.020-42.98-96-96-96z" /> -</font></defs></svg> +</font></defs></svg> \ No newline at end of file diff --git a/shared/templates/styleguide/2.3.x/blocks/gallery_block.html b/shared/templates/styleguide/2.3.x/blocks/gallery_block.html deleted file mode 100644 index 2f023a83179a983e6fe22ec3f9bdab8a3d239a2b..0000000000000000000000000000000000000000 --- a/shared/templates/styleguide/2.3.x/blocks/gallery_block.html +++ /dev/null @@ -1,22 +0,0 @@ -{% load wagtailimages_tags %} - -<div - class=" - flex flex-wrap items-center gap-2 my-8 justify-center - - lg:justify-start - " -> - {% for picture in self.gallery_items %} - {% image picture width-2000 as img %} - {% image picture fill-300x200 as thumb %} - <a - class="w-40" - href="{{ img.url }}" - data-fancybox="gallery" - data-caption="{{ thumb.alt }}" - > - <img class="rounded" src="{{ thumb.url }}" alt="thumb.alt" /> - </a> - {% endfor %} -</div> diff --git a/shared/templates/styleguide2/includes/atoms/buttons/round_button.html b/shared/templates/styleguide2/includes/atoms/buttons/round_button.html index f35aaea25aafcebd3ec9ce1678fe135a4c915a71..747c421c16dacb17b337725e52699628fa8d6265 100644 --- a/shared/templates/styleguide2/includes/atoms/buttons/round_button.html +++ b/shared/templates/styleguide2/includes/atoms/buttons/round_button.html @@ -30,7 +30,10 @@ group-hover:-translate-x-2 duration-200 " {% endif %} - id="{{ id }}-inner-text" + + {% if id %} + id="{{ id }}-inner-text" + {% endif %} >{{ text }}</span> {% if show_arrow_on_hover %} diff --git a/shared/templates/styleguide2/includes/molecules/menus/carousel.html b/shared/templates/styleguide2/includes/molecules/menus/carousel.html index b82c1f8b75c569580885ad668831c95d0406684a..205befc2c8137c013de0654d759687a2e841ec4d 100644 --- a/shared/templates/styleguide2/includes/molecules/menus/carousel.html +++ b/shared/templates/styleguide2/includes/molecules/menus/carousel.html @@ -79,13 +79,13 @@ style="box-sizing: border-box" > - <h1 class="mb-4 px-5 flex flex-col text-black block lg:hidden"> + <h1 class="mb-4 px-5 flex-col text-black flex lg:hidden"> <div>{{ self.mobile_line_1 }}</div> <div>{{ self.mobile_line_2 }}</div> <div>{{ self.mobile_line_3 }}</div> </h1> - <h1 class="mb-4 px-5 flex flex-col text-black hidden lg:block"> + <h1 class="mb-4 px-5 flex-col text-black hidden lg:flex"> <div>{{ self.desktop_line_1 }}</div> <div>{{ self.desktop_line_2 }}</div> </h1> @@ -94,7 +94,7 @@ <div class="ml-4 text-lg group"> {% firstof self.button_text "Více informací" as button_text %} - {% include "styleguide2/includes/atoms/buttons/round_button_without_url.html" with text=button_text %} + {% include "styleguide2/includes/atoms/buttons/round_button_without_url.html" with url=self.button_text text=button_text show_arrow_on_hover=True %} </div> {% endif %} </div> @@ -103,4 +103,4 @@ </{% if self.button_url %}a{% else %}div{% endif %}> </div> -</div> +</div> \ No newline at end of file diff --git a/shared/templates/styleguide2/includes/organisms/main_section/newsletter_section.html b/shared/templates/styleguide2/includes/organisms/main_section/newsletter_section.html index dee54950b2eb3a954d7037d3d7f2a15ab4ac8bd3..52628c76ee68a452c3e984c496073eb6734991f7 100644 --- a/shared/templates/styleguide2/includes/organisms/main_section/newsletter_section.html +++ b/shared/templates/styleguide2/includes/organisms/main_section/newsletter_section.html @@ -35,7 +35,7 @@ </label> </div> - {% include 'styleguide2/includes/atoms/buttons/round_button_form.html' with text='Odebírat' %} + {% include 'styleguide2/includes/atoms/buttons/round_button_form.html' with text='Odebírat' show_arrow_on_hover=True %} </form> </div> </div> diff --git a/shared/templates/styleguide2/includes/organisms/main_section/small_newsletter_section.html b/shared/templates/styleguide2/includes/organisms/main_section/small_newsletter_section.html index 12d53b29ef873f731a21fb665470cbf1cb34efb3..faa593b7ae8fb260155905e810a503dddc89cbbd 100644 --- a/shared/templates/styleguide2/includes/organisms/main_section/small_newsletter_section.html +++ b/shared/templates/styleguide2/includes/organisms/main_section/small_newsletter_section.html @@ -30,7 +30,7 @@ </label> </div> - {% include 'styleguide2/includes/atoms/buttons/round_button_form.html' with text='Odebírat' %} + {% include 'styleguide2/includes/atoms/buttons/round_button_form.html' with text='Odebírat' show_arrow_on_hover=True %} </form> </div> </div> diff --git a/shared_legacy/__init__.py b/shared_legacy/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/shared_legacy/apps.py b/shared_legacy/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..32625c349a61144c84f478c2979d7f541cfce085 --- /dev/null +++ b/shared_legacy/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class SharedLegacyConfig(AppConfig): + name = "shared_legacy" diff --git a/shared_legacy/blocks/__init__.py b/shared_legacy/blocks/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d31603b8b661dd6f3e2770acf986a701f9063e6c --- /dev/null +++ b/shared_legacy/blocks/__init__.py @@ -0,0 +1,2 @@ +from .base import * +from .main import * diff --git a/shared_legacy/blocks/base.py b/shared_legacy/blocks/base.py new file mode 100644 index 0000000000000000000000000000000000000000..351e2252face51cf8f4ad17fc9565045c7098e6d --- /dev/null +++ b/shared_legacy/blocks/base.py @@ -0,0 +1,1110 @@ +import datetime +import json +import logging +import re +import typing +import urllib + +import requests +from django.core.cache import cache +from django.core.exceptions import ValidationError +from django.core.files.images import ImageFile +from django.db import models +from django.forms.utils import ErrorList +from wagtail import blocks +from wagtail.blocks.struct_block import StructBlockValidationError +from wagtail.contrib.table_block.blocks import TableBlock +from wagtail.images.blocks import ImageChooserBlock +from wagtail.images.models import Image +from wagtail.models import Collection + +from maps_utils.blocks import MapFeatureCollectionBlock, MapPointBlock +from shared.const import RICH_TEXT_DEFAULT_FEATURES + +logger = logging.getLogger(__name__) + + +class GalleryBlock(blocks.StructBlock): + gallery_items = blocks.ListBlock( + ImageChooserBlock(label="obrázek", required=True), + label="Galerie", + icon="image", + group="ostatní", + ) + + class Meta: + label = "Galerie" + icon = "image" + template = "styleguide/2.3.x/blocks/gallery_block.html" + + +class FigureBlock(blocks.StructBlock): + img = ImageChooserBlock(label="Obrázek", required=True) + caption = blocks.TextBlock(label="Popisek", required=False) + + class Meta: + label = "Obrázek" + icon = "image" + template = "styleguide/2.3.x/blocks/figure_block.html" + + +class MenuItemBlock(blocks.StructBlock): + title = blocks.CharBlock(label="Titulek", required=True) + page = blocks.PageChooserBlock(label="Stránka", required=False) + link = blocks.URLBlock(label="Odkaz", required=False) + + class Meta: + label = "Položka v menu" + template = "styleguide/2.3.x/menu_item.html" + + def clean(self, value): + errors = {} + + if value["page"] and value["link"]: + errors["page"] = ErrorList( + ["Stránka nemůže být vybrána současně s odkazem."] + ) + errors["link"] = ErrorList( + ["Odkaz nemůže být vybrán současně se stránkou."] + ) + if errors: + raise StructBlockValidationError(errors) + return super().clean(value) + + +class MenuParentBlock(blocks.StructBlock): + title = blocks.CharBlock(label="Titulek", required=True) + menu_items = blocks.ListBlock(MenuItemBlock(), label="Položky menu") + + class Meta: + label = "Podmenu" + template = "styleguide/2.3.x/menu_parent.html" + + +class ProgramItemBlock(blocks.StructBlock): + title = blocks.CharBlock(label="Název", required=True) + completion_percentage = blocks.IntegerBlock( + label="Procento dokončení", required=True + ) + issue_link = blocks.URLBlock(label="Odkaz na Redmine issue", required=False) + + +class YouTubeVideoBlock(blocks.StructBlock): + poster_image = ImageChooserBlock( + label="Náhled videa (automatické pole)", + required=False, + help_text="Není třeba vyplňovat, náhled bude " "dohledán automaticky.", + ) + video_url = blocks.URLBlock( + label="Odkaz na video", + required=False, + help_text="Odkaz na YouTube video bude automaticky " + "zkonvertován na ID videa a NEBUDE uložen.", + ) + video_id = blocks.CharBlock( + label="ID videa (automatické pole)", + required=False, + help_text="Není třeba vyplňovat, bude automaticky " "načteno z odkazu.", + ) + + class Meta: + label = "YouTube video" + icon = "media" + template = "styleguide/2.3.x/blocks/video_block.html" + + def clean(self, value): + errors = {} + + if not value["video_url"] and not value["video_id"]: + errors["video_url"] = ErrorList(["Zadejte prosím odkaz na YouTube video."]) + + if value["video_url"]: + if not value["video_url"].startswith("https://youtu.be") and not value[ + "video_url" + ].startswith("https://www.youtube.com"): + errors["video_url"] = ErrorList( + [ + 'Odkaz na video musí začínat "https://www.youtube.com" ' + 'nebo "https://youtu.be"' + ] + ) + + if value["video_id"]: + if not re.match("^[A-Za-z0-9_-]{11}$", value["video_id"]): + errors["video_url"] = ErrorList( + ["Formát ID YouTube videa není validní"] + ) + + if errors: + raise StructBlockValidationError(errors) + return super().clean(value) + + def get_prep_value(self, value): + value = super().get_prep_value(value) + + if value["video_url"]: + value["video_id"] = self.convert_youtube_link_to_video_id( + value["video_url"] + ) + value["poster_image"] = self.get_wagtail_image_id_for_youtube_poster( + value["video_id"] + ) + + value["video_url"] = "" + + return value + + @staticmethod + def convert_youtube_link_to_video_id(url): + reg_str = ( + "((?<=(v|V)/)|(?<=youtu\.be/)|(?<=youtube\.com/watch(\?|\&)v=)" + "|(?<=embed/))([\w-]+)" + ) + search_result = re.search(reg_str, url) + + if search_result: + return search_result.group(0) + + logger.warning( + "Nepodařilo se získat video ID z YouTube URL", extra={"url": url} + ) + return "" + + @classmethod + def get_wagtail_image_id_for_youtube_poster(cls, video_id) -> int or None: + image_url = "https://img.youtube.com/vi/{}/hqdefault.jpg".format(video_id) + + img_path = "/tmp/{}.jpg".format(video_id) + urllib.request.urlretrieve(image_url, img_path) + file = ImageFile(open(img_path, "rb"), name=img_path) + + return cls.get_image_id(file, "YT_poster_v_{}".format(video_id)) + + @classmethod + def get_image_id(cls, file: ImageFile, image_title: str) -> int: + try: + image = Image.objects.get(title=image_title) + except Image.DoesNotExist: + image = Image( + title=image_title, file=file, collection=cls.get_posters_collection() + ) + image.save() + return image.id + + @staticmethod + def get_posters_collection() -> Collection: + collection_name = "YouTube nahledy" + + try: + collection = Collection.objects.get(name=collection_name) + except Collection.DoesNotExist: + root_collection = Collection.get_first_root_node() + collection = root_collection.add_child(name=collection_name) + + return collection + + +class CardBlock(blocks.StructBlock): + img = ImageChooserBlock(label="Obrázek", required=False) + elevation = blocks.IntegerBlock( + label="Velikost stínu", + min_value=0, + max_value=21, + help_text="0 = žádný stín, 21 = maximální stín", + default=2, + ) + headline = blocks.TextBlock(label="Titulek", required=False) + hoveractive = blocks.BooleanBlock( + label="Zvýraznit stín na hover", + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + required=False, + ) + content = blocks.StreamBlock( + label="Obsah", + local_blocks=[ + ( + "text", + blocks.RichTextBlock( + label="Textový editor", features=RICH_TEXT_DEFAULT_FEATURES + ), + ), + ("table", TableBlock(template="shared/blocks/table_block.html")), + ("figure", FigureBlock()), + ("youtube", YouTubeVideoBlock()), + ("map_point", MapPointBlock(label="Špendlík na mapě")), + ("map_collection", MapFeatureCollectionBlock(label="Mapová kolekce")), + ], + required=False, + ) + page = blocks.PageChooserBlock(label="Stránka", required=False) + link = blocks.URLBlock(label="Odkaz", required=False) + + class Meta: + label = "Karta" + icon = "form" + template = "styleguide/2.3.x/blocks/card_block.html" + + def clean(self, value): + errors = {} + + if value["page"] and value["link"]: + errors["page"] = ErrorList( + ["Stránka nemůže být vybrána současně s odkazem."] + ) + errors["link"] = ErrorList( + ["Odkaz nemůže být vybrán současně se stránkou."] + ) + if errors: + raise StructBlockValidationError(errors) + + return super().clean(value) + + +class ButtonBlock(blocks.StructBlock): + title = blocks.CharBlock(label="Titulek", max_length=128, required=True) + icon = blocks.CharBlock( + label="Ikonka", + max_length=128, + required=False, + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + ) + size = blocks.ChoiceBlock( + choices=(("sm", "Malá"), ("base", "Střední"), ("lg", "Velká")), + label="Velikost", + default="base", + ) + color = blocks.ChoiceBlock( + choices=( + ("black", "Černá"), + ("white", "Bílá"), + ("grey-125", "Světle šedá"), + ("blue-300", "Modrá"), + ("cyan-200", "Tyrkysová"), + ("green-400", "Zelené"), + ("violet-400", "Vínová"), + ("red-600", "Červená"), + ), + label="Barva", + default="base", + ) + hoveractive = blocks.BooleanBlock( + label="Animovat na hover", + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + required=False, + ) + mobile_fullwidth = blocks.BooleanBlock( + label="Plná šířka na mobilních zařízeních", + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + required=False, + ) + page = blocks.PageChooserBlock(label="Stránka", required=False) + link = blocks.URLBlock(label="Odkaz", required=False) + align = blocks.ChoiceBlock( + choices=( + ("auto", "Automaticky"), + ("center", "Na střed"), + ), + label="Zarovnání", + default="auto", + ) + + class Meta: + label = "Tlačítko" + icon = "code" + template = "styleguide/2.3.x/blocks/button_block.html" + + def clean(self, value): + errors = {} + + if value["page"] and value["link"]: + errors["page"] = ErrorList( + ["Stránka nemůže být vybrána současně s odkazem."] + ) + errors["link"] = ErrorList( + ["Odkaz nemůže být vybrán současně se stránkou."] + ) + + if not value["page"] and not value["link"]: + errors["page"] = ErrorList(["Stránka nebo odkaz musí být vyplněna."]) + errors["link"] = ErrorList(["Stránka nebo odkaz musí být vyplněna."]) + + if errors: + raise StructBlockValidationError(errors) + + return super().clean(value) + + def get_context(self, value, parent_context=None): + context = super().get_context(value, parent_context) + + if value["icon"]: + context["icon_class"] = ( + value["icon"] + if value["icon"].startswith("ico--") + else f"ico--{value['icon']}" + ) + else: + context["icon_class"] = None + + return context + + +class ButtonGroupBlock(blocks.StructBlock): + buttons = blocks.ListBlock(ButtonBlock(), label="Tlačítka") + + class Meta: + label = "Skupina tlačítek" + icon = "list-ul" + template = "styleguide/2.3.x/blocks/button_group_block.html" + + +class FullSizeHeaderBlock(blocks.StructBlock): + title = blocks.CharBlock(label="Titulek", required=True) + image_background = ImageChooserBlock(label="Obrázek v pozadí", required=True) + image_foreground = ImageChooserBlock(label="Obrázek v popředí", required=False) + button_group = blocks.ListBlock(ButtonBlock(), label="Tlačítka") + + class Meta: + template = "styleguide/2.3.x/blocks/full_size_header_block.html" + icon = "placeholder" + label = "Nadpis s obrázkem a tlačítky přes celou stránku" + + +class HeadlineBlock(blocks.StructBlock): + headline = blocks.CharBlock(label="Headline", max_length=300, required=True) + style = blocks.ChoiceBlock( + choices=( + ("head-alt-xl", "Bebas XL"), + ("head-alt-lg", "Bebas L"), + ("head-alt-md", "Bebas M"), + ("head-alt-base", "Bebas base"), + ("head-alt-sm", "Bebas SM"), + ("head-alt-xs", "Bebas XS"), + ("head-alt-2xs", "Bebas 2XS"), + ("head-heavy-base", "Roboto base"), + ("head-heavy-sm", "Roboto SM"), + ("head-heavy-xs", "Roboto XS"), + ("head-heavy-2xs", "Roboto 2XS"), + ("head-allcaps-2xs", "Allcaps 2XS"), + ("head-allcaps-3xs", "Allcaps 3XS"), + ("head-allcaps-4xs", "Allcaps 4XS"), + ("head-heavy-allcaps-2xs", "Allcaps heavy 2XS"), + ("head-heavy-allcaps-3xs", "Allcaps heavy 3XS"), + ("head-heavy-allcaps-4xs", "Allcaps heavy 4XS"), + ), + label="Styl", + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + default="head-alt-md", + required=True, + ) + tag = blocks.ChoiceBlock( + choices=( + ("h1", "H1"), + ("h2", "H2"), + ("h3", "H3"), + ("h4", "H4"), + ("h5", "H5"), + ("h6", "H6"), + ), + label="Úroveň nadpisu", + help_text="Čím nižší číslo, tím vyšší úroveň.", + required=True, + default="h1", + ) + align = blocks.ChoiceBlock( + choices=( + ("auto", "Automaticky"), + ("center", "Na střed"), + ), + label="Zarovnání", + default="auto", + required=True, + ) + + def get_context(self, value, parent_context=None): + context = super().get_context(value, parent_context) + context["responsive_style"] = { + "head-alt-xl": "head-alt-lg md:head-alt-xl", + "head-alt-lg": "head-alt-md md:head-alt-lg", + "head-alt-md": "head-alt-md", + "head-alt-base": "head-alt-base", + "head-alt-sm": "head-alt-sm", + "head-alt-xs": "head-alt-xs", + "head-alt-2xs": "head-alt-2xs", + "head-heavy-base": "head-heavy-base", + "head-heavy-sm": "head-heavy-sm", + "head-heavy-xs": "head-heavy-xs", + "head-heavy-2xs": "head-heavy-2xs", + "head-allcaps-2xs": "head-allcaps-2xs", + "head-allcaps-3xs": "head-allcaps-3xs", + "head-allcaps-4xs": "head-allcaps-4xs", + "head-heavy-allcaps-2xs": "head-heavy-allcaps-2xs", + "head-heavy-allcaps-3xs": "head-heavy-allcaps-3xs", + "head-heavy-allcaps-4xs": "head-heavy-allcaps-4xs", + }[value["style"]] + return context + + class Meta: + label = "Headline" + icon = "bold" + template = "styleguide/2.3.x/blocks/headline_block.html" + + +class TwoColumnBlock(blocks.StructBlock): + left_column_content = blocks.StreamBlock( + label="Obsah levého sloupce", + local_blocks=[ + ( + "text", + blocks.RichTextBlock( + label="Textový editor", features=RICH_TEXT_DEFAULT_FEATURES + ), + ), + ("table", TableBlock(template="shared/blocks/table_block.html")), + ("card", CardBlock()), + ("figure", FigureBlock()), + ("youtube", YouTubeVideoBlock()), + ("map_point", MapPointBlock(label="Špendlík na mapě")), + ("map_collection", MapFeatureCollectionBlock(label="Mapová kolekce")), + ("button", ButtonBlock()), + ("button_group", ButtonGroupBlock()), + ], + required=True, + ) + right_column_content = blocks.StreamBlock( + label="Obsah pravého sloupce", + local_blocks=[ + ( + "text", + blocks.RichTextBlock( + label="Textový editor", features=RICH_TEXT_DEFAULT_FEATURES + ), + ), + ("table", TableBlock(template="shared/blocks/table_block.html")), + ("card", CardBlock()), + ("figure", FigureBlock()), + ("youtube", YouTubeVideoBlock()), + ("map_point", MapPointBlock(label="Špendlík na mapě")), + ("map_collection", MapFeatureCollectionBlock(label="Mapová kolekce")), + ("button", ButtonBlock()), + ("button_group", ButtonGroupBlock()), + ], + required=True, + ) + + class Meta: + label = "Dva sloupce" + icon = "grip" + template = "styleguide/2.3.x/blocks/two_column_block.html" + + +class ThreeColumnBlock(blocks.StructBlock): + left_column_content = blocks.StreamBlock( + label="Obsah levého sloupce", + local_blocks=[ + ( + "text", + blocks.RichTextBlock( + label="Textový editor", features=RICH_TEXT_DEFAULT_FEATURES + ), + ), + ("table", TableBlock(template="shared/blocks/table_block.html")), + ("card", CardBlock()), + ("figure", FigureBlock()), + ("youtube", YouTubeVideoBlock()), + ("map_point", MapPointBlock(label="Špendlík na mapě")), + ("map_collection", MapFeatureCollectionBlock(label="Mapová kolekce")), + ("button", ButtonBlock()), + ("button_group", ButtonGroupBlock()), + ], + required=True, + ) + middle_column_content = blocks.StreamBlock( + label="Obsah prostředního sloupce", + local_blocks=[ + ( + "text", + blocks.RichTextBlock( + label="Textový editor", features=RICH_TEXT_DEFAULT_FEATURES + ), + ), + ("table", TableBlock(template="shared/blocks/table_block.html")), + ("card", CardBlock()), + ("figure", FigureBlock()), + ("youtube", YouTubeVideoBlock()), + ("map_point", MapPointBlock(label="Špendlík na mapě")), + ("map_collection", MapFeatureCollectionBlock(label="Mapová kolekce")), + ("button", ButtonBlock()), + ("button_group", ButtonGroupBlock()), + ], + required=True, + ) + right_column_content = blocks.StreamBlock( + label="Obsah pravého sloupce", + local_blocks=[ + ( + "text", + blocks.RichTextBlock( + label="Textový editor", features=RICH_TEXT_DEFAULT_FEATURES + ), + ), + ("table", TableBlock(template="shared/blocks/table_block.html")), + ("card", CardBlock()), + ("figure", FigureBlock()), + ("youtube", YouTubeVideoBlock()), + ("map_point", MapPointBlock(label="Špendlík na mapě")), + ("map_collection", MapFeatureCollectionBlock(label="Mapová kolekce")), + ("button", ButtonBlock()), + ("button_group", ButtonGroupBlock()), + ], + required=True, + ) + + class Meta: + label = "Tři sloupce" + icon = "grip" + template = "styleguide/2.3.x/blocks/three_column_block.html" + + +class ImageBannerBlock(blocks.StructBlock): + image = ImageChooserBlock( + label="Obrázek", + required=True, + ) + headline = blocks.CharBlock(label="Headline", max_length=128, required=True) + content = blocks.StreamBlock( + label="Obsah pravého sloupce", + local_blocks=[ + ( + "text", + blocks.RichTextBlock( + label="Textový editor", + features=( + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ), + ), + ), + ("button", ButtonBlock()), + ("button_group", ButtonGroupBlock()), + ], + required=False, + ) + + class Meta: + label = "Obrázkový banner" + icon = "image" + template = "styleguide/2.3.x/blocks/image_banner_block.html" + + +class CardLinkBlockMixin(blocks.StructBlock): + """ + Shared mixin for cards, which vary in templates and the types of pages + they're allowed to link to. + """ + + image = ImageChooserBlock(label="Obrázek") + title = blocks.CharBlock(label="Titulek", required=True) + text = blocks.RichTextBlock(label="Krátký text pod nadpisem", required=False) + + page = blocks.PageChooserBlock( + label="Stránka", + page_type=[], + required=False, + ) + link = blocks.URLBlock(label="Odkaz", required=False) + + class Meta: + # template = "" + icon = "link" + label = "Karta s odkazem" + + def clean(self, value): + errors = {} + + if value["page"] and value["link"]: + errors["page"] = ErrorList( + ["Stránka nemůže být vybrána současně s odkazem."] + ) + errors["link"] = ErrorList( + ["Odkaz nemůže být vybrán současně se stránkou."] + ) + elif not value["page"] and not value["link"]: + errors["page"] = ErrorList(["Zvolte stránku nebo vyplňte odkaz."]) + errors["link"] = ErrorList(["Vyplňte odkaz nebo zvolte stránku."]) + if errors: + raise StructBlockValidationError(errors) + return super().clean(value) + + +class CardLinkWithHeadlineBlockMixin(blocks.StructBlock): + headline = blocks.CharBlock(label="Titulek bloku", required=False) + card_items = blocks.ListBlock(CardLinkBlockMixin(), label="Karty s odkazy") + + class Meta: + # template = "" + icon = "link" + label = "Karty odkazů s nadpisem" + + +class ChartDataset(blocks.StructBlock): + label = blocks.CharBlock( + label="Označení zdroje dat", + max_length=120, + ) + + data = blocks.ListBlock( + blocks.IntegerBlock(), + label="Data", + default=[0], + ) + + class Meta: + label = "Zdroj dat" + + +def get_redmine_projects(): + projects = requests.get("https://redmine.pirati.cz/projects.json?limit=10000") + + if projects.ok: + projects = projects.json()["projects"] + else: + projects = [] + + return [(project["id"], project["name"]) for project in projects] + + +class ChartRedmineIssueDataset(blocks.StructBlock): + projects = blocks.MultipleChoiceBlock( + label="Projekty", choices=get_redmine_projects + ) + + is_open = blocks.BooleanBlock( + label="Jen otevřené", + required=False, + ) + is_closed = blocks.BooleanBlock( + label="Jen uzavřené", + required=False, + ) + + created_on_min_date = blocks.DateBlock(label="Min. datum vytvoření", required=True) + created_on_max_date = blocks.DateBlock(label="Max. datum vytvoření", required=True) + updated_on = blocks.CharBlock( + label="Filtr pro datum aktualizace", + max_length=128, + help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api", + required=False, + ) + + issue_label = blocks.CharBlock( + label="Označení úkolů uvnitř grafu", + max_length=128, + required=True, + ) + + split_per_project = blocks.BooleanBlock( + label="Rozdělit podle projektu", + required=False, + ) + + only_grow = blocks.BooleanBlock( + label="Pouze růst nahoru", + required=False, + ) + + def _get_issues_url( + self, value, project_id: typing.Union[None, str, list[str]] = None + ): + url = "https://redmine.pirati.cz/issues.json" + params = [ + ("sort", "created_on"), + ("limit", "100"), + ( + "created_on", + f"><{value['created_on_min_date']}|{value['created_on_max_date']}", + ), + ] + + if isinstance(project_id, str): + params.append(("project_id", project_id)) + elif isinstance(project_id, list): + params.append(("project_id", ",".join(project_id))) + + is_open = value.get("is_open", False) + is_closed = value.get("is_closed", False) + + if is_open and is_closed: + params.append(("status_id", "*")) + elif is_open: + params.append(("status_id", "open")) + elif is_closed: + params.append(("status_id", "closed")) + + if value.get("updated_on", "") != "": + params.append(("updated_on", value["updated_on"])) + + is_first = True + + for param_set in params: + param, param_value = param_set + + url += "?" if is_first else "&" + url += f"{param}={urllib.parse.quote(param_value)}" + + is_first = False + + return url + + def _get_parsed_issues(self, value, labels, issues_url) -> tuple: + issues_response = cache.get(f"redmine_{issues_url}") + + if issues_response is None: + issues_response = requests.get(issues_url) + issues_response.raise_for_status() + issues_response = issues_response.json() + + cache.set( + f"redmine_{issues_url}", + issues_response, + timeout=604800, # 1 week + ) + + only_grow = value.get("only_grow", False) + + collected_issues = issues_response["issues"] + offset = 0 + + while issues_response["total_count"] - offset > len(issues_response["issues"]): + offset += 100 + url_with_offset = f"{issues_url}&offset={offset}" + + issues_response = cache.get(f"redmine_{url_with_offset}") + + if issues_response is None: + issues_response = requests.get(url_with_offset) + issues_response.raise_for_status() + issues_response = issues_response.json() + + cache.set( + f"redmine_{url_with_offset}", + issues_response, + timeout=604800, # 1 week + ) + + collected_issues += issues_response["issues"] + + ending_position = len(collected_issues) - 1 + + data = None + + current_issue_count = 0 + current_label = datetime.date.fromisoformat( + collected_issues[0]["created_on"].split("T")[0] + ) + + if not only_grow: + data = [0] * len(labels) + + for position, issue in enumerate( + collected_issues + ): # Assume correct sorting order + created_on_date = datetime.date.fromisoformat( + issue["created_on"].split("T")[0] + ) + + if current_label != created_on_date or position == ending_position: + data[ + labels.index(current_label) + ] = current_issue_count # Assume labels are unique + current_label = created_on_date + + if position != ending_position: + current_issue_count = 0 + else: + data[labels.index(current_label)] = 1 + break + + current_issue_count += 1 + else: + data = [] + issue_count_by_date = {} + + for position, issue in enumerate( + collected_issues + ): # Assume correct sorting order + created_on_date = datetime.date.fromisoformat( + issue["created_on"].split("T")[0] + ) + + if current_label not in issue_count_by_date: + issue_count_by_date[current_label] = 0 + + if current_label != created_on_date or position == ending_position: + issue_count_by_date[ + current_label + ] = current_issue_count # Assume labels are unique + current_label = created_on_date + + if position == ending_position: + issue_count_by_date[current_label] = current_issue_count + 1 + break + + current_issue_count += 1 + + previous_date = None + + for date in labels: + if date not in issue_count_by_date: + if previous_date is None: + data.append(0) + continue + + data.append(issue_count_by_date[previous_date]) + continue + + data.append(issue_count_by_date[date]) + previous_date = date + + return data + + def get_context(self, value) -> list: + context = super().get_context(value) + + labels = [] + datasets = [] + + for day_count in range( + (value["created_on_max_date"] - value["created_on_min_date"]).days + 1 + ): + day = value["created_on_min_date"] + datetime.timedelta(days=day_count) + labels.append(day) + + if value.get("split_per_project", False): + project_choices_lookup = dict(get_redmine_projects()) + + for project_id in value["projects"]: + issues_url = self._get_issues_url(value, project_id) + + datasets.append( + { + "label": f"{value['issue_label']} - {project_choices_lookup[int(project_id)]}", + "data": self._get_parsed_issues(value, labels, issues_url), + } + ) + else: + issues_url = self._get_issues_url(value, value["projects"]) + + datasets.append( + { + "label": value["issue_label"], + "data": self._get_parsed_issues(value, labels, issues_url), + } + ) + + labels = [date.strftime("%d. %m. %Y") for date in labels] + + context["parsed_issue_labels"] = labels + context["parsed_issues"] = datasets + + return context + + class Meta: + label = "Zdroj dat z Redmine (úkoly vytvořené za den)" + help_text = ( + "Po prvním otevření se bude stránka otevírat delší dobu, " + "zatímco se na pozadí načítají data do grafu. Poté bude " + "fungovat běžně." + ) + + +class ChartBlock(blocks.StructBlock): + title = blocks.CharBlock( + label="Název", + max_length=120, + ) + chart_type = blocks.ChoiceBlock( + label="Typ", + choices=[ + ("bar", "Graf se sloupci"), + ("horizontalBar", "Graf s vodorovnými sloupci"), + ("pie", "Koláčový graf"), + ("doughnut", "Donutový graf"), + ("polarArea", "Graf polární oblasti"), + ("radar", "Radarový graf"), + ("line", "Graf s liniemi"), + ], + default="bar", + ) + + hide_points = blocks.BooleanBlock( + label="Schovat body", + required=False, + help_text="Mění vzhled pouze u linových grafů.", + ) + + local_labels = blocks.ListBlock( + blocks.CharBlock( + max_length=40, + label="Skupina", + ), + default=[], + blank=True, + required=False, + collapsed=True, + label="Místně definované skupiny", + ) + local_datasets = blocks.ListBlock( + ChartDataset(), + default=[], + blank=True, + required=False, + collapsed=True, + label="Místní zdroje dat", + ) + + redmine_issue_datasets = blocks.ListBlock( + ChartRedmineIssueDataset(label="Redmine úkoly"), + default=[], + blank=True, + required=False, + label="Zdroje dat z Redmine (úkoly)", + help_text=( + "Úkoly, podle doby vytvoření. Pokud definuješ " + "více zdrojů, datumy v nich musí být stejné." + ), + ) + + def clean(self, value): + result = super().clean(value) + + redmine_issues_exist = len(value.get("redmine_issue_datasets", [])) != 0 + + if len(value.get("local_datasets", [])) != 0 and redmine_issues_exist: + raise ValidationError( + "Definuj pouze jeden typ zdroje dat - místní, nebo z Redmine." + ) + + if redmine_issues_exist: + min_date = value["redmine_issue_datasets"][0]["created_on_min_date"] + max_date = value["redmine_issue_datasets"][0]["created_on_max_date"] + + if len(value["redmine_issue_datasets"]) > 1: + for dataset in value["redmine_issue_datasets"]: + if ( + dataset["created_on_min_date"] != min_date + or dataset["created_on_max_date"] != max_date + ): + raise ValidationError( + "Maximální a minimální data všech zdrojů z Redmine musí být stejné" + ) + + return result + + def get_context(self, value, parent_context=None): + context = super().get_context(value, parent_context=parent_context) + + datasets = [] + labels = [] + + if len(value["local_datasets"]) != 0: + labels = value["local_labels"] + + for dataset in value["local_datasets"]: + datasets.append( + { + "label": dataset["label"], + "data": [item for item in dataset["data"]], + } + ) + elif len(value["redmine_issue_datasets"]) != 0: + for dataset_wrapper in value["redmine_issue_datasets"]: + redmine_context = ChartRedmineIssueDataset().get_context( + dataset_wrapper + ) + + labels = redmine_context["parsed_issue_labels"] + datasets += redmine_context["parsed_issues"] + + value["datasets"] = json.dumps(datasets) + value["labels"] = json.dumps([label for label in labels]) + + return context + + class Meta: + # template = "" + label = "Graf" + icon = "form" + help_text = """Všechny položky zdrojů dat se chovají jako sloupce. +Zobrazí se tolik definovaných sloupců, kolik existuje skupin.""" + + +class FooterLinksBlock(blocks.StructBlock): + label = blocks.CharBlock(label="Titulek zápatí", required=True) + items = blocks.ListBlock( + blocks.StructBlock( + [ + ("url", blocks.URLBlock(label="Odkaz")), + ("text", blocks.CharBlock(label="Text v odkazu")), + ] + ), + label="Odkazy", + required=True, + ) + + class Meta: + label = "Seznam odkazů v zápatí" + icon = "list-ul" + template = "shared/blocks/footer_links_block.html" + + +class NewsletterSubscriptionBlock(blocks.StructBlock): + list_id = blocks.CharBlock(label="ID newsletteru", required=True) + description = blocks.CharBlock( + label="Popis newsletteru", + required=True, + default="Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!", + ) + + class Meta: + label = "Formulář pro odebírání newsletteru" + icon = "form" + template = "shared/blocks/newsletter_subscription_block.html" + + +DEFAULT_CONTENT_BLOCKS = [ + ( + "text", + blocks.RichTextBlock( + label="Textový editor", features=RICH_TEXT_DEFAULT_FEATURES + ), + ), + ("headline", HeadlineBlock()), + ("table", TableBlock(template="shared/blocks/table_block.html")), + ("gallery", GalleryBlock(label="Galerie")), + ("figure", FigureBlock()), + ("card", CardBlock()), + ("two_columns", TwoColumnBlock()), + ("three_columns", ThreeColumnBlock()), + ("youtube", YouTubeVideoBlock(label="YouTube video")), + ("map_point", MapPointBlock(label="Špendlík na mapě")), + ("map_collection", MapFeatureCollectionBlock(label="Mapová kolekce")), + ("button", ButtonBlock()), + ("button_group", ButtonGroupBlock()), + ("image_banner", ImageBannerBlock()), +] diff --git a/shared_legacy/blocks/main.py b/shared_legacy/blocks/main.py new file mode 100644 index 0000000000000000000000000000000000000000..a2668a3ce404519250308266d30b0857598c47ce --- /dev/null +++ b/shared_legacy/blocks/main.py @@ -0,0 +1,235 @@ +from wagtail import blocks +from wagtail.blocks import ( + CharBlock, + ListBlock, + PageChooserBlock, + RichTextBlock, + StructBlock, + TextBlock, + URLBlock, +) +from wagtail.documents.blocks import DocumentChooserBlock +from wagtail.images.blocks import ImageChooserBlock + +from .base import MenuItemBlock as MenuItemBlockBase + +# Mixins (or used as such) + + +PROGRAM_RICH_TEXT_FEATURES = [ + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", +] + + +class CTAMixin(StructBlock): + button_link = URLBlock(label="Odkaz tlačítka") + button_text = CharBlock(label="Text tlačítka") + + class Meta: + icon = "doc-empty" + label = "Výzva s odkazem" + + +class LinkBlock(StructBlock): + text = CharBlock(label="Název") + link = URLBlock(label="Odkaz") + + class Meta: + icon = "link" + label = "Odkaz" + + +# Navbar + + +class MainMenuItemBlock(MenuItemBlockBase): + title = blocks.CharBlock( + label="Titulek", + help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.", + required=True, + ) + + class Meta: + label = "Položka v menu" + + +class NavbarMenuItemBlock(CTAMixin): + class Meta: + label = "Tlačítko" + template = "styleguide2/includes/molecules/navbar/additional_button.html" + + +class SocialLinkBlock(LinkBlock): + icon = CharBlock( + label="Ikona", + help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>" + "Název ikony zadejte bez tečky na začátku", + ) # TODO CSS class name or somthing better? + + class Meta: + icon = "link" + label = "Odkaz" + + +# Articles + + +class NewsBlock(StructBlock): + title = CharBlock( + label="Titulek", + help_text="Nejnovější články se načtou automaticky", + ) + description = TextBlock(label="Popis") + + class Meta: + icon = "doc-full-inverse" + label = "Novinky" + + +class ArticleQuoteBlock(StructBlock): + quote = CharBlock(label="Citace") + autor_name = CharBlock(label="Jméno autora") + + class Meta: + icon = "user" + label = "Blok citace" + template = "styleguide2/includes/legacy/article_quote_block.html" + + +class ArticleDownloadBlock(StructBlock): + file = DocumentChooserBlock(label="Stáhnutelný soubor") + + class Meta: + icon = "user" + label = "Blok stáhnutelného dokumentu" + template = "styleguide2/includes/molecules/blocks/download_block.html" + + +# People + + +class TwoTextColumnBlock(StructBlock): + text_column_1 = RichTextBlock(label="První sloupec textu") + text_column_2 = RichTextBlock(label="Druhý sloupec textu") + + class Meta: + icon = "doc-full" + label = "Text ve dvou sloupcích" + + +class PersonContactBoxBlock(StructBlock): + title = CharBlock(label="Titulek") + image = ImageChooserBlock(label="Ikona") + subtitle = CharBlock(label="Podtitulek") + + class Meta: + icon = "mail" + label = "Kontakty" + + +class PersonContactBlock(StructBlock): + position = CharBlock(label="Název pozice", required=False) + # email, phone? + person = PageChooserBlock( + label="Osoba", + page_type=["main.MainPersonPage"], + ) + + class Meta: + icon = "user" + label = "Osoba s volitelnou pozicí" + + +# Footer + + +class OtherLinksBlock(StructBlock): + title = CharBlock(label="Titulek") + list = ListBlock(LinkBlock, label="Seznam odkazů s titulkem") + + class Meta: + icon = "link" + label = "Odkazy" + template = "main/blocks/article_quote_block.html" + + +class ProgramBlockPopout(StructBlock): + title = CharBlock(label="Titulek vyskakovacího bloku") + content = RichTextBlock( + label="Obsah", + features=PROGRAM_RICH_TEXT_FEATURES, + ) + + class Meta: + icon = "date" + label = "Blok programu" + + +class ProgramPopoutCategory(StructBlock): + name = CharBlock(label="Název") + icon = ImageChooserBlock(label="Ikona", required=False) + + description = RichTextBlock(label="Popis", required=False) + + point_list = ListBlock(ProgramBlockPopout(), label="Jednotlivé bloky programu") + + class Meta: + icon = "date" + label = "Kategorie programu" + + +class ProgramGroupBlockPopout(StructBlock): + categories = ListBlock(ProgramPopoutCategory(), label="Kategorie programu") + + class Meta: + icon = "date" + label = "Vyskakovací program" + + +class FlipCardBlock(StructBlock): + bg_color = CharBlock(label="Barva pozadí", default="FEC900") + + image = ImageChooserBlock(label="Obrázek", required=False) + + title = TextBlock(label="Nadpis", help_text="Řádkování je manuální.") + + content = RichTextBlock(label="Obsah") + + button_text = CharBlock( + label="Nadpis tlačítka", + help_text="Pokud není vyplněn, tlačítko se neukáže.", + required=False, + ) + button_url = CharBlock(label="Odkaz tlačítka", required=False) + + class Meta: + icon = "view" + label = "Obracecí karta" + template = "styleguide2/includes/molecules/boxes/flip_card_box.html" + + +class FlipCardsBlock(StructBlock): + cards = ListBlock( + FlipCardBlock(label="Karta"), + label="Karty", + ) + + class Meta: + icon = "group" + label = "Seznam obracecích karet" + template = "styleguide2/includes/organisms/cards/flip_card_list.html" diff --git a/shared_legacy/const.py b/shared_legacy/const.py new file mode 100644 index 0000000000000000000000000000000000000000..af05b79c185014f22cbe3d62bb9b14a2a83296bb --- /dev/null +++ b/shared_legacy/const.py @@ -0,0 +1,34 @@ +RICH_TEXT_DEFAULT_FEATURES = [ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", +] + +MONTH_NAMES = [ + "Leden", + "Únor", + "Březen", + "Duben", + "Květen", + "Červen", + "Červenec", + "Srpen", + "Září", + "Říjen", + "Listopad", + "Prosinec", +] diff --git a/shared_legacy/feeds.py b/shared_legacy/feeds.py new file mode 100644 index 0000000000000000000000000000000000000000..a60c7527b5a899145ba058ae68778eea302d10cc --- /dev/null +++ b/shared_legacy/feeds.py @@ -0,0 +1,77 @@ +import typing +from datetime import datetime + +from django.contrib.syndication.views import Feed +from django.template.loader import render_to_string +from django.urls import reverse + + +class LatestArticlesFeed(Feed): + def __init__(self, articles_page_model, article_page_model, *args, **kwargs): + self.articles_page_model = articles_page_model + self.article_page_model = article_page_model + + return super().__init__(*args, **kwargs) + + def get_object(self, request, id: int): + return self.articles_page_model.objects.get(id=id) + + def title(self, obj) -> str: + return obj.title + + def link(self, obj) -> str: + return obj.get_full_url() + + def description(self, obj) -> str: + return obj.perex + + def items(self, obj) -> list: + return obj.materialize_shared_articles_query( + obj.append_all_shared_articles_query( + self.article_page_model.objects.child_of(obj) + )[:32] + ) + + def item_title(self, item) -> str: + return item.title + + def item_description(self, item) -> str: + return render_to_string( + "styleguide2/feed_item_description.html", + {"item": item}, + ) + + def item_pubdate(self, item) -> datetime: + return datetime( + item.date.year, + item.date.month, + item.date.day, + 12, + 0, + ) + + def item_author_name(self, item) -> str: + if item.author: + return item.author + + if item.author_page and item.author_page.title: + return item.author_page.title + + return "" + + def item_categories(self, item) -> list: + return item.get_tags + + def item_link(self, item) -> str: + return item.get_full_url() + + def item_enclosure_url(self, item) -> typing.Union[None, str]: + if item.image is None: + return None + + return item.image.get_rendition("format-webp").full_url + + item_enclosure_mime_type = "image/webp" + + def item_enclosure_length(self, item) -> int: + return item.image.file_size diff --git a/shared_legacy/finders.py b/shared_legacy/finders.py new file mode 100644 index 0000000000000000000000000000000000000000..d75fc41d30c6eebcaea45ad4f8951f2f2603fbb1 --- /dev/null +++ b/shared_legacy/finders.py @@ -0,0 +1,9 @@ +from wagtail.embeds.finders.oembed import OEmbedFinder + + +class CustomPeertubeFinder(OEmbedFinder): + def _get_endpoint(self, url): + return "https://tv.pirati.cz/services/oembed" + + +embed_finder_class = CustomPeertubeFinder diff --git a/shared_legacy/forms.py b/shared_legacy/forms.py new file mode 100644 index 0000000000000000000000000000000000000000..b9e90c8fd88acbdb3705287259401c0a14781354 --- /dev/null +++ b/shared_legacy/forms.py @@ -0,0 +1,70 @@ +from django import forms +from wagtail.admin.forms import WagtailAdminPageForm +from wagtail.models.media import Collection + + +class SubscribeForm(forms.Form): + email = forms.EmailField() + confirmed = forms.BooleanField() + return_page_id = forms.IntegerField() + + +class JekyllImportForm(WagtailAdminPageForm): + do_import = forms.BooleanField( + initial=False, required=False, label="Provést import z Jekyllu" + ) + collection = forms.ModelChoiceField( + queryset=Collection.objects.all(), required=False, label="Kolekce obrázků" + ) + dry_run = forms.BooleanField( + initial=True, + required=False, + label="Jenom na zkoušku", + help_text="Žádné články se neuloží, vypíše případné problémy či " + "již existující články - 'ostrému' importu existující " + "články nevadí, přeskočí je", + ) + jekyll_repo_url = forms.URLField( + max_length=512, + required=False, + help_text="např. https://github.com/pirati-web/pirati.cz", + ) + readonly_log = forms.CharField( + disabled=True, + label="Log z posledního importu", + required=False, + widget=forms.Textarea, + ) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields["readonly_log"].initial = self.instance.last_import_log + + def clean(self): + cleaned_data = super().clean() + + if not cleaned_data.get("do_import"): + return cleaned_data + + if cleaned_data.get("do_import") and not self.instance.id: + self.add_error( + "do_import", "Import proveďte prosím až po vytvoření stránky" + ) + + if not cleaned_data.get("collection"): + self.add_error("collection", "Pro import je toto pole povinné") + if not cleaned_data.get("jekyll_repo_url"): + self.add_error("jekyll_repo_url", "Pro import je toto pole povinné") + + if cleaned_data.get("jekyll_repo_url", "").endswith(".zip"): + self.add_error( + "jekyll_repo_url", "Vložte odkaz pouze na repozitář, ne na zip" + ) + + return cleaned_data + + def save(self, commit=True): + if self.cleaned_data.get("do_import"): + self.handle_import() + + return super().save(commit=commit) diff --git a/shared_legacy/jekyll_import.py b/shared_legacy/jekyll_import.py new file mode 100644 index 0000000000000000000000000000000000000000..58451065d958f3be37a862f0038afb1d4e8896b6 --- /dev/null +++ b/shared_legacy/jekyll_import.py @@ -0,0 +1,763 @@ +import json +import logging +import os +import random +import re +import string +import urllib +import xml.etree.ElementTree as ET +import zipfile +from datetime import date, datetime +from datetime import timezone as datetime_timezone +from http.client import InvalidURL +from io import StringIO +from typing import List +from urllib.error import HTTPError +from uuid import uuid4 + +import bleach +import markdown.serializers +import yaml +from django.core.files.images import ImageFile +from django.utils import timezone +from markdown import Markdown +from markdown.extensions import Extension +from markdown.inlinepatterns import InlineProcessor +from wagtail.contrib.redirects.models import Redirect +from wagtail.images.models import Image +from wagtail.models import Page +from wagtail.models.media import Collection +from willow.image import UnrecognisedImageFormatError +from yaml.scanner import ScannerError + +logger = logging.getLogger(__name__) +# from django.utils.dateparse import parse_date # pro hledani krome title i podle data + +image_params = {} # filled on JekyllArticleImporter init and used globally + +POSTS_DIR = "_posts" + +# ------------------------------- Misc helper functions ------------------------------- + + +def clone_repo(url: str) -> (str, str): + """ + Naclonuje repo do tmp s využitím gitu a vrátí cestu k němu. + Pokud URL končí lomítkem, odebereme ho, a vezmeme jako název repozitáře + string za posledním lomítkem jako název repa. To použijeme i pro promazání + takového adresáře, pokud už existuje. + """ + path = "/tmp/" + if url.endswith("/"): + url = url[:-1] + repo_name = url.split("/")[-1] + repo_path = os.path.join(path, repo_name) + + os.chdir(path) + if os.path.exists(repo_path): + os.chdir(repo_path) + os.system("git pull --depth 1") + return repo_path, repo_name + + os.system("git clone --depth 1 {}".format(url)) + + return repo_path, repo_name + + +def download_repo_as_zip(url: str) -> (str, str): + """ + Stáhne .zip repa, extrahuje a vrátí cestu k extrahovanému repu. + Hodně nešikovné je, že extrahovaná složka má ještě suffix "-gh-pages" + a to nevím, jestli platí vždy... regex taky pro název repa také není optimální, + ale ve finále nehraje moc roli, pokud vrátí cokoliv použitelného pro file name. + """ + path = "/tmp/" + repo_name = re.search("pirati-web/(.*)/archive/", url).group(1) + zip_path = "{}{}.zip".format(path, repo_name) + + if os.path.exists(zip_path): + os.remove(zip_path) + + urllib.request.urlretrieve(url, zip_path) + + with zipfile.ZipFile(zip_path, "r") as zip_ref: + zip_ref.extractall(path) + + # zdá se, že někdy je -gh-pages, někdy -master... + gh_pages_path = os.path.join(path, "{}-gh-pages".format(repo_name)) + if os.path.exists(gh_pages_path): + return gh_pages_path, repo_name + + master_path = os.path.join(path, "{}-master".format(repo_name)) + if os.path.exists(master_path): + return master_path, repo_name + + main_path = os.path.join(path, "{}-main".format(repo_name)) + if os.path.exists(main_path): + return main_path, repo_name + + raise NotImplementedError("Tento zip nedokážeme zpracovat.") + + +def get_or_create_image( + path: str, file_path: str, collection, repo_name: str +) -> Image or None: + """ + Funkce, která se snaží najít a vrátit Wagtail Image. + Nejdříve hledá v existujících podle cesty, resp. title... + Pak zkusí najít soubor fyzicky na disku... + Pak zkusí ještě assets/img adresář... + Pak zkusí ještě assets/img/posts adresář... + Pak zkusí stáhnout image z https://a.pirati.cz... + Pak zkusí přidat do https://a.pirati.cz "posts"... + Pak se na to vykašle... + + Šla by určitě rozsekat a začistit, ale vzhledem k tomu, že je to + one-timer, tak jsme to pouze dotáhli do stavu, kdy to schroupne co nejvíce + případů. + """ + + file_path = file_path.lstrip("/") + + if Image.objects.filter(title=file_path).exists(): + return Image.objects.filter(title=file_path).first(), "" + + try: + file = ImageFile(open(os.path.join(path, file_path), "rb"), name=file_path) + image = Image(title=file_path, file=file, collection=collection) + if not image_params["dry_run"]: + image.save() + return image, "" + except (FileNotFoundError, UnrecognisedImageFormatError): + pass # cesta pomocí file_path neexisuje, jdeme dál + + try: + file = ImageFile( + open(os.path.join(path, "assets/img", file_path), "rb"), + name=file_path, + ) + image = Image(title=file_path, file=file, collection=collection) + if not image_params["dry_run"]: + image.save() + return image, "" + except (FileNotFoundError, UnrecognisedImageFormatError): + pass # cesta s vložením "assets/img" před file_path neexisuje, jdeme dál + + try: + file = ImageFile( + open(os.path.join(path, "assets/img/posts", file_path), "rb"), + name=file_path, + ) + image = Image(title=file_path, file=file, collection=collection) + if not image_params["dry_run"]: + image.save() + return image, "" + except (FileNotFoundError, UnrecognisedImageFormatError): + pass + + # na disku jsme nenašli, zkusíme stáhnout z webu + fallback_name = ( + "".join(random.choice(string.ascii_lowercase) for _ in range(10)) + ".jpg" + ) # někdy je název obrzau spojený s poznámkou apod., připravíme si fallback name + img_name = file_path.split("/")[-1] or fallback_name + img_path = os.path.join(path, img_name) + + # zkusíme, jestli obrázek není hardcoded (posty ve zlinském kraji) + if file_path.startswith("https://"): + try: + urllib.request.urlretrieve(file_path, img_path) + except (HTTPError, UnicodeEncodeError, InvalidURL, IsADirectoryError): + msg = "Nedohledán obrázek při importu článků" + log_message = "{}: URL {}\n".format(msg, file_path) + logger.warning( + log_message, + extra={"img_name": img_name, "img_url": file_path}, + ) + return None, log_message + + # v opačném případě jdeme zkusit assets server a.pirati.cz + else: + img_assets_folder = repo_name.split(".")[0] # např. "praha" z praha.pirati.cz + img_url = "https://a.pirati.cz/resize/4000x-/{}/img/{}".format( + img_assets_folder, file_path.split("#")[0] # cistime nazev od poznamek apod + ) + + try: + urllib.request.urlretrieve(img_url, img_path) + except (HTTPError, UnicodeEncodeError, InvalidURL, IsADirectoryError): + try: + # druhý pokus s "posts" přidáno do URL (obvykle je ve file_path) + img_url = "https://a.pirati.cz/resize/4000x-/{}/img/posts/{}".format( + img_assets_folder, img_name.split()[0] + ) + urllib.request.urlretrieve(img_url, img_path) + except (HTTPError, UnicodeEncodeError, InvalidURL, IsADirectoryError): + msg = "Nedohledán obrázek při importu článků - ani na disku, ani na URL" + log_message = "{}: cesta {}, URL {}\n".format(msg, file_path, img_url) + + logger.warning( + log_message, + extra={ + "file_path": file_path, + "img_name": img_name, + "img_url": img_url, + }, + ) + + return None, log_message + + file = ImageFile(open(img_path, "rb"), name=img_path) + + try: + image = Image(title=file_path, file=file, collection=collection) + except UnrecognisedImageFormatError: + msg = "Obrázek byl nalezen, ale jeho formát nerozpoznán" + log_message = "{}: cesta {}\n".format(msg, file_path) + + logger.warning( + log_message, + extra={ + "file_path": file_path, + }, + ) + + return None, log_message + + if not image_params["dry_run"]: + try: + image.save() + except Exception as e: + msg = "Nelze uložit obrázek" + logger.warning(msg, extra={"exc": e}) + return None, msg + + return image, "" + + +def get_path_and_repo_name(url: str, use_git: bool) -> (str, str): + """ + Vrací cestu a název repozitáře podle toho zíksané různými způsoby, + podle toho jestli se jedná o odkaz na zip nebo na git. + """ + if use_git: + return clone_repo(url) + else: + return download_repo_as_zip(url) + + +def get_site_config(path) -> dict: + """ + Vrací config Jekyll repa jako dict. + """ + with open(os.path.join(path, "_config.yml")) as f: + config = yaml.safe_load(f.read()) + return config + + +def get_title_from_site_config(site_config: dict) -> str: + if "title" in site_config: + return " - " + site_config.get("title", "") + return "" + + +def unmark_element(element, stream=None): + """ + Očišťuje element (perex) od ostatních značek + """ + if stream is None: + stream = StringIO() + if element.text: + stream.write(element.text) + for sub in element: + unmark_element(sub, stream) + if element.tail: + stream.write(element.tail) + return stream.getvalue() + + +# ------------------- Setup markdown extensions and settings ----------------------- + + +class ImgProcessor(InlineProcessor): + def handleMatch(self, m, data): + el = ET.Element("embed") + el.attrib["embedtype"] = "image" + el.attrib["alt"] = m.group(1) + el.attrib["format"] = "left" + + parsed_image_path = JekyllArticleImporter.get_parsed_file_path(m.group(2)) + image_obj, _ = get_or_create_image( + path=image_params["path"], + file_path=parsed_image_path, + collection=image_params["collection"], + repo_name=image_params["repo_name"], + ) + + if not image_obj: + return None, m.start(0), m.end(0) + + el.attrib["id"] = str(image_obj.pk) + return el, m.start(0), m.end(0) + + +class ImgExtension(Extension): + def extendMarkdown(self, md): + IMG_PATTERN = r"!\[(.*?)\]\((.*?)\)" + md.inlinePatterns.register(ImgProcessor(IMG_PATTERN, md), "img", 175) + + +# Wagtail to portrebuje +# https://docs.wagtail.io/en/stable/extending/rich_text_internals.html#data-format +markdown.serializers.HTML_EMPTY.add("embed") + +Markdown.output_formats["plain"] = unmark_element +plain_md = Markdown(output_format="plain") +plain_md.stripTopLevelTags = False + +html_md = Markdown(extensions=[ImgExtension()]) +params = {} + + +# ------------------------------- Importer class ------------------------------- + + +class JekyllArticleImporter: + def __init__( + self, + article_parent_page_id: int, + article_parent_page_model, + collection_id: int, + url: str, + dry_run: bool, + use_git: bool, + page_model, + ): + self.page_model = page_model + + # Params + self.article_parent_page_id = article_parent_page_id + self.article_parent_page_model = article_parent_page_model + self.collection = Collection.objects.get(id=collection_id) + self.dry_run = dry_run + self.use_git = use_git + self.url = url + + # Computed proprs + import time + + time.sleep(5) + + self.article_parent_page = self.article_parent_page_model.objects.filter( + id=self.article_parent_page_id + ).first() + + self.path, self.repo_name = get_path_and_repo_name(self.url, self.use_git) + self.site = self.article_parent_page.get_site() + self.site_config = get_site_config(self.path) + + self.article_path = self.site_config.get("articlepath", None) + self.permalink = self.site_config.get("permalink", None) + self.title_suffix = get_title_from_site_config(self.site_config) + + # Counters + self.success_counter = 0 + self.exists_counter = 0 + self.skipped_counter = 0 + + self.page_log = "" # output saved on page instance + + # Filling global var for ImgParser + image_params["path"] = self.path + image_params["collection"] = self.collection + image_params["repo_name"] = self.repo_name + image_params["dry_run"] = self.dry_run + + def create_redirects(self, article, match): + y = match.group(1) + m = match.group(2) + d = match.group(3) + slug = match.group(4) + + if self.article_path: # asi jenom Ceske Budejovice + Redirect.objects.get_or_create( + site=self.site, + old_path="/%s/%s/%s/%s/%s" + % (self.article_path, y, m.zfill(2), d.zfill(2), slug), + defaults={"is_permanent": True, "redirect_page": article}, + ) + + elif self.permalink: + Redirect.objects.get_or_create( + site=self.site, + old_path=self.permalink.replace(":title", slug), + defaults={"is_permanent": True, "redirect_page": article}, + ) + + def create_summary_log(self): + """ + Podle (aktuálních) hodnot counterů přidá do self.page_log + různé zprávy pro uživatele. + """ + self.page_log += "==================================\n" + + if self.success_counter: + base_msg = "Úspěšně otestováno" if self.dry_run else "Úspěšně naimportováno" + self.page_log += "{} {} článků\n".format(base_msg, self.success_counter) + + if self.exists_counter: + self.page_log += "z toho {} již existovalo\n".format(self.exists_counter) + + if self.skipped_counter: + self.page_log += "NELZE importovat {} článků\n".format(self.skipped_counter) + + self.article_parent_page.last_import_log = self.page_log + self.article_parent_page.save_revision() + + @staticmethod + def get_parsed_file_path(path: str): + """ + Získá cestu z proměnné v "{{ }}" závorkách + """ + if "{{" in path: + try: + parsed_path = path.split("{{")[1].split("|")[0].split("'")[1] + except IndexError: + parsed_path = path.split("{{")[1].split("|")[0].split('"')[1] + return parsed_path + else: + return path + + @staticmethod + def get_perex(text): + text = re.split(r"^\s*$", text.strip(), flags=re.MULTILINE)[0] + return plain_md.convert(text) + + def handle_content(self, article, meta: dict, html: str): + """ + Převádí naparsované html do stremfieldů. + Pokud meta info článku obsahuje "fancybox" - tzn. v článku je galerie, + tak nejdříve očistíme HTML od for loopů galerie a podtom + v "self.handle_fancybox_gallery" získáme JSON data pro GalleryBlock + z ArticleMixinu. + Pokud článek galerii nemá (drtivá většina), tak uložíme jako + RichText (block type text). + """ + if meta.get("fancybox", None): + # Galerie josu v HTML ve formě dvou "{% for" tagů, + # ty potřebujeme zahodit z texxtu + html = re.sub( + "{% for(.*?){% for(.*?){% endfor %}(.*?){% endfor %}", + "", + html, + flags=re.DOTALL, + ) + + if "{% for" in html: # pro případ, že by byl jenom jeden + html = re.sub("{% for(.*?){% endfor %}", "", html, flags=re.DOTALL) + + text_data_dict = {"type": "text", "value": html} + gallery_data_dict = self.handle_fancybox_gallery(article, meta) + article.content = json.dumps([text_data_dict, gallery_data_dict]) + else: + text_data_dict = {"type": "text", "value": html} + article.content = json.dumps([text_data_dict]) + + def handle_fancybox_gallery(self, article, meta: dict) -> dict: + for gallery in meta["fancybox"]: + # gallery by měl být dict s name a img + gallery_name = gallery.get("name", "") + gallery_images = gallery.get("img", []) or [] + + if not len(gallery_images): + self.page_log += ( + "{} Nepodařilo se získat obrázky v galerii {}\n".format( + article.title, gallery_name + ) + ) + continue + + wagtail_image_list = [] + for img in gallery_images: + if not img.get("src"): + self.page_log += ( + '{}: Obrázek {} v galerii namá atribut "src" \n'.format( + article.title, img.get("title", "") + ) + ) + continue + + wagtail_image, log_message = get_or_create_image( + self.path, img["src"], self.collection, self.repo_name + ) + wagtail_image_list.append(wagtail_image) + + if log_message: + self.page_log += "{}: {}".format(article.title, log_message) + + data = { + "type": "gallery", + "value": {"gallery_items": []}, + "id": str(uuid4()), + } + + if not wagtail_image_list: + return data + + for image in wagtail_image_list: + data["value"]["gallery_items"].append( + {"type": "item", "value": image.id, "id": str(uuid4())} + ) + + return data + + @staticmethod + def handle_meta_is_str(meta: str) -> dict: + """ + Snaží se vyřešit situaci, že meta se nenaparsovala na dict, ale na string, + kde je sice klíč:hodnota, ale další klíč následuje za mezerou po předchozí + hodnotě. + Iteruju teda přes rozesekaný string přes dvojtečky, ale každá value kromě + poslední (viz if idx == len(string_parts) - 2) má za poslední mezerou klíč + pro další hodnotu. Takže položku z další iterace splitnu přes mezery, + spojím všechny kromě poslední do value a tu přiřadím klíči z aktuální iterace. + Poslední položka iterace už je samotná value, takže tam handluju jinak. + Protože sahám na +1, tak hlídám číslo iterace pro přeskočení poslední (kde + už je položka iterace pouze value bez key, takže jí beru + v před-předposlední...). + """ + logger.info( + "Meta se neparsuje na dict, ale na str - zkouším složitější parse", + extra={"article_meta": meta}, + ) + string_parts = meta.split(":") + meta_dict = {} + for idx, part in enumerate(string_parts): + if idx == len(string_parts) - 1: + break + + key = part.split()[-1] + if idx == len(string_parts) - 2: + value = string_parts[idx + 1] + else: + value = " ".join(string_parts[idx + 1].split()[0:-1]) + meta_dict.update({key: value}) + return meta_dict + + def handle_tags(self, article, meta): + article.tags.clear() + tags = meta.get("tags", []) or [] # někdy jsou tags None + + if type(tags) == str: # někdy jsou tags str + if "\n" in tags: + tags = tags.split("\n") + elif " " in tags: + tags = tags.split() + else: + tags = [tags] + + for tag_name in tags: + try: + article.tags.add(tag_name) + except ValueError: + try: + article.tags.add(str(tag_name)) + except Exception: + msg = "Nelze importovat tag" + logger.warning(msg, extra={"tag": tag_name}) + self.page_log += "{} - {}\n".format(msg, tag_name) + + article.save_revision() + + def import_post(self, file_path): + with open(os.path.join(self.path, file_path), "rt") as f: + r = re.split(r"^---\s*$", f.read(), maxsplit=3, flags=re.MULTILINE) + try: + meta = yaml.safe_load(r[1].replace("\t", "")) + except (ScannerError, ValueError, IndexError): + msg = "Nelze importovat článek - neparsovatelný YAML" + logger.warning(msg, extra={"file_path": file_path}) + self.page_log += "{} - {}\n".format(msg, file_path) + self.skipped_counter += 1 + return None + + if isinstance(meta, str): # pokud se špatně naparsovalo meta (není dict) + meta = self.handle_meta_is_str(meta) + + try: + title = meta["title"] + except TypeError: + msg = "Nelze importovat článek - nepodařilo se získat title" + logger.warning(msg, extra={"article_meta": meta}) + self.page_log += "{} - {}\n".format(msg, meta) + self.skipped_counter += 1 + return None + + try: + article = ( + self.article_parent_page.get_descendants().get(title=title).specific + ) + self.exists_counter += 1 + except (Page.DoesNotExist, Page.MultipleObjectsReturned): + article = self.page_model() + + md = r[2] # "raw" markdown z postu + html = html_md.convert(md) + # očistíme o případné nechtěné HTML tagy + html = bleach.clean( + html, tags=list(bleach.sanitizer.ALLOWED_TAGS) + ["div", "p"] + ) + + article.perex = self.get_perex(md) or "..." + self.handle_content(article, meta, html) + + if meta.get("date", None): + meta_date = meta["date"] + + if isinstance(meta_date, date): + article.timestamp = datetime( + meta_date.year, meta_date.month, meta_date.day + ).replace(tzinfo=datetime_timezone.utc) + else: + parsed_date = meta["date"].split()[0] + + if parsed_date: + article.timestamp = datetime.strptime( + parsed_date[0:10], "%Y-%m-%d" + ).replace(tzinfo=datetime_timezone.utc) + else: + log_message = ( + "Článek {} má nesprávné datum: {}, nastavuji dnešní".format( + title, meta["date"] + ) + ) + + logger.warning(log_message) + self.page_log += "{} - {}\n".format(log_message, meta) + + article.timestamp = timestamp.now() + else: + filename = os.path.basename(file_path) + + parsed_date = "-".join(filename.split("-")[:3]) + + if parsed_date: + article.timestamp = datetime.strptime(parsed_date, "%Y-%m-%d").replace( + tzinfo=datetime_timezone.utc + ) + else: + log_message = ( + "Článek {} má nesprávné datum: {}, nastavuji dnešní".format( + title, meta["date"] + ) + ) + + logger.warning(log_message) + self.page_log += "{} - {}\n".format(log_message, meta) + + article.title = meta["title"] + article.author = meta.get("author", "Česká pirátská strana") + + article.seo_title = article.title + self.title_suffix + article.search_description = meta.get("description", "") + + if meta.get("image", None): + article.image, log_message = get_or_create_image( + self.path, meta["image"], self.collection, self.repo_name + ) + if log_message: + self.page_log += "{}: {}".format(article.title, log_message) + + if self.dry_run: + return article + + try: + if not article.id: + self.article_parent_page.add_child(instance=article) + + logger.info("Vytvářím článek: %s" % article) + rev = article.save_revision() + + if meta.get("published", True): + rev.publish() + except Exception as e: + msg = "Nelze uložit importovaný článek" + logger.warning( + msg, + extra={"article_title": article.title, "exception": e}, + ) + self.page_log += "{} - {} - {}\n".format(msg, article.title, e) + self.skipped_counter += 1 + return article + + self.handle_tags(article, meta) + + self.success_counter += 1 + return article + + def perform_import(self) -> "List[dict]": + """ + Projde adresář článků a pokusí se zprocesovat Markdown do article. + Vrací list dict pro django messages (klíč levelu, text). + Začne vyčištěním logu. + """ + + try: + self.article_parent_page.last_import_log = "" + self.article_parent_page.save() + + msg = "{} Import započat".format(datetime.now()) + logger.info(msg) + self.page_log += "{}\n\n".format(msg) + + for file_name in os.listdir(os.path.join(self.path, POSTS_DIR)): + # Případ podsložek (typicky po jednotlivých letech) + if os.path.isdir(os.path.join(self.path, POSTS_DIR, file_name)): + posts_sub_folder = os.path.join(self.path, POSTS_DIR, file_name) + for sub_file_name in os.listdir(posts_sub_folder): + file_path = os.path.join(posts_sub_folder, sub_file_name) + self.process_article(sub_file_name, file_path) + # Případ všech článků v jedné složce + else: + file_path = os.path.join(POSTS_DIR, file_name) + self.process_article(file_name, file_path) + + msg = "{} Import ukončen".format(datetime.now()) + logger.info(msg) + self.page_log += "{}\n\n".format(msg) + + self.create_summary_log() + finally: + import_lock_filename = f"/tmp/.{self.article_parent_page_id}.import-lock" + + if os.path.exists(import_lock_filename): + os.remove(import_lock_filename) + + def process_article(self, file_name: str, file_path: str): + match = re.match(r"(\d*)-(\d*)-(\d*)-(.*)\.(.*)", file_name) + if match: + ext = match.group(5) + + if ext == "md": + article = self.import_post(file_path) + + if self.dry_run or not article: + return + + try: + article.save() # ujistím se, že mám "redirect_page" pro Redirect uloženou + self.create_redirects(article, match) + except Exception as e: + msg = "{}: nelze uložit - {}".format(article.title, e) + logger.error(msg) + self.page_log += "{}\n".format(msg) + self.skipped_counter += 1 + else: + msg = "Nepodporovaná přípona souboru: %s" % ext + logger.warning(msg) + self.page_log += "{}\n".format(msg) + self.skipped_counter += 1 + else: + msg = "Přeskočeno: %s" % file_name + logger.warning(msg) + self.page_log += "{}\n".format(msg) + self.skipped_counter += 1 diff --git a/shared_legacy/models.py b/shared_legacy/models.py new file mode 100644 index 0000000000000000000000000000000000000000..90da1ea5a5448d3b0584ca0f310e15bceda02aae --- /dev/null +++ b/shared_legacy/models.py @@ -0,0 +1,987 @@ +import logging +from collections import namedtuple +from enum import Enum +from functools import reduce +from urllib.parse import quote + +from django.apps import apps +from django.core.paginator import Paginator +from django.db import models +from django.db.models import Q +from django.db.models.expressions import F, Subquery, Value +from django.http import Http404 +from django.utils import timezone +from modelcluster.fields import ParentalKey, ParentalManyToManyField +from taggit.models import ItemBase, Tag, TagBase +from wagtail.admin.panels import FieldPanel, MultiFieldPanel, PublishingPanel +from wagtail.documents.models import Document +from wagtail.fields import StreamField +from wagtail.models import Page +from wagtail.search import index + +from shared.blocks import ( + DEFAULT_CONTENT_BLOCKS, + FooterLinksBlock, + MenuItemBlock, + MenuParentBlock, +) + +logger = logging.getLogger(__name__) + + +class SubpageMixin: + """Must be used in class definition before MetadataPageMixin!""" + + @property + def root_page(self): + if not hasattr(self, "_root_page"): + # vypada to hackove ale lze takto pouzit: dle dokumentace get_ancestors + # vraci stranky v poradi od rootu, tedy domovska stranka je druha v poradi + self._root_page = self.get_ancestors().specific()[1] + return self._root_page + + def get_meta_image(self): + return self.search_image or self.root_page.get_meta_image() + + +class ArticleMixin(models.Model): + """ + Common fields for articles. + + Must be used in class definition before MetadataPageMixin! + + If you want to tag articles, add tags as `tags` field in article page model. + """ + + ### FIELDS + + content = StreamField( + DEFAULT_CONTENT_BLOCKS, + verbose_name="Článek", + blank=True, + use_json_field=True, + ) + timestamp = models.DateTimeField("Datum a čas", default=timezone.now) + perex = models.TextField("perex") + author = models.CharField("autor", max_length=250, blank=True, null=True) + image = models.ForeignKey( + "wagtailimages.Image", + on_delete=models.PROTECT, + blank=True, + null=True, + verbose_name="obrázek", + ) + """ + Hidden field describing the source of shared articles, can be of values "district", "uniweb", "elections" + or "main", depending on from which type of site this article was shared from + """ + shared_type = models.TextField(null=True, blank=True) + """ + Hidden field which links to a Page model of ArticlesMixin page to which this article was shared. + Example: DistrictArticlesPage has shared tag "main", which this article shares as well -> shared_from will contain a reference to DistrictArticlesPage + """ + shared_from = models.ForeignKey( + Page, + null=True, + blank=True, + related_name="+", + on_delete=models.PROTECT, + ) + + search_fields = Page.search_fields + [ + index.SearchField("title"), + index.SearchField("author"), + index.SearchField("perex"), + index.SearchField("content"), + ] + + ### PANELS + + content_panels = Page.content_panels + [ + FieldPanel("timestamp"), + FieldPanel("perex"), + FieldPanel("content"), + FieldPanel("author"), + FieldPanel("image"), + ] + + settings_panels = [PublishingPanel()] + + class Meta: + abstract = True + + @property + def get_original_url(self): + return self.full_url + + @property + def get_no_index(self): + """ + Indicates that a link to self should contain rel="noindex" + """ + return self.shared_from is not None + + @property + def get_rel(self): + """ + Returns "rel" property for a link to this article + """ + return "rel=noindex" if self.get_no_index else "" + + @property + def date(self): + """ + Returns the date of this article's timestamp. + """ + + return self.timestamp.date() + + def get_url(self, request=None): + # 'request' kwarg for Wagtail compatibility + + if self.shared_from is not None: + return f"{self.shared_from.url}sdilene?sdilene={quote(self.slug)}" + return self.url + + def get_full_url(self, request=None): + # 'request' kwarg for Wagtail compatibility + + if self.shared_from is not None: + return f"{self.shared_from.full_url}sdilene?sdilene={quote(self.slug)}" + return self.full_url + + @property + def articles_page(self): + """ + Returns articles page on which this article is displayed + """ + return ( + self.shared_from.get_specific() + if self.shared_from + else self.get_parent().get_specific() + ) + + @property + def root_page(self): + """ + Returns root page of article, or a root page of Articles page to which this article was shared + """ + if self.shared_from is None: + return self.get_parent().get_ancestors().specific().live().last() + + return self.shared_from.get_specific().root_page + + @property + def get_tags(self): + """ + Returns all tags, including tags of shared articles from another site + """ + if self.shared_from is not None: + return self.articles_page.search_tags_by_unioned_id_query([self]) + return self.tags.all() + + @classmethod + def has_tags(cls): + try: + cls._meta.get_field("tags") + except models.FieldDoesNotExist: + return False + return True + + def get_meta_image(self): + if hasattr(self, "search_image") and self.search_image: + return self.search_image + return self.image + + def get_meta_description(self): + if hasattr(self, "search_description") and self.search_description: + return self.search_description + return self.perex + + +class MenuMixin(Page): + menu = StreamField( + [("menu_item", MenuItemBlock()), ("menu_parent", MenuParentBlock())], + verbose_name="Menu", + blank=True, + use_json_field=True, + ) + + menu_panels = [ + MultiFieldPanel( + [ + FieldPanel("menu"), + ], + heading="Nastavení menu", + ), + ] + + class Meta: + abstract = True + + +class ExtendedMetadataHomePageMixin(models.Model): + """Use for site home page to define metadata title suffix. + + Must be used in class definition before MetadataPageMixin! + """ + + title_suffix = models.CharField( + "Přípona titulku stránky", + max_length=100, + blank=True, + null=True, + help_text="Umožňuje přidat příponu k základnímu titulku stránky. Pokud " + "je např. titulek stránky pojmenovaný 'Kontakt' a do přípony vyplníte " + "'MS Pardubice | Piráti', výsledný titulek bude " + "'Kontakt | MS Pardubice | Piráti'. Pokud příponu nevyplníte, použije " + "se název webu.", + ) + + class Meta: + abstract = True + + def get_meta_title_suffix(self): + if self.title_suffix: + return self.title_suffix + + if hasattr(super(), "get_meta_title"): + return super().get_meta_title() + + return self.get_site().site_name + + def get_meta_title(self): + title = super().get_meta_title() + suffix = self.get_meta_title_suffix() + + # Covers scenario when title_suffix is not set and evaluates to super().get_meta_title() value. + # Rather than having MS Pardubice | MS Pardubice, just use MS Pardubice alone. + if title != suffix: + return f"{super().get_meta_title()} | {self.get_meta_title_suffix()}" + + return title + + +class ExtendedMetadataPageMixin(models.Model): + """Use for pages except for home page to use shared metadata title suffix. + + There are few rules on how to use this: + + - Do not forget to list ExtendedMetadataHomePageMixin among ancestors of the related HomePage class. + - Must be used in class definition before MetadataPageMixin. + - Expects SubpageMixin or equivalent exposing `root_page` property to be used for the page too. + """ + + class Meta: + abstract = True + + def get_meta_title_suffix(self): + if not hasattr(self, "root_page"): + logger.warning( + "Using `ExtendedMetadataPageMixin` without `SubpageMixin` for %s", + repr(self), + ) + return None + + if not hasattr(self.root_page, "get_meta_title_suffix"): + logger.warning( + "Using `ExtendedMetadataPageMixin` without `ExtendedMetadataHomePageMixin` on the root page for %s", + repr(self), + ) + return None + + return self.root_page.get_meta_title_suffix() + + def get_meta_title(self): + suffix = self.get_meta_title_suffix() + + if not suffix: + return super().get_meta_title() + + return f"{super().get_meta_title()} | {self.get_meta_title_suffix()}" + + +class FooterMixin(models.Model): + footer_links = StreamField( + [ + ("footer_links", FooterLinksBlock()), + ], + verbose_name="Odkazy v zápatí webu", + blank=True, + max_num=1, + use_json_field=True, + ) + + class Meta: + abstract = True + + +class SharedTag(TagBase): + class Meta: + verbose_name = "sdílený tag" + verbose_name_plural = "sdílené tagy" + + +class SharedArticlesPageType(Enum): + DISTRICT = "district" + UNIWEB = "uniweb" + MAIN = "main" + ELECTIONS = "elections" + + +class ArticlesMixin: + def get_shared_tags(self): + """ + Relies on property articles_page being present within the child page, returns shared tags field + """ + return ( + self.articles_page.shared_tags + if self.articles_page is not None + else SharedTag.objects.none() + ) + + def merge_dict(self, aDict: dict, bDict: dict): + """ + Utility for efficiently merging dict objects in lambda queries + """ + aDict.update(bDict) + return aDict + + def determine_page_type(self): + """ + Determines which article type to use based on the module from which this method is run from + """ + if self._meta.app_label == "district": + return SharedArticlesPageType.DISTRICT + elif self._meta.app_label == "uniweb": + return SharedArticlesPageType.UNIWEB + elif self._meta.app_label == "main": + return SharedArticlesPageType.MAIN + elif self._meta.app_label == "elections": + return SharedArticlesPageType.ELECTIONS + + def evaluate_page_query(self, results): + """ + Utility for merging and materializing articles query to prevent duplicities. + Prefers original articles as opposed to shared ones (if we share an article to the same web that it originates from) + """ + return list( + reduce( + lambda unique, item: unique + if item["union_page_ptr_id"] in unique + and "union_shared_from_id" in item + and item["union_shared_from_id"] is not None + else self.merge_dict(unique, {item["union_page_ptr_id"]: item}), + list(results), + {}, + ).values() + ) + + def unique_articles_by_id(self, results): + """ + Utility creating an unique results list with preference for non-shared articles + Prefers original articles as opposed to shared ones (if we share an article to the same web that it originates from) + """ + return list( + reduce( + lambda unique, item: unique + if item.page_ptr.id in unique and item.shared_from is not None + else self.merge_dict(unique, {item.page_ptr.id: item}), + results, + {}, + ).values() + ) + + def create_base_shared_query(self, query, original_query): + """ + Returns a query filtered by shared tags, + Filters out page ids that would be duplicates of original query (shared articles dispayed on the same page) + """ + filtered_query = ( + query.filter( + ~Q(page_ptr_id__in=Subquery(original_query.values("page_ptr_id"))), + shared_tags__slug__in=self.get_shared_tags().values_list( + "slug", flat=True + ), + ) + if isinstance(original_query, models.QuerySet) + else ( + query.filter( + ~Q( + page_ptr_id__in=list( + map(lambda article: article.pk, original_query) + ) + ), + shared_tags__slug__in=self.get_shared_tags().values_list( + "slug", flat=True + ), + ) + if original_query is not None + else query.filter( + shared_tags__slug__in=self.get_shared_tags().values_list( + "slug", flat=True + ), + ) + ) + ) + return filtered_query.live().specific() + + def append_all_shared_articles_query( + self, + previous_query: models.QuerySet | None = None, + custom_article_query=None, + ): + """ + Creates articles query with shared articles as well as articles pre-selected by previous_query parameter + Returns an unionized query with .values() being applied on it. Unionized queries cannot be annotated or filtered. + If you wish to run annotation or additional filters, use custom_article_query param. This parameter accepts lambdas with + two parameters: shared article query (before unionizing) and shared articles enum, denoting the origin of shared articles + """ + # To prevent circular deps, we get class models during runtime + DistrictArticlePage = apps.get_model(app_label="district.DistrictArticlePage") + UniwebArticlePage = apps.get_model(app_label="uniweb.UniwebArticlePage") + MainArticlePage = apps.get_model(app_label="main.MainArticlePage") + ElectionsArticlePage = apps.get_model( + app_label="elections.ElectionsArticlePage" + ) + + page_type = self.determine_page_type() + + # In order to balance union() requirements for tables with same-fields only, we are adding null fields using values(). These values must be in correct order + main_meta_fields = MainArticlePage._meta.fields + elections_meta_fields = ElectionsArticlePage._meta.fields + district_meta_fields = DistrictArticlePage._meta.fields + uniweb_meta_fields = UniwebArticlePage._meta.fields + + # dictionary of class types of fields, assumes that a field cannot have a different type in each web + fields_dict = reduce( + lambda class_dict, field: self.merge_dict( + class_dict, {f"union_{field.column}": field} + ), + [ + *main_meta_fields, + *elections_meta_fields, + *district_meta_fields, + *uniweb_meta_fields, + ], + {}, + ) + + fields_reducer = ( + lambda assigned, field: assigned + if field.column == "shared_from_id" or field.column == "shared_type" + else self.merge_dict(assigned, {f"union_{field.column}": F(field.column)}) + ) + setup_fields_order = lambda orderBy, orderFrom: reduce( + lambda orderTo, field: self.merge_dict(orderTo, {field: orderFrom[field]}), + orderBy.keys(), + {}, + ) + + district_only_fields = reduce(fields_reducer, district_meta_fields, {}) + uniweb_only_fields = reduce(fields_reducer, uniweb_meta_fields, {}) + main_only_fields = reduce(fields_reducer, main_meta_fields, {}) + elections_only_fields = reduce(fields_reducer, elections_meta_fields, {}) + + key_fields_default_values = { + "union_thumb_image_id": F("search_image_id"), + "union_is_black": Value(False, models.BooleanField()), + "union_article_type": Value(2, models.PositiveSmallIntegerField()), + } + + create_complementary_field = lambda key: ( + key_fields_default_values[key] + if key in key_fields_default_values + else ( + # any type will suffice in the foreign key + Value( + None, + models.ForeignKey( + DistrictArticlePage, blank=True, on_delete=models.SET_NULL + ), + ) + if isinstance(fields_dict[key], models.ForeignKey) + else Value(None, fields_dict[key].__class__()) + ) + ) + + reduce_complementary_fields = lambda complementary, item, notIn: ( + self.merge_dict( + complementary, {item[0]: create_complementary_field(item[0])} + ) + if item[0] not in notIn + else complementary + ) + + create_complementary_fields = lambda notIn, fromFields: reduce( + lambda complementary, item: reduce_complementary_fields( + complementary, item, dict(notIn) + ), + reduce( + lambda sources, source: sources + list(source.items()), fromFields, [] + ), + {}, + ) + + district_complementary_fields = create_complementary_fields( + district_only_fields, + [uniweb_only_fields, main_only_fields, elections_only_fields], + ) + uniweb_complementary_fields = create_complementary_fields( + uniweb_only_fields, + [district_only_fields, main_only_fields, elections_only_fields], + ) + main_complementary_fields = create_complementary_fields( + main_only_fields, + [uniweb_only_fields, district_only_fields, elections_only_fields], + ) + elections_complementary_fields = create_complementary_fields( + elections_only_fields, + [uniweb_only_fields, district_only_fields, main_only_fields], + ) + + main_fields = main_only_fields | main_complementary_fields + + elections_fields = setup_fields_order( + main_fields, + elections_only_fields | elections_complementary_fields, + ) + + district_fields = setup_fields_order( + main_fields, + district_only_fields | district_complementary_fields, + ) + + uniweb_fields = setup_fields_order( + main_fields, + uniweb_only_fields | uniweb_complementary_fields, + ) + + district_article_query: models.QuerySet = DistrictArticlePage.objects + uniweb_article_query: models.QuerySet = UniwebArticlePage.objects + main_article_query: models.QuerySet = MainArticlePage.objects + elections_article_query: models.QuerySet = ElectionsArticlePage.objects + + apply_additional_filter = ( + lambda query: custom_article_query(query) + if custom_article_query is not None + else query + ) + + create_query_by_slug = lambda query: apply_additional_filter( + self.create_base_shared_query(query, previous_query) + ) + + district_by_slug = create_query_by_slug(district_article_query) + uniweb_by_slug = create_query_by_slug(uniweb_article_query) + main_by_slug = create_query_by_slug(main_article_query) + elections_by_slug = create_query_by_slug(elections_article_query) + + shared_field = Value( + self.page_ptr.id if hasattr(self, "page_ptr") else None, # preview fix + output_field=models.ForeignKey( + Page, null=True, blank=True, related_name="+", on_delete=models.PROTECT + ), + ) + + main_by_values = main_by_slug.values( + **main_fields, + union_shared_from_id=shared_field, + union_shared_type=Value( + SharedArticlesPageType.MAIN.value, output_field=models.TextField() + ), + ) + uniweb_by_values = uniweb_by_slug.values( + **uniweb_fields, + union_shared_from_id=shared_field, + union_shared_type=Value( + SharedArticlesPageType.UNIWEB.value, output_field=models.TextField() + ), + ) + district_by_values = district_by_slug.values( + **district_fields, + union_shared_from_id=shared_field, + union_shared_type=Value( + SharedArticlesPageType.DISTRICT.value, output_field=models.TextField() + ), + ) + elections_by_values = elections_by_slug.values( + **elections_fields, + union_shared_from_id=shared_field, + union_shared_type=Value( + SharedArticlesPageType.ELECTIONS.value, output_field=models.TextField() + ), + ) + + empty_shared_field = Value( + None, + output_field=models.ForeignKey( + Page, null=True, blank=True, related_name="+", on_delete=models.PROTECT + ), + ) + + empty_shared_type = Value(None, output_field=models.TextField()) + + if previous_query is not None: + prepared_query = previous_query.live().specific() + + if page_type == SharedArticlesPageType.DISTRICT: + prepared_query = prepared_query.values( + **district_fields, + union_shared_from_id=empty_shared_field, + union_shared_type=empty_shared_type, + ) + elif page_type == SharedArticlesPageType.UNIWEB: + prepared_query = prepared_query.values( + **uniweb_fields, + union_shared_from_id=empty_shared_field, + union_shared_type=empty_shared_type, + ) + elif page_type == SharedArticlesPageType.MAIN: + prepared_query = prepared_query.values( + **main_fields, + union_shared_from_id=empty_shared_field, + union_shared_type=empty_shared_type, + ) + elif page_type == SharedArticlesPageType.ELECTIONS: + prepared_query = prepared_query.values( + **elections_fields, + union_shared_from_id=empty_shared_field, + union_shared_type=empty_shared_type, + ) + + if self.get_shared_tags().count() == 0: + return prepared_query.order_by("-union_timestamp") + + return ( + prepared_query.union(main_by_values) + .union(uniweb_by_values) + .union(district_by_values) + .union(elections_by_values) + .order_by("-union_timestamp") + ) + else: + return ( + main_by_values.union(uniweb_by_values) + .union(district_by_values) + .union(elections_by_values) + .order_by("-union_timestamp") + ) + + def materialize_shared_articles_query(self, results): + """ + Corresponding method to append_all_shared_articles_query. + Materializes article query as article type corresponding to the module from which + this function is run. Put query from append_all_shared_articles_query as results parameter. + """ + # To prevent circular deps, we get class models during runtime + page_type = self.determine_page_type() + + DistrictArticlePage = apps.get_model(app_label="district.DistrictArticlePage") + UniwebArticlePage = apps.get_model(app_label="uniweb.UniwebArticlePage") + MainArticlePage = apps.get_model(app_label="main.MainArticlePage") + ElectionsArticlePage = apps.get_model( + app_label="elections.ElectionsArticlePage" + ) + + main_meta_fields = MainArticlePage._meta.fields + elections_meta_fields = ElectionsArticlePage._meta.fields + district_meta_fields = DistrictArticlePage._meta.fields + uniweb_meta_fields = UniwebArticlePage._meta.fields + + assign_to_model = lambda unioned: lambda assignment, field: self.merge_dict( + assignment, {field.column: unioned[f"union_{field.column}"]} + ) + + evaluated = self.evaluate_page_query( + results + ) # We MUST eval here since we can't turn values() into concrete class instances in QuerySet after union + + if page_type == SharedArticlesPageType.DISTRICT: + return list( + map( + lambda unioned: DistrictArticlePage( + **reduce(assign_to_model(unioned), district_meta_fields, {}) + ), + evaluated, + ) + ) + + if page_type == SharedArticlesPageType.UNIWEB: + return list( + map( + lambda unioned: UniwebArticlePage( + **reduce(assign_to_model(unioned), uniweb_meta_fields, {}) + ), + evaluated, + ) + ) + + if page_type == SharedArticlesPageType.MAIN: + return list( + map( + lambda unioned: MainArticlePage( + **reduce(assign_to_model(unioned), main_meta_fields, {}) + ), + evaluated, + ) + ) + + if page_type == SharedArticlesPageType.ELECTIONS: + return list( + map( + lambda unioned: ElectionsArticlePage( + **reduce(assign_to_model(unioned), elections_meta_fields, {}) + ), + evaluated, + ) + ) + + def get_page_with_shared_articles( + self, query: models.QuerySet, page_size: int, page: int + ): + """ + Returns Page object whose property object_list has been materialized, uses Paginator internally + """ + paginator = Paginator( + query, + page_size, + ) + paginator_page = paginator.get_page(page) + paginator_page.object_list = self.materialize_shared_articles_query( + paginator_page.object_list + ) + return paginator_page + + def get_article_page_by_slug(self, slug: str): + """ + Filters articles + shared articles based on "tag" field, + returns first result sorted by date + """ + articles = self.append_all_shared_articles_query( + custom_article_query=lambda query: query.filter(slug=slug) + )[:1] + + if len(articles) == 0: + raise Http404 + + return self.materialize_shared_articles_query(articles)[0] + + def setup_article_page_context(self, request): + """ + Use this method to setup page context for shared article at /sdilene + """ + slug = request.GET.get("sdilene", "") + return self.get_article_page_by_slug(slug).serve(request) + + def materialize_articles_as_id_only(self, articles): + """ + Returns a temporary article class with pk, shared and date as the only properties. + Useful when optimizing large article queries + """ + TmpArticle = namedtuple("TemporaryArticle", field_names=["page_ptr"]) + TmpPrimaryKey = namedtuple("TemporaryPk", field_names=["id"]) + return list( + map( + lambda unioned: TmpArticle( + page_ptr=TmpPrimaryKey(id=unioned["union_page_ptr_id"]), + ), + articles.values("union_page_ptr_id", "union_timestamp"), + ) + ) + + def search_tags_with_count(self, articles: list): + """ + Returns a list of tags based on article ids with each count + """ + if isinstance(articles, models.QuerySet): + articles = self.materialize_articles_as_id_only(articles) + + article_ids = list(map(lambda article: article.page_ptr.id, articles)) + tag_list = list( + Tag.objects.filter( + district_districtarticletag_items__content_object_id__in=article_ids + ) + .union( + Tag.objects.filter( + main_mainarticletag_items__content_object_id__in=article_ids + ), + Tag.objects.filter( + uniweb_uniwebarticletag_items__content_object_id__in=article_ids + ), + Tag.objects.filter( + elections_electionsarticletag_items__content_object_id__in=article_ids + ), + all=True, + ) + .order_by("slug") + .values() + ) + + tag_aggregate = reduce( + lambda aggregate, tag: self.merge_dict( + aggregate, + {tag["slug"]: aggregate[tag["slug"]] + 1} + if tag["slug"] in aggregate + else {tag["slug"]: 1}, + ), + tag_list, + {}, + ) + already_present = {} + unique_tags = [] + for tag in tag_list: + tag["count"] = tag_aggregate[tag["slug"]] + if tag["slug"] not in already_present: + unique_tags.append(tag) + already_present[tag["slug"]] = True + + return unique_tags + + def search_tags_by_unioned_id_query( + self, + articles: list, + ): + """ + Search tags based on article query or list of articles. + Returns a list of Tag objects, unique and sorted by slug + """ + if isinstance(articles, models.QuerySet): + articles = self.materialize_articles_as_id_only(articles) + + article_ids = list(map(lambda article: article.page_ptr.id, articles)) + tag_query = Tag.objects.filter( + Q(district_districtarticletag_items__content_object_id__in=article_ids) + | Q(main_mainarticletag_items__content_object_id__in=article_ids) + | Q(uniweb_uniwebarticletag_items__content_object_id__in=article_ids) + | Q(elections_electionsarticletag_items__content_object_id__in=article_ids) + ) + + return tag_query.order_by("slug").distinct("slug") + + def search_articles( + self, + query: str, + page_size: int, + page: int, + previous_query: models.QuerySet | None = None, + ): + """ + Uses wagtail search to lookup articles based on a phrase. Accepts a string phrase query + a previous_query param, which can be any articles query that you want to filter by. + Returns a list of articles with models based on from which module is this method run. + To optimize search results we use paginator internally + """ + DistrictArticlePage = apps.get_model(app_label="district.DistrictArticlePage") + UniwebArticlePage = apps.get_model(app_label="uniweb.UniwebArticlePage") + MainArticlePage = apps.get_model(app_label="main.MainArticlePage") + ElectionsArticlePage = apps.get_model( + app_label="elections.ElectionsArticlePage" + ) + + # .search() runs annotate, so its impossible to search after .union() + # .search() also returns an object that cannot be broken down by .values() + # therefore, shared search has to happen here + search_factory = lambda search_query: list( + search_query.search(query).annotate_score("score") + ) + current_query = search_factory(previous_query) + shared_district_search = search_factory( + self.create_base_shared_query(DistrictArticlePage.objects, current_query) + ) + shared_uniweb_search = search_factory( + self.create_base_shared_query(UniwebArticlePage.objects, current_query) + ) + shared_main_search = search_factory( + self.create_base_shared_query(MainArticlePage.objects, current_query) + ) + shared_elections_search = search_factory( + self.create_base_shared_query(ElectionsArticlePage.objects, current_query) + ) + + # .search is not lazy either, making this the best optimized query possible AFAIK + sorted = self.unique_articles_by_id( + current_query + + shared_district_search + + shared_uniweb_search + + shared_main_search + + shared_elections_search + ) + sorted.sort(key=lambda item: item.score) + sorted = Paginator(sorted, page_size).get_page(page) + sorted_ids = list(map(lambda article: article.pk, sorted)) + + converted_query = self.materialize_shared_articles_query( + self.append_all_shared_articles_query( + previous_query.filter(page_ptr_id__in=sorted_ids), + custom_article_query=lambda query: query.filter( + page_ptr_id__in=sorted_ids + ), + ) + ) + converted_query_map = reduce( + lambda map, article: self.merge_dict(map, {article.pk: article}), + converted_query, + {}, + ) + sorted_final_result = [] + for sorted_result in sorted: + sorted_final_result.append(converted_query_map[sorted_result.pk]) + + return sorted_final_result + + def filter_by_tag_name(self, tag: str): + """ + Returns a dict which can be used to filter articles based on tag name + """ + return { + "tags__name": tag, + } + + class Meta: + abstract = True + + +class ArticlesPageMixin(ArticlesMixin, models.Model): + def get_shared_tags(self): + """ + Overrides get_shared_tags from ArticlesMixin, returns shared tags + """ + return self.shared_tags + + shared_tags = ParentalManyToManyField( + "shared.SharedTag", + verbose_name="Výběr tagů pro články sdílené mezi sítěmi", + help_text="Pro výběr jednoho tagu klikněte na tag a uložte nebo publikujte stránku. Pro výběr více tagů využijte podržte Ctrl a vyberte příslušné tagy.", + blank=True, + ) + + content_panels = Page.content_panels + [FieldPanel("shared_tags")] + + class Meta: + abstract = True + + +class PdfPageMixin(models.Model): + """ + Use this mixin in a page model for parsing PDFs + """ + + pdf_file = models.ForeignKey( + Document, + null=True, + blank=False, + on_delete=models.SET_NULL, + related_name="+", + verbose_name="PDF dokument", + ) + + content_panels = [ + FieldPanel("pdf_file"), + ] + + class Meta: + abstract = True + + @property + def pdf_url(self): + return self.pdf_file.url diff --git a/shared/static/shared/css/helpers.css b/shared_legacy/static/shared/css/helpers.css similarity index 100% rename from shared/static/shared/css/helpers.css rename to shared_legacy/static/shared/css/helpers.css diff --git a/shared/static/shared/favicon/favicon-128.png b/shared_legacy/static/shared/favicon/favicon-128.png similarity index 100% rename from shared/static/shared/favicon/favicon-128.png rename to shared_legacy/static/shared/favicon/favicon-128.png diff --git a/shared/static/shared/favicon/favicon-16.png b/shared_legacy/static/shared/favicon/favicon-16.png similarity index 100% rename from shared/static/shared/favicon/favicon-16.png rename to shared_legacy/static/shared/favicon/favicon-16.png diff --git a/shared/static/shared/favicon/favicon-196.png b/shared_legacy/static/shared/favicon/favicon-196.png similarity index 100% rename from shared/static/shared/favicon/favicon-196.png rename to shared_legacy/static/shared/favicon/favicon-196.png diff --git a/shared/static/shared/favicon/favicon-32.png b/shared_legacy/static/shared/favicon/favicon-32.png similarity index 100% rename from shared/static/shared/favicon/favicon-32.png rename to shared_legacy/static/shared/favicon/favicon-32.png diff --git a/shared/static/shared/favicon/favicon-96.png b/shared_legacy/static/shared/favicon/favicon-96.png similarity index 100% rename from shared/static/shared/favicon/favicon-96.png rename to shared_legacy/static/shared/favicon/favicon-96.png diff --git a/shared/static/shared/img/flag.png b/shared_legacy/static/shared/img/flag.png similarity index 100% rename from shared/static/shared/img/flag.png rename to shared_legacy/static/shared/img/flag.png diff --git a/shared/static/shared/img/logo-full-black.svg b/shared_legacy/static/shared/img/logo-full-black.svg similarity index 100% rename from shared/static/shared/img/logo-full-black.svg rename to shared_legacy/static/shared/img/logo-full-black.svg diff --git a/shared/static/shared/img/logo-full-white.svg b/shared_legacy/static/shared/img/logo-full-white.svg similarity index 100% rename from shared/static/shared/img/logo-full-white.svg rename to shared_legacy/static/shared/img/logo-full-white.svg diff --git a/shared/static/shared/img/logo_black.svg b/shared_legacy/static/shared/img/logo_black.svg similarity index 100% rename from shared/static/shared/img/logo_black.svg rename to shared_legacy/static/shared/img/logo_black.svg diff --git a/shared/static/shared/img/logo_white.svg b/shared_legacy/static/shared/img/logo_white.svg similarity index 100% rename from shared/static/shared/img/logo_white.svg rename to shared_legacy/static/shared/img/logo_white.svg diff --git a/shared/static/shared/img/newsletter.svg b/shared_legacy/static/shared/img/newsletter.svg similarity index 100% rename from shared/static/shared/img/newsletter.svg rename to shared_legacy/static/shared/img/newsletter.svg diff --git a/shared/static/shared/img/og_image.jpg b/shared_legacy/static/shared/img/og_image.jpg similarity index 100% rename from shared/static/shared/img/og_image.jpg rename to shared_legacy/static/shared/img/og_image.jpg diff --git a/shared/static/shared/img/unknown_pirate_160x160.jpg b/shared_legacy/static/shared/img/unknown_pirate_160x160.jpg similarity index 100% rename from shared/static/shared/img/unknown_pirate_160x160.jpg rename to shared_legacy/static/shared/img/unknown_pirate_160x160.jpg diff --git a/shared/static/shared/img/unknown_pirate_416x416.jpg b/shared_legacy/static/shared/img/unknown_pirate_416x416.jpg similarity index 100% rename from shared/static/shared/img/unknown_pirate_416x416.jpg rename to shared_legacy/static/shared/img/unknown_pirate_416x416.jpg diff --git a/shared/static/shared/img/unknown_pirate_placeholder.svg b/shared_legacy/static/shared/img/unknown_pirate_placeholder.svg similarity index 100% rename from shared/static/shared/img/unknown_pirate_placeholder.svg rename to shared_legacy/static/shared/img/unknown_pirate_placeholder.svg diff --git a/shared/static/shared/js/pdf_page.js b/shared_legacy/static/shared/js/pdf_page.js similarity index 100% rename from shared/static/shared/js/pdf_page.js rename to shared_legacy/static/shared/js/pdf_page.js diff --git a/shared/static/shared/js/vue-formulate-helper.js b/shared_legacy/static/shared/js/vue-formulate-helper.js similarity index 100% rename from shared/static/shared/js/vue-formulate-helper.js rename to shared_legacy/static/shared/js/vue-formulate-helper.js diff --git a/shared/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css b/shared_legacy/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css similarity index 100% rename from shared/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css rename to shared_legacy/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css diff --git a/shared/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css.map b/shared_legacy/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css.map similarity index 100% rename from shared/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css.map rename to shared_legacy/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css.map diff --git a/shared/static/shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js b/shared_legacy/static/shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js similarity index 100% rename from shared/static/shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js rename to shared_legacy/static/shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js diff --git a/shared/static/shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js.map b/shared_legacy/static/shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js.map similarity index 100% rename from shared/static/shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js.map rename to shared_legacy/static/shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js.map diff --git a/shared/static/shared/vendor/chart.js/chart.umd.4.2.0.js b/shared_legacy/static/shared/vendor/chart.js/chart.umd.4.2.0.js similarity index 100% rename from shared/static/shared/vendor/chart.js/chart.umd.4.2.0.js rename to shared_legacy/static/shared/vendor/chart.js/chart.umd.4.2.0.js diff --git a/shared/static/shared/vendor/chart.js/chart.umd.js.map b/shared_legacy/static/shared/vendor/chart.js/chart.umd.js.map similarity index 100% rename from shared/static/shared/vendor/chart.js/chart.umd.js.map rename to shared_legacy/static/shared/vendor/chart.js/chart.umd.js.map diff --git a/shared/static/shared/vendor/fancybox/jquery.fancybox.min.css b/shared_legacy/static/shared/vendor/fancybox/jquery.fancybox.min.css similarity index 100% rename from shared/static/shared/vendor/fancybox/jquery.fancybox.min.css rename to shared_legacy/static/shared/vendor/fancybox/jquery.fancybox.min.css diff --git a/shared/static/shared/vendor/fancybox/jquery.fancybox.min.js b/shared_legacy/static/shared/vendor/fancybox/jquery.fancybox.min.js similarity index 100% rename from shared/static/shared/vendor/fancybox/jquery.fancybox.min.js rename to shared_legacy/static/shared/vendor/fancybox/jquery.fancybox.min.js diff --git a/shared/static/shared/vendor/jquery/jquery-3.4.1.min.js b/shared_legacy/static/shared/vendor/jquery/jquery-3.4.1.min.js similarity index 100% rename from shared/static/shared/vendor/jquery/jquery-3.4.1.min.js rename to shared_legacy/static/shared/vendor/jquery/jquery-3.4.1.min.js diff --git a/shared/static/shared/vendor/lazysizes/lazysizes.min.js b/shared_legacy/static/shared/vendor/lazysizes/lazysizes.min.js similarity index 100% rename from shared/static/shared/vendor/lazysizes/lazysizes.min.js rename to shared_legacy/static/shared/vendor/lazysizes/lazysizes.min.js diff --git a/shared/static/shared/vendor/pdf.js-4.0.379/pdf.mjs b/shared_legacy/static/shared/vendor/pdf.js-4.0.379/pdf.mjs similarity index 100% rename from shared/static/shared/vendor/pdf.js-4.0.379/pdf.mjs rename to shared_legacy/static/shared/vendor/pdf.js-4.0.379/pdf.mjs diff --git a/shared/static/shared/vendor/pdf.js-4.0.379/pdf.mjs.map b/shared_legacy/static/shared/vendor/pdf.js-4.0.379/pdf.mjs.map similarity index 100% rename from shared/static/shared/vendor/pdf.js-4.0.379/pdf.mjs.map rename to shared_legacy/static/shared/vendor/pdf.js-4.0.379/pdf.mjs.map diff --git a/shared/static/shared/vendor/pdf.js-4.0.379/pdf.worker.mjs b/shared_legacy/static/shared/vendor/pdf.js-4.0.379/pdf.worker.mjs similarity index 100% rename from shared/static/shared/vendor/pdf.js-4.0.379/pdf.worker.mjs rename to shared_legacy/static/shared/vendor/pdf.js-4.0.379/pdf.worker.mjs diff --git a/shared/static/shared/vendor/pdf.js-4.0.379/pdf.worker.mjs.map b/shared_legacy/static/shared/vendor/pdf.js-4.0.379/pdf.worker.mjs.map similarity index 100% rename from shared/static/shared/vendor/pdf.js-4.0.379/pdf.worker.mjs.map rename to shared_legacy/static/shared/vendor/pdf.js-4.0.379/pdf.worker.mjs.map diff --git a/shared/static/shared/vendor/vue-formulate-2.5.3/css/snow.min.css b/shared_legacy/static/shared/vendor/vue-formulate-2.5.3/css/snow.min.css similarity index 100% rename from shared/static/shared/vendor/vue-formulate-2.5.3/css/snow.min.css rename to shared_legacy/static/shared/vendor/vue-formulate-2.5.3/css/snow.min.css diff --git a/shared/static/shared/vendor/vue-formulate-2.5.3/js/formulate.min.js b/shared_legacy/static/shared/vendor/vue-formulate-2.5.3/js/formulate.min.js similarity index 100% rename from shared/static/shared/vendor/vue-formulate-2.5.3/js/formulate.min.js rename to shared_legacy/static/shared/vendor/vue-formulate-2.5.3/js/formulate.min.js diff --git a/shared/static/shared/vendor/vue-formulate-i18n-1.16.0/js/cs.min.js b/shared_legacy/static/shared/vendor/vue-formulate-i18n-1.16.0/js/cs.min.js similarity index 100% rename from shared/static/shared/vendor/vue-formulate-i18n-1.16.0/js/cs.min.js rename to shared_legacy/static/shared/vendor/vue-formulate-i18n-1.16.0/js/cs.min.js diff --git a/shared/static/shared/vendor/vue/vue.2.6.11.js b/shared_legacy/static/shared/vendor/vue/vue.2.6.11.js similarity index 100% rename from shared/static/shared/vendor/vue/vue.2.6.11.js rename to shared_legacy/static/shared/vendor/vue/vue.2.6.11.js diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-bartos.jpg b/shared_legacy/static/styleguide2/images/background-images/bg-bartos.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be147b1d6a07cbc6eb03b952e870d65c233eb2e3 Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-bartos.jpg differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-europarl-candidates.webp b/shared_legacy/static/styleguide2/images/background-images/bg-europarl-candidates.webp new file mode 100644 index 0000000000000000000000000000000000000000..4c476af74a6b4a329b7069fa2a8fe83108668a3a Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-europarl-candidates.webp differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile-preview.jpg b/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile-preview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1bb8dca41097ad71b7861cefba0e5592fade6d64 Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile-preview.jpg differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile.gif b/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..304a5a8478d4650eaddedc666556bfc568b04328 Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile.gif differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile.mp4 b/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..7ec1fa7554e4dc00c3125c62db56f7715b4aa600 Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-flag-mobile.mp4 differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-flag-preview.jpg b/shared_legacy/static/styleguide2/images/background-images/bg-flag-preview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe78f4f8684b4ea2f42e125421ee5f6ee6792f5e Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-flag-preview.jpg differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-flag.mp4 b/shared_legacy/static/styleguide2/images/background-images/bg-flag.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..92fffb566d751bbe38695068374ce10557f3914c Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-flag.mp4 differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-flag.webp b/shared_legacy/static/styleguide2/images/background-images/bg-flag.webp new file mode 100644 index 0000000000000000000000000000000000000000..e2531cc02355b5a3025d51b7f50728cbfcff2dce Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-flag.webp differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-migrace.png b/shared_legacy/static/styleguide2/images/background-images/bg-migrace.png new file mode 100644 index 0000000000000000000000000000000000000000..b88fdbc3b4bb481be78f299a5cab8b32a9e86aeb Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-migrace.png differ diff --git a/shared_legacy/static/styleguide2/images/background-images/bg-newsletter.webp b/shared_legacy/static/styleguide2/images/background-images/bg-newsletter.webp new file mode 100644 index 0000000000000000000000000000000000000000..4847c68328c2e9dd0320fb6e27d149700fdcaffc Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/bg-newsletter.webp differ diff --git a/shared_legacy/static/styleguide2/images/background-images/loading.gif b/shared_legacy/static/styleguide2/images/background-images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4a88ce04919120c37580ee43196c0aadd5601e6 Binary files /dev/null and b/shared_legacy/static/styleguide2/images/background-images/loading.gif differ diff --git a/shared/static/styleguide291/assets/images/favicons/apple-touch-icon-114x114.png b/shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-114x114.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/apple-touch-icon-114x114.png rename to shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-114x114.png diff --git a/shared/static/styleguide291/assets/images/favicons/apple-touch-icon-120x120.png b/shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-120x120.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/apple-touch-icon-120x120.png rename to shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-120x120.png diff --git a/shared/static/styleguide291/assets/images/favicons/apple-touch-icon-144x144.png b/shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-144x144.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/apple-touch-icon-144x144.png rename to shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-144x144.png diff --git a/shared/static/styleguide291/assets/images/favicons/apple-touch-icon-152x152.png b/shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-152x152.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/apple-touch-icon-152x152.png rename to shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-152x152.png diff --git a/shared/static/styleguide291/assets/images/favicons/apple-touch-icon-57x57.png b/shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-57x57.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/apple-touch-icon-57x57.png rename to shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-57x57.png diff --git a/shared/static/styleguide291/assets/images/favicons/apple-touch-icon-60x60.png b/shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-60x60.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/apple-touch-icon-60x60.png rename to shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-60x60.png diff --git a/shared/static/styleguide291/assets/images/favicons/apple-touch-icon-72x72.png b/shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-72x72.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/apple-touch-icon-72x72.png rename to shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-72x72.png diff --git a/shared/static/styleguide291/assets/images/favicons/apple-touch-icon-76x76.png b/shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-76x76.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/apple-touch-icon-76x76.png rename to shared_legacy/static/styleguide2/images/favicons/apple-touch-icon-76x76.png diff --git a/shared/static/styleguide291/assets/images/favicons/favicon-128x128.png b/shared_legacy/static/styleguide2/images/favicons/favicon-128x128.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/favicon-128x128.png rename to shared_legacy/static/styleguide2/images/favicons/favicon-128x128.png diff --git a/shared/static/styleguide291/assets/images/favicons/favicon-16x16.png b/shared_legacy/static/styleguide2/images/favicons/favicon-16x16.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/favicon-16x16.png rename to shared_legacy/static/styleguide2/images/favicons/favicon-16x16.png diff --git a/shared/static/styleguide291/assets/images/favicons/favicon-196x196.png b/shared_legacy/static/styleguide2/images/favicons/favicon-196x196.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/favicon-196x196.png rename to shared_legacy/static/styleguide2/images/favicons/favicon-196x196.png diff --git a/shared/static/styleguide291/assets/images/favicons/favicon-32x32.png b/shared_legacy/static/styleguide2/images/favicons/favicon-32x32.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/favicon-32x32.png rename to shared_legacy/static/styleguide2/images/favicons/favicon-32x32.png diff --git a/shared/static/styleguide291/assets/images/favicons/favicon-96x96.png b/shared_legacy/static/styleguide2/images/favicons/favicon-96x96.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/favicon-96x96.png rename to shared_legacy/static/styleguide2/images/favicons/favicon-96x96.png diff --git a/shared/static/styleguide291/assets/images/favicons/favicon.ico b/shared_legacy/static/styleguide2/images/favicons/favicon.ico similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/favicon.ico rename to shared_legacy/static/styleguide2/images/favicons/favicon.ico diff --git a/shared/static/styleguide291/assets/images/favicons/mstile-144x144.png b/shared_legacy/static/styleguide2/images/favicons/mstile-144x144.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/mstile-144x144.png rename to shared_legacy/static/styleguide2/images/favicons/mstile-144x144.png diff --git a/shared/static/styleguide291/assets/images/favicons/mstile-150x150.png b/shared_legacy/static/styleguide2/images/favicons/mstile-150x150.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/mstile-150x150.png rename to shared_legacy/static/styleguide2/images/favicons/mstile-150x150.png diff --git a/shared/static/styleguide291/assets/images/favicons/mstile-310x150.png b/shared_legacy/static/styleguide2/images/favicons/mstile-310x150.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/mstile-310x150.png rename to shared_legacy/static/styleguide2/images/favicons/mstile-310x150.png diff --git a/shared/static/styleguide291/assets/images/favicons/mstile-310x310.png b/shared_legacy/static/styleguide2/images/favicons/mstile-310x310.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/mstile-310x310.png rename to shared_legacy/static/styleguide2/images/favicons/mstile-310x310.png diff --git a/shared/static/styleguide291/assets/images/favicons/mstile-70x70.png b/shared_legacy/static/styleguide2/images/favicons/mstile-70x70.png similarity index 100% rename from shared/static/styleguide291/assets/images/favicons/mstile-70x70.png rename to shared_legacy/static/styleguide2/images/favicons/mstile-70x70.png diff --git a/shared_legacy/static/styleguide2/images/logo-full-black.svg b/shared_legacy/static/styleguide2/images/logo-full-black.svg new file mode 100644 index 0000000000000000000000000000000000000000..6cb423ce13466d7d6563cda2dd6409c486e8f143 --- /dev/null +++ b/shared_legacy/static/styleguide2/images/logo-full-black.svg @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="144.119" + height="39.908081" + viewBox="0 0 144.119 39.908082" + version="1.1" + id="svg24" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs28" /> + <g + id="logo-flag-text-white" + transform="translate(-288.547,-170.504)" + style="fill:#000000"> + <g + id="Group_11" + data-name="Group 11" + transform="translate(288.3,173.149)" + style="fill:#000000"> + <path + id="Path_17" + data-name="Path 17" + d="M 306.944,211.307 A 16.912,16.912 0 1 1 323.856,194.4 16.936,16.936 0 0 1 306.944,211.312 M 320.189,181.2 a 18.571,18.571 0 1 0 5.5,13.194 18.794,18.794 0 0 0 -5.5,-13.194" + transform="translate(-288.3,-175.7)" + fill="#ffffff" + style="fill:#000000" /> + <path + id="Path_18" + data-name="Path 18" + d="m 316,197.98 c -0.56,2.7 -3.515,4.126 -5.247,5.3 v -13.7 c 2.9,0.713 6.368,2.955 5.247,8.405 m -5.25,-9.885 v -2.6 h -1.63 v 3.005 c -1.121,0.357 -1.732,0.713 -1.63,0.917 a 5.119,5.119 0 0 1 1.63,-0.1 v 15.741 c -1.681,3.26 0.713,8.252 0.713,8.252 0,0 -1.783,-5.349 2.19,-7.9 3.668,-2.343 16.4,-1.223 16.352,-8.405 0,-10.188 -11.767,-10.137 -17.625,-8.915" + transform="translate(-297.709,-180.508)" + fill="#ffffff" + style="fill:#000000" /> + <path + id="Path_19" + data-name="Path 19" + d="m 384.221,186.483 a 4.663,4.663 0 0 0 0.866,0.051 2.758,2.758 0 0 0 1.936,-0.611 2.117,2.117 0 0 0 0.662,-1.681 c 0,-1.375 -0.866,-2.038 -2.649,-2.038 a 5.022,5.022 0 0 0 -0.866,0.1 v 4.177 z m 0,2.853 v 4.432 H 380.4 v -14.162 a 29.174,29.174 0 0 1 4.279,-0.306 c 4.432,0 6.622,1.579 6.622,4.788 a 5.032,5.032 0 0 1 -1.477,3.922 6.265,6.265 0 0 1 -4.381,1.324 9.753,9.753 0 0 1 -1.223,0" + transform="translate(-333.484,-177.466)" + fill="#ffffff" + style="fill:#000000" /> + </g> + <rect + id="Rectangle_29" + data-name="Rectangle 29" + width="4.2789998" + height="14.263" + transform="translate(347.951,175.187)" + fill="#ffffff" + x="0" + y="0" + style="fill:#000000" /> + <g + id="Group_12" + data-name="Group 12" + transform="translate(355.032,174.983)" + style="fill:#000000"> + <path + id="Path_20" + data-name="Path 20" + d="m 423.121,185.973 h 1.07 a 2.269,2.269 0 0 0 1.579,-0.509 1.639,1.639 0 0 0 0.56,-1.375 q 0,-1.834 -2.14,-1.834 a 6.358,6.358 0 0 0 -1.07,0.1 z m 0,2.8 v 4.992 H 419.3 v -14.159 a 42.086,42.086 0 0 1 5.094,-0.306 c 3.922,0 5.858,1.477 5.858,4.381 a 3.871,3.871 0 0 1 -0.764,2.292 4.207,4.207 0 0 1 -1.988,1.527 v 0.051 a 2.646,2.646 0 0 1 0.968,0.866 6.5,6.5 0 0 1 0.764,1.477 l 1.426,3.922 h -4.024 l -1.223,-3.719 a 1.949,1.949 0 0 0 -0.56,-0.968 1.2,1.2 0 0 0 -0.866,-0.306 h -0.866 z" + transform="translate(-419.3,-179.3)" + fill="#ffffff" + style="fill:#000000" /> + </g> + <path + id="Path_21" + data-name="Path 21" + d="m 448.551,183.8 h 2.6 l -1.273,-5.3 h -0.051 z m 2.089,-9.781 h -3.107 l 1.936,-3.515 h 4.279 z m -2.8,12.684 -0.662,2.751 H 443.1 l 4.687,-14.263 h 4.126 l 4.687,14.259 h -4.126 l -0.662,-2.751 z" + transform="translate(-75.944)" + fill="#ffffff" + style="fill:#000000" /> + <path + id="Path_22" + data-name="Path 22" + d="m 480.816,179.7 v 3.209 h -3.871 v 11.054 h -3.973 V 182.909 H 469.1 V 179.7 Z" + transform="translate(-88.7,-4.513)" + fill="#ffffff" + style="fill:#000000" /> + <g + id="Group_13" + data-name="Group 13" + transform="translate(393.237,175.034)" + style="fill:#000000"> + <path + id="Path_23" + data-name="Path 23" + d="m 504.233,183.373 a 8.828,8.828 0 0 0 -4.024,-0.968 2.5,2.5 0 0 0 -1.375,0.306 1,1 0 0 0 -0.458,0.866 c 0,0.56 0.408,0.917 1.274,1.172 a 11.092,11.092 0 0 1 4.33,1.987 4.145,4.145 0 0 1 -0.2,6.164 7.27,7.27 0 0 1 -4.483,1.121 10.863,10.863 0 0 1 -2.7,-0.408 6,6 0 0 1 -2.292,-1.07 l 0.866,-3.005 a 8.413,8.413 0 0 0 2.14,1.07 6.866,6.866 0 0 0 2.139,0.408 c 1.172,0 1.783,-0.408 1.783,-1.273 0,-0.56 -0.509,-0.968 -1.579,-1.274 a 10.417,10.417 0 0 1 -4.075,-1.987 3.808,3.808 0 0 1 -1.223,-2.9 3.719,3.719 0 0 1 1.477,-3.056 6.681,6.681 0 0 1 4.177,-1.121 10.873,10.873 0 0 1 4.89,0.968 z" + transform="translate(-494.3,-179.4)" + fill="#ffffff" + style="fill:#000000" /> + </g> + <path + id="Path_24" + data-name="Path 24" + d="m 523.722,185.762 h 0.051 l 3.668,-6.062 h 4.483 l -4.483,6.826 4.687,7.437 h -4.483 l -3.872,-6.622 h -0.051 v 6.622 H 519.8 V 179.7 h 3.922 z" + transform="translate(-113.573,-4.513)" + fill="#ffffff" + style="fill:#000000" /> + <path + id="Path_25" + data-name="Path 25" + d="m 550.651,183.8 h 2.6 l -1.274,-5.3 h -0.051 z m 2.089,-9.781 h -3.107 l 1.936,-3.515 h 4.279 z m -2.8,12.684 -0.662,2.751 H 545.2 l 4.687,-14.263 h 4.126 l 4.687,14.259 h -4.126 l -0.662,-2.751 z" + transform="translate(-126.034)" + fill="#ffffff" + style="fill:#000000" /> + <g + id="Group_14" + data-name="Group 14" + transform="translate(334.758,194.289)" + style="fill:#000000"> + <path + id="Path_26" + data-name="Path 26" + d="m 389.433,221.173 a 8.828,8.828 0 0 0 -4.024,-0.968 2.5,2.5 0 0 0 -1.375,0.306 1,1 0 0 0 -0.458,0.866 c 0,0.56 0.408,0.917 1.274,1.172 a 11.093,11.093 0 0 1 4.33,1.987 4.146,4.146 0 0 1 -0.2,6.164 7.27,7.27 0 0 1 -4.483,1.121 10.866,10.866 0 0 1 -2.7,-0.408 6.866,6.866 0 0 1 -2.292,-1.07 l 0.866,-3.005 a 8.414,8.414 0 0 0 2.139,1.07 6.867,6.867 0 0 0 2.14,0.408 c 1.172,0 1.783,-0.408 1.783,-1.274 0,-0.56 -0.509,-0.968 -1.579,-1.273 a 10.419,10.419 0 0 1 -4.075,-1.987 3.808,3.808 0 0 1 -1.223,-2.9 3.719,3.719 0 0 1 1.477,-3.056 6.681,6.681 0 0 1 4.177,-1.121 10.874,10.874 0 0 1 4.89,0.968 z" + transform="translate(-379.5,-217.2)" + fill="#ffffff" + style="fill:#000000" /> + </g> + <path + id="Path_27" + data-name="Path 27" + d="m 415.016,217.6 v 3.209 h -3.871 v 11.054 h -3.973 V 220.809 H 403.3 V 217.6 Z" + transform="translate(-56.418,-23.107)" + fill="#ffffff" + style="fill:#000000" /> + <g + id="Group_15" + data-name="Group 15" + transform="translate(360.686,194.289)" + style="fill:#000000"> + <path + id="Path_28" + data-name="Path 28" + d="m 434.221,223.822 h 1.07 a 2.269,2.269 0 0 0 1.579,-0.509 1.639,1.639 0 0 0 0.56,-1.375 q 0,-1.834 -2.14,-1.834 a 6.36,6.36 0 0 0 -1.07,0.1 z m 0,2.853 v 4.992 H 430.4 v -14.161 a 42.1,42.1 0 0 1 5.094,-0.306 c 3.922,0 5.858,1.477 5.858,4.381 a 3.871,3.871 0 0 1 -0.764,2.292 4.207,4.207 0 0 1 -1.988,1.527 v 0.051 a 2.647,2.647 0 0 1 0.968,0.866 6.5,6.5 0 0 1 0.764,1.477 l 1.426,3.922 h -4.024 L 436.513,228 a 1.949,1.949 0 0 0 -0.56,-0.968 1.2,1.2 0 0 0 -0.866,-0.306 h -0.866 z" + transform="translate(-430.4,-217.2)" + fill="#ffffff" + style="fill:#000000" /> + </g> + <path + id="Path_29" + data-name="Path 29" + d="m 460.051,226.158 h 2.6 l -1.273,-5.3 h -0.051 z m -0.713,2.955 -0.662,2.751 H 454.6 l 4.687,-14.263 h 4.126 l 4.687,14.263 h -4.126 l -0.662,-2.751 z" + transform="translate(-81.586,-23.107)" + fill="#ffffff" + style="fill:#000000" /> + <path + id="Path_30" + data-name="Path 30" + d="M 492.349,225.394 H 492.4 V 217.6 h 3.821 v 14.263 H 492.4 l -4.279,-7.845 h -0.051 v 7.845 H 484.3 V 217.6 h 3.77 z" + transform="translate(-96.157,-23.107)" + fill="#ffffff" + style="fill:#000000" /> + <path + id="Path_31" + data-name="Path 31" + d="m 516.151,226.158 h 2.6 l -1.274,-5.3 h -0.051 z m -0.713,2.955 -0.662,2.751 H 510.7 l 4.686,-14.263 h 4.126 l 4.687,14.263 h -4.126 l -0.662,-2.751 z" + transform="translate(-109.108,-23.107)" + fill="#ffffff" + style="fill:#000000" /> + </g> +</svg> diff --git a/shared_legacy/static/styleguide2/images/logo-full-white.svg b/shared_legacy/static/styleguide2/images/logo-full-white.svg new file mode 100644 index 0000000000000000000000000000000000000000..269cd432052eb29dd07dd8740110fadc31cba587 --- /dev/null +++ b/shared_legacy/static/styleguide2/images/logo-full-white.svg @@ -0,0 +1,140 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="144.119" + height="39.908081" + viewBox="0 0 144.119 39.908082" + version="1.1" + id="svg24" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs28" /> + <g + id="logo-flag-text-white" + transform="translate(-288.547,-170.504)"> + <g + id="Group_11" + data-name="Group 11" + transform="translate(288.3,173.149)"> + <path + id="Path_17" + data-name="Path 17" + d="M 306.944,211.307 A 16.912,16.912 0 1 1 323.856,194.4 16.936,16.936 0 0 1 306.944,211.312 M 320.189,181.2 a 18.571,18.571 0 1 0 5.5,13.194 18.794,18.794 0 0 0 -5.5,-13.194" + transform="translate(-288.3,-175.7)" + fill="#ffffff" /> + <path + id="Path_18" + data-name="Path 18" + d="m 316,197.98 c -0.56,2.7 -3.515,4.126 -5.247,5.3 v -13.7 c 2.9,0.713 6.368,2.955 5.247,8.405 m -5.25,-9.885 v -2.6 h -1.63 v 3.005 c -1.121,0.357 -1.732,0.713 -1.63,0.917 a 5.119,5.119 0 0 1 1.63,-0.1 v 15.741 c -1.681,3.26 0.713,8.252 0.713,8.252 0,0 -1.783,-5.349 2.19,-7.9 3.668,-2.343 16.4,-1.223 16.352,-8.405 0,-10.188 -11.767,-10.137 -17.625,-8.915" + transform="translate(-297.709,-180.508)" + fill="#ffffff" /> + <path + id="Path_19" + data-name="Path 19" + d="m 384.221,186.483 a 4.663,4.663 0 0 0 0.866,0.051 2.758,2.758 0 0 0 1.936,-0.611 2.117,2.117 0 0 0 0.662,-1.681 c 0,-1.375 -0.866,-2.038 -2.649,-2.038 a 5.022,5.022 0 0 0 -0.866,0.1 v 4.177 z m 0,2.853 v 4.432 H 380.4 v -14.162 a 29.174,29.174 0 0 1 4.279,-0.306 c 4.432,0 6.622,1.579 6.622,4.788 a 5.032,5.032 0 0 1 -1.477,3.922 6.265,6.265 0 0 1 -4.381,1.324 9.753,9.753 0 0 1 -1.223,0" + transform="translate(-333.484,-177.466)" + fill="#ffffff" /> + </g> + <rect + id="Rectangle_29" + data-name="Rectangle 29" + width="4.2789998" + height="14.263" + transform="translate(347.951,175.187)" + fill="#ffffff" + x="0" + y="0" /> + <g + id="Group_12" + data-name="Group 12" + transform="translate(355.032,174.983)"> + <path + id="Path_20" + data-name="Path 20" + d="m 423.121,185.973 h 1.07 a 2.269,2.269 0 0 0 1.579,-0.509 1.639,1.639 0 0 0 0.56,-1.375 q 0,-1.834 -2.14,-1.834 a 6.358,6.358 0 0 0 -1.07,0.1 z m 0,2.8 v 4.992 H 419.3 v -14.159 a 42.086,42.086 0 0 1 5.094,-0.306 c 3.922,0 5.858,1.477 5.858,4.381 a 3.871,3.871 0 0 1 -0.764,2.292 4.207,4.207 0 0 1 -1.988,1.527 v 0.051 a 2.646,2.646 0 0 1 0.968,0.866 6.5,6.5 0 0 1 0.764,1.477 l 1.426,3.922 h -4.024 l -1.223,-3.719 a 1.949,1.949 0 0 0 -0.56,-0.968 1.2,1.2 0 0 0 -0.866,-0.306 h -0.866 z" + transform="translate(-419.3,-179.3)" + fill="#ffffff" /> + </g> + <path + id="Path_21" + data-name="Path 21" + d="m 448.551,183.8 h 2.6 l -1.273,-5.3 h -0.051 z m 2.089,-9.781 h -3.107 l 1.936,-3.515 h 4.279 z m -2.8,12.684 -0.662,2.751 H 443.1 l 4.687,-14.263 h 4.126 l 4.687,14.259 h -4.126 l -0.662,-2.751 z" + transform="translate(-75.944)" + fill="#ffffff" /> + <path + id="Path_22" + data-name="Path 22" + d="m 480.816,179.7 v 3.209 h -3.871 v 11.054 h -3.973 V 182.909 H 469.1 V 179.7 Z" + transform="translate(-88.7,-4.513)" + fill="#ffffff" /> + <g + id="Group_13" + data-name="Group 13" + transform="translate(393.237,175.034)"> + <path + id="Path_23" + data-name="Path 23" + d="m 504.233,183.373 a 8.828,8.828 0 0 0 -4.024,-0.968 2.5,2.5 0 0 0 -1.375,0.306 1,1 0 0 0 -0.458,0.866 c 0,0.56 0.408,0.917 1.274,1.172 a 11.092,11.092 0 0 1 4.33,1.987 4.145,4.145 0 0 1 -0.2,6.164 7.27,7.27 0 0 1 -4.483,1.121 10.863,10.863 0 0 1 -2.7,-0.408 6,6 0 0 1 -2.292,-1.07 l 0.866,-3.005 a 8.413,8.413 0 0 0 2.14,1.07 6.866,6.866 0 0 0 2.139,0.408 c 1.172,0 1.783,-0.408 1.783,-1.273 0,-0.56 -0.509,-0.968 -1.579,-1.274 a 10.417,10.417 0 0 1 -4.075,-1.987 3.808,3.808 0 0 1 -1.223,-2.9 3.719,3.719 0 0 1 1.477,-3.056 6.681,6.681 0 0 1 4.177,-1.121 10.873,10.873 0 0 1 4.89,0.968 z" + transform="translate(-494.3,-179.4)" + fill="#ffffff" /> + </g> + <path + id="Path_24" + data-name="Path 24" + d="m 523.722,185.762 h 0.051 l 3.668,-6.062 h 4.483 l -4.483,6.826 4.687,7.437 h -4.483 l -3.872,-6.622 h -0.051 v 6.622 H 519.8 V 179.7 h 3.922 z" + transform="translate(-113.573,-4.513)" + fill="#ffffff" /> + <path + id="Path_25" + data-name="Path 25" + d="m 550.651,183.8 h 2.6 l -1.274,-5.3 h -0.051 z m 2.089,-9.781 h -3.107 l 1.936,-3.515 h 4.279 z m -2.8,12.684 -0.662,2.751 H 545.2 l 4.687,-14.263 h 4.126 l 4.687,14.259 h -4.126 l -0.662,-2.751 z" + transform="translate(-126.034)" + fill="#ffffff" /> + <g + id="Group_14" + data-name="Group 14" + transform="translate(334.758,194.289)"> + <path + id="Path_26" + data-name="Path 26" + d="m 389.433,221.173 a 8.828,8.828 0 0 0 -4.024,-0.968 2.5,2.5 0 0 0 -1.375,0.306 1,1 0 0 0 -0.458,0.866 c 0,0.56 0.408,0.917 1.274,1.172 a 11.093,11.093 0 0 1 4.33,1.987 4.146,4.146 0 0 1 -0.2,6.164 7.27,7.27 0 0 1 -4.483,1.121 10.866,10.866 0 0 1 -2.7,-0.408 6.866,6.866 0 0 1 -2.292,-1.07 l 0.866,-3.005 a 8.414,8.414 0 0 0 2.139,1.07 6.867,6.867 0 0 0 2.14,0.408 c 1.172,0 1.783,-0.408 1.783,-1.274 0,-0.56 -0.509,-0.968 -1.579,-1.273 a 10.419,10.419 0 0 1 -4.075,-1.987 3.808,3.808 0 0 1 -1.223,-2.9 3.719,3.719 0 0 1 1.477,-3.056 6.681,6.681 0 0 1 4.177,-1.121 10.874,10.874 0 0 1 4.89,0.968 z" + transform="translate(-379.5,-217.2)" + fill="#ffffff" /> + </g> + <path + id="Path_27" + data-name="Path 27" + d="m 415.016,217.6 v 3.209 h -3.871 v 11.054 h -3.973 V 220.809 H 403.3 V 217.6 Z" + transform="translate(-56.418,-23.107)" + fill="#ffffff" /> + <g + id="Group_15" + data-name="Group 15" + transform="translate(360.686,194.289)"> + <path + id="Path_28" + data-name="Path 28" + d="m 434.221,223.822 h 1.07 a 2.269,2.269 0 0 0 1.579,-0.509 1.639,1.639 0 0 0 0.56,-1.375 q 0,-1.834 -2.14,-1.834 a 6.36,6.36 0 0 0 -1.07,0.1 z m 0,2.853 v 4.992 H 430.4 v -14.161 a 42.1,42.1 0 0 1 5.094,-0.306 c 3.922,0 5.858,1.477 5.858,4.381 a 3.871,3.871 0 0 1 -0.764,2.292 4.207,4.207 0 0 1 -1.988,1.527 v 0.051 a 2.647,2.647 0 0 1 0.968,0.866 6.5,6.5 0 0 1 0.764,1.477 l 1.426,3.922 h -4.024 L 436.513,228 a 1.949,1.949 0 0 0 -0.56,-0.968 1.2,1.2 0 0 0 -0.866,-0.306 h -0.866 z" + transform="translate(-430.4,-217.2)" + fill="#ffffff" /> + </g> + <path + id="Path_29" + data-name="Path 29" + d="m 460.051,226.158 h 2.6 l -1.273,-5.3 h -0.051 z m -0.713,2.955 -0.662,2.751 H 454.6 l 4.687,-14.263 h 4.126 l 4.687,14.263 h -4.126 l -0.662,-2.751 z" + transform="translate(-81.586,-23.107)" + fill="#ffffff" /> + <path + id="Path_30" + data-name="Path 30" + d="M 492.349,225.394 H 492.4 V 217.6 h 3.821 v 14.263 H 492.4 l -4.279,-7.845 h -0.051 v 7.845 H 484.3 V 217.6 h 3.77 z" + transform="translate(-96.157,-23.107)" + fill="#ffffff" /> + <path + id="Path_31" + data-name="Path 31" + d="m 516.151,226.158 h 2.6 l -1.274,-5.3 h -0.051 z m -0.713,2.955 -0.662,2.751 H 510.7 l 4.686,-14.263 h 4.126 l 4.687,14.263 h -4.126 l -0.662,-2.751 z" + transform="translate(-109.108,-23.107)" + fill="#ffffff" /> + </g> +</svg> diff --git a/shared/static/styleguide234/assets/images/logo-round-black.svg b/shared_legacy/static/styleguide2/images/logo-round-black.svg similarity index 100% rename from shared/static/styleguide234/assets/images/logo-round-black.svg rename to shared_legacy/static/styleguide2/images/logo-round-black.svg diff --git a/shared/static/styleguide234/assets/images/logo-round-white.svg b/shared_legacy/static/styleguide2/images/logo-round-white.svg similarity index 100% rename from shared/static/styleguide234/assets/images/logo-round-white.svg rename to shared_legacy/static/styleguide2/images/logo-round-white.svg diff --git a/shared_legacy/static/styleguide2/main.css b/shared_legacy/static/styleguide2/main.css new file mode 100644 index 0000000000000000000000000000000000000000..d2b305ad901c4b61362ad0b7adc0619c0e63cd38 --- /dev/null +++ b/shared_legacy/static/styleguide2/main.css @@ -0,0 +1 @@ +@import"https://gfonts.pirati.cz/css2?family=Bebas+Neue&family=Roboto+Condensed:wght@300;400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400&display=swap";@font-face{font-family:pirati-ui;src:url(/static/styleguide2/pirati-ui.eot?bna028);src:url(/static/styleguide2/pirati-ui.eot?bna028#iefix) format("embedded-opentype"),url(/static/styleguide2/pirati-ui.ttf?bna028) format("truetype"),url(/static/styleguide2/pirati-ui.woff?bna028) format("woff"),url(/static/styleguide2/pirati-ui.svg?bna028#pirati-ui) format("svg");font-weight:400;font-style:normal;font-display:block}[class^=ico--],[class*=" ico--"]{font-family:pirati-ui!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ico--twitter:before{content:""}.ico--mastodon:before{content:""}.ico--helios:before{content:""}.ico--redmine:before{content:""}.ico--zulip:before{content:""}.ico--forum:before{content:""}.ico--pirati:before{content:""}.ico--jitsi:before{content:""}.ico--open-source:before{content:""}.ico--donation-full:before{content:""}.ico--donation-outline:before{content:""}.ico--strategy:before{content:""}.ico--pig:before{content:""}.ico--thermometer:before{content:""}.ico--menu:before{content:""}.ico--chevron-right:before{content:""}.ico--chevron-left:before{content:""}.ico--chevron-down:before{content:""}.ico--chevron-up:before{content:""}.ico--link-horizontal:before{content:""}.ico--beer:before{content:""}.ico--food:before{content:""}.ico--dots-three-vertical:before{content:""}.ico--dots-three-horizontal:before{content:""}.ico--log-out:before{content:""}.ico--envelope:before{content:""}.ico--pin:before{content:""}.ico--at:before{content:""}.ico--glass:before{content:""}.ico--checkmark:before{content:""}.ico--info:before{content:""}.ico--question:before{content:""}.ico--warning:before{content:""}.ico--code:before{content:""}.ico--checkbox-unchecked:before{content:""}.ico--star-full:before{content:""}.ico--star-empty:before{content:""}.ico--bookmark:before{content:""}.ico--cog:before{content:""}.ico--key:before{content:""}.ico--zoom-in:before{content:""}.ico--zoom-out:before{content:""}.ico--shrink:before{content:""}.ico--printer:before{content:""}.ico--file-openoffice:before{content:""}.ico--user:before{content:""}.ico--file-excel:before{content:""}.ico--file-word:before{content:""}.ico--file-pdf:before{content:""}.ico--file-picture:before{content:""}.ico--file-blank:before{content:""}.ico--folder-upload:before{content:""}.ico--upload:before{content:""}.ico--cloud-upload:before{content:""}.ico--folder-download:before{content:""}.ico--download:before{content:""}.ico--cloud-download:before{content:""}.ico--alarm:before{content:""}.ico--calculator:before{content:""}.ico--facebook-full:before{content:""}.ico--feed:before{content:""}.ico--library:before{content:""}.ico--office:before{content:""}.ico--attachment:before{content:""}.ico--enlarge:before{content:""}.ico--eye-off:before{content:""}.ico--eye:before{content:""}.ico--share:before{content:""}.ico--search:before{content:""}.ico--pencil:before{content:""}.ico--lock-open:before{content:""}.ico--lock:before{content:""}.ico--equalizer:before{content:""}.ico--switch:before{content:""}.ico--loop:before{content:""}.ico--refresh:before{content:""}.ico--bullhorn:before{content:""}.ico--bin:before{content:""}.ico--cross:before{content:""}.ico--checkbox-checked:before{content:""}.ico--globe:before{content:""}.ico--wikipedia:before{content:""}.ico--youtube:before{content:""}.ico--users:before{content:""}.ico--book:before{content:""}.ico--bubbles:before{content:""}.ico--map:before{content:""}.ico--compass:before{content:""}.ico--folder-open:before{content:""}.ico--folder:before{content:""}.ico--drawer:before{content:""}.ico--stop:before{content:""}.ico--github:before{content:""}.ico--clock:before{content:""}.ico--calendar:before{content:""}.ico--flickr:before{content:""}.ico--instagram:before{content:""}.ico--newspaper:before{content:""}.ico--cart:before{content:""}.ico--home:before{content:""}.ico--link:before{content:""}.ico--power:before{content:""}.ico--rocket:before{content:""}.ico--location:before{content:""}.ico--phone:before{content:""}.ico--linkedin:before{content:""}.ico--facebook:before{content:""}.ico--envelop:before{content:""}.ico--file-text2:before{content:""}.ico--price-tag:before{content:""}.ico--price-tags:before{content:""}.ico--stats-dots:before{content:""}.ico--bed:before{content:""}.ico--train:before{content:""}.ico--bus:before{content:""}.ico--wheelchair:before{content:""}.ico--thumbs-down:before{content:""}.ico--thumbs-up:before{content:""}.ico--anchor:before{content:""}.ico--paw:before{content:""}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-black{--tw-prose-body: #000000;--tw-prose-headings: #000000;--tw-prose-lead: #000000;--tw-prose-links: #000000;--tw-prose-bold: #000000;--tw-prose-counters: #000000;--tw-prose-bullets: #000000;--tw-prose-hr: #000000;--tw-prose-quotes: #000000;--tw-prose-quote-borders: #000000;--tw-prose-captions: #000000;--tw-prose-code: #000000;--tw-prose-pre-code: #000000;--tw-prose-pre-bg: #ffffff;--tw-prose-th-borders: #000000;--tw-prose-td-borders: #000000;--tw-prose-invert-body: #ffffff;--tw-prose-invert-headings: #ffffff;--tw-prose-invert-lead: #ffffff;--tw-prose-invert-links: #ffffff;--tw-prose-invert-bold: #ffffff;--tw-prose-invert-counters: #ffffff;--tw-prose-invert-bullets: #ffffff;--tw-prose-invert-hr: #ffffff;--tw-prose-invert-quotes: #ffffff;--tw-prose-invert-quote-borders: #ffffff;--tw-prose-invert-captions: #ffffff;--tw-prose-invert-code: #ffffff;--tw-prose-invert-pre-code: #ffffff;--tw-prose-invert-pre-bg: #000000;--tw-prose-invert-th-borders: #ffffff;--tw-prose-invert-td-borders: #ffffff}.btn{display:inline-block;text-align:center;font-weight:400;max-width:20rem;text-decoration:none}.btn[disabled]{opacity:.7;cursor:not-allowed}.btn:hover{text-decoration:none}.btn__body{display:flex;height:100%;align-items:center;justify-content:center;padding:.25em 2em}.btn__body-wrap{min-width:10rem;min-height:2.75rem}.btn__body,.btn__icon,.btn__inline-icon{transition-property:color,background-color,border-color;transition-duration:.2s;color:#fff}.btn__body,.btn__icon{background-color:#000}.btn--icon .btn__body-wrap{display:flex}.btn--condensed .btn__body{padding:.75em 1em}@keyframes btn-loading-spinner{to{transform:rotate(360deg)}}.btn--black .btn__body,.btn--black .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#262626}.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--black.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-black:hover .btn__body,.btn--to-black.btn--activated .btn__body{background-color:#000!important;color:#fff!important}.btn--hoveractive.btn--to-black:hover .btn__icon,.btn--to-black.btn--activated .btn__icon{border-color:#343434!important;background-color:#000!important}.btn--hoveractive.btn--to-black:hover .btn__inline-icon,.btn--to-black.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-700 .btn__body,.btn--grey-700 .btn__icon{background-color:#202020;color:#fff}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#343434;color:#fff}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#262626}.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-700:hover .btn__body,.btn--to-grey-700.btn--activated .btn__body{background-color:#202020!important;color:#fff!important}.btn--hoveractive.btn--to-grey-700:hover .btn__icon,.btn--to-grey-700.btn--activated .btn__icon{border-color:#303132!important;background-color:#202020!important}.btn--hoveractive.btn--to-grey-700:hover .btn__inline-icon,.btn--to-grey-700.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-500 .btn__body,.btn--grey-500 .btn__icon{background-color:#303132;color:#fff}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#4c4c4c;color:#fff}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#343434}.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-500:hover .btn__body,.btn--to-grey-500.btn--activated .btn__body{background-color:#303132!important;color:#fff!important}.btn--hoveractive.btn--to-grey-500:hover .btn__icon,.btn--to-grey-500.btn--activated .btn__icon{border-color:#4c4c4c!important;background-color:#303132!important}.btn--hoveractive.btn--to-grey-500:hover .btn__inline-icon,.btn--to-grey-500.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-125 .btn__body,.btn--grey-125 .btn__icon{background-color:#f0f0f0;color:#000}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:silver;color:#fff}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#a8a8a8}.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-125.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-125:hover .btn__body,.btn--to-grey-125.btn--activated .btn__body{background-color:#f0f0f0!important;color:#000!important}.btn--hoveractive.btn--to-grey-125:hover .btn__icon,.btn--to-grey-125.btn--activated .btn__icon{border-color:#d8d8d8!important;background-color:#f0f0f0!important}.btn--hoveractive.btn--to-grey-125:hover .btn__inline-icon,.btn--to-grey-125.btn--activated .btn__inline-icon{color:#000!important}.btn--grey-175 .btn__body,.btn--grey-175 .btn__icon{background-color:#d0d0d0;color:#000}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#a6a6a6;color:#fff}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#929292}.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--grey-175.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-175:hover .btn__body,.btn--to-grey-175.btn--activated .btn__body{background-color:#d0d0d0!important;color:#000!important}.btn--hoveractive.btn--to-grey-175:hover .btn__icon,.btn--to-grey-175.btn--activated .btn__icon{border-color:#bbb!important;background-color:#d0d0d0!important}.btn--hoveractive.btn--to-grey-175:hover .btn__inline-icon,.btn--to-grey-175.btn--activated .btn__inline-icon{color:#000!important}.btn--white .btn__body,.btn--white .btn__icon{background-color:#fff;color:#000}.btn--white .btn__icon{border-color:#f3f3f3;background-color:#fff}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ccc;color:#fff}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#b3b3b3}.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--white.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-white:hover .btn__body,.btn--to-white.btn--activated .btn__body{background-color:#fff!important;color:#000!important}.btn--hoveractive.btn--to-white:hover .btn__icon,.btn--to-white.btn--activated .btn__icon{border-color:#f3f3f3!important;background-color:#fff!important}.btn--hoveractive.btn--to-white:hover .btn__inline-icon,.btn--to-white.btn--activated .btn__inline-icon{color:#000!important}.btn--blue-300 .btn__body,.btn--blue-300 .btn__icon{background-color:#027da8;color:#fff}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#026486;color:#fff}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#015876}.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--blue-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-blue-300:hover .btn__body,.btn--to-blue-300.btn--activated .btn__body{background-color:#027da8!important;color:#fff!important}.btn--hoveractive.btn--to-blue-300:hover .btn__icon,.btn--to-blue-300.btn--activated .btn__icon{border-color:#027197!important;background-color:#027da8!important}.btn--hoveractive.btn--to-blue-300:hover .btn__inline-icon,.btn--to-blue-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--cyan-200 .btn__body,.btn--cyan-200 .btn__icon{background-color:#57b3bd;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#3e959f;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#37838b}.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--cyan-200.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-cyan-200:hover .btn__body,.btn--to-cyan-200.btn--activated .btn__body{background-color:#57b3bd!important;color:#fff!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__icon,.btn--to-cyan-200.btn--activated .btn__icon{border-color:#46a8b2!important;background-color:#57b3bd!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__inline-icon,.btn--to-cyan-200.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-300 .btn__body,.btn--green-300 .btn__icon{background-color:#76cc9f;color:#fff}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#47bb7e;color:#fff}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#3da46e}.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-300:hover .btn__body,.btn--to-green-300.btn--activated .btn__body{background-color:#76cc9f!important;color:#fff!important}.btn--hoveractive.btn--to-green-300:hover .btn__icon,.btn--to-green-300.btn--activated .btn__icon{border-color:#5fc38f!important;background-color:#76cc9f!important}.btn--hoveractive.btn--to-green-300:hover .btn__inline-icon,.btn--to-green-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-400 .btn__body,.btn--green-400 .btn__icon{background-color:#4ca971;color:#fff}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#3d875a;color:#fff}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#35764f}.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-400:hover .btn__body,.btn--to-green-400.btn--activated .btn__body{background-color:#4ca971!important;color:#fff!important}.btn--hoveractive.btn--to-green-400:hover .btn__icon,.btn--to-green-400.btn--activated .btn__icon{border-color:#449866!important;background-color:#4ca971!important}.btn--hoveractive.btn--to-green-400:hover .btn__inline-icon,.btn--to-green-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-500 .btn__body,.btn--green-500 .btn__icon{background-color:#4fc49f;color:#000}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#37a582;color:#fff}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#309072}.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--green-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-500:hover .btn__body,.btn--to-green-500.btn--activated .btn__body{background-color:#4fc49f!important;color:#000!important}.btn--hoveractive.btn--to-green-500:hover .btn__icon,.btn--to-green-500.btn--activated .btn__icon{border-color:#3eb992!important;background-color:#4fc49f!important}.btn--hoveractive.btn--to-green-500:hover .btn__inline-icon,.btn--to-green-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-500 .btn__body,.btn--yellow-500 .btn__icon{background-color:#f9ce05;color:#000}.btn--yellow-500 .btn__icon{border-color:#e0b905;background-color:#f9ce05}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#c7a504;color:#fff}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#ae9004}.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--yellow-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-500:hover .btn__body,.btn--to-yellow-500.btn--activated .btn__body{background-color:#f9ce05!important;color:#000!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__icon,.btn--to-yellow-500.btn--activated .btn__icon{border-color:#e0b905!important;background-color:#f9ce05!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__inline-icon,.btn--to-yellow-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-600 .btn__body,.btn--yellow-600 .btn__icon{background-color:#d7b103;color:#000}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ac8e02;color:#fff}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#977c02}.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--yellow-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-600:hover .btn__body,.btn--to-yellow-600.btn--activated .btn__body{background-color:#d7b103!important;color:#000!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__icon,.btn--to-yellow-600.btn--activated .btn__icon{border-color:#c29f03!important;background-color:#d7b103!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__inline-icon,.btn--to-yellow-600.btn--activated .btn__inline-icon{color:#000!important}.btn--orange-300 .btn__body,.btn--orange-300 .btn__icon{background-color:#ed9654;color:#fff}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#e7721a;color:#fff}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#cb6415}.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--orange-300.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-orange-300:hover .btn__body,.btn--to-orange-300.btn--activated .btn__body{background-color:#ed9654!important;color:#fff!important}.btn--hoveractive.btn--to-orange-300:hover .btn__icon,.btn--to-orange-300.btn--activated .btn__icon{border-color:#ea8437!important;background-color:#ed9654!important}.btn--hoveractive.btn--to-orange-300:hover .btn__inline-icon,.btn--to-orange-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-400 .btn__body,.btn--violet-400 .btn__icon{background-color:#840048;color:#fff}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#6a003a;color:#fff}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#5c0032}.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-400.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-400:hover .btn__body,.btn--to-violet-400.btn--activated .btn__body{background-color:#840048!important;color:#fff!important}.btn--hoveractive.btn--to-violet-400:hover .btn__icon,.btn--to-violet-400.btn--activated .btn__icon{border-color:#770041!important;background-color:#840048!important}.btn--hoveractive.btn--to-violet-400:hover .btn__inline-icon,.btn--to-violet-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-500 .btn__body,.btn--violet-500 .btn__icon{background-color:#670047;color:#000}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#520039;color:#fff}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#480032}.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-500.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-500:hover .btn__body,.btn--to-violet-500.btn--activated .btn__body{background-color:#670047!important;color:#000!important}.btn--hoveractive.btn--to-violet-500:hover .btn__icon,.btn--to-violet-500.btn--activated .btn__icon{border-color:#5d0040!important;background-color:#670047!important}.btn--hoveractive.btn--to-violet-500:hover .btn__inline-icon,.btn--to-violet-500.btn--activated .btn__inline-icon{color:#000!important}.btn--violet-700 .btn__body,.btn--violet-700 .btn__icon{background-color:#7d347d;color:#000}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#642a64;color:#fff}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#582458}.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--violet-700.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-700:hover .btn__body,.btn--to-violet-700.btn--activated .btn__body{background-color:#7d347d!important;color:#000!important}.btn--hoveractive.btn--to-violet-700:hover .btn__icon,.btn--to-violet-700.btn--activated .btn__icon{border-color:#712f71!important;background-color:#7d347d!important}.btn--hoveractive.btn--to-violet-700:hover .btn__inline-icon,.btn--to-violet-700.btn--activated .btn__inline-icon{color:#000!important}.btn--red-600 .btn__body,.btn--red-600 .btn__icon{background-color:#d60d53;color:#fff}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#ab0a42;color:#fff}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#96093a}.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--red-600.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-red-600:hover .btn__body,.btn--to-red-600.btn--activated .btn__body{background-color:#d60d53!important;color:#fff!important}.btn--hoveractive.btn--to-red-600:hover .btn__icon,.btn--to-red-600.btn--activated .btn__icon{border-color:#c10c4b!important;background-color:#d60d53!important}.btn--hoveractive.btn--to-red-600:hover .btn__inline-icon,.btn--to-red-600.btn--activated .btn__inline-icon{color:#fff!important}.btn--brands-facebook .btn__body,.btn--brands-facebook .btn__icon{background-color:#067ceb;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__body,.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{background-color:#0563bc;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon{border-color:#0457a5}.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon svg,.btn--brands-facebook.btn--hoveractive:not([class^=btn--to-]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-brands-facebook:hover .btn__body,.btn--to-brands-facebook.btn--activated .btn__body{background-color:#067ceb!important;color:#fff!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__icon,.btn--to-brands-facebook.btn--activated .btn__icon{border-color:#0570d4!important;background-color:#067ceb!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__inline-icon,.btn--to-brands-facebook.btn--activated .btn__inline-icon{color:#fff!important}.container--default{max-width:1200px}.container--narrow{margin:auto;width:882px}.container--medium{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1350px}.container--wide{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1400px}.header-max-width{max-width:1340px!important}.container{margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;max-width:1150px}.grid-container{margin-left:1.25rem;margin-right:1.25rem;display:grid;grid-template-columns:1fr;grid-template-areas:"left-side" "content" "right-side";gap:1rem;max-width:1150px}.grid-container.article-section,.grid-container.person-grid-container{max-width:1400px}.grid-container.person-twitter-section{grid-template-columns:minmax(0,1200px)}@media (min-width: 1200px){.grid-container.person-twitter-section{grid-template-columns:minmax(0,240px) minmax(0,1fr) minmax(0,102px)}}.grid-container.no-max{max-width:none}.grid-content{grid-area:content}.grid-full{grid-column:left-side / right-side;grid-row:left-side / right-side}.grid-left-side{grid-area:left-side}.grid-left-side-with-content{grid-column:left-side / content;grid-row:left-side / content}.grid-right-side{grid-area:right-side}.grid-content-with-right-side{grid-column:content / right-side;grid-row:content / right-side}.footer-section{height:450px}.person-box-medium{max-width:485px;width:100%}.person-box-big{max-width:575px;width:100%}@media (min-width: 1200px){.footer-section{height:981px}}.text-input-addon{display:flex;align-items:center;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;font-weight:400;--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.text-input{border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;min-width:0px}.text-input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:active:not([disabled]):not([readonly]),.text-input:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly],.text-input[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.text-input[readonly]::-moz-placeholder,.text-input[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly]::placeholder,.text-input[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input-addon--l{border-right-width:0px}.text-input-addon--r{border-left-width:0px}.text-input:hover:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:focus:not([disabled]):not([readonly])~.text-input-addon,.text-input:active:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input[readonly]~.text-input-addon,.text-input[disabled]~.text-input-addon{--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input--has-addon-l.text-input{border-left-width:0px}.text-input--has-addon-r.text-input{border-right-width:0px}.select{position:relative;display:flex;width:100%;align-items:center;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 1200px){.select{padding-top:1rem;padding-bottom:1rem}}.select:after{position:absolute;right:0;padding-right:.75rem;font-size:1.3rem;font-weight:700;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;font-family:pirati-ui;content:""}.select__control{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 2rem .75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}@media (min-width: 1200px){.select__control{padding-top:1.25rem;padding-bottom:1.25rem}}.select__control{min-width:0px}.select__control:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.select__control:active:not([disabled]):not([readonly]),.select__control:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.select__control::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly],.select__control[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.select__control[readonly]::-moz-placeholder,.select__control[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly]::placeholder,.select__control[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.checkbox{position:relative;display:flex}.checkbox input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.checkbox input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(254 201 0 / var(--tw-border-opacity))}.checkbox input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.checkbox input[disabled]{cursor:not-allowed}.checkbox label{line-height:1.25}.checkbox:after{pointer-events:none;position:absolute;display:inline;content:"";height:5px;width:12px;top:6px;left:4px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg)}.radio{position:relative}.radio input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.radio input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.radio input:active,.radio input:focus{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.radio input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.radio input[disabled]{cursor:not-allowed}.radio label{display:flex;align-items:center;line-height:1.25}.radio:after{pointer-events:none;position:absolute;display:inline;height:.5rem;width:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));content:"";border-radius:50%;top:.375rem;left:.375rem}.form-field--error .text-input,.form-field--error .select__control,.form-field--error .text-input~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(214 13 83 / var(--tw-border-opacity))}.h-default{font-weight:500;line-height:1.25}.h-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:400;line-height:.96}.h-allcaps{font-weight:400;text-transform:uppercase;line-height:1.25}.head-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;text-transform:uppercase;line-height:1}@media (min-width: 992px){.head-xl{font-size:1.3rem}}.head-2xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:500;text-transform:uppercase;line-height:1;letter-spacing:-.01em}.head-3xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;text-transform:uppercase;line-height:1}.head-4xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-4xl{font-size:2.45rem;line-height:1}}@media (min-width: 1200px){.head-4xl{font-size:2.45rem}}.head-6xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-6xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-6xl{font-size:4rem}}.head-7xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-7xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-7xl{font-size:5.3rem}}.head-8xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-8xl{font-size:5.3rem;line-height:1}}@media (min-width: 1200px){.head-8xl{font-size:6.25rem}}.head-9xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-9xl{font-size:6.25rem;line-height:1}}@media (min-width: 1200px){.head-9xl{font-size:6.25rem}}.head-10xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase;letter-spacing:-.025em}@media (min-width: 768px){.head-10xl{font-size:7.5rem;line-height:1}}@media (min-width: 1200px){.head-10xl{font-size:7.5rem}}.head-14xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:500;text-transform:uppercase;line-height:4.75rem}@media (min-width: 1200px){.head-14xl{font-size:10.6rem;line-height:9.8rem}}.head-14xl.head-short{font-size:6.25rem;line-height:9.8rem}@media (min-width: 1200px){.head-14xl.head-short{font-size:10.6rem}}.head-14xl.head-compact{line-height:4rem}@media (min-width: 1200px){.head-14xl.head-compact{line-height:8.9rem}}.prose :where(.head-6xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-7xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-8xl):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(.head-9xl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.25em}p{font-size:.875rem;line-height:1.5rem}@media (min-width: 992px){p{font-size:1rem}}.vertical-time-line{border-left:1px solid green}.program-perex .content-block p{font-size:1.3rem;line-height:1.75rem}.content-block h2{margin-bottom:1.25rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase;line-height:1.75rem}@media (min-width: 992px){.content-block h2{line-height:2.5rem}}@media (min-width: 1200px){.content-block h2{font-size:2.45rem}}.content-block h3{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;text-transform:uppercase;line-height:1rem}@media (min-width: 1200px){.content-block h3{font-size:1.875rem;line-height:2rem}}.content-block h4{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:500;text-transform:uppercase;line-height:2rem}@media (min-width: 1200px){.content-block h4{font-size:1.6rem}}.content-block h4{letter-spacing:-.01em}.content-block a{--tw-text-opacity: 1;color:rgb(2 125 168 / var(--tw-text-opacity));text-decoration-line:underline}:root{--fc-button-bg-color: #000;--fc-button-border-color: #000;--fc-button-hover-bg-color: #fec900;--fc-button-hover-border-color: #fec900;--fc-button-active-bg-color: #fec900;--fc-button-active-border-color: #fec900;--fc-event-bg-color: #fec900;--fc-event-border-color: #fec900;--fc-event-text-color: #000;--fc-border-color: #000;--fc-today-bg-color: #000;--fc-event-dot-color: #000}.fc-col-header{width:100%!important}.fc .fc-col-header-cell-cushion:not([href]):hover,.fc .fc-daygrid-day-number:not([href]):hover{text-decoration-line:none}.fc .fc-col-header-cell{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.75rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;text-transform:capitalize;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.5rem 1.25rem;text-align:center;font-size:1.125rem;font-weight:600;text-transform:uppercase;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button:hover{text-decoration-line:none}.fc .fc-button:hover:not(:disabled),.fc .fc-button:active:not(:disabled){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.fc .fc-event{cursor:pointer;border-radius:0;border-style:none;padding:.375rem;font-size:1rem;background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);color:var(--fc-event-text-color)}.fc-header-toolbar{align-items:flex-start!important}@media (min-width: 1200px){.fc-header-toolbar{align-items:center!important}}.fc .fc-toolbar-title,.fc .fc-today-button{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;text-transform:capitalize}.fc-toolbar-chunk{display:flex;flex-wrap:wrap-reverse;justify-content:flex-end;gap:.5rem}.fc .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}@media (min-width: 1200px){.fc .fc-daygrid-day-number{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem}}.fc-daygrid-body,.fc-scrollgrid-sync-table{width:100%!important}@media (min-width: 1200px){.fc-daygrid-body,.fc-scrollgrid-sync-table{width:unset}}.fc .fc-day-today .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-dot-color)}.fc .fc-scroller-harness{overflow:visible}.article-box.dark-theme{background-color:#4c4c4c;color:#fff}.quote-icon{font-size:7rem;height:1rem}@media (min-width: 1200px){.quote-icon{font-size:15rem}}.header-carousel{display:block;margin:0 auto;position:relative}.header-carousel .header-carousel--text-wrapper,.header-carousel .elections--header-carousel--text-wrapper,.header-carousel .onboarding--header-carousel-text-wrapper{position:absolute;width:98vw;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;text-transform:uppercase}@media (min-width: 992px){.header-carousel .header-carousel--text-wrapper,.header-carousel .elections--header-carousel--text-wrapper{font-size:5.3rem}.header-carousel .onboarding--header-carousel-text-wrapper{font-size:4rem}}.header-carousel .header-carousel--text-wrapper{bottom:37%;height:85%}@media (min-width: 1200px){.header-carousel .header-carousel--text-wrapper{bottom:33%}}.header-carousel .elections--header-carousel--text-wrapper{bottom:45%;height:85%}@media (min-width: 1200px){.header-carousel .elections--header-carousel--text-wrapper{bottom:10%}}.header-carousel .header-carousel--image{inset:0;position:absolute;height:100%;width:100vw;-o-object-fit:cover;object-fit:cover}@media (min-width: 1200px){.header-carousel .header-carousel--image{height:458px}}@media (min-width: 768px){.header-carousel .header-carousel--image{height:100%}}@keyframes right_to_left{0%{margin-left:20%}to{margin-left:10%}}.btn{display:inline-flex;align-items:center;justify-content:center;font-family:Bebas Neue,Helvetica,Arial,sans-serif;line-height:2.25rem}.switch{margin-left:auto;margin-right:auto;padding-top:1.25rem;padding-bottom:1.25rem}.switch__item,.switch__item--elections{margin-bottom:.5rem;cursor:pointer;white-space:nowrap;padding:.5rem 1.25rem;text-align:center;font-weight:400;transition-duration:.2s}.switch__item:not(:last-child),.switch__item--elections:not(:last-child){margin-right:.5rem}.switch__item{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.switch__item:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item.switch__item--active,.switch__item.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.switch__item--elections{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.switch__item--elections:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item--elections.switch__item--active,.switch__item--elections.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(79 79 79 / var(--tw-bg-opacity))}.horizontal-scrolling{display:block;margin-left:-15px;margin-right:-15px;max-width:calc(100vw - 50px);overflow-x:scroll;overflow-y:hidden;text-align:center;white-space:nowrap}@media (min-width: 1200px){.horizontal-scrolling{max-width:calc(100% + 30px)}}.horizontal-scrolling.draggable{cursor:grab}.horizontal-scrolling.draggable.active,.horizontal-scrolling.draggable.active a{cursor:grabbing}.no-scrollbars{-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:none}.no-scrollbars::-webkit-scrollbar{display:none}.background-hover-zoom{background-position:center;background-size:100%;transition:background-size .3s ease-in}.background-hover-zoom:hover{background-size:110%}.popout__toggle-wrapper{display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding-left:1.25rem;padding-right:1.25rem;font-size:1.125rem;transition-duration:.15s}.popout__toggle-wrapper:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.popout__toggle-wrapper.popout__toggle-wrapper--active{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.popout__toggle-name{padding-top:1rem;padding-bottom:1rem}.popout__content-wrapper{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem}.popout__toggle-arrow{font-size:2.45rem}.candidate-secondary-box:not(:last-child){border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(208 208 208 / var(--tw-border-opacity))}.candidate-primary-box:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.candidate-primary-box:nth-child(odd) .candidate-primary-box--content{flex-direction:column-reverse}@media (min-width: 992px){.candidate-primary-box:nth-child(odd) .candidate-primary-box--content{flex-direction:row}.candidate-primary-box:nth-child(odd) .candidate-primary-box--text-column{align-items:flex-end}}.candidate-primary-box:nth-child(odd) .candidate-primary-box--text-column__hidden{--tw-translate-x: -100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(odd) .candidate-primary-box--image-column__hidden{--tw-translate-x: 100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(2n){--tw-bg-opacity: 1;background-color:rgb(238 238 238 / var(--tw-bg-opacity))}.candidate-primary-box:nth-child(2n) .candidate-primary-box--content{flex-direction:column-reverse}@media (min-width: 992px){.candidate-primary-box:nth-child(2n) .candidate-primary-box--content{flex-direction:row-reverse}}.candidate-primary-box:nth-child(2n) .candidate-primary-box--text-column{align-items:flex-start}.candidate-primary-box:nth-child(2n) .candidate-primary-box--text-column__hidden{--tw-translate-x: 100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.candidate-primary-box:nth-child(2n) .candidate-primary-box--image-column__hidden{--tw-translate-x: -100vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flip-card .prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75rem;margin-bottom:.75rem}.flip-card .prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25rem;margin-bottom:.25rem}.flip-card{height:33rem;width:auto;cursor:pointer;perspective:1000px}.flip-card-inner{position:relative;width:100%;height:100%;transition:transform .8s;transform-style:preserve-3d}.flip-card:hover .flip-card-inner,.flip-card:focus .flip-card-inner{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden}.flip-card-back{transform:rotateY(180deg)}.article-timeline-grid{display:grid;gap:.5rem;margin-top:-20px;grid-template-areas:"left-article" "right-article"}@media (min-width: 1200px){.article-timeline-grid{grid-template-columns:minmax(0,570px) 1px minmax(0,570px);grid-template-areas:"left-article timeline right-article"}}.article-timeline-grid__left-article{grid-area:left-article}.article-timeline-grid__right-article{grid-area:right-article}.article-timeline-grid__timeline{grid-area:timeline}.article-timeline-grid__timeline:before{content:"";background:linear-gradient(180deg,#02002400,#fff);position:absolute;bottom:-1px;height:20px;z-index:10;width:2px;left:-1px}.article-timeline-grid__timeline .article-timeline--month{transform:translate(-50%);top:-1rem;z-index:100}.footer-collapsible__toggle{display:flex;cursor:pointer;align-items:center}.footer-collapsible__toggle:after{content:"";font-family:pirati-ui;margin-left:auto;font-size:3rem;font-weight:300;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.footer-collapsible__toggle.footer-collapsible__toggle--open:after{transform:rotate(-180deg)}@media (min-width: 768px){.footer-collapsible__toggle:after{display:none;cursor:auto}}.navbar{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.navbar .navbar__logo--white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity))!important}.navbar .navbar__logo--white:not(.navbar__district__logo){display:inline}.navbar .navbar__logo--white.navbar__district__logo{display:flex}.navbar .navbar__logo--black{display:none;--tw-text-opacity: 1 !important;color:rgb(0 0 0 / var(--tw-text-opacity))!important}.navbar .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.navbar .navbar__menu-item--selected{text-decoration-line:underline}.navbar .navbar__menu-item--selected:hover{text-decoration-line:none}.navbar.navbar--onboarding{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.navbar.navbar--onboarding.navbar--transparent{background-color:transparent}.navbar.navbar--onboarding.navbar--transparent .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.navbar.navbar--onboarding.navbar--transparent .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.navbar.navbar--elections{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar.navbar--elections .navbar__logo--white{display:none}.navbar.navbar--elections .navbar__logo--black{display:inline}.navbar.navbar--elections .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.navbar.navbar--elections .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.navbar.navbar--elections .bar1,.navbar.navbar--elections .bar2,.navbar.navbar--elections .bar3{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.navbar.navbar--elections.navbar--elections-transparent{background-color:transparent}.navbar.navbar--elections.navbar--elections-transparent .navbar__border-button{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar.navbar--elections.navbar--elections-transparent .navbar__border-button:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.navbar.navbar--transparent{background-color:transparent}@media (min-width: 1200px){.navbar.navbar--transparent{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}}.navbar.navbar--transparent .navbar__logo--white{display:none}.navbar.navbar--transparent .navbar__logo--black:not(.navbar__district__logo){display:inline}.navbar.navbar--transparent .navbar__logo--black.navbar__district__logo{display:flex}.navbar.navbar--transparent .bar1,.navbar.navbar--transparent .bar2,.navbar.navbar--transparent .bar3{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}@media (min-width: 1200px){.navbar.navbar--transparent.navbar--on-dark-bg{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--white:not(.navbar__district__logo){display:inline}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--white.navbar__district__logo{display:flex}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--black{display:none}.navbar.navbar--transparent.navbar--on-dark-bg .bar1,.navbar.navbar--transparent.navbar--on-dark-bg .bar2,.navbar.navbar--transparent.navbar--on-dark-bg .bar3{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bar1,.bar2,.bar3{background-color:#fff;display:block;height:2px;margin:6px 0;transition:.4s;width:35px}.navbar__mobile-menu__toggle:checked+label .bar1{transform:rotate(-45deg) translate(-3px,4px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu__toggle:checked+label .bar2{opacity:0}.navbar__mobile-menu__toggle:checked+label .bar3{transform:rotate(45deg) translate(-8px,-8px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0;transition:visibility .1s,opacity .1s linear}.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:auto;visibility:visible;z-index:20;opacity:1}@media (min-width: 1200px){.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0}}.newsletter-section{background-size:cover;background-repeat:no-repeat;background-position:-400px}@media (min-width: 768px){.newsletter-section{background-position:left top}}.region-map__list{-moz-columns:2;columns:2}.region-map__region{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.5s;transition:all .3s ease-out;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.region-map__region:after{content:"";width:10px;position:absolute;height:10px;background:#fec900;z-index:10}.region-map__region--current{fill:#fec900}@media (min-width: 992px){.faq-answer:nth-child(4n) .faq-answer--content{flex-direction:row-reverse}.faq-answer:nth-child(4n) .faq-answer--person{flex-direction:row-reverse}.faq-answer:nth-child(4n) .faq-answer--person--text{margin-left:-5rem}}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-4{bottom:1rem}.left-0{left:0}.left-10{left:2.5rem}.right-4{right:1rem}.top-0{top:0}.top-10{top:2.5rem}.top-\[-1px\]{top:-1px}.top-\[2\.75rem\]{top:2.75rem}.z-20{z-index:20}.z-30{z-index:30}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-8{grid-column:span 8 / span 8}.float-right{float:right}.float-left{float:left}.m-10{margin:2.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-20{margin-top:5rem;margin-bottom:5rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.\!mb-0{margin-bottom:0!important}.\!mb-16{margin-bottom:4rem!important}.\!ml-0{margin-left:0!important}.\!ml-\[unset\]{margin-left:unset!important}.\!mr-\[unset\]{margin-right:unset!important}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-\[0\.03rem\]{margin-bottom:.03rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-\[-5\.5rem\]{margin-left:-5.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mr-\[-2rem\]{margin-right:-2rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[-0\.5rem\]{margin-top:-.5rem}.mt-\[-5px\]{margin-top:-5px}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.\!h-0{height:0px!important}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-36{height:9rem}.h-64{height:16rem}.h-\[17rem\]{height:17rem}.h-\[27rem\]{height:27rem}.h-\[33rem\]{height:33rem}.h-\[700px\]{height:700px}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:0px}.min-h-\[600px\]{min-height:600px}.w-0{width:0px}.w-1\/2{width:50%}.w-10\/12{width:83.333333%}.w-12{width:3rem}.w-24{width:6rem}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-36{width:9rem}.w-4\/6{width:66.666667%}.w-48{width:12rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[100px\]{width:100px}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[220px\]{width:220px}.w-\[calc\(100vw_-_3rem\)\]{width:calc(100vw - 3rem)}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[9rem\]{min-width:9rem}.min-w-\[calc\(100vw_-_2\.5rem\)\]{min-width:calc(100vw - 2.5rem)}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-72{max-width:18rem}.max-w-\[350px\]{max-width:350px}.max-w-\[400px\]{max-width:400px}.max-w-\[550px\]{max-width:550px}.max-w-\[60\%\]{max-width:60%}.max-w-\[650px\]{max-width:650px}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-none{max-width:none}.max-w-screen-lg{max-width:992px}.max-w-xl{max-width:36rem}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-scale-x-100{--tw-scale-x: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-y-4{row-gap:1rem}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-4{border-width:4px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l-0{border-left-width:0px}.border-r-\[27rem\]{border-right-width:27rem}.border-t-\[33rem\]{border-top-width:33rem}.border-none{border-style:none}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-grey-180{--tw-border-opacity: 1;border-color:rgb(238 238 238 / var(--tw-border-opacity))}.border-grey-200{--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(249 206 5 / var(--tw-border-opacity))}.border-r-\[transparent\]{border-right-color:transparent}.\!bg-grey-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 243 243 / var(--tw-bg-opacity))!important}.\!bg-grey-180{--tw-bg-opacity: 1 !important;background-color:rgb(238 238 238 / var(--tw-bg-opacity))!important}.bg-\[\#00000088\]{background-color:#0008}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(76 169 113 / var(--tw-bg-opacity))}.bg-grey-100{--tw-bg-opacity: 1;background-color:rgb(243 243 243 / var(--tw-bg-opacity))}.bg-grey-150{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.bg-grey-180{--tw-bg-opacity: 1;background-color:rgb(238 238 238 / var(--tw-bg-opacity))}.bg-grey-185{--tw-bg-opacity: 1;background-color:rgb(189 189 189 / var(--tw-bg-opacity))}.bg-grey-200{--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(237 150 84 / var(--tw-bg-opacity))}.bg-pirati-yellow{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(214 13 83 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity: 1;background-color:rgb(255 234 90 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-\[top_right_-7rem\]{background-position:top right -7rem}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.\!pl-\[unset\]{padding-left:unset!important}.\!pr-\[unset\]{padding-right:unset!important}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-4{padding-left:1rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-12{padding-top:3rem}.pt-14{padding-top:3.5rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-24{padding-top:6rem}.pt-28{padding-top:7rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-96{padding-top:24rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif}.font-condensed{font-family:Roboto Condensed,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.6rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.45rem}.text-5xl{font-size:3rem}.text-6xl{font-size:4rem}.text-7xl{font-size:5.3rem}.text-8xl{font-size:6.25rem}.text-9xl{font-size:7.5rem}.text-\[3\.25rem\]{font-size:3.25rem}.text-\[3\.5rem\]{font-size:3.5rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.3rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-10{line-height:2.5rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[10\.5rem\]{line-height:10.5rem}.leading-none{line-height:1}.tracking-normal{letter-spacing:0em}.tracking-wide{letter-spacing:.025em}.\!text-black{--tw-text-opacity: 1 !important;color:rgb(0 0 0 / var(--tw-text-opacity))!important}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-grey-185{--tw-text-opacity: 1;color:rgb(189 189 189 / var(--tw-text-opacity))}.text-grey-200{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-grey-250{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity))}.text-grey-300{--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity))}.text-grey-350{--tw-text-opacity: 1;color:rgb(79 79 79 / var(--tw-text-opacity))}.text-grey-600{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(237 150 84 / var(--tw-text-opacity))}.text-pirati-yellow{--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(214 13 83 / var(--tw-text-opacity))}.text-turquoise-500{--tw-text-opacity: 1;color:rgb(37 165 185 / var(--tw-text-opacity))}.text-violet-300{--tw-text-opacity: 1;color:rgb(141 65 95 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.\!no-underline{text-decoration-line:none!important}.decoration-1{text-decoration-thickness:1px}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.bg-blend-darken{background-blend-mode:darken}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-100{transition-delay:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.btn.btn--fullwidth,.btn.btn--fullwidth .btn__body-wrap{width:100%;max-width:100%}.btn.btn--fullwidth .btn__body{flex:1}.btn.btn--autowidth{width:auto}@media (min-width: 1200px){.grid-container{grid-template-columns:240px 1fr 102px;grid-template-areas:"left-side content right-side";margin-left:10vw}}@media (min-width: 2060px){.grid-container{margin-left:20vw}}@media (min-width: 1200px){.grid-container.person-grid-container{grid-template-columns:240px 1fr 339px}}.head-alt-xl,.content-block .head-alt-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:400;line-height:.96}.head-alt-lg,.content-block .head-alt-lg{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:4rem;font-weight:400;line-height:.96}.head-alt-md,.content-block .head-alt-md{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:400;line-height:.96}.head-alt-base,.content-block .head-alt-base{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:400;line-height:.96}.head-alt-sm,.content-block .head-alt-sm{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:400;line-height:.96}.head-alt-xs,.content-block .head-alt-xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:400;line-height:.96}.head-alt-2xs,.content-block .head-alt-2xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:400;line-height:.96}.head-base,.content-block .head-base{font-size:1.875rem;font-weight:500;line-height:1.25}.head-sm,.content-block .head-sm{font-size:1.6rem;font-weight:500;line-height:1.25}.head-xs,.content-block .head-xs{font-size:1.3rem;font-weight:500;line-height:1.25}.head-2xs,.content-block .head-2xs{font-size:1.125rem;font-weight:500;line-height:1.25}.head-heavy-base,.content-block .head-heavy-base{font-size:1.875rem;font-weight:700;line-height:1.25}.head-heavy-sm,.content-block .head-heavy-sm{font-size:1.6rem;font-weight:700;line-height:1.25}.head-heavy-xs,.content-block .head-heavy-xs{font-size:1.3rem;font-weight:700;line-height:1.25}.head-heavy-2xs,.content-block .head-heavy-2xs{font-size:1.125rem;font-weight:700;line-height:1.25}.head-allcaps-2xs,.content-block .head-allcaps-2xs{font-size:1.125rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-3xs,.content-block .head-allcaps-3xs{font-size:1rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-4xs,.content-block .head-allcaps-4xs{font-size:.875rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-2xs,.content-block .head-allcaps-heavy-2xs{font-size:1.125rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-3xs,.content-block .head-allcaps-heavy-3xs{font-size:1rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-4xs,.content-block .head-allcaps-heavy-4xs{font-size:.875rem;font-weight:700;text-transform:uppercase;line-height:1.25}@media (min-width: 1200px){.switch__item{padding:.5rem 1.25rem}}.faq-answer .faq-answer--person{flex-direction:row-reverse}@media (min-width: 992px){.faq-answer:not(:nth-child(4n)) .faq-answer--person{flex-direction:row}}.slick-track[data-v-e4caeaf8]{position:relative;top:0;left:0;display:block;transform:translateZ(0)}.slick-track.slick-center[data-v-e4caeaf8]{margin-left:auto;margin-right:auto}.slick-track[data-v-e4caeaf8]:after,.slick-track[data-v-e4caeaf8]:before{display:table;content:""}.slick-track[data-v-e4caeaf8]:after{clear:both}.slick-loading .slick-track[data-v-e4caeaf8]{visibility:hidden}.slick-slide[data-v-e4caeaf8]{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide[data-v-e4caeaf8]{float:right}.slick-slide img[data-v-e4caeaf8]{display:block}.slick-slide.slick-loading img[data-v-e4caeaf8]{display:none}.slick-slide.dragging img[data-v-e4caeaf8]{pointer-events:none}.slick-initialized .slick-slide[data-v-e4caeaf8]{display:block}.slick-loading .slick-slide[data-v-e4caeaf8]{visibility:hidden}.slick-vertical .slick-slide[data-v-e4caeaf8]{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden[data-v-21137603]{display:none}.slick-slider[data-v-3d1a4f76]{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list[data-v-3d1a4f76]{position:relative;display:block;overflow:hidden;margin:0;padding:0;transform:translateZ(0)}.slick-list[data-v-3d1a4f76]:focus{outline:none}.slick-list.dragging[data-v-3d1a4f76]{cursor:pointer;cursor:hand}::-moz-selection{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity));background:#f9ce05}::selection{background:#f9ce05}:root{font-size:16px}html{scroll-behavior:smooth}body{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1rem}a:hover{text-decoration-line:underline}a.icon-link:hover{text-decoration-line:none}a.icon-link:hover span{text-decoration-line:underline}[v-cloak]{display:none}.copyleft{transform:scaleX(-1)!important}.inline-block-nogap{font-size:0}.iframe-container{position:relative;padding-bottom:56.25%;height:0}.iframe-container iframe{position:absolute;top:0;left:0;height:100%;width:100%}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{background:transparent;width:0px}.universal-content-container{margin-top:10rem!important;margin-bottom:2rem!important;padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1400px}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.hover\:bg-grey-600:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.group:hover .group-hover\:pointer-events-auto{pointer-events:auto}.group:hover .group-hover\:-translate-x-2{--tw-translate-x: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-yellow-600{--tw-border-opacity: 1;border-color:rgb(215 177 3 / var(--tw-border-opacity))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width: 576px){.sm\:w-5\/12{width:41.666667%}.sm\:w-6\/12{width:50%}.sm\:text-4xl{font-size:2.45rem}.sm\:btn--autowidth.btn{width:auto}}@media (min-width: 768px){.md\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:mb-16{margin-bottom:4rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-96{width:24rem}.md\:shrink-0{flex-shrink:0}.md\:auto-rows-auto{grid-auto-rows:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:2rem}.md\:gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.md\:gap-y-5{row-gap:1.25rem}.md\:pr-0{padding-right:0}.md\:text-2xl{font-size:1.6rem}.md\:text-4xl{font-size:2.45rem}.md\:text-base{font-size:1rem}}@media (min-width: 992px){.lg\:float-right{float:right}.lg\:float-left{float:left}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mb-12{margin-bottom:3rem}.lg\:mb-16{margin-bottom:4rem}.lg\:mb-3{margin-bottom:.75rem}.lg\:ml-0{margin-left:0}.lg\:mt-0{margin-top:0}.lg\:mt-\[-1rem\]{margin-top:-1rem}.lg\:block{display:block}.lg\:inline{display:inline}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-96{height:24rem}.lg\:w-1\/2{width:50%}.lg\:w-2\/5{width:40%}.lg\:w-3\/5{width:60%}.lg\:w-5\/12{width:41.666667%}.lg\:w-\[180px\]{width:180px}.lg\:w-\[190px\]{width:190px}.lg\:w-\[280px\]{width:280px}.lg\:w-\[unset\]{width:unset}.lg\:w-min{width:-moz-min-content;width:min-content}.lg\:min-w-\[15rem\]{min-width:15rem}.lg\:min-w-\[24rem\]{min-width:24rem}.lg\:max-w-screen-lg{max-width:992px}.lg\:grow-0{flex-grow:0}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:basis-2\/3{flex-basis:66.666667%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:items-center{align-items:center}.lg\:gap-2{gap:.5rem}.lg\:gap-4{gap:1rem}.lg\:gap-8{gap:2rem}.lg\:overflow-x-visible{overflow-x:visible}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:text-justify{text-align:justify}.lg\:text-6xl{font-size:4rem}.lg\:text-\[5\.5rem\]{font-size:5.5rem}.lg\:text-base{font-size:1rem}}@media (min-width: 1200px){.xl\:absolute{position:absolute}.xl\:col-span-1{grid-column:span 1 / span 1}.xl\:col-span-3{grid-column:span 3 / span 3}.xl\:m-0{margin:0}.xl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xl\:mb-0{margin-bottom:0}.xl\:mb-12{margin-bottom:3rem}.xl\:mb-20{margin-bottom:5rem}.xl\:mb-24{margin-bottom:6rem}.xl\:mb-32{margin-bottom:8rem}.xl\:mb-6{margin-bottom:1.5rem}.xl\:mb-8{margin-bottom:2rem}.xl\:mr-12{margin-right:3rem}.xl\:mr-2{margin-right:.5rem}.xl\:mt-2{margin-top:.5rem}.xl\:mt-\[-0\.7rem\]{margin-top:-.7rem}.xl\:mt-\[-1rem\]{margin-top:-1rem}.xl\:block{display:block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:h-14{height:3.5rem}.xl\:h-\[600px\]{height:600px}.xl\:h-\[696px\]{height:696px}.xl\:h-screen{height:100vh}.xl\:w-1\/2{width:50%}.xl\:w-14{width:3.5rem}.xl\:w-60{width:15rem}.xl\:w-auto{width:auto}.xl\:shrink-0{flex-shrink:0}.xl\:grow-0{flex-grow:0}.xl\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:flex-col{flex-direction:column}.xl\:items-start{align-items:flex-start}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:justify-start{justify-content:flex-start}.xl\:justify-between{justify-content:space-between}.xl\:gap-0{gap:0px}.xl\:gap-12{gap:3rem}.xl\:gap-16{gap:4rem}.xl\:gap-4{gap:1rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.xl\:justify-self-end{justify-self:end}.xl\:bg-transparent{background-color:transparent}.xl\:bg-center{background-position:center}.xl\:p-12{padding:3rem}.xl\:px-0{padding-left:0;padding-right:0}.xl\:px-3{padding-left:.75rem;padding-right:.75rem}.xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xl\:py-0{padding-top:0;padding-bottom:0}.xl\:py-24{padding-top:6rem;padding-bottom:6rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xl\:py-52{padding-top:13rem;padding-bottom:13rem}.xl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xl\:py-8{padding-top:2rem;padding-bottom:2rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pb-24{padding-bottom:6rem}.xl\:pl-32{padding-left:8rem}.xl\:pl-8{padding-left:2rem}.xl\:pr-0{padding-right:0}.xl\:pr-3{padding-right:.75rem}.xl\:pr-4{padding-right:1rem}.xl\:pr-40{padding-right:10rem}.xl\:pt-1{padding-top:.25rem}.xl\:pt-16{padding-top:4rem}.xl\:pt-32{padding-top:8rem}.xl\:pt-48{padding-top:12rem}.xl\:pt-6{padding-top:1.5rem}.xl\:pt-8{padding-top:2rem}.xl\:text-14xl{font-size:10.6rem}.xl\:text-3xl{font-size:1.875rem}.xl\:text-4xl{font-size:2.45rem}.xl\:text-7xl{font-size:5.3rem}.xl\:text-9xl{font-size:7.5rem}.xl\:text-lg{font-size:1.125rem}.xl\:text-xl{font-size:1.3rem}.xl\:leading-\[10\.5rem\]{line-height:10.5rem}.xl\:\[flex-flow\:column_wrap\]{flex-flow:column wrap}.xl\:\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}}@media (min-width: 1366px){.\32xl\:h-\[550px\]{height:550px}.\32xl\:h-\[646px\]{height:646px}.\32xl\:text-\[6\.5rem\]{font-size:6.5rem}}@media (min-width: 1600px){.\32\.5xl\:ml-\[-10rem\]{margin-left:-10rem}}@media (min-width: 2060px){.\33xl\:text-lg{font-size:1.125rem}}.\[\&\>div\.content-block\>p\:first-child\]\:mt-0>div.content-block>p:first-child{margin-top:0}.\[\&_\*\]\:\!gap-0 *{gap:0px!important}.\[\&_\*\]\:\!p-0 *{padding:0!important}.\[\&_\*\]\:\!text-\[0rem\] *{font-size:0rem!important}.\[\&_\*\]\:\!leading-\[0px\] *{line-height:0px!important}.\[\&_\*\]\:\!delay-0 *{transition-delay:0s!important}.\[\&_\*\]\:\!duration-0 *{transition-duration:0s!important}.\[\&_\.content-block\]\:flex .content-block{display:flex}.\[\&_\.content-block\]\:flex-col .content-block{flex-direction:column}.\[\&_\.content-block\]\:gap-4 .content-block{gap:1rem}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_p\]\:\!text-lg p{font-size:1.125rem!important}.\[\&_p\]\:text-lg p{font-size:1.125rem}.\[\&_p\]\:leading-7 p{line-height:1.75rem}.\[\&_p\]\:text-black p{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.\[\&_p\]\:delay-300 p{transition-delay:.3s}.\[\&_p\]\:duration-150 p{transition-duration:.15s}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} diff --git a/shared_legacy/static/styleguide2/main.js b/shared_legacy/static/styleguide2/main.js new file mode 100644 index 0000000000000000000000000000000000000000..ce40e3a501d4e5ddb88c2d781b991d9ce4998cdc --- /dev/null +++ b/shared_legacy/static/styleguide2/main.js @@ -0,0 +1,45 @@ +var Ms=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function fh(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Vu={exports:{}};(function(t,e){var n={};/*! + * Vue.js v2.7.16 + * (c) 2014-2023 Evan You + * Released under the MIT License. + *//*! + * Vue.js v2.7.16 + * (c) 2014-2023 Evan You + * Released under the MIT License. + */(function(i,s){t.exports=s()})(Ms,function(){var i=Object.freeze({}),s=Array.isArray;function l(r){return r==null}function u(r){return r!=null}function p(r){return r===!0}function h(r){return typeof r=="string"||typeof r=="number"||typeof r=="symbol"||typeof r=="boolean"}function y(r){return typeof r=="function"}function g(r){return r!==null&&typeof r=="object"}var S=Object.prototype.toString;function A(r){return S.call(r)==="[object Object]"}function w(r){var a=parseFloat(String(r));return a>=0&&Math.floor(a)===a&&isFinite(r)}function O(r){return u(r)&&typeof r.then=="function"&&typeof r.catch=="function"}function B(r){return r==null?"":Array.isArray(r)||A(r)&&r.toString===S?JSON.stringify(r,$,2):String(r)}function $(r,a){return a&&a.__v_isRef?a.value:a}function H(r){var a=parseFloat(r);return isNaN(a)?r:a}function V(r,a){for(var o=Object.create(null),c=r.split(","),f=0;f<c.length;f++)o[c[f]]=!0;return a?function(d){return o[d.toLowerCase()]}:function(d){return o[d]}}var Q=V("slot,component",!0),E=V("key,ref,slot,slot-scope,is");function X(r,a){var o=r.length;if(o){if(a===r[o-1])return void(r.length=o-1);var c=r.indexOf(a);if(c>-1)return r.splice(c,1)}}var z=Object.prototype.hasOwnProperty;function q(r,a){return z.call(r,a)}function Y(r){var a=Object.create(null);return function(o){return a[o]||(a[o]=r(o))}}var _e=/-(\w)/g,oe=Y(function(r){return r.replace(_e,function(a,o){return o?o.toUpperCase():""})}),ke=Y(function(r){return r.charAt(0).toUpperCase()+r.slice(1)}),Ce=/\B([A-Z])/g,pe=Y(function(r){return r.replace(Ce,"-$1").toLowerCase()}),Ge=Function.prototype.bind?function(r,a){return r.bind(a)}:function(r,a){function o(c){var f=arguments.length;return f?f>1?r.apply(a,arguments):r.call(a,c):r.call(a)}return o._length=r.length,o};function Ve(r,a){a=a||0;for(var o=r.length-a,c=new Array(o);o--;)c[o]=r[o+a];return c}function te(r,a){for(var o in a)r[o]=a[o];return r}function Pe(r){for(var a={},o=0;o<r.length;o++)r[o]&&te(a,r[o]);return a}function re(r,a,o){}var Re=function(r,a,o){return!1},st=function(r){return r};function Qe(r,a){if(r===a)return!0;var o=g(r),c=g(a);if(!o||!c)return!o&&!c&&String(r)===String(a);try{var f=Array.isArray(r),d=Array.isArray(a);if(f&&d)return r.length===a.length&&r.every(function(m,L){return Qe(m,a[L])});if(r instanceof Date&&a instanceof Date)return r.getTime()===a.getTime();if(f||d)return!1;var v=Object.keys(r),b=Object.keys(a);return v.length===b.length&&v.every(function(m){return Qe(r[m],a[m])})}catch(m){return!1}}function ot(r,a){for(var o=0;o<r.length;o++)if(Qe(r[o],a))return o;return-1}function ht(r){var a=!1;return function(){a||(a=!0,r.apply(this,arguments))}}function lt(r,a){return r===a?r===0&&1/r!=1/a:r==r||a==a}var Je="data-server-rendered",Ke=["component","directive","filter"],Vt=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch","renderTracked","renderTriggered"],Fe={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:Re,isReservedAttr:Re,isUnknownElement:Re,getTagNamespace:re,parsePlatformTagName:st,mustUseProp:Re,async:!0,_lifecycleHooks:Vt},Ft=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function At(r){var a=(r+"").charCodeAt(0);return a===36||a===95}function be(r,a,o,c){Object.defineProperty(r,a,{value:o,enumerable:!!c,writable:!0,configurable:!0})}var Jn=new RegExp("[^".concat(Ft.source,".$_\\d]")),An="__proto__"in{},Me=typeof window!="undefined",Ue=Me&&window.navigator.userAgent.toLowerCase(),Xe=Ue&&/msie|trident/.test(Ue),vt=Ue&&Ue.indexOf("msie 9.0")>0,Cn=Ue&&Ue.indexOf("edge/")>0;Ue&&Ue.indexOf("android");var Kn=Ue&&/iphone|ipad|ipod|ios/.test(Ue),ct,Ct=Ue&&Ue.match(/firefox\/(\d+)/),Ut={}.watch,Dt=!1;if(Me)try{var on={};Object.defineProperty(on,"passive",{get:function(){Dt=!0}}),window.addEventListener("test-passive",null,on)}catch(r){}var et=function(){return ct===void 0&&(ct=!Me&&typeof Ms!="undefined"&&Ms.process&&n.VUE_ENV==="server"),ct},En=Me&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function Et(r){return typeof r=="function"&&/native code/.test(r.toString())}var zt,Sn=typeof Symbol!="undefined"&&Et(Symbol)&&typeof Reflect!="undefined"&&Et(Reflect.ownKeys);zt=typeof Set!="undefined"&&Et(Set)?Set:function(){function r(){this.set=Object.create(null)}return r.prototype.has=function(a){return this.set[a]===!0},r.prototype.add=function(a){this.set[a]=!0},r.prototype.clear=function(){this.set=Object.create(null)},r}();var Se=null;function Tt(r){r===void 0&&(r=null),r||Se&&Se._scope.off(),Se=r,r&&r._scope.on()}var tt=function(){function r(a,o,c,f,d,v,b,m){this.tag=a,this.data=o,this.children=c,this.text=f,this.elm=d,this.ns=void 0,this.context=v,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=o&&o.key,this.componentOptions=b,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=m,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(r.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),r}(),Wt=function(r){r===void 0&&(r="");var a=new tt;return a.text=r,a.isComment=!0,a};function N(r){return new tt(void 0,void 0,void 0,String(r))}function Z(r){var a=new tt(r.tag,r.data,r.children&&r.children.slice(),r.text,r.elm,r.context,r.componentOptions,r.asyncFactory);return a.ns=r.ns,a.isStatic=r.isStatic,a.key=r.key,a.isComment=r.isComment,a.fnContext=r.fnContext,a.fnOptions=r.fnOptions,a.fnScopeId=r.fnScopeId,a.asyncMeta=r.asyncMeta,a.isCloned=!0,a}typeof SuppressedError=="function"&&SuppressedError;var ne=0,ce=[],le=function(){for(var r=0;r<ce.length;r++){var a=ce[r];a.subs=a.subs.filter(function(o){return o}),a._pending=!1}ce.length=0},Le=function(){function r(){this._pending=!1,this.id=ne++,this.subs=[]}return r.prototype.addSub=function(a){this.subs.push(a)},r.prototype.removeSub=function(a){this.subs[this.subs.indexOf(a)]=null,this._pending||(this._pending=!0,ce.push(this))},r.prototype.depend=function(a){r.target&&r.target.addDep(this)},r.prototype.notify=function(a){for(var o=this.subs.filter(function(d){return d}),c=0,f=o.length;c<f;c++)o[c].update()},r}();Le.target=null;var ze=[];function ut(r){ze.push(r),Le.target=r}function Gt(){ze.pop(),Le.target=ze[ze.length-1]}var kt=Array.prototype,ln=Object.create(kt);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(r){var a=kt[r];be(ln,r,function(){for(var o=[],c=0;c<arguments.length;c++)o[c]=arguments[c];var f,d=a.apply(this,o),v=this.__ob__;switch(r){case"push":case"unshift":f=o;break;case"splice":f=o.slice(2)}return f&&v.observeArray(f),v.dep.notify(),d})});var xn=Object.getOwnPropertyNames(ln),Zt={},wr=!0;function gt(r){wr=r}var Xn={notify:re,depend:re,addSub:re,removeSub:re},jo=function(){function r(a,o,c){if(o===void 0&&(o=!1),c===void 0&&(c=!1),this.value=a,this.shallow=o,this.mock=c,this.dep=c?Xn:new Le,this.vmCount=0,be(a,"__ob__",this),s(a)){if(!c)if(An)a.__proto__=ln;else for(var f=0,d=xn.length;f<d;f++)be(a,b=xn[f],ln[b]);o||this.observeArray(a)}else{var v=Object.keys(a);for(f=0;f<v.length;f++){var b;cn(a,b=v[f],Zt,void 0,o,c)}}}return r.prototype.observeArray=function(a){for(var o=0,c=a.length;o<c;o++)Yt(a[o],!1,this.mock)},r}();function Yt(r,a,o){return r&&q(r,"__ob__")&&r.__ob__ instanceof jo?r.__ob__:!wr||!o&&et()||!s(r)&&!A(r)||!Object.isExtensible(r)||r.__v_skip||We(r)||r instanceof tt?void 0:new jo(r,a,o)}function cn(r,a,o,c,f,d,v){v===void 0&&(v=!1);var b=new Le,m=Object.getOwnPropertyDescriptor(r,a);if(!m||m.configurable!==!1){var L=m&&m.get,C=m&&m.set;L&&!C||o!==Zt&&arguments.length!==2||(o=r[a]);var _=f?o&&o.__ob__:Yt(o,!1,d);return Object.defineProperty(r,a,{enumerable:!0,configurable:!0,get:function(){var x=L?L.call(r):o;return Le.target&&(b.depend(),_&&(_.dep.depend(),s(x)&&Bo(x))),We(x)&&!f?x.value:x},set:function(x){var T=L?L.call(r):o;if(lt(T,x)){if(C)C.call(r,x);else{if(L)return;if(!f&&We(T)&&!We(x))return void(T.value=x);o=x}_=f?x&&x.__ob__:Yt(x,!1,d),b.notify()}}}),b}}function ri(r,a,o){if(!Tn(r)){var c=r.__ob__;return s(r)&&w(a)?(r.length=Math.max(r.length,a),r.splice(a,1,o),c&&!c.shallow&&c.mock&&Yt(o,!1,!0),o):a in r&&!(a in Object.prototype)?(r[a]=o,o):r._isVue||c&&c.vmCount?o:c?(cn(c.value,a,o,void 0,c.shallow,c.mock),c.dep.notify(),o):(r[a]=o,o)}}function ga(r,a){if(s(r)&&w(a))r.splice(a,1);else{var o=r.__ob__;r._isVue||o&&o.vmCount||Tn(r)||q(r,a)&&(delete r[a],o&&o.dep.notify())}}function Bo(r){for(var a=void 0,o=0,c=r.length;o<c;o++)(a=r[o])&&a.__ob__&&a.__ob__.dep.depend(),s(a)&&Bo(a)}function ma(r){return Vo(r,!0),be(r,"__v_isShallow",!0),r}function Vo(r,a){Tn(r)||Yt(r,a,et())}function Dn(r){return Tn(r)?Dn(r.__v_raw):!(!r||!r.__ob__)}function ii(r){return!(!r||!r.__v_isShallow)}function Tn(r){return!(!r||!r.__v_isReadonly)}var Lr="__v_isRef";function We(r){return!(!r||r.__v_isRef!==!0)}function Fo(r,a){if(We(r))return r;var o={};return be(o,Lr,!0),be(o,"__v_isShallow",a),be(o,"dep",cn(o,"value",r,null,a,et())),o}function ai(r,a,o){Object.defineProperty(r,o,{enumerable:!0,configurable:!0,get:function(){var c=a[o];if(We(c))return c.value;var f=c&&c.__ob__;return f&&f.dep.depend(),c},set:function(c){var f=a[o];We(f)&&!We(c)?f.value=c:a[o]=c}})}function Uo(r,a,o){var c=r[a];if(We(c))return c;var f={get value(){var d=r[a];return d===void 0?o:d},set value(d){r[a]=d}};return be(f,Lr,!0),f}var Mf="__v_rawToReadonly",If="__v_rawToShallowReadonly";function zo(r){return Wo(r,!1)}function Wo(r,a){if(!A(r)||Tn(r))return r;var o=a?If:Mf,c=r[o];if(c)return c;var f=Object.create(Object.getPrototypeOf(r));be(r,o,f),be(f,"__v_isReadonly",!0),be(f,"__v_raw",r),We(r)&&be(f,Lr,!0),(a||ii(r))&&be(f,"__v_isShallow",!0);for(var d=Object.keys(r),v=0;v<d.length;v++)Nf(f,r,d[v],a);return f}function Nf(r,a,o,c){Object.defineProperty(r,o,{enumerable:!0,configurable:!0,get:function(){var f=a[o];return c||!A(f)?f:zo(f)},set:function(){}})}var Go=Y(function(r){var a=r.charAt(0)==="&",o=(r=a?r.slice(1):r).charAt(0)==="~",c=(r=o?r.slice(1):r).charAt(0)==="!";return{name:r=c?r.slice(1):r,once:o,capture:c,passive:a}});function ya(r,a){function o(){var c=o.fns;if(!s(c))return qt(c,null,arguments,a,"v-on handler");for(var f=c.slice(),d=0;d<f.length;d++)qt(f[d],null,arguments,a,"v-on handler")}return o.fns=r,o}function Zo(r,a,o,c,f,d){var v,b,m,L;for(v in r)b=r[v],m=a[v],L=Go(v),l(b)||(l(m)?(l(b.fns)&&(b=r[v]=ya(b,d)),p(L.once)&&(b=r[v]=f(L.name,b,L.capture)),o(L.name,b,L.capture,L.passive,L.params)):b!==m&&(m.fns=b,r[v]=m));for(v in a)l(r[v])&&c((L=Go(v)).name,a[v],L.capture)}function un(r,a,o){var c;r instanceof tt&&(r=r.data.hook||(r.data.hook={}));var f=r[a];function d(){o.apply(this,arguments),X(c.fns,d)}l(f)?c=ya([d]):u(f.fns)&&p(f.merged)?(c=f).fns.push(d):c=ya([f,d]),c.merged=!0,r[a]=c}function Yo(r,a,o,c,f){if(u(a)){if(q(a,o))return r[o]=a[o],f||delete a[o],!0;if(q(a,c))return r[o]=a[c],f||delete a[c],!0}return!1}function ba(r){return h(r)?[N(r)]:s(r)?Qo(r):void 0}function Ar(r){return u(r)&&u(r.text)&&r.isComment===!1}function Qo(r,a){var o,c,f,d,v=[];for(o=0;o<r.length;o++)l(c=r[o])||typeof c=="boolean"||(d=v[f=v.length-1],s(c)?c.length>0&&(Ar((c=Qo(c,"".concat(a||"","_").concat(o)))[0])&&Ar(d)&&(v[f]=N(d.text+c[0].text),c.shift()),v.push.apply(v,c)):h(c)?Ar(d)?v[f]=N(d.text+c):c!==""&&v.push(N(c)):Ar(c)&&Ar(d)?v[f]=N(d.text+c.text):(p(r._isVList)&&u(c.tag)&&l(c.key)&&u(a)&&(c.key="__vlist".concat(a,"_").concat(o,"__")),v.push(c)));return v}var $f=1,qo=2;function Cr(r,a,o,c,f,d){return(s(o)||h(o))&&(f=c,c=o,o=void 0),p(d)&&(f=qo),function(v,b,m,L,C){if(u(m)&&u(m.__ob__)||(u(m)&&u(m.is)&&(b=m.is),!b))return Wt();s(L)&&y(L[0])&&((m=m||{}).scopedSlots={default:L[0]},L.length=0),C===qo?L=ba(L):C===$f&&(L=function(k){for(var j=0;j<k.length;j++)if(s(k[j]))return Array.prototype.concat.apply([],k);return k}(L));var _,x;if(typeof b=="string"){var T=void 0;x=v.$vnode&&v.$vnode.ns||Fe.getTagNamespace(b),_=m&&m.pre||!u(T=mi(v.$options,"components",b))?new tt(b,m,L,void 0,void 0,v):Dl(T,m,v,L,b)}else _=Dl(b,m,v,L);return s(_)?_:u(_)?(u(x)&&Jo(_,x),u(m)&&function(k){g(k.style)&&tr(k.style),g(k.class)&&tr(k.class)}(m),_):Wt()}(r,a,o,c,f)}function Jo(r,a,o){if(r.ns=a,r.tag==="foreignObject"&&(a=void 0,o=!0),u(r.children))for(var c=0,f=r.children.length;c<f;c++){var d=r.children[c];u(d.tag)&&(l(d.ns)||p(o)&&d.tag!=="svg")&&Jo(d,a,o)}}function Pf(r,a){var o,c,f,d,v=null;if(s(r)||typeof r=="string")for(v=new Array(r.length),o=0,c=r.length;o<c;o++)v[o]=a(r[o],o);else if(typeof r=="number")for(v=new Array(r),o=0;o<r;o++)v[o]=a(o+1,o);else if(g(r))if(Sn&&r[Symbol.iterator]){v=[];for(var b=r[Symbol.iterator](),m=b.next();!m.done;)v.push(a(m.value,v.length)),m=b.next()}else for(f=Object.keys(r),v=new Array(f.length),o=0,c=f.length;o<c;o++)d=f[o],v[o]=a(r[d],d,o);return u(v)||(v=[]),v._isVList=!0,v}function Hf(r,a,o,c){var f,d=this.$scopedSlots[r];d?(o=o||{},c&&(o=te(te({},c),o)),f=d(o)||(y(a)?a():a)):f=this.$slots[r]||(y(a)?a():a);var v=o&&o.slot;return v?this.$createElement("template",{slot:v},f):f}function jf(r){return mi(this.$options,"filters",r)||st}function Ko(r,a){return s(r)?r.indexOf(a)===-1:r!==a}function Bf(r,a,o,c,f){var d=Fe.keyCodes[a]||o;return f&&c&&!Fe.keyCodes[a]?Ko(f,c):d?Ko(d,r):c?pe(c)!==a:r===void 0}function Vf(r,a,o,c,f){if(o&&g(o)){s(o)&&(o=Pe(o));var d=void 0,v=function(m){if(m==="class"||m==="style"||E(m))d=r;else{var L=r.attrs&&r.attrs.type;d=c||Fe.mustUseProp(a,L,m)?r.domProps||(r.domProps={}):r.attrs||(r.attrs={})}var C=oe(m),_=pe(m);C in d||_ in d||(d[m]=o[m],f&&((r.on||(r.on={}))["update:".concat(m)]=function(x){o[m]=x}))};for(var b in o)v(b)}return r}function Ff(r,a){var o=this._staticTrees||(this._staticTrees=[]),c=o[r];return c&&!a||Xo(c=o[r]=this.$options.staticRenderFns[r].call(this._renderProxy,this._c,this),"__static__".concat(r),!1),c}function Uf(r,a,o){return Xo(r,"__once__".concat(a).concat(o?"_".concat(o):""),!0),r}function Xo(r,a,o){if(s(r))for(var c=0;c<r.length;c++)r[c]&&typeof r[c]!="string"&&el(r[c],"".concat(a,"_").concat(c),o);else el(r,a,o)}function el(r,a,o){r.isStatic=!0,r.key=a,r.isOnce=o}function zf(r,a){if(a&&A(a)){var o=r.on=r.on?te({},r.on):{};for(var c in a){var f=o[c],d=a[c];o[c]=f?[].concat(f,d):d}}return r}function tl(r,a,o,c){a=a||{$stable:!o};for(var f=0;f<r.length;f++){var d=r[f];s(d)?tl(d,a,o):d&&(d.proxy&&(d.fn.proxy=!0),a[d.key]=d.fn)}return c&&(a.$key=c),a}function Wf(r,a){for(var o=0;o<a.length;o+=2){var c=a[o];typeof c=="string"&&c&&(r[a[o]]=a[o+1])}return r}function Gf(r,a){return typeof r=="string"?a+r:r}function nl(r){r._o=Uf,r._n=H,r._s=B,r._l=Pf,r._t=Hf,r._q=Qe,r._i=ot,r._m=Ff,r._f=jf,r._k=Bf,r._b=Vf,r._v=N,r._e=Wt,r._u=tl,r._g=zf,r._d=Wf,r._p=Gf}function _a(r,a){if(!r||!r.length)return{};for(var o={},c=0,f=r.length;c<f;c++){var d=r[c],v=d.data;if(v&&v.attrs&&v.attrs.slot&&delete v.attrs.slot,d.context!==a&&d.fnContext!==a||!v||v.slot==null)(o.default||(o.default=[])).push(d);else{var b=v.slot,m=o[b]||(o[b]=[]);d.tag==="template"?m.push.apply(m,d.children||[]):m.push(d)}}for(var L in o)o[L].every(Zf)&&delete o[L];return o}function Zf(r){return r.isComment&&!r.asyncFactory||r.text===" "}function Er(r){return r.isComment&&r.asyncFactory}function Sr(r,a,o,c){var f,d=Object.keys(o).length>0,v=a?!!a.$stable:!d,b=a&&a.$key;if(a){if(a._normalized)return a._normalized;if(v&&c&&c!==i&&b===c.$key&&!d&&!c.$hasNormal)return c;for(var m in f={},a)a[m]&&m[0]!=="$"&&(f[m]=Yf(r,o,m,a[m]))}else f={};for(var L in o)L in f||(f[L]=Qf(o,L));return a&&Object.isExtensible(a)&&(a._normalized=f),be(f,"$stable",v),be(f,"$key",b),be(f,"$hasNormal",d),f}function Yf(r,a,o,c){var f=function(){var d=Se;Tt(r);var v=arguments.length?c.apply(null,arguments):c({}),b=(v=v&&typeof v=="object"&&!s(v)?[v]:ba(v))&&v[0];return Tt(d),v&&(!b||v.length===1&&b.isComment&&!Er(b))?void 0:v};return c.proxy&&Object.defineProperty(a,o,{get:f,enumerable:!0,configurable:!0}),f}function Qf(r,a){return function(){return r[a]}}function rl(r){return{get attrs(){if(!r._attrsProxy){var a=r._attrsProxy={};be(a,"_v_attr_proxy",!0),si(a,r.$attrs,i,r,"$attrs")}return r._attrsProxy},get listeners(){return r._listenersProxy||si(r._listenersProxy={},r.$listeners,i,r,"$listeners"),r._listenersProxy},get slots(){return function(a){return a._slotsProxy||il(a._slotsProxy={},a.$scopedSlots),a._slotsProxy}(r)},emit:Ge(r.$emit,r),expose:function(a){a&&Object.keys(a).forEach(function(o){return ai(r,a,o)})}}}function si(r,a,o,c,f){var d=!1;for(var v in a)v in r?a[v]!==o[v]&&(d=!0):(d=!0,qf(r,v,c,f));for(var v in r)v in a||(d=!0,delete r[v]);return d}function qf(r,a,o,c){Object.defineProperty(r,a,{enumerable:!0,configurable:!0,get:function(){return o[c][a]}})}function il(r,a){for(var o in a)r[o]=a[o];for(var o in r)o in a||delete r[o]}function wa(){var r=Se;return r._setupContext||(r._setupContext=rl(r))}var xr,Ze,oi=null;function La(r,a){return(r.__esModule||Sn&&r[Symbol.toStringTag]==="Module")&&(r=r.default),g(r)?a.extend(r):r}function al(r){if(s(r))for(var a=0;a<r.length;a++){var o=r[a];if(u(o)&&(u(o.componentOptions)||Er(o)))return o}}function Jf(r,a){xr.$on(r,a)}function Kf(r,a){xr.$off(r,a)}function Xf(r,a){var o=xr;return function c(){a.apply(null,arguments)!==null&&o.$off(r,c)}}function sl(r,a,o){xr=r,Zo(a,o||{},Jf,Kf,Xf,r),xr=void 0}var Aa=function(){function r(a){a===void 0&&(a=!1),this.detached=a,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Ze,!a&&Ze&&(this.index=(Ze.scopes||(Ze.scopes=[])).push(this)-1)}return r.prototype.run=function(a){if(this.active){var o=Ze;try{return Ze=this,a()}finally{Ze=o}}},r.prototype.on=function(){Ze=this},r.prototype.off=function(){Ze=this.parent},r.prototype.stop=function(a){if(this.active){var o=void 0,c=void 0;for(o=0,c=this.effects.length;o<c;o++)this.effects[o].teardown();for(o=0,c=this.cleanups.length;o<c;o++)this.cleanups[o]();if(this.scopes)for(o=0,c=this.scopes.length;o<c;o++)this.scopes[o].stop(!0);if(!this.detached&&this.parent&&!a){var f=this.parent.scopes.pop();f&&f!==this&&(this.parent.scopes[this.index]=f,f.index=this.index)}this.parent=void 0,this.active=!1}},r}();function ol(){return Ze}var kn=null;function ll(r){var a=kn;return kn=r,function(){kn=a}}function cl(r){for(;r&&(r=r.$parent);)if(r._inactive)return!0;return!1}function Ca(r,a){if(a){if(r._directInactive=!1,cl(r))return}else if(r._directInactive)return;if(r._inactive||r._inactive===null){r._inactive=!1;for(var o=0;o<r.$children.length;o++)Ca(r.$children[o]);St(r,"activated")}}function ul(r,a){if(!(a&&(r._directInactive=!0,cl(r))||r._inactive)){r._inactive=!0;for(var o=0;o<r.$children.length;o++)ul(r.$children[o]);St(r,"deactivated")}}function St(r,a,o,c){c===void 0&&(c=!0),ut();var f=Se,d=ol();c&&Tt(r);var v=r.$options[a],b="".concat(a," hook");if(v)for(var m=0,L=v.length;m<L;m++)qt(v[m],r,o||null,r,b);r._hasHookEvent&&r.$emit("hook:"+a),c&&(Tt(f),d&&d.on()),Gt()}var Qt=[],Ea=[],li={},Sa=!1,xa=!1,er=0,dl=0,Da=Date.now;if(Me&&!Xe){var Ta=window.performance;Ta&&typeof Ta.now=="function"&&Da()>document.createEvent("Event").timeStamp&&(Da=function(){return Ta.now()})}var e9=function(r,a){if(r.post){if(!a.post)return 1}else if(a.post)return-1;return r.id-a.id};function t9(){var r,a;for(dl=Da(),xa=!0,Qt.sort(e9),er=0;er<Qt.length;er++)(r=Qt[er]).before&&r.before(),a=r.id,li[a]=null,r.run();var o=Ea.slice(),c=Qt.slice();er=Qt.length=Ea.length=0,li={},Sa=xa=!1,function(f){for(var d=0;d<f.length;d++)f[d]._inactive=!0,Ca(f[d],!0)}(o),function(f){for(var d=f.length;d--;){var v=f[d],b=v.vm;b&&b._watcher===v&&b._isMounted&&!b._isDestroyed&&St(b,"updated")}}(c),le(),En&&Fe.devtools&&En.emit("flush")}function ka(r){var a=r.id;if(li[a]==null&&(r!==Le.target||!r.noRecurse)){if(li[a]=!0,xa){for(var o=Qt.length-1;o>er&&Qt[o].id>r.id;)o--;Qt.splice(o+1,0,r)}else Qt.push(r);Sa||(Sa=!0,hi(t9))}}var ci="watcher",fl="".concat(ci," callback"),pl="".concat(ci," getter"),n9="".concat(ci," cleanup");function hl(r,a){return ui(r,null,{flush:"post"})}var vl={};function ui(r,a,o){var c=o===void 0?i:o,f=c.immediate,d=c.deep,v=c.flush,b=v===void 0?"pre":v;c.onTrack,c.onTrigger;var m,L,C=Se,_=function(F,se,ee){ee===void 0&&(ee=null);var J=qt(F,null,ee,C,se);return d&&J&&J.__ob__&&J.__ob__.dep.depend(),J},x=!1,T=!1;if(We(r)?(m=function(){return r.value},x=ii(r)):Dn(r)?(m=function(){return r.__ob__.dep.depend(),r},d=!0):s(r)?(T=!0,x=r.some(function(F){return Dn(F)||ii(F)}),m=function(){return r.map(function(F){return We(F)?F.value:Dn(F)?(F.__ob__.dep.depend(),tr(F)):y(F)?_(F,pl):void 0})}):m=y(r)?a?function(){return _(r,pl)}:function(){if(!C||!C._isDestroyed)return L&&L(),_(r,ci,[j])}:re,a&&d){var k=m;m=function(){return tr(k())}}var j=function(F){L=P.onStop=function(){_(F,n9)}};if(et())return j=re,a?f&&_(a,fl,[m(),T?[]:void 0,j]):m(),re;var P=new nr(Se,m,re,{lazy:!0});P.noRecurse=!a;var W=T?[]:vl;return P.run=function(){if(P.active)if(a){var F=P.get();(d||x||(T?F.some(function(se,ee){return lt(se,W[ee])}):lt(F,W)))&&(L&&L(),_(a,fl,[F,W===vl?void 0:W,j]),W=F)}else P.get()},b==="sync"?P.update=P.run:b==="post"?(P.post=!0,P.update=function(){return ka(P)}):P.update=function(){if(C&&C===Se&&!C._isMounted){var F=C._preWatchers||(C._preWatchers=[]);F.indexOf(P)<0&&F.push(P)}else ka(P)},a?f?P.run():W=P.get():b==="post"&&C?C.$once("hook:mounted",function(){return P.get()}):P.get(),function(){P.teardown()}}function gl(r){var a=r._provided,o=r.$parent&&r.$parent._provided;return o===a?r._provided=Object.create(o):a}function Rn(r,a,o){ut();try{if(a)for(var c=a;c=c.$parent;){var f=c.$options.errorCaptured;if(f)for(var d=0;d<f.length;d++)try{if(f[d].call(c,r,a,o)===!1)return}catch(v){ml(v,c,"errorCaptured hook")}}ml(r,a,o)}finally{Gt()}}function qt(r,a,o,c,f){var d;try{(d=o?r.apply(a,o):r.call(a))&&!d._isVue&&O(d)&&!d._handled&&(d.catch(function(v){return Rn(v,c,f+" (Promise/async)")}),d._handled=!0)}catch(v){Rn(v,c,f)}return d}function ml(r,a,o){r9(r)}function r9(r,a,o){if(!Me||typeof console=="undefined")throw r;console.error(r)}var di,Ra=!1,Oa=[],Ma=!1;function fi(){Ma=!1;var r=Oa.slice(0);Oa.length=0;for(var a=0;a<r.length;a++)r[a]()}if(typeof Promise!="undefined"&&Et(Promise)){var i9=Promise.resolve();di=function(){i9.then(fi),Kn&&setTimeout(re)},Ra=!0}else if(Xe||typeof MutationObserver=="undefined"||!Et(MutationObserver)&&MutationObserver.toString()!=="[object MutationObserverConstructor]")di=typeof setImmediate!="undefined"&&Et(setImmediate)?function(){setImmediate(fi)}:function(){setTimeout(fi,0)};else{var pi=1,a9=new MutationObserver(fi),yl=document.createTextNode(String(pi));a9.observe(yl,{characterData:!0}),di=function(){pi=(pi+1)%2,yl.data=String(pi)},Ra=!0}function hi(r,a){var o;if(Oa.push(function(){if(r)try{r.call(a)}catch(c){Rn(c,a,"nextTick")}else o&&o(a)}),Ma||(Ma=!0,di()),!r&&typeof Promise!="undefined")return new Promise(function(c){o=c})}function mt(r){return function(a,o){if(o===void 0&&(o=Se),o)return function(c,f,d){var v=c.$options;v[f]=kl(v[f],d)}(o,r,a)}}var s9=mt("beforeMount"),o9=mt("mounted"),l9=mt("beforeUpdate"),c9=mt("updated"),u9=mt("beforeDestroy"),d9=mt("destroyed"),f9=mt("activated"),p9=mt("deactivated"),h9=mt("serverPrefetch"),v9=mt("renderTracked"),g9=mt("renderTriggered"),m9=mt("errorCaptured"),bl="2.7.16",y9=Object.freeze({__proto__:null,version:bl,defineComponent:function(r){return r},ref:function(r){return Fo(r,!1)},shallowRef:function(r){return Fo(r,!0)},isRef:We,toRef:Uo,toRefs:function(r){var a=s(r)?new Array(r.length):{};for(var o in r)a[o]=Uo(r,o);return a},unref:function(r){return We(r)?r.value:r},proxyRefs:function(r){if(Dn(r))return r;for(var a={},o=Object.keys(r),c=0;c<o.length;c++)ai(a,r,o[c]);return a},customRef:function(r){var a=new Le,o=r(function(){a.depend()},function(){a.notify()}),c=o.get,f=o.set,d={get value(){return c()},set value(v){f(v)}};return be(d,Lr,!0),d},triggerRef:function(r){r.dep&&r.dep.notify()},reactive:function(r){return Vo(r,!1),r},isReactive:Dn,isReadonly:Tn,isShallow:ii,isProxy:function(r){return Dn(r)||Tn(r)},shallowReactive:ma,markRaw:function(r){return Object.isExtensible(r)&&be(r,"__v_skip",!0),r},toRaw:function r(a){var o=a&&a.__v_raw;return o?r(o):a},readonly:zo,shallowReadonly:function(r){return Wo(r,!0)},computed:function(r,a){var o,c,f=y(r);f?(o=r,c=re):(o=r.get,c=r.set);var d=et()?null:new nr(Se,o,re,{lazy:!0}),v={effect:d,get value(){return d?(d.dirty&&d.evaluate(),Le.target&&d.depend(),d.value):o()},set value(b){c(b)}};return be(v,Lr,!0),be(v,"__v_isReadonly",f),v},watch:function(r,a,o){return ui(r,a,o)},watchEffect:function(r,a){return ui(r,null,a)},watchPostEffect:hl,watchSyncEffect:function(r,a){return ui(r,null,{flush:"sync"})},EffectScope:Aa,effectScope:function(r){return new Aa(r)},onScopeDispose:function(r){Ze&&Ze.cleanups.push(r)},getCurrentScope:ol,provide:function(r,a){Se&&(gl(Se)[r]=a)},inject:function(r,a,o){o===void 0&&(o=!1);var c=Se;if(c){var f=c.$parent&&c.$parent._provided;if(f&&r in f)return f[r];if(arguments.length>1)return o&&y(a)?a.call(c):a}},h:function(r,a,o){return Cr(Se,r,a,o,2,!0)},getCurrentInstance:function(){return Se&&{proxy:Se}},useSlots:function(){return wa().slots},useAttrs:function(){return wa().attrs},useListeners:function(){return wa().listeners},mergeDefaults:function(r,a){var o=s(r)?r.reduce(function(d,v){return d[v]={},d},{}):r;for(var c in a){var f=o[c];f?s(f)||y(f)?o[c]={type:f,default:a[c]}:f.default=a[c]:f===null&&(o[c]={default:a[c]})}return o},nextTick:hi,set:ri,del:ga,useCssModule:function(r){return i},useCssVars:function(r){if(Me){var a=Se;a&&hl(function(){var o=a.$el,c=r(a,a._setupProxy);if(o&&o.nodeType===1){var f=o.style;for(var d in c)f.setProperty("--".concat(d),c[d])}})}},defineAsyncComponent:function(r){y(r)&&(r={loader:r});var a=r.loader,o=r.loadingComponent,c=r.errorComponent,f=r.delay,d=f===void 0?200:f,v=r.timeout;r.suspensible;var b=r.onError,m=null,L=0,C=function(){var _;return m||(_=m=a().catch(function(x){if(x=x instanceof Error?x:new Error(String(x)),b)return new Promise(function(T,k){b(x,function(){return T((L++,m=null,C()))},function(){return k(x)},L+1)});throw x}).then(function(x){return _!==m&&m?m:(x&&(x.__esModule||x[Symbol.toStringTag]==="Module")&&(x=x.default),x)}))};return function(){return{component:C(),delay:d,timeout:v,error:c,loading:o}}},onBeforeMount:s9,onMounted:o9,onBeforeUpdate:l9,onUpdated:c9,onBeforeUnmount:u9,onUnmounted:d9,onActivated:f9,onDeactivated:p9,onServerPrefetch:h9,onRenderTracked:v9,onRenderTriggered:g9,onErrorCaptured:function(r,a){a===void 0&&(a=Se),m9(r,a)}}),_l=new zt;function tr(r){return vi(r,_l),_l.clear(),r}function vi(r,a){var o,c,f=s(r);if(!(!f&&!g(r)||r.__v_skip||Object.isFrozen(r)||r instanceof tt)){if(r.__ob__){var d=r.__ob__.dep.id;if(a.has(d))return;a.add(d)}if(f)for(o=r.length;o--;)vi(r[o],a);else if(We(r))vi(r.value,a);else for(o=(c=Object.keys(r)).length;o--;)vi(r[c[o]],a)}}var b9=0,nr=function(){function r(a,o,c,f,d){(function(v,b){b===void 0&&(b=Ze),b&&b.active&&b.effects.push(v)})(this,Ze&&!Ze._vm?Ze:a?a._scope:void 0),(this.vm=a)&&d&&(a._watcher=this),f?(this.deep=!!f.deep,this.user=!!f.user,this.lazy=!!f.lazy,this.sync=!!f.sync,this.before=f.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=c,this.id=++b9,this.active=!0,this.post=!1,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new zt,this.newDepIds=new zt,this.expression="",y(o)?this.getter=o:(this.getter=function(v){if(!Jn.test(v)){var b=v.split(".");return function(m){for(var L=0;L<b.length;L++){if(!m)return;m=m[b[L]]}return m}}}(o),this.getter||(this.getter=re)),this.value=this.lazy?void 0:this.get()}return r.prototype.get=function(){var a;ut(this);var o=this.vm;try{a=this.getter.call(o,o)}catch(c){if(!this.user)throw c;Rn(c,o,'getter for watcher "'.concat(this.expression,'"'))}finally{this.deep&&tr(a),Gt(),this.cleanupDeps()}return a},r.prototype.addDep=function(a){var o=a.id;this.newDepIds.has(o)||(this.newDepIds.add(o),this.newDeps.push(a),this.depIds.has(o)||a.addSub(this))},r.prototype.cleanupDeps=function(){for(var a=this.deps.length;a--;){var o=this.deps[a];this.newDepIds.has(o.id)||o.removeSub(this)}var c=this.depIds;this.depIds=this.newDepIds,this.newDepIds=c,this.newDepIds.clear(),c=this.deps,this.deps=this.newDeps,this.newDeps=c,this.newDeps.length=0},r.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():ka(this)},r.prototype.run=function(){if(this.active){var a=this.get();if(a!==this.value||g(a)||this.deep){var o=this.value;if(this.value=a,this.user){var c='callback for watcher "'.concat(this.expression,'"');qt(this.cb,this.vm,[a,o],this.vm,c)}else this.cb.call(this.vm,a,o)}}},r.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},r.prototype.depend=function(){for(var a=this.deps.length;a--;)this.deps[a].depend()},r.prototype.teardown=function(){if(this.vm&&!this.vm._isBeingDestroyed&&X(this.vm._scope.effects,this),this.active){for(var a=this.deps.length;a--;)this.deps[a].removeSub(this);this.active=!1,this.onStop&&this.onStop()}},r}(),dn={enumerable:!0,configurable:!0,get:re,set:re};function Ia(r,a,o){dn.get=function(){return this[a][o]},dn.set=function(c){this[a][o]=c},Object.defineProperty(r,o,dn)}function _9(r){var a=r.$options;if(a.props&&function(c,f){var d=c.$options.propsData||{},v=c._props=ma({}),b=c.$options._propKeys=[],m=!c.$parent;m||gt(!1);var L=function(_){b.push(_);var x=ja(_,f,d,c);cn(v,_,x,void 0,!0),_ in c||Ia(c,"_props",_)};for(var C in f)L(C);gt(!0)}(r,a.props),function(c){var f=c.$options,d=f.setup;if(d){var v=c._setupContext=rl(c);Tt(c),ut();var b=qt(d,null,[c._props||ma({}),v],c,"setup");if(Gt(),Tt(),y(b))f.render=b;else if(g(b))if(c._setupState=b,b.__sfc){var m=c._setupProxy={};for(var L in b)L!=="__sfc"&&ai(m,b,L)}else for(var L in b)At(L)||ai(c,b,L)}}(r),a.methods&&function(c,f){for(var d in c.$options.props,f)c[d]=typeof f[d]!="function"?re:Ge(f[d],c)}(r,a.methods),a.data)(function(c){var f=c.$options.data;f=c._data=y(f)?function(C,_){ut();try{return C.call(_,_)}catch(x){return Rn(x,_,"data()"),{}}finally{Gt()}}(f,c):f||{},A(f)||(f={});var d=Object.keys(f),v=c.$options.props;c.$options.methods;for(var b=d.length;b--;){var m=d[b];v&&q(v,m)||At(m)||Ia(c,"_data",m)}var L=Yt(f);L&&L.vmCount++})(r);else{var o=Yt(r._data={});o&&o.vmCount++}a.computed&&function(c,f){var d=c._computedWatchers=Object.create(null),v=et();for(var b in f){var m=f[b],L=y(m)?m:m.get;v||(d[b]=new nr(c,L||re,re,w9)),b in c||wl(c,b,m)}}(r,a.computed),a.watch&&a.watch!==Ut&&function(c,f){for(var d in f){var v=f[d];if(s(v))for(var b=0;b<v.length;b++)Na(c,d,v[b]);else Na(c,d,v)}}(r,a.watch)}var w9={lazy:!0};function wl(r,a,o){var c=!et();y(o)?(dn.get=c?Ll(a):Al(o),dn.set=re):(dn.get=o.get?c&&o.cache!==!1?Ll(a):Al(o.get):re,dn.set=o.set||re),Object.defineProperty(r,a,dn)}function Ll(r){return function(){var a=this._computedWatchers&&this._computedWatchers[r];if(a)return a.dirty&&a.evaluate(),Le.target&&a.depend(),a.value}}function Al(r){return function(){return r.call(this,this)}}function Na(r,a,o,c){return A(o)&&(c=o,o=o.handler),typeof o=="string"&&(o=r[o]),r.$watch(a,o,c)}function Cl(r,a){if(r){for(var o=Object.create(null),c=Sn?Reflect.ownKeys(r):Object.keys(r),f=0;f<c.length;f++){var d=c[f];if(d!=="__ob__"){var v=r[d].from;if(v in a._provided)o[d]=a._provided[v];else if("default"in r[d]){var b=r[d].default;o[d]=y(b)?b.call(a):b}}}return o}}var L9=0;function $a(r){var a=r.options;if(r.super){var o=$a(r.super);if(o!==r.superOptions){r.superOptions=o;var c=function(f){var d,v=f.options,b=f.sealedOptions;for(var m in v)v[m]!==b[m]&&(d||(d={}),d[m]=v[m]);return d}(r);c&&te(r.extendOptions,c),(a=r.options=On(o,r.extendOptions)).name&&(a.components[a.name]=r)}}return a}function Pa(r,a,o,c,f){var d,v=this,b=f.options;q(c,"_uid")?(d=Object.create(c))._original=c:(d=c,c=c._original);var m=p(b._compiled),L=!m;this.data=r,this.props=a,this.children=o,this.parent=c,this.listeners=r.on||i,this.injections=Cl(b.inject,c),this.slots=function(){return v.$slots||Sr(c,r.scopedSlots,v.$slots=_a(o,c)),v.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return Sr(c,r.scopedSlots,this.slots())}}),m&&(this.$options=b,this.$slots=this.slots(),this.$scopedSlots=Sr(c,r.scopedSlots,this.$slots)),b._scopeId?this._c=function(C,_,x,T){var k=Cr(d,C,_,x,T,L);return k&&!s(k)&&(k.fnScopeId=b._scopeId,k.fnContext=c),k}:this._c=function(C,_,x,T){return Cr(d,C,_,x,T,L)}}function El(r,a,o,c,f){var d=Z(r);return d.fnContext=o,d.fnOptions=c,a.slot&&((d.data||(d.data={})).slot=a.slot),d}function Sl(r,a){for(var o in a)r[oe(o)]=a[o]}function gi(r){return r.name||r.__name||r._componentTag}nl(Pa.prototype);var Ha={init:function(r,a){if(r.componentInstance&&!r.componentInstance._isDestroyed&&r.data.keepAlive){var o=r;Ha.prepatch(o,o)}else(r.componentInstance=function(c,f){var d={_isComponent:!0,_parentVnode:c,parent:f},v=c.data.inlineTemplate;return u(v)&&(d.render=v.render,d.staticRenderFns=v.staticRenderFns),new c.componentOptions.Ctor(d)}(r,kn)).$mount(a?r.elm:void 0,a)},prepatch:function(r,a){var o=a.componentOptions;(function(c,f,d,v,b){var m=v.data.scopedSlots,L=c.$scopedSlots,C=!!(m&&!m.$stable||L!==i&&!L.$stable||m&&c.$scopedSlots.$key!==m.$key||!m&&c.$scopedSlots.$key),_=!!(b||c.$options._renderChildren||C),x=c.$vnode;c.$options._parentVnode=v,c.$vnode=v,c._vnode&&(c._vnode.parent=v),c.$options._renderChildren=b;var T=v.data.attrs||i;c._attrsProxy&&si(c._attrsProxy,T,x.data&&x.data.attrs||i,c,"$attrs")&&(_=!0),c.$attrs=T,d=d||i;var k=c.$options._parentListeners;if(c._listenersProxy&&si(c._listenersProxy,d,k||i,c,"$listeners"),c.$listeners=c.$options._parentListeners=d,sl(c,d,k),f&&c.$options.props){gt(!1);for(var j=c._props,P=c.$options._propKeys||[],W=0;W<P.length;W++){var F=P[W],se=c.$options.props;j[F]=ja(F,se,f,c)}gt(!0),c.$options.propsData=f}_&&(c.$slots=_a(b,v.context),c.$forceUpdate())})(a.componentInstance=r.componentInstance,o.propsData,o.listeners,a,o.children)},insert:function(r){var a,o=r.context,c=r.componentInstance;c._isMounted||(c._isMounted=!0,St(c,"mounted")),r.data.keepAlive&&(o._isMounted?((a=c)._inactive=!1,Ea.push(a)):Ca(c,!0))},destroy:function(r){var a=r.componentInstance;a._isDestroyed||(r.data.keepAlive?ul(a,!0):a.$destroy())}},xl=Object.keys(Ha);function Dl(r,a,o,c,f){if(!l(r)){var d=o.$options._base;if(g(r)&&(r=d.extend(r)),typeof r=="function"){var v;if(l(r.cid)&&(r=function(_,x){if(p(_.error)&&u(_.errorComp))return _.errorComp;if(u(_.resolved))return _.resolved;var T=oi;if(T&&u(_.owners)&&_.owners.indexOf(T)===-1&&_.owners.push(T),p(_.loading)&&u(_.loadingComp))return _.loadingComp;if(T&&!u(_.owners)){var k=_.owners=[T],j=!0,P=null,W=null;T.$on("hook:destroyed",function(){return X(k,T)});var F=function(ae){for(var D=0,R=k.length;D<R;D++)k[D].$forceUpdate();ae&&(k.length=0,P!==null&&(clearTimeout(P),P=null),W!==null&&(clearTimeout(W),W=null))},se=ht(function(ae){_.resolved=La(ae,x),j?k.length=0:F(!0)}),ee=ht(function(ae){u(_.errorComp)&&(_.error=!0,F(!0))}),J=_(se,ee);return g(J)&&(O(J)?l(_.resolved)&&J.then(se,ee):O(J.component)&&(J.component.then(se,ee),u(J.error)&&(_.errorComp=La(J.error,x)),u(J.loading)&&(_.loadingComp=La(J.loading,x),J.delay===0?_.loading=!0:P=setTimeout(function(){P=null,l(_.resolved)&&l(_.error)&&(_.loading=!0,F(!1))},J.delay||200)),u(J.timeout)&&(W=setTimeout(function(){W=null,l(_.resolved)&&ee(null)},J.timeout)))),j=!1,_.loading?_.loadingComp:_.resolved}}(v=r,d),r===void 0))return function(_,x,T,k,j){var P=Wt();return P.asyncFactory=_,P.asyncMeta={data:x,context:T,children:k,tag:j},P}(v,a,o,c,f);a=a||{},$a(r),u(a.model)&&function(_,x){var T=_.model&&_.model.prop||"value",k=_.model&&_.model.event||"input";(x.attrs||(x.attrs={}))[T]=x.model.value;var j=x.on||(x.on={}),P=j[k],W=x.model.callback;u(P)?(s(P)?P.indexOf(W)===-1:P!==W)&&(j[k]=[W].concat(P)):j[k]=W}(r.options,a);var b=function(_,x,T){var k=x.options.props;if(!l(k)){var j={},P=_.attrs,W=_.props;if(u(P)||u(W))for(var F in k){var se=pe(F);Yo(j,W,F,se,!0)||Yo(j,P,F,se,!1)}return j}}(a,r);if(p(r.options.functional))return function(_,x,T,k,j){var P=_.options,W={},F=P.props;if(u(F))for(var se in F)W[se]=ja(se,F,x||i);else u(T.attrs)&&Sl(W,T.attrs),u(T.props)&&Sl(W,T.props);var ee=new Pa(T,W,j,k,_),J=P.render.call(null,ee._c,ee);if(J instanceof tt)return El(J,T,ee.parent,P);if(s(J)){for(var ae=ba(J)||[],D=new Array(ae.length),R=0;R<ae.length;R++)D[R]=El(ae[R],T,ee.parent,P);return D}}(r,b,a,o,c);var m=a.on;if(a.on=a.nativeOn,p(r.options.abstract)){var L=a.slot;a={},L&&(a.slot=L)}(function(_){for(var x=_.hook||(_.hook={}),T=0;T<xl.length;T++){var k=xl[T],j=x[k],P=Ha[k];j===P||j&&j._merged||(x[k]=j?A9(P,j):P)}})(a);var C=gi(r.options)||f;return new tt("vue-component-".concat(r.cid).concat(C?"-".concat(C):""),a,void 0,void 0,void 0,o,{Ctor:r,propsData:b,listeners:m,tag:f,children:c},v)}}}function A9(r,a){var o=function(c,f){r(c,f),a(c,f)};return o._merged=!0,o}var C9=re,Rt=Fe.optionMergeStrategies;function Dr(r,a,o){if(o===void 0&&(o=!0),!a)return r;for(var c,f,d,v=Sn?Reflect.ownKeys(a):Object.keys(a),b=0;b<v.length;b++)(c=v[b])!=="__ob__"&&(f=r[c],d=a[c],o&&q(r,c)?f!==d&&A(f)&&A(d)&&Dr(f,d):ri(r,c,d));return r}function Tl(r,a,o){return o?function(){var c=y(a)?a.call(o,o):a,f=y(r)?r.call(o,o):r;return c?Dr(c,f):f}:a?r?function(){return Dr(y(a)?a.call(this,this):a,y(r)?r.call(this,this):r)}:a:r}function kl(r,a){var o=a?r?r.concat(a):s(a)?a:[a]:r;return o&&function(c){for(var f=[],d=0;d<c.length;d++)f.indexOf(c[d])===-1&&f.push(c[d]);return f}(o)}function E9(r,a,o,c){var f=Object.create(r||null);return a?te(f,a):f}Rt.data=function(r,a,o){return o?Tl(r,a,o):a&&typeof a!="function"?r:Tl(r,a)},Vt.forEach(function(r){Rt[r]=kl}),Ke.forEach(function(r){Rt[r+"s"]=E9}),Rt.watch=function(r,a,o,c){if(r===Ut&&(r=void 0),a===Ut&&(a=void 0),!a)return Object.create(r||null);if(!r)return a;var f={};for(var d in te(f,r),a){var v=f[d],b=a[d];v&&!s(v)&&(v=[v]),f[d]=v?v.concat(b):s(b)?b:[b]}return f},Rt.props=Rt.methods=Rt.inject=Rt.computed=function(r,a,o,c){if(!r)return a;var f=Object.create(null);return te(f,r),a&&te(f,a),f},Rt.provide=function(r,a){return r?function(){var o=Object.create(null);return Dr(o,y(r)?r.call(this):r),a&&Dr(o,y(a)?a.call(this):a,!1),o}:a};var S9=function(r,a){return a===void 0?r:a};function On(r,a,o){if(y(a)&&(a=a.options),function(m,L){var C=m.props;if(C){var _,x,T={};if(s(C))for(_=C.length;_--;)typeof(x=C[_])=="string"&&(T[oe(x)]={type:null});else if(A(C))for(var k in C)x=C[k],T[oe(k)]=A(x)?x:{type:x};m.props=T}}(a),function(m,L){var C=m.inject;if(C){var _=m.inject={};if(s(C))for(var x=0;x<C.length;x++)_[C[x]]={from:C[x]};else if(A(C))for(var T in C){var k=C[T];_[T]=A(k)?te({from:T},k):{from:k}}}}(a),function(m){var L=m.directives;if(L)for(var C in L){var _=L[C];y(_)&&(L[C]={bind:_,update:_})}}(a),!a._base&&(a.extends&&(r=On(r,a.extends,o)),a.mixins))for(var c=0,f=a.mixins.length;c<f;c++)r=On(r,a.mixins[c],o);var d,v={};for(d in r)b(d);for(d in a)q(r,d)||b(d);function b(m){var L=Rt[m]||S9;v[m]=L(r[m],a[m],o,m)}return v}function mi(r,a,o,c){if(typeof o=="string"){var f=r[a];if(q(f,o))return f[o];var d=oe(o);if(q(f,d))return f[d];var v=ke(d);return q(f,v)?f[v]:f[o]||f[d]||f[v]}}function ja(r,a,o,c){var f=a[r],d=!q(o,r),v=o[r],b=Ol(Boolean,f.type);if(b>-1){if(d&&!q(f,"default"))v=!1;else if(v===""||v===pe(r)){var m=Ol(String,f.type);(m<0||b<m)&&(v=!0)}}if(v===void 0){v=function(C,_,x){if(q(_,"default")){var T=_.default;return C&&C.$options.propsData&&C.$options.propsData[x]===void 0&&C._props[x]!==void 0?C._props[x]:y(T)&&Ba(_.type)!=="Function"?T.call(C):T}}(c,f,r);var L=wr;gt(!0),Yt(v),gt(L)}return v}var x9=/^\s*function (\w+)/;function Ba(r){var a=r&&r.toString().match(x9);return a?a[1]:""}function Rl(r,a){return Ba(r)===Ba(a)}function Ol(r,a){if(!s(a))return Rl(a,r)?0:-1;for(var o=0,c=a.length;o<c;o++)if(Rl(a[o],r))return o;return-1}function Ae(r){this._init(r)}function D9(r){r.cid=0;var a=1;r.extend=function(o){o=o||{};var c=this,f=c.cid,d=o._Ctor||(o._Ctor={});if(d[f])return d[f];var v=gi(o)||gi(c.options),b=function(m){this._init(m)};return(b.prototype=Object.create(c.prototype)).constructor=b,b.cid=a++,b.options=On(c.options,o),b.super=c,b.options.props&&function(m){var L=m.options.props;for(var C in L)Ia(m.prototype,"_props",C)}(b),b.options.computed&&function(m){var L=m.options.computed;for(var C in L)wl(m.prototype,C,L[C])}(b),b.extend=c.extend,b.mixin=c.mixin,b.use=c.use,Ke.forEach(function(m){b[m]=c[m]}),v&&(b.options.components[v]=b),b.superOptions=c.options,b.extendOptions=o,b.sealedOptions=te({},b.options),d[f]=b,b}}function Ml(r){return r&&(gi(r.Ctor.options)||r.tag)}function yi(r,a){return s(r)?r.indexOf(a)>-1:typeof r=="string"?r.split(",").indexOf(a)>-1:(o=r,S.call(o)==="[object RegExp]"&&r.test(a));var o}function Il(r,a){var o=r.cache,c=r.keys,f=r._vnode,d=r.$vnode;for(var v in o){var b=o[v];if(b){var m=b.name;m&&!a(m)&&Va(o,v,c,f)}}d.componentOptions.children=void 0}function Va(r,a,o,c){var f=r[a];!f||c&&f.tag===c.tag||f.componentInstance.$destroy(),r[a]=null,X(o,a)}(function(r){r.prototype._init=function(a){var o=this;o._uid=L9++,o._isVue=!0,o.__v_skip=!0,o._scope=new Aa(!0),o._scope.parent=void 0,o._scope._vm=!0,a&&a._isComponent?function(c,f){var d=c.$options=Object.create(c.constructor.options),v=f._parentVnode;d.parent=f.parent,d._parentVnode=v;var b=v.componentOptions;d.propsData=b.propsData,d._parentListeners=b.listeners,d._renderChildren=b.children,d._componentTag=b.tag,f.render&&(d.render=f.render,d.staticRenderFns=f.staticRenderFns)}(o,a):o.$options=On($a(o.constructor),a||{},o),o._renderProxy=o,o._self=o,function(c){var f=c.$options,d=f.parent;if(d&&!f.abstract){for(;d.$options.abstract&&d.$parent;)d=d.$parent;d.$children.push(c)}c.$parent=d,c.$root=d?d.$root:c,c.$children=[],c.$refs={},c._provided=d?d._provided:Object.create(null),c._watcher=null,c._inactive=null,c._directInactive=!1,c._isMounted=!1,c._isDestroyed=!1,c._isBeingDestroyed=!1}(o),function(c){c._events=Object.create(null),c._hasHookEvent=!1;var f=c.$options._parentListeners;f&&sl(c,f)}(o),function(c){c._vnode=null,c._staticTrees=null;var f=c.$options,d=c.$vnode=f._parentVnode,v=d&&d.context;c.$slots=_a(f._renderChildren,v),c.$scopedSlots=d?Sr(c.$parent,d.data.scopedSlots,c.$slots):i,c._c=function(m,L,C,_){return Cr(c,m,L,C,_,!1)},c.$createElement=function(m,L,C,_){return Cr(c,m,L,C,_,!0)};var b=d&&d.data;cn(c,"$attrs",b&&b.attrs||i,null,!0),cn(c,"$listeners",f._parentListeners||i,null,!0)}(o),St(o,"beforeCreate",void 0,!1),function(c){var f=Cl(c.$options.inject,c);f&&(gt(!1),Object.keys(f).forEach(function(d){cn(c,d,f[d])}),gt(!0))}(o),_9(o),function(c){var f=c.$options.provide;if(f){var d=y(f)?f.call(c):f;if(!g(d))return;for(var v=gl(c),b=Sn?Reflect.ownKeys(d):Object.keys(d),m=0;m<b.length;m++){var L=b[m];Object.defineProperty(v,L,Object.getOwnPropertyDescriptor(d,L))}}}(o),St(o,"created"),o.$options.el&&o.$mount(o.$options.el)}})(Ae),function(r){var a={get:function(){return this._data}},o={get:function(){return this._props}};Object.defineProperty(r.prototype,"$data",a),Object.defineProperty(r.prototype,"$props",o),r.prototype.$set=ri,r.prototype.$delete=ga,r.prototype.$watch=function(c,f,d){var v=this;if(A(f))return Na(v,c,f,d);(d=d||{}).user=!0;var b=new nr(v,c,f,d);if(d.immediate){var m='callback for immediate watcher "'.concat(b.expression,'"');ut(),qt(f,v,[b.value],v,m),Gt()}return function(){b.teardown()}}}(Ae),function(r){var a=/^hook:/;r.prototype.$on=function(o,c){var f=this;if(s(o))for(var d=0,v=o.length;d<v;d++)f.$on(o[d],c);else(f._events[o]||(f._events[o]=[])).push(c),a.test(o)&&(f._hasHookEvent=!0);return f},r.prototype.$once=function(o,c){var f=this;function d(){f.$off(o,d),c.apply(f,arguments)}return d.fn=c,f.$on(o,d),f},r.prototype.$off=function(o,c){var f=this;if(!arguments.length)return f._events=Object.create(null),f;if(s(o)){for(var d=0,v=o.length;d<v;d++)f.$off(o[d],c);return f}var b,m=f._events[o];if(!m)return f;if(!c)return f._events[o]=null,f;for(var L=m.length;L--;)if((b=m[L])===c||b.fn===c){m.splice(L,1);break}return f},r.prototype.$emit=function(o){var c=this,f=c._events[o];if(f){f=f.length>1?Ve(f):f;for(var d=Ve(arguments,1),v='event handler for "'.concat(o,'"'),b=0,m=f.length;b<m;b++)qt(f[b],c,d,c,v)}return c}}(Ae),function(r){r.prototype._update=function(a,o){var c=this,f=c.$el,d=c._vnode,v=ll(c);c._vnode=a,c.$el=d?c.__patch__(d,a):c.__patch__(c.$el,a,o,!1),v(),f&&(f.__vue__=null),c.$el&&(c.$el.__vue__=c);for(var b=c;b&&b.$vnode&&b.$parent&&b.$vnode===b.$parent._vnode;)b.$parent.$el=b.$el,b=b.$parent},r.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},r.prototype.$destroy=function(){var a=this;if(!a._isBeingDestroyed){St(a,"beforeDestroy"),a._isBeingDestroyed=!0;var o=a.$parent;!o||o._isBeingDestroyed||a.$options.abstract||X(o.$children,a),a._scope.stop(),a._data.__ob__&&a._data.__ob__.vmCount--,a._isDestroyed=!0,a.__patch__(a._vnode,null),St(a,"destroyed"),a.$off(),a.$el&&(a.$el.__vue__=null),a.$vnode&&(a.$vnode.parent=null)}}}(Ae),function(r){nl(r.prototype),r.prototype.$nextTick=function(a){return hi(a,this)},r.prototype._render=function(){var a=this,o=a.$options,c=o.render,f=o._parentVnode;f&&a._isMounted&&(a.$scopedSlots=Sr(a.$parent,f.data.scopedSlots,a.$slots,a.$scopedSlots),a._slotsProxy&&il(a._slotsProxy,a.$scopedSlots)),a.$vnode=f;var d,v=Se,b=oi;try{Tt(a),oi=a,d=c.call(a._renderProxy,a.$createElement)}catch(m){Rn(m,a,"render"),d=a._vnode}finally{oi=b,Tt(v)}return s(d)&&d.length===1&&(d=d[0]),d instanceof tt||(d=Wt()),d.parent=f,d}}(Ae);var Nl=[String,RegExp,Array],T9={name:"keep-alive",abstract:!0,props:{include:Nl,exclude:Nl,max:[String,Number]},methods:{cacheVNode:function(){var r=this,a=r.cache,o=r.keys,c=r.vnodeToCache,f=r.keyToCache;if(c){var d=c.tag,v=c.componentInstance,b=c.componentOptions;a[f]={name:Ml(b),tag:d,componentInstance:v},o.push(f),this.max&&o.length>parseInt(this.max)&&Va(a,o[0],o,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var r in this.cache)Va(this.cache,r,this.keys)},mounted:function(){var r=this;this.cacheVNode(),this.$watch("include",function(a){Il(r,function(o){return yi(a,o)})}),this.$watch("exclude",function(a){Il(r,function(o){return!yi(a,o)})})},updated:function(){this.cacheVNode()},render:function(){var r=this.$slots.default,a=al(r),o=a&&a.componentOptions;if(o){var c=Ml(o),f=this.include,d=this.exclude;if(f&&(!c||!yi(f,c))||d&&c&&yi(d,c))return a;var v=this.cache,b=this.keys,m=a.key==null?o.Ctor.cid+(o.tag?"::".concat(o.tag):""):a.key;v[m]?(a.componentInstance=v[m].componentInstance,X(b,m),b.push(m)):(this.vnodeToCache=a,this.keyToCache=m),a.data.keepAlive=!0}return a||r&&r[0]}},k9={KeepAlive:T9};(function(r){var a={get:function(){return Fe}};Object.defineProperty(r,"config",a),r.util={warn:C9,extend:te,mergeOptions:On,defineReactive:cn},r.set=ri,r.delete=ga,r.nextTick=hi,r.observable=function(o){return Yt(o),o},r.options=Object.create(null),Ke.forEach(function(o){r.options[o+"s"]=Object.create(null)}),r.options._base=r,te(r.options.components,k9),function(o){o.use=function(c){var f=this._installedPlugins||(this._installedPlugins=[]);if(f.indexOf(c)>-1)return this;var d=Ve(arguments,1);return d.unshift(this),y(c.install)?c.install.apply(c,d):y(c)&&c.apply(null,d),f.push(c),this}}(r),function(o){o.mixin=function(c){return this.options=On(this.options,c),this}}(r),D9(r),function(o){Ke.forEach(function(c){o[c]=function(f,d){return d?(c==="component"&&A(d)&&(d.name=d.name||f,d=this.options._base.extend(d)),c==="directive"&&y(d)&&(d={bind:d,update:d}),this.options[c+"s"][f]=d,d):this.options[c+"s"][f]}})}(r)})(Ae),Object.defineProperty(Ae.prototype,"$isServer",{get:et}),Object.defineProperty(Ae.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Ae,"FunctionalRenderContext",{value:Pa}),Ae.version=bl;var R9=V("style,class"),O9=V("input,textarea,option,select,progress"),$l=function(r,a,o){return o==="value"&&O9(r)&&a!=="button"||o==="selected"&&r==="option"||o==="checked"&&r==="input"||o==="muted"&&r==="video"},Pl=V("contenteditable,draggable,spellcheck"),M9=V("events,caret,typing,plaintext-only"),I9=function(r,a){return bi(a)||a==="false"?"false":r==="contenteditable"&&M9(a)?a:"true"},N9=V("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Fa="http://www.w3.org/1999/xlink",Ua=function(r){return r.charAt(5)===":"&&r.slice(0,5)==="xlink"},Hl=function(r){return Ua(r)?r.slice(6,r.length):""},bi=function(r){return r==null||r===!1};function $9(r){for(var a=r.data,o=r,c=r;u(c.componentInstance);)(c=c.componentInstance._vnode)&&c.data&&(a=jl(c.data,a));for(;u(o=o.parent);)o&&o.data&&(a=jl(a,o.data));return function(f,d){return u(f)||u(d)?za(f,Wa(d)):""}(a.staticClass,a.class)}function jl(r,a){return{staticClass:za(r.staticClass,a.staticClass),class:u(r.class)?[r.class,a.class]:a.class}}function za(r,a){return r?a?r+" "+a:r:a||""}function Wa(r){return Array.isArray(r)?function(a){for(var o,c="",f=0,d=a.length;f<d;f++)u(o=Wa(a[f]))&&o!==""&&(c&&(c+=" "),c+=o);return c}(r):g(r)?function(a){var o="";for(var c in a)a[c]&&(o&&(o+=" "),o+=c);return o}(r):typeof r=="string"?r:""}var P9={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},H9=V("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Ga=V("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Za=function(r){return H9(r)||Ga(r)};function Bl(r){return Ga(r)?"svg":r==="math"?"math":void 0}var _i=Object.create(null),Ya=V("text,number,password,search,email,tel,url");function Qa(r){if(typeof r=="string"){var a=document.querySelector(r);return a||document.createElement("div")}return r}var j9=Object.freeze({__proto__:null,createElement:function(r,a){var o=document.createElement(r);return r!=="select"||a.data&&a.data.attrs&&a.data.attrs.multiple!==void 0&&o.setAttribute("multiple","multiple"),o},createElementNS:function(r,a){return document.createElementNS(P9[r],a)},createTextNode:function(r){return document.createTextNode(r)},createComment:function(r){return document.createComment(r)},insertBefore:function(r,a,o){r.insertBefore(a,o)},removeChild:function(r,a){r.removeChild(a)},appendChild:function(r,a){r.appendChild(a)},parentNode:function(r){return r.parentNode},nextSibling:function(r){return r.nextSibling},tagName:function(r){return r.tagName},setTextContent:function(r,a){r.textContent=a},setStyleScope:function(r,a){r.setAttribute(a,"")}}),B9={create:function(r,a){rr(a)},update:function(r,a){r.data.ref!==a.data.ref&&(rr(r,!0),rr(a))},destroy:function(r){rr(r,!0)}};function rr(r,a){var o=r.data.ref;if(u(o)){var c=r.context,f=r.componentInstance||r.elm,d=a?null:f,v=a?void 0:f;if(y(o))qt(o,c,[d],c,"template ref function");else{var b=r.data.refInFor,m=typeof o=="string"||typeof o=="number",L=We(o),C=c.$refs;if(m||L){if(b){var _=m?C[o]:o.value;a?s(_)&&X(_,f):s(_)?_.includes(f)||_.push(f):m?(C[o]=[f],Vl(c,o,C[o])):o.value=[f]}else if(m){if(a&&C[o]!==f)return;C[o]=v,Vl(c,o,d)}else if(L){if(a&&o.value!==f)return;o.value=d}}}}}function Vl(r,a,o){var c=r._setupState;c&&q(c,a)&&(We(c[a])?c[a].value=o:c[a]=o)}var fn=new tt("",{},[]),Tr=["create","activate","update","remove","destroy"];function Mn(r,a){return r.key===a.key&&r.asyncFactory===a.asyncFactory&&(r.tag===a.tag&&r.isComment===a.isComment&&u(r.data)===u(a.data)&&function(o,c){if(o.tag!=="input")return!0;var f,d=u(f=o.data)&&u(f=f.attrs)&&f.type,v=u(f=c.data)&&u(f=f.attrs)&&f.type;return d===v||Ya(d)&&Ya(v)}(r,a)||p(r.isAsyncPlaceholder)&&l(a.asyncFactory.error))}function V9(r,a,o){var c,f,d={};for(c=a;c<=o;++c)u(f=r[c].key)&&(d[f]=c);return d}var F9={create:qa,update:qa,destroy:function(r){qa(r,fn)}};function qa(r,a){(r.data.directives||a.data.directives)&&function(o,c){var f,d,v,b=o===fn,m=c===fn,L=Fl(o.data.directives,o.context),C=Fl(c.data.directives,c.context),_=[],x=[];for(f in C)d=L[f],v=C[f],d?(v.oldValue=d.value,v.oldArg=d.arg,kr(v,"update",c,o),v.def&&v.def.componentUpdated&&x.push(v)):(kr(v,"bind",c,o),v.def&&v.def.inserted&&_.push(v));if(_.length){var T=function(){for(var k=0;k<_.length;k++)kr(_[k],"inserted",c,o)};b?un(c,"insert",T):T()}if(x.length&&un(c,"postpatch",function(){for(var k=0;k<x.length;k++)kr(x[k],"componentUpdated",c,o)}),!b)for(f in L)C[f]||kr(L[f],"unbind",o,o,m)}(r,a)}var U9=Object.create(null);function Fl(r,a){var o,c,f=Object.create(null);if(!r)return f;for(o=0;o<r.length;o++){if((c=r[o]).modifiers||(c.modifiers=U9),f[z9(c)]=c,a._setupState&&a._setupState.__sfc){var d=c.def||mi(a,"_setupState","v-"+c.name);c.def=typeof d=="function"?{bind:d,update:d}:d}c.def=c.def||mi(a.$options,"directives",c.name)}return f}function z9(r){return r.rawName||"".concat(r.name,".").concat(Object.keys(r.modifiers||{}).join("."))}function kr(r,a,o,c,f){var d=r.def&&r.def[a];if(d)try{d(o.elm,r,o,c,f)}catch(v){Rn(v,o.context,"directive ".concat(r.name," ").concat(a," hook"))}}var W9=[B9,F9];function Ul(r,a){var o=a.componentOptions;if(!(u(o)&&o.Ctor.options.inheritAttrs===!1||l(r.data.attrs)&&l(a.data.attrs))){var c,f,d=a.elm,v=r.data.attrs||{},b=a.data.attrs||{};for(c in(u(b.__ob__)||p(b._v_attr_proxy))&&(b=a.data.attrs=te({},b)),b)f=b[c],v[c]!==f&&zl(d,c,f,a.data.pre);for(c in(Xe||Cn)&&b.value!==v.value&&zl(d,"value",b.value),v)l(b[c])&&(Ua(c)?d.removeAttributeNS(Fa,Hl(c)):Pl(c)||d.removeAttribute(c))}}function zl(r,a,o,c){c||r.tagName.indexOf("-")>-1?Wl(r,a,o):N9(a)?bi(o)?r.removeAttribute(a):(o=a==="allowfullscreen"&&r.tagName==="EMBED"?"true":a,r.setAttribute(a,o)):Pl(a)?r.setAttribute(a,I9(a,o)):Ua(a)?bi(o)?r.removeAttributeNS(Fa,Hl(a)):r.setAttributeNS(Fa,a,o):Wl(r,a,o)}function Wl(r,a,o){if(bi(o))r.removeAttribute(a);else{if(Xe&&!vt&&r.tagName==="TEXTAREA"&&a==="placeholder"&&o!==""&&!r.__ieph){var c=function(f){f.stopImmediatePropagation(),r.removeEventListener("input",c)};r.addEventListener("input",c),r.__ieph=!0}r.setAttribute(a,o)}}var G9={create:Ul,update:Ul};function Gl(r,a){var o=a.elm,c=a.data,f=r.data;if(!(l(c.staticClass)&&l(c.class)&&(l(f)||l(f.staticClass)&&l(f.class)))){var d=$9(a),v=o._transitionClasses;u(v)&&(d=za(d,Wa(v))),d!==o._prevClass&&(o.setAttribute("class",d),o._prevClass=d)}}var Ja,Zl,wi,pn,Li,Ka,Z9={create:Gl,update:Gl},Y9=/[\w).+\-_$\]]/;function Xa(r){var a,o,c,f,d,v=!1,b=!1,m=!1,L=!1,C=0,_=0,x=0,T=0;for(c=0;c<r.length;c++)if(o=a,a=r.charCodeAt(c),v)a===39&&o!==92&&(v=!1);else if(b)a===34&&o!==92&&(b=!1);else if(m)a===96&&o!==92&&(m=!1);else if(L)a===47&&o!==92&&(L=!1);else if(a!==124||r.charCodeAt(c+1)===124||r.charCodeAt(c-1)===124||C||_||x){switch(a){case 34:b=!0;break;case 39:v=!0;break;case 96:m=!0;break;case 40:x++;break;case 41:x--;break;case 91:_++;break;case 93:_--;break;case 123:C++;break;case 125:C--}if(a===47){for(var k=c-1,j=void 0;k>=0&&(j=r.charAt(k))===" ";k--);j&&Y9.test(j)||(L=!0)}}else f===void 0?(T=c+1,f=r.slice(0,c).trim()):P();function P(){(d||(d=[])).push(r.slice(T,c).trim()),T=c+1}if(f===void 0?f=r.slice(0,c).trim():T!==0&&P(),d)for(c=0;c<d.length;c++)f=Q9(f,d[c]);return f}function Q9(r,a){var o=a.indexOf("(");if(o<0)return'_f("'.concat(a,'")(').concat(r,")");var c=a.slice(0,o),f=a.slice(o+1);return'_f("'.concat(c,'")(').concat(r).concat(f!==")"?","+f:f)}function Yl(r,a){console.error("[Vue compiler]: ".concat(r))}function Rr(r,a){return r?r.map(function(o){return o[a]}).filter(function(o){return o}):[]}function In(r,a,o,c,f){(r.props||(r.props=[])).push(Or({name:a,value:o,dynamic:f},c)),r.plain=!1}function es(r,a,o,c,f){(f?r.dynamicAttrs||(r.dynamicAttrs=[]):r.attrs||(r.attrs=[])).push(Or({name:a,value:o,dynamic:f},c)),r.plain=!1}function ts(r,a,o,c){r.attrsMap[a]=o,r.attrsList.push(Or({name:a,value:o},c))}function q9(r,a,o,c,f,d,v,b){(r.directives||(r.directives=[])).push(Or({name:a,rawName:o,value:c,arg:f,isDynamicArg:d,modifiers:v},b)),r.plain=!1}function ns(r,a,o){return o?"_p(".concat(a,',"').concat(r,'")'):r+a}function Jt(r,a,o,c,f,d,v,b){var m;(c=c||i).right?b?a="(".concat(a,")==='click'?'contextmenu':(").concat(a,")"):a==="click"&&(a="contextmenu",delete c.right):c.middle&&(b?a="(".concat(a,")==='click'?'mouseup':(").concat(a,")"):a==="click"&&(a="mouseup")),c.capture&&(delete c.capture,a=ns("!",a,b)),c.once&&(delete c.once,a=ns("~",a,b)),c.passive&&(delete c.passive,a=ns("&",a,b)),c.native?(delete c.native,m=r.nativeEvents||(r.nativeEvents={})):m=r.events||(r.events={});var L=Or({value:o.trim(),dynamic:b},v);c!==i&&(L.modifiers=c);var C=m[a];Array.isArray(C)?f?C.unshift(L):C.push(L):m[a]=C?f?[L,C]:[C,L]:L,r.plain=!1}function yt(r,a,o){var c=$e(r,":"+a)||$e(r,"v-bind:"+a);if(c!=null)return Xa(c);if(o!==!1){var f=$e(r,a);if(f!=null)return JSON.stringify(f)}}function $e(r,a,o){var c;if((c=r.attrsMap[a])!=null){for(var f=r.attrsList,d=0,v=f.length;d<v;d++)if(f[d].name===a){f.splice(d,1);break}}return o&&delete r.attrsMap[a],c}function Ql(r,a){for(var o=r.attrsList,c=0,f=o.length;c<f;c++){var d=o[c];if(a.test(d.name))return o.splice(c,1),d}}function Or(r,a){return a&&(a.start!=null&&(r.start=a.start),a.end!=null&&(r.end=a.end)),r}function ql(r,a,o){var c=o||{},f=c.number,d="$$v",v=d;c.trim&&(v="(typeof ".concat(d," === 'string'")+"? ".concat(d,".trim()")+": ".concat(d,")")),f&&(v="_n(".concat(v,")"));var b=hn(a,v);r.model={value:"(".concat(a,")"),expression:JSON.stringify(a),callback:"function (".concat(d,") {").concat(b,"}")}}function hn(r,a){var o=function(c){if(c=c.trim(),Ja=c.length,c.indexOf("[")<0||c.lastIndexOf("]")<Ja-1)return(pn=c.lastIndexOf("."))>-1?{exp:c.slice(0,pn),key:'"'+c.slice(pn+1)+'"'}:{exp:c,key:null};for(Zl=c,pn=Li=Ka=0;!is();)Jl(wi=rs())?Kl(wi):wi===91&&J9(wi);return{exp:c.slice(0,Li),key:c.slice(Li+1,Ka)}}(r);return o.key===null?"".concat(r,"=").concat(a):"$set(".concat(o.exp,", ").concat(o.key,", ").concat(a,")")}function rs(){return Zl.charCodeAt(++pn)}function is(){return pn>=Ja}function Jl(r){return r===34||r===39}function J9(r){var a=1;for(Li=pn;!is();)if(Jl(r=rs()))Kl(r);else if(r===91&&a++,r===93&&a--,a===0){Ka=pn;break}}function Kl(r){for(var a=r;!is()&&(r=rs())!==a;);}var Mr,Ai="__r",as="__c";function K9(r,a,o){var c=Mr;return function f(){a.apply(null,arguments)!==null&&Xl(r,f,o,c)}}var X9=Ra&&!(Ct&&Number(Ct[1])<=53);function ep(r,a,o,c){if(X9){var f=dl,d=a;a=d._wrapper=function(v){if(v.target===v.currentTarget||v.timeStamp>=f||v.timeStamp<=0||v.target.ownerDocument!==document)return d.apply(this,arguments)}}Mr.addEventListener(r,a,Dt?{capture:o,passive:c}:o)}function Xl(r,a,o,c){(c||Mr).removeEventListener(r,a._wrapper||a,o)}function ss(r,a){if(!l(r.data.on)||!l(a.data.on)){var o=a.data.on||{},c=r.data.on||{};Mr=a.elm||r.elm,function(f){if(u(f[Ai])){var d=Xe?"change":"input";f[d]=[].concat(f[Ai],f[d]||[]),delete f[Ai]}u(f[as])&&(f.change=[].concat(f[as],f.change||[]),delete f[as])}(o),Zo(o,c,ep,Xl,K9,a.context),Mr=void 0}}var os,tp={create:ss,update:ss,destroy:function(r){return ss(r,fn)}};function e0(r,a){if(!l(r.data.domProps)||!l(a.data.domProps)){var o,c,f=a.elm,d=r.data.domProps||{},v=a.data.domProps||{};for(o in(u(v.__ob__)||p(v._v_attr_proxy))&&(v=a.data.domProps=te({},v)),d)o in v||(f[o]="");for(o in v){if(c=v[o],o==="textContent"||o==="innerHTML"){if(a.children&&(a.children.length=0),c===d[o])continue;f.childNodes.length===1&&f.removeChild(f.childNodes[0])}if(o==="value"&&f.tagName!=="PROGRESS"){f._value=c;var b=l(c)?"":String(c);np(f,b)&&(f.value=b)}else if(o==="innerHTML"&&Ga(f.tagName)&&l(f.innerHTML)){(os=os||document.createElement("div")).innerHTML="<svg>".concat(c,"</svg>");for(var m=os.firstChild;f.firstChild;)f.removeChild(f.firstChild);for(;m.firstChild;)f.appendChild(m.firstChild)}else if(c!==d[o])try{f[o]=c}catch(L){}}}}function np(r,a){return!r.composing&&(r.tagName==="OPTION"||function(o,c){var f=!0;try{f=document.activeElement!==o}catch(d){}return f&&o.value!==c}(r,a)||function(o,c){var f=o.value,d=o._vModifiers;if(u(d)){if(d.number)return H(f)!==H(c);if(d.trim)return f.trim()!==c.trim()}return f!==c}(r,a))}var rp={create:e0,update:e0},t0=Y(function(r){var a={},o=/:(.+)/;return r.split(/;(?![^(]*\))/g).forEach(function(c){if(c){var f=c.split(o);f.length>1&&(a[f[0].trim()]=f[1].trim())}}),a});function ls(r){var a=n0(r.style);return r.staticStyle?te(r.staticStyle,a):a}function n0(r){return Array.isArray(r)?Pe(r):typeof r=="string"?t0(r):r}var Ci,ip=/^--/,r0=/\s*!important$/,i0=function(r,a,o){if(ip.test(a))r.style.setProperty(a,o);else if(r0.test(o))r.style.setProperty(pe(a),o.replace(r0,""),"important");else{var c=ap(a);if(Array.isArray(o))for(var f=0,d=o.length;f<d;f++)r.style[c]=o[f];else r.style[c]=o}},a0=["Webkit","Moz","ms"],ap=Y(function(r){if(Ci=Ci||document.createElement("div").style,(r=oe(r))!=="filter"&&r in Ci)return r;for(var a=r.charAt(0).toUpperCase()+r.slice(1),o=0;o<a0.length;o++){var c=a0[o]+a;if(c in Ci)return c}});function s0(r,a){var o=a.data,c=r.data;if(!(l(o.staticStyle)&&l(o.style)&&l(c.staticStyle)&&l(c.style))){var f,d,v=a.elm,b=c.staticStyle,m=c.normalizedStyle||c.style||{},L=b||m,C=n0(a.data.style)||{};a.data.normalizedStyle=u(C.__ob__)?te({},C):C;var _=function(x,T){var k,j={};if(T)for(var P=x;P.componentInstance;)(P=P.componentInstance._vnode)&&P.data&&(k=ls(P.data))&&te(j,k);(k=ls(x.data))&&te(j,k);for(var W=x;W=W.parent;)W.data&&(k=ls(W.data))&&te(j,k);return j}(a,!0);for(d in L)l(_[d])&&i0(v,d,"");for(d in _)f=_[d],i0(v,d,f==null?"":f)}}var sp={create:s0,update:s0},o0=/\s+/;function l0(r,a){if(a&&(a=a.trim()))if(r.classList)a.indexOf(" ")>-1?a.split(o0).forEach(function(c){return r.classList.add(c)}):r.classList.add(a);else{var o=" ".concat(r.getAttribute("class")||""," ");o.indexOf(" "+a+" ")<0&&r.setAttribute("class",(o+a).trim())}}function c0(r,a){if(a&&(a=a.trim()))if(r.classList)a.indexOf(" ")>-1?a.split(o0).forEach(function(f){return r.classList.remove(f)}):r.classList.remove(a),r.classList.length||r.removeAttribute("class");else{for(var o=" ".concat(r.getAttribute("class")||""," "),c=" "+a+" ";o.indexOf(c)>=0;)o=o.replace(c," ");(o=o.trim())?r.setAttribute("class",o):r.removeAttribute("class")}}function u0(r){if(r){if(typeof r=="object"){var a={};return r.css!==!1&&te(a,d0(r.name||"v")),te(a,r),a}return typeof r=="string"?d0(r):void 0}}var d0=Y(function(r){return{enterClass:"".concat(r,"-enter"),enterToClass:"".concat(r,"-enter-to"),enterActiveClass:"".concat(r,"-enter-active"),leaveClass:"".concat(r,"-leave"),leaveToClass:"".concat(r,"-leave-to"),leaveActiveClass:"".concat(r,"-leave-active")}}),f0=Me&&!vt,ir="transition",cs="animation",Ei="transition",Si="transitionend",us="animation",p0="animationend";f0&&(window.ontransitionend===void 0&&window.onwebkittransitionend!==void 0&&(Ei="WebkitTransition",Si="webkitTransitionEnd"),window.onanimationend===void 0&&window.onwebkitanimationend!==void 0&&(us="WebkitAnimation",p0="webkitAnimationEnd"));var h0=Me?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(r){return r()};function v0(r){h0(function(){h0(r)})}function Nn(r,a){var o=r._transitionClasses||(r._transitionClasses=[]);o.indexOf(a)<0&&(o.push(a),l0(r,a))}function Kt(r,a){r._transitionClasses&&X(r._transitionClasses,a),c0(r,a)}function g0(r,a,o){var c=m0(r,a),f=c.type,d=c.timeout,v=c.propCount;if(!f)return o();var b=f===ir?Si:p0,m=0,L=function(){r.removeEventListener(b,C),o()},C=function(_){_.target===r&&++m>=v&&L()};setTimeout(function(){m<v&&L()},d+1),r.addEventListener(b,C)}var op=/\b(transform|all)(,|$)/;function m0(r,a){var o,c=window.getComputedStyle(r),f=(c[Ei+"Delay"]||"").split(", "),d=(c[Ei+"Duration"]||"").split(", "),v=y0(f,d),b=(c[us+"Delay"]||"").split(", "),m=(c[us+"Duration"]||"").split(", "),L=y0(b,m),C=0,_=0;return a===ir?v>0&&(o=ir,C=v,_=d.length):a===cs?L>0&&(o=cs,C=L,_=m.length):_=(o=(C=Math.max(v,L))>0?v>L?ir:cs:null)?o===ir?d.length:m.length:0,{type:o,timeout:C,propCount:_,hasTransform:o===ir&&op.test(c[Ei+"Property"])}}function y0(r,a){for(;r.length<a.length;)r=r.concat(r);return Math.max.apply(null,a.map(function(o,c){return b0(o)+b0(r[c])}))}function b0(r){return 1e3*Number(r.slice(0,-1).replace(",","."))}function ds(r,a){var o=r.elm;u(o._leaveCb)&&(o._leaveCb.cancelled=!0,o._leaveCb());var c=u0(r.data.transition);if(!l(c)&&!u(o._enterCb)&&o.nodeType===1){for(var f=c.css,d=c.type,v=c.enterClass,b=c.enterToClass,m=c.enterActiveClass,L=c.appearClass,C=c.appearToClass,_=c.appearActiveClass,x=c.beforeEnter,T=c.enter,k=c.afterEnter,j=c.enterCancelled,P=c.beforeAppear,W=c.appear,F=c.afterAppear,se=c.appearCancelled,ee=c.duration,J=kn,ae=kn.$vnode;ae&&ae.parent;)J=ae.context,ae=ae.parent;var D=!J._isMounted||!r.isRootInsert;if(!D||W||W===""){var R=D&&L?L:v,U=D&&_?_:m,G=D&&C?C:b,ie=D&&P||x,he=D&&y(W)?W:T,ue=D&&F||k,de=D&&se||j,xe=H(g(ee)?ee.enter:ee),ge=f!==!1&&!vt,fe=fs(he),Ee=o._enterCb=ht(function(){ge&&(Kt(o,G),Kt(o,U)),Ee.cancelled?(ge&&Kt(o,R),de&&de(o)):ue&&ue(o),o._enterCb=null});r.data.show||un(r,"insert",function(){var we=o.parentNode,me=we&&we._pending&&we._pending[r.key];me&&me.tag===r.tag&&me.elm._leaveCb&&me.elm._leaveCb(),he&&he(o,Ee)}),ie&&ie(o),ge&&(Nn(o,R),Nn(o,U),v0(function(){Kt(o,R),Ee.cancelled||(Nn(o,G),fe||(w0(xe)?setTimeout(Ee,xe):g0(o,d,Ee)))})),r.data.show&&(a&&a(),he&&he(o,Ee)),ge||fe||Ee()}}}function _0(r,a){var o=r.elm;u(o._enterCb)&&(o._enterCb.cancelled=!0,o._enterCb());var c=u0(r.data.transition);if(l(c)||o.nodeType!==1)return a();if(!u(o._leaveCb)){var f=c.css,d=c.type,v=c.leaveClass,b=c.leaveToClass,m=c.leaveActiveClass,L=c.beforeLeave,C=c.leave,_=c.afterLeave,x=c.leaveCancelled,T=c.delayLeave,k=c.duration,j=f!==!1&&!vt,P=fs(C),W=H(g(k)?k.leave:k),F=o._leaveCb=ht(function(){o.parentNode&&o.parentNode._pending&&(o.parentNode._pending[r.key]=null),j&&(Kt(o,b),Kt(o,m)),F.cancelled?(j&&Kt(o,v),x&&x(o)):(a(),_&&_(o)),o._leaveCb=null});T?T(se):se()}function se(){F.cancelled||(!r.data.show&&o.parentNode&&((o.parentNode._pending||(o.parentNode._pending={}))[r.key]=r),L&&L(o),j&&(Nn(o,v),Nn(o,m),v0(function(){Kt(o,v),F.cancelled||(Nn(o,b),P||(w0(W)?setTimeout(F,W):g0(o,d,F)))})),C&&C(o,F),j||P||F())}}function w0(r){return typeof r=="number"&&!isNaN(r)}function fs(r){if(l(r))return!1;var a=r.fns;return u(a)?fs(Array.isArray(a)?a[0]:a):(r._length||r.length)>1}function L0(r,a){a.data.show!==!0&&ds(a)}var lp=function(r){var a,o,c={},f=r.modules,d=r.nodeOps;for(a=0;a<Tr.length;++a)for(c[Tr[a]]=[],o=0;o<f.length;++o)u(f[o][Tr[a]])&&c[Tr[a]].push(f[o][Tr[a]]);function v(D){var R=d.parentNode(D);u(R)&&d.removeChild(R,D)}function b(D,R,U,G,ie,he,ue){if(u(D.elm)&&u(he)&&(D=he[ue]=Z(D)),D.isRootInsert=!ie,!function(fe,Ee,we,me){var He=fe.data;if(u(He)){var or=u(fe.componentInstance)&&He.keepAlive;if(u(He=He.hook)&&u(He=He.init)&&He(fe,!1),u(fe.componentInstance))return m(fe,Ee),L(we,fe.elm,me),p(or)&&function(Ot,Ir,Nr,Mt){for(var je,qe=Ot;qe.componentInstance;)if(u(je=(qe=qe.componentInstance._vnode).data)&&u(je=je.transition)){for(je=0;je<c.activate.length;++je)c.activate[je](fn,qe);Ir.push(qe);break}L(Nr,Ot.elm,Mt)}(fe,Ee,we,me),!0}}(D,R,U,G)){var de=D.data,xe=D.children,ge=D.tag;u(ge)?(D.elm=D.ns?d.createElementNS(D.ns,ge):d.createElement(ge,D),T(D),C(D,xe,R),u(de)&&x(D,R),L(U,D.elm,G)):p(D.isComment)?(D.elm=d.createComment(D.text),L(U,D.elm,G)):(D.elm=d.createTextNode(D.text),L(U,D.elm,G))}}function m(D,R){u(D.data.pendingInsert)&&(R.push.apply(R,D.data.pendingInsert),D.data.pendingInsert=null),D.elm=D.componentInstance.$el,_(D)?(x(D,R),T(D)):(rr(D),R.push(D))}function L(D,R,U){u(D)&&(u(U)?d.parentNode(U)===D&&d.insertBefore(D,R,U):d.appendChild(D,R))}function C(D,R,U){if(s(R))for(var G=0;G<R.length;++G)b(R[G],U,D.elm,null,!0,R,G);else h(D.text)&&d.appendChild(D.elm,d.createTextNode(String(D.text)))}function _(D){for(;D.componentInstance;)D=D.componentInstance._vnode;return u(D.tag)}function x(D,R){for(var U=0;U<c.create.length;++U)c.create[U](fn,D);u(a=D.data.hook)&&(u(a.create)&&a.create(fn,D),u(a.insert)&&R.push(D))}function T(D){var R;if(u(R=D.fnScopeId))d.setStyleScope(D.elm,R);else for(var U=D;U;)u(R=U.context)&&u(R=R.$options._scopeId)&&d.setStyleScope(D.elm,R),U=U.parent;u(R=kn)&&R!==D.context&&R!==D.fnContext&&u(R=R.$options._scopeId)&&d.setStyleScope(D.elm,R)}function k(D,R,U,G,ie,he){for(;G<=ie;++G)b(U[G],he,D,R,!1,U,G)}function j(D){var R,U,G=D.data;if(u(G))for(u(R=G.hook)&&u(R=R.destroy)&&R(D),R=0;R<c.destroy.length;++R)c.destroy[R](D);if(u(R=D.children))for(U=0;U<D.children.length;++U)j(D.children[U])}function P(D,R,U){for(;R<=U;++R){var G=D[R];u(G)&&(u(G.tag)?(W(G),j(G)):v(G.elm))}}function W(D,R){if(u(R)||u(D.data)){var U,G=c.remove.length+1;for(u(R)?R.listeners+=G:R=function(ie,he){function ue(){--ue.listeners==0&&v(ie)}return ue.listeners=he,ue}(D.elm,G),u(U=D.componentInstance)&&u(U=U._vnode)&&u(U.data)&&W(U,R),U=0;U<c.remove.length;++U)c.remove[U](D,R);u(U=D.data.hook)&&u(U=U.remove)?U(D,R):R()}else v(D.elm)}function F(D,R,U,G){for(var ie=U;ie<G;ie++){var he=R[ie];if(u(he)&&Mn(D,he))return ie}}function se(D,R,U,G,ie,he){if(D!==R){u(R.elm)&&u(G)&&(R=G[ie]=Z(R));var ue=R.elm=D.elm;if(p(D.isAsyncPlaceholder))u(R.asyncFactory.resolved)?ae(D.elm,R,U):R.isAsyncPlaceholder=!0;else if(p(R.isStatic)&&p(D.isStatic)&&R.key===D.key&&(p(R.isCloned)||p(R.isOnce)))R.componentInstance=D.componentInstance;else{var de,xe=R.data;u(xe)&&u(de=xe.hook)&&u(de=de.prepatch)&&de(D,R);var ge=D.children,fe=R.children;if(u(xe)&&_(R)){for(de=0;de<c.update.length;++de)c.update[de](D,R);u(de=xe.hook)&&u(de=de.update)&&de(D,R)}l(R.text)?u(ge)&&u(fe)?ge!==fe&&function(Ee,we,me,He,or){for(var Ot,Ir,Nr,Mt=0,je=0,qe=we.length-1,dt=we[0],It=we[qe],Nt=me.length-1,nt=me[0],lr=me[Nt],Os=!or;Mt<=qe&&je<=Nt;)l(dt)?dt=we[++Mt]:l(It)?It=we[--qe]:Mn(dt,nt)?(se(dt,nt,He,me,je),dt=we[++Mt],nt=me[++je]):Mn(It,lr)?(se(It,lr,He,me,Nt),It=we[--qe],lr=me[--Nt]):Mn(dt,lr)?(se(dt,lr,He,me,Nt),Os&&d.insertBefore(Ee,dt.elm,d.nextSibling(It.elm)),dt=we[++Mt],lr=me[--Nt]):Mn(It,nt)?(se(It,nt,He,me,je),Os&&d.insertBefore(Ee,It.elm,dt.elm),It=we[--qe],nt=me[++je]):(l(Ot)&&(Ot=V9(we,Mt,qe)),l(Ir=u(nt.key)?Ot[nt.key]:F(nt,we,Mt,qe))?b(nt,He,Ee,dt.elm,!1,me,je):Mn(Nr=we[Ir],nt)?(se(Nr,nt,He,me,je),we[Ir]=void 0,Os&&d.insertBefore(Ee,Nr.elm,dt.elm)):b(nt,He,Ee,dt.elm,!1,me,je),nt=me[++je]);Mt>qe?k(Ee,l(me[Nt+1])?null:me[Nt+1].elm,me,je,Nt,He):je>Nt&&P(we,Mt,qe)}(ue,ge,fe,U,he):u(fe)?(u(D.text)&&d.setTextContent(ue,""),k(ue,null,fe,0,fe.length-1,U)):u(ge)?P(ge,0,ge.length-1):u(D.text)&&d.setTextContent(ue,""):D.text!==R.text&&d.setTextContent(ue,R.text),u(xe)&&u(de=xe.hook)&&u(de=de.postpatch)&&de(D,R)}}}function ee(D,R,U){if(p(U)&&u(D.parent))D.parent.data.pendingInsert=R;else for(var G=0;G<R.length;++G)R[G].data.hook.insert(R[G])}var J=V("attrs,class,staticClass,staticStyle,key");function ae(D,R,U,G){var ie,he=R.tag,ue=R.data,de=R.children;if(G=G||ue&&ue.pre,R.elm=D,p(R.isComment)&&u(R.asyncFactory))return R.isAsyncPlaceholder=!0,!0;if(u(ue)&&(u(ie=ue.hook)&&u(ie=ie.init)&&ie(R,!0),u(ie=R.componentInstance)))return m(R,U),!0;if(u(he)){if(u(de))if(D.hasChildNodes())if(u(ie=ue)&&u(ie=ie.domProps)&&u(ie=ie.innerHTML)){if(ie!==D.innerHTML)return!1}else{for(var xe=!0,ge=D.firstChild,fe=0;fe<de.length;fe++){if(!ge||!ae(ge,de[fe],U,G)){xe=!1;break}ge=ge.nextSibling}if(!xe||ge)return!1}else C(R,de,U);if(u(ue)){var Ee=!1;for(var we in ue)if(!J(we)){Ee=!0,x(R,U);break}!Ee&&ue.class&&tr(ue.class)}}else D.data!==R.text&&(D.data=R.text);return!0}return function(D,R,U,G){if(!l(R)){var ie,he=!1,ue=[];if(l(D))he=!0,b(R,ue);else{var de=u(D.nodeType);if(!de&&Mn(D,R))se(D,R,ue,null,null,G);else{if(de){if(D.nodeType===1&&D.hasAttribute(Je)&&(D.removeAttribute(Je),U=!0),p(U)&&ae(D,R,ue))return ee(R,ue,!0),D;ie=D,D=new tt(d.tagName(ie).toLowerCase(),{},[],void 0,ie)}var xe=D.elm,ge=d.parentNode(xe);if(b(R,ue,xe._leaveCb?null:ge,d.nextSibling(xe)),u(R.parent))for(var fe=R.parent,Ee=_(R);fe;){for(var we=0;we<c.destroy.length;++we)c.destroy[we](fe);if(fe.elm=R.elm,Ee){for(var me=0;me<c.create.length;++me)c.create[me](fn,fe);var He=fe.data.hook.insert;if(He.merged)for(var or=He.fns.slice(1),Ot=0;Ot<or.length;Ot++)or[Ot]()}else rr(fe);fe=fe.parent}u(ge)?P([D],0,0):u(D.tag)&&j(D)}}return ee(R,ue,he),R.elm}u(D)&&j(D)}}({nodeOps:j9,modules:[G9,Z9,tp,rp,sp,Me?{create:L0,activate:L0,remove:function(r,a){r.data.show!==!0?_0(r,a):a()}}:{}].concat(W9)});vt&&document.addEventListener("selectionchange",function(){var r=document.activeElement;r&&r.vmodel&&ps(r,"input")});var A0={inserted:function(r,a,o,c){o.tag==="select"?(c.elm&&!c.elm._vOptions?un(o,"postpatch",function(){A0.componentUpdated(r,a,o)}):C0(r,a,o.context),r._vOptions=[].map.call(r.options,xi)):(o.tag==="textarea"||Ya(r.type))&&(r._vModifiers=a.modifiers,a.modifiers.lazy||(r.addEventListener("compositionstart",cp),r.addEventListener("compositionend",x0),r.addEventListener("change",x0),vt&&(r.vmodel=!0)))},componentUpdated:function(r,a,o){if(o.tag==="select"){C0(r,a,o.context);var c=r._vOptions,f=r._vOptions=[].map.call(r.options,xi);f.some(function(d,v){return!Qe(d,c[v])})&&(r.multiple?a.value.some(function(d){return S0(d,f)}):a.value!==a.oldValue&&S0(a.value,f))&&ps(r,"change")}}};function C0(r,a,o){E0(r,a),(Xe||Cn)&&setTimeout(function(){E0(r,a)},0)}function E0(r,a,o){var c=a.value,f=r.multiple;if(!f||Array.isArray(c)){for(var d,v,b=0,m=r.options.length;b<m;b++)if(v=r.options[b],f)d=ot(c,xi(v))>-1,v.selected!==d&&(v.selected=d);else if(Qe(xi(v),c))return void(r.selectedIndex!==b&&(r.selectedIndex=b));f||(r.selectedIndex=-1)}}function S0(r,a){return a.every(function(o){return!Qe(o,r)})}function xi(r){return"_value"in r?r._value:r.value}function cp(r){r.target.composing=!0}function x0(r){r.target.composing&&(r.target.composing=!1,ps(r.target,"input"))}function ps(r,a){var o=document.createEvent("HTMLEvents");o.initEvent(a,!0,!0),r.dispatchEvent(o)}function hs(r){return!r.componentInstance||r.data&&r.data.transition?r:hs(r.componentInstance._vnode)}var up={bind:function(r,a,o){var c=a.value,f=(o=hs(o)).data&&o.data.transition,d=r.__vOriginalDisplay=r.style.display==="none"?"":r.style.display;c&&f?(o.data.show=!0,ds(o,function(){r.style.display=d})):r.style.display=c?d:"none"},update:function(r,a,o){var c=a.value;!c!=!a.oldValue&&((o=hs(o)).data&&o.data.transition?(o.data.show=!0,c?ds(o,function(){r.style.display=r.__vOriginalDisplay}):_0(o,function(){r.style.display="none"})):r.style.display=c?r.__vOriginalDisplay:"none")},unbind:function(r,a,o,c,f){f||(r.style.display=r.__vOriginalDisplay)}},dp={model:A0,show:up},D0={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function vs(r){var a=r&&r.componentOptions;return a&&a.Ctor.options.abstract?vs(al(a.children)):r}function T0(r){var a={},o=r.$options;for(var c in o.propsData)a[c]=r[c];var f=o._parentListeners;for(var c in f)a[oe(c)]=f[c];return a}function k0(r,a){if(/\d-keep-alive$/.test(a.tag))return r("keep-alive",{props:a.componentOptions.propsData})}var fp=function(r){return r.tag||Er(r)},pp=function(r){return r.name==="show"},hp={name:"transition",props:D0,abstract:!0,render:function(r){var a=this,o=this.$slots.default;if(o&&(o=o.filter(fp)).length){var c=this.mode,f=o[0];if(function(T){for(;T=T.parent;)if(T.data.transition)return!0}(this.$vnode))return f;var d=vs(f);if(!d)return f;if(this._leaving)return k0(r,f);var v="__transition-".concat(this._uid,"-");d.key=d.key==null?d.isComment?v+"comment":v+d.tag:h(d.key)?String(d.key).indexOf(v)===0?d.key:v+d.key:d.key;var b=(d.data||(d.data={})).transition=T0(this),m=this._vnode,L=vs(m);if(d.data.directives&&d.data.directives.some(pp)&&(d.data.show=!0),L&&L.data&&!function(T,k){return k.key===T.key&&k.tag===T.tag}(d,L)&&!Er(L)&&(!L.componentInstance||!L.componentInstance._vnode.isComment)){var C=L.data.transition=te({},b);if(c==="out-in")return this._leaving=!0,un(C,"afterLeave",function(){a._leaving=!1,a.$forceUpdate()}),k0(r,f);if(c==="in-out"){if(Er(d))return m;var _,x=function(){_()};un(b,"afterEnter",x),un(b,"enterCancelled",x),un(C,"delayLeave",function(T){_=T})}}return f}}},R0=te({tag:String,moveClass:String},D0);delete R0.mode;var vp={props:R0,beforeMount:function(){var r=this,a=this._update;this._update=function(o,c){var f=ll(r);r.__patch__(r._vnode,r.kept,!1,!0),r._vnode=r.kept,f(),a.call(r,o,c)}},render:function(r){for(var a=this.tag||this.$vnode.data.tag||"span",o=Object.create(null),c=this.prevChildren=this.children,f=this.$slots.default||[],d=this.children=[],v=T0(this),b=0;b<f.length;b++)(C=f[b]).tag&&C.key!=null&&String(C.key).indexOf("__vlist")!==0&&(d.push(C),o[C.key]=C,(C.data||(C.data={})).transition=v);if(c){var m=[],L=[];for(b=0;b<c.length;b++){var C;(C=c[b]).data.transition=v,C.data.pos=C.elm.getBoundingClientRect(),o[C.key]?m.push(C):L.push(C)}this.kept=r(a,null,m),this.removed=L}return r(a,null,d)},updated:function(){var r=this.prevChildren,a=this.moveClass||(this.name||"v")+"-move";r.length&&this.hasMove(r[0].elm,a)&&(r.forEach(gp),r.forEach(mp),r.forEach(yp),this._reflow=document.body.offsetHeight,r.forEach(function(o){if(o.data.moved){var c=o.elm,f=c.style;Nn(c,a),f.transform=f.WebkitTransform=f.transitionDuration="",c.addEventListener(Si,c._moveCb=function d(v){v&&v.target!==c||v&&!/transform$/.test(v.propertyName)||(c.removeEventListener(Si,d),c._moveCb=null,Kt(c,a))})}}))},methods:{hasMove:function(r,a){if(!f0)return!1;if(this._hasMove)return this._hasMove;var o=r.cloneNode();r._transitionClasses&&r._transitionClasses.forEach(function(f){c0(o,f)}),l0(o,a),o.style.display="none",this.$el.appendChild(o);var c=m0(o);return this.$el.removeChild(o),this._hasMove=c.hasTransform}}};function gp(r){r.elm._moveCb&&r.elm._moveCb(),r.elm._enterCb&&r.elm._enterCb()}function mp(r){r.data.newPos=r.elm.getBoundingClientRect()}function yp(r){var a=r.data.pos,o=r.data.newPos,c=a.left-o.left,f=a.top-o.top;if(c||f){r.data.moved=!0;var d=r.elm.style;d.transform=d.WebkitTransform="translate(".concat(c,"px,").concat(f,"px)"),d.transitionDuration="0s"}}var bp={Transition:hp,TransitionGroup:vp};Ae.config.mustUseProp=$l,Ae.config.isReservedTag=Za,Ae.config.isReservedAttr=R9,Ae.config.getTagNamespace=Bl,Ae.config.isUnknownElement=function(r){if(!Me)return!0;if(Za(r))return!1;if(r=r.toLowerCase(),_i[r]!=null)return _i[r];var a=document.createElement(r);return r.indexOf("-")>-1?_i[r]=a.constructor===window.HTMLUnknownElement||a.constructor===window.HTMLElement:_i[r]=/HTMLUnknownElement/.test(a.toString())},te(Ae.options.directives,dp),te(Ae.options.components,bp),Ae.prototype.__patch__=Me?lp:re,Ae.prototype.$mount=function(r,a){return function(o,c,f){var d;o.$el=c,o.$options.render||(o.$options.render=Wt),St(o,"beforeMount"),d=function(){o._update(o._render(),f)},new nr(o,d,re,{before:function(){o._isMounted&&!o._isDestroyed&&St(o,"beforeUpdate")}},!0),f=!1;var v=o._preWatchers;if(v)for(var b=0;b<v.length;b++)v[b].run();return o.$vnode==null&&(o._isMounted=!0,St(o,"mounted")),o}(this,r=r&&Me?Qa(r):void 0,a)},Me&&setTimeout(function(){},0);var _p=/\{\{((?:.|\r?\n)+?)\}\}/g,O0=/[-.*+?^${}()|[\]\/\\]/g,wp=Y(function(r){var a=r[0].replace(O0,"\\$&"),o=r[1].replace(O0,"\\$&");return new RegExp(a+"((?:.|\\n)+?)"+o,"g")}),Lp={staticKeys:["staticClass"],transformNode:function(r,a){a.warn;var o=$e(r,"class");o&&(r.staticClass=JSON.stringify(o.replace(/\s+/g," ").trim()));var c=yt(r,"class",!1);c&&(r.classBinding=c)},genData:function(r){var a="";return r.staticClass&&(a+="staticClass:".concat(r.staticClass,",")),r.classBinding&&(a+="class:".concat(r.classBinding,",")),a}},gs,Ap={staticKeys:["staticStyle"],transformNode:function(r,a){a.warn;var o=$e(r,"style");o&&(r.staticStyle=JSON.stringify(t0(o)));var c=yt(r,"style",!1);c&&(r.styleBinding=c)},genData:function(r){var a="";return r.staticStyle&&(a+="staticStyle:".concat(r.staticStyle,",")),r.styleBinding&&(a+="style:(".concat(r.styleBinding,"),")),a}},Cp=function(r){return(gs=gs||document.createElement("div")).innerHTML=r,gs.textContent},Ep=V("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),Sp=V("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),xp=V("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),Dp=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Tp=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,M0="[a-zA-Z_][\\-\\.0-9_a-zA-Z".concat(Ft.source,"]*"),I0="((?:".concat(M0,"\\:)?").concat(M0,")"),N0=new RegExp("^<".concat(I0)),kp=/^\s*(\/?)>/,$0=new RegExp("^<\\/".concat(I0,"[^>]*>")),Rp=/^<!DOCTYPE [^>]+>/i,P0=/^<!\--/,H0=/^<!\[/,j0=V("script,style,textarea",!0),B0={},Op={"<":"<",">":">",""":'"',"&":"&"," ":` +`,"	":" ","'":"'"},Mp=/&(?:lt|gt|quot|amp|#39);/g,Ip=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Np=V("pre,textarea",!0),V0=function(r,a){return r&&Np(r)&&a[0]===` +`};function $p(r,a){var o=a?Ip:Mp;return r.replace(o,function(c){return Op[c]})}function Pp(r,a){for(var o,c,f=[],d=a.expectHTML,v=a.isUnaryTag||Re,b=a.canBeLeftOpenTag||Re,m=0,L=function(){if(o=r,c&&j0(c)){var x=0,T=c.toLowerCase(),k=B0[T]||(B0[T]=new RegExp("([\\s\\S]*?)(</"+T+"[^>]*>)","i"));D=r.replace(k,function(U,G,ie){return x=ie.length,j0(T)||T==="noscript"||(G=G.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),V0(T,G)&&(G=G.slice(1)),a.chars&&a.chars(G),""}),m+=r.length-D.length,r=D,_(T,m-x,m)}else{var j=r.indexOf("<");if(j===0){if(P0.test(r)){var P=r.indexOf("-->");if(P>=0)return a.shouldKeepComment&&a.comment&&a.comment(r.substring(4,P),m,m+P+3),C(P+3),"continue"}if(H0.test(r)){var W=r.indexOf("]>");if(W>=0)return C(W+2),"continue"}var F=r.match(Rp);if(F)return C(F[0].length),"continue";var se=r.match($0);if(se){var ee=m;return C(se[0].length),_(se[1],ee,m),"continue"}var J=function(){var U=r.match(N0);if(U){var G={tagName:U[1],attrs:[],start:m};C(U[0].length);for(var ie=void 0,he=void 0;!(ie=r.match(kp))&&(he=r.match(Tp)||r.match(Dp));)he.start=m,C(he[0].length),he.end=m,G.attrs.push(he);if(ie)return G.unarySlash=ie[1],C(ie[0].length),G.end=m,G}}();if(J)return function(U){var G=U.tagName,ie=U.unarySlash;d&&(c==="p"&&xp(G)&&_(c),b(G)&&c===G&&_(G));for(var he=v(G)||!!ie,ue=U.attrs.length,de=new Array(ue),xe=0;xe<ue;xe++){var ge=U.attrs[xe],fe=ge[3]||ge[4]||ge[5]||"",Ee=G==="a"&&ge[1]==="href"?a.shouldDecodeNewlinesForHref:a.shouldDecodeNewlines;de[xe]={name:ge[1],value:$p(fe,Ee)}}he||(f.push({tag:G,lowerCasedTag:G.toLowerCase(),attrs:de,start:U.start,end:U.end}),c=G),a.start&&a.start(G,de,he,U.start,U.end)}(J),V0(J.tagName,r)&&C(1),"continue"}var ae=void 0,D=void 0,R=void 0;if(j>=0){for(D=r.slice(j);!($0.test(D)||N0.test(D)||P0.test(D)||H0.test(D)||(R=D.indexOf("<",1))<0);)j+=R,D=r.slice(j);ae=r.substring(0,j)}j<0&&(ae=r),ae&&C(ae.length),a.chars&&ae&&a.chars(ae,m-ae.length,m)}if(r===o)return a.chars&&a.chars(r),"break"};r&&L()!=="break";);function C(x){m+=x,r=r.substring(x)}function _(x,T,k){var j,P;if(T==null&&(T=m),k==null&&(k=m),x)for(P=x.toLowerCase(),j=f.length-1;j>=0&&f[j].lowerCasedTag!==P;j--);else j=0;if(j>=0){for(var W=f.length-1;W>=j;W--)a.end&&a.end(f[W].tag,T,k);f.length=j,c=j&&f[j-1].tag}else P==="br"?a.start&&a.start(x,[],!0,T,k):P==="p"&&(a.start&&a.start(x,[],!1,T,k),a.end&&a.end(x,T,k))}_()}var F0,U0,ms,ys,bs,_s,ws,z0,W0=/^@|^v-on:/,Ls=/^v-|^@|^:|^#/,Hp=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,G0=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,jp=/^\(|\)$/g,Di=/^\[.*\]$/,Bp=/:(.*)$/,Z0=/^:|^\.|^v-bind:/,Y0=/\.[^.\]]+(?=[^\]]*$)/g,As=/^v-slot(:|$)|^#/,Vp=/[\r\n]/,Fp=/[ \f\t\r\n]+/g,Up=Y(Cp),Ti="_empty_";function Cs(r,a,o){return{type:1,tag:r,attrsList:a,attrsMap:Gp(a),rawAttrsMap:{},parent:o,children:[]}}function zp(r,a){F0=a.warn||Yl,_s=a.isPreTag||Re,ws=a.mustUseProp||Re,z0=a.getTagNamespace||Re,a.isReservedTag,ms=Rr(a.modules,"transformNode"),ys=Rr(a.modules,"preTransformNode"),bs=Rr(a.modules,"postTransformNode"),U0=a.delimiters;var o,c,f=[],d=a.preserveWhitespace!==!1,v=a.whitespace,b=!1,m=!1;function L(_){if(C(_),b||_.processed||(_=ki(_,a)),f.length||_===o||o.if&&(_.elseif||_.else)&&ar(o,{exp:_.elseif,block:_}),c&&!_.forbidden)if(_.elseif||_.else)T=_,k=function(P){for(var W=P.length;W--;){if(P[W].type===1)return P[W];P.pop()}}(c.children),k&&k.if&&ar(k,{exp:T.elseif,block:T});else{if(_.slotScope){var x=_.slotTarget||'"default"';(c.scopedSlots||(c.scopedSlots={}))[x]=_}c.children.push(_),_.parent=c}var T,k;_.children=_.children.filter(function(P){return!P.slotScope}),C(_),_.pre&&(b=!1),_s(_.tag)&&(m=!1);for(var j=0;j<bs.length;j++)bs[j](_,a)}function C(_){if(!m)for(var x=void 0;(x=_.children[_.children.length-1])&&x.type===3&&x.text===" ";)_.children.pop()}return Pp(r,{warn:F0,expectHTML:a.expectHTML,isUnaryTag:a.isUnaryTag,canBeLeftOpenTag:a.canBeLeftOpenTag,shouldDecodeNewlines:a.shouldDecodeNewlines,shouldDecodeNewlinesForHref:a.shouldDecodeNewlinesForHref,shouldKeepComment:a.comments,outputSourceRange:a.outputSourceRange,start:function(_,x,T,k,j){var P=c&&c.ns||z0(_);Xe&&P==="svg"&&(x=function(ee){for(var J=[],ae=0;ae<ee.length;ae++){var D=ee[ae];Zp.test(D.name)||(D.name=D.name.replace(Yp,""),J.push(D))}return J}(x));var W,F=Cs(_,x,c);P&&(F.ns=P),(W=F).tag!=="style"&&(W.tag!=="script"||W.attrsMap.type&&W.attrsMap.type!=="text/javascript")||et()||(F.forbidden=!0);for(var se=0;se<ys.length;se++)F=ys[se](F,a)||F;b||(function(ee){$e(ee,"v-pre")!=null&&(ee.pre=!0)}(F),F.pre&&(b=!0)),_s(F.tag)&&(m=!0),b?function(ee){var J=ee.attrsList,ae=J.length;if(ae)for(var D=ee.attrs=new Array(ae),R=0;R<ae;R++)D[R]={name:J[R].name,value:JSON.stringify(J[R].value)},J[R].start!=null&&(D[R].start=J[R].start,D[R].end=J[R].end);else ee.pre||(ee.plain=!0)}(F):F.processed||(Q0(F),function(ee){var J=$e(ee,"v-if");if(J)ee.if=J,ar(ee,{exp:J,block:ee});else{$e(ee,"v-else")!=null&&(ee.else=!0);var ae=$e(ee,"v-else-if");ae&&(ee.elseif=ae)}}(F),function(ee){var J=$e(ee,"v-once");J!=null&&(ee.once=!0)}(F)),o||(o=F),T?L(F):(c=F,f.push(F))},end:function(_,x,T){var k=f[f.length-1];f.length-=1,c=f[f.length-1],L(k)},chars:function(_,x,T){if(c&&(!Xe||c.tag!=="textarea"||c.attrsMap.placeholder!==_)){var k,j=c.children;if(_=m||_.trim()?(k=c).tag==="script"||k.tag==="style"?_:Up(_):j.length?v?v==="condense"&&Vp.test(_)?"":" ":d?" ":"":""){m||v!=="condense"||(_=_.replace(Fp," "));var P=void 0,W=void 0;!b&&_!==" "&&(P=function(F,se){var ee=se?wp(se):_p;if(ee.test(F)){for(var J,ae,D,R=[],U=[],G=ee.lastIndex=0;J=ee.exec(F);){(ae=J.index)>G&&(U.push(D=F.slice(G,ae)),R.push(JSON.stringify(D)));var ie=Xa(J[1].trim());R.push("_s(".concat(ie,")")),U.push({"@binding":ie}),G=ae+J[0].length}return G<F.length&&(U.push(D=F.slice(G)),R.push(JSON.stringify(D))),{expression:R.join("+"),tokens:U}}}(_,U0))?W={type:2,expression:P.expression,tokens:P.tokens,text:_}:_===" "&&j.length&&j[j.length-1].text===" "||(W={type:3,text:_}),W&&j.push(W)}}},comment:function(_,x,T){if(c){var k={type:3,text:_,isComment:!0};c.children.push(k)}}}),o}function ki(r,a){var o,c;(c=yt(o=r,"key"))&&(o.key=c),r.plain=!r.key&&!r.scopedSlots&&!r.attrsList.length,function(d){var v=yt(d,"ref");v&&(d.ref=v,d.refInFor=function(b){for(var m=b;m;){if(m.for!==void 0)return!0;m=m.parent}return!1}(d))}(r),function(d){var v;d.tag==="template"?(v=$e(d,"scope"),d.slotScope=v||$e(d,"slot-scope")):(v=$e(d,"slot-scope"))&&(d.slotScope=v);var b=yt(d,"slot");if(b&&(d.slotTarget=b==='""'?'"default"':b,d.slotTargetDynamic=!(!d.attrsMap[":slot"]&&!d.attrsMap["v-bind:slot"]),d.tag==="template"||d.slotScope||es(d,"slot",b,function(P,W){return P.rawAttrsMap[":"+W]||P.rawAttrsMap["v-bind:"+W]||P.rawAttrsMap[W]}(d,"slot"))),d.tag==="template"){if(_=Ql(d,As)){var m=q0(_),L=m.name,C=m.dynamic;d.slotTarget=L,d.slotTargetDynamic=C,d.slotScope=_.value||Ti}}else{var _;if(_=Ql(d,As)){var x=d.scopedSlots||(d.scopedSlots={}),T=q0(_),k=T.name,j=(C=T.dynamic,x[k]=Cs("template",[],d));j.slotTarget=k,j.slotTargetDynamic=C,j.children=d.children.filter(function(P){if(!P.slotScope)return P.parent=j,!0}),j.slotScope=_.value||Ti,d.children=[],d.plain=!1}}}(r),function(d){d.tag==="slot"&&(d.slotName=yt(d,"name"))}(r),function(d){var v;(v=yt(d,"is"))&&(d.component=v),$e(d,"inline-template")!=null&&(d.inlineTemplate=!0)}(r);for(var f=0;f<ms.length;f++)r=ms[f](r,a)||r;return function(d){var v,b,m,L,C,_,x,T,k=d.attrsList;for(v=0,b=k.length;v<b;v++)if(m=L=k[v].name,C=k[v].value,Ls.test(m))if(d.hasBindings=!0,(_=Wp(m.replace(Ls,"")))&&(m=m.replace(Y0,"")),Z0.test(m))m=m.replace(Z0,""),C=Xa(C),(T=Di.test(m))&&(m=m.slice(1,-1)),_&&(_.prop&&!T&&(m=oe(m))==="innerHtml"&&(m="innerHTML"),_.camel&&!T&&(m=oe(m)),_.sync&&(x=hn(C,"$event"),T?Jt(d,'"update:"+('.concat(m,")"),x,null,!1,0,k[v],!0):(Jt(d,"update:".concat(oe(m)),x,null,!1,0,k[v]),pe(m)!==oe(m)&&Jt(d,"update:".concat(pe(m)),x,null,!1,0,k[v])))),_&&_.prop||!d.component&&ws(d.tag,d.attrsMap.type,m)?In(d,m,C,k[v],T):es(d,m,C,k[v],T);else if(W0.test(m))m=m.replace(W0,""),(T=Di.test(m))&&(m=m.slice(1,-1)),Jt(d,m,C,_,!1,0,k[v],T);else{var j=(m=m.replace(Ls,"")).match(Bp),P=j&&j[1];T=!1,P&&(m=m.slice(0,-(P.length+1)),Di.test(P)&&(P=P.slice(1,-1),T=!0)),q9(d,m,L,C,P,T,_,k[v])}else es(d,m,JSON.stringify(C),k[v]),!d.component&&m==="muted"&&ws(d.tag,d.attrsMap.type,m)&&In(d,m,"true",k[v])}(r),r}function Q0(r){var a;if(a=$e(r,"v-for")){var o=function(c){var f=c.match(Hp);if(f){var d={};d.for=f[2].trim();var v=f[1].trim().replace(jp,""),b=v.match(G0);return b?(d.alias=v.replace(G0,"").trim(),d.iterator1=b[1].trim(),b[2]&&(d.iterator2=b[2].trim())):d.alias=v,d}}(a);o&&te(r,o)}}function ar(r,a){r.ifConditions||(r.ifConditions=[]),r.ifConditions.push(a)}function q0(r){var a=r.name.replace(As,"");return a||r.name[0]!=="#"&&(a="default"),Di.test(a)?{name:a.slice(1,-1),dynamic:!0}:{name:'"'.concat(a,'"'),dynamic:!1}}function Wp(r){var a=r.match(Y0);if(a){var o={};return a.forEach(function(c){o[c.slice(1)]=!0}),o}}function Gp(r){for(var a={},o=0,c=r.length;o<c;o++)a[r[o].name]=r[o].value;return a}var Zp=/^xmlns:NS\d+/,Yp=/^NS\d+:/;function Es(r){return Cs(r.tag,r.attrsList.slice(),r.parent)}var J0=[Lp,Ap,{preTransformNode:function(r,a){if(r.tag==="input"){var o=r.attrsMap;if(!o["v-model"])return;var c=void 0;if((o[":type"]||o["v-bind:type"])&&(c=yt(r,"type")),o.type||c||!o["v-bind"]||(c="(".concat(o["v-bind"],").type")),c){var f=$e(r,"v-if",!0),d=f?"&&(".concat(f,")"):"",v=$e(r,"v-else",!0)!=null,b=$e(r,"v-else-if",!0),m=Es(r);Q0(m),ts(m,"type","checkbox"),ki(m,a),m.processed=!0,m.if="(".concat(c,")==='checkbox'")+d,ar(m,{exp:m.if,block:m});var L=Es(r);$e(L,"v-for",!0),ts(L,"type","radio"),ki(L,a),ar(m,{exp:"(".concat(c,")==='radio'")+d,block:L});var C=Es(r);return $e(C,"v-for",!0),ts(C,":type",c),ki(C,a),ar(m,{exp:f,block:C}),v?m.else=!0:b&&(m.elseif=b),m}}}}],K0,Ss,Qp={model:function(r,a,o){var c=a.value,f=a.modifiers,d=r.tag,v=r.attrsMap.type;if(r.component)return ql(r,c,f),!1;if(d==="select")(function(b,m,L){var C=L&&L.number,_='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;'+"return ".concat(C?"_n(val)":"val","})"),x="$event.target.multiple ? $$selectedVal : $$selectedVal[0]",T="var $$selectedVal = ".concat(_,";");T="".concat(T," ").concat(hn(m,x)),Jt(b,"change",T,null,!0)})(r,c,f);else if(d==="input"&&v==="checkbox")(function(b,m,L){var C=L&&L.number,_=yt(b,"value")||"null",x=yt(b,"true-value")||"true",T=yt(b,"false-value")||"false";In(b,"checked","Array.isArray(".concat(m,")")+"?_i(".concat(m,",").concat(_,")>-1")+(x==="true"?":(".concat(m,")"):":_q(".concat(m,",").concat(x,")"))),Jt(b,"change","var $$a=".concat(m,",")+"$$el=$event.target,"+"$$c=$$el.checked?(".concat(x,"):(").concat(T,");")+"if(Array.isArray($$a)){"+"var $$v=".concat(C?"_n("+_+")":_,",")+"$$i=_i($$a,$$v);"+"if($$el.checked){$$i<0&&(".concat(hn(m,"$$a.concat([$$v])"),")}")+"else{$$i>-1&&(".concat(hn(m,"$$a.slice(0,$$i).concat($$a.slice($$i+1))"),")}")+"}else{".concat(hn(m,"$$c"),"}"),null,!0)})(r,c,f);else if(d==="input"&&v==="radio")(function(b,m,L){var C=L&&L.number,_=yt(b,"value")||"null";_=C?"_n(".concat(_,")"):_,In(b,"checked","_q(".concat(m,",").concat(_,")")),Jt(b,"change",hn(m,_),null,!0)})(r,c,f);else if(d==="input"||d==="textarea")(function(b,m,L){var C=b.attrsMap.type,_=L||{},x=_.lazy,T=_.number,k=_.trim,j=!x&&C!=="range",P=x?"change":C==="range"?Ai:"input",W="$event.target.value";k&&(W="$event.target.value.trim()"),T&&(W="_n(".concat(W,")"));var F=hn(m,W);j&&(F="if($event.target.composing)return;".concat(F)),In(b,"value","(".concat(m,")")),Jt(b,P,F,null,!0),(k||T)&&Jt(b,"blur","$forceUpdate()")})(r,c,f);else return ql(r,c,f),!1;return!0},text:function(r,a){a.value&&In(r,"textContent","_s(".concat(a.value,")"),a)},html:function(r,a){a.value&&In(r,"innerHTML","_s(".concat(a.value,")"),a)}},qp={expectHTML:!0,modules:J0,directives:Qp,isPreTag:function(r){return r==="pre"},isUnaryTag:Ep,mustUseProp:$l,canBeLeftOpenTag:Sp,isReservedTag:Za,getTagNamespace:Bl,staticKeys:function(r){return r.reduce(function(a,o){return a.concat(o.staticKeys||[])},[]).join(",")}(J0)},Jp=Y(function(r){return V("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(r?","+r:""))});function Kp(r,a){r&&(K0=Jp(a.staticKeys||""),Ss=a.isReservedTag||Re,xs(r),Ds(r,!1))}function xs(r){if(r.static=function(d){return d.type===2?!1:d.type===3?!0:!(!d.pre&&(d.hasBindings||d.if||d.for||Q(d.tag)||!Ss(d.tag)||function(v){for(;v.parent;){if((v=v.parent).tag!=="template")return!1;if(v.for)return!0}return!1}(d)||!Object.keys(d).every(K0)))}(r),r.type===1){if(!Ss(r.tag)&&r.tag!=="slot"&&r.attrsMap["inline-template"]==null)return;for(var a=0,o=r.children.length;a<o;a++){var c=r.children[a];xs(c),c.static||(r.static=!1)}if(r.ifConditions)for(a=1,o=r.ifConditions.length;a<o;a++){var f=r.ifConditions[a].block;xs(f),f.static||(r.static=!1)}}}function Ds(r,a){if(r.type===1){if((r.static||r.once)&&(r.staticInFor=a),r.static&&r.children.length&&(r.children.length!==1||r.children[0].type!==3))return void(r.staticRoot=!0);if(r.staticRoot=!1,r.children)for(var o=0,c=r.children.length;o<c;o++)Ds(r.children[o],a||!!r.for);if(r.ifConditions)for(o=1,c=r.ifConditions.length;o<c;o++)Ds(r.ifConditions[o].block,a)}}var Xp=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,eh=/\([^)]*?\);*$/,X0=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,ec={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},th={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Xt=function(r){return"if(".concat(r,")return null;")},tc={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Xt("$event.target !== $event.currentTarget"),ctrl:Xt("!$event.ctrlKey"),shift:Xt("!$event.shiftKey"),alt:Xt("!$event.altKey"),meta:Xt("!$event.metaKey"),left:Xt("'button' in $event && $event.button !== 0"),middle:Xt("'button' in $event && $event.button !== 1"),right:Xt("'button' in $event && $event.button !== 2")};function nc(r,a){var o=a?"nativeOn:":"on:",c="",f="";for(var d in r){var v=rc(r[d]);r[d]&&r[d].dynamic?f+="".concat(d,",").concat(v,","):c+='"'.concat(d,'":').concat(v,",")}return c="{".concat(c.slice(0,-1),"}"),f?o+"_d(".concat(c,",[").concat(f.slice(0,-1),"])"):o+c}function rc(r){if(!r)return"function(){}";if(Array.isArray(r))return"[".concat(r.map(function(C){return rc(C)}).join(","),"]");var a=X0.test(r.value),o=Xp.test(r.value),c=X0.test(r.value.replace(eh,""));if(r.modifiers){var f="",d="",v=[],b=function(C){if(tc[C])d+=tc[C],ec[C]&&v.push(C);else if(C==="exact"){var _=r.modifiers;d+=Xt(["ctrl","shift","alt","meta"].filter(function(x){return!_[x]}).map(function(x){return"$event.".concat(x,"Key")}).join("||"))}else v.push(C)};for(var m in r.modifiers)b(m);v.length&&(f+=function(C){return"if(!$event.type.indexOf('key')&&"+"".concat(C.map(nh).join("&&"),")return null;")}(v)),d&&(f+=d);var L=a?"return ".concat(r.value,".apply(null, arguments)"):o?"return (".concat(r.value,").apply(null, arguments)"):c?"return ".concat(r.value):r.value;return"function($event){".concat(f).concat(L,"}")}return a||o?r.value:"function($event){".concat(c?"return ".concat(r.value):r.value,"}")}function nh(r){var a=parseInt(r,10);if(a)return"$event.keyCode!==".concat(a);var o=ec[r],c=th[r];return"_k($event.keyCode,"+"".concat(JSON.stringify(r),",")+"".concat(JSON.stringify(o),",")+"$event.key,"+"".concat(JSON.stringify(c))+")"}var rh={on:function(r,a){r.wrapListeners=function(o){return"_g(".concat(o,",").concat(a.value,")")}},bind:function(r,a){r.wrapData=function(o){return"_b(".concat(o,",'").concat(r.tag,"',").concat(a.value,",").concat(a.modifiers&&a.modifiers.prop?"true":"false").concat(a.modifiers&&a.modifiers.sync?",true":"",")")}},cloak:re},ih=function(r){this.options=r,this.warn=r.warn||Yl,this.transforms=Rr(r.modules,"transformCode"),this.dataGenFns=Rr(r.modules,"genData"),this.directives=te(te({},rh),r.directives);var a=r.isReservedTag||Re;this.maybeComponent=function(o){return!!o.component||!a(o.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function ic(r,a){var o=new ih(a),c=r?r.tag==="script"?"null":en(r,o):'_c("div")';return{render:"with(this){return ".concat(c,"}"),staticRenderFns:o.staticRenderFns}}function en(r,a){if(r.parent&&(r.pre=r.pre||r.parent.pre),r.staticRoot&&!r.staticProcessed)return ac(r,a);if(r.once&&!r.onceProcessed)return sc(r,a);if(r.for&&!r.forProcessed)return lc(r,a);if(r.if&&!r.ifProcessed)return Ts(r,a);if(r.tag!=="template"||r.slotTarget||a.pre){if(r.tag==="slot")return function(L,C){var _=L.slotName||'"default"',x=sr(L,C),T="_t(".concat(_).concat(x?",function(){return ".concat(x,"}"):""),k=L.attrs||L.dynamicAttrs?Ri((L.attrs||[]).concat(L.dynamicAttrs||[]).map(function(P){return{name:oe(P.name),value:P.value,dynamic:P.dynamic}})):null,j=L.attrsMap["v-bind"];return!k&&!j||x||(T+=",null"),k&&(T+=",".concat(k)),j&&(T+="".concat(k?"":",null",",").concat(j)),T+")"}(r,a);var o=void 0;if(r.component)o=function(L,C,_){var x=C.inlineTemplate?null:sr(C,_,!0);return"_c(".concat(L,",").concat(cc(C,_)).concat(x?",".concat(x):"",")")}(r.component,r,a);else{var c=void 0,f=a.maybeComponent(r);(!r.plain||r.pre&&f)&&(c=cc(r,a));var d=void 0,v=a.options.bindings;f&&v&&v.__isScriptSetup!==!1&&(d=function(L,C){var _=oe(C),x=ke(_),T=function(P){return L[C]===P?C:L[_]===P?_:L[x]===P?x:void 0},k=T("setup-const")||T("setup-reactive-const");if(k)return k;var j=T("setup-let")||T("setup-ref")||T("setup-maybe-ref");if(j)return j}(v,r.tag)),d||(d="'".concat(r.tag,"'"));var b=r.inlineTemplate?null:sr(r,a,!0);o="_c(".concat(d).concat(c?",".concat(c):"").concat(b?",".concat(b):"",")")}for(var m=0;m<a.transforms.length;m++)o=a.transforms[m](r,o);return o}return sr(r,a)||"void 0"}function ac(r,a){r.staticProcessed=!0;var o=a.pre;return r.pre&&(a.pre=r.pre),a.staticRenderFns.push("with(this){return ".concat(en(r,a),"}")),a.pre=o,"_m(".concat(a.staticRenderFns.length-1).concat(r.staticInFor?",true":"",")")}function sc(r,a){if(r.onceProcessed=!0,r.if&&!r.ifProcessed)return Ts(r,a);if(r.staticInFor){for(var o="",c=r.parent;c;){if(c.for){o=c.key;break}c=c.parent}return o?"_o(".concat(en(r,a),",").concat(a.onceId++,",").concat(o,")"):en(r,a)}return ac(r,a)}function Ts(r,a,o,c){return r.ifProcessed=!0,oc(r.ifConditions.slice(),a,o,c)}function oc(r,a,o,c){if(!r.length)return c||"_e()";var f=r.shift();return f.exp?"(".concat(f.exp,")?").concat(d(f.block),":").concat(oc(r,a,o,c)):"".concat(d(f.block));function d(v){return o?o(v,a):v.once?sc(v,a):en(v,a)}}function lc(r,a,o,c){var f=r.for,d=r.alias,v=r.iterator1?",".concat(r.iterator1):"",b=r.iterator2?",".concat(r.iterator2):"";return r.forProcessed=!0,"".concat(c||"_l","((").concat(f,"),")+"function(".concat(d).concat(v).concat(b,"){")+"return ".concat((o||en)(r,a))+"})"}function cc(r,a){var o="{",c=function(v,b){var m=v.directives;if(m){var L,C,_,x,T="directives:[",k=!1;for(L=0,C=m.length;L<C;L++){_=m[L],x=!0;var j=b.directives[_.name];j&&(x=!!j(v,_,b.warn)),x&&(k=!0,T+='{name:"'.concat(_.name,'",rawName:"').concat(_.rawName,'"').concat(_.value?",value:(".concat(_.value,"),expression:").concat(JSON.stringify(_.value)):"").concat(_.arg?",arg:".concat(_.isDynamicArg?_.arg:'"'.concat(_.arg,'"')):"").concat(_.modifiers?",modifiers:".concat(JSON.stringify(_.modifiers)):"","},"))}if(k)return T.slice(0,-1)+"]"}}(r,a);c&&(o+=c+","),r.key&&(o+="key:".concat(r.key,",")),r.ref&&(o+="ref:".concat(r.ref,",")),r.refInFor&&(o+="refInFor:true,"),r.pre&&(o+="pre:true,"),r.component&&(o+='tag:"'.concat(r.tag,'",'));for(var f=0;f<a.dataGenFns.length;f++)o+=a.dataGenFns[f](r);if(r.attrs&&(o+="attrs:".concat(Ri(r.attrs),",")),r.props&&(o+="domProps:".concat(Ri(r.props),",")),r.events&&(o+="".concat(nc(r.events,!1),",")),r.nativeEvents&&(o+="".concat(nc(r.nativeEvents,!0),",")),r.slotTarget&&!r.slotScope&&(o+="slot:".concat(r.slotTarget,",")),r.scopedSlots&&(o+="".concat(function(v,b,m){var L=v.for||Object.keys(b).some(function(T){var k=b[T];return k.slotTargetDynamic||k.if||k.for||uc(k)}),C=!!v.if;if(!L)for(var _=v.parent;_;){if(_.slotScope&&_.slotScope!==Ti||_.for){L=!0;break}_.if&&(C=!0),_=_.parent}var x=Object.keys(b).map(function(T){return ks(b[T],m)}).join(",");return"scopedSlots:_u([".concat(x,"]").concat(L?",null,true":"").concat(!L&&C?",null,false,".concat(function(T){for(var k=5381,j=T.length;j;)k=33*k^T.charCodeAt(--j);return k>>>0}(x)):"",")")}(r,r.scopedSlots,a),",")),r.model&&(o+="model:{value:".concat(r.model.value,",callback:").concat(r.model.callback,",expression:").concat(r.model.expression,"},")),r.inlineTemplate){var d=function(v,b){var m=v.children[0];if(m&&m.type===1){var L=ic(m,b.options);return"inlineTemplate:{render:function(){".concat(L.render,"},staticRenderFns:[").concat(L.staticRenderFns.map(function(C){return"function(){".concat(C,"}")}).join(","),"]}")}}(r,a);d&&(o+="".concat(d,","))}return o=o.replace(/,$/,"")+"}",r.dynamicAttrs&&(o="_b(".concat(o,',"').concat(r.tag,'",').concat(Ri(r.dynamicAttrs),")")),r.wrapData&&(o=r.wrapData(o)),r.wrapListeners&&(o=r.wrapListeners(o)),o}function uc(r){return r.type===1&&(r.tag==="slot"||r.children.some(uc))}function ks(r,a){var o=r.attrsMap["slot-scope"];if(r.if&&!r.ifProcessed&&!o)return Ts(r,a,ks,"null");if(r.for&&!r.forProcessed)return lc(r,a,ks);var c=r.slotScope===Ti?"":String(r.slotScope),f="function(".concat(c,"){")+"return ".concat(r.tag==="template"?r.if&&o?"(".concat(r.if,")?").concat(sr(r,a)||"undefined",":undefined"):sr(r,a)||"undefined":en(r,a),"}"),d=c?"":",proxy:true";return"{key:".concat(r.slotTarget||'"default"',",fn:").concat(f).concat(d,"}")}function sr(r,a,o,c,f){var d=r.children;if(d.length){var v=d[0];if(d.length===1&&v.for&&v.tag!=="template"&&v.tag!=="slot"){var b=o?a.maybeComponent(v)?",1":",0":"";return"".concat((c||en)(v,a)).concat(b)}var m=o?function(C,_){for(var x=0,T=0;T<C.length;T++){var k=C[T];if(k.type===1){if(dc(k)||k.ifConditions&&k.ifConditions.some(function(j){return dc(j.block)})){x=2;break}(_(k)||k.ifConditions&&k.ifConditions.some(function(j){return _(j.block)}))&&(x=1)}}return x}(d,a.maybeComponent):0,L=f||ah;return"[".concat(d.map(function(C){return L(C,a)}).join(","),"]").concat(m?",".concat(m):"")}}function dc(r){return r.for!==void 0||r.tag==="template"||r.tag==="slot"}function ah(r,a){return r.type===1?en(r,a):r.type===3&&r.isComment?function(o){return"_e(".concat(JSON.stringify(o.text),")")}(r):function(o){return"_v(".concat(o.type===2?o.expression:fc(JSON.stringify(o.text)),")")}(r)}function Ri(r){for(var a="",o="",c=0;c<r.length;c++){var f=r[c],d=fc(f.value);f.dynamic?o+="".concat(f.name,",").concat(d,","):a+='"'.concat(f.name,'":').concat(d,",")}return a="{".concat(a.slice(0,-1),"}"),o?"_d(".concat(a,",[").concat(o.slice(0,-1),"])"):a}function fc(r){return r.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function pc(r,a){try{return new Function(r)}catch(o){return a.push({err:o,code:r}),re}}function sh(r){var a=Object.create(null);return function(o,c,f){(c=te({},c)).warn,delete c.warn;var d=c.delimiters?String(c.delimiters)+o:o;if(a[d])return a[d];var v=r(o,c),b={},m=[];return b.render=pc(v.render,m),b.staticRenderFns=v.staticRenderFns.map(function(L){return pc(L,m)}),a[d]=b}}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)");var hc,Rs,oh=(hc=function(r,a){var o=zp(r.trim(),a);a.optimize!==!1&&Kp(o,a);var c=ic(o,a);return{ast:o,render:c.render,staticRenderFns:c.staticRenderFns}},function(r){function a(o,c){var f=Object.create(r),d=[],v=[];if(c)for(var b in c.modules&&(f.modules=(r.modules||[]).concat(c.modules)),c.directives&&(f.directives=te(Object.create(r.directives||null),c.directives)),c)b!=="modules"&&b!=="directives"&&(f[b]=c[b]);f.warn=function(L,C,_){(_?v:d).push(L)};var m=hc(o.trim(),f);return m.errors=d,m.tips=v,m}return{compile:a,compileToFunctions:sh(a)}}),vc=oh(qp).compileToFunctions;function gc(r){return(Rs=Rs||document.createElement("div")).innerHTML=r?`<a href=" +"/>`:`<div a=" +"/>`,Rs.innerHTML.indexOf(" ")>0}var lh=!!Me&&gc(!1),ch=!!Me&&gc(!0),uh=Y(function(r){var a=Qa(r);return a&&a.innerHTML}),dh=Ae.prototype.$mount;return Ae.prototype.$mount=function(r,a){if((r=r&&Qa(r))===document.body||r===document.documentElement)return this;var o=this.$options;if(!o.render){var c=o.template;if(c)if(typeof c=="string")c.charAt(0)==="#"&&(c=uh(c));else{if(!c.nodeType)return this;c=c.innerHTML}else r&&(c=function(b){if(b.outerHTML)return b.outerHTML;var m=document.createElement("div");return m.appendChild(b.cloneNode(!0)),m.innerHTML}(r));if(c){var f=vc(c,{outputSourceRange:!1,shouldDecodeNewlines:lh,shouldDecodeNewlinesForHref:ch,delimiters:o.delimiters,comments:o.comments},this),d=f.render,v=f.staticRenderFns;o.render=d,o.staticRenderFns=v}}return dh.call(this,r,a)},Ae.compile=vc,te(Ae,y9),Ae.effect=function(r,a){var o=new nr(Se,r,re,{sync:!0});a&&(o.update=function(){a(function(){return o.run()})})},Ae})})(Vu);var Fu=Vu.exports;const Oe=fh(Fu),ph=function(t,e,n){for(var i=0;i<t.length;i++)e.call(n,t[i])};function Uu(){return Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)}function mc(){return Uu()>=768}function zi(){return Uu()>=1200}function Ne(t,e,n,i,s,l,u,p){var h=typeof t=="function"?t.options:t;e&&(h.render=e,h.staticRenderFns=n,h._compiled=!0),i&&(h.functional=!0),l&&(h._scopeId="data-v-"+l);var y;if(u?(y=function(A){A=A||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!A&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(A=__VUE_SSR_CONTEXT__),s&&s.call(this,A),A&&A._registeredComponents&&A._registeredComponents.add(u)},h._ssrRegister=y):s&&(y=p?function(){s.call(this,(h.functional?this.parent:this).$root.$options.shadowRoot)}:s),y)if(h.functional){h._injectStyles=y;var g=h.render;h.render=function(w,O){return y.call(O),g(w,O)}}else{var S=h.beforeCreate;h.beforeCreate=S?[].concat(S,y):[y]}return{exports:t,options:h}}const hh={name:"AnimatedArrow",props:["mobileWidth","mobileHeight","desktopWidth","desktopHeight"],mounted:function(){let t=!1;const e=()=>{t=!t,t?(this.$refs.arrowDesktop.style.fill="#fff",this.$refs.arrowMobile.style.fill="#fff"):(this.$refs.arrowDesktop.style.fill="#fec900",this.$refs.arrowMobile.style.fill="#fec900")};window.setInterval(e,750)}};var vh=function(){var e=this,n=e._self._c;return n("div",[n("svg",{staticClass:"xl:hidden block",attrs:{width:e.mobileWidth,height:e.mobileHeight,viewBox:"0 0 10 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[n("g",{attrs:{id:"Icon / Placeholder"}},[n("path",{ref:"arrowMobile",staticClass:"arrow-icon",staticStyle:{transition:"fill 0.75s"},attrs:{d:"M0 16.5H4.40178L11 10.0002L4.40228 3.5H0L6.60069 10.0002L0 16.5Z",fill:"#FEC900"}})])]),n("svg",{staticClass:"xl:block hidden",attrs:{width:e.desktopWidth,height:e.desktopHeight,viewBox:"0 0 10 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[n("g",{attrs:{id:"Icon / Placeholder"}},[n("path",{ref:"arrowDesktop",staticClass:"arrow-icon",staticStyle:{transition:"fill 0.75s"},attrs:{d:"M0 16.5H4.40178L11 10.0002L4.40228 3.5H0L6.60069 10.0002L0 16.5Z",fill:"#FEC900"}})])])])},gh=[],mh=Ne(hh,vh,gh,!1,null,null,null,null);const yh=mh.exports,bh={props:{name:{type:String,default:"Kalendář"},events:{type:Array,required:!0},onShowMore:{type:Function,required:!1},hasMore:{type:Boolean,default:!0},showBanner:{type:Boolean,default:!0}},filters:{dateDay:t=>`${new Date(t).getDate()}.`}};var _h=function(){var e=this,n=e._self._c;return n("div",{staticClass:"calendar grid grid-cols-4"},[e.showBanner?n("div",{staticClass:"col-span-4 xl:col-span-1"},[n("aside",{staticClass:"banner bg-orange-300 text-white h-full"},[n("i",{staticClass:"ico--calendar banner__icon"}),n("div",{staticClass:"banner__body"},[n("h1",{staticClass:"head-alt-md banner__cta"},[e._v(e._s(e.name))]),e.onShowMore&&e.hasMore?n("button",{staticClass:"btn btn--white btn--fullwidth sm:btn--autowidth mt-8",on:{click:function(i){return e.onShowMore()}}},[n("div",{staticClass:"btn__body"},[e._v("Zobrazit další")])]):e._e()])])]):e._e(),n("div",{class:{"col-span-4 xl:col-span-3":e.showBanner,"col-span-4":!e.showBanner}},e._l(e.events,function(i){return n("div",{key:i.id,staticClass:"grid grid-cols-12 items-center calendar-table-row",class:{"calendar-table-row--standalone":!e.showBanner}},[n("div",{staticClass:"col-span-2 text-orange-300 head-alt-md calendar-table-row__col"},[n("span",[e._v(e._s(e._f("dateDay")(i.startTimestamp)))])]),n("div",{staticClass:"col-span-8 grid grid-cols-3 col-gap-4 calendar-table-row__col",class:{"calendar-table-row__col--norborder":!i.mapLink}},[n("div",{staticClass:"col-span-3 md:col-span-1"},[n("strong",{staticClass:"block"},[e._v(e._s(i.startDateVerbose))]),n("p",{staticClass:"font-light text-sm mt-1"},[e._v(e._s(i.allDay?"Celý den":i.startTimeVerbose))])]),n("div",{staticClass:"col-span-3 md:col-span-2 mt-4 md:mt-0"},[i.link?n("a",{staticClass:"font-bold block",attrs:{href:i.link,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(i.title))]):e._e(),i.link?e._e():n("strong",{staticClass:"block"},[e._v(e._s(i.title))]),i.description?n("p",{staticClass:"font-light text-sm mt-1"},[e._v(e._s(i.description))]):e._e()])]),n("div",{staticClass:"col-span-2 text-center font-light calendar-table-row__col"},[i.mapLink?n("a",{staticClass:"icon-link",attrs:{href:i.mapLink}},[n("i",{staticClass:"ico--location text-violet-300 mr-1",attrs:{"aria-hidden":"true"}}),n("span",[e._v("Mapa")])]):e._e()])])}),0)])},wh=[],Lh=Ne(bh,_h,wh,!1,null,null,null,null);const Ah=Lh.exports,yc=[{id:2,start:"2020-07-08T10:00:00.000Z",startTimestamp:new Date("2020-07-08T10:00:00.000Z").getTime(),startDateVerbose:"středa 8. července 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-07-08T11:00:00.000Z",title:"Pirátský oběd - Chrudim",description:"Pravidelné setkání pirátů při středečním obědě. Nejen o politice a s chutí.",link:"https://www.google.com/calendar/event?eid=Mmw1Y2RwMTByYm80Y204cWxsaW1maWJmcTJfMjAyMDA3MDhUMTAwMDAwWiA3cjY3M3JsaDI1NW9mb3JodjNvZWIybDBnMEBn"},{id:15,start:"2020-07-13T19:00:00.000Z",startTimestamp:new Date("2020-07-13T19:00:00.000Z").getTime(),startDateVerbose:"pondělí 13. července 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-07-13T19:30:00.000Z",title:"Mumble - předsednictvo",link:"https://www.google.com/calendar/event?eid=YzVpM2FvaGc2MHAzY2I5aGM1aW1jYjlrNjBvbThiYjE2dGk2NGI5ajY4cjY0ZGhrNzVnamdjOWdjb18yMDIwMDcxM1QxOTAwMDBaIDdyNjczcmxoMjU1b2Zvcmh2M29lYjJsMGcwQGc"},{id:3,start:"2020-07-15T10:00:00.000Z",startTimestamp:new Date("2020-07-15T10:00:00.000Z").getTime(),startDateVerbose:"středa 15. července 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-07-15T11:00:00.000Z",title:"Pirátský oběd - Chrudim",description:"Pravidelné setkání pirátů při středečním obědě. Nejen o politice a s chutí.",link:"https://www.google.com/calendar/event?eid=Mmw1Y2RwMTByYm80Y204cWxsaW1maWJmcTJfMjAyMDA3MTVUMTAwMDAwWiA3cjY3M3JsaDI1NW9mb3JodjNvZWIybDBnMEBn",mapLink:"https://maps.google.com"},{id:16,start:"2020-07-20T19:00:00.000Z",startTimestamp:new Date("2020-07-20T19:00:00.000Z").getTime(),startDateVerbose:"pondělí 20. července 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-07-20T19:30:00.000Z",title:"Mumble - předsednictvo",link:"https://www.google.com/calendar/event?eid=YzVpM2FvaGc2MHAzY2I5aGM1aW1jYjlrNjBvbThiYjE2dGk2NGI5ajY4cjY0ZGhrNzVnamdjOWdjb18yMDIwMDcyMFQxOTAwMDBaIDdyNjczcmxoMjU1b2Zvcmh2M29lYjJsMGcwQGc"},{id:4,start:"2020-07-22T10:00:00.000Z",startTimestamp:new Date("2020-07-22T10:00:00.000Z").getTime(),startDateVerbose:"středa 22. července 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-07-22T11:00:00.000Z",title:"Pirátský oběd - Chrudim",description:"Pravidelné setkání pirátů při středečním obědě. Nejen o politice a s chutí.",link:"https://www.google.com/calendar/event?eid=Mmw1Y2RwMTByYm80Y204cWxsaW1maWJmcTJfMjAyMDA3MjJUMTAwMDAwWiA3cjY3M3JsaDI1NW9mb3JodjNvZWIybDBnMEBn"},{id:17,start:"2020-07-27T19:00:00.000Z",startTimestamp:new Date("2020-07-27T19:00:00.000Z").getTime(),startDateVerbose:"pondělí 27. července 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-07-27T19:30:00.000Z",title:"Mumble - předsednictvo",link:"https://www.google.com/calendar/event?eid=YzVpM2FvaGc2MHAzY2I5aGM1aW1jYjlrNjBvbThiYjE2dGk2NGI5ajY4cjY0ZGhrNzVnamdjOWdjb18yMDIwMDcyN1QxOTAwMDBaIDdyNjczcmxoMjU1b2Zvcmh2M29lYjJsMGcwQGc"},{id:5,start:"2020-07-29T10:00:00.000Z",startTimestamp:new Date("2020-07-29T10:00:00.000Z").getTime(),startDateVerbose:"středa 29. července 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-07-29T11:00:00.000Z",title:"Pirátský oběd - Chrudim",description:"Pravidelné setkání pirátů při středečním obědě. Nejen o politice a s chutí.",link:"https://www.google.com/calendar/event?eid=Mmw1Y2RwMTByYm80Y204cWxsaW1maWJmcTJfMjAyMDA3MjlUMTAwMDAwWiA3cjY3M3JsaDI1NW9mb3JodjNvZWIybDBnMEBn"},{id:18,start:"2020-08-03T19:00:00.000Z",startTimestamp:new Date("2020-08-03T19:00:00.000Z").getTime(),startDateVerbose:"pondělí 3. srpna 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-08-03T19:30:00.000Z",title:"Mumble - předsednictvo",link:"https://www.google.com/calendar/event?eid=YzVpM2FvaGc2MHAzY2I5aGM1aW1jYjlrNjBvbThiYjE2dGk2NGI5ajY4cjY0ZGhrNzVnamdjOWdjb18yMDIwMDgwM1QxOTAwMDBaIDdyNjczcmxoMjU1b2Zvcmh2M29lYjJsMGcwQGc"},{id:6,start:"2020-08-05T10:00:00.000Z",startTimestamp:new Date("2020-08-05T10:00:00.000Z").getTime(),startDateVerbose:"středa 5. srpna 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-08-05T11:00:00.000Z",title:"Pirátský oběd - Chrudim",description:"Pravidelné setkání pirátů při středečním obědě. Nejen o politice a s chutí.",link:"https://www.google.com/calendar/event?eid=Mmw1Y2RwMTByYm80Y204cWxsaW1maWJmcTJfMjAyMDA4MDVUMTAwMDAwWiA3cjY3M3JsaDI1NW9mb3JodjNvZWIybDBnMEBn"}],Ch=[{id:19,start:"2020-08-10T19:00:00.000Z",startTimestamp:new Date("2020-08-10T19:00:00.000Z").getTime(),startDateVerbose:"pondělí 10. srpna 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-08-10T19:30:00.000Z",title:"Mumble - předsednictvo",link:"https://www.google.com/calendar/event?eid=YzVpM2FvaGc2MHAzY2I5aGM1aW1jYjlrNjBvbThiYjE2dGk2NGI5ajY4cjY0ZGhrNzVnamdjOWdjb18yMDIwMDgxMFQxOTAwMDBaIDdyNjczcmxoMjU1b2Zvcmh2M29lYjJsMGcwQGc"},{id:7,start:"2020-08-12T10:00:00.000Z",startTimestamp:new Date("2020-08-12T10:00:00.000Z").getTime(),startDateVerbose:"středa 12. srpna 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-08-12T11:00:00.000Z",title:"Pirátský oběd - Chrudim",description:"Pravidelné setkání pirátů při středečním obědě. Nejen o politice a s chutí.",link:"https://www.google.com/calendar/event?eid=Mmw1Y2RwMTByYm80Y204cWxsaW1maWJmcTJfMjAyMDA4MTJUMTAwMDAwWiA3cjY3M3JsaDI1NW9mb3JodjNvZWIybDBnMEBn"}],Eh={data:()=>({events:yc,hasMore:!0}),methods:{onShowMore(){this.$data.events=[...yc,...Ch],this.$data.hasMore=!1}},render(){return this.$scopedSlots.default({events:this.events,hasMore:this.hasMore,onShowMore:this.onShowMore})}},Sh=null,xh=null;var Dh=Ne(Eh,Sh,xh,!1,null,null,null,null);const Th=Dh.exports,kh=10,Rh={props:{calendarId:{type:String,required:!0},apiKey:{type:String,required:!0}},data(){return{events:[],toShow:7}},computed:{displayedEvents(){return this.events.slice(0,this.toShow)},hasMore(){return this.toShow<this.events.length}},methods:{onShowMore(){this.toShow+=kh},loadEventsFromStorage(){if(window.sessionStorage&&window.sessionStorage["__pircal_"+this.calendarId])return JSON.parse(window.sessionStorage["__pircal_"+this.calendarId])},storeEventsToStorage(){window.sessionStorage&&(window.sessionStorage["__pircal_"+this.calendarId]=JSON.stringify(this.events))}},mounted(){const t=this.loadEventsFromStorage();if(t)this.events=t;else{const e=new Date,n=e.toISOString(),i=new Date(+e+1e3*60*60*24*90).toISOString(),s=`https://www.googleapis.com/calendar/v3/calendars/${this.calendarId}/events?key=${encodeURIComponent(this.apiKey)}&maxResults=150&timeMin=${encodeURIComponent(n)}&timeMax=${encodeURIComponent(i)}&sanitizeHtml=true&singleEvents=true&maxAtendees=1`;let l=0;fetch(s).then(u=>{if(!u.ok)throw new Error("Problem loading events from google");return u.json()}).then(u=>{this.events=u.items.map(p=>{const h=new Date(p.start.dateTime||p.start.date),y=new Date(p.end.dateTime||p.end.date),g=h.toLocaleDateString("cs-CZ",{weekday:"long",year:"numeric",month:"long",day:"numeric"}),S=h.getHours()+":"+h.getMinutes().toString().padStart(2,"0"),A=!p.start.dateTime;return{id:l++,start:h,startTimestamp:h.getTime(),startDateVerbose:g,startTimeVerbose:S,allDay:A,end:y,title:p.summary,description:p.description,link:p.htmlLink}}).sort((p,h)=>p.start<h.start?-1:1),this.storeEventsToStorage()})}},render(){return this.$scopedSlots.default({events:this.displayedEvents,hasMore:this.hasMore,onShowMore:this.onShowMore})}},Oh=null,Mh=null;var Ih=Ne(Rh,Oh,Mh,!1,null,null,null,null);const Nh=Ih.exports;var fa,K,zu,Wu,pr,jn,bc,Gu,Zu,qi={},Yu=[],$h=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function vn(t,e){for(var n in e)t[n]=e[n];return t}function Qu(t){var e=t.parentNode;e&&e.removeChild(t)}function M(t,e,n){var i,s,l,u={};for(l in e)l=="key"?i=e[l]:l=="ref"?s=e[l]:u[l]=e[l];if(arguments.length>2&&(u.children=arguments.length>3?fa.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(l in t.defaultProps)u[l]===void 0&&(u[l]=t.defaultProps[l]);return Wi(t,u,i,s,null)}function Wi(t,e,n,i,s){var l={type:t,props:e,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:s==null?++zu:s};return s==null&&K.vnode!=null&&K.vnode(l),l}function nn(){return{current:null}}function Ie(t){return t.children}function Ph(t,e,n,i,s){var l;for(l in n)l==="children"||l==="key"||l in e||Ji(t,l,null,n[l],i);for(l in e)s&&typeof e[l]!="function"||l==="children"||l==="key"||l==="value"||l==="checked"||n[l]===e[l]||Ji(t,l,e[l],n[l],i)}function _c(t,e,n){e[0]==="-"?t.setProperty(e,n==null?"":n):t[e]=n==null?"":typeof n!="number"||$h.test(e)?n:n+"px"}function Ji(t,e,n,i,s){var l;e:if(e==="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof i=="string"&&(t.style.cssText=i=""),i)for(e in i)n&&e in n||_c(t.style,e,"");if(n)for(e in n)i&&n[e]===i[e]||_c(t.style,e,n[e])}else if(e[0]==="o"&&e[1]==="n")l=e!==(e=e.replace(/Capture$/,"")),e=e.toLowerCase()in t?e.toLowerCase().slice(2):e.slice(2),t.l||(t.l={}),t.l[e+l]=n,n?i||t.addEventListener(e,l?Lc:wc,l):t.removeEventListener(e,l?Lc:wc,l);else if(e!=="dangerouslySetInnerHTML"){if(s)e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!=="width"&&e!=="height"&&e!=="href"&&e!=="list"&&e!=="form"&&e!=="tabIndex"&&e!=="download"&&e in t)try{t[e]=n==null?"":n;break e}catch(u){}typeof n=="function"||(n==null||n===!1&&e.indexOf("-")==-1?t.removeAttribute(e):t.setAttribute(e,n))}}function wc(t){pr=!0;try{return this.l[t.type+!1](K.event?K.event(t):t)}finally{pr=!1}}function Lc(t){pr=!0;try{return this.l[t.type+!0](K.event?K.event(t):t)}finally{pr=!1}}function ft(t,e){this.props=t,this.context=e}function zr(t,e){if(e==null)return t.__?zr(t.__,t.__.__k.indexOf(t)+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?zr(t):null}function qu(t){var e,n;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null){t.__e=t.__c.base=n.__e;break}return qu(t)}}function Hh(t){pr?setTimeout(t):Gu(t)}function Ks(t){(!t.__d&&(t.__d=!0)&&jn.push(t)&&!Ki.__r++||bc!==K.debounceRendering)&&((bc=K.debounceRendering)||Hh)(Ki)}function Ki(){var t,e,n,i,s,l,u,p;for(jn.sort(function(h,y){return h.__v.__b-y.__v.__b});t=jn.shift();)t.__d&&(e=jn.length,i=void 0,s=void 0,u=(l=(n=t).__v).__e,(p=n.__P)&&(i=[],(s=vn({},l)).__v=l.__v+1,ho(p,l,s,n.__n,p.ownerSVGElement!==void 0,l.__h!=null?[u]:null,i,u==null?zr(l):u,l.__h),td(i,l),l.__e!=u&&qu(l)),jn.length>e&&jn.sort(function(h,y){return h.__v.__b-y.__v.__b}));Ki.__r=0}function Ju(t,e,n,i,s,l,u,p,h,y){var g,S,A,w,O,B,$,H=i&&i.__k||Yu,V=H.length;for(n.__k=[],g=0;g<e.length;g++)if((w=n.__k[g]=(w=e[g])==null||typeof w=="boolean"?null:typeof w=="string"||typeof w=="number"||typeof w=="bigint"?Wi(null,w,null,null,w):Array.isArray(w)?Wi(Ie,{children:w},null,null,null):w.__b>0?Wi(w.type,w.props,w.key,w.ref?w.ref:null,w.__v):w)!=null){if(w.__=n,w.__b=n.__b+1,(A=H[g])===null||A&&w.key==A.key&&w.type===A.type)H[g]=void 0;else for(S=0;S<V;S++){if((A=H[S])&&w.key==A.key&&w.type===A.type){H[S]=void 0;break}A=null}ho(t,w,A=A||qi,s,l,u,p,h,y),O=w.__e,(S=w.ref)&&A.ref!=S&&($||($=[]),A.ref&&$.push(A.ref,null,w),$.push(S,w.__c||O,w)),O!=null?(B==null&&(B=O),typeof w.type=="function"&&w.__k===A.__k?w.__d=h=Ku(w,h,t):h=Xu(t,w,A,H,O,h),typeof n.type=="function"&&(n.__d=h)):h&&A.__e==h&&h.parentNode!=t&&(h=zr(A))}for(n.__e=B,g=V;g--;)H[g]!=null&&(typeof n.type=="function"&&H[g].__e!=null&&H[g].__e==n.__d&&(n.__d=ed(i).nextSibling),rd(H[g],H[g]));if($)for(g=0;g<$.length;g++)nd($[g],$[++g],$[++g])}function Ku(t,e,n){for(var i,s=t.__k,l=0;s&&l<s.length;l++)(i=s[l])&&(i.__=t,e=typeof i.type=="function"?Ku(i,e,n):Xu(n,i,i,s,i.__e,e));return e}function Xi(t,e){return e=e||[],t==null||typeof t=="boolean"||(Array.isArray(t)?t.some(function(n){Xi(n,e)}):e.push(t)),e}function Xu(t,e,n,i,s,l){var u,p,h;if(e.__d!==void 0)u=e.__d,e.__d=void 0;else if(n==null||s!=l||s.parentNode==null)e:if(l==null||l.parentNode!==t)t.appendChild(s),u=null;else{for(p=l,h=0;(p=p.nextSibling)&&h<i.length;h+=1)if(p==s)break e;t.insertBefore(s,l),u=l}return u!==void 0?u:s.nextSibling}function ed(t){var e,n,i;if(t.type==null||typeof t.type=="string")return t.__e;if(t.__k){for(e=t.__k.length-1;e>=0;e--)if((n=t.__k[e])&&(i=ed(n)))return i}return null}function ho(t,e,n,i,s,l,u,p,h){var y,g,S,A,w,O,B,$,H,V,Q,E,X,z,q,Y=e.type;if(e.constructor!==void 0)return null;n.__h!=null&&(h=n.__h,p=e.__e=n.__e,e.__h=null,l=[p]),(y=K.__b)&&y(e);try{e:if(typeof Y=="function"){if($=e.props,H=(y=Y.contextType)&&i[y.__c],V=y?H?H.props.value:y.__:i,n.__c?B=(g=e.__c=n.__c).__=g.__E:("prototype"in Y&&Y.prototype.render?e.__c=g=new Y($,V):(e.__c=g=new ft($,V),g.constructor=Y,g.render=Bh),H&&H.sub(g),g.props=$,g.state||(g.state={}),g.context=V,g.__n=i,S=g.__d=!0,g.__h=[],g._sb=[]),g.__s==null&&(g.__s=g.state),Y.getDerivedStateFromProps!=null&&(g.__s==g.state&&(g.__s=vn({},g.__s)),vn(g.__s,Y.getDerivedStateFromProps($,g.__s))),A=g.props,w=g.state,g.__v=e,S)Y.getDerivedStateFromProps==null&&g.componentWillMount!=null&&g.componentWillMount(),g.componentDidMount!=null&&g.__h.push(g.componentDidMount);else{if(Y.getDerivedStateFromProps==null&&$!==A&&g.componentWillReceiveProps!=null&&g.componentWillReceiveProps($,V),!g.__e&&g.shouldComponentUpdate!=null&&g.shouldComponentUpdate($,g.__s,V)===!1||e.__v===n.__v){for(e.__v!==n.__v&&(g.props=$,g.state=g.__s,g.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.forEach(function(_e){_e&&(_e.__=e)}),Q=0;Q<g._sb.length;Q++)g.__h.push(g._sb[Q]);g._sb=[],g.__h.length&&u.push(g);break e}g.componentWillUpdate!=null&&g.componentWillUpdate($,g.__s,V),g.componentDidUpdate!=null&&g.__h.push(function(){g.componentDidUpdate(A,w,O)})}if(g.context=V,g.props=$,g.__P=t,E=K.__r,X=0,"prototype"in Y&&Y.prototype.render){for(g.state=g.__s,g.__d=!1,E&&E(e),y=g.render(g.props,g.state,g.context),z=0;z<g._sb.length;z++)g.__h.push(g._sb[z]);g._sb=[]}else do g.__d=!1,E&&E(e),y=g.render(g.props,g.state,g.context),g.state=g.__s;while(g.__d&&++X<25);g.state=g.__s,g.getChildContext!=null&&(i=vn(vn({},i),g.getChildContext())),S||g.getSnapshotBeforeUpdate==null||(O=g.getSnapshotBeforeUpdate(A,w)),q=y!=null&&y.type===Ie&&y.key==null?y.props.children:y,Ju(t,Array.isArray(q)?q:[q],e,n,i,s,l,u,p,h),g.base=e.__e,e.__h=null,g.__h.length&&u.push(g),B&&(g.__E=g.__=null),g.__e=!1}else l==null&&e.__v===n.__v?(e.__k=n.__k,e.__e=n.__e):e.__e=jh(n.__e,e,n,i,s,l,u,h);(y=K.diffed)&&y(e)}catch(_e){e.__v=null,(h||l!=null)&&(e.__e=p,e.__h=!!h,l[l.indexOf(p)]=null),K.__e(_e,e,n)}}function td(t,e){K.__c&&K.__c(e,t),t.some(function(n){try{t=n.__h,n.__h=[],t.some(function(i){i.call(n)})}catch(i){K.__e(i,n.__v)}})}function jh(t,e,n,i,s,l,u,p){var h,y,g,S=n.props,A=e.props,w=e.type,O=0;if(w==="svg"&&(s=!0),l!=null){for(;O<l.length;O++)if((h=l[O])&&"setAttribute"in h==!!w&&(w?h.localName===w:h.nodeType===3)){t=h,l[O]=null;break}}if(t==null){if(w===null)return document.createTextNode(A);t=s?document.createElementNS("http://www.w3.org/2000/svg",w):document.createElement(w,A.is&&A),l=null,p=!1}if(w===null)S===A||p&&t.data===A||(t.data=A);else{if(l=l&&fa.call(t.childNodes),y=(S=n.props||qi).dangerouslySetInnerHTML,g=A.dangerouslySetInnerHTML,!p){if(l!=null)for(S={},O=0;O<t.attributes.length;O++)S[t.attributes[O].name]=t.attributes[O].value;(g||y)&&(g&&(y&&g.__html==y.__html||g.__html===t.innerHTML)||(t.innerHTML=g&&g.__html||""))}if(Ph(t,A,S,s,p),g)e.__k=[];else if(O=e.props.children,Ju(t,Array.isArray(O)?O:[O],e,n,i,s&&w!=="foreignObject",l,u,l?l[0]:n.__k&&zr(n,0),p),l!=null)for(O=l.length;O--;)l[O]!=null&&Qu(l[O]);p||("value"in A&&(O=A.value)!==void 0&&(O!==t.value||w==="progress"&&!O||w==="option"&&O!==S.value)&&Ji(t,"value",O,S.value,!1),"checked"in A&&(O=A.checked)!==void 0&&O!==t.checked&&Ji(t,"checked",O,S.checked,!1))}return t}function nd(t,e,n){try{typeof t=="function"?t(e):t.current=e}catch(i){K.__e(i,n)}}function rd(t,e,n){var i,s;if(K.unmount&&K.unmount(t),(i=t.ref)&&(i.current&&i.current!==t.__e||nd(i,null,e)),(i=t.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(l){K.__e(l,e)}i.base=i.__P=null,t.__c=void 0}if(i=t.__k)for(s=0;s<i.length;s++)i[s]&&rd(i[s],e,n||typeof t.type!="function");n||t.__e==null||Qu(t.__e),t.__=t.__e=t.__d=void 0}function Bh(t,e,n){return this.constructor(t,n)}function Wr(t,e,n){var i,s,l;K.__&&K.__(t,e),s=(i=typeof n=="function")?null:n&&n.__k||e.__k,l=[],ho(e,t=(!i&&n||e).__k=M(Ie,null,[t]),s||qi,qi,e.ownerSVGElement!==void 0,!i&&n?[n]:s?null:e.firstChild?fa.call(e.childNodes):null,l,!i&&n?n:s?s.__e:e.firstChild,i),td(l,t)}function Vh(t,e){var n={__c:e="__cC"+Zu++,__:t,Consumer:function(i,s){return i.children(s)},Provider:function(i){var s,l;return this.getChildContext||(s=[],(l={})[e]=this,this.getChildContext=function(){return l},this.shouldComponentUpdate=function(u){this.props.value!==u.value&&s.some(function(p){p.__e=!0,Ks(p)})},this.sub=function(u){s.push(u);var p=u.componentWillUnmount;u.componentWillUnmount=function(){s.splice(s.indexOf(u),1),p&&p.call(u)}}),i.children}};return n.Provider.__=n.Consumer.contextType=n}fa=Yu.slice,K={__e:function(t,e,n,i){for(var s,l,u;e=e.__;)if((s=e.__c)&&!s.__)try{if((l=s.constructor)&&l.getDerivedStateFromError!=null&&(s.setState(l.getDerivedStateFromError(t)),u=s.__d),s.componentDidCatch!=null&&(s.componentDidCatch(t,i||{}),u=s.__d),u)return s.__E=s}catch(p){t=p}throw t}},zu=0,Wu=function(t){return t!=null&&t.constructor===void 0},pr=!1,ft.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=vn({},this.state),typeof t=="function"&&(t=t(vn({},n),this.props)),t&&vn(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),Ks(this))},ft.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Ks(this))},ft.prototype.render=Ie,jn=[],Gu=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ki.__r=0,Zu=0;var $t,Is,Ac,id=[],Ns=[],Cc=K.__b,Ec=K.__r,Sc=K.diffed,xc=K.__c,Dc=K.unmount;function Fh(){for(var t;t=id.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(Gi),t.__H.__h.forEach(Xs),t.__H.__h=[]}catch(e){t.__H.__h=[],K.__e(e,t.__v)}}K.__b=function(t){$t=null,Cc&&Cc(t)},K.__r=function(t){Ec&&Ec(t);var e=($t=t.__c).__H;e&&(Is===$t?(e.__h=[],$t.__h=[],e.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=Ns,n.__N=n.i=void 0})):(e.__h.forEach(Gi),e.__h.forEach(Xs),e.__h=[])),Is=$t},K.diffed=function(t){Sc&&Sc(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(id.push(e)!==1&&Ac===K.requestAnimationFrame||((Ac=K.requestAnimationFrame)||Uh)(Fh)),e.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==Ns&&(n.__=n.__V),n.i=void 0,n.__V=Ns})),Is=$t=null},K.__c=function(t,e){e.some(function(n){try{n.__h.forEach(Gi),n.__h=n.__h.filter(function(i){return!i.__||Xs(i)})}catch(i){e.some(function(s){s.__h&&(s.__h=[])}),e=[],K.__e(i,n.__v)}}),xc&&xc(t,e)},K.unmount=function(t){Dc&&Dc(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.forEach(function(i){try{Gi(i)}catch(s){e=s}}),n.__H=void 0,e&&K.__e(e,n.__v))};var Tc=typeof requestAnimationFrame=="function";function Uh(t){var e,n=function(){clearTimeout(i),Tc&&cancelAnimationFrame(e),setTimeout(t)},i=setTimeout(n,100);Tc&&(e=requestAnimationFrame(n))}function Gi(t){var e=$t,n=t.__c;typeof n=="function"&&(t.__c=void 0,n()),$t=e}function Xs(t){var e=$t;t.__c=t.__(),$t=e}function zh(t,e){for(var n in e)t[n]=e[n];return t}function kc(t,e){for(var n in t)if(n!=="__source"&&!(n in e))return!0;for(var i in e)if(i!=="__source"&&t[i]!==e[i])return!0;return!1}function Rc(t){this.props=t}(Rc.prototype=new ft).isPureReactComponent=!0,Rc.prototype.shouldComponentUpdate=function(t,e){return kc(this.props,t)||kc(this.state,e)};var Oc=K.__b;K.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),Oc&&Oc(t)};var Wh=K.__e;K.__e=function(t,e,n,i){if(t.then){for(var s,l=e;l=l.__;)if((s=l.__c)&&s.__c)return e.__e==null&&(e.__e=n.__e,e.__k=n.__k),s.__c(t,e)}Wh(t,e,n,i)};var Mc=K.unmount;function ad(t,e,n){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(i){typeof i.__c=="function"&&i.__c()}),t.__c.__H=null),(t=zh({},t)).__c!=null&&(t.__c.__P===n&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(i){return ad(i,e,n)})),t}function sd(t,e,n){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(i){return sd(i,e,n)}),t.__c&&t.__c.__P===e&&(t.__e&&n.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=n)),t}function $s(){this.__u=0,this.t=null,this.__b=null}function od(t){var e=t.__.__c;return e&&e.__a&&e.__a(t)}function Oi(){this.u=null,this.o=null}K.unmount=function(t){var e=t.__c;e&&e.__R&&e.__R(),e&&t.__h===!0&&(t.type=null),Mc&&Mc(t)},($s.prototype=new ft).__c=function(t,e){var n=e.__c,i=this;i.t==null&&(i.t=[]),i.t.push(n);var s=od(i.__v),l=!1,u=function(){l||(l=!0,n.__R=null,s?s(p):p())};n.__R=u;var p=function(){if(!--i.__u){if(i.state.__a){var y=i.state.__a;i.__v.__k[0]=sd(y,y.__c.__P,y.__c.__O)}var g;for(i.setState({__a:i.__b=null});g=i.t.pop();)g.forceUpdate()}},h=e.__h===!0;i.__u++||h||i.setState({__a:i.__b=i.__v.__k[0]}),t.then(u,u)},$s.prototype.componentWillUnmount=function(){this.t=[]},$s.prototype.render=function(t,e){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),i=this.__v.__k[0].__c;this.__v.__k[0]=ad(this.__b,n,i.__O=i.__P)}this.__b=null}var s=e.__a&&M(Ie,null,t.fallback);return s&&(s.__h=null),[M(Ie,null,e.__a?null:t.children),s]};var Ic=function(t,e,n){if(++n[1]===n[0]&&t.o.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.o.size))for(n=t.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;t.u=n=n[2]}};function Gh(t){return this.getChildContext=function(){return t.context},t.children}function Zh(t){var e=this,n=t.i;e.componentWillUnmount=function(){Wr(null,e.l),e.l=null,e.i=null},e.i&&e.i!==n&&e.componentWillUnmount(),t.__v?(e.l||(e.i=n,e.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(i){this.childNodes.push(i),e.i.appendChild(i)},insertBefore:function(i,s){this.childNodes.push(i),e.i.appendChild(i)},removeChild:function(i){this.childNodes.splice(this.childNodes.indexOf(i)>>>1,1),e.i.removeChild(i)}}),Wr(M(Gh,{context:e.context},t.__v),e.l)):e.l&&e.componentWillUnmount()}function Yh(t,e){var n=M(Zh,{__v:t,i:e});return n.containerInfo=e,n}(Oi.prototype=new ft).__a=function(t){var e=this,n=od(e.__v),i=e.o.get(t);return i[0]++,function(s){var l=function(){e.props.revealOrder?(i.push(s),Ic(e,t,i)):s()};n?n(l):l()}},Oi.prototype.render=function(t){this.u=null,this.o=new Map;var e=Xi(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var n=e.length;n--;)this.o.set(e[n],this.u=[1,0,this.u]);return t.children},Oi.prototype.componentDidUpdate=Oi.prototype.componentDidMount=function(){var t=this;this.o.forEach(function(e,n){Ic(t,n,e)})};var Qh=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,qh=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Jh=typeof document!="undefined",Kh=function(t){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(t)};ft.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(ft.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var Nc=K.event;function Xh(){}function ev(){return this.cancelBubble}function tv(){return this.defaultPrevented}K.event=function(t){return Nc&&(t=Nc(t)),t.persist=Xh,t.isPropagationStopped=ev,t.isDefaultPrevented=tv,t.nativeEvent=t};var $c={configurable:!0,get:function(){return this.class}},Pc=K.vnode;K.vnode=function(t){var e=t.type,n=t.props,i=n;if(typeof e=="string"){var s=e.indexOf("-")===-1;for(var l in i={},n){var u=n[l];Jh&&l==="children"&&e==="noscript"||l==="value"&&"defaultValue"in n&&u==null||(l==="defaultValue"&&"value"in n&&n.value==null?l="value":l==="download"&&u===!0?u="":/ondoubleclick/i.test(l)?l="ondblclick":/^onchange(textarea|input)/i.test(l+e)&&!Kh(n.type)?l="oninput":/^onfocus$/i.test(l)?l="onfocusin":/^onblur$/i.test(l)?l="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(l)?l=l.toLowerCase():s&&qh.test(l)?l=l.replace(/[A-Z0-9]/g,"-$&").toLowerCase():u===null&&(u=void 0),/^oninput$/i.test(l)&&(l=l.toLowerCase(),i[l]&&(l="oninputCapture")),i[l]=u)}e=="select"&&i.multiple&&Array.isArray(i.value)&&(i.value=Xi(n.children).forEach(function(p){p.props.selected=i.value.indexOf(p.props.value)!=-1})),e=="select"&&i.defaultValue!=null&&(i.value=Xi(n.children).forEach(function(p){p.props.selected=i.multiple?i.defaultValue.indexOf(p.props.value)!=-1:i.defaultValue==p.props.value})),t.props=i,n.class!=n.className&&($c.enumerable="className"in n,n.className!=null&&(i.class=n.className),Object.defineProperty(i,"className",$c))}t.$$typeof=Qh,Pc&&Pc(t)};var Hc=K.__r;K.__r=function(t){Hc&&Hc(t),t.__c};const ld=[],eo=new Map;function cd(t){ld.push(t),eo.forEach(e=>{dd(e,t)})}function nv(t){t.isConnected&&t.getRootNode&&ud(t.getRootNode())}function ud(t){let e=eo.get(t);if(!e||!e.isConnected){if(e=t.querySelector("style[data-fullcalendar]"),!e){e=document.createElement("style"),e.setAttribute("data-fullcalendar","");const n=iv();n&&(e.nonce=n);const i=t===document?document.head:t,s=t===document?i.querySelector("script,link[rel=stylesheet],link[as=style],style"):i.firstChild;i.insertBefore(e,s)}eo.set(t,e),rv(e)}}function rv(t){for(const e of ld)dd(t,e)}function dd(t,e){const{sheet:n}=t,i=n.cssRules.length;e.split("}").forEach((s,l)=>{s=s.trim(),s&&n.insertRule(s+"}",i+l)})}let Ps;function iv(){return Ps===void 0&&(Ps=av()),Ps}function av(){const t=document.querySelector('meta[name="csp-nonce"]');if(t&&t.hasAttribute("content"))return t.getAttribute("content");const e=document.querySelector("script[nonce]");return e&&e.nonce||""}typeof document!="undefined"&&ud(document);var sv=':root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") format("truetype")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:"\\e900"}.fc-icon-chevron-right:before{content:"\\e901"}.fc-icon-chevrons-left:before{content:"\\e902"}.fc-icon-chevrons-right:before{content:"\\e903"}.fc-icon-minus-square:before{content:"\\e904"}.fc-icon-plus-square:before{content:"\\e905"}.fc-icon-x:before{content:"\\e906"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:"";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:"";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}';cd(sv);class vo{constructor(e){this.drainedOption=e,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}request(e){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),e==null?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),e))}pause(e=""){let{pauseDepths:n}=this;n[e]=(n[e]||0)+1,this.clearTimeout()}resume(e="",n){let{pauseDepths:i}=this;e in i&&(n?delete i[e]:(i[e]-=1,i[e]<=0&&delete i[e]),this.tryDrain())}isPaused(){return Object.keys(this.pauseDepths).length}tryDrain(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}}clear(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)}drained(){this.drainedOption&&this.drainedOption()}}function ov(t){t.parentNode&&t.parentNode.removeChild(t)}function tn(t,e){if(t.closest)return t.closest(e);if(!document.documentElement.contains(t))return null;do{if(lv(t,e))return t;t=t.parentElement||t.parentNode}while(t!==null&&t.nodeType===1);return null}function lv(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector).call(t,e)}function cv(t,e){let n=t instanceof HTMLElement?[t]:t,i=[];for(let s=0;s<n.length;s+=1){let l=n[s].querySelectorAll(e);for(let u=0;u<l.length;u+=1)i.push(l[u])}return i}const uv=/(top|left|right|bottom|width|height)$/i;function dv(t,e){for(let n in e)fd(t,n,e[n])}function fd(t,e,n){n==null?t.style[e]="":typeof n=="number"&&uv.test(e)?t.style[e]=`${n}px`:t.style[e]=n}function fv(t){var e,n;return(n=(e=t.composedPath)===null||e===void 0?void 0:e.call(t)[0])!==null&&n!==void 0?n:t.target}let jc=0;function pa(){return jc+=1,"fc-dom-"+jc}function pv(t,e){return n=>{let i=tn(n.target,t);i&&e.call(i,n,i)}}function pd(t,e,n,i){let s=pv(n,i);return t.addEventListener(e,s),()=>{t.removeEventListener(e,s)}}function hv(t,e,n,i){let s;return pd(t,"mouseover",e,(l,u)=>{if(u!==s){s=u,n(l,u);let p=h=>{s=null,i(h,u),u.removeEventListener("mouseleave",p)};u.addEventListener("mouseleave",p)}})}function hd(t){return Object.assign({onClick:t},vd(t))}function vd(t){return{tabIndex:0,onKeyDown(e){(e.key==="Enter"||e.key===" ")&&(t(e),e.preventDefault())}}}let Bc=0;function Gn(){return Bc+=1,String(Bc)}function vv(t){let e=[],n=[],i,s;for(typeof t=="string"?n=t.split(/\s*,\s*/):typeof t=="function"?n=[t]:Array.isArray(t)&&(n=t),i=0;i<n.length;i+=1)s=n[i],typeof s=="string"?e.push(s.charAt(0)==="-"?{field:s.substring(1),order:-1}:{field:s,order:1}):typeof s=="function"&&e.push({func:s});return e}function gv(t,e,n){let i,s;for(i=0;i<n.length;i+=1)if(s=mv(t,e,n[i]),s)return s;return 0}function mv(t,e,n){return n.func?n.func(t,e):yv(t[n.field],e[n.field])*(n.order||1)}function yv(t,e){return!t&&!e?0:e==null?-1:t==null?1:typeof t=="string"||typeof e=="string"?String(t).localeCompare(String(e)):t-e}function Hs(t,e){let n=String(t);return"000".substr(0,e-n.length)+n}function Pr(t,e,n){return typeof t=="function"?t(...e):typeof t=="string"?e.reduce((i,s,l)=>i.replace("$"+l,s||""),t):n}function js(t){return t%1===0}function bv(t){let e=t.querySelector(".fc-scrollgrid-shrink-frame"),n=t.querySelector(".fc-scrollgrid-shrink-cushion");if(!e)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!n)throw new Error("needs fc-scrollgrid-shrink-cushion className");return t.getBoundingClientRect().width-e.getBoundingClientRect().width+n.getBoundingClientRect().width}const _v=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function ye(t,e){return typeof t=="string"?wv(t):typeof t=="object"&&t?Vc(t):typeof t=="number"?Vc({[e||"milliseconds"]:t}):null}function wv(t){let e=_v.exec(t);if(e){let n=e[1]?-1:1;return{years:0,months:0,days:n*(e[2]?parseInt(e[2],10):0),milliseconds:n*((e[3]?parseInt(e[3],10):0)*60*60*1e3+(e[4]?parseInt(e[4],10):0)*60*1e3+(e[5]?parseInt(e[5],10):0)*1e3+(e[6]?parseInt(e[6],10):0))}}return null}function Vc(t){let e={years:t.years||t.year||0,months:t.months||t.month||0,days:t.days||t.day||0,milliseconds:(t.hours||t.hour||0)*60*60*1e3+(t.minutes||t.minute||0)*60*1e3+(t.seconds||t.second||0)*1e3+(t.milliseconds||t.millisecond||t.ms||0)},n=t.weeks||t.week;return n&&(e.days+=n*7,e.specifiedWeeks=!0),e}function Lv(t,e){return t.years===e.years&&t.months===e.months&&t.days===e.days&&t.milliseconds===e.milliseconds}function Av(t,e){return{years:t.years-e.years,months:t.months-e.months,days:t.days-e.days,milliseconds:t.milliseconds-e.milliseconds}}function Cv(t){return dr(t)/365}function Ev(t){return dr(t)/30}function dr(t){return Gr(t)/864e5}function Gr(t){return t.years*(365*864e5)+t.months*(30*864e5)+t.days*864e5+t.milliseconds}function to(t){let e=t.milliseconds;if(e){if(e%1e3!==0)return{unit:"millisecond",value:e};if(e%(1e3*60)!==0)return{unit:"second",value:e/1e3};if(e%(1e3*60*60)!==0)return{unit:"minute",value:e/(1e3*60)};if(e)return{unit:"hour",value:e/(1e3*60*60)}}return t.days?t.specifiedWeeks&&t.days%7===0?{unit:"week",value:t.days/7}:{unit:"day",value:t.days}:t.months?{unit:"month",value:t.months}:t.years?{unit:"year",value:t.years}:{unit:"millisecond",value:0}}function bn(t,e,n){if(t===e)return!0;let i=t.length,s;if(i!==e.length)return!1;for(s=0;s<i;s+=1)if(!(n?n(t[s],e[s]):t[s]===e[s]))return!1;return!0}const Sv=["sun","mon","tue","wed","thu","fri","sat"];function Fc(t,e){let n=gn(t);return n[2]+=e*7,rt(n)}function Ye(t,e){let n=gn(t);return n[2]+=e,rt(n)}function _n(t,e){let n=gn(t);return n[6]+=e,rt(n)}function xv(t,e){return _r(t,e)/7}function _r(t,e){return(e.valueOf()-t.valueOf())/(1e3*60*60*24)}function Dv(t,e){return(e.valueOf()-t.valueOf())/(1e3*60*60)}function Tv(t,e){return(e.valueOf()-t.valueOf())/(1e3*60)}function kv(t,e){return(e.valueOf()-t.valueOf())/1e3}function Rv(t,e){let n=De(t),i=De(e);return{years:0,months:0,days:Math.round(_r(n,i)),milliseconds:e.valueOf()-i.valueOf()-(t.valueOf()-n.valueOf())}}function Ov(t,e){let n=ea(t,e);return n!==null&&n%7===0?n/7:null}function ea(t,e){return mn(t)===mn(e)?Math.round(_r(t,e)):null}function De(t){return rt([t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()])}function Mv(t){return rt([t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours()])}function Iv(t){return rt([t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes()])}function Nv(t){return rt([t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds()])}function $v(t,e,n){let i=t.getUTCFullYear(),s=Bs(t,i,e,n);if(s<1)return Bs(t,i-1,e,n);let l=Bs(t,i+1,e,n);return l>=1?Math.min(s,l):s}function Bs(t,e,n,i){let s=rt([e,0,1+Pv(e,n,i)]),l=De(t),u=Math.round(_r(s,l));return Math.floor(u/7)+1}function Pv(t,e,n){let i=7+e-n;return-((7+rt([t,0,i]).getUTCDay()-e)%7)+i-1}function Uc(t){return[t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()]}function zc(t){return new Date(t[0],t[1]||0,t[2]==null?1:t[2],t[3]||0,t[4]||0,t[5]||0)}function gn(t){return[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds()]}function rt(t){return t.length===1&&(t=t.concat([0])),new Date(Date.UTC(...t))}function gd(t){return!isNaN(t.valueOf())}function mn(t){return t.getUTCHours()*1e3*60*60+t.getUTCMinutes()*1e3*60+t.getUTCSeconds()*1e3+t.getUTCMilliseconds()}function Hv(t,e,n=!1){let i=t.toISOString();return i=i.replace(".000",""),n&&(i=i.replace("T00:00:00Z","")),i.length>10&&(e==null?i=i.replace("Z",""):e!==0&&(i=i.replace("Z",mo(e,!0)))),i}function go(t){return t.toISOString().replace(/T.*$/,"")}function jv(t){return t.toISOString().match(/^\d{4}-\d{2}/)[0]}function mo(t,e=!1){let n=t<0?"-":"+",i=Math.abs(t),s=Math.floor(i/60),l=Math.round(i%60);return e?`${n+Hs(s,2)}:${Hs(l,2)}`:`GMT${n}${s}${l?`:${Hs(l,2)}`:""}`}function ve(t,e,n){let i,s;return function(...l){if(!i)s=t.apply(this,l);else if(!bn(i,l)){n&&n(s);let u=t.apply(this,l);(!e||!e(u,s))&&(s=u)}return i=l,s}}function Zi(t,e,n){let i,s;return l=>{if(!i)s=t.call(this,l);else if(!jt(i,l)){n&&n(s);let u=t.call(this,l);(!e||!e(u,s))&&(s=u)}return i=l,s}}const Wc={week:3,separator:0,omitZeroMinute:0,meridiem:0,omitCommas:0},ta={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},Mi=/\s*([ap])\.?m\.?/i,Bv=/,/g,Vv=/\s+/g,Fv=/\u200e/g,Uv=/UTC|GMT/;class zv{constructor(e){let n={},i={},s=0;for(let l in e)l in Wc?(i[l]=e[l],s=Math.max(Wc[l],s)):(n[l]=e[l],l in ta&&(s=Math.max(ta[l],s)));this.standardDateProps=n,this.extendedSettings=i,this.severity=s,this.buildFormattingFunc=ve(Gc)}format(e,n){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,n)(e)}formatRange(e,n,i,s){let{standardDateProps:l,extendedSettings:u}=this,p=qv(e.marker,n.marker,i.calendarSystem);if(!p)return this.format(e,i);let h=p;h>1&&(l.year==="numeric"||l.year==="2-digit")&&(l.month==="numeric"||l.month==="2-digit")&&(l.day==="numeric"||l.day==="2-digit")&&(h=1);let y=this.format(e,i),g=this.format(n,i);if(y===g)return y;let S=Jv(l,h),A=Gc(S,u,i),w=A(e),O=A(n),B=Kv(y,w,g,O),$=u.separator||s||i.defaultSeparator||"";return B?B.before+w+$+O+B.after:y+$+g}getLargestUnit(){switch(this.severity){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}}}function Gc(t,e,n){let i=Object.keys(t).length;return i===1&&t.timeZoneName==="short"?s=>mo(s.timeZoneOffset):i===0&&e.week?s=>Qv(n.computeWeekNumber(s.marker),n.weekText,n.weekTextLong,n.locale,e.week):Wv(t,e,n)}function Wv(t,e,n){t=Object.assign({},t),e=Object.assign({},e),Gv(t,e),t.timeZone="UTC";let i=new Intl.DateTimeFormat(n.locale.codes,t),s;if(e.omitZeroMinute){let l=Object.assign({},t);delete l.minute,s=new Intl.DateTimeFormat(n.locale.codes,l)}return l=>{let{marker:u}=l,p;s&&!u.getUTCMinutes()?p=s:p=i;let h=p.format(u);return Zv(h,l,t,e,n)}}function Gv(t,e){t.timeZoneName&&(t.hour||(t.hour="2-digit"),t.minute||(t.minute="2-digit")),t.timeZoneName==="long"&&(t.timeZoneName="short"),e.omitZeroMinute&&(t.second||t.millisecond)&&delete e.omitZeroMinute}function Zv(t,e,n,i,s){return t=t.replace(Fv,""),n.timeZoneName==="short"&&(t=Yv(t,s.timeZone==="UTC"||e.timeZoneOffset==null?"UTC":mo(e.timeZoneOffset))),i.omitCommas&&(t=t.replace(Bv,"").trim()),i.omitZeroMinute&&(t=t.replace(":00","")),i.meridiem===!1?t=t.replace(Mi,"").trim():i.meridiem==="narrow"?t=t.replace(Mi,(l,u)=>u.toLocaleLowerCase()):i.meridiem==="short"?t=t.replace(Mi,(l,u)=>`${u.toLocaleLowerCase()}m`):i.meridiem==="lowercase"&&(t=t.replace(Mi,l=>l.toLocaleLowerCase())),t=t.replace(Vv," "),t=t.trim(),t}function Yv(t,e){let n=!1;return t=t.replace(Uv,()=>(n=!0,e)),n||(t+=` ${e}`),t}function Qv(t,e,n,i,s){let l=[];return s==="long"?l.push(n):(s==="short"||s==="narrow")&&l.push(e),(s==="long"||s==="short")&&l.push(" "),l.push(i.simpleNumberFormat.format(t)),i.options.direction==="rtl"&&l.reverse(),l.join("")}function qv(t,e,n){return n.getMarkerYear(t)!==n.getMarkerYear(e)?5:n.getMarkerMonth(t)!==n.getMarkerMonth(e)?4:n.getMarkerDay(t)!==n.getMarkerDay(e)?2:mn(t)!==mn(e)?1:0}function Jv(t,e){let n={};for(let i in t)(!(i in ta)||ta[i]<=e)&&(n[i]=t[i]);return n}function Kv(t,e,n,i){let s=0;for(;s<t.length;){let l=t.indexOf(e,s);if(l===-1)break;let u=t.substr(0,l);s=l+e.length;let p=t.substr(s),h=0;for(;h<n.length;){let y=n.indexOf(i,h);if(y===-1)break;let g=n.substr(0,y);h=y+i.length;let S=n.substr(h);if(u===g&&p===S)return{before:u,after:p}}}return null}function Zc(t,e){let n=e.markerToArray(t.marker);return{marker:t.marker,timeZoneOffset:t.timeZoneOffset,array:n,year:n[0],month:n[1],day:n[2],hour:n[3],minute:n[4],second:n[5],millisecond:n[6]}}function na(t,e,n,i){let s=Zc(t,n.calendarSystem),l=e?Zc(e,n.calendarSystem):null;return{date:s,start:s,end:l,timeZone:n.timeZone,localeCodes:n.locale.codes,defaultSeparator:i||n.defaultSeparator}}class Xv{constructor(e){this.cmdStr=e}format(e,n,i){return n.cmdFormatter(this.cmdStr,na(e,null,n,i))}formatRange(e,n,i,s){return i.cmdFormatter(this.cmdStr,na(e,n,i,s))}}class eg{constructor(e){this.func=e}format(e,n,i){return this.func(na(e,null,n,i))}formatRange(e,n,i,s){return this.func(na(e,n,i,s))}}function Be(t){return typeof t=="object"&&t?new zv(t):typeof t=="string"?new Xv(t):typeof t=="function"?new eg(t):null}const Yc={navLinkDayClick:I,navLinkWeekClick:I,duration:ye,bootstrapFontAwesome:I,buttonIcons:I,customButtons:I,defaultAllDayEventDuration:ye,defaultTimedEventDuration:ye,nextDayThreshold:ye,scrollTime:ye,scrollTimeReset:Boolean,slotMinTime:ye,slotMaxTime:ye,dayPopoverFormat:Be,slotDuration:ye,snapDuration:ye,headerToolbar:I,footerToolbar:I,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:Be,dayHeaderClassNames:I,dayHeaderContent:I,dayHeaderDidMount:I,dayHeaderWillUnmount:I,dayCellClassNames:I,dayCellContent:I,dayCellDidMount:I,dayCellWillUnmount:I,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:I,weekNumbers:Boolean,weekNumberClassNames:I,weekNumberContent:I,weekNumberDidMount:I,weekNumberWillUnmount:I,editable:Boolean,viewClassNames:I,viewDidMount:I,viewWillUnmount:I,nowIndicator:Boolean,nowIndicatorClassNames:I,nowIndicatorContent:I,nowIndicatorDidMount:I,nowIndicatorWillUnmount:I,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:I,locale:I,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:I,eventOrder:vv,eventOrderStrict:Boolean,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:I,contentHeight:I,direction:String,weekNumberFormat:Be,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,weekTextLong:String,progressiveEventRendering:Boolean,businessHours:I,initialDate:I,now:I,eventDataTransform:I,stickyHeaderDates:I,stickyFooterScrollbar:I,viewHeight:I,defaultAllDay:Boolean,eventSourceFailure:I,eventSourceSuccess:I,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:I,eventConstraint:I,eventAllow:I,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:I,eventContent:I,eventDidMount:I,eventWillUnmount:I,selectConstraint:I,selectOverlap:I,selectAllow:I,droppable:Boolean,unselectCancel:String,slotLabelFormat:I,slotLaneClassNames:I,slotLaneContent:I,slotLaneDidMount:I,slotLaneWillUnmount:I,slotLabelClassNames:I,slotLabelContent:I,slotLabelDidMount:I,slotLabelWillUnmount:I,dayMaxEvents:I,dayMaxEventRows:I,dayMinWidth:Number,slotLabelInterval:ye,allDayText:String,allDayClassNames:I,allDayContent:I,allDayDidMount:I,allDayWillUnmount:I,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:Be,rerenderDelay:Number,moreLinkText:I,moreLinkHint:I,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMaxStack:Number,eventMinHeight:Number,eventMinWidth:Number,eventShortHeight:Number,slotEventOverlap:Boolean,plugins:I,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:ye,hiddenDays:I,fixedWeekCount:Boolean,validRange:I,visibleRange:I,titleFormat:I,eventInteractive:Boolean,noEventsText:String,viewHint:I,navLinkHint:I,closeHint:String,timeHint:String,eventHint:String,moreLinkClick:I,moreLinkClassNames:I,moreLinkContent:I,moreLinkDidMount:I,moreLinkWillUnmount:I,monthStartFormat:Be,handleCustomRendering:I,customRenderingMetaMap:I,customRenderingReplaces:Boolean},Hr={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" – ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",scrollTimeReset:!0,slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1,eventMinHeight:15,eventMinWidth:30,eventShortHeight:30,monthStartFormat:{month:"long",day:"numeric"}},Qc={datesSet:I,eventsSet:I,eventAdd:I,eventChange:I,eventRemove:I,windowResize:I,eventClick:I,eventMouseEnter:I,eventMouseLeave:I,select:I,unselect:I,loading:I,_unmount:I,_beforeprint:I,_afterprint:I,_noEventDrop:I,_noEventResize:I,_resize:I,_scrollRequest:I},qc={buttonText:I,buttonHints:I,views:I,plugins:I,initialEvents:I,events:I,eventSources:I},$n={headerToolbar:Pn,footerToolbar:Pn,buttonText:Pn,buttonHints:Pn,buttonIcons:Pn,dateIncrement:Pn,plugins:Ii,events:Ii,eventSources:Ii,resources:Ii};function Pn(t,e){return typeof t=="object"&&typeof e=="object"&&t&&e?jt(t,e):t===e}function Ii(t,e){return Array.isArray(t)&&Array.isArray(e)?bn(t,e):t===e}const tg={type:String,component:I,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:I,usesMinMaxTime:Boolean,classNames:I,content:I,didMount:I,willUnmount:I};function Vs(t){return bo(t,$n)}function yo(t,e){let n={},i={};for(let s in e)s in t&&(n[s]=e[s](t[s]));for(let s in t)s in e||(i[s]=t[s]);return{refined:n,extra:i}}function I(t){return t}const{hasOwnProperty:ra}=Object.prototype;function bo(t,e){let n={};if(e){for(let i in e)if(e[i]===Pn){let s=[];for(let l=t.length-1;l>=0;l-=1){let u=t[l][i];if(typeof u=="object"&&u)s.unshift(u);else if(u!==void 0){n[i]=u;break}}s.length&&(n[i]=bo(s))}}for(let i=t.length-1;i>=0;i-=1){let s=t[i];for(let l in s)l in n||(n[l]=s[l])}return n}function hr(t,e){let n={};for(let i in t)e(t[i],i)&&(n[i]=t[i]);return n}function qr(t,e){let n={};for(let i in t)n[i]=e(t[i],i);return n}function md(t){let e={};for(let n of t)e[n]=!0;return e}function _o(t){let e=[];for(let n in t)e.push(t[n]);return e}function jt(t,e){if(t===e)return!0;for(let n in t)if(ra.call(t,n)&&!(n in e))return!1;for(let n in e)if(ra.call(e,n)&&t[n]!==e[n])return!1;return!0}const ng=/^on[A-Z]/;function rg(t,e){const n=no(t,e);for(let i of n)if(!ng.test(i))return!1;return!0}function no(t,e){let n=[];for(let i in t)ra.call(t,i)&&(i in e||n.push(i));for(let i in e)ra.call(e,i)&&t[i]!==e[i]&&n.push(i);return n}function Fs(t,e,n={}){if(t===e)return!0;for(let i in e)if(!(i in t&&ig(t[i],e[i],n[i])))return!1;for(let i in t)if(!(i in e))return!1;return!0}function ig(t,e,n){return t===e||n===!0?!0:n?n(t,e):!1}function ag(t,e=0,n,i=1){let s=[];n==null&&(n=Object.keys(t).length);for(let l=e;l<n;l+=i){let u=t[l];u!==void 0&&s.push(u)}return s}let yd={};function sg(t,e){yd[t]=e}function og(t){return new yd[t]}class lg{getMarkerYear(e){return e.getUTCFullYear()}getMarkerMonth(e){return e.getUTCMonth()}getMarkerDay(e){return e.getUTCDate()}arrayToMarker(e){return rt(e)}markerToArray(e){return gn(e)}}sg("gregory",lg);const cg=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;function ug(t){let e=cg.exec(t);if(e){let n=new Date(Date.UTC(Number(e[1]),e[3]?Number(e[3])-1:0,Number(e[5]||1),Number(e[7]||0),Number(e[8]||0),Number(e[10]||0),e[12]?+`0.${e[12]}`*1e3:0));if(gd(n)){let i=null;return e[13]&&(i=(e[15]==="-"?-1:1)*(Number(e[16]||0)*60+Number(e[18]||0))),{marker:n,isTimeUnspecified:!e[6],timeZoneOffset:i}}}return null}class dg{constructor(e){let n=this.timeZone=e.timeZone,i=n!=="local"&&n!=="UTC";e.namedTimeZoneImpl&&i&&(this.namedTimeZoneImpl=new e.namedTimeZoneImpl(n)),this.canComputeOffset=!!(!i||this.namedTimeZoneImpl),this.calendarSystem=og(e.calendarSystem),this.locale=e.locale,this.weekDow=e.locale.week.dow,this.weekDoy=e.locale.week.doy,e.weekNumberCalculation==="ISO"&&(this.weekDow=1,this.weekDoy=4),typeof e.firstDay=="number"&&(this.weekDow=e.firstDay),typeof e.weekNumberCalculation=="function"&&(this.weekNumberFunc=e.weekNumberCalculation),this.weekText=e.weekText!=null?e.weekText:e.locale.options.weekText,this.weekTextLong=(e.weekTextLong!=null?e.weekTextLong:e.locale.options.weekTextLong)||this.weekText,this.cmdFormatter=e.cmdFormatter,this.defaultSeparator=e.defaultSeparator}createMarker(e){let n=this.createMarkerMeta(e);return n===null?null:n.marker}createNowMarker(){return this.canComputeOffset?this.timestampToMarker(new Date().valueOf()):rt(Uc(new Date))}createMarkerMeta(e){if(typeof e=="string")return this.parse(e);let n=null;return typeof e=="number"?n=this.timestampToMarker(e):e instanceof Date?(e=e.valueOf(),isNaN(e)||(n=this.timestampToMarker(e))):Array.isArray(e)&&(n=rt(e)),n===null||!gd(n)?null:{marker:n,isTimeUnspecified:!1,forcedTzo:null}}parse(e){let n=ug(e);if(n===null)return null;let{marker:i}=n,s=null;return n.timeZoneOffset!==null&&(this.canComputeOffset?i=this.timestampToMarker(i.valueOf()-n.timeZoneOffset*60*1e3):s=n.timeZoneOffset),{marker:i,isTimeUnspecified:n.isTimeUnspecified,forcedTzo:s}}getYear(e){return this.calendarSystem.getMarkerYear(e)}getMonth(e){return this.calendarSystem.getMarkerMonth(e)}getDay(e){return this.calendarSystem.getMarkerDay(e)}add(e,n){let i=this.calendarSystem.markerToArray(e);return i[0]+=n.years,i[1]+=n.months,i[2]+=n.days,i[6]+=n.milliseconds,this.calendarSystem.arrayToMarker(i)}subtract(e,n){let i=this.calendarSystem.markerToArray(e);return i[0]-=n.years,i[1]-=n.months,i[2]-=n.days,i[6]-=n.milliseconds,this.calendarSystem.arrayToMarker(i)}addYears(e,n){let i=this.calendarSystem.markerToArray(e);return i[0]+=n,this.calendarSystem.arrayToMarker(i)}addMonths(e,n){let i=this.calendarSystem.markerToArray(e);return i[1]+=n,this.calendarSystem.arrayToMarker(i)}diffWholeYears(e,n){let{calendarSystem:i}=this;return mn(e)===mn(n)&&i.getMarkerDay(e)===i.getMarkerDay(n)&&i.getMarkerMonth(e)===i.getMarkerMonth(n)?i.getMarkerYear(n)-i.getMarkerYear(e):null}diffWholeMonths(e,n){let{calendarSystem:i}=this;return mn(e)===mn(n)&&i.getMarkerDay(e)===i.getMarkerDay(n)?i.getMarkerMonth(n)-i.getMarkerMonth(e)+(i.getMarkerYear(n)-i.getMarkerYear(e))*12:null}greatestWholeUnit(e,n){let i=this.diffWholeYears(e,n);return i!==null?{unit:"year",value:i}:(i=this.diffWholeMonths(e,n),i!==null?{unit:"month",value:i}:(i=Ov(e,n),i!==null?{unit:"week",value:i}:(i=ea(e,n),i!==null?{unit:"day",value:i}:(i=Dv(e,n),js(i)?{unit:"hour",value:i}:(i=Tv(e,n),js(i)?{unit:"minute",value:i}:(i=kv(e,n),js(i)?{unit:"second",value:i}:{unit:"millisecond",value:n.valueOf()-e.valueOf()}))))))}countDurationsBetween(e,n,i){let s;return i.years&&(s=this.diffWholeYears(e,n),s!==null)?s/Cv(i):i.months&&(s=this.diffWholeMonths(e,n),s!==null)?s/Ev(i):i.days&&(s=ea(e,n),s!==null)?s/dr(i):(n.valueOf()-e.valueOf())/Gr(i)}startOf(e,n){return n==="year"?this.startOfYear(e):n==="month"?this.startOfMonth(e):n==="week"?this.startOfWeek(e):n==="day"?De(e):n==="hour"?Mv(e):n==="minute"?Iv(e):n==="second"?Nv(e):null}startOfYear(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])}startOfMonth(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e)])}startOfWeek(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e),e.getUTCDate()-(e.getUTCDay()-this.weekDow+7)%7])}computeWeekNumber(e){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(e)):$v(e,this.weekDow,this.weekDoy)}format(e,n,i={}){return n.format({marker:e,timeZoneOffset:i.forcedTzo!=null?i.forcedTzo:this.offsetForMarker(e)},this)}formatRange(e,n,i,s={}){return s.isEndExclusive&&(n=_n(n,-1)),i.formatRange({marker:e,timeZoneOffset:s.forcedStartTzo!=null?s.forcedStartTzo:this.offsetForMarker(e)},{marker:n,timeZoneOffset:s.forcedEndTzo!=null?s.forcedEndTzo:this.offsetForMarker(n)},this,s.defaultSeparator)}formatIso(e,n={}){let i=null;return n.omitTimeZoneOffset||(n.forcedTzo!=null?i=n.forcedTzo:i=this.offsetForMarker(e)),Hv(e,i,n.omitTime)}timestampToMarker(e){return this.timeZone==="local"?rt(Uc(new Date(e))):this.timeZone==="UTC"||!this.namedTimeZoneImpl?new Date(e):rt(this.namedTimeZoneImpl.timestampToArray(e))}offsetForMarker(e){return this.timeZone==="local"?-zc(gn(e)).getTimezoneOffset():this.timeZone==="UTC"?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(gn(e)):null}toDate(e,n){return this.timeZone==="local"?zc(gn(e)):this.timeZone==="UTC"?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-this.namedTimeZoneImpl.offsetForArray(gn(e))*1e3*60):new Date(e.valueOf()-(n||0))}}class Jr{constructor(e){this.iconOverrideOption&&this.setIconOverride(e[this.iconOverrideOption])}setIconOverride(e){let n,i;if(typeof e=="object"&&e){n=Object.assign({},this.iconClasses);for(i in e)n[i]=this.applyIconOverridePrefix(e[i]);this.iconClasses=n}else e===!1&&(this.iconClasses={})}applyIconOverridePrefix(e){let n=this.iconOverridePrefix;return n&&e.indexOf(n)!==0&&(e=n+e),e}getClass(e){return this.classes[e]||""}getIconClass(e,n){let i;return n&&this.rtlIconClasses?i=this.rtlIconClasses[e]||this.iconClasses[e]:i=this.iconClasses[e],i?`${this.baseIconClass} ${i}`:""}getCustomButtonIconClass(e){let n;return this.iconOverrideCustomButtonOption&&(n=e[this.iconOverrideCustomButtonOption],n)?`${this.baseIconClass} ${this.applyIconOverridePrefix(n)}`:""}}Jr.prototype.classes={};Jr.prototype.iconClasses={};Jr.prototype.baseIconClass="";Jr.prototype.iconOverridePrefix="";function ia(t){t();let e=K.debounceRendering,n=[];function i(s){n.push(s)}for(K.debounceRendering=i,Wr(M(fg,{}),document.createElement("div"));n.length;)n.shift()();K.debounceRendering=e}class fg extends ft{render(){return M("div",{})}componentDidMount(){this.setState({})}}function bd(t){let e=Vh(t),n=e.Provider;return e.Provider=function(){let i=!this.getChildContext,s=n.apply(this,arguments);if(i){let l=[];this.shouldComponentUpdate=u=>{this.props.value!==u.value&&l.forEach(p=>{p.context=u.value,p.forceUpdate()})},this.sub=u=>{l.push(u);let p=u.componentWillUnmount;u.componentWillUnmount=()=>{l.splice(l.indexOf(u),1),p&&p.call(u)}}}return s},e}class pg{constructor(e,n,i,s){this.execFunc=e,this.emitter=n,this.scrollTime=i,this.scrollTimeReset=s,this.handleScrollRequest=l=>{this.queuedRequest=Object.assign({},this.queuedRequest||{},l),this.drain()},n.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}detach(){this.emitter.off("_scrollRequest",this.handleScrollRequest)}update(e){e&&this.scrollTimeReset?this.fireInitialScroll():this.drain()}fireInitialScroll(){this.handleScrollRequest({time:this.scrollTime})}drain(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)}}const Zn=bd({});function hg(t,e,n,i,s,l,u,p,h,y,g,S,A){return{dateEnv:s,options:n,pluginHooks:u,emitter:y,dispatch:p,getCurrentData:h,calendarApi:g,viewSpec:t,viewApi:e,dateProfileGenerator:i,theme:l,isRtl:n.direction==="rtl",addResizeHandler(w){y.on("_resize",w)},removeResizeHandler(w){y.off("_resize",w)},createScrollResponder(w){return new pg(w,y,ye(n.scrollTime),n.scrollTimeReset)},registerInteractiveComponent:S,unregisterInteractiveComponent:A}}class Yn extends ft{shouldComponentUpdate(e,n){return this.debug&&console.log(no(e,this.props),no(n,this.state)),!Fs(this.props,e,this.propEquality)||!Fs(this.state,n,this.stateEquality)}safeSetState(e){Fs(this.state,Object.assign(Object.assign({},this.state),e),this.stateEquality)||this.setState(e)}}Yn.addPropsEquality=vg;Yn.addStateEquality=gg;Yn.contextType=Zn;Yn.prototype.propEquality={};Yn.prototype.stateEquality={};class Te extends Yn{}Te.contextType=Zn;function vg(t){let e=Object.create(this.prototype.propEquality);Object.assign(e,t),this.prototype.propEquality=e}function gg(t){let e=Object.create(this.prototype.stateEquality);Object.assign(e,t),this.prototype.stateEquality=e}function rn(t,e){typeof t=="function"?t(e):t&&(t.current=e)}class wo extends Te{constructor(){super(...arguments),this.id=Gn(),this.queuedDomNodes=[],this.currentDomNodes=[],this.handleEl=e=>{const{options:n}=this.context,{generatorName:i}=this.props;(!n.customRenderingReplaces||!ro(i,n))&&this.updateElRef(e)},this.updateElRef=e=>{this.props.elRef&&rn(this.props.elRef,e)}}render(){const{props:e,context:n}=this,{options:i}=n,{customGenerator:s,defaultGenerator:l,renderProps:u}=e,p=_d(e,[],this.handleEl);let h=!1,y,g=[],S;if(s!=null){const A=typeof s=="function"?s(u,M):s;if(A===!0)h=!0;else{const w=A&&typeof A=="object";w&&"html"in A?p.dangerouslySetInnerHTML={__html:A.html}:w&&"domNodes"in A?g=Array.prototype.slice.call(A.domNodes):(w?Wu(A):typeof A!="function")?y=A:S=A}}else h=!ro(e.generatorName,i);return h&&l&&(y=l(u)),this.queuedDomNodes=g,this.currentGeneratorMeta=S,M(e.elTag,p,y)}componentDidMount(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentDidUpdate(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentWillUnmount(){this.triggerCustomRendering(!1)}triggerCustomRendering(e){var n;const{props:i,context:s}=this,{handleCustomRendering:l,customRenderingMetaMap:u}=s.options;if(l){const p=(n=this.currentGeneratorMeta)!==null&&n!==void 0?n:u==null?void 0:u[i.generatorName];p&&l(Object.assign(Object.assign({id:this.id,isActive:e,containerEl:this.base,reportNewContainerEl:this.updateElRef,generatorMeta:p},i),{elClasses:(i.elClasses||[]).filter(mg)}))}}applyQueueudDomNodes(){const{queuedDomNodes:e,currentDomNodes:n}=this,i=this.base;if(!bn(e,n)){n.forEach(ov);for(let s of e)i.appendChild(s);this.currentDomNodes=e}}}wo.addPropsEquality({elClasses:bn,elStyle:jt,elAttrs:rg,renderProps:jt});function ro(t,e){var n;return!!(e.handleCustomRendering&&t&&(!((n=e.customRenderingMetaMap)===null||n===void 0)&&n[t]))}function _d(t,e,n){const i=Object.assign(Object.assign({},t.elAttrs),{ref:n});return(t.elClasses||e)&&(i.className=(t.elClasses||[]).concat(e||[]).concat(i.className||[]).filter(Boolean).join(" ")),t.elStyle&&(i.style=t.elStyle),i}function mg(t){return!!t}const wd=bd(0);class sn extends ft{constructor(){super(...arguments),this.InnerContent=yg.bind(void 0,this),this.handleEl=e=>{this.el=e,this.props.elRef&&(rn(this.props.elRef,e),e&&this.didMountMisfire&&this.componentDidMount())}}render(){const{props:e}=this,n=bg(e.classNameGenerator,e.renderProps);if(e.children){const i=_d(e,n,this.handleEl),s=e.children(this.InnerContent,e.renderProps,i);return e.elTag?M(e.elTag,i,s):s}else return M(wo,Object.assign(Object.assign({},e),{elRef:this.handleEl,elTag:e.elTag||"div",elClasses:(e.elClasses||[]).concat(n),renderId:this.context}))}componentDidMount(){var e,n;this.el?(n=(e=this.props).didMount)===null||n===void 0||n.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.el})):this.didMountMisfire=!0}componentWillUnmount(){var e,n;(n=(e=this.props).willUnmount)===null||n===void 0||n.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.el}))}}sn.contextType=wd;function yg(t,e){const n=t.props;return M(wo,Object.assign({renderProps:n.renderProps,generatorName:n.generatorName,customGenerator:n.customGenerator,defaultGenerator:n.defaultGenerator,renderId:t.context},e))}function bg(t,e){const n=typeof t=="function"?t(e):t||[];return typeof n=="string"?[n]:n}class Jc extends Te{render(){let{props:e,context:n}=this,{options:i}=n,s={view:n.viewApi};return M(sn,Object.assign({},e,{elTag:e.elTag||"div",elClasses:[...Ld(e.viewSpec),...e.elClasses||[]],renderProps:s,classNameGenerator:i.viewClassNames,generatorName:void 0,didMount:i.viewDidMount,willUnmount:i.viewWillUnmount}),()=>e.children)}}function Ld(t){return[`fc-${t.type}-view`,"fc-view"]}function _g(t,e){let n=null,i=null;return t.start&&(n=e.createMarker(t.start)),t.end&&(i=e.createMarker(t.end)),!n&&!i||n&&i&&i<n?null:{start:n,end:i}}function Kc(t,e){let n=[],{start:i}=e,s,l;for(t.sort(wg),s=0;s<t.length;s+=1)l=t[s],l.start>i&&n.push({start:i,end:l.start}),l.end>i&&(i=l.end);return i<e.end&&n.push({start:i,end:e.end}),n}function wg(t,e){return t.start.valueOf()-e.start.valueOf()}function vr(t,e){let{start:n,end:i}=t,s=null;return e.start!==null&&(n===null?n=e.start:n=new Date(Math.max(n.valueOf(),e.start.valueOf()))),e.end!=null&&(i===null?i=e.end:i=new Date(Math.min(i.valueOf(),e.end.valueOf()))),(n===null||i===null||n<i)&&(s={start:n,end:i}),s}function Lg(t,e){return(t.end===null||e.start===null||t.end>e.start)&&(t.start===null||e.end===null||t.start<e.end)}function yn(t,e){return(t.start===null||e>=t.start)&&(t.end===null||e<t.end)}function Ag(t,e){return e.start!=null&&t<e.start?e.start:e.end!=null&&t>=e.end?new Date(e.end.valueOf()-1):t}function Ad(t){let e=Math.floor(_r(t.start,t.end))||1,n=De(t.start),i=Ye(n,e);return{start:n,end:i}}function Cd(t,e=ye(0)){let n=null,i=null;if(t.end){i=De(t.end);let s=t.end.valueOf()-i.valueOf();s&&s>=Gr(e)&&(i=Ye(i,1))}return t.start&&(n=De(t.start),i&&i<=n&&(i=Ye(n,1))),{start:n,end:i}}function Ni(t,e,n,i){return i==="year"?ye(n.diffWholeYears(t,e),"year"):i==="month"?ye(n.diffWholeMonths(t,e),"month"):Rv(t,e)}function Cg(t,e){switch(e.type){case"CHANGE_DATE":return e.dateMarker;default:return t}}function Eg(t,e){let n=t.initialDate;return n!=null?e.createMarker(n):Kr(t.now,e)}function Kr(t,e){return typeof t=="function"&&(t=t()),t==null?e.createNowMarker():e.createMarker(t)}class Ed{constructor(e){this.props=e,this.nowDate=Kr(e.nowInput,e.dateEnv),this.initHiddenDays()}buildPrev(e,n,i){let{dateEnv:s}=this.props,l=s.subtract(s.startOf(n,e.currentRangeUnit),e.dateIncrement);return this.build(l,-1,i)}buildNext(e,n,i){let{dateEnv:s}=this.props,l=s.add(s.startOf(n,e.currentRangeUnit),e.dateIncrement);return this.build(l,1,i)}build(e,n,i=!0){let{props:s}=this,l,u,p,h,y,g;return l=this.buildValidRange(),l=this.trimHiddenDays(l),i&&(e=Ag(e,l)),u=this.buildCurrentRangeInfo(e,n),p=/^(year|month|week|day)$/.test(u.unit),h=this.buildRenderRange(this.trimHiddenDays(u.range),u.unit,p),h=this.trimHiddenDays(h),y=h,s.showNonCurrentDates||(y=vr(y,u.range)),y=this.adjustActiveRange(y),y=vr(y,l),g=Lg(u.range,l),yn(h,e)||(e=h.start),{currentDate:e,validRange:l,currentRange:u.range,currentRangeUnit:u.unit,isRangeAllDay:p,activeRange:y,renderRange:h,slotMinTime:s.slotMinTime,slotMaxTime:s.slotMaxTime,isValid:g,dateIncrement:this.buildDateIncrement(u.duration)}}buildValidRange(){let e=this.props.validRangeInput,n=typeof e=="function"?e.call(this.props.calendarApi,this.nowDate):e;return this.refineRange(n)||{start:null,end:null}}buildCurrentRangeInfo(e,n){let{props:i}=this,s=null,l=null,u=null,p;return i.duration?(s=i.duration,l=i.durationUnit,u=this.buildRangeFromDuration(e,n,s,l)):(p=this.props.dayCount)?(l="day",u=this.buildRangeFromDayCount(e,n,p)):(u=this.buildCustomVisibleRange(e))?l=i.dateEnv.greatestWholeUnit(u.start,u.end).unit:(s=this.getFallbackDuration(),l=to(s).unit,u=this.buildRangeFromDuration(e,n,s,l)),{duration:s,unit:l,range:u}}getFallbackDuration(){return ye({day:1})}adjustActiveRange(e){let{dateEnv:n,usesMinMaxTime:i,slotMinTime:s,slotMaxTime:l}=this.props,{start:u,end:p}=e;return i&&(dr(s)<0&&(u=De(u),u=n.add(u,s)),dr(l)>1&&(p=De(p),p=Ye(p,-1),p=n.add(p,l))),{start:u,end:p}}buildRangeFromDuration(e,n,i,s){let{dateEnv:l,dateAlignment:u}=this.props,p,h,y;if(!u){let{dateIncrement:S}=this.props;S&&Gr(S)<Gr(i)?u=to(S).unit:u=s}dr(i)<=1&&this.isHiddenDay(p)&&(p=this.skipHiddenDays(p,n),p=De(p));function g(){p=l.startOf(e,u),h=l.add(p,i),y={start:p,end:h}}return g(),this.trimHiddenDays(y)||(e=this.skipHiddenDays(e,n),g()),y}buildRangeFromDayCount(e,n,i){let{dateEnv:s,dateAlignment:l}=this.props,u=0,p=e,h;l&&(p=s.startOf(p,l)),p=De(p),p=this.skipHiddenDays(p,n),h=p;do h=Ye(h,1),this.isHiddenDay(h)||(u+=1);while(u<i);return{start:p,end:h}}buildCustomVisibleRange(e){let{props:n}=this,i=n.visibleRangeInput,s=typeof i=="function"?i.call(n.calendarApi,n.dateEnv.toDate(e)):i,l=this.refineRange(s);return l&&(l.start==null||l.end==null)?null:l}buildRenderRange(e,n,i){return e}buildDateIncrement(e){let{dateIncrement:n}=this.props,i;return n||((i=this.props.dateAlignment)?ye(1,i):e||ye({days:1}))}refineRange(e){if(e){let n=_g(e,this.props.dateEnv);return n&&(n=Cd(n)),n}return null}initHiddenDays(){let e=this.props.hiddenDays||[],n=[],i=0,s;for(this.props.weekends===!1&&e.push(0,6),s=0;s<7;s+=1)(n[s]=e.indexOf(s)!==-1)||(i+=1);if(!i)throw new Error("invalid hiddenDays");this.isHiddenDayHash=n}trimHiddenDays(e){let{start:n,end:i}=e;return n&&(n=this.skipHiddenDays(n)),i&&(i=this.skipHiddenDays(i,-1,!0)),n==null||i==null||n<i?{start:n,end:i}:null}isHiddenDay(e){return e instanceof Date&&(e=e.getUTCDay()),this.isHiddenDayHash[e]}skipHiddenDays(e,n=1,i=!1){for(;this.isHiddenDayHash[(e.getUTCDay()+(i?n:0)+7)%7];)e=Ye(e,n);return e}}function Lo(t,e,n,i){return{instanceId:Gn(),defId:t,range:e,forcedStartTzo:n==null?null:n,forcedEndTzo:i==null?null:i}}function Sg(t,e,n,i){for(let s=0;s<i.length;s+=1){let l=i[s].parse(t,n);if(l){let{allDay:u}=t;return u==null&&(u=e,u==null&&(u=l.allDayGuess,u==null&&(u=!1))),{allDay:u,duration:l.duration,typeData:l.typeData,typeId:s}}}return null}function Xr(t,e,n){let{dateEnv:i,pluginHooks:s,options:l}=n,{defs:u,instances:p}=t;p=hr(p,h=>!u[h.defId].recurringDef);for(let h in u){let y=u[h];if(y.recurringDef){let{duration:g}=y.recurringDef;g||(g=y.allDay?l.defaultAllDayEventDuration:l.defaultTimedEventDuration);let S=xg(y,g,e,i,s.recurringTypes);for(let A of S){let w=Lo(h,{start:A,end:i.add(A,g)});p[w.instanceId]=w}}}return{defs:u,instances:p}}function xg(t,e,n,i,s){let u=s[t.recurringDef.typeId].expand(t.recurringDef.typeData,{start:i.subtract(n.start,e),end:n.end},i);return t.allDay&&(u=u.map(De)),u}const Yi={id:String,groupId:String,title:String,url:String,interactive:Boolean},Sd={start:I,end:I,date:I,allDay:Boolean},Dg=Object.assign(Object.assign(Object.assign({},Yi),Sd),{extendedProps:I});function xd(t,e,n,i,s=Ao(n),l,u){let{refined:p,extra:h}=Dd(t,n,s),y=kg(e,n),g=Sg(p,y,n.dateEnv,n.pluginHooks.recurringTypes);if(g){let A=io(p,h,e?e.sourceId:"",g.allDay,!!g.duration,n,l);return A.recurringDef={typeId:g.typeId,typeData:g.typeData,duration:g.duration},{def:A,instance:null}}let S=Tg(p,y,n,i);if(S){let A=io(p,h,e?e.sourceId:"",S.allDay,S.hasEnd,n,l),w=Lo(A.defId,S.range,S.forcedStartTzo,S.forcedEndTzo);return u&&A.publicId&&u[A.publicId]&&(w.instanceId=u[A.publicId]),{def:A,instance:w}}return null}function Dd(t,e,n=Ao(e)){return yo(t,n)}function Ao(t){return Object.assign(Object.assign(Object.assign({},aa),Dg),t.pluginHooks.eventRefiners)}function io(t,e,n,i,s,l,u){let p={title:t.title||"",groupId:t.groupId||"",publicId:t.id||"",url:t.url||"",recurringDef:null,defId:(u&&t.id?u[t.id]:"")||Gn(),sourceId:n,allDay:i,hasEnd:s,interactive:t.interactive,ui:sa(t,l),extendedProps:Object.assign(Object.assign({},t.extendedProps||{}),e)};for(let h of l.pluginHooks.eventDefMemberAdders)Object.assign(p,h(t));return Object.freeze(p.ui.classNames),Object.freeze(p.extendedProps),p}function Tg(t,e,n,i){let{allDay:s}=t,l,u=null,p=!1,h,y=null,g=t.start!=null?t.start:t.date;if(l=n.dateEnv.createMarkerMeta(g),l)u=l.marker;else if(!i)return null;return t.end!=null&&(h=n.dateEnv.createMarkerMeta(t.end)),s==null&&(e!=null?s=e:s=(!l||l.isTimeUnspecified)&&(!h||h.isTimeUnspecified)),s&&u&&(u=De(u)),h&&(y=h.marker,s&&(y=De(y)),u&&y<=u&&(y=null)),y?p=!0:i||(p=n.options.forceEventDuration||!1,y=n.dateEnv.add(u,s?n.options.defaultAllDayEventDuration:n.options.defaultTimedEventDuration)),{allDay:s,hasEnd:p,range:{start:u,end:y},forcedStartTzo:l?l.forcedTzo:null,forcedEndTzo:h?h.forcedTzo:null}}function kg(t,e){let n=null;return t&&(n=t.defaultAllDay),n==null&&(n=e.options.defaultAllDay),n}function Zr(t,e,n,i,s,l){let u=zn(),p=Ao(n);for(let h of t){let y=xd(h,e,n,i,p,s,l);y&&ao(y,u)}return u}function ao(t,e=zn()){return e.defs[t.def.defId]=t.def,t.instance&&(e.instances[t.instance.instanceId]=t.instance),e}function Rg(t,e){let n=t.instances[e];if(n){let i=t.defs[n.defId],s=Eo(t,l=>Og(i,l));return s.defs[i.defId]=i,s.instances[n.instanceId]=n,s}return zn()}function Og(t,e){return!!(t.groupId&&t.groupId===e.groupId)}function zn(){return{defs:{},instances:{}}}function Co(t,e){return{defs:Object.assign(Object.assign({},t.defs),e.defs),instances:Object.assign(Object.assign({},t.instances),e.instances)}}function Eo(t,e){let n=hr(t.defs,e),i=hr(t.instances,s=>n[s.defId]);return{defs:n,instances:i}}function Mg(t,e){let{defs:n,instances:i}=t,s={},l={};for(let u in n)e.defs[u]||(s[u]=n[u]);for(let u in i)!e.instances[u]&&s[i[u].defId]&&(l[u]=i[u]);return{defs:s,instances:l}}function Ig(t,e){return Array.isArray(t)?Zr(t,null,e,!0):typeof t=="object"&&t?Zr([t],null,e,!0):t!=null?String(t):null}function Xc(t){return Array.isArray(t)?t:typeof t=="string"?t.split(/\s+/):[]}const aa={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:I,overlap:I,allow:I,className:Xc,classNames:Xc,color:String,backgroundColor:String,borderColor:String,textColor:String},Ng={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function sa(t,e){let n=Ig(t.constraint,e);return{display:t.display||null,startEditable:t.startEditable!=null?t.startEditable:t.editable,durationEditable:t.durationEditable!=null?t.durationEditable:t.editable,constraints:n!=null?[n]:[],overlap:t.overlap!=null?t.overlap:null,allows:t.allow!=null?[t.allow]:[],backgroundColor:t.backgroundColor||t.color||"",borderColor:t.borderColor||t.color||"",textColor:t.textColor||"",classNames:(t.className||[]).concat(t.classNames||[])}}function $g(t){return t.reduce(Pg,Ng)}function Pg(t,e){return{display:e.display!=null?e.display:t.display,startEditable:e.startEditable!=null?e.startEditable:t.startEditable,durationEditable:e.durationEditable!=null?e.durationEditable:t.durationEditable,constraints:t.constraints.concat(e.constraints),overlap:typeof e.overlap=="boolean"?e.overlap:t.overlap,allows:t.allows.concat(e.allows),backgroundColor:e.backgroundColor||t.backgroundColor,borderColor:e.borderColor||t.borderColor,textColor:e.textColor||t.textColor,classNames:t.classNames.concat(e.classNames)}}const Hg={id:String,defaultAllDay:Boolean,url:String,format:String,events:I,eventDataTransform:I,success:I,failure:I};function Td(t,e,n=kd(e)){let i;if(typeof t=="string"?i={url:t}:typeof t=="function"||Array.isArray(t)?i={events:t}:typeof t=="object"&&t&&(i=t),i){let{refined:s,extra:l}=yo(i,n),u=jg(s,e);if(u)return{_raw:t,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:s.defaultAllDay,eventDataTransform:s.eventDataTransform,success:s.success,failure:s.failure,publicId:s.id||"",sourceId:Gn(),sourceDefId:u.sourceDefId,meta:u.meta,ui:sa(s,e),extendedProps:l}}return null}function kd(t){return Object.assign(Object.assign(Object.assign({},aa),Hg),t.pluginHooks.eventSourceRefiners)}function jg(t,e){let n=e.pluginHooks.eventSourceDefs;for(let i=n.length-1;i>=0;i-=1){let l=n[i].parseMeta(t);if(l)return{sourceDefId:i,meta:l}}return null}function Bg(t,e,n,i,s){switch(e.type){case"RECEIVE_EVENTS":return Vg(t,n[e.sourceId],e.fetchId,e.fetchRange,e.rawEvents,s);case"RESET_RAW_EVENTS":return Fg(t,n[e.sourceId],e.rawEvents,i.activeRange,s);case"ADD_EVENTS":return Ug(t,e.eventStore,i?i.activeRange:null,s);case"RESET_EVENTS":return e.eventStore;case"MERGE_EVENTS":return Co(t,e.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return i?Xr(t,i.activeRange,s):t;case"REMOVE_EVENTS":return Mg(t,e.eventStore);case"REMOVE_EVENT_SOURCE":return Od(t,e.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return Eo(t,l=>!l.sourceId);case"REMOVE_ALL_EVENTS":return zn();default:return t}}function Vg(t,e,n,i,s,l){if(e&&n===e.latestFetchId){let u=Zr(Rd(s,e,l),e,l);return i&&(u=Xr(u,i,l)),Co(Od(t,e.sourceId),u)}return t}function Fg(t,e,n,i,s){const{defIdMap:l,instanceIdMap:u}=zg(t);let p=Zr(Rd(n,e,s),e,s,!1,l,u);return Xr(p,i,s)}function Rd(t,e,n){let i=n.options.eventDataTransform,s=e?e.eventDataTransform:null;return s&&(t=eu(t,s)),i&&(t=eu(t,i)),t}function eu(t,e){let n;if(!e)n=t;else{n=[];for(let i of t){let s=e(i);s?n.push(s):s==null&&n.push(i)}}return n}function Ug(t,e,n,i){return n&&(e=Xr(e,n,i)),Co(t,e)}function tu(t,e,n){let{defs:i}=t,s=qr(t.instances,l=>i[l.defId].allDay?l:Object.assign(Object.assign({},l),{range:{start:n.createMarker(e.toDate(l.range.start,l.forcedStartTzo)),end:n.createMarker(e.toDate(l.range.end,l.forcedEndTzo))},forcedStartTzo:n.canComputeOffset?null:l.forcedStartTzo,forcedEndTzo:n.canComputeOffset?null:l.forcedEndTzo}));return{defs:i,instances:s}}function Od(t,e){return Eo(t,n=>n.sourceId!==e)}function zg(t){const{defs:e,instances:n}=t,i={},s={};for(let l in e){const u=e[l],{publicId:p}=u;p&&(i[p]=l)}for(let l in n){const u=n[l],p=e[u.defId],{publicId:h}=p;h&&(s[h]=l)}return{defIdMap:i,instanceIdMap:s}}class Wg{constructor(){this.handlers={},this.thisContext=null}setThisContext(e){this.thisContext=e}setOptions(e){this.options=e}on(e,n){Gg(this.handlers,e,n)}off(e,n){Zg(this.handlers,e,n)}trigger(e,...n){let i=this.handlers[e]||[],s=this.options&&this.options[e],l=[].concat(s||[],i);for(let u of l)u.apply(this.thisContext,n)}hasHandlers(e){return!!(this.handlers[e]&&this.handlers[e].length||this.options&&this.options[e])}}function Gg(t,e,n){(t[e]||(t[e]=[])).push(n)}function Zg(t,e,n){n?t[e]&&(t[e]=t[e].filter(i=>i!==n)):delete t[e]}const Yg={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};function Qg(t,e){return Zr(qg(t),null,e)}function qg(t){let e;return t===!0?e=[{}]:Array.isArray(t)?e=t.filter(n=>n.daysOfWeek):typeof t=="object"&&t?e=[t]:e=[],e=e.map(n=>Object.assign(Object.assign({},Yg),n)),e}function Jg(t,e,n){n.emitter.trigger("select",Object.assign(Object.assign({},Xg(t,n)),{jsEvent:e?e.origEvent:null,view:n.viewApi||n.calendarApi.view}))}function Kg(t,e){e.emitter.trigger("unselect",{jsEvent:t?t.origEvent:null,view:e.viewApi||e.calendarApi.view})}function Xg(t,e){let n={};for(let i of e.pluginHooks.dateSpanTransforms)Object.assign(n,i(t,e));return Object.assign(n,pm(t,e.dateEnv)),n}function nu(t,e,n){let{dateEnv:i,options:s}=n,l=e;return t?(l=De(l),l=i.add(l,s.defaultAllDayEventDuration)):l=i.add(l,s.defaultTimedEventDuration),l}function em(t,e,n,i){let s=Id(t.defs,e),l=zn();for(let u in t.defs){let p=t.defs[u];l.defs[u]=tm(p,s[u],n,i)}for(let u in t.instances){let p=t.instances[u],h=l.defs[p.defId];l.instances[u]=nm(p,h,s[p.defId],n,i)}return l}function tm(t,e,n,i){let s=n.standardProps||{};s.hasEnd==null&&e.durationEditable&&(n.startDelta||n.endDelta)&&(s.hasEnd=!0);let l=Object.assign(Object.assign(Object.assign({},t),s),{ui:Object.assign(Object.assign({},t.ui),s.ui)});n.extendedProps&&(l.extendedProps=Object.assign(Object.assign({},l.extendedProps),n.extendedProps));for(let u of i.pluginHooks.eventDefMutationAppliers)u(l,n,i);return!l.hasEnd&&i.options.forceEventDuration&&(l.hasEnd=!0),l}function nm(t,e,n,i,s){let{dateEnv:l}=s,u=i.standardProps&&i.standardProps.allDay===!0,p=i.standardProps&&i.standardProps.hasEnd===!1,h=Object.assign({},t);return u&&(h.range=Ad(h.range)),i.datesDelta&&n.startEditable&&(h.range={start:l.add(h.range.start,i.datesDelta),end:l.add(h.range.end,i.datesDelta)}),i.startDelta&&n.durationEditable&&(h.range={start:l.add(h.range.start,i.startDelta),end:h.range.end}),i.endDelta&&n.durationEditable&&(h.range={start:h.range.start,end:l.add(h.range.end,i.endDelta)}),p&&(h.range={start:h.range.start,end:nu(e.allDay,h.range.start,s)}),e.allDay&&(h.range={start:De(h.range.start),end:De(h.range.end)}),h.range.end<h.range.start&&(h.range.end=nu(e.allDay,h.range.start,s)),h}class cr{constructor(e,n){this.context=e,this.internalEventSource=n}remove(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})}refetch(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId],isRefetch:!0})}get id(){return this.internalEventSource.publicId}get url(){return this.internalEventSource.meta.url}get format(){return this.internalEventSource.meta.format}}class bt{constructor(e,n,i){this._context=e,this._def=n,this._instance=i||null}setProp(e,n){if(e in Sd)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if(e==="id")n=Yi[e](n),this.mutate({standardProps:{publicId:n}});else if(e in Yi)n=Yi[e](n),this.mutate({standardProps:{[e]:n}});else if(e in aa){let i=aa[e](n);e==="color"?i={backgroundColor:n,borderColor:n}:e==="editable"?i={startEditable:n,durationEditable:n}:i={[e]:n},this.mutate({standardProps:{ui:i}})}else console.warn(`Could not set prop '${e}'. Use setExtendedProp instead.`)}setExtendedProp(e,n){this.mutate({extendedProps:{[e]:n}})}setStart(e,n={}){let{dateEnv:i}=this._context,s=i.createMarker(e);if(s&&this._instance){let l=this._instance.range,u=Ni(l.start,s,i,n.granularity);n.maintainDuration?this.mutate({datesDelta:u}):this.mutate({startDelta:u})}}setEnd(e,n={}){let{dateEnv:i}=this._context,s;if(!(e!=null&&(s=i.createMarker(e),!s))&&this._instance)if(s){let l=Ni(this._instance.range.end,s,i,n.granularity);this.mutate({endDelta:l})}else this.mutate({standardProps:{hasEnd:!1}})}setDates(e,n,i={}){let{dateEnv:s}=this._context,l={allDay:i.allDay},u=s.createMarker(e),p;if(u&&!(n!=null&&(p=s.createMarker(n),!p))&&this._instance){let h=this._instance.range;i.allDay===!0&&(h=Ad(h));let y=Ni(h.start,u,s,i.granularity);if(p){let g=Ni(h.end,p,s,i.granularity);Lv(y,g)?this.mutate({datesDelta:y,standardProps:l}):this.mutate({startDelta:y,endDelta:g,standardProps:l})}else l.hasEnd=!1,this.mutate({datesDelta:y,standardProps:l})}}moveStart(e){let n=ye(e);n&&this.mutate({startDelta:n})}moveEnd(e){let n=ye(e);n&&this.mutate({endDelta:n})}moveDates(e){let n=ye(e);n&&this.mutate({datesDelta:n})}setAllDay(e,n={}){let i={allDay:e},{maintainDuration:s}=n;s==null&&(s=this._context.options.allDayMaintainDuration),this._def.allDay!==e&&(i.hasEnd=s),this.mutate({standardProps:i})}formatRange(e){let{dateEnv:n}=this._context,i=this._instance,s=Be(e);return this._def.hasEnd?n.formatRange(i.range.start,i.range.end,s,{forcedStartTzo:i.forcedStartTzo,forcedEndTzo:i.forcedEndTzo}):n.format(i.range.start,s,{forcedTzo:i.forcedStartTzo})}mutate(e){let n=this._instance;if(n){let i=this._def,s=this._context,{eventStore:l}=s.getCurrentData(),u=Rg(l,n.instanceId);u=em(u,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},e,s);let h=new bt(s,i,n);this._def=u.defs[i.defId],this._instance=u.instances[n.instanceId],s.dispatch({type:"MERGE_EVENTS",eventStore:u}),s.emitter.trigger("eventChange",{oldEvent:h,event:this,relatedEvents:So(u,s,n),revert(){s.dispatch({type:"RESET_EVENTS",eventStore:l})}})}}remove(){let e=this._context,n=Md(this);e.dispatch({type:"REMOVE_EVENTS",eventStore:n}),e.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:n})}})}get source(){let{sourceId:e}=this._def;return e?new cr(this._context,this._context.getCurrentData().eventSources[e]):null}get start(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null}get end(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null}get startStr(){let e=this._instance;return e?this._context.dateEnv.formatIso(e.range.start,{omitTime:this._def.allDay,forcedTzo:e.forcedStartTzo}):""}get endStr(){let e=this._instance;return e&&this._def.hasEnd?this._context.dateEnv.formatIso(e.range.end,{omitTime:this._def.allDay,forcedTzo:e.forcedEndTzo}):""}get id(){return this._def.publicId}get groupId(){return this._def.groupId}get allDay(){return this._def.allDay}get title(){return this._def.title}get url(){return this._def.url}get display(){return this._def.ui.display||"auto"}get startEditable(){return this._def.ui.startEditable}get durationEditable(){return this._def.ui.durationEditable}get constraint(){return this._def.ui.constraints[0]||null}get overlap(){return this._def.ui.overlap}get allow(){return this._def.ui.allows[0]||null}get backgroundColor(){return this._def.ui.backgroundColor}get borderColor(){return this._def.ui.borderColor}get textColor(){return this._def.ui.textColor}get classNames(){return this._def.ui.classNames}get extendedProps(){return this._def.extendedProps}toPlainObject(e={}){let n=this._def,{ui:i}=n,{startStr:s,endStr:l}=this,u={allDay:n.allDay};return n.title&&(u.title=n.title),s&&(u.start=s),l&&(u.end=l),n.publicId&&(u.id=n.publicId),n.groupId&&(u.groupId=n.groupId),n.url&&(u.url=n.url),i.display&&i.display!=="auto"&&(u.display=i.display),e.collapseColor&&i.backgroundColor&&i.backgroundColor===i.borderColor?u.color=i.backgroundColor:(i.backgroundColor&&(u.backgroundColor=i.backgroundColor),i.borderColor&&(u.borderColor=i.borderColor)),i.textColor&&(u.textColor=i.textColor),i.classNames.length&&(u.classNames=i.classNames),Object.keys(n.extendedProps).length&&(e.collapseExtendedProps?Object.assign(u,n.extendedProps):u.extendedProps=n.extendedProps),u}toJSON(){return this.toPlainObject()}}function Md(t){let e=t._def,n=t._instance;return{defs:{[e.defId]:e},instances:n?{[n.instanceId]:n}:{}}}function So(t,e,n){let{defs:i,instances:s}=t,l=[],u=n?n.instanceId:"";for(let p in s){let h=s[p],y=i[h.defId];h.instanceId!==u&&l.push(new bt(e,y,h))}return l}function ru(t,e,n,i){let s={},l={},u={},p=[],h=[],y=Id(t.defs,e);for(let g in t.defs){let S=t.defs[g];y[S.defId].display==="inverse-background"&&(S.groupId?(s[S.groupId]=[],u[S.groupId]||(u[S.groupId]=S)):l[g]=[])}for(let g in t.instances){let S=t.instances[g],A=t.defs[S.defId],w=y[A.defId],O=S.range,B=!A.allDay&&i?Cd(O,i):O,$=vr(B,n);$&&(w.display==="inverse-background"?A.groupId?s[A.groupId].push($):l[S.defId].push($):w.display!=="none"&&(w.display==="background"?p:h).push({def:A,ui:w,instance:S,range:$,isStart:B.start&&B.start.valueOf()===$.start.valueOf(),isEnd:B.end&&B.end.valueOf()===$.end.valueOf()}))}for(let g in s){let S=s[g],A=Kc(S,n);for(let w of A){let O=u[g],B=y[O.defId];p.push({def:O,ui:B,instance:null,range:w,isStart:!1,isEnd:!1})}}for(let g in l){let S=l[g],A=Kc(S,n);for(let w of A)p.push({def:t.defs[g],ui:y[g],instance:null,range:w,isStart:!1,isEnd:!1})}return{bg:p,fg:h}}function iu(t,e){t.fcSeg=e}function so(t){return t.fcSeg||t.parentNode.fcSeg||null}function Id(t,e){return qr(t,n=>Nd(n,e))}function Nd(t,e){let n=[];return e[""]&&n.push(e[""]),e[t.defId]&&n.push(e[t.defId]),n.push(t.ui),$g(n)}function rm(t,e){let n=t.map(im);return n.sort((i,s)=>gv(i,s,e)),n.map(i=>i._seg)}function im(t){let{eventRange:e}=t,n=e.def,i=e.instance?e.instance.range:e.range,s=i.start?i.start.valueOf():0,l=i.end?i.end.valueOf():0;return Object.assign(Object.assign(Object.assign({},n.extendedProps),n),{id:n.publicId,start:s,end:l,duration:l-s,allDay:Number(n.allDay),_seg:t})}function am(t,e){let{pluginHooks:n}=e,i=n.isDraggableTransformers,{def:s,ui:l}=t.eventRange,u=l.startEditable;for(let p of i)u=p(u,s,l,e);return u}function sm(t,e){return t.isStart&&t.eventRange.ui.durationEditable&&e.options.eventResizableFromStart}function om(t,e){return t.isEnd&&t.eventRange.ui.durationEditable}function $d(t,e,n,i,s,l,u){let{dateEnv:p,options:h}=n,{displayEventTime:y,displayEventEnd:g}=h,S=t.eventRange.def,A=t.eventRange.instance;y==null&&(y=i!==!1),g==null&&(g=s!==!1);let w=A.range.start,O=A.range.end,B=l||t.start||t.eventRange.range.start,$=u||t.end||t.eventRange.range.end,H=De(w).valueOf()===De(B).valueOf(),V=De(_n(O,-1)).valueOf()===De(_n($,-1)).valueOf();return y&&!S.allDay&&(H||V)?(B=H?w:B,$=V?O:$,g&&S.hasEnd?p.formatRange(B,$,e,{forcedStartTzo:l?null:A.forcedStartTzo,forcedEndTzo:u?null:A.forcedEndTzo}):p.format(B,e,{forcedTzo:l?null:A.forcedStartTzo})):""}function jr(t,e,n){let i=t.eventRange.range;return{isPast:i.end<=(n||e.start),isFuture:i.start>=(n||e.end),isToday:e&&yn(e,i.start)}}function lm(t){let e=["fc-event"];return t.isMirror&&e.push("fc-event-mirror"),t.isDraggable&&e.push("fc-event-draggable"),(t.isStartResizable||t.isEndResizable)&&e.push("fc-event-resizable"),t.isDragging&&e.push("fc-event-dragging"),t.isResizing&&e.push("fc-event-resizing"),t.isSelected&&e.push("fc-event-selected"),t.isStart&&e.push("fc-event-start"),t.isEnd&&e.push("fc-event-end"),t.isPast&&e.push("fc-event-past"),t.isToday&&e.push("fc-event-today"),t.isFuture&&e.push("fc-event-future"),e}function cm(t){return t.instance?t.instance.instanceId:`${t.def.defId}:${t.range.start.toISOString()}`}function Pd(t,e){let{def:n,instance:i}=t.eventRange,{url:s}=n;if(s)return{href:s};let{emitter:l,options:u}=e,{eventInteractive:p}=u;return p==null&&(p=n.interactive,p==null&&(p=!!l.hasHandlers("eventClick"))),p?vd(h=>{l.trigger("eventClick",{el:h.target,event:new bt(e,n,i),jsEvent:h,view:e.viewApi})}):{}}const um={start:I,end:I,allDay:Boolean};function dm(t,e,n){let i=fm(t,e),{range:s}=i;if(!s.start)return null;if(!s.end){if(n==null)return null;s.end=e.add(s.start,n)}return i}function fm(t,e){let{refined:n,extra:i}=yo(t,um),s=n.start?e.createMarkerMeta(n.start):null,l=n.end?e.createMarkerMeta(n.end):null,{allDay:u}=n;return u==null&&(u=s&&s.isTimeUnspecified&&(!l||l.isTimeUnspecified)),Object.assign({range:{start:s?s.marker:null,end:l?l.marker:null},allDay:u},i)}function pm(t,e){return Object.assign(Object.assign({},jd(t.range,e,t.allDay)),{allDay:t.allDay})}function Hd(t,e,n){return Object.assign(Object.assign({},jd(t,e,n)),{timeZone:e.timeZone})}function jd(t,e,n){return{start:e.toDate(t.start),end:e.toDate(t.end),startStr:e.formatIso(t.start,{omitTime:n}),endStr:e.formatIso(t.end,{omitTime:n})}}function hm(t,e,n){let i=Dd({editable:!1},n),s=io(i.refined,i.extra,"",t.allDay,!0,n);return{def:s,ui:Nd(s,e),instance:Lo(s.defId,t.range),range:t.range,isStart:!0,isEnd:!0}}function vm(t,e,n){let i=!1,s=function(p){i||(i=!0,e(p))},l=function(p){i||(i=!0,n(p))},u=t(s,l);u&&typeof u.then=="function"&&u.then(s,l)}class au extends Error{constructor(e,n){super(e),this.response=n}}function gm(t,e,n){t=t.toUpperCase();const i={method:t};return t==="GET"?e+=(e.indexOf("?")===-1?"?":"&")+new URLSearchParams(n):(i.body=new URLSearchParams(n),i.headers={"Content-Type":"application/x-www-form-urlencoded"}),fetch(e,i).then(s=>{if(s.ok)return s.json().then(l=>[l,s],()=>{throw new au("Failure parsing JSON",s)});throw new au("Request failed",s)})}let Us;function Bd(){return Us==null&&(Us=mm()),Us}function mm(){if(typeof document=="undefined")return!0;let t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.innerHTML="<table><tr><td><div></div></td></tr></table>",t.querySelector("table").style.height="100px",t.querySelector("div").style.height="100%",document.body.appendChild(t);let n=t.querySelector("div").offsetHeight>0;return document.body.removeChild(t),n}class ym extends Te{constructor(){super(...arguments),this.state={forPrint:!1},this.handleBeforePrint=()=>{ia(()=>{this.setState({forPrint:!0})})},this.handleAfterPrint=()=>{ia(()=>{this.setState({forPrint:!1})})}}render(){let{props:e}=this,{options:n}=e,{forPrint:i}=this.state,s=i||n.height==="auto"||n.contentHeight==="auto",l=!s&&n.height!=null?n.height:"",u=["fc",i?"fc-media-print":"fc-media-screen",`fc-direction-${n.direction}`,e.theme.getClass("root")];return Bd()||u.push("fc-liquid-hack"),e.children(u,l,s,i)}componentDidMount(){let{emitter:e}=this.props;e.on("_beforeprint",this.handleBeforePrint),e.on("_afterprint",this.handleAfterPrint)}componentWillUnmount(){let{emitter:e}=this.props;e.off("_beforeprint",this.handleBeforePrint),e.off("_afterprint",this.handleAfterPrint)}}class Vd{constructor(e){this.component=e.component,this.isHitComboAllowed=e.isHitComboAllowed||null}destroy(){}}function bm(t,e){return{component:t,el:e.el,useEventCenter:e.useEventCenter!=null?e.useEventCenter:!0,isHitComboAllowed:e.isHitComboAllowed||null}}const su={};class _m{getCurrentData(){return this.currentDataManager.getCurrentData()}dispatch(e){this.currentDataManager.dispatch(e)}get view(){return this.getCurrentData().viewApi}batchRendering(e){e()}updateSize(){this.trigger("_resize",!0)}setOption(e,n){this.dispatch({type:"SET_OPTION",optionName:e,rawOptionValue:n})}getOption(e){return this.currentDataManager.currentCalendarOptionsInput[e]}getAvailableLocaleCodes(){return Object.keys(this.getCurrentData().availableRawLocales)}on(e,n){let{currentDataManager:i}=this;i.currentCalendarOptionsRefiners[e]?i.emitter.on(e,n):console.warn(`Unknown listener name '${e}'`)}off(e,n){this.currentDataManager.emitter.off(e,n)}trigger(e,...n){this.currentDataManager.emitter.trigger(e,...n)}changeView(e,n){this.batchRendering(()=>{if(this.unselect(),n)if(n.start&&n.end)this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e}),this.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:n});else{let{dateEnv:i}=this.getCurrentData();this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e,dateMarker:i.createMarker(n)})}else this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e})})}zoomTo(e,n){let i=this.getCurrentData(),s;n=n||"day",s=i.viewSpecs[n]||this.getUnitViewSpec(n),this.unselect(),s?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:s.type,dateMarker:e}):this.dispatch({type:"CHANGE_DATE",dateMarker:e})}getUnitViewSpec(e){let{viewSpecs:n,toolbarConfig:i}=this.getCurrentData(),s=[].concat(i.header?i.header.viewsWithButtons:[],i.footer?i.footer.viewsWithButtons:[]),l,u;for(let p in n)s.push(p);for(l=0;l<s.length;l+=1)if(u=n[s[l]],u&&u.singleUnit===e)return u;return null}prev(){this.unselect(),this.dispatch({type:"PREV"})}next(){this.unselect(),this.dispatch({type:"NEXT"})}prevYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,-1)})}nextYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,1)})}today(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:Kr(e.calendarOptions.now,e.dateEnv)})}gotoDate(e){let n=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:n.dateEnv.createMarker(e)})}incrementDate(e){let n=this.getCurrentData(),i=ye(e);i&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:n.dateEnv.add(n.currentDate,i)}))}getDate(){let e=this.getCurrentData();return e.dateEnv.toDate(e.currentDate)}formatDate(e,n){let{dateEnv:i}=this.getCurrentData();return i.format(i.createMarker(e),Be(n))}formatRange(e,n,i){let{dateEnv:s}=this.getCurrentData();return s.formatRange(s.createMarker(e),s.createMarker(n),Be(i),i)}formatIso(e,n){let{dateEnv:i}=this.getCurrentData();return i.formatIso(i.createMarker(e),{omitTime:n})}select(e,n){let i;n==null?e.start!=null?i=e:i={start:e,end:null}:i={start:e,end:n};let s=this.getCurrentData(),l=dm(i,s.dateEnv,ye({days:1}));l&&(this.dispatch({type:"SELECT_DATES",selection:l}),Jg(l,null,s))}unselect(e){let n=this.getCurrentData();n.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),Kg(e,n))}addEvent(e,n){if(e instanceof bt){let u=e._def,p=e._instance;return this.getCurrentData().eventStore.defs[u.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:ao({def:u,instance:p})}),this.triggerEventAdd(e)),e}let i=this.getCurrentData(),s;if(n instanceof cr)s=n.internalEventSource;else if(typeof n=="boolean")n&&([s]=_o(i.eventSources));else if(n!=null){let u=this.getEventSourceById(n);if(!u)return console.warn(`Could not find an event source with ID "${n}"`),null;s=u.internalEventSource}let l=xd(e,s,i,!1);if(l){let u=new bt(i,l.def,l.def.recurringDef?null:l.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:ao(l)}),this.triggerEventAdd(u),u}return null}triggerEventAdd(e){let{emitter:n}=this.getCurrentData();n.trigger("eventAdd",{event:e,relatedEvents:[],revert:()=>{this.dispatch({type:"REMOVE_EVENTS",eventStore:Md(e)})}})}getEventById(e){let n=this.getCurrentData(),{defs:i,instances:s}=n.eventStore;e=String(e);for(let l in i){let u=i[l];if(u.publicId===e){if(u.recurringDef)return new bt(n,u,null);for(let p in s){let h=s[p];if(h.defId===u.defId)return new bt(n,u,h)}}}return null}getEvents(){let e=this.getCurrentData();return So(e.eventStore,e)}removeAllEvents(){this.dispatch({type:"REMOVE_ALL_EVENTS"})}getEventSources(){let e=this.getCurrentData(),n=e.eventSources,i=[];for(let s in n)i.push(new cr(e,n[s]));return i}getEventSourceById(e){let n=this.getCurrentData(),i=n.eventSources;e=String(e);for(let s in i)if(i[s].publicId===e)return new cr(n,i[s]);return null}addEventSource(e){let n=this.getCurrentData();if(e instanceof cr)return n.eventSources[e.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[e.internalEventSource]}),e;let i=Td(e,n);return i?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[i]}),new cr(n,i)):null}removeAllEventSources(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})}refetchEvents(){this.dispatch({type:"FETCH_EVENT_SOURCES",isRefetch:!0})}scrollToTime(e){let n=ye(e);n&&this.trigger("_scrollRequest",{time:n})}}function wm(t,e){let n={left:Math.max(t.left,e.left),right:Math.min(t.right,e.right),top:Math.max(t.top,e.top),bottom:Math.min(t.bottom,e.bottom)};return n.left<n.right&&n.top<n.bottom?n:!1}function Fd(t,e,n,i){return{dow:t.getUTCDay(),isDisabled:!!(i&&!yn(i.activeRange,t)),isOther:!!(i&&!yn(i.currentRange,t)),isToday:!!(e&&yn(e,t)),isPast:!!(n?t<n:e&&t<e.start),isFuture:!!(n?t>n:e&&t>=e.end)}}function xo(t,e){let n=["fc-day",`fc-day-${Sv[t.dow]}`];return t.isDisabled?n.push("fc-day-disabled"):(t.isToday&&(n.push("fc-day-today"),n.push(e.getClass("today"))),t.isPast&&n.push("fc-day-past"),t.isFuture&&n.push("fc-day-future"),t.isOther&&n.push("fc-day-other")),n}const Lm=Be({year:"numeric",month:"long",day:"numeric"}),Am=Be({week:"long"});function oo(t,e,n="day",i=!0){const{dateEnv:s,options:l,calendarApi:u}=t;let p=s.format(e,n==="week"?Am:Lm);if(l.navLinks){let h=s.toDate(e);const y=g=>{let S=n==="day"?l.navLinkDayClick:n==="week"?l.navLinkWeekClick:null;typeof S=="function"?S.call(u,s.toDate(e),g):(typeof S=="string"&&(n=S),u.zoomTo(e,n))};return Object.assign({title:Pr(l.navLinkHint,[p,h],p),"data-navlink":""},i?hd(y):{onClick:y})}return{"aria-label":p}}let zs;function Cm(){return zs||(zs=Em()),zs}function Em(){let t=document.createElement("div");t.style.overflow="scroll",t.style.position="absolute",t.style.top="-9999px",t.style.left="-9999px",document.body.appendChild(t);let e=Sm(t);return document.body.removeChild(t),e}function Sm(t){return{x:t.offsetHeight-t.clientHeight,y:t.offsetWidth-t.clientWidth}}function xm(t){let e=Dm(t),n=t.getBoundingClientRect();for(let i of e){let s=wm(n,i.getBoundingClientRect());if(s)n=s;else return null}return n}function Dm(t){let e=[];for(;t instanceof HTMLElement;){let n=window.getComputedStyle(t);if(n.position==="fixed")break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&e.push(t),t=t.parentNode}return e}class oa{constructor(e,n,i,s){this.els=n;let l=this.originClientRect=e.getBoundingClientRect();i&&this.buildElHorizontals(l.left),s&&this.buildElVerticals(l.top)}buildElHorizontals(e){let n=[],i=[];for(let s of this.els){let l=s.getBoundingClientRect();n.push(l.left-e),i.push(l.right-e)}this.lefts=n,this.rights=i}buildElVerticals(e){let n=[],i=[];for(let s of this.els){let l=s.getBoundingClientRect();n.push(l.top-e),i.push(l.bottom-e)}this.tops=n,this.bottoms=i}leftToIndex(e){let{lefts:n,rights:i}=this,s=n.length,l;for(l=0;l<s;l+=1)if(e>=n[l]&&e<i[l])return l}topToIndex(e){let{tops:n,bottoms:i}=this,s=n.length,l;for(l=0;l<s;l+=1)if(e>=n[l]&&e<i[l])return l}getWidth(e){return this.rights[e]-this.lefts[e]}getHeight(e){return this.bottoms[e]-this.tops[e]}similarTo(e){return $i(this.tops||[],e.tops||[])&&$i(this.bottoms||[],e.bottoms||[])&&$i(this.lefts||[],e.lefts||[])&&$i(this.rights||[],e.rights||[])}}function $i(t,e){const n=t.length;if(n!==e.length)return!1;for(let i=0;i<n;i++)if(Math.round(t[i])!==Math.round(e[i]))return!1;return!0}class Qn extends Te{constructor(){super(...arguments),this.uid=Gn()}prepareHits(){}queryHit(e,n,i,s){return null}isValidSegDownEl(e){return!this.props.eventDrag&&!this.props.eventResize&&!tn(e,".fc-event-mirror")}isValidDateDownEl(e){return!tn(e,".fc-event:not(.fc-bg-event)")&&!tn(e,".fc-more-link")&&!tn(e,"a[data-navlink]")&&!tn(e,".fc-popover")}}class Tm{constructor(e=n=>n.thickness||1){this.getEntryThickness=e,this.strictOrder=!1,this.allowReslicing=!1,this.maxCoord=-1,this.maxStackCnt=-1,this.levelCoords=[],this.entriesByLevel=[],this.stackCnts={}}addSegs(e){let n=[];for(let i of e)this.insertEntry(i,n);return n}insertEntry(e,n){let i=this.findInsertion(e);this.isInsertionValid(i,e)?this.insertEntryAt(e,i):this.handleInvalidInsertion(i,e,n)}isInsertionValid(e,n){return(this.maxCoord===-1||e.levelCoord+this.getEntryThickness(n)<=this.maxCoord)&&(this.maxStackCnt===-1||e.stackCnt<this.maxStackCnt)}handleInvalidInsertion(e,n,i){if(this.allowReslicing&&e.touchingEntry){const s=Object.assign(Object.assign({},n),{span:Ud(n.span,e.touchingEntry.span)});i.push(s),this.splitEntry(n,e.touchingEntry,i)}else i.push(n)}splitEntry(e,n,i){let s=e.span,l=n.span;s.start<l.start&&this.insertEntry({index:e.index,thickness:e.thickness,span:{start:s.start,end:l.start}},i),s.end>l.end&&this.insertEntry({index:e.index,thickness:e.thickness,span:{start:l.end,end:s.end}},i)}insertEntryAt(e,n){let{entriesByLevel:i,levelCoords:s}=this;n.lateral===-1?(Ws(s,n.level,n.levelCoord),Ws(i,n.level,[e])):Ws(i[n.level],n.lateral,e),this.stackCnts[Br(e)]=n.stackCnt}findInsertion(e){let{levelCoords:n,entriesByLevel:i,strictOrder:s,stackCnts:l}=this,u=n.length,p=0,h=-1,y=-1,g=null,S=0;for(let O=0;O<u;O+=1){const B=n[O];if(!s&&B>=p+this.getEntryThickness(e))break;let $=i[O],H,V=lu($,e.span.start,ou),Q=V[0]+V[1];for(;(H=$[Q])&&H.span.start<e.span.end;){let E=B+this.getEntryThickness(H);E>p&&(p=E,g=H,h=O,y=Q),E===p&&(S=Math.max(S,l[Br(H)]+1)),Q+=1}}let A=0;if(g)for(A=h+1;A<u&&n[A]<p;)A+=1;let w=-1;return A<u&&n[A]===p&&(w=lu(i[A],e.span.end,ou)[0]),{touchingLevel:h,touchingLateral:y,touchingEntry:g,stackCnt:S,levelCoord:p,level:A,lateral:w}}toRects(){let{entriesByLevel:e,levelCoords:n}=this,i=e.length,s=[];for(let l=0;l<i;l+=1){let u=e[l],p=n[l];for(let h of u)s.push(Object.assign(Object.assign({},h),{thickness:this.getEntryThickness(h),levelCoord:p}))}return s}}function ou(t){return t.span.end}function Br(t){return t.index+":"+t.span.start}function Ud(t,e){let n=Math.max(t.start,e.start),i=Math.min(t.end,e.end);return n<i?{start:n,end:i}:null}function Ws(t,e,n){t.splice(e,0,n)}function lu(t,e,n){let i=0,s=t.length;if(!s||e<n(t[i]))return[0,0];if(e>n(t[s-1]))return[s,0];for(;i<s;){let l=Math.floor(i+(s-i)/2),u=n(t[l]);if(e<u)s=l;else if(e>u)i=l+1;else return[l,1]}return[i,0]}function km(t,e){return!t||e>10?Be({weekday:"short"}):e>1?Be({weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}):Be({weekday:"long"})}const zd="fc-col-header-cell";function Wd(t){return t.text}class Rm extends Te{render(){let{dateEnv:e,options:n,theme:i,viewApi:s}=this.context,{props:l}=this,{date:u,dateProfile:p}=l,h=Fd(u,l.todayRange,null,p),y=[zd].concat(xo(h,i)),g=e.format(u,l.dayHeaderFormat),S=!h.isDisabled&&l.colCnt>1?oo(this.context,u):{},A=Object.assign(Object.assign(Object.assign({date:e.toDate(u),view:s},l.extraRenderProps),{text:g}),h);return M(sn,{elTag:"th",elClasses:y,elAttrs:Object.assign({role:"columnheader",colSpan:l.colSpan,"data-date":h.isDisabled?void 0:go(u)},l.extraDataAttrs),renderProps:A,generatorName:"dayHeaderContent",customGenerator:n.dayHeaderContent,defaultGenerator:Wd,classNameGenerator:n.dayHeaderClassNames,didMount:n.dayHeaderDidMount,willUnmount:n.dayHeaderWillUnmount},w=>M("div",{className:"fc-scrollgrid-sync-inner"},!h.isDisabled&&M(w,{elTag:"a",elAttrs:S,elClasses:["fc-col-header-cell-cushion",l.isSticky&&"fc-sticky"]})))}}const Om=Be({weekday:"long"});class Mm extends Te{render(){let{props:e}=this,{dateEnv:n,theme:i,viewApi:s,options:l}=this.context,u=Ye(new Date(2592e5),e.dow),p={dow:e.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},h=n.format(u,e.dayHeaderFormat),y=Object.assign(Object.assign(Object.assign(Object.assign({date:u},p),{view:s}),e.extraRenderProps),{text:h});return M(sn,{elTag:"th",elClasses:[zd,...xo(p,i),...e.extraClassNames||[]],elAttrs:Object.assign({role:"columnheader",colSpan:e.colSpan},e.extraDataAttrs),renderProps:y,generatorName:"dayHeaderContent",customGenerator:l.dayHeaderContent,defaultGenerator:Wd,classNameGenerator:l.dayHeaderClassNames,didMount:l.dayHeaderDidMount,willUnmount:l.dayHeaderWillUnmount},g=>M("div",{className:"fc-scrollgrid-sync-inner"},M(g,{elTag:"a",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"],elAttrs:{"aria-label":n.format(u,Om)}})))}}class Do extends ft{constructor(e,n){super(e,n),this.initialNowDate=Kr(n.options.now,n.dateEnv),this.initialNowQueriedMs=new Date().valueOf(),this.state=this.computeTiming().currentState}render(){let{props:e,state:n}=this;return e.children(n.nowDate,n.todayRange)}componentDidMount(){this.setTimeout()}componentDidUpdate(e){e.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())}componentWillUnmount(){this.clearTimeout()}computeTiming(){let{props:e,context:n}=this,i=_n(this.initialNowDate,new Date().valueOf()-this.initialNowQueriedMs),s=n.dateEnv.startOf(i,e.unit),l=n.dateEnv.add(s,ye(1,e.unit)),u=l.valueOf()-i.valueOf();return u=Math.min(1e3*60*60*24,u),{currentState:{nowDate:s,todayRange:cu(s)},nextState:{nowDate:l,todayRange:cu(l)},waitMs:u}}setTimeout(){let{nextState:e,waitMs:n}=this.computeTiming();this.timeoutId=setTimeout(()=>{this.setState(e,()=>{this.setTimeout()})},n)}clearTimeout(){this.timeoutId&&clearTimeout(this.timeoutId)}}Do.contextType=Zn;function cu(t){let e=De(t),n=Ye(e,1);return{start:e,end:n}}class Im extends Te{constructor(){super(...arguments),this.createDayHeaderFormatter=ve(Nm)}render(){let{context:e}=this,{dates:n,dateProfile:i,datesRepDistinctDays:s,renderIntro:l}=this.props,u=this.createDayHeaderFormatter(e.options.dayHeaderFormat,s,n.length);return M(Do,{unit:"day"},(p,h)=>M("tr",{role:"row"},l&&l("day"),n.map(y=>s?M(Rm,{key:y.toISOString(),date:y,dateProfile:i,todayRange:h,colCnt:n.length,dayHeaderFormat:u}):M(Mm,{key:y.getUTCDay(),dow:y.getUTCDay(),dayHeaderFormat:u}))))}}function Nm(t,e,n){return t||km(e,n)}class $m{constructor(e,n){let i=e.start,{end:s}=e,l=[],u=[],p=-1;for(;i<s;)n.isHiddenDay(i)?l.push(p+.5):(p+=1,l.push(p),u.push(i)),i=Ye(i,1);this.dates=u,this.indices=l,this.cnt=u.length}sliceRange(e){let n=this.getDateDayIndex(e.start),i=this.getDateDayIndex(Ye(e.end,-1)),s=Math.max(0,n),l=Math.min(this.cnt-1,i);return s=Math.ceil(s),l=Math.floor(l),s<=l?{firstIndex:s,lastIndex:l,isStart:n===s,isEnd:i===l}:null}getDateDayIndex(e){let{indices:n}=this,i=Math.floor(_r(this.dates[0],e));return i<0?n[0]-1:i>=n.length?n[n.length-1]+1:n[i]}}class Pm{constructor(e,n){let{dates:i}=e,s,l,u;if(n){for(l=i[0].getUTCDay(),s=1;s<i.length&&i[s].getUTCDay()!==l;s+=1);u=Math.ceil(i.length/s)}else u=1,s=i.length;this.rowCnt=u,this.colCnt=s,this.daySeries=e,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}buildCells(){let e=[];for(let n=0;n<this.rowCnt;n+=1){let i=[];for(let s=0;s<this.colCnt;s+=1)i.push(this.buildCell(n,s));e.push(i)}return e}buildCell(e,n){let i=this.daySeries.dates[e*this.colCnt+n];return{key:i.toISOString(),date:i}}buildHeaderDates(){let e=[];for(let n=0;n<this.colCnt;n+=1)e.push(this.cells[0][n].date);return e}sliceRange(e){let{colCnt:n}=this,i=this.daySeries.sliceRange(e),s=[];if(i){let{firstIndex:l,lastIndex:u}=i,p=l;for(;p<=u;){let h=Math.floor(p/n),y=Math.min((h+1)*n,u+1);s.push({row:h,firstCol:p%n,lastCol:(y-1)%n,isStart:i.isStart&&p===l,isEnd:i.isEnd&&y-1===u}),p=y}}return s}}class Hm{constructor(){this.sliceBusinessHours=ve(this._sliceBusinessHours),this.sliceDateSelection=ve(this._sliceDateSpan),this.sliceEventStore=ve(this._sliceEventStore),this.sliceEventDrag=ve(this._sliceInteraction),this.sliceEventResize=ve(this._sliceInteraction),this.forceDayIfListItem=!1}sliceProps(e,n,i,s,...l){let{eventUiBases:u}=e,p=this.sliceEventStore(e.eventStore,u,n,i,...l);return{dateSelectionSegs:this.sliceDateSelection(e.dateSelection,n,i,u,s,...l),businessHourSegs:this.sliceBusinessHours(e.businessHours,n,i,s,...l),fgEventSegs:p.fg,bgEventSegs:p.bg,eventDrag:this.sliceEventDrag(e.eventDrag,u,n,i,...l),eventResize:this.sliceEventResize(e.eventResize,u,n,i,...l),eventSelection:e.eventSelection}}sliceNowDate(e,n,i,s,...l){return this._sliceDateSpan({range:{start:e,end:_n(e,1)},allDay:!1},n,i,{},s,...l)}_sliceBusinessHours(e,n,i,s,...l){return e?this._sliceEventStore(Xr(e,Pi(n,!!i),s),{},n,i,...l).bg:[]}_sliceEventStore(e,n,i,s,...l){if(e){let u=ru(e,n,Pi(i,!!s),s);return{bg:this.sliceEventRanges(u.bg,l),fg:this.sliceEventRanges(u.fg,l)}}return{bg:[],fg:[]}}_sliceInteraction(e,n,i,s,...l){if(!e)return null;let u=ru(e.mutatedEvents,n,Pi(i,!!s),s);return{segs:this.sliceEventRanges(u.fg,l),affectedInstances:e.affectedEvents.instances,isEvent:e.isEvent}}_sliceDateSpan(e,n,i,s,l,...u){if(!e)return[];let p=Pi(n,!!i),h=vr(e.range,p);if(h){e=Object.assign(Object.assign({},e),{range:h});let y=hm(e,s,l),g=this.sliceRange(e.range,...u);for(let S of g)S.eventRange=y;return g}return[]}sliceEventRanges(e,n){let i=[];for(let s of e)i.push(...this.sliceEventRange(s,n));return i}sliceEventRange(e,n){let i=e.range;this.forceDayIfListItem&&e.ui.display==="list-item"&&(i={start:i.start,end:Ye(i.start,1)});let s=this.sliceRange(i,...n);for(let l of s)l.eventRange=e,l.isStart=e.isStart&&l.isStart,l.isEnd=e.isEnd&&l.isEnd;return s}}function Pi(t,e){let n=t.activeRange;return e?n:{start:_n(n.start,t.slotMinTime.milliseconds),end:_n(n.end,t.slotMaxTime.milliseconds-864e5)}}const Hi=/^(visible|hidden)$/;class jm extends Te{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,rn(this.props.elRef,e)}}render(){let{props:e}=this,{liquid:n,liquidIsAbsolute:i}=e,s=n&&i,l=["fc-scroller"];return n&&(i?l.push("fc-scroller-liquid-absolute"):l.push("fc-scroller-liquid")),M("div",{ref:this.handleEl,className:l.join(" "),style:{overflowX:e.overflowX,overflowY:e.overflowY,left:s&&-(e.overcomeLeft||0)||"",right:s&&-(e.overcomeRight||0)||"",bottom:s&&-(e.overcomeBottom||0)||"",marginLeft:!s&&-(e.overcomeLeft||0)||"",marginRight:!s&&-(e.overcomeRight||0)||"",marginBottom:!s&&-(e.overcomeBottom||0)||"",maxHeight:e.maxHeight||""}},e.children)}needsXScrolling(){if(Hi.test(this.props.overflowX))return!1;let{el:e}=this,n=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),{children:i}=e;for(let s=0;s<i.length;s+=1)if(i[s].getBoundingClientRect().width>n)return!0;return!1}needsYScrolling(){if(Hi.test(this.props.overflowY))return!1;let{el:e}=this,n=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),{children:i}=e;for(let s=0;s<i.length;s+=1)if(i[s].getBoundingClientRect().height>n)return!0;return!1}getXScrollbarWidth(){return Hi.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight}getYScrollbarWidth(){return Hi.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth}}class Vn{constructor(e){this.masterCallback=e,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=(n,i)=>{let{depths:s,currentMap:l}=this,u=!1,p=!1;n!==null?(u=i in l,l[i]=n,s[i]=(s[i]||0)+1,p=!0):(s[i]-=1,s[i]||(delete l[i],delete this.callbackMap[i],u=!0)),this.masterCallback&&(u&&this.masterCallback(null,String(i)),p&&this.masterCallback(n,String(i)))}}createRef(e){let n=this.callbackMap[e];return n||(n=this.callbackMap[e]=i=>{this.handleValue(i,String(e))}),n}collect(e,n,i){return ag(this.currentMap,e,n,i)}getAll(){return _o(this.currentMap)}}function Bm(t){let e=cv(t,".fc-scrollgrid-shrink"),n=0;for(let i of e)n=Math.max(n,bv(i));return Math.ceil(n)}function Gd(t,e){return t.liquid&&e.liquid}function Vm(t,e){return e.maxHeight!=null||Gd(t,e)}function Fm(t,e,n,i){let{expandRows:s}=n;return typeof e.content=="function"?e.content(n):M("table",{role:"presentation",className:[e.tableClassName,t.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:n.tableMinWidth,width:n.clientWidth,height:s?n.clientHeight:""}},n.tableColGroupNode,M(i?"thead":"tbody",{role:"presentation"},typeof e.rowContent=="function"?e.rowContent(n):e.rowContent))}function Um(t,e){return bn(t,e,jt)}function zm(t,e){let n=[];for(let i of t){let s=i.span||1;for(let l=0;l<s;l+=1)n.push(M("col",{style:{width:i.width==="shrink"?Wm(e):i.width||"",minWidth:i.minWidth||""}}))}return M("colgroup",{},...n)}function Wm(t){return t==null?4:t}function Gm(t){for(let e of t)if(e.width==="shrink")return!0;return!1}function Zm(t,e){let n=["fc-scrollgrid",e.theme.getClass("table")];return t&&n.push("fc-scrollgrid-liquid"),n}function Ym(t,e){let n=["fc-scrollgrid-section",`fc-scrollgrid-section-${t.type}`,t.className];return e&&t.liquid&&t.maxHeight==null&&n.push("fc-scrollgrid-section-liquid"),t.isSticky&&n.push("fc-scrollgrid-section-sticky"),n}function Qm(t){return M("div",{className:"fc-scrollgrid-sticky-shim",style:{width:t.clientWidth,minWidth:t.tableMinWidth}})}function uu(t){let{stickyHeaderDates:e}=t;return(e==null||e==="auto")&&(e=t.height==="auto"||t.viewHeight==="auto"),e}function qm(t){let{stickyFooterScrollbar:e}=t;return(e==null||e==="auto")&&(e=t.height==="auto"||t.viewHeight==="auto"),e}class Zd extends Te{constructor(){super(...arguments),this.processCols=ve(e=>e,Um),this.renderMicroColGroup=ve(zm),this.scrollerRefs=new Vn,this.scrollerElRefs=new Vn(this._handleScrollerEl.bind(this)),this.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},this.handleSizing=()=>{this.safeSetState(Object.assign({shrinkWidth:this.computeShrinkWidth()},this.computeScrollerDims()))}}render(){let{props:e,state:n,context:i}=this,s=e.sections||[],l=this.processCols(e.cols),u=this.renderMicroColGroup(l,n.shrinkWidth),p=Zm(e.liquid,i);e.collapsibleWidth&&p.push("fc-scrollgrid-collapsible");let h=s.length,y=0,g,S=[],A=[],w=[];for(;y<h&&(g=s[y]).type==="header";)S.push(this.renderSection(g,u,!0)),y+=1;for(;y<h&&(g=s[y]).type==="body";)A.push(this.renderSection(g,u,!1)),y+=1;for(;y<h&&(g=s[y]).type==="footer";)w.push(this.renderSection(g,u,!0)),y+=1;let O=!Bd();const B={role:"rowgroup"};return M("table",{role:"grid",className:p.join(" "),style:{height:e.height}},!!(!O&&S.length)&&M("thead",B,...S),!!(!O&&A.length)&&M("tbody",B,...A),!!(!O&&w.length)&&M("tfoot",B,...w),O&&M("tbody",B,...S,...A,...w))}renderSection(e,n,i){return"outerContent"in e?M(Ie,{key:e.key},e.outerContent):M("tr",{key:e.key,role:"presentation",className:Ym(e,this.props.liquid).join(" ")},this.renderChunkTd(e,n,e.chunk,i))}renderChunkTd(e,n,i,s){if("outerContent"in i)return i.outerContent;let{props:l}=this,{forceYScrollbars:u,scrollerClientWidths:p,scrollerClientHeights:h}=this.state,y=Vm(l,e),g=Gd(l,e),S=l.liquid?u?"scroll":y?"auto":"hidden":"visible",A=e.key,w=Fm(e,i,{tableColGroupNode:n,tableMinWidth:"",clientWidth:!l.collapsibleWidth&&p[A]!==void 0?p[A]:null,clientHeight:h[A]!==void 0?h[A]:null,expandRows:e.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:()=>{}},s);return M(s?"th":"td",{ref:i.elRef,role:"presentation"},M("div",{className:`fc-scroller-harness${g?" fc-scroller-harness-liquid":""}`},M(jm,{ref:this.scrollerRefs.createRef(A),elRef:this.scrollerElRefs.createRef(A),overflowY:S,overflowX:l.liquid?"hidden":"visible",maxHeight:e.maxHeight,liquid:g,liquidIsAbsolute:!0},w)))}_handleScrollerEl(e,n){let i=Jm(this.props.sections,n);i&&rn(i.chunk.scrollerElRef,e)}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(){this.handleSizing()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}computeShrinkWidth(){return Gm(this.props.cols)?Bm(this.scrollerElRefs.getAll()):0}computeScrollerDims(){let e=Cm(),{scrollerRefs:n,scrollerElRefs:i}=this,s=!1,l={},u={};for(let p in n.currentMap){let h=n.currentMap[p];if(h&&h.needsYScrolling()){s=!0;break}}for(let p of this.props.sections){let h=p.key,y=i.currentMap[h];if(y){let g=y.parentNode;l[h]=Math.floor(g.getBoundingClientRect().width-(s?e.y:0)),u[h]=Math.floor(g.getBoundingClientRect().height)}}return{forceYScrollbars:s,scrollerClientWidths:l,scrollerClientHeights:u}}}Zd.addStateEquality({scrollerClientWidths:jt,scrollerClientHeights:jt});function Jm(t,e){for(let n of t)if(n.key===e)return n;return null}class To extends Te{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,e&&iu(e,this.props.seg)}}render(){const{props:e,context:n}=this,{options:i}=n,{seg:s}=e,{eventRange:l}=s,{ui:u}=l,p={event:new bt(n,l.def,l.instance),view:n.viewApi,timeText:e.timeText,textColor:u.textColor,backgroundColor:u.backgroundColor,borderColor:u.borderColor,isDraggable:!e.disableDragging&&am(s,n),isStartResizable:!e.disableResizing&&sm(s,n),isEndResizable:!e.disableResizing&&om(s),isMirror:!!(e.isDragging||e.isResizing||e.isDateSelecting),isStart:!!s.isStart,isEnd:!!s.isEnd,isPast:!!e.isPast,isFuture:!!e.isFuture,isToday:!!e.isToday,isSelected:!!e.isSelected,isDragging:!!e.isDragging,isResizing:!!e.isResizing};return M(sn,Object.assign({},e,{elRef:this.handleEl,elClasses:[...lm(p),...s.eventRange.ui.classNames,...e.elClasses||[]],renderProps:p,generatorName:"eventContent",customGenerator:i.eventContent,defaultGenerator:e.defaultGenerator,classNameGenerator:i.eventClassNames,didMount:i.eventDidMount,willUnmount:i.eventWillUnmount}))}componentDidUpdate(e){this.el&&this.props.seg!==e.seg&&iu(this.el,this.props.seg)}}class Km extends Te{render(){let{props:e,context:n}=this,{options:i}=n,{seg:s}=e,{ui:l}=s.eventRange,u=i.eventTimeFormat||e.defaultTimeFormat,p=$d(s,u,n,e.defaultDisplayEventTime,e.defaultDisplayEventEnd);return M(To,Object.assign({},e,{elTag:"a",elStyle:{borderColor:l.borderColor,backgroundColor:l.backgroundColor},elAttrs:Pd(s,n),defaultGenerator:Xm,timeText:p}),(h,y)=>M(Ie,null,M(h,{elTag:"div",elClasses:["fc-event-main"],elStyle:{color:y.textColor}}),!!y.isStartResizable&&M("div",{className:"fc-event-resizer fc-event-resizer-start"}),!!y.isEndResizable&&M("div",{className:"fc-event-resizer fc-event-resizer-end"})))}}function Xm(t){return M("div",{className:"fc-event-main-frame"},t.timeText&&M("div",{className:"fc-event-time"},t.timeText),M("div",{className:"fc-event-title-container"},M("div",{className:"fc-event-title fc-sticky"},t.event.title||M(Ie,null," "))))}const e1=Be({day:"numeric"});class Yd extends Te{constructor(){super(...arguments),this.refineRenderProps=Zi(t1)}render(){let{props:e,context:n}=this,{options:i}=n,s=this.refineRenderProps({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,isMonthStart:e.isMonthStart||!1,showDayNumber:e.showDayNumber,extraRenderProps:e.extraRenderProps,viewApi:n.viewApi,dateEnv:n.dateEnv,monthStartFormat:i.monthStartFormat});return M(sn,Object.assign({},e,{elClasses:[...xo(s,n.theme),...e.elClasses||[]],elAttrs:Object.assign(Object.assign({},e.elAttrs),s.isDisabled?{}:{"data-date":go(e.date)}),renderProps:s,generatorName:"dayCellContent",customGenerator:i.dayCellContent,defaultGenerator:e.defaultGenerator,classNameGenerator:s.isDisabled?void 0:i.dayCellClassNames,didMount:i.dayCellDidMount,willUnmount:i.dayCellWillUnmount}))}}function Qd(t){return!!(t.dayCellContent||ro("dayCellContent",t))}function t1(t){let{date:e,dateEnv:n,dateProfile:i,isMonthStart:s}=t,l=Fd(e,t.todayRange,null,i),u=t.showDayNumber?n.format(e,s?t.monthStartFormat:e1):"";return Object.assign(Object.assign(Object.assign({date:n.toDate(e),view:t.viewApi},l),{isMonthStart:s,dayNumberText:u}),t.extraRenderProps)}class n1 extends Te{render(){let{props:e}=this,{seg:n}=e;return M(To,{elTag:"div",elClasses:["fc-bg-event"],elStyle:{backgroundColor:n.eventRange.ui.backgroundColor},defaultGenerator:r1,seg:n,timeText:"",isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,disableDragging:!0,disableResizing:!0})}}function r1(t){let{title:e}=t.event;return e&&M("div",{className:"fc-event-title"},t.event.title)}function i1(t){return M("div",{className:`fc-${t}`})}const a1=t=>M(Zn.Consumer,null,e=>{let{dateEnv:n,options:i}=e,{date:s}=t,l=i.weekNumberFormat||t.defaultFormat,u=n.computeWeekNumber(s),p=n.format(s,l);return M(sn,Object.assign({},t,{renderProps:{num:u,text:p,date:s},generatorName:"weekNumberContent",customGenerator:i.weekNumberContent,defaultGenerator:s1,classNameGenerator:i.weekNumberClassNames,didMount:i.weekNumberDidMount,willUnmount:i.weekNumberWillUnmount}))});function s1(t){return t.text}const Gs=10;class o1 extends Te{constructor(){super(...arguments),this.state={titleId:pa()},this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&rn(this.props.elRef,e)},this.handleDocumentMouseDown=e=>{const n=fv(e);this.rootEl.contains(n)||this.handleCloseClick()},this.handleDocumentKeyDown=e=>{e.key==="Escape"&&this.handleCloseClick()},this.handleCloseClick=()=>{let{onClose:e}=this.props;e&&e()}}render(){let{theme:e,options:n}=this.context,{props:i,state:s}=this,l=["fc-popover",e.getClass("popover")].concat(i.extraClassNames||[]);return Yh(M("div",Object.assign({},i.extraAttrs,{id:i.id,className:l.join(" "),"aria-labelledby":s.titleId,ref:this.handleRootEl}),M("div",{className:"fc-popover-header "+e.getClass("popoverHeader")},M("span",{className:"fc-popover-title",id:s.titleId},i.title),M("span",{className:"fc-popover-close "+e.getIconClass("close"),title:n.closeHint,onClick:this.handleCloseClick})),M("div",{className:"fc-popover-body "+e.getClass("popoverContent")},i.children)),i.parentEl)}componentDidMount(){document.addEventListener("mousedown",this.handleDocumentMouseDown),document.addEventListener("keydown",this.handleDocumentKeyDown),this.updateSize()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleDocumentMouseDown),document.removeEventListener("keydown",this.handleDocumentKeyDown)}updateSize(){let{isRtl:e}=this.context,{alignmentEl:n,alignGridTop:i}=this.props,{rootEl:s}=this,l=xm(n);if(l){let u=s.getBoundingClientRect(),p=i?tn(n,".fc-scrollgrid").getBoundingClientRect().top:l.top,h=e?l.right-u.width:l.left;p=Math.max(p,Gs),h=Math.min(h,document.documentElement.clientWidth-Gs-u.width),h=Math.max(h,Gs);let y=s.offsetParent.getBoundingClientRect();dv(s,{top:p-y.top,left:h-y.left})}}}class l1 extends Qn{constructor(){super(...arguments),this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,useEventCenter:!1}):this.context.unregisterInteractiveComponent(this)}}render(){let{options:e,dateEnv:n}=this.context,{props:i}=this,{startDate:s,todayRange:l,dateProfile:u}=i,p=n.format(s,e.dayPopoverFormat);return M(Yd,{elRef:this.handleRootEl,date:s,dateProfile:u,todayRange:l},(h,y,g)=>M(o1,{elRef:g.ref,id:i.id,title:p,extraClassNames:["fc-more-popover"].concat(g.className||[]),extraAttrs:g,parentEl:i.parentEl,alignmentEl:i.alignmentEl,alignGridTop:i.alignGridTop,onClose:i.onClose},Qd(e)&&M(h,{elTag:"div",elClasses:["fc-more-popover-misc"]}),i.children))}queryHit(e,n,i,s){let{rootEl:l,props:u}=this;return e>=0&&e<i&&n>=0&&n<s?{dateProfile:u.dateProfile,dateSpan:Object.assign({allDay:!u.forceTimed,range:{start:u.startDate,end:u.endDate}},u.extraDateSpan),dayEl:l,rect:{left:0,top:0,right:i,bottom:s},layer:1}:null}}class c1 extends Te{constructor(){super(...arguments),this.state={isPopoverOpen:!1,popoverId:pa()},this.handleLinkEl=e=>{this.linkEl=e,this.props.elRef&&rn(this.props.elRef,e)},this.handleClick=e=>{let{props:n,context:i}=this,{moreLinkClick:s}=i.options,l=du(n).start;function u(p){let{def:h,instance:y,range:g}=p.eventRange;return{event:new bt(i,h,y),start:i.dateEnv.toDate(g.start),end:i.dateEnv.toDate(g.end),isStart:p.isStart,isEnd:p.isEnd}}typeof s=="function"&&(s=s({date:l,allDay:!!n.allDayDate,allSegs:n.allSegs.map(u),hiddenSegs:n.hiddenSegs.map(u),jsEvent:e,view:i.viewApi})),!s||s==="popover"?this.setState({isPopoverOpen:!0}):typeof s=="string"&&i.calendarApi.zoomTo(l,s)},this.handlePopoverClose=()=>{this.setState({isPopoverOpen:!1})}}render(){let{props:e,state:n}=this;return M(Zn.Consumer,null,i=>{let{viewApi:s,options:l,calendarApi:u}=i,{moreLinkText:p}=l,{moreCnt:h}=e,y=du(e),g=typeof p=="function"?p.call(u,h):`+${h} ${p}`,S=Pr(l.moreLinkHint,[h],g),A={num:h,shortText:`+${h}`,text:g,view:s};return M(Ie,null,!!e.moreCnt&&M(sn,{elTag:e.elTag||"a",elRef:this.handleLinkEl,elClasses:[...e.elClasses||[],"fc-more-link"],elStyle:e.elStyle,elAttrs:Object.assign(Object.assign(Object.assign({},e.elAttrs),hd(this.handleClick)),{title:S,"aria-expanded":n.isPopoverOpen,"aria-controls":n.isPopoverOpen?n.popoverId:""}),renderProps:A,generatorName:"moreLinkContent",customGenerator:l.moreLinkContent,defaultGenerator:e.defaultGenerator||u1,classNameGenerator:l.moreLinkClassNames,didMount:l.moreLinkDidMount,willUnmount:l.moreLinkWillUnmount},e.children),n.isPopoverOpen&&M(l1,{id:n.popoverId,startDate:y.start,endDate:y.end,dateProfile:e.dateProfile,todayRange:e.todayRange,extraDateSpan:e.extraDateSpan,parentEl:this.parentEl,alignmentEl:e.alignmentElRef?e.alignmentElRef.current:this.linkEl,alignGridTop:e.alignGridTop,forceTimed:e.forceTimed,onClose:this.handlePopoverClose},e.popoverContent()))})}componentDidMount(){this.updateParentEl()}componentDidUpdate(){this.updateParentEl()}updateParentEl(){this.linkEl&&(this.parentEl=tn(this.linkEl,".fc-view-harness"))}}function u1(t){return t.text}function du(t){if(t.allDayDate)return{start:t.allDayDate,end:Ye(t.allDayDate,1)};let{hiddenSegs:e}=t;return{start:d1(e),end:p1(e)}}function d1(t){return t.reduce(f1).eventRange.range.start}function f1(t,e){return t.eventRange.range.start<e.eventRange.range.start?t:e}function p1(t){return t.reduce(h1).eventRange.range.end}function h1(t,e){return t.eventRange.range.end>e.eventRange.range.end?t:e}class v1{constructor(){this.handlers=[]}set(e){this.currentValue=e;for(let n of this.handlers)n(e)}subscribe(e){this.handlers.push(e),this.currentValue!==void 0&&e(this.currentValue)}}class g1 extends v1{constructor(){super(...arguments),this.map=new Map}handle(e){const{map:n}=this;let i=!1;e.isActive?(n.set(e.id,e),i=!0):n.has(e.id)&&(n.delete(e.id),i=!0),i&&this.set(n)}}const m1=[],qd={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",weekTextLong:"Week",closeHint:"Close",timeHint:"Time",eventHint:"Event",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"},Jd=Object.assign(Object.assign({},qd),{buttonHints:{prev:"Previous $0",next:"Next $0",today(t,e){return e==="day"?"Today":`This ${t}`}},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint(t){return`Show ${t} more event${t===1?"":"s"}`}});function y1(t){let e=t.length>0?t[0].code:"en",n=m1.concat(t),i={en:Jd};for(let s of n)i[s.code]=s;return{map:i,defaultCode:e}}function Kd(t,e){return typeof t=="object"&&!Array.isArray(t)?Xd(t.code,[t.code],t):b1(t,e)}function b1(t,e){let n=[].concat(t||[]),i=_1(n,e)||Jd;return Xd(t,n,i)}function _1(t,e){for(let n=0;n<t.length;n+=1){let i=t[n].toLocaleLowerCase().split("-");for(let s=i.length;s>0;s-=1){let l=i.slice(0,s).join("-");if(e[l])return e[l]}}return null}function Xd(t,e,n){let i=bo([qd,n],["buttonText"]);delete i.code;let{week:s}=i;return delete i.week,{codeArg:t,codes:e,week:s,simpleNumberFormat:new Intl.NumberFormat(t),options:i}}function qn(t){return{id:Gn(),name:t.name,premiumReleaseDate:t.premiumReleaseDate?new Date(t.premiumReleaseDate):void 0,deps:t.deps||[],reducers:t.reducers||[],isLoadingFuncs:t.isLoadingFuncs||[],contextInit:[].concat(t.contextInit||[]),eventRefiners:t.eventRefiners||{},eventDefMemberAdders:t.eventDefMemberAdders||[],eventSourceRefiners:t.eventSourceRefiners||{},isDraggableTransformers:t.isDraggableTransformers||[],eventDragMutationMassagers:t.eventDragMutationMassagers||[],eventDefMutationAppliers:t.eventDefMutationAppliers||[],dateSelectionTransformers:t.dateSelectionTransformers||[],datePointTransforms:t.datePointTransforms||[],dateSpanTransforms:t.dateSpanTransforms||[],views:t.views||{},viewPropsTransformers:t.viewPropsTransformers||[],isPropsValid:t.isPropsValid||null,externalDefTransforms:t.externalDefTransforms||[],viewContainerAppends:t.viewContainerAppends||[],eventDropTransformers:t.eventDropTransformers||[],componentInteractions:t.componentInteractions||[],calendarInteractions:t.calendarInteractions||[],themeClasses:t.themeClasses||{},eventSourceDefs:t.eventSourceDefs||[],cmdFormatter:t.cmdFormatter,recurringTypes:t.recurringTypes||[],namedTimeZonedImpl:t.namedTimeZonedImpl,initialView:t.initialView||"",elementDraggingImpl:t.elementDraggingImpl,optionChangeHandlers:t.optionChangeHandlers||{},scrollGridImpl:t.scrollGridImpl||null,listenerRefiners:t.listenerRefiners||{},optionRefiners:t.optionRefiners||{},propSetHandlers:t.propSetHandlers||{}}}function w1(t,e){let n={},i={premiumReleaseDate:void 0,reducers:[],isLoadingFuncs:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function s(l){for(let u of l){const p=u.name,h=n[p];h===void 0?(n[p]=u.id,s(u.deps),i=A1(i,u)):h!==u.id&&console.warn(`Duplicate plugin '${p}'`)}}return t&&s(t),s(e),i}function L1(){let t=[],e=[],n;return(i,s)=>((!n||!bn(i,t)||!bn(s,e))&&(n=w1(i,s)),t=i,e=s,n)}function A1(t,e){return{premiumReleaseDate:C1(t.premiumReleaseDate,e.premiumReleaseDate),reducers:t.reducers.concat(e.reducers),isLoadingFuncs:t.isLoadingFuncs.concat(e.isLoadingFuncs),contextInit:t.contextInit.concat(e.contextInit),eventRefiners:Object.assign(Object.assign({},t.eventRefiners),e.eventRefiners),eventDefMemberAdders:t.eventDefMemberAdders.concat(e.eventDefMemberAdders),eventSourceRefiners:Object.assign(Object.assign({},t.eventSourceRefiners),e.eventSourceRefiners),isDraggableTransformers:t.isDraggableTransformers.concat(e.isDraggableTransformers),eventDragMutationMassagers:t.eventDragMutationMassagers.concat(e.eventDragMutationMassagers),eventDefMutationAppliers:t.eventDefMutationAppliers.concat(e.eventDefMutationAppliers),dateSelectionTransformers:t.dateSelectionTransformers.concat(e.dateSelectionTransformers),datePointTransforms:t.datePointTransforms.concat(e.datePointTransforms),dateSpanTransforms:t.dateSpanTransforms.concat(e.dateSpanTransforms),views:Object.assign(Object.assign({},t.views),e.views),viewPropsTransformers:t.viewPropsTransformers.concat(e.viewPropsTransformers),isPropsValid:e.isPropsValid||t.isPropsValid,externalDefTransforms:t.externalDefTransforms.concat(e.externalDefTransforms),viewContainerAppends:t.viewContainerAppends.concat(e.viewContainerAppends),eventDropTransformers:t.eventDropTransformers.concat(e.eventDropTransformers),calendarInteractions:t.calendarInteractions.concat(e.calendarInteractions),componentInteractions:t.componentInteractions.concat(e.componentInteractions),themeClasses:Object.assign(Object.assign({},t.themeClasses),e.themeClasses),eventSourceDefs:t.eventSourceDefs.concat(e.eventSourceDefs),cmdFormatter:e.cmdFormatter||t.cmdFormatter,recurringTypes:t.recurringTypes.concat(e.recurringTypes),namedTimeZonedImpl:e.namedTimeZonedImpl||t.namedTimeZonedImpl,initialView:t.initialView||e.initialView,elementDraggingImpl:t.elementDraggingImpl||e.elementDraggingImpl,optionChangeHandlers:Object.assign(Object.assign({},t.optionChangeHandlers),e.optionChangeHandlers),scrollGridImpl:e.scrollGridImpl||t.scrollGridImpl,listenerRefiners:Object.assign(Object.assign({},t.listenerRefiners),e.listenerRefiners),optionRefiners:Object.assign(Object.assign({},t.optionRefiners),e.optionRefiners),propSetHandlers:Object.assign(Object.assign({},t.propSetHandlers),e.propSetHandlers)}}function C1(t,e){return t===void 0?e:e===void 0?t:new Date(Math.max(t.valueOf(),e.valueOf()))}class wn extends Jr{}wn.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"};wn.prototype.baseIconClass="fc-icon";wn.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"};wn.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"};wn.prototype.iconOverrideOption="buttonIcons";wn.prototype.iconOverrideCustomButtonOption="icon";wn.prototype.iconOverridePrefix="fc-icon-";function E1(t,e){let n={},i;for(i in t)lo(i,n,t,e);for(i in e)lo(i,n,t,e);return n}function lo(t,e,n,i){if(e[t])return e[t];let s=S1(t,e,n,i);return s&&(e[t]=s),s}function S1(t,e,n,i){let s=n[t],l=i[t],u=g=>s&&s[g]!==null?s[g]:l&&l[g]!==null?l[g]:null,p=u("component"),h=u("superType"),y=null;if(h){if(h===t)throw new Error("Can't have a custom view type that references itself");y=lo(h,e,n,i)}return!p&&y&&(p=y.component),p?{type:t,component:p,defaults:Object.assign(Object.assign({},y?y.defaults:{}),s?s.rawOptions:{}),overrides:Object.assign(Object.assign({},y?y.overrides:{}),l?l.rawOptions:{})}:null}function fu(t){return qr(t,x1)}function x1(t){let e=typeof t=="function"?{component:t}:t,{component:n}=e;return e.content?n=pu(e):n&&!(n.prototype instanceof Te)&&(n=pu(Object.assign(Object.assign({},e),{content:n}))),{superType:e.type,component:n,rawOptions:e}}function pu(t){return e=>M(Zn.Consumer,null,n=>M(sn,{elTag:"div",elClasses:Ld(n.viewSpec),renderProps:Object.assign(Object.assign({},e),{nextDayThreshold:n.options.nextDayThreshold}),generatorName:void 0,customGenerator:t.content,classNameGenerator:t.classNames,didMount:t.didMount,willUnmount:t.willUnmount}))}function D1(t,e,n,i){let s=fu(t),l=fu(e.views),u=E1(s,l);return qr(u,p=>T1(p,l,e,n,i))}function T1(t,e,n,i,s){let l=t.overrides.duration||t.defaults.duration||i.duration||n.duration,u=null,p="",h="",y={};if(l&&(u=k1(l),u)){let A=to(u);p=A.unit,A.value===1&&(h=p,y=e[p]?e[p].rawOptions:{})}let g=A=>{let w=A.buttonText||{},O=t.defaults.buttonTextKey;return O!=null&&w[O]!=null?w[O]:w[t.type]!=null?w[t.type]:w[h]!=null?w[h]:null},S=A=>{let w=A.buttonHints||{},O=t.defaults.buttonTextKey;return O!=null&&w[O]!=null?w[O]:w[t.type]!=null?w[t.type]:w[h]!=null?w[h]:null};return{type:t.type,component:t.component,duration:u,durationUnit:p,singleUnit:h,optionDefaults:t.defaults,optionOverrides:Object.assign(Object.assign({},y),t.overrides),buttonTextOverride:g(i)||g(n)||t.overrides.buttonText,buttonTextDefault:g(s)||t.defaults.buttonText||g(Hr)||t.type,buttonTitleOverride:S(i)||S(n)||t.overrides.buttonHint,buttonTitleDefault:S(s)||t.defaults.buttonHint||S(Hr)}}let hu={};function k1(t){let e=JSON.stringify(t),n=hu[e];return n===void 0&&(n=ye(t),hu[e]=n),n}function R1(t,e){switch(e.type){case"CHANGE_VIEW_TYPE":t=e.viewType}return t}function O1(t,e){switch(e.type){case"SET_OPTION":return Object.assign(Object.assign({},t),{[e.optionName]:e.rawOptionValue});default:return t}}function M1(t,e,n,i){let s;switch(e.type){case"CHANGE_VIEW_TYPE":return i.build(e.dateMarker||n);case"CHANGE_DATE":return i.build(e.dateMarker);case"PREV":if(s=i.buildPrev(t,n),s.isValid)return s;break;case"NEXT":if(s=i.buildNext(t,n),s.isValid)return s;break}return t}function I1(t,e,n){let i=e?e.activeRange:null;return tf({},V1(t,n),i,n)}function N1(t,e,n,i){let s=n?n.activeRange:null;switch(e.type){case"ADD_EVENT_SOURCES":return tf(t,e.sources,s,i);case"REMOVE_EVENT_SOURCE":return P1(t,e.sourceId);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?nf(t,s,i):t;case"FETCH_EVENT_SOURCES":return ko(t,e.sourceIds?md(e.sourceIds):rf(t,i),s,e.isRefetch||!1,i);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return B1(t,e.sourceId,e.fetchId,e.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return t}}function $1(t,e,n){let i=e?e.activeRange:null;return ko(t,rf(t,n),i,!0,n)}function ef(t){for(let e in t)if(t[e].isFetching)return!0;return!1}function tf(t,e,n,i){let s={};for(let l of e)s[l.sourceId]=l;return n&&(s=nf(s,n,i)),Object.assign(Object.assign({},t),s)}function P1(t,e){return hr(t,n=>n.sourceId!==e)}function nf(t,e,n){return ko(t,hr(t,i=>H1(i,e,n)),e,!1,n)}function H1(t,e,n){return af(t,n)?!n.options.lazyFetching||!t.fetchRange||t.isFetching||e.start<t.fetchRange.start||e.end>t.fetchRange.end:!t.latestFetchId}function ko(t,e,n,i,s){let l={};for(let u in t){let p=t[u];e[u]?l[u]=j1(p,n,i,s):l[u]=p}return l}function j1(t,e,n,i){let{options:s,calendarApi:l}=i,u=i.pluginHooks.eventSourceDefs[t.sourceDefId],p=Gn();return u.fetch({eventSource:t,range:e,isRefetch:n,context:i},h=>{let{rawEvents:y}=h;s.eventSourceSuccess&&(y=s.eventSourceSuccess.call(l,y,h.response)||y),t.success&&(y=t.success.call(l,y,h.response)||y),i.dispatch({type:"RECEIVE_EVENTS",sourceId:t.sourceId,fetchId:p,fetchRange:e,rawEvents:y})},h=>{let y=!1;s.eventSourceFailure&&(s.eventSourceFailure.call(l,h),y=!0),t.failure&&(t.failure(h),y=!0),y||console.warn(h.message,h),i.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:t.sourceId,fetchId:p,fetchRange:e,error:h})}),Object.assign(Object.assign({},t),{isFetching:!0,latestFetchId:p})}function B1(t,e,n,i){let s=t[e];return s&&n===s.latestFetchId?Object.assign(Object.assign({},t),{[e]:Object.assign(Object.assign({},s),{isFetching:!1,fetchRange:i})}):t}function rf(t,e){return hr(t,n=>af(n,e))}function V1(t,e){let n=kd(e),i=[].concat(t.eventSources||[]),s=[];t.initialEvents&&i.unshift(t.initialEvents),t.events&&i.unshift(t.events);for(let l of i){let u=Td(l,e,n);u&&s.push(u)}return s}function af(t,e){return!e.pluginHooks.eventSourceDefs[t.sourceDefId].ignoreRange}function F1(t,e){switch(e.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return e.selection;default:return t}}function U1(t,e){switch(e.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return e.eventInstanceId;default:return t}}function z1(t,e){let n;switch(e.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return n=e.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return t}}function W1(t,e){let n;switch(e.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return n=e.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return t}}function G1(t,e,n,i,s){let l=t.headerToolbar?vu(t.headerToolbar,t,e,n,i,s):null,u=t.footerToolbar?vu(t.footerToolbar,t,e,n,i,s):null;return{header:l,footer:u}}function vu(t,e,n,i,s,l){let u={},p=[],h=!1;for(let y in t){let g=t[y],S=Z1(g,e,n,i,s,l);u[y]=S.widgets,p.push(...S.viewsWithButtons),h=h||S.hasTitle}return{sectionWidgets:u,viewsWithButtons:p,hasTitle:h}}function Z1(t,e,n,i,s,l){let u=e.direction==="rtl",p=e.customButtons||{},h=n.buttonText||{},y=e.buttonText||{},g=n.buttonHints||{},S=e.buttonHints||{},A=t?t.split(" "):[],w=[],O=!1;return{widgets:A.map($=>$.split(",").map(H=>{if(H==="title")return O=!0,{buttonName:H};let V,Q,E,X,z,q;if(V=p[H])E=Y=>{V.click&&V.click.call(Y.target,Y,Y.target)},(X=i.getCustomButtonIconClass(V))||(X=i.getIconClass(H,u))||(z=V.text),q=V.hint||V.text;else if(Q=s[H]){w.push(H),E=()=>{l.changeView(H)},(z=Q.buttonTextOverride)||(X=i.getIconClass(H,u))||(z=Q.buttonTextDefault);let Y=Q.buttonTextOverride||Q.buttonTextDefault;q=Pr(Q.buttonTitleOverride||Q.buttonTitleDefault||e.viewHint,[Y,H],Y)}else if(l[H])if(E=()=>{l[H]()},(z=h[H])||(X=i.getIconClass(H,u))||(z=y[H]),H==="prevYear"||H==="nextYear"){let Y=H==="prevYear"?"prev":"next";q=Pr(g[Y]||S[Y],[y.year||"year","year"],y[H])}else q=Y=>Pr(g[H]||S[H],[y[Y]||Y,Y],y[H]);return{buttonName:H,buttonClick:E,buttonIcon:X,buttonText:z,buttonHint:q}})),viewsWithButtons:w,hasTitle:O}}class Y1{constructor(e,n,i){this.type=e,this.getCurrentData=n,this.dateEnv=i}get calendar(){return this.getCurrentData().calendarApi}get title(){return this.getCurrentData().viewTitle}get activeStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)}get activeEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)}get currentStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)}get currentEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)}getOption(e){return this.getCurrentData().options[e]}}let Q1={ignoreRange:!0,parseMeta(t){return Array.isArray(t.events)?t.events:null},fetch(t,e){e({rawEvents:t.eventSource.meta})}};const q1=qn({name:"array-event-source",eventSourceDefs:[Q1]});let J1={parseMeta(t){return typeof t.events=="function"?t.events:null},fetch(t,e,n){const{dateEnv:i}=t.context,s=t.eventSource.meta;vm(s.bind(null,Hd(t.range,i)),l=>e({rawEvents:l}),n)}};const K1=qn({name:"func-event-source",eventSourceDefs:[J1]}),X1={method:String,extraParams:I,startParam:String,endParam:String,timeZoneParam:String};let ey={parseMeta(t){return t.url&&(t.format==="json"||!t.format)?{url:t.url,format:"json",method:(t.method||"GET").toUpperCase(),extraParams:t.extraParams,startParam:t.startParam,endParam:t.endParam,timeZoneParam:t.timeZoneParam}:null},fetch(t,e,n){const{meta:i}=t.eventSource,s=ny(i,t.range,t.context);gm(i.method,i.url,s).then(([l,u])=>{e({rawEvents:l,response:u})},n)}};const ty=qn({name:"json-event-source",eventSourceRefiners:X1,eventSourceDefs:[ey]});function ny(t,e,n){let{dateEnv:i,options:s}=n,l,u,p,h,y={};return l=t.startParam,l==null&&(l=s.startParam),u=t.endParam,u==null&&(u=s.endParam),p=t.timeZoneParam,p==null&&(p=s.timeZoneParam),typeof t.extraParams=="function"?h=t.extraParams():h=t.extraParams||{},Object.assign(y,h),y[l]=i.formatIso(e.start),y[u]=i.formatIso(e.end),i.timeZone!=="local"&&(y[p]=i.timeZone),y}const ry={daysOfWeek:I,startTime:ye,endTime:ye,duration:ye,startRecur:I,endRecur:I};let iy={parse(t,e){if(t.daysOfWeek||t.startTime||t.endTime||t.startRecur||t.endRecur){let n={daysOfWeek:t.daysOfWeek||null,startTime:t.startTime||null,endTime:t.endTime||null,startRecur:t.startRecur?e.createMarker(t.startRecur):null,endRecur:t.endRecur?e.createMarker(t.endRecur):null},i;return t.duration&&(i=t.duration),!i&&t.startTime&&t.endTime&&(i=Av(t.endTime,t.startTime)),{allDayGuess:!t.startTime&&!t.endTime,duration:i,typeData:n}}return null},expand(t,e,n){let i=vr(e,{start:t.startRecur,end:t.endRecur});return i?sy(t.daysOfWeek,t.startTime,i,n):[]}};const ay=qn({name:"simple-recurring-event",recurringTypes:[iy],eventRefiners:ry});function sy(t,e,n,i){let s=t?md(t):null,l=De(n.start),u=n.end,p=[];for(;l<u;){let h;(!s||s[l.getUTCDay()])&&(e?h=i.add(l,e):h=l,p.push(h)),l=Ye(l,1)}return p}const oy=qn({name:"change-handler",optionChangeHandlers:{events(t,e){gu([t],e)},eventSources:gu}});function gu(t,e){let n=_o(e.getCurrentData().eventSources);if(n.length===1&&t.length===1&&Array.isArray(n[0]._raw)&&Array.isArray(t[0])){e.dispatch({type:"RESET_RAW_EVENTS",sourceId:n[0].sourceId,rawEvents:t[0]});return}let i=[];for(let s of t){let l=!1;for(let u=0;u<n.length;u+=1)if(n[u]._raw===s){n.splice(u,1),l=!0;break}l||i.push(s)}for(let s of n)e.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:s.sourceId});for(let s of i)e.calendarApi.addEventSource(s)}function ly(t,e){e.emitter.trigger("datesSet",Object.assign(Object.assign({},Hd(t.activeRange,e.dateEnv)),{view:e.viewApi}))}function cy(t,e){let{emitter:n}=e;n.hasHandlers("eventsSet")&&n.trigger("eventsSet",So(t,e))}const uy=[q1,K1,ty,ay,oy,qn({name:"misc",isLoadingFuncs:[t=>ef(t.eventSources)],propSetHandlers:{dateProfile:ly,eventStore:cy}})];class dy{constructor(e,n){this.runTaskOption=e,this.drainedOption=n,this.queue=[],this.delayedRunner=new vo(this.drain.bind(this))}request(e,n){this.queue.push(e),this.delayedRunner.request(n)}pause(e){this.delayedRunner.pause(e)}resume(e,n){this.delayedRunner.resume(e,n)}drain(){let{queue:e}=this;for(;e.length;){let n=[],i;for(;i=e.shift();)this.runTask(i),n.push(i);this.drained(n)}}runTask(e){this.runTaskOption&&this.runTaskOption(e)}drained(e){this.drainedOption&&this.drainedOption(e)}}function fy(t,e,n){let i;return/^(year|month)$/.test(t.currentRangeUnit)?i=t.currentRange:i=t.activeRange,n.formatRange(i.start,i.end,Be(e.titleFormat||py(t)),{isEndExclusive:t.isRangeAllDay,defaultSeparator:e.titleRangeSeparator})}function py(t){let{currentRangeUnit:e}=t;if(e==="year")return{year:"numeric"};if(e==="month")return{year:"numeric",month:"long"};let n=ea(t.currentRange.start,t.currentRange.end);return n!==null&&n>1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}class hy{constructor(e){this.computeCurrentViewData=ve(this._computeCurrentViewData),this.organizeRawLocales=ve(y1),this.buildLocale=ve(Kd),this.buildPluginHooks=L1(),this.buildDateEnv=ve(vy),this.buildTheme=ve(gy),this.parseToolbars=ve(G1),this.buildViewSpecs=ve(D1),this.buildDateProfileGenerator=Zi(my),this.buildViewApi=ve(yy),this.buildViewUiProps=Zi(wy),this.buildEventUiBySource=ve(by,jt),this.buildEventUiBases=ve(_y),this.parseContextBusinessHours=Zi(Ly),this.buildTitle=ve(fy),this.emitter=new Wg,this.actionRunner=new dy(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.optionsForRefining=[],this.optionsForHandling=[],this.getCurrentData=()=>this.data,this.dispatch=A=>{this.actionRunner.request(A)},this.props=e,this.actionRunner.pause();let n={},i=this.computeOptionsData(e.optionOverrides,n,e.calendarApi),s=i.calendarOptions.initialView||i.pluginHooks.initialView,l=this.computeCurrentViewData(s,i,e.optionOverrides,n);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(l.options);let u=Eg(i.calendarOptions,i.dateEnv),p=l.dateProfileGenerator.build(u);yn(p.activeRange,u)||(u=p.currentRange.start);let h={dateEnv:i.dateEnv,options:i.calendarOptions,pluginHooks:i.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData};for(let A of i.pluginHooks.contextInit)A(h);let y=I1(i.calendarOptions,p,h),g={dynamicOptionOverrides:n,currentViewType:s,currentDate:u,dateProfile:p,businessHours:this.parseContextBusinessHours(h),eventSources:y,eventUiBases:{},eventStore:zn(),renderableEventStore:zn(),dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(h).selectionConfig},S=Object.assign(Object.assign({},h),g);for(let A of i.pluginHooks.reducers)Object.assign(g,A(null,null,S));Zs(g,h)&&this.emitter.trigger("loading",!0),this.state=g,this.updateData(),this.actionRunner.resume()}resetOptions(e,n){let{props:i}=this;n===void 0?i.optionOverrides=e:(i.optionOverrides=Object.assign(Object.assign({},i.optionOverrides||{}),e),this.optionsForRefining.push(...n)),(n===void 0||n.length)&&this.actionRunner.request({type:"NOTHING"})}_handleAction(e){let{props:n,state:i,emitter:s}=this,l=O1(i.dynamicOptionOverrides,e),u=this.computeOptionsData(n.optionOverrides,l,n.calendarApi),p=R1(i.currentViewType,e),h=this.computeCurrentViewData(p,u,n.optionOverrides,l);n.calendarApi.currentDataManager=this,s.setThisContext(n.calendarApi),s.setOptions(h.options);let y={dateEnv:u.dateEnv,options:u.calendarOptions,pluginHooks:u.pluginHooks,calendarApi:n.calendarApi,dispatch:this.dispatch,emitter:s,getCurrentData:this.getCurrentData},{currentDate:g,dateProfile:S}=i;this.data&&this.data.dateProfileGenerator!==h.dateProfileGenerator&&(S=h.dateProfileGenerator.build(g)),g=Cg(g,e),S=M1(S,e,g,h.dateProfileGenerator),(e.type==="PREV"||e.type==="NEXT"||!yn(S.currentRange,g))&&(g=S.currentRange.start);let A=N1(i.eventSources,e,S,y),w=Bg(i.eventStore,e,A,S,y),B=ef(A)&&!h.options.progressiveEventRendering&&i.renderableEventStore||w,{eventUiSingleBase:$,selectionConfig:H}=this.buildViewUiProps(y),V=this.buildEventUiBySource(A),Q=this.buildEventUiBases(B.defs,$,V),E={dynamicOptionOverrides:l,currentViewType:p,currentDate:g,dateProfile:S,eventSources:A,eventStore:w,renderableEventStore:B,selectionConfig:H,eventUiBases:Q,businessHours:this.parseContextBusinessHours(y),dateSelection:F1(i.dateSelection,e),eventSelection:U1(i.eventSelection,e),eventDrag:z1(i.eventDrag,e),eventResize:W1(i.eventResize,e)},X=Object.assign(Object.assign({},y),E);for(let Y of u.pluginHooks.reducers)Object.assign(E,Y(i,e,X));let z=Zs(i,y),q=Zs(E,y);!z&&q?s.trigger("loading",!0):z&&!q&&s.trigger("loading",!1),this.state=E,n.onAction&&n.onAction(e)}updateData(){let{props:e,state:n}=this,i=this.data,s=this.computeOptionsData(e.optionOverrides,n.dynamicOptionOverrides,e.calendarApi),l=this.computeCurrentViewData(n.currentViewType,s,e.optionOverrides,n.dynamicOptionOverrides),u=this.data=Object.assign(Object.assign(Object.assign({viewTitle:this.buildTitle(n.dateProfile,l.options,s.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},s),l),n),p=s.pluginHooks.optionChangeHandlers,h=i&&i.calendarOptions,y=s.calendarOptions;if(h&&h!==y){h.timeZone!==y.timeZone&&(n.eventSources=u.eventSources=$1(u.eventSources,n.dateProfile,u),n.eventStore=u.eventStore=tu(u.eventStore,i.dateEnv,u.dateEnv),n.renderableEventStore=u.renderableEventStore=tu(u.renderableEventStore,i.dateEnv,u.dateEnv));for(let g in p)(this.optionsForHandling.indexOf(g)!==-1||h[g]!==y[g])&&p[g](y[g],u)}this.optionsForHandling=[],e.onData&&e.onData(u)}computeOptionsData(e,n,i){if(!this.optionsForRefining.length&&e===this.stableOptionOverrides&&n===this.stableDynamicOptionOverrides)return this.stableCalendarOptionsData;let{refinedOptions:s,pluginHooks:l,localeDefaults:u,availableLocaleData:p,extra:h}=this.processRawCalendarOptions(e,n);mu(h);let y=this.buildDateEnv(s.timeZone,s.locale,s.weekNumberCalculation,s.firstDay,s.weekText,l,p,s.defaultRangeSeparator),g=this.buildViewSpecs(l.views,this.stableOptionOverrides,this.stableDynamicOptionOverrides,u),S=this.buildTheme(s,l),A=this.parseToolbars(s,this.stableOptionOverrides,S,g,i);return this.stableCalendarOptionsData={calendarOptions:s,pluginHooks:l,dateEnv:y,viewSpecs:g,theme:S,toolbarConfig:A,localeDefaults:u,availableRawLocales:p.map}}processRawCalendarOptions(e,n){let{locales:i,locale:s}=Vs([Hr,e,n]),l=this.organizeRawLocales(i),u=l.map,p=this.buildLocale(s||l.defaultCode,u).options,h=this.buildPluginHooks(e.plugins||[],uy),y=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Yc),Qc),qc),h.listenerRefiners),h.optionRefiners),g={},S=Vs([Hr,p,e,n]),A={},w=this.currentCalendarOptionsInput,O=this.currentCalendarOptionsRefined,B=!1;for(let $ in S)this.optionsForRefining.indexOf($)===-1&&(S[$]===w[$]||$n[$]&&$ in w&&$n[$](w[$],S[$]))?A[$]=O[$]:y[$]?(A[$]=y[$](S[$]),B=!0):g[$]=w[$];return B&&(this.currentCalendarOptionsInput=S,this.currentCalendarOptionsRefined=A,this.stableOptionOverrides=e,this.stableDynamicOptionOverrides=n),this.optionsForHandling.push(...this.optionsForRefining),this.optionsForRefining=[],{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:h,availableLocaleData:l,localeDefaults:p,extra:g}}_computeCurrentViewData(e,n,i,s){let l=n.viewSpecs[e];if(!l)throw new Error(`viewType "${e}" is not available. Please make sure you've loaded all neccessary plugins`);let{refinedOptions:u,extra:p}=this.processRawViewOptions(l,n.pluginHooks,n.localeDefaults,i,s);mu(p);let h=this.buildDateProfileGenerator({dateProfileGeneratorClass:l.optionDefaults.dateProfileGeneratorClass,duration:l.duration,durationUnit:l.durationUnit,usesMinMaxTime:l.optionDefaults.usesMinMaxTime,dateEnv:n.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:u.slotMinTime,slotMaxTime:u.slotMaxTime,showNonCurrentDates:u.showNonCurrentDates,dayCount:u.dayCount,dateAlignment:u.dateAlignment,dateIncrement:u.dateIncrement,hiddenDays:u.hiddenDays,weekends:u.weekends,nowInput:u.now,validRangeInput:u.validRange,visibleRangeInput:u.visibleRange,fixedWeekCount:u.fixedWeekCount}),y=this.buildViewApi(e,this.getCurrentData,n.dateEnv);return{viewSpec:l,options:u,dateProfileGenerator:h,viewApi:y}}processRawViewOptions(e,n,i,s,l){let u=Vs([Hr,e.optionDefaults,i,s,e.optionOverrides,l]),p=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Yc),Qc),qc),tg),n.listenerRefiners),n.optionRefiners),h={},y=this.currentViewOptionsInput,g=this.currentViewOptionsRefined,S=!1,A={};for(let w in u)u[w]===y[w]||$n[w]&&$n[w](u[w],y[w])?h[w]=g[w]:(u[w]===this.currentCalendarOptionsInput[w]||$n[w]&&$n[w](u[w],this.currentCalendarOptionsInput[w])?w in this.currentCalendarOptionsRefined&&(h[w]=this.currentCalendarOptionsRefined[w]):p[w]?h[w]=p[w](u[w]):A[w]=u[w],S=!0);return S&&(this.currentViewOptionsInput=u,this.currentViewOptionsRefined=h),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:A}}}function vy(t,e,n,i,s,l,u,p){let h=Kd(e||u.defaultCode,u.map);return new dg({calendarSystem:"gregory",timeZone:t,namedTimeZoneImpl:l.namedTimeZonedImpl,locale:h,weekNumberCalculation:n,firstDay:i,weekText:s,cmdFormatter:l.cmdFormatter,defaultSeparator:p})}function gy(t,e){let n=e.themeClasses[t.themeSystem]||wn;return new n(t)}function my(t){let e=t.dateProfileGeneratorClass||Ed;return new e(t)}function yy(t,e,n){return new Y1(t,e,n)}function by(t){return qr(t,e=>e.ui)}function _y(t,e,n){let i={"":e};for(let s in t){let l=t[s];l.sourceId&&n[l.sourceId]&&(i[s]=n[l.sourceId])}return i}function wy(t){let{options:e}=t;return{eventUiSingleBase:sa({display:e.eventDisplay,editable:e.editable,startEditable:e.eventStartEditable,durationEditable:e.eventDurationEditable,constraint:e.eventConstraint,overlap:typeof e.eventOverlap=="boolean"?e.eventOverlap:void 0,allow:e.eventAllow,backgroundColor:e.eventBackgroundColor,borderColor:e.eventBorderColor,textColor:e.eventTextColor,color:e.eventColor},t),selectionConfig:sa({constraint:e.selectConstraint,overlap:typeof e.selectOverlap=="boolean"?e.selectOverlap:void 0,allow:e.selectAllow},t)}}function Zs(t,e){for(let n of e.pluginHooks.isLoadingFuncs)if(n(t))return!0;return!1}function Ly(t){return Qg(t.options.businessHours,t)}function mu(t,e){for(let n in t)console.warn(`Unknown option '${n}'`+(e?` for view '${e}'`:""))}class Ay extends Te{render(){let e=this.props.widgetGroups.map(n=>this.renderWidgetGroup(n));return M("div",{className:"fc-toolbar-chunk"},...e)}renderWidgetGroup(e){let{props:n}=this,{theme:i}=this.context,s=[],l=!0;for(let u of e){let{buttonName:p,buttonClick:h,buttonText:y,buttonIcon:g,buttonHint:S}=u;if(p==="title")l=!1,s.push(M("h2",{className:"fc-toolbar-title",id:n.titleId},n.title));else{let A=p===n.activeButton,w=!n.isTodayEnabled&&p==="today"||!n.isPrevEnabled&&p==="prev"||!n.isNextEnabled&&p==="next",O=[`fc-${p}-button`,i.getClass("button")];A&&O.push(i.getClass("buttonActive")),s.push(M("button",{type:"button",title:typeof S=="function"?S(n.navUnit):S,disabled:w,"aria-pressed":A,className:O.join(" "),onClick:h},y||(g?M("span",{className:g,role:"img"}):"")))}}if(s.length>1){let u=l&&i.getClass("buttonGroup")||"";return M("div",{className:u},...s)}return s[0]}}class yu extends Te{render(){let{model:e,extraClassName:n}=this.props,i=!1,s,l,u=e.sectionWidgets,p=u.center;return u.left?(i=!0,s=u.left):s=u.start,u.right?(i=!0,l=u.right):l=u.end,M("div",{className:[n||"","fc-toolbar",i?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",s||[]),this.renderSection("center",p||[]),this.renderSection("end",l||[]))}renderSection(e,n){let{props:i}=this;return M(Ay,{key:e,widgetGroups:n,title:i.title,navUnit:i.navUnit,activeButton:i.activeButton,isTodayEnabled:i.isTodayEnabled,isPrevEnabled:i.isPrevEnabled,isNextEnabled:i.isNextEnabled,titleId:i.titleId})}}class Cy extends Te{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,rn(this.props.elRef,e),this.updateAvailableWidth()},this.handleResize=()=>{this.updateAvailableWidth()}}render(){let{props:e,state:n}=this,{aspectRatio:i}=e,s=["fc-view-harness",i||e.liquid||e.height?"fc-view-harness-active":"fc-view-harness-passive"],l="",u="";return i?n.availableWidth!==null?l=n.availableWidth/i:u=`${1/i*100}%`:l=e.height||"",M("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:s.join(" "),style:{height:l,paddingBottom:u}},e.children)}componentDidMount(){this.context.addResizeHandler(this.handleResize)}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateAvailableWidth(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})}}class Ey extends Vd{constructor(e){super(e),this.handleSegClick=(n,i)=>{let{component:s}=this,{context:l}=s,u=so(i);if(u&&s.isValidSegDownEl(n.target)){let p=tn(n.target,".fc-event-forced-url"),h=p?p.querySelector("a[href]").href:"";l.emitter.trigger("eventClick",{el:i,event:new bt(s.context,u.eventRange.def,u.eventRange.instance),jsEvent:n,view:l.viewApi}),h&&!n.defaultPrevented&&(window.location.href=h)}},this.destroy=pd(e.el,"click",".fc-event",this.handleSegClick)}}class Sy extends Vd{constructor(e){super(e),this.handleEventElRemove=n=>{n===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(n,i)=>{so(i)&&(this.currentSegEl=i,this.triggerEvent("eventMouseEnter",n,i))},this.handleSegLeave=(n,i)=>{this.currentSegEl&&(this.currentSegEl=null,this.triggerEvent("eventMouseLeave",n,i))},this.removeHoverListeners=hv(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,n,i){let{component:s}=this,{context:l}=s,u=so(i);(!n||s.isValidSegDownEl(n.target))&&l.emitter.trigger(e,{el:i,event:new bt(l,u.eventRange.def,u.eventRange.instance),jsEvent:n,view:l.viewApi})}}class xy extends Yn{constructor(){super(...arguments),this.buildViewContext=ve(hg),this.buildViewPropTransformers=ve(Ty),this.buildToolbarProps=ve(Dy),this.headerRef=nn(),this.footerRef=nn(),this.interactionsStore={},this.state={viewLabelId:pa()},this.registerInteractiveComponent=(e,n)=>{let i=bm(e,n),u=[Ey,Sy].concat(this.props.pluginHooks.componentInteractions).map(p=>new p(i));this.interactionsStore[e.uid]=u,su[e.uid]=i},this.unregisterInteractiveComponent=e=>{let n=this.interactionsStore[e.uid];if(n){for(let i of n)i.destroy();delete this.interactionsStore[e.uid]}delete su[e.uid]},this.resizeRunner=new vo(()=>{this.props.emitter.trigger("_resize",!0),this.props.emitter.trigger("windowResize",{view:this.props.viewApi})}),this.handleWindowResize=e=>{let{options:n}=this.props;n.handleWindowResize&&e.target===window&&this.resizeRunner.request(n.windowResizeDelay)}}render(){let{props:e}=this,{toolbarConfig:n,options:i}=e,s=this.buildToolbarProps(e.viewSpec,e.dateProfile,e.dateProfileGenerator,e.currentDate,Kr(e.options.now,e.dateEnv),e.viewTitle),l=!1,u="",p;e.isHeightAuto||e.forPrint?u="":i.height!=null?l=!0:i.contentHeight!=null?u=i.contentHeight:p=Math.max(i.aspectRatio,.5);let h=this.buildViewContext(e.viewSpec,e.viewApi,e.options,e.dateProfileGenerator,e.dateEnv,e.theme,e.pluginHooks,e.dispatch,e.getCurrentData,e.emitter,e.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent),y=n.header&&n.header.hasTitle?this.state.viewLabelId:void 0;return M(Zn.Provider,{value:h},n.header&&M(yu,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:n.header,titleId:y},s)),M(Cy,{liquid:l,height:u,aspectRatio:p,labeledById:y},this.renderView(e),this.buildAppendContent()),n.footer&&M(yu,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:n.footer,titleId:""},s)))}componentDidMount(){let{props:e}=this;this.calendarInteractions=e.pluginHooks.calendarInteractions.map(i=>new i(e)),window.addEventListener("resize",this.handleWindowResize);let{propSetHandlers:n}=e.pluginHooks;for(let i in n)n[i](e[i],e)}componentDidUpdate(e){let{props:n}=this,{propSetHandlers:i}=n.pluginHooks;for(let s in i)n[s]!==e[s]&&i[s](n[s],n)}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(let e of this.calendarInteractions)e.destroy();this.props.emitter.trigger("_unmount")}buildAppendContent(){let{props:e}=this,n=e.pluginHooks.viewContainerAppends.map(i=>i(e));return M(Ie,{},...n)}renderView(e){let{pluginHooks:n}=e,{viewSpec:i}=e,s={dateProfile:e.dateProfile,businessHours:e.businessHours,eventStore:e.renderableEventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,isHeightAuto:e.isHeightAuto,forPrint:e.forPrint},l=this.buildViewPropTransformers(n.viewPropsTransformers);for(let p of l)Object.assign(s,p.transform(s,e));let u=i.component;return M(u,Object.assign({},s))}}function Dy(t,e,n,i,s,l){let u=n.build(s,void 0,!1),p=n.buildPrev(e,i,!1),h=n.buildNext(e,i,!1);return{title:l,activeButton:t.type,navUnit:t.singleUnit,isTodayEnabled:u.isValid&&!yn(e.currentRange,s),isPrevEnabled:p.isValid,isNextEnabled:h.isValid}}function Ty(t){return t.map(e=>new e)}class ky extends _m{constructor(e,n={}){super(),this.isRendering=!1,this.isRendered=!1,this.currentClassNames=[],this.customContentRenderId=0,this.handleAction=i=>{switch(i.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":this.renderRunner.tryDrain()}},this.handleData=i=>{this.currentData=i,this.renderRunner.request(i.calendarOptions.rerenderDelay)},this.handleRenderRequest=()=>{if(this.isRendering){this.isRendered=!0;let{currentData:i}=this;ia(()=>{Wr(M(ym,{options:i.calendarOptions,theme:i.theme,emitter:i.emitter},(s,l,u,p)=>(this.setClassNames(s),this.setHeight(l),M(wd.Provider,{value:this.customContentRenderId},M(xy,Object.assign({isHeightAuto:u,forPrint:p},i))))),this.el)})}else this.isRendered&&(this.isRendered=!1,Wr(null,this.el),this.setClassNames([]),this.setHeight(""))},nv(e),this.el=e,this.renderRunner=new vo(this.handleRenderRequest),new hy({optionOverrides:n,calendarApi:this,onAction:this.handleAction,onData:this.handleData})}render(){let e=this.isRendering;e?this.customContentRenderId+=1:this.isRendering=!0,this.renderRunner.request(),e&&this.updateSize()}destroy(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())}updateSize(){ia(()=>{super.updateSize()})}batchRendering(e){this.renderRunner.pause("batchRendering"),e(),this.renderRunner.resume("batchRendering")}pauseRendering(){this.renderRunner.pause("pauseRendering")}resumeRendering(){this.renderRunner.resume("pauseRendering",!0)}resetOptions(e,n){this.currentDataManager.resetOptions(e,n)}setClassNames(e){if(!bn(e,this.currentClassNames)){let{classList:n}=this.el;for(let i of this.currentClassNames)n.remove(i);for(let i of e)n.add(i);this.currentClassNames=e}}setHeight(e){fd(this.el,"height",e)}}const Ry={headerToolbar:!0,footerToolbar:!0,events:!0,eventSources:!0,resources:!0},ji=typeof document!="undefined"?document.createDocumentFragment():null,Oy=Oe.extend({render(t){return t("aside",{style:{display:"none"}},this.$slots.default||[])},mounted(){ji&&ji.appendChild(this.$el)},beforeDestroy(){ji&&ji.removeChild(this.$el)}}),My=Oy,Bn=typeof document!="undefined"?document.createDocumentFragment():null,Iy=Oe.extend({props:{inPlaceOf:typeof Element!="undefined"?Element:Object,reportEl:Function,elTag:String,elClasses:Array,elStyle:Object,elAttrs:Object},render(t){return t(this.elTag,{class:this.elClasses,style:this.elStyle,attrs:this.elAttrs},this.$slots.default||[])},mounted(){bu(this.$el,this.inPlaceOf),this.inPlaceOf.style.display="none",this.reportEl(this.$el)},updated(){Bn&&this.inPlaceOf.parentNode!==Bn&&(bu(this.$el,this.inPlaceOf),this.reportEl(this.$el))},beforeDestroy(){Bn&&this.inPlaceOf.parentNode===Bn&&Bn.removeChild(this.inPlaceOf),this.reportEl(null)}}),Ny=Iy;function bu(t,e){var n;(n=e.parentNode)===null||n===void 0||n.insertBefore(t,e.nextSibling),Bn&&Bn.appendChild(e)}const $y=Oe.extend({props:{options:Object},data(){return{renderId:0,customRenderingMap:new Map}},methods:{getApi(){return this.calendar},buildOptions(t){return Object.assign(Object.assign({},t),{customRenderingMetaMap:Hy(this.$scopedSlots),handleCustomRendering:this.handleCustomRendering,customRenderingReplaces:!0})}},render(t){const e=[];for(const n of this.customRenderingMap.values()){const i=typeof n.generatorMeta=="function"?n.generatorMeta(n.renderProps):n.generatorMeta;e.push(t("div",{key:n.id},[t(Ny,{key:n.id,props:{inPlaceOf:n.containerEl,reportEl:n.reportNewContainerEl,elTag:n.elTag,elClasses:n.elClasses,elStyle:n.elStyle,elAttrs:n.elAttrs}},i)]))}return t("div",{attrs:{"data-fc-render-id":this.renderId}},[t(My,e)])},mounted(){const t=new g1;this.handleCustomRendering=t.handle.bind(t);const e=this.buildOptions(this.options),n=new ky(this.$el,e);this.calendar=n,n.render(),t.subscribe(i=>{this.customRenderingMap=i,this.renderId++,this.needCustomRenderingResize=!0})},beforeUpdate(){this.getApi().resumeRendering()},updated(){this.needCustomRenderingResize&&(this.needCustomRenderingResize=!1,this.getApi().updateSize())},beforeDestroy(){this.getApi().destroy()},watch:Py()}),sf=$y;function Py(){let t={options:{deep:!0,handler(e){let n=this.getApi();n.pauseRendering();let i=this.buildOptions(e);n.resetOptions(i),this.renderId++}}};for(let e in Ry)t[`options.${e}`]={deep:!0,handler(n){if(n!==void 0){let i=this.getApi();i.pauseRendering(),i.resetOptions({[e]:n},[e]),this.renderId++}}};return t}function Hy(t){const e={};for(const n in t)e[jy(n)]=t[n];return e}function jy(t){return t.split("-").map((e,n)=>n?By(e):e).join("")}function By(t){return t.charAt(0).toUpperCase()+t.slice(1)}let _u=!1;function Vy(t){_u||(_u=!0,t.component("FullCalendar",sf))}let la;typeof globalThis!="undefined"?la=globalThis.Vue:la=window.Vue;la&&la.use({install:Vy});class Fy extends Qn{constructor(){super(...arguments),this.headerElRef=nn()}renderSimpleLayout(e,n){let{props:i,context:s}=this,l=[],u=uu(s.options);return e&&l.push({type:"header",key:"header",isSticky:u,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),l.push({type:"body",key:"body",liquid:!0,chunk:{content:n}}),M(Jc,{elClasses:["fc-daygrid"],viewSpec:s.viewSpec},M(Zd,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[],sections:l}))}renderHScrollLayout(e,n,i,s){let l=this.context.pluginHooks.scrollGridImpl;if(!l)throw new Error("No ScrollGrid implementation");let{props:u,context:p}=this,h=!u.forPrint&&uu(p.options),y=!u.forPrint&&qm(p.options),g=[];return e&&g.push({type:"header",key:"header",isSticky:h,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),g.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:n}]}),y&&g.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:Qm}]}),M(Jc,{elClasses:["fc-daygrid"],viewSpec:p.viewSpec},M(l,{liquid:!u.isHeightAuto&&!u.forPrint,forPrint:u.forPrint,collapsibleWidth:u.forPrint,colGroups:[{cols:[{span:i,minWidth:s}]}],sections:g}))}}function Bi(t,e){let n=[];for(let i=0;i<e;i+=1)n[i]=[];for(let i of t)n[i.row].push(i);return n}function Vi(t,e){let n=[];for(let i=0;i<e;i+=1)n[i]=[];for(let i of t)n[i.firstCol].push(i);return n}function wu(t,e){let n=[];if(t){for(let i=0;i<e;i+=1)n[i]={affectedInstances:t.affectedInstances,isEvent:t.isEvent,segs:[]};for(let i of t.segs)n[i.row].segs.push(i)}else for(let i=0;i<e;i+=1)n[i]=null;return n}const of=Be({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function lf(t){let{display:e}=t.eventRange.ui;return e==="list-item"||e==="auto"&&!t.eventRange.def.allDay&&t.firstCol===t.lastCol&&t.isStart&&t.isEnd}class cf extends Te{render(){let{props:e}=this;return M(Km,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:of,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class uf extends Te{render(){let{props:e,context:n}=this,{options:i}=n,{seg:s}=e,l=i.eventTimeFormat||of,u=$d(s,l,n,!0,e.defaultDisplayEventEnd);return M(To,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:Pd(e.seg,n),defaultGenerator:Uy,timeText:u,isResizing:!1,isDateSelecting:!1}))}}function Uy(t){return M(Ie,null,M("div",{className:"fc-daygrid-event-dot",style:{borderColor:t.borderColor||t.backgroundColor}}),t.timeText&&M("div",{className:"fc-event-time"},t.timeText),M("div",{className:"fc-event-title"},t.event.title||M(Ie,null," ")))}class zy extends Te{constructor(){super(...arguments),this.compileSegs=ve(Wy)}render(){let{props:e}=this,{allSegs:n,invisibleSegs:i}=this.compileSegs(e.singlePlacements);return M(c1,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:n,hiddenSegs:i,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let s=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return M(Ie,null,n.map(l=>{let u=l.eventRange.instance.instanceId;return M("div",{className:"fc-daygrid-event-harness",key:u,style:{visibility:s[u]?"hidden":""}},lf(l)?M(uf,Object.assign({seg:l,isDragging:!1,isSelected:u===e.eventSelection,defaultDisplayEventEnd:!1},jr(l,e.todayRange))):M(cf,Object.assign({seg:l,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:u===e.eventSelection,defaultDisplayEventEnd:!1},jr(l,e.todayRange))))}))}})}}function Wy(t){let e=[],n=[];for(let i of t)e.push(i.seg),i.isVisible||n.push(i.seg);return{allSegs:e,invisibleSegs:n}}const Gy=Be({week:"narrow"});class Zy extends Qn{constructor(){super(...arguments),this.rootElRef=nn(),this.state={dayNumberId:pa()},this.handleRootEl=e=>{rn(this.rootElRef,e),rn(this.props.elRef,e)}}render(){let{context:e,props:n,state:i,rootElRef:s}=this,{options:l,dateEnv:u}=e,{date:p,dateProfile:h}=n;const y=n.showDayNumber&&Qy(p,h.currentRange,u);return M(Yd,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...n.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},n.extraDataAttrs),n.showDayNumber?{"aria-labelledby":i.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:Yy,date:p,dateProfile:h,todayRange:n.todayRange,showDayNumber:n.showDayNumber,isMonthStart:y,extraRenderProps:n.extraRenderProps},(g,S)=>M("div",{ref:n.innerElRef,className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",style:{minHeight:n.minHeight}},n.showWeekNumber&&M(a1,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:oo(e,p,"week"),date:p,defaultFormat:Gy}),!S.isDisabled&&(n.showDayNumber||Qd(l)||n.forceDayTop)?M("div",{className:"fc-daygrid-day-top"},M(g,{elTag:"a",elClasses:["fc-daygrid-day-number",y&&"fc-daygrid-month-start"],elAttrs:Object.assign(Object.assign({},oo(e,p)),{id:i.dayNumberId})})):n.showDayNumber?M("div",{className:"fc-daygrid-day-top",style:{visibility:"hidden"}},M("a",{className:"fc-daygrid-day-number"}," ")):void 0,M("div",{className:"fc-daygrid-day-events",ref:n.fgContentElRef},n.fgContent,M("div",{className:"fc-daygrid-day-bottom",style:{marginTop:n.moreMarginTop}},M(zy,{allDayDate:p,singlePlacements:n.singlePlacements,moreCnt:n.moreCnt,alignmentElRef:s,alignGridTop:!n.showDayNumber,extraDateSpan:n.extraDateSpan,dateProfile:n.dateProfile,eventSelection:n.eventSelection,eventDrag:n.eventDrag,eventResize:n.eventResize,todayRange:n.todayRange}))),M("div",{className:"fc-daygrid-day-bg"},n.bgContent)))}}function Yy(t){return t.dayNumberText||M(Ie,null," ")}function Qy(t,e,n){const{start:i,end:s}=e,l=_n(s,-1),u=n.getYear(i),p=n.getMonth(i),h=n.getYear(l),y=n.getMonth(l);return!(u===h&&p===y)&&(t.valueOf()===i.valueOf()||n.getDay(t)===1&&t.valueOf()<s.valueOf())}function df(t){return t.eventRange.instance.instanceId+":"+t.firstCol}function ff(t){return df(t)+":"+t.lastCol}function qy(t,e,n,i,s,l,u){let p=new Xy(H=>{let V=t[H.index].eventRange.instance.instanceId+":"+H.span.start+":"+(H.span.end-1);return s[V]||1});p.allowReslicing=!0,p.strictOrder=i,e===!0||n===!0?(p.maxCoord=l,p.hiddenConsumes=!0):typeof e=="number"?p.maxStackCnt=e:typeof n=="number"&&(p.maxStackCnt=n,p.hiddenConsumes=!0);let h=[],y=[];for(let H=0;H<t.length;H+=1){let V=t[H],Q=ff(V);s[Q]!=null?h.push({index:H,span:{start:V.firstCol,end:V.lastCol+1}}):y.push(V)}let g=p.addSegs(h),S=p.toRects(),{singleColPlacements:A,multiColPlacements:w,leftoverMargins:O}=Jy(S,t,u),B=[],$=[];for(let H of y){w[H.firstCol].push({seg:H,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let V=H.firstCol;V<=H.lastCol;V+=1)A[V].push({seg:fr(H,V,V+1,u),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let H=0;H<u.length;H+=1)B.push(0);for(let H of g){let V=t[H.index],Q=H.span;w[Q.start].push({seg:fr(V,Q.start,Q.end,u),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let E=Q.start;E<Q.end;E+=1)B[E]+=1,A[E].push({seg:fr(V,E,E+1,u),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let H=0;H<u.length;H+=1)$.push(O[H]);return{singleColPlacements:A,multiColPlacements:w,moreCnts:B,moreMarginTops:$}}function Jy(t,e,n){let i=Ky(t,n.length),s=[],l=[],u=[];for(let p=0;p<n.length;p+=1){let h=i[p],y=[],g=0,S=0;for(let w of h){let O=e[w.index];y.push({seg:fr(O,p,p+1,n),isVisible:!0,isAbsolute:!1,absoluteTop:w.levelCoord,marginTop:w.levelCoord-g}),g=w.levelCoord+w.thickness}let A=[];g=0,S=0;for(let w of h){let O=e[w.index],B=w.span.end-w.span.start>1,$=w.span.start===p;S+=w.levelCoord-g,g=w.levelCoord+w.thickness,B?(S+=w.thickness,$&&A.push({seg:fr(O,w.span.start,w.span.end,n),isVisible:!0,isAbsolute:!0,absoluteTop:w.levelCoord,marginTop:0})):$&&(A.push({seg:fr(O,w.span.start,w.span.end,n),isVisible:!0,isAbsolute:!1,absoluteTop:w.levelCoord,marginTop:S}),S=0)}s.push(y),l.push(A),u.push(S)}return{singleColPlacements:s,multiColPlacements:l,leftoverMargins:u}}function Ky(t,e){let n=[];for(let i=0;i<e;i+=1)n.push([]);for(let i of t)for(let s=i.span.start;s<i.span.end;s+=1)n[s].push(i);return n}function fr(t,e,n,i){if(t.firstCol===e&&t.lastCol===n-1)return t;let s=t.eventRange,l=s.range,u=vr(l,{start:i[e].date,end:Ye(i[n-1].date,1)});return Object.assign(Object.assign({},t),{firstCol:e,lastCol:n-1,eventRange:{def:s.def,ui:Object.assign(Object.assign({},s.ui),{durationEditable:!1}),instance:s.instance,range:u},isStart:t.isStart&&u.start.valueOf()===l.start.valueOf(),isEnd:t.isEnd&&u.end.valueOf()===l.end.valueOf()})}class Xy extends Tm{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const n=super.addSegs(e),{entriesByLevel:i}=this,s=l=>!this.forceHidden[Br(l)];for(let l=0;l<i.length;l+=1)i[l]=i[l].filter(s);return n}handleInvalidInsertion(e,n,i){const{entriesByLevel:s,forceHidden:l}=this,{touchingEntry:u,touchingLevel:p,touchingLateral:h}=e;if(this.hiddenConsumes&&u){const y=Br(u);if(!l[y])if(this.allowReslicing){const g=Object.assign(Object.assign({},u),{span:Ud(u.span,n.span)}),S=Br(g);l[S]=!0,s[p][h]=g,i.push(g),this.splitEntry(u,n,i)}else l[y]=!0,i.push(u)}super.handleInvalidInsertion(e,n,i)}}class pf extends Qn{constructor(){super(...arguments),this.cellElRefs=new Vn,this.frameElRefs=new Vn,this.fgElRefs=new Vn,this.segHarnessRefs=new Vn,this.rootElRef=nn(),this.state={framePositions:null,maxContentHeight:null,segHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:n,context:i}=this,{options:s}=i,l=e.cells.length,u=Vi(e.businessHourSegs,l),p=Vi(e.bgEventSegs,l),h=Vi(this.getHighlightSegs(),l),y=Vi(this.getMirrorSegs(),l),{singleColPlacements:g,multiColPlacements:S,moreCnts:A,moreMarginTops:w}=qy(rm(e.fgEventSegs,s.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,s.eventOrderStrict,n.segHeights,n.maxContentHeight,e.cells),O=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return M("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((B,$)=>{let H=this.renderFgSegs($,e.forPrint?g[$]:S[$],e.todayRange,O),V=this.renderFgSegs($,eb(y[$],S),e.todayRange,{},!!e.eventDrag,!!e.eventResize,!1);return M(Zy,{key:B.key,elRef:this.cellElRefs.createRef(B.key),innerElRef:this.frameElRefs.createRef(B.key),dateProfile:e.dateProfile,date:B.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&$===0,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:B.extraRenderProps,extraDataAttrs:B.extraDataAttrs,extraClassNames:B.extraClassNames,extraDateSpan:B.extraDateSpan,moreCnt:A[$],moreMarginTop:w[$],singlePlacements:g[$],fgContentElRef:this.fgElRefs.createRef(B.key),fgContent:M(Ie,null,M(Ie,null,H),M(Ie,null,V)),bgContent:M(Ie,null,this.renderFillSegs(h[$],"highlight"),this.renderFillSegs(u[$],"non-business"),this.renderFillSegs(p[$],"bg-event")),minHeight:e.cellMinHeight})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,n){let i=this.props;this.updateSizing(!jt(e,i))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,n,i,s,l,u,p){let{context:h}=this,{eventSelection:y}=this.props,{framePositions:g}=this.state,S=this.props.cells.length===1,A=l||u||p,w=[];if(g)for(let O of n){let{seg:B}=O,{instanceId:$}=B.eventRange.instance,H=O.isVisible&&!s[$],V=O.isAbsolute,Q="",E="";V&&(h.isRtl?(E=0,Q=g.lefts[B.lastCol]-g.lefts[B.firstCol]):(Q=0,E=g.rights[B.firstCol]-g.rights[B.lastCol])),w.push(M("div",{className:"fc-daygrid-event-harness"+(V?" fc-daygrid-event-harness-abs":""),key:df(B),ref:A?null:this.segHarnessRefs.createRef(ff(B)),style:{visibility:H?"":"hidden",marginTop:V?"":O.marginTop,top:V?O.absoluteTop:"",left:Q,right:E}},lf(B)?M(uf,Object.assign({seg:B,isDragging:l,isSelected:$===y,defaultDisplayEventEnd:S},jr(B,i))):M(cf,Object.assign({seg:B,isDragging:l,isResizing:u,isDateSelecting:p,isSelected:$===y,defaultDisplayEventEnd:S},jr(B,i)))))}return w}renderFillSegs(e,n){let{isRtl:i}=this.context,{todayRange:s}=this.props,{framePositions:l}=this.state,u=[];if(l)for(let p of e){let h=i?{right:0,left:l.lefts[p.lastCol]-l.lefts[p.firstCol]}:{left:0,right:l.rights[p.firstCol]-l.rights[p.lastCol]};u.push(M("div",{key:cm(p.eventRange),className:"fc-daygrid-bg-harness",style:h},n==="bg-event"?M(n1,Object.assign({seg:p},jr(p,s))):i1(n)))}return M(Ie,{},...u)}updateSizing(e){let{props:n,state:i,frameElRefs:s}=this;if(!n.forPrint&&n.clientWidth!==null){if(e){let h=n.cells.map(y=>s.currentMap[y.key]);if(h.length){let y=this.rootElRef.current,g=new oa(y,h,!0,!1);(!i.framePositions||!i.framePositions.similarTo(g))&&this.setState({framePositions:new oa(y,h,!0,!1)})}}const l=this.state.segHeights,u=this.querySegHeights(),p=n.dayMaxEvents===!0||n.dayMaxEventRows===!0;this.safeSetState({segHeights:Object.assign(Object.assign({},l),u),maxContentHeight:p?this.computeMaxContentHeight():null})}}querySegHeights(){let e=this.segHarnessRefs.currentMap,n={};for(let i in e){let s=Math.round(e[i].getBoundingClientRect().height);n[i]=Math.max(n[i]||0,s)}return n}computeMaxContentHeight(){let e=this.props.cells[0].key,n=this.cellElRefs.currentMap[e],i=this.fgElRefs.currentMap[e];return n.getBoundingClientRect().bottom-i.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(n=>e[n.key])}}pf.addStateEquality({segHeights:jt});function eb(t,e){if(!t.length)return[];let n=tb(e);return t.map(i=>({seg:i,isVisible:!0,isAbsolute:!0,absoluteTop:n[i.eventRange.instance.instanceId],marginTop:0}))}function tb(t){let e={};for(let n of t)for(let i of n)e[i.seg.eventRange.instance.instanceId]=i.absoluteTop;return e}class nb extends Qn{constructor(){super(...arguments),this.splitBusinessHourSegs=ve(Bi),this.splitBgEventSegs=ve(Bi),this.splitFgEventSegs=ve(Bi),this.splitDateSelectionSegs=ve(Bi),this.splitEventDrag=ve(wu),this.splitEventResize=ve(wu),this.rowRefs=new Vn}render(){let{props:e,context:n}=this,i=e.cells.length,s=this.splitBusinessHourSegs(e.businessHourSegs,i),l=this.splitBgEventSegs(e.bgEventSegs,i),u=this.splitFgEventSegs(e.fgEventSegs,i),p=this.splitDateSelectionSegs(e.dateSelectionSegs,i),h=this.splitEventDrag(e.eventDrag,i),y=this.splitEventResize(e.eventResize,i),g=i>=7&&e.clientWidth?e.clientWidth/n.options.aspectRatio/6:null;return M(Do,{unit:"day"},(S,A)=>M(Ie,null,e.cells.map((w,O)=>M(pf,{ref:this.rowRefs.createRef(O),key:w.length?w[0].date.toISOString():O,showDayNumbers:i>1,showWeekNumbers:e.showWeekNumbers,todayRange:A,dateProfile:e.dateProfile,cells:w,renderIntro:e.renderRowIntro,businessHourSegs:s[O],eventSelection:e.eventSelection,bgEventSegs:l[O].filter(rb),fgEventSegs:u[O],dateSelectionSegs:p[O],eventDrag:h[O],eventResize:y[O],dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,clientWidth:e.clientWidth,clientHeight:e.clientHeight,cellMinHeight:g,forPrint:e.forPrint}))))}componentDidMount(){this.registerInteractiveComponent()}componentDidUpdate(){this.registerInteractiveComponent()}registerInteractiveComponent(){if(!this.rootEl){const e=this.rowRefs.currentMap[0].getCellEls()[0],n=e?e.closest(".fc-daygrid-body"):null;n&&(this.rootEl=n,this.context.registerInteractiveComponent(this,{el:n,isHitComboAllowed:this.props.isHitComboAllowed}))}}componentWillUnmount(){this.rootEl&&(this.context.unregisterInteractiveComponent(this),this.rootEl=null)}prepareHits(){this.rowPositions=new oa(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new oa(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,n){let{colPositions:i,rowPositions:s}=this,l=i.leftToIndex(e),u=s.topToIndex(n);if(u!=null&&l!=null){let p=this.props.cells[u][l];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(u,l),allDay:!0},p.extraDateSpan),dayEl:this.getCellEl(u,l),rect:{left:i.lefts[l],right:i.rights[l],top:s.tops[u],bottom:s.bottoms[u]},layer:0}}return null}getCellEl(e,n){return this.rowRefs.currentMap[e].getCellEls()[n]}getCellRange(e,n){let i=this.props.cells[e][n].date,s=Ye(i,1);return{start:i,end:s}}}function rb(t){return t.eventRange.def.allDay}class ib extends Qn{constructor(){super(...arguments),this.elRef=nn(),this.needsScrollReset=!1}render(){let{props:e}=this,{dayMaxEventRows:n,dayMaxEvents:i,expandRows:s}=e,l=i===!0||n===!0;l&&!s&&(l=!1,n=null,i=null);let u=["fc-daygrid-body",l?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",s?"":"fc-daygrid-body-natural"];return M("div",{ref:this.elRef,className:u.join(" "),style:{width:e.clientWidth,minWidth:e.tableMinWidth}},M("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:s?e.clientHeight:""}},e.colGroupNode,M("tbody",{role:"presentation"},M(nb,{dateProfile:e.dateProfile,cells:e.cells,renderRowIntro:e.renderRowIntro,showWeekNumbers:e.showWeekNumbers,clientWidth:e.clientWidth,clientHeight:e.clientHeight,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,dayMaxEvents:i,dayMaxEventRows:n,forPrint:e.forPrint,isHitComboAllowed:e.isHitComboAllowed}))))}componentDidMount(){this.requestScrollReset()}componentDidUpdate(e){e.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&this.props.clientWidth){const e=ab(this.elRef.current,this.props.dateProfile);if(e){const n=e.closest(".fc-daygrid-body"),i=n.closest(".fc-scroller"),s=e.getBoundingClientRect().top-n.getBoundingClientRect().top;i.scrollTop=s?s+1:0}this.needsScrollReset=!1}}}function ab(t,e){let n;return e.currentRangeUnit.match(/year|month/)&&(n=t.querySelector(`[data-date="${jv(e.currentDate)}-01"]`)),n||(n=t.querySelector(`[data-date="${go(e.currentDate)}"]`)),n}class sb extends Hm{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,n){return n.sliceRange(e)}}class ob extends Qn{constructor(){super(...arguments),this.slicer=new sb,this.tableRef=nn()}render(){let{props:e,context:n}=this;return M(ib,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,n,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}class lb extends Fy{constructor(){super(...arguments),this.buildDayTableModel=ve(cb),this.headerRef=nn(),this.tableRef=nn()}render(){let{options:e,dateProfileGenerator:n}=this.context,{props:i}=this,s=this.buildDayTableModel(i.dateProfile,n),l=e.dayHeaders&&M(Im,{ref:this.headerRef,dateProfile:i.dateProfile,dates:s.headerDates,datesRepDistinctDays:s.rowCnt===1}),u=p=>M(ob,{ref:this.tableRef,dateProfile:i.dateProfile,dayTableModel:s,businessHours:i.businessHours,dateSelection:i.dateSelection,eventStore:i.eventStore,eventUiBases:i.eventUiBases,eventSelection:i.eventSelection,eventDrag:i.eventDrag,eventResize:i.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:p.tableColGroupNode,tableMinWidth:p.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!i.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:p.clientWidth,clientHeight:p.clientHeight,forPrint:i.forPrint});return e.dayMinWidth?this.renderHScrollLayout(l,u,s.colCnt,e.dayMinWidth):this.renderSimpleLayout(l,u)}}function cb(t,e){let n=new $m(t.renderRange,e);return new Pm(n,/year|month|week/.test(t.currentRangeUnit))}class ub extends Ed{buildRenderRange(e,n,i){let s=super.buildRenderRange(e,n,i),{props:l}=this;return db({currentRange:s,snapToWeek:/^(year|month)$/.test(n),fixedWeekCount:l.fixedWeekCount,dateEnv:l.dateEnv})}}function db(t){let{dateEnv:e,currentRange:n}=t,{start:i,end:s}=n,l;if(t.snapToWeek&&(i=e.startOfWeek(i),l=e.startOfWeek(s),l.valueOf()!==s.valueOf()&&(s=Fc(l,1))),t.fixedWeekCount){let u=e.startOfWeek(e.startOfMonth(Ye(n.end,-1))),p=Math.ceil(xv(u,s));s=Fc(s,6-p)}return{start:i,end:s}}var fb=':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}';cd(fb);var pb=qn({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:lb,dateProfileGeneratorClass:ub},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},fixedWeekCount:!0},dayGridYear:{type:"dayGrid",duration:{years:1}}}}),it="top",wt="bottom",Lt="right",at="left",Ro="auto",ei=[it,wt,Lt,at],gr="start",Yr="end",hb="clippingParents",hf="viewport",$r="popper",vb="reference",Lu=ei.reduce(function(t,e){return t.concat([e+"-"+gr,e+"-"+Yr])},[]),vf=[].concat(ei,[Ro]).reduce(function(t,e){return t.concat([e,e+"-"+gr,e+"-"+Yr])},[]),gb="beforeRead",mb="read",yb="afterRead",bb="beforeMain",_b="main",wb="afterMain",Lb="beforeWrite",Ab="write",Cb="afterWrite",Eb=[gb,mb,yb,bb,_b,wb,Lb,Ab,Cb];function Bt(t){return t?(t.nodeName||"").toLowerCase():null}function pt(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Wn(t){var e=pt(t).Element;return t instanceof e||t instanceof Element}function _t(t){var e=pt(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function Oo(t){if(typeof ShadowRoot=="undefined")return!1;var e=pt(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Sb(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var i=e.styles[n]||{},s=e.attributes[n]||{},l=e.elements[n];!_t(l)||!Bt(l)||(Object.assign(l.style,i),Object.keys(s).forEach(function(u){var p=s[u];p===!1?l.removeAttribute(u):l.setAttribute(u,p===!0?"":p)}))})}function xb(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(i){var s=e.elements[i],l=e.attributes[i]||{},u=Object.keys(e.styles.hasOwnProperty(i)?e.styles[i]:n[i]),p=u.reduce(function(h,y){return h[y]="",h},{});!_t(s)||!Bt(s)||(Object.assign(s.style,p),Object.keys(l).forEach(function(h){s.removeAttribute(h)}))})}}const gf={name:"applyStyles",enabled:!0,phase:"write",fn:Sb,effect:xb,requires:["computeStyles"]};function Ht(t){return t.split("-")[0]}var Un=Math.max,ca=Math.min,mr=Math.round;function co(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function mf(){return!/^((?!chrome|android).)*safari/i.test(co())}function yr(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!1);var i=t.getBoundingClientRect(),s=1,l=1;e&&_t(t)&&(s=t.offsetWidth>0&&mr(i.width)/t.offsetWidth||1,l=t.offsetHeight>0&&mr(i.height)/t.offsetHeight||1);var u=Wn(t)?pt(t):window,p=u.visualViewport,h=!mf()&&n,y=(i.left+(h&&p?p.offsetLeft:0))/s,g=(i.top+(h&&p?p.offsetTop:0))/l,S=i.width/s,A=i.height/l;return{width:S,height:A,top:g,right:y+S,bottom:g+A,left:y,x:y,y:g}}function Mo(t){var e=yr(t),n=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:i}}function yf(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&Oo(n)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function an(t){return pt(t).getComputedStyle(t)}function Db(t){return["table","td","th"].indexOf(Bt(t))>=0}function Ln(t){return((Wn(t)?t.ownerDocument:t.document)||window.document).documentElement}function ha(t){return Bt(t)==="html"?t:t.assignedSlot||t.parentNode||(Oo(t)?t.host:null)||Ln(t)}function Au(t){return!_t(t)||an(t).position==="fixed"?null:t.offsetParent}function Tb(t){var e=/firefox/i.test(co()),n=/Trident/i.test(co());if(n&&_t(t)){var i=an(t);if(i.position==="fixed")return null}var s=ha(t);for(Oo(s)&&(s=s.host);_t(s)&&["html","body"].indexOf(Bt(s))<0;){var l=an(s);if(l.transform!=="none"||l.perspective!=="none"||l.contain==="paint"||["transform","perspective"].indexOf(l.willChange)!==-1||e&&l.willChange==="filter"||e&&l.filter&&l.filter!=="none")return s;s=s.parentNode}return null}function ti(t){for(var e=pt(t),n=Au(t);n&&Db(n)&&an(n).position==="static";)n=Au(n);return n&&(Bt(n)==="html"||Bt(n)==="body"&&an(n).position==="static")?e:n||Tb(t)||e}function Io(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Vr(t,e,n){return Un(t,ca(e,n))}function kb(t,e,n){var i=Vr(t,e,n);return i>n?n:i}function bf(){return{top:0,right:0,bottom:0,left:0}}function _f(t){return Object.assign({},bf(),t)}function wf(t,e){return e.reduce(function(n,i){return n[i]=t,n},{})}var Rb=function(e,n){return e=typeof e=="function"?e(Object.assign({},n.rects,{placement:n.placement})):e,_f(typeof e!="number"?e:wf(e,ei))};function Ob(t){var e,n=t.state,i=t.name,s=t.options,l=n.elements.arrow,u=n.modifiersData.popperOffsets,p=Ht(n.placement),h=Io(p),y=[at,Lt].indexOf(p)>=0,g=y?"height":"width";if(!(!l||!u)){var S=Rb(s.padding,n),A=Mo(l),w=h==="y"?it:at,O=h==="y"?wt:Lt,B=n.rects.reference[g]+n.rects.reference[h]-u[h]-n.rects.popper[g],$=u[h]-n.rects.reference[h],H=ti(l),V=H?h==="y"?H.clientHeight||0:H.clientWidth||0:0,Q=B/2-$/2,E=S[w],X=V-A[g]-S[O],z=V/2-A[g]/2+Q,q=Vr(E,z,X),Y=h;n.modifiersData[i]=(e={},e[Y]=q,e.centerOffset=q-z,e)}}function Mb(t){var e=t.state,n=t.options,i=n.element,s=i===void 0?"[data-popper-arrow]":i;s!=null&&(typeof s=="string"&&(s=e.elements.popper.querySelector(s),!s)||yf(e.elements.popper,s)&&(e.elements.arrow=s))}const Ib={name:"arrow",enabled:!0,phase:"main",fn:Ob,effect:Mb,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function br(t){return t.split("-")[1]}var Nb={top:"auto",right:"auto",bottom:"auto",left:"auto"};function $b(t,e){var n=t.x,i=t.y,s=e.devicePixelRatio||1;return{x:mr(n*s)/s||0,y:mr(i*s)/s||0}}function Cu(t){var e,n=t.popper,i=t.popperRect,s=t.placement,l=t.variation,u=t.offsets,p=t.position,h=t.gpuAcceleration,y=t.adaptive,g=t.roundOffsets,S=t.isFixed,A=u.x,w=A===void 0?0:A,O=u.y,B=O===void 0?0:O,$=typeof g=="function"?g({x:w,y:B}):{x:w,y:B};w=$.x,B=$.y;var H=u.hasOwnProperty("x"),V=u.hasOwnProperty("y"),Q=at,E=it,X=window;if(y){var z=ti(n),q="clientHeight",Y="clientWidth";if(z===pt(n)&&(z=Ln(n),an(z).position!=="static"&&p==="absolute"&&(q="scrollHeight",Y="scrollWidth")),z=z,s===it||(s===at||s===Lt)&&l===Yr){E=wt;var _e=S&&z===X&&X.visualViewport?X.visualViewport.height:z[q];B-=_e-i.height,B*=h?1:-1}if(s===at||(s===it||s===wt)&&l===Yr){Q=Lt;var oe=S&&z===X&&X.visualViewport?X.visualViewport.width:z[Y];w-=oe-i.width,w*=h?1:-1}}var ke=Object.assign({position:p},y&&Nb),Ce=g===!0?$b({x:w,y:B},pt(n)):{x:w,y:B};if(w=Ce.x,B=Ce.y,h){var pe;return Object.assign({},ke,(pe={},pe[E]=V?"0":"",pe[Q]=H?"0":"",pe.transform=(X.devicePixelRatio||1)<=1?"translate("+w+"px, "+B+"px)":"translate3d("+w+"px, "+B+"px, 0)",pe))}return Object.assign({},ke,(e={},e[E]=V?B+"px":"",e[Q]=H?w+"px":"",e.transform="",e))}function Pb(t){var e=t.state,n=t.options,i=n.gpuAcceleration,s=i===void 0?!0:i,l=n.adaptive,u=l===void 0?!0:l,p=n.roundOffsets,h=p===void 0?!0:p,y={placement:Ht(e.placement),variation:br(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Cu(Object.assign({},y,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:u,roundOffsets:h})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Cu(Object.assign({},y,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:h})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Hb={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Pb,data:{}};var Fi={passive:!0};function jb(t){var e=t.state,n=t.instance,i=t.options,s=i.scroll,l=s===void 0?!0:s,u=i.resize,p=u===void 0?!0:u,h=pt(e.elements.popper),y=[].concat(e.scrollParents.reference,e.scrollParents.popper);return l&&y.forEach(function(g){g.addEventListener("scroll",n.update,Fi)}),p&&h.addEventListener("resize",n.update,Fi),function(){l&&y.forEach(function(g){g.removeEventListener("scroll",n.update,Fi)}),p&&h.removeEventListener("resize",n.update,Fi)}}const Bb={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:jb,data:{}};var Vb={left:"right",right:"left",bottom:"top",top:"bottom"};function Qi(t){return t.replace(/left|right|bottom|top/g,function(e){return Vb[e]})}var Fb={start:"end",end:"start"};function Eu(t){return t.replace(/start|end/g,function(e){return Fb[e]})}function No(t){var e=pt(t),n=e.pageXOffset,i=e.pageYOffset;return{scrollLeft:n,scrollTop:i}}function $o(t){return yr(Ln(t)).left+No(t).scrollLeft}function Ub(t,e){var n=pt(t),i=Ln(t),s=n.visualViewport,l=i.clientWidth,u=i.clientHeight,p=0,h=0;if(s){l=s.width,u=s.height;var y=mf();(y||!y&&e==="fixed")&&(p=s.offsetLeft,h=s.offsetTop)}return{width:l,height:u,x:p+$o(t),y:h}}function zb(t){var e,n=Ln(t),i=No(t),s=(e=t.ownerDocument)==null?void 0:e.body,l=Un(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),u=Un(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),p=-i.scrollLeft+$o(t),h=-i.scrollTop;return an(s||n).direction==="rtl"&&(p+=Un(n.clientWidth,s?s.clientWidth:0)-l),{width:l,height:u,x:p,y:h}}function Po(t){var e=an(t),n=e.overflow,i=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function Lf(t){return["html","body","#document"].indexOf(Bt(t))>=0?t.ownerDocument.body:_t(t)&&Po(t)?t:Lf(ha(t))}function Fr(t,e){var n;e===void 0&&(e=[]);var i=Lf(t),s=i===((n=t.ownerDocument)==null?void 0:n.body),l=pt(i),u=s?[l].concat(l.visualViewport||[],Po(i)?i:[]):i,p=e.concat(u);return s?p:p.concat(Fr(ha(u)))}function uo(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Wb(t,e){var n=yr(t,!1,e==="fixed");return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}function Su(t,e,n){return e===hf?uo(Ub(t,n)):Wn(e)?Wb(e,n):uo(zb(Ln(t)))}function Gb(t){var e=Fr(ha(t)),n=["absolute","fixed"].indexOf(an(t).position)>=0,i=n&&_t(t)?ti(t):t;return Wn(i)?e.filter(function(s){return Wn(s)&&yf(s,i)&&Bt(s)!=="body"}):[]}function Zb(t,e,n,i){var s=e==="clippingParents"?Gb(t):[].concat(e),l=[].concat(s,[n]),u=l[0],p=l.reduce(function(h,y){var g=Su(t,y,i);return h.top=Un(g.top,h.top),h.right=ca(g.right,h.right),h.bottom=ca(g.bottom,h.bottom),h.left=Un(g.left,h.left),h},Su(t,u,i));return p.width=p.right-p.left,p.height=p.bottom-p.top,p.x=p.left,p.y=p.top,p}function Af(t){var e=t.reference,n=t.element,i=t.placement,s=i?Ht(i):null,l=i?br(i):null,u=e.x+e.width/2-n.width/2,p=e.y+e.height/2-n.height/2,h;switch(s){case it:h={x:u,y:e.y-n.height};break;case wt:h={x:u,y:e.y+e.height};break;case Lt:h={x:e.x+e.width,y:p};break;case at:h={x:e.x-n.width,y:p};break;default:h={x:e.x,y:e.y}}var y=s?Io(s):null;if(y!=null){var g=y==="y"?"height":"width";switch(l){case gr:h[y]=h[y]-(e[g]/2-n[g]/2);break;case Yr:h[y]=h[y]+(e[g]/2-n[g]/2);break}}return h}function Qr(t,e){e===void 0&&(e={});var n=e,i=n.placement,s=i===void 0?t.placement:i,l=n.strategy,u=l===void 0?t.strategy:l,p=n.boundary,h=p===void 0?hb:p,y=n.rootBoundary,g=y===void 0?hf:y,S=n.elementContext,A=S===void 0?$r:S,w=n.altBoundary,O=w===void 0?!1:w,B=n.padding,$=B===void 0?0:B,H=_f(typeof $!="number"?$:wf($,ei)),V=A===$r?vb:$r,Q=t.rects.popper,E=t.elements[O?V:A],X=Zb(Wn(E)?E:E.contextElement||Ln(t.elements.popper),h,g,u),z=yr(t.elements.reference),q=Af({reference:z,element:Q,strategy:"absolute",placement:s}),Y=uo(Object.assign({},Q,q)),_e=A===$r?Y:z,oe={top:X.top-_e.top+H.top,bottom:_e.bottom-X.bottom+H.bottom,left:X.left-_e.left+H.left,right:_e.right-X.right+H.right},ke=t.modifiersData.offset;if(A===$r&&ke){var Ce=ke[s];Object.keys(oe).forEach(function(pe){var Ge=[Lt,wt].indexOf(pe)>=0?1:-1,Ve=[it,wt].indexOf(pe)>=0?"y":"x";oe[pe]+=Ce[Ve]*Ge})}return oe}function Yb(t,e){e===void 0&&(e={});var n=e,i=n.placement,s=n.boundary,l=n.rootBoundary,u=n.padding,p=n.flipVariations,h=n.allowedAutoPlacements,y=h===void 0?vf:h,g=br(i),S=g?p?Lu:Lu.filter(function(O){return br(O)===g}):ei,A=S.filter(function(O){return y.indexOf(O)>=0});A.length===0&&(A=S);var w=A.reduce(function(O,B){return O[B]=Qr(t,{placement:B,boundary:s,rootBoundary:l,padding:u})[Ht(B)],O},{});return Object.keys(w).sort(function(O,B){return w[O]-w[B]})}function Qb(t){if(Ht(t)===Ro)return[];var e=Qi(t);return[Eu(t),e,Eu(e)]}function qb(t){var e=t.state,n=t.options,i=t.name;if(!e.modifiersData[i]._skip){for(var s=n.mainAxis,l=s===void 0?!0:s,u=n.altAxis,p=u===void 0?!0:u,h=n.fallbackPlacements,y=n.padding,g=n.boundary,S=n.rootBoundary,A=n.altBoundary,w=n.flipVariations,O=w===void 0?!0:w,B=n.allowedAutoPlacements,$=e.options.placement,H=Ht($),V=H===$,Q=h||(V||!O?[Qi($)]:Qb($)),E=[$].concat(Q).reduce(function(lt,Je){return lt.concat(Ht(Je)===Ro?Yb(e,{placement:Je,boundary:g,rootBoundary:S,padding:y,flipVariations:O,allowedAutoPlacements:B}):Je)},[]),X=e.rects.reference,z=e.rects.popper,q=new Map,Y=!0,_e=E[0],oe=0;oe<E.length;oe++){var ke=E[oe],Ce=Ht(ke),pe=br(ke)===gr,Ge=[it,wt].indexOf(Ce)>=0,Ve=Ge?"width":"height",te=Qr(e,{placement:ke,boundary:g,rootBoundary:S,altBoundary:A,padding:y}),Pe=Ge?pe?Lt:at:pe?wt:it;X[Ve]>z[Ve]&&(Pe=Qi(Pe));var re=Qi(Pe),Re=[];if(l&&Re.push(te[Ce]<=0),p&&Re.push(te[Pe]<=0,te[re]<=0),Re.every(function(lt){return lt})){_e=ke,Y=!1;break}q.set(ke,Re)}if(Y)for(var st=O?3:1,Qe=function(Je){var Ke=E.find(function(Vt){var Fe=q.get(Vt);if(Fe)return Fe.slice(0,Je).every(function(Ft){return Ft})});if(Ke)return _e=Ke,"break"},ot=st;ot>0;ot--){var ht=Qe(ot);if(ht==="break")break}e.placement!==_e&&(e.modifiersData[i]._skip=!0,e.placement=_e,e.reset=!0)}}const Jb={name:"flip",enabled:!0,phase:"main",fn:qb,requiresIfExists:["offset"],data:{_skip:!1}};function xu(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function Du(t){return[it,Lt,wt,at].some(function(e){return t[e]>=0})}function Kb(t){var e=t.state,n=t.name,i=e.rects.reference,s=e.rects.popper,l=e.modifiersData.preventOverflow,u=Qr(e,{elementContext:"reference"}),p=Qr(e,{altBoundary:!0}),h=xu(u,i),y=xu(p,s,l),g=Du(h),S=Du(y);e.modifiersData[n]={referenceClippingOffsets:h,popperEscapeOffsets:y,isReferenceHidden:g,hasPopperEscaped:S},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":g,"data-popper-escaped":S})}const Xb={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Kb};function e_(t,e,n){var i=Ht(t),s=[at,it].indexOf(i)>=0?-1:1,l=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,u=l[0],p=l[1];return u=u||0,p=(p||0)*s,[at,Lt].indexOf(i)>=0?{x:p,y:u}:{x:u,y:p}}function t_(t){var e=t.state,n=t.options,i=t.name,s=n.offset,l=s===void 0?[0,0]:s,u=vf.reduce(function(g,S){return g[S]=e_(S,e.rects,l),g},{}),p=u[e.placement],h=p.x,y=p.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=h,e.modifiersData.popperOffsets.y+=y),e.modifiersData[i]=u}const n_={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:t_};function r_(t){var e=t.state,n=t.name;e.modifiersData[n]=Af({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const i_={name:"popperOffsets",enabled:!0,phase:"read",fn:r_,data:{}};function a_(t){return t==="x"?"y":"x"}function s_(t){var e=t.state,n=t.options,i=t.name,s=n.mainAxis,l=s===void 0?!0:s,u=n.altAxis,p=u===void 0?!1:u,h=n.boundary,y=n.rootBoundary,g=n.altBoundary,S=n.padding,A=n.tether,w=A===void 0?!0:A,O=n.tetherOffset,B=O===void 0?0:O,$=Qr(e,{boundary:h,rootBoundary:y,padding:S,altBoundary:g}),H=Ht(e.placement),V=br(e.placement),Q=!V,E=Io(H),X=a_(E),z=e.modifiersData.popperOffsets,q=e.rects.reference,Y=e.rects.popper,_e=typeof B=="function"?B(Object.assign({},e.rects,{placement:e.placement})):B,oe=typeof _e=="number"?{mainAxis:_e,altAxis:_e}:Object.assign({mainAxis:0,altAxis:0},_e),ke=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,Ce={x:0,y:0};if(z){if(l){var pe,Ge=E==="y"?it:at,Ve=E==="y"?wt:Lt,te=E==="y"?"height":"width",Pe=z[E],re=Pe+$[Ge],Re=Pe-$[Ve],st=w?-Y[te]/2:0,Qe=V===gr?q[te]:Y[te],ot=V===gr?-Y[te]:-q[te],ht=e.elements.arrow,lt=w&&ht?Mo(ht):{width:0,height:0},Je=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:bf(),Ke=Je[Ge],Vt=Je[Ve],Fe=Vr(0,q[te],lt[te]),Ft=Q?q[te]/2-st-Fe-Ke-oe.mainAxis:Qe-Fe-Ke-oe.mainAxis,At=Q?-q[te]/2+st+Fe+Vt+oe.mainAxis:ot+Fe+Vt+oe.mainAxis,be=e.elements.arrow&&ti(e.elements.arrow),Jn=be?E==="y"?be.clientTop||0:be.clientLeft||0:0,An=(pe=ke==null?void 0:ke[E])!=null?pe:0,Me=Pe+Ft-An-Jn,Ue=Pe+At-An,Xe=Vr(w?ca(re,Me):re,Pe,w?Un(Re,Ue):Re);z[E]=Xe,Ce[E]=Xe-Pe}if(p){var vt,Cn=E==="x"?it:at,Kn=E==="x"?wt:Lt,ct=z[X],Ct=X==="y"?"height":"width",Ut=ct+$[Cn],Dt=ct-$[Kn],on=[it,at].indexOf(H)!==-1,et=(vt=ke==null?void 0:ke[X])!=null?vt:0,En=on?Ut:ct-q[Ct]-Y[Ct]-et+oe.altAxis,Et=on?ct+q[Ct]+Y[Ct]-et-oe.altAxis:Dt,zt=w&&on?kb(En,ct,Et):Vr(w?En:Ut,ct,w?Et:Dt);z[X]=zt,Ce[X]=zt-ct}e.modifiersData[i]=Ce}}const o_={name:"preventOverflow",enabled:!0,phase:"main",fn:s_,requiresIfExists:["offset"]};function l_(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function c_(t){return t===pt(t)||!_t(t)?No(t):l_(t)}function u_(t){var e=t.getBoundingClientRect(),n=mr(e.width)/t.offsetWidth||1,i=mr(e.height)/t.offsetHeight||1;return n!==1||i!==1}function d_(t,e,n){n===void 0&&(n=!1);var i=_t(e),s=_t(e)&&u_(e),l=Ln(e),u=yr(t,s,n),p={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(i||!i&&!n)&&((Bt(e)!=="body"||Po(l))&&(p=c_(e)),_t(e)?(h=yr(e,!0),h.x+=e.clientLeft,h.y+=e.clientTop):l&&(h.x=$o(l))),{x:u.left+p.scrollLeft-h.x,y:u.top+p.scrollTop-h.y,width:u.width,height:u.height}}function f_(t){var e=new Map,n=new Set,i=[];t.forEach(function(l){e.set(l.name,l)});function s(l){n.add(l.name);var u=[].concat(l.requires||[],l.requiresIfExists||[]);u.forEach(function(p){if(!n.has(p)){var h=e.get(p);h&&s(h)}}),i.push(l)}return t.forEach(function(l){n.has(l.name)||s(l)}),i}function p_(t){var e=f_(t);return Eb.reduce(function(n,i){return n.concat(e.filter(function(s){return s.phase===i}))},[])}function h_(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t())})})),e}}function v_(t){var e=t.reduce(function(n,i){var s=n[i.name];return n[i.name]=s?Object.assign({},s,i,{options:Object.assign({},s.options,i.options),data:Object.assign({},s.data,i.data)}):i,n},{});return Object.keys(e).map(function(n){return e[n]})}var Tu={placement:"bottom",modifiers:[],strategy:"absolute"};function ku(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return!e.some(function(i){return!(i&&typeof i.getBoundingClientRect=="function")})}function g_(t){t===void 0&&(t={});var e=t,n=e.defaultModifiers,i=n===void 0?[]:n,s=e.defaultOptions,l=s===void 0?Tu:s;return function(p,h,y){y===void 0&&(y=l);var g={placement:"bottom",orderedModifiers:[],options:Object.assign({},Tu,l),modifiersData:{},elements:{reference:p,popper:h},attributes:{},styles:{}},S=[],A=!1,w={state:g,setOptions:function(H){var V=typeof H=="function"?H(g.options):H;B(),g.options=Object.assign({},l,g.options,V),g.scrollParents={reference:Wn(p)?Fr(p):p.contextElement?Fr(p.contextElement):[],popper:Fr(h)};var Q=p_(v_([].concat(i,g.options.modifiers)));return g.orderedModifiers=Q.filter(function(E){return E.enabled}),O(),w.update()},forceUpdate:function(){if(!A){var H=g.elements,V=H.reference,Q=H.popper;if(ku(V,Q)){g.rects={reference:d_(V,ti(Q),g.options.strategy==="fixed"),popper:Mo(Q)},g.reset=!1,g.placement=g.options.placement,g.orderedModifiers.forEach(function(oe){return g.modifiersData[oe.name]=Object.assign({},oe.data)});for(var E=0;E<g.orderedModifiers.length;E++){if(g.reset===!0){g.reset=!1,E=-1;continue}var X=g.orderedModifiers[E],z=X.fn,q=X.options,Y=q===void 0?{}:q,_e=X.name;typeof z=="function"&&(g=z({state:g,options:Y,name:_e,instance:w})||g)}}}},update:h_(function(){return new Promise(function($){w.forceUpdate(),$(g)})}),destroy:function(){B(),A=!0}};if(!ku(p,h))return w;w.setOptions(y).then(function($){!A&&y.onFirstUpdate&&y.onFirstUpdate($)});function O(){g.orderedModifiers.forEach(function($){var H=$.name,V=$.options,Q=V===void 0?{}:V,E=$.effect;if(typeof E=="function"){var X=E({state:g,name:H,instance:w,options:Q}),z=function(){};S.push(X||z)}})}function B(){S.forEach(function($){return $()}),S=[]}return w}}var m_=[Bb,i_,Hb,gf,n_,Jb,o_,Ib,Xb],y_=g_({defaultModifiers:m_}),b_="tippy-box",Cf="tippy-content",__="tippy-backdrop",Ef="tippy-arrow",Sf="tippy-svg-arrow",Hn={passive:!0,capture:!0},xf=function(){return document.body};function Ys(t,e,n){if(Array.isArray(t)){var i=t[e];return i==null?Array.isArray(n)?n[e]:n:i}return t}function Ho(t,e){var n={}.toString.call(t);return n.indexOf("[object")===0&&n.indexOf(e+"]")>-1}function Df(t,e){return typeof t=="function"?t.apply(void 0,e):t}function Ru(t,e){if(e===0)return t;var n;return function(i){clearTimeout(n),n=setTimeout(function(){t(i)},e)}}function w_(t){return t.split(/\s+/).filter(Boolean)}function ur(t){return[].concat(t)}function Ou(t,e){t.indexOf(e)===-1&&t.push(e)}function L_(t){return t.filter(function(e,n){return t.indexOf(e)===n})}function A_(t){return t.split("-")[0]}function ua(t){return[].slice.call(t)}function Mu(t){return Object.keys(t).reduce(function(e,n){return t[n]!==void 0&&(e[n]=t[n]),e},{})}function Ur(){return document.createElement("div")}function va(t){return["Element","Fragment"].some(function(e){return Ho(t,e)})}function C_(t){return Ho(t,"NodeList")}function E_(t){return Ho(t,"MouseEvent")}function S_(t){return!!(t&&t._tippy&&t._tippy.reference===t)}function x_(t){return va(t)?[t]:C_(t)?ua(t):Array.isArray(t)?t:ua(document.querySelectorAll(t))}function Qs(t,e){t.forEach(function(n){n&&(n.style.transitionDuration=e+"ms")})}function Iu(t,e){t.forEach(function(n){n&&n.setAttribute("data-state",e)})}function D_(t){var e,n=ur(t),i=n[0];return i!=null&&(e=i.ownerDocument)!=null&&e.body?i.ownerDocument:document}function T_(t,e){var n=e.clientX,i=e.clientY;return t.every(function(s){var l=s.popperRect,u=s.popperState,p=s.props,h=p.interactiveBorder,y=A_(u.placement),g=u.modifiersData.offset;if(!g)return!0;var S=y==="bottom"?g.top.y:0,A=y==="top"?g.bottom.y:0,w=y==="right"?g.left.x:0,O=y==="left"?g.right.x:0,B=l.top-i+S>h,$=i-l.bottom-A>h,H=l.left-n+w>h,V=n-l.right-O>h;return B||$||H||V})}function qs(t,e,n){var i=e+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(s){t[i](s,n)})}function Nu(t,e){for(var n=e;n;){var i;if(t.contains(n))return!0;n=n.getRootNode==null||(i=n.getRootNode())==null?void 0:i.host}return!1}var Pt={isTouch:!1},$u=0;function k_(){Pt.isTouch||(Pt.isTouch=!0,window.performance&&document.addEventListener("mousemove",Tf))}function Tf(){var t=performance.now();t-$u<20&&(Pt.isTouch=!1,document.removeEventListener("mousemove",Tf)),$u=t}function R_(){var t=document.activeElement;if(S_(t)){var e=t._tippy;t.blur&&!e.state.isVisible&&t.blur()}}function O_(){document.addEventListener("touchstart",k_,Hn),window.addEventListener("blur",R_)}var M_=typeof window!="undefined"&&typeof document!="undefined",I_=M_?!!window.msCrypto:!1,N_={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},$_={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},xt=Object.assign({appendTo:xf,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},N_,$_),P_=Object.keys(xt),H_=function(e){var n=Object.keys(e);n.forEach(function(i){xt[i]=e[i]})};function kf(t){var e=t.plugins||[],n=e.reduce(function(i,s){var l=s.name,u=s.defaultValue;if(l){var p;i[l]=t[l]!==void 0?t[l]:(p=xt[l])!=null?p:u}return i},{});return Object.assign({},t,n)}function j_(t,e){var n=e?Object.keys(kf(Object.assign({},xt,{plugins:e}))):P_,i=n.reduce(function(s,l){var u=(t.getAttribute("data-tippy-"+l)||"").trim();if(!u)return s;if(l==="content")s[l]=u;else try{s[l]=JSON.parse(u)}catch(p){s[l]=u}return s},{});return i}function Pu(t,e){var n=Object.assign({},e,{content:Df(e.content,[t])},e.ignoreAttributes?{}:j_(t,e.plugins));return n.aria=Object.assign({},xt.aria,n.aria),n.aria={expanded:n.aria.expanded==="auto"?e.interactive:n.aria.expanded,content:n.aria.content==="auto"?e.interactive?null:"describedby":n.aria.content},n}var B_=function(){return"innerHTML"};function fo(t,e){t[B_()]=e}function Hu(t){var e=Ur();return t===!0?e.className=Ef:(e.className=Sf,va(t)?e.appendChild(t):fo(e,t)),e}function ju(t,e){va(e.content)?(fo(t,""),t.appendChild(e.content)):typeof e.content!="function"&&(e.allowHTML?fo(t,e.content):t.textContent=e.content)}function po(t){var e=t.firstElementChild,n=ua(e.children);return{box:e,content:n.find(function(i){return i.classList.contains(Cf)}),arrow:n.find(function(i){return i.classList.contains(Ef)||i.classList.contains(Sf)}),backdrop:n.find(function(i){return i.classList.contains(__)})}}function Rf(t){var e=Ur(),n=Ur();n.className=b_,n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var i=Ur();i.className=Cf,i.setAttribute("data-state","hidden"),ju(i,t.props),e.appendChild(n),n.appendChild(i),s(t.props,t.props);function s(l,u){var p=po(e),h=p.box,y=p.content,g=p.arrow;u.theme?h.setAttribute("data-theme",u.theme):h.removeAttribute("data-theme"),typeof u.animation=="string"?h.setAttribute("data-animation",u.animation):h.removeAttribute("data-animation"),u.inertia?h.setAttribute("data-inertia",""):h.removeAttribute("data-inertia"),h.style.maxWidth=typeof u.maxWidth=="number"?u.maxWidth+"px":u.maxWidth,u.role?h.setAttribute("role",u.role):h.removeAttribute("role"),(l.content!==u.content||l.allowHTML!==u.allowHTML)&&ju(y,t.props),u.arrow?g?l.arrow!==u.arrow&&(h.removeChild(g),h.appendChild(Hu(u.arrow))):h.appendChild(Hu(u.arrow)):g&&h.removeChild(g)}return{popper:e,onUpdate:s}}Rf.$$tippy=!0;var V_=1,Ui=[],Js=[];function F_(t,e){var n=Pu(t,Object.assign({},xt,kf(Mu(e)))),i,s,l,u=!1,p=!1,h=!1,y=!1,g,S,A,w=[],O=Ru(Me,n.interactiveDebounce),B,$=V_++,H=null,V=L_(n.plugins),Q={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},E={id:$,reference:t,popper:Ur(),popperInstance:H,props:n,state:Q,plugins:V,clearDelayTimeouts:En,setProps:Et,setContent:zt,show:Sn,hide:Se,hideWithInteractivity:Tt,enable:on,disable:et,unmount:tt,destroy:Wt};if(!n.render)return E;var X=n.render(E),z=X.popper,q=X.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+E.id,E.popper=z,t._tippy=E,z._tippy=E;var Y=V.map(function(N){return N.fn(E)}),_e=t.hasAttribute("aria-expanded");return be(),st(),Pe(),re("onCreate",[E]),n.showOnCreate&&Ut(),z.addEventListener("mouseenter",function(){E.props.interactive&&E.state.isVisible&&E.clearDelayTimeouts()}),z.addEventListener("mouseleave",function(){E.props.interactive&&E.props.trigger.indexOf("mouseenter")>=0&&Ge().addEventListener("mousemove",O)}),E;function oe(){var N=E.props.touch;return Array.isArray(N)?N:[N,0]}function ke(){return oe()[0]==="hold"}function Ce(){var N;return!!((N=E.props.render)!=null&&N.$$tippy)}function pe(){return B||t}function Ge(){var N=pe().parentNode;return N?D_(N):document}function Ve(){return po(z)}function te(N){return E.state.isMounted&&!E.state.isVisible||Pt.isTouch||g&&g.type==="focus"?0:Ys(E.props.delay,N?0:1,xt.delay)}function Pe(N){N===void 0&&(N=!1),z.style.pointerEvents=E.props.interactive&&!N?"":"none",z.style.zIndex=""+E.props.zIndex}function re(N,Z,ne){if(ne===void 0&&(ne=!0),Y.forEach(function(le){le[N]&&le[N].apply(le,Z)}),ne){var ce;(ce=E.props)[N].apply(ce,Z)}}function Re(){var N=E.props.aria;if(N.content){var Z="aria-"+N.content,ne=z.id,ce=ur(E.props.triggerTarget||t);ce.forEach(function(le){var Le=le.getAttribute(Z);if(E.state.isVisible)le.setAttribute(Z,Le?Le+" "+ne:ne);else{var ze=Le&&Le.replace(ne,"").trim();ze?le.setAttribute(Z,ze):le.removeAttribute(Z)}})}}function st(){if(!(_e||!E.props.aria.expanded)){var N=ur(E.props.triggerTarget||t);N.forEach(function(Z){E.props.interactive?Z.setAttribute("aria-expanded",E.state.isVisible&&Z===pe()?"true":"false"):Z.removeAttribute("aria-expanded")})}}function Qe(){Ge().removeEventListener("mousemove",O),Ui=Ui.filter(function(N){return N!==O})}function ot(N){if(!(Pt.isTouch&&(h||N.type==="mousedown"))){var Z=N.composedPath&&N.composedPath()[0]||N.target;if(!(E.props.interactive&&Nu(z,Z))){if(ur(E.props.triggerTarget||t).some(function(ne){return Nu(ne,Z)})){if(Pt.isTouch||E.state.isVisible&&E.props.trigger.indexOf("click")>=0)return}else re("onClickOutside",[E,N]);E.props.hideOnClick===!0&&(E.clearDelayTimeouts(),E.hide(),p=!0,setTimeout(function(){p=!1}),E.state.isMounted||Ke())}}}function ht(){h=!0}function lt(){h=!1}function Je(){var N=Ge();N.addEventListener("mousedown",ot,!0),N.addEventListener("touchend",ot,Hn),N.addEventListener("touchstart",lt,Hn),N.addEventListener("touchmove",ht,Hn)}function Ke(){var N=Ge();N.removeEventListener("mousedown",ot,!0),N.removeEventListener("touchend",ot,Hn),N.removeEventListener("touchstart",lt,Hn),N.removeEventListener("touchmove",ht,Hn)}function Vt(N,Z){Ft(N,function(){!E.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&Z()})}function Fe(N,Z){Ft(N,Z)}function Ft(N,Z){var ne=Ve().box;function ce(le){le.target===ne&&(qs(ne,"remove",ce),Z())}if(N===0)return Z();qs(ne,"remove",S),qs(ne,"add",ce),S=ce}function At(N,Z,ne){ne===void 0&&(ne=!1);var ce=ur(E.props.triggerTarget||t);ce.forEach(function(le){le.addEventListener(N,Z,ne),w.push({node:le,eventType:N,handler:Z,options:ne})})}function be(){ke()&&(At("touchstart",An,{passive:!0}),At("touchend",Ue,{passive:!0})),w_(E.props.trigger).forEach(function(N){if(N!=="manual")switch(At(N,An),N){case"mouseenter":At("mouseleave",Ue);break;case"focus":At(I_?"focusout":"blur",Xe);break;case"focusin":At("focusout",Xe);break}})}function Jn(){w.forEach(function(N){var Z=N.node,ne=N.eventType,ce=N.handler,le=N.options;Z.removeEventListener(ne,ce,le)}),w=[]}function An(N){var Z,ne=!1;if(!(!E.state.isEnabled||vt(N)||p)){var ce=((Z=g)==null?void 0:Z.type)==="focus";g=N,B=N.currentTarget,st(),!E.state.isVisible&&E_(N)&&Ui.forEach(function(le){return le(N)}),N.type==="click"&&(E.props.trigger.indexOf("mouseenter")<0||u)&&E.props.hideOnClick!==!1&&E.state.isVisible?ne=!0:Ut(N),N.type==="click"&&(u=!ne),ne&&!ce&&Dt(N)}}function Me(N){var Z=N.target,ne=pe().contains(Z)||z.contains(Z);if(!(N.type==="mousemove"&&ne)){var ce=Ct().concat(z).map(function(le){var Le,ze=le._tippy,ut=(Le=ze.popperInstance)==null?void 0:Le.state;return ut?{popperRect:le.getBoundingClientRect(),popperState:ut,props:n}:null}).filter(Boolean);T_(ce,N)&&(Qe(),Dt(N))}}function Ue(N){var Z=vt(N)||E.props.trigger.indexOf("click")>=0&&u;if(!Z){if(E.props.interactive){E.hideWithInteractivity(N);return}Dt(N)}}function Xe(N){E.props.trigger.indexOf("focusin")<0&&N.target!==pe()||E.props.interactive&&N.relatedTarget&&z.contains(N.relatedTarget)||Dt(N)}function vt(N){return Pt.isTouch?ke()!==N.type.indexOf("touch")>=0:!1}function Cn(){Kn();var N=E.props,Z=N.popperOptions,ne=N.placement,ce=N.offset,le=N.getReferenceClientRect,Le=N.moveTransition,ze=Ce()?po(z).arrow:null,ut=le?{getBoundingClientRect:le,contextElement:le.contextElement||pe()}:t,Gt={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(xn){var Zt=xn.state;if(Ce()){var wr=Ve(),gt=wr.box;["placement","reference-hidden","escaped"].forEach(function(Xn){Xn==="placement"?gt.setAttribute("data-placement",Zt.placement):Zt.attributes.popper["data-popper-"+Xn]?gt.setAttribute("data-"+Xn,""):gt.removeAttribute("data-"+Xn)}),Zt.attributes.popper={}}}},kt=[{name:"offset",options:{offset:ce}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Le}},Gt];Ce()&&ze&&kt.push({name:"arrow",options:{element:ze,padding:3}}),kt.push.apply(kt,(Z==null?void 0:Z.modifiers)||[]),E.popperInstance=y_(ut,z,Object.assign({},Z,{placement:ne,onFirstUpdate:A,modifiers:kt}))}function Kn(){E.popperInstance&&(E.popperInstance.destroy(),E.popperInstance=null)}function ct(){var N=E.props.appendTo,Z,ne=pe();E.props.interactive&&N===xf||N==="parent"?Z=ne.parentNode:Z=Df(N,[ne]),Z.contains(z)||Z.appendChild(z),E.state.isMounted=!0,Cn()}function Ct(){return ua(z.querySelectorAll("[data-tippy-root]"))}function Ut(N){E.clearDelayTimeouts(),N&&re("onTrigger",[E,N]),Je();var Z=te(!0),ne=oe(),ce=ne[0],le=ne[1];Pt.isTouch&&ce==="hold"&&le&&(Z=le),Z?i=setTimeout(function(){E.show()},Z):E.show()}function Dt(N){if(E.clearDelayTimeouts(),re("onUntrigger",[E,N]),!E.state.isVisible){Ke();return}if(!(E.props.trigger.indexOf("mouseenter")>=0&&E.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(N.type)>=0&&u)){var Z=te(!1);Z?s=setTimeout(function(){E.state.isVisible&&E.hide()},Z):l=requestAnimationFrame(function(){E.hide()})}}function on(){E.state.isEnabled=!0}function et(){E.hide(),E.state.isEnabled=!1}function En(){clearTimeout(i),clearTimeout(s),cancelAnimationFrame(l)}function Et(N){if(!E.state.isDestroyed){re("onBeforeUpdate",[E,N]),Jn();var Z=E.props,ne=Pu(t,Object.assign({},Z,Mu(N),{ignoreAttributes:!0}));E.props=ne,be(),Z.interactiveDebounce!==ne.interactiveDebounce&&(Qe(),O=Ru(Me,ne.interactiveDebounce)),Z.triggerTarget&&!ne.triggerTarget?ur(Z.triggerTarget).forEach(function(ce){ce.removeAttribute("aria-expanded")}):ne.triggerTarget&&t.removeAttribute("aria-expanded"),st(),Pe(),q&&q(Z,ne),E.popperInstance&&(Cn(),Ct().forEach(function(ce){requestAnimationFrame(ce._tippy.popperInstance.forceUpdate)})),re("onAfterUpdate",[E,N])}}function zt(N){E.setProps({content:N})}function Sn(){var N=E.state.isVisible,Z=E.state.isDestroyed,ne=!E.state.isEnabled,ce=Pt.isTouch&&!E.props.touch,le=Ys(E.props.duration,0,xt.duration);if(!(N||Z||ne||ce)&&!pe().hasAttribute("disabled")&&(re("onShow",[E],!1),E.props.onShow(E)!==!1)){if(E.state.isVisible=!0,Ce()&&(z.style.visibility="visible"),Pe(),Je(),E.state.isMounted||(z.style.transition="none"),Ce()){var Le=Ve(),ze=Le.box,ut=Le.content;Qs([ze,ut],0)}A=function(){var kt;if(!(!E.state.isVisible||y)){if(y=!0,z.offsetHeight,z.style.transition=E.props.moveTransition,Ce()&&E.props.animation){var ln=Ve(),xn=ln.box,Zt=ln.content;Qs([xn,Zt],le),Iu([xn,Zt],"visible")}Re(),st(),Ou(Js,E),(kt=E.popperInstance)==null||kt.forceUpdate(),re("onMount",[E]),E.props.animation&&Ce()&&Fe(le,function(){E.state.isShown=!0,re("onShown",[E])})}},ct()}}function Se(){var N=!E.state.isVisible,Z=E.state.isDestroyed,ne=!E.state.isEnabled,ce=Ys(E.props.duration,1,xt.duration);if(!(N||Z||ne)&&(re("onHide",[E],!1),E.props.onHide(E)!==!1)){if(E.state.isVisible=!1,E.state.isShown=!1,y=!1,u=!1,Ce()&&(z.style.visibility="hidden"),Qe(),Ke(),Pe(!0),Ce()){var le=Ve(),Le=le.box,ze=le.content;E.props.animation&&(Qs([Le,ze],ce),Iu([Le,ze],"hidden"))}Re(),st(),E.props.animation?Ce()&&Vt(ce,E.unmount):E.unmount()}}function Tt(N){Ge().addEventListener("mousemove",O),Ou(Ui,O),O(N)}function tt(){E.state.isVisible&&E.hide(),E.state.isMounted&&(Kn(),Ct().forEach(function(N){N._tippy.unmount()}),z.parentNode&&z.parentNode.removeChild(z),Js=Js.filter(function(N){return N!==E}),E.state.isMounted=!1,re("onHidden",[E]))}function Wt(){E.state.isDestroyed||(E.clearDelayTimeouts(),E.unmount(),Jn(),delete t._tippy,E.state.isDestroyed=!0,re("onDestroy",[E]))}}function ni(t,e){e===void 0&&(e={});var n=xt.plugins.concat(e.plugins||[]);O_();var i=Object.assign({},e,{plugins:n}),s=x_(t),l=s.reduce(function(u,p){var h=p&&F_(p,i);return h&&u.push(h),u},[]);return va(t)?l[0]:l}ni.defaultProps=xt;ni.setDefaultProps=H_;ni.currentInput=Pt;Object.assign({},gf,{effect:function(e){var n=e.state,i={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(n.elements.popper.style,i.popper),n.styles=i,n.elements.arrow&&Object.assign(n.elements.arrow.style,i.arrow)}});ni.setDefaultProps({render:Rf});const U_={components:{FullCalendar:sf},props:["events"],data(){return{calendarOptions:{plugins:[pb],initialView:"dayGridMonth",contentHeight:"auto",locale:"cs",buttonText:{today:"dnes"},eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:!1},eventClick(t){t.jsEvent.preventDefault(),ni(t.el,{content:` + <div class="p-2 flex flex-col gap-3 text-white"> + ${t.event.title!==void 0?` + <div class="flex gap-2 items-baseline"> + <strong>${t.event.title}</strong> + </div> + `:""} + ${t.event.allDay?"":` + <div class="flex gap-2 items-baseline"> + <i class="ico--clock" aria-label="Místo konání"></i> + <div>${t.event.start.toLocaleTimeString("cs-CZ",{hour:"2-digit",minute:"2-digit"})+" - "+t.event.end.toLocaleTimeString("cs-CZ",{hour:"2-digit",minute:"2-digit"})}</div> + </div> + `} + ${t.event.extendedProps.location!==void 0?` + <div class="flex gap-2 items-baseline"> + <i class="ico--location" aria-label="Místo konání"></i> + <div>${t.event.extendedProps.location}</div> + </div> + `:""} + ${t.event.extendedProps.description!==void 0?` + <div class="flex gap-2 items-baseline"> + <i class="ico--info" aria-label="Popis"></i> + <div class="[&_a]:underline">${t.event.extendedProps.description}</div> + </div> + `:""} + ${t.event.url!==""?` + <div class="flex gap-2 items-baseline"> + <i class="ico--link" aria-label="Adresa"></i> + <a class="underline cursor-pointer" href="${t.event.url}">${t.event.url}</a> + </div> + `:""} + </div> + `,trigger:t.event.url!==""&&t.event.extendedProps.location===void 0&&t.event.extendedProps.url===void 0?"hover":"click",allowHTML:!0,interactive:!0,onShow(n){n.popper.style.minWidth="250px"}}).show()},events:JSON.parse(this.events)}}}};var z_=function(){var e=this,n=e._self._c;return n("FullCalendar",{attrs:{options:e.calendarOptions}})},W_=[],G_=Ne(U_,z_,W_,!1,null,null,null,null);const Z_=G_.exports,Y_={props:{links:{type:Object,default:function(){return{praha:"https://praha.pirati.cz",stredocesky:"https://stredocesky.pirati.cz",jihocesky:"https://jihocesky.pirati.cz",plzensky:"https://plzensky.pirati.cz",karlovarsky:"https://karlovarsky.pirati.cz",ustecky:"https://ustecky.pirati.cz",liberecky:"https://liberecky.pirati.cz",kralovehradecky:"https://kralovehradecky.pirati.cz",moravskoslezsky:"https://moravskoslezsky.pirati.cz",pardubicky:"https://pardubicky.pirati.cz",vysocina:"https://vysocina.pirati.cz",jihomoravsky:"https://jihomoravsky.pirati.cz",olomoucky:"https://olomoucky.pirati.cz",zlinsky:"https://zlinsky.pirati.cz"}}}},methods:{selectRegion(t){const e=this.$props.links[t.id];window.open(e,"_blank")}},data(){return{current:null,regions:[{id:"jihocesky",name:"Jihočeský kraj",polygon:"M173.5,445.61L179.5,447.36L185.61599999999999,452.692L184.61599999999999,455.789L188.963,462.31L196.57,463.669L198.743,470.46099999999996L203.905,477.25299999999993L206.079,483.50199999999995L211.78400000000002,483.77299999999997L221.56500000000003,493.01L226.72700000000003,494.911L232.43300000000002,501.704L228.35800000000003,506.051L237.32400000000004,515.0169999999999H247.64800000000005L257.97200000000004,516.9179999999999L266.39400000000006,521.8089999999999L278.34800000000007,511.75599999999986L280.79300000000006,505.50799999999987L287.0420000000001,510.9419999999999L293.83400000000006,512.2999999999998L299.2680000000001,510.94199999999984L308.2340000000001,516.9189999999999L311.7660000000001,511.2139999999999L310.68000000000006,505.77999999999986L311.76700000000005,496.54299999999984L319.3740000000001,490.29499999999985L322.09100000000007,482.4159999999998L329.1550000000001,482.68699999999984L338.9360000000001,485.67499999999984L340.5660000000001,482.68699999999984L338.1210000000001,478.33999999999986L339.4790000000001,472.36199999999985L341.9240000000001,465.02599999999984L341.1090000000001,455.5169999999998L340.5660000000001,445.4639999999998L343.5540000000001,439.75899999999984L352.5200000000001,442.74699999999984L360.1270000000001,444.3779999999998L362.5720000000001,452.5279999999998L374.2550000000001,449.8109999999998L377.5150000000001,445.4629999999998L385.3940000000001,445.7349999999998L397.3490000000001,451.9829999999998L401.4240000000001,453.88499999999976L405.5010000000001,459.85699999999974L408.7510000000001,452.85699999999974L404.7510000000001,446.60699999999974L400.2510000000001,442.60699999999974L405.7510000000001,436.85699999999974L406.7510000000001,430.60699999999974L412.0010000000001,429.60699999999974L412.7510000000001,425.10699999999974L405.5010000000001,419.35699999999974L398.5010000000001,420.85699999999974L390.0010000000001,420.60699999999974L383.5010000000001,414.10699999999974L384.5010000000001,408.60699999999974L381.2510000000001,404.10699999999974L374.0010000000001,405.35699999999974L366.0010000000001,402.35699999999974L361.0010000000001,405.10699999999974L355.5010000000001,400.10699999999974L352.7510000000001,395.10699999999974L346.5010000000001,391.60699999999974L341.7510000000001,394.35699999999974L336.2510000000001,389.85699999999974L333.5010000000001,384.85699999999974L334.7510000000001,380.35699999999974L332.0010000000001,374.60699999999974V366.85699999999974L335.0010000000001,363.10699999999974L335.2510000000001,356.10699999999974L333.5010000000001,349.60699999999974L330.2510000000001,344.85699999999974L328.0010000000001,339.35699999999974L323.7510000000001,339.85699999999974L316.0010000000001,333.35699999999974L310.7510000000001,337.10699999999974L312.2510000000001,344.85699999999974L305.7510000000001,348.35699999999974L302.2510000000001,352.35699999999974L295.0010000000001,349.35699999999974L287.0010000000001,347.35699999999974L282.5010000000001,348.10699999999974L276.0010000000001,345.10699999999974L269.7510000000001,348.85699999999974C269.7510000000001,348.85699999999974,266.10300000000007,348.62199999999973,265.5010000000001,348.60699999999974S261.5010000000001,343.60699999999974,261.5010000000001,343.60699999999974H255.5010000000001L252.5010000000001,347.35699999999974L239.0010000000001,348.85699999999974L235.2510000000001,344.85699999999974H230.5010000000001L227.7510000000001,349.60699999999974L220.7510000000001,353.10699999999974L216.2510000000001,350.85699999999974L202.5010000000001,350.35699999999974L199.7510000000001,354.35699999999974L201.2510000000001,359.85699999999974V364.35699999999974L200.5010000000001,372.10699999999974L204.0010000000001,377.85699999999974L199.5010000000001,384.85699999999974L196.0010000000001,387.60699999999974V391.35699999999974L193.0010000000001,394.10699999999974L196.7510000000001,398.35699999999974L192.0010000000001,400.85699999999974L195.0010000000001,406.85699999999974L192.5010000000001,412.85699999999974L186.5010000000001,415.10699999999974L185.0010000000001,417.85699999999974L180.5010000000001,416.35699999999974L179.2510000000001,426.10699999999974L181.7510000000001,430.10699999999974L180.5010000000001,433.60699999999974L175.2510000000001,435.85699999999974L173.57600000000008,441.83199999999977L173.5,445.61Z"},{id:"plzensky",name:"Plzeňský kraj",polygon:"M151.027,246.771L147.637,255.059L141.986,256.566V265.042L134.452,259.39099999999996L126.541,258.44899999999996L111.472,268.24299999999994V273.89399999999995L107.61099999999999,277.75499999999994L101.30099999999999,274.6479999999999L98.09899999999999,276.1549999999999L91.883,272.38699999999994L84.34899999999999,275.58899999999994L78.981,280.95699999999994L73.99,276.5299999999999L69.469,280.2979999999999L62.355999999999995,280.0069999999999L54.477,291.9609999999999L54,299.11L45.784,306.63300000000004L52.033,313.696L59.64,318.858L59.097,326.737L64.259,332.71500000000003L63.987,340.05L72.138,345.75600000000003L71.32300000000001,354.721L72.68100000000001,360.969L79.20200000000001,364.501L84.90800000000002,370.479L89.25500000000001,377.81399999999996L97.13400000000001,379.98799999999994L99.85100000000001,378.08699999999993L106.91400000000002,379.44499999999994L115.88000000000001,385.96599999999995L116.96700000000001,393.30099999999993L124.84600000000002,401.17999999999995V404.9839999999999L132.181,410.68999999999994L133.53900000000002,416.3949999999999L138.43,419.9269999999999H145.222L151.743,426.4479999999999L157.72,435.1409999999999L158.535,444.6509999999999L169.674,451.9859999999999L173.501,445.6109999999999L173.576,441.8359999999999L175.251,435.8609999999999L180.501,433.6109999999999L181.751,430.1109999999999L179.251,426.1109999999999L180.501,416.3609999999999L185.001,417.8609999999999L186.501,415.1109999999999L192.501,412.8609999999999L195.001,406.8609999999999L192.001,400.8609999999999L196.751,398.3609999999999L193.001,394.1109999999999L196.001,391.3609999999999V387.6109999999999L199.501,384.8609999999999L204.001,377.8609999999999L200.501,372.1109999999999L201.251,364.3609999999999V359.8609999999999L199.751,354.3609999999999L202.501,350.3609999999999L199.251,344.8609999999999L199.501,338.8609999999999L200.751,334.3609999999999L197.501,331.8609999999999L194.001,327.3609999999999L195.751,322.3609999999999L191.751,318.1109999999999L197.001,314.3609999999999H202.501L207.251,308.6109999999999L205.001,304.1109999999999L207.501,299.8609999999999L205.251,293.8609999999999L210.001,289.1109999999999L208.751,285.3609999999999L209.251,278.8609999999999L205.001,276.1109999999999L200.001,275.1109999999999L199.751,271.1109999999999L194.751,272.1109999999999C194.751,272.1109999999999,189.695,265.40499999999986,189.501,265.3609999999999S185.001,267.1109999999999,185.001,267.1109999999999L180.501,264.8609999999999L176.501,262.6109999999999L175.751,258.3609999999999L169.001,257.8609999999999L165.001,260.3609999999999L161.501,257.1109999999999L164.251,253.61099999999988L161.95600000000002,250.7269999999999L155.175,246.7709999999999L151.027,246.771Z"},{id:"karlovarsky",name:"Karlovarský kraj",polygon:"M69.47,280.299L62.357,280.008V274.846L57.195,272.401L57.466,266.42400000000004L42.251,256.1L32.742,251.21000000000004L28.665999999999997,243.87400000000002L24.590999999999998,239.25500000000002L26.493,230.83300000000003L20.244,221.324L15.761,216.841L18.886,210.728L16.169999999999998,203.936H24.863999999999997L27.037,206.11V212.08700000000002H31.656L34.237,214.668L32.742000000000004,218.87900000000002L35.459,221.59600000000003V228.38800000000003L39.535000000000004,232.46400000000003L41.437000000000005,222.68300000000002C41.437000000000005,222.68300000000002,40.07900000000001,219.42200000000003,41.437000000000005,218.06400000000002S46.871,212.63000000000002,46.871,212.63000000000002L49.316,204.479L59.912000000000006,198.774V194.97L63.30800000000001,191.574L71.051,190.351L80.83200000000001,188.721L84.09200000000001,191.981L89.52600000000001,185.189L99.57900000000001,182.47199999999998L110.17500000000001,190.35099999999997L115.019,195.19499999999996H125.036L129.933,197.04499999999996C129.933,197.04499999999996,129.676,201.25999999999996,129.933,201.75399999999996S140.66899999999998,200.62399999999997,140.66899999999998,200.62399999999997L145.378,205.33299999999997L140.76299999999998,209.94799999999998L143.30599999999998,214.75099999999998L141.611,220.96599999999998L145.755,225.10999999999999L144.06,228.689L148.768,235.093L144.059,239.801L151.028,246.771L147.638,255.059L141.987,256.566V265.042L134.453,259.39099999999996L126.542,258.44899999999996L111.473,268.24299999999994V273.89399999999995L107.612,277.75499999999994L101.30199999999999,274.6479999999999L98.1,276.1549999999999L91.884,272.38699999999994L84.35,275.58899999999994L78.982,280.95699999999994L73.991,276.5299999999999L69.47,280.299Z"},{id:"jihomoravsky",name:"Jihomoravský kraj",polygon:"M546.667,336.777L540.5,330.61H522L518.333,336.61H506L502.75,339.86L501.5,344.61L506.75,348.11L505.25,351.11L500.25,354.11L503,360.61L500.75,365.36L502.75,370.36L503.25,379.36L493.5,383.86L491.75,387.86L487.25,390.86L491,395.61L487,398.86L485.75,403.36L491,408.61L485.25,412.11L486.75,417.11C486.75,417.11,491.12,419.697,491.25,420.36S489.5,423.61,489.5,423.61L485.75,424.61L483.5,430.11L478.75,428.86L475.75,433.61L470.25,436.36L464.5,434.61L460.25,437.11L454,432.86L447,435.86L444.75,441.11H438.75L435.5,445.61L432,446.61L429,452.36L423.25,448.11L417.75,453.86L413.25,450.61L408.75,452.86L405.5,459.86L409.03,460.409L416.09299999999996,461.223L424.24299999999994,467.201L432.39399999999995,468.016L434.29499999999996,464.755L442.44499999999994,465.57L454.3999999999999,473.992L455.7579999999999,478.34000000000003L471.51499999999993,487.033L490.26199999999994,486.762L504.66099999999994,489.479L510.09499999999997,483.22999999999996L513.083,475.08L523.136,474.537L527.483,479.155L537.536,480.78499999999997L538.8939999999999,487.578L544.0559999999999,485.947L553.0219999999999,491.382L561.1719999999999,489.208L566.6059999999999,492.74L569.3229999999999,506.324L573.6709999999998,505.781L576.9309999999998,494.37L579.1049999999998,486.491L588.0709999999998,475.351L590.2439999999998,467.74399999999997L593.5049999999998,466.38599999999997L598.3949999999998,461.496H603.5569999999998L613.6099999999998,465.84299999999996L622.3039999999997,471.00499999999994L630.9969999999997,465.29999999999995L638.3329999999997,470.18999999999994L644.8539999999997,468.55999999999995L651.6459999999997,462.3109999999999L649.4999999999998,459.61099999999993L645.7499999999998,454.11099999999993L639.4999999999998,452.61099999999993L639.2499999999998,448.61099999999993L633.4999999999998,445.11099999999993L626.9999999999998,447.61099999999993L621.4999999999998,442.61099999999993L616.2499999999998,442.86099999999993L616.4999999999998,437.11099999999993L608.2499999999998,436.11099999999993L601.9999999999998,432.61099999999993L602.7499999999998,426.86099999999993L599.7499999999998,423.61099999999993L591.4999999999998,426.86099999999993L587.7499999999998,422.11099999999993L592.7499999999998,416.86099999999993L597.2499999999998,413.86099999999993L597.9999999999998,408.86099999999993L591.2499999999998,408.11099999999993L592.7499999999998,402.86099999999993L589.7499999999998,397.61099999999993L593.3749999999998,392.73599999999993L589.4999999999998,386.11099999999993V382.36099999999993L586.3749999999998,379.23599999999993H579.5L578.5,373.86099999999993V368.86099999999993L572.5,365.11099999999993V360.61099999999993L568.625,356.73599999999993L566.25,351.61099999999993H560.75L557,355.86099999999993L561,359.86099999999993L565.125,363.98599999999993L560.75,370.36099999999993L557.75,373.36099999999993L550.25,367.86099999999993L553.75,364.36099999999993L549.25,358.36099999999993V351.86099999999993L554.25,346.61099999999993L548.5,344.86099999999993L543.75,344.61099999999993L546.667,336.777Z"},{id:"zlinsky",name:"Zlínský kraj",polygon:"M737.5,365.046L731.75,362.36L730.5,356.61L723.5,352.11L723,347.61L717.5,349.86H712.25L706.25,345.61L698.25,343.86L690.25,347.11L685.25,342.86H679.5L675.375,346.985L671.25,345.61L664.5,350.11V357.11C664.5,357.11,660.164,361.736,659.125,362.485S653.25,355.86,653.25,355.86L645.5,358.61L647.75,365.36L641,367.36L636,365.86L631.875,369.985L629,375.11L625.125,371.235L618.5,371.61L616.5,366.86L612.5,370.36L614.75,378.11L611,381.86L608.75,385.36L599.25,386.86L593.375,392.735L589.75,397.61L592.75,402.86L591.25,408.11L598,408.86L597.25,413.86L592.75,416.86L587.75,422.11L591.5,426.86L599.75,423.61L602.75,426.86L602,432.61L608.25,436.11L616.5,437.11L616.25,442.86L621.5,442.61L627,447.61L633.5,445.11L639.25,448.61L639.5,452.61L645.75,454.11L649.5,459.61L651.646,462.31H656.5369999999999L663.6009999999999,457.963L668.4909999999999,449.54L678.5439999999999,448.997L680.3099999999998,435.548L684.2489999999998,431.609L697.2899999999998,430.522L704.0829999999999,420.742V409.06L707.6139999999998,399.007V391.944L713.0479999999998,383.522L720.3839999999998,381.62L727.1759999999998,378.088L733.1539999999998,375.915L737.5,365.046Z"},{id:"vysocina",name:"Kraj Vysočina",polygon:"M502.75,339.86L495.5,332.61L489.667,332.44300000000004L482.5,323.94300000000004L468.5,320.77700000000004L466,314.94300000000004L459.333,315.11V311.44300000000004L452.5,315.77700000000004C452.5,315.77700000000004,452.729,321.25500000000005,452.5,321.44300000000004S444.833,318.77700000000004,444.833,318.77700000000004L441,316.77700000000004V311.77700000000004L435.833,309.11000000000007L431.833,308.27700000000004L427.66700000000003,303.94300000000004L420.66700000000003,299.44300000000004L411,299.61L402,292.61L396,293.11L392,296.36L392.5,302.36L386.75,302.11L384.75,306.36H379L375.75,309.36L371.75,308.36L368.75,310.11L368,314.11L364.25,317.61L364,323.36L371.75,327.11C371.75,327.11,372.032,331.726,372,332.36S367.25,335.61,367.25,335.61L363.5,333.86L361.25,337.86L356.75,337.11L350.25,337.36L342,336.11L336.5,341.61L336.25,346.86L333.5,349.61L335.25,356.11L335,363.11L332,366.86V374.61L334.75,380.36L333.5,384.86L336.25,389.86L341.75,394.36L346.5,391.61L352.75,395.11L355.5,400.11L361,405.11L366,402.36L374,405.36L381.25,404.11L384.5,408.61L383.5,414.11L390,420.61L398.5,420.86L405.5,419.36L412.75,425.11L412,429.61L406.75,430.61L405.75,436.86L400.25,442.61L404.75,446.61L408.75,452.86L413.25,450.61L417.75,453.86L423.25,448.11L429,452.36L432,446.61L435.5,445.61L438.75,441.11H444.75L447,435.86L454,432.86L460.25,437.11L464.5,434.61L470.25,436.36L475.75,433.61L478.75,428.86L483.5,430.11L485.75,424.61L489.5,423.61L491.25,420.36L486.75,417.11L485.25,412.11L491,408.61L485.75,403.36L487,398.86L491,395.61L487.25,390.86L491.75,387.86L493.5,383.86L503.25,379.36L502.75,370.36L500.75,365.36L503,360.61L500.25,354.11L505.25,351.11L506.75,348.11L501.5,344.61L502.75,339.86Z"},{id:"stredocesky",name:"Středočeský kraj",polygon:"M404.167,273.11L397.33399999999995,269.777L397.167,265.11L391.667,263.277L386,259.944L386.833,255.27700000000002L390.24800000000005,250.347L392.32000000000005,243.566L384.22100000000006,239.234L388.1770000000001,232.26500000000001L386.1050000000001,227.74400000000003L387.23500000000007,222.09400000000002L385.9170000000001,216.06600000000003L382.9030000000001,213.05200000000002L377.4410000000001,216.63100000000003L368.5880000000001,215.50100000000003V210.22700000000003L363.7850000000001,205.42400000000004L357.4750000000001,204.20000000000005L356.1570000000001,199.49100000000004L360.9600000000001,194.68800000000005L358.0410000000001,186.68300000000005L359.7360000000001,181.97400000000005L356.9110000000001,177.45300000000006L359.35700000000014,173.68500000000006L354.27200000000016,171.42500000000007V167.65800000000007L347.1610000000002,164.03200000000007L343.91200000000015,160.78300000000007H338.35500000000013L334.11700000000013,156.54500000000007L329.9730000000001,163.70200000000008L323.3800000000001,171.0480000000001L321.1200000000001,168.7880000000001L315.47000000000014,169.7290000000001V174.4380000000001L307.55900000000014,180.8420000000001L298.14100000000013,183.1020000000001L295.88100000000014,176.32100000000008L284.95300000000015,176.88600000000008L282.69300000000015,179.90100000000007L283.63500000000016,187.05900000000005H278.92600000000016L277.41900000000015,191.58000000000004H272.52200000000016L274.21700000000016,200.05600000000004L270.63800000000015,203.63500000000005L262.53900000000016,202.88200000000006L258.20600000000013,207.21500000000006H241.81900000000013L233.90800000000013,203.63600000000005L227.50400000000013,207.02600000000004V211.54700000000003L222.32400000000013,216.72700000000003H216.39100000000013L214.36600000000013,218.75100000000003L214.50800000000012,222.66000000000003L208.8570000000001,219.26900000000003L202.6420000000001,225.48400000000004L193.97700000000012,225.29600000000005L185.6890000000001,230.38200000000006L178.3430000000001,230.75800000000007L172.6920000000001,236.03200000000007L171.5620000000001,242.62400000000008L165.3460000000001,245.26100000000008L161.9560000000001,250.72300000000007L164.2510000000001,253.60700000000006L161.5010000000001,257.1070000000001L165.0010000000001,260.3570000000001L169.0010000000001,257.8570000000001L175.7510000000001,258.3570000000001L176.5010000000001,262.6070000000001L180.5010000000001,264.8570000000001L185.0010000000001,267.1070000000001L189.5010000000001,265.3570000000001L194.7510000000001,272.1070000000001L199.7510000000001,271.1070000000001L200.0010000000001,275.1070000000001L205.0010000000001,276.1070000000001L209.2510000000001,278.8570000000001L208.7510000000001,285.3570000000001L210.0010000000001,289.1070000000001L205.2510000000001,293.8570000000001L207.5010000000001,299.8570000000001L205.0010000000001,304.1070000000001L207.2510000000001,308.6070000000001L202.5010000000001,314.3570000000001H197L191.75,318.1070000000001L195.75,322.3570000000001L194,327.3570000000001L197.5,331.8570000000001L200.75,334.3570000000001L199.5,338.8570000000001L199.25,344.8570000000001L202.5,350.3570000000001L216.25,350.8570000000001L220.75,353.1070000000001L227.75,349.6070000000001L230.5,344.8570000000001H235.25L239,348.8570000000001L252.5,347.3570000000001L255.5,343.6070000000001H261.5L265.5,348.6070000000001L269.75,348.8570000000001L276,345.1070000000001L282.5,348.1070000000001L287,347.3570000000001L295,349.3570000000001L302.25,352.3570000000001L305.75,348.3570000000001L312.25,344.8570000000001L310.75,337.1070000000001L316,333.3570000000001L323.75,339.8570000000001L328,339.3570000000001L330.25,344.8570000000001L333.5,349.6070000000001L336.25,346.8570000000001L336.5,341.6070000000001L342,336.1070000000001L350.25,337.3570000000001L356.75,337.1070000000001L361.25,337.8570000000001L363.5,333.8570000000001L367.25,335.6070000000001L372,332.3570000000001L371.75,327.1070000000001L364,323.3570000000001L364.25,317.6070000000001L368,314.1070000000001L368.75,310.1070000000001L371.75,308.3570000000001L375.75,309.3570000000001L379,306.3570000000001H384.75L386.75,302.1070000000001L392.5,302.3570000000001L392,296.3570000000001L396,293.1070000000001L402,292.6070000000001L400,284.4410000000001L403.667,280.7740000000001L404.167,273.11ZM310,254.11L305.167,254.61L301.83399999999995,256.94300000000004L304.167,258.94300000000004L304.667,264.11L301.167,267.277L297.167,264.61L292,263.944L289.5,266.444L284.833,267.611L282.16600000000005,271.444L278.4990000000001,271.611L274.9990000000001,273.27799999999996L273.9990000000001,275.94499999999994L269.4990000000001,276.94499999999994L266.16600000000005,273.27799999999996L267.833,267.94499999999994L263.16600000000005,265.6119999999999L264.4990000000001,262.6119999999999L260.66600000000005,260.1119999999999L257.66600000000005,255.7789999999999L259.9990000000001,252.2789999999999L256.16600000000005,247.6119999999999L263.16600000000005,244.1119999999999L265.833,245.6119999999999L270.5,245.9449999999999L269.333,241.6119999999999L272.333,239.7789999999999L276.5,240.6119999999999L281.167,238.1119999999999L283.667,234.7789999999999L289.167,234.9459999999999L290.5,237.2789999999999L293.667,238.2789999999999L294.667,239.7789999999999L298.33399999999995,238.9459999999999L297.33399999999995,242.61299999999991L302.167,243.77999999999992L304.33399999999995,247.27999999999992H307.5009999999999L310.5009999999999,251.11299999999991L310,254.11Z"},{id:"praha",name:"Hlavní město Praha",polygon:"M256.167,247.61L263.167,244.11L265.83399999999995,245.61C265.83399999999995,245.61,270.00299999999993,246.41500000000002,270.5009999999999,245.943S269.33399999999995,241.61,269.33399999999995,241.61L272.33399999999995,239.77700000000002L276.5009999999999,240.61L281.1679999999999,238.11L283.6679999999999,234.77700000000002L289.1679999999999,234.94400000000002L290.5009999999999,237.27700000000002L293.6679999999999,238.27700000000002L294.6679999999999,239.77700000000002L298.33499999999987,238.94400000000002L297.33499999999987,242.61100000000002L302.1679999999999,243.77800000000002L304.33499999999987,247.27800000000002H307.50199999999984L310.50199999999984,251.11100000000002L310.00199999999984,254.11100000000002L305.1689999999998,254.61100000000002L301.8359999999998,256.944L304.1689999999998,258.944L304.6689999999998,264.111L301.1689999999998,267.27799999999996L297.1689999999998,264.611L292,263.944L289.5,266.444L284.833,267.611L282.16600000000005,271.444L278.4990000000001,271.611L274.9990000000001,273.27799999999996L273.9990000000001,275.94499999999994L269.4990000000001,276.94499999999994L266.16600000000005,273.27799999999996L267.833,267.94499999999994L263.16600000000005,265.6119999999999L264.4990000000001,262.6119999999999L260.66600000000005,260.1119999999999L257.66600000000005,255.7789999999999L259.9990000000001,252.2789999999999L256.167,247.61Z"},{id:"ustecky",name:"Ústecký kraj",polygon:"M110.174,190.351L119.683,185.189L119.412,177.85399999999998L122.67200000000001,174.593L132.453,172.963L140.604,174.04999999999998L143.864,168.07299999999998V163.72599999999997L146.58100000000002,158.83599999999998H149.841L151.471,163.72599999999997L155.546,162.36799999999997V156.39099999999996L158.128,153.80899999999997L159.62199999999999,149.86999999999998H163.42499999999998L165.05499999999998,155.03199999999998L169.402,157.749L177.82399999999998,151.772L178.367,141.72L182.30599999999998,137.781L186.789,140.09L192.22299999999998,135.20000000000002L195.755,138.73200000000003L202.27599999999998,135.20000000000002L209.611,134.38500000000002L211.24099999999999,138.18900000000002H214.23L219.11999999999998,133.29900000000004V125.69200000000004L225.36899999999997,124.60500000000003L229.71599999999998,120.25800000000004L235.421,123.79000000000003L244.11499999999998,119.17100000000003L247.647,115.63900000000004L254.982,116.18200000000004L258.514,109.11900000000004H263.404L265.306,111.29200000000004L275.087,107.76000000000005L276.174,100.96800000000005L268.02299999999997,98.25100000000005V93.08900000000004L259.873,91.45900000000005L262.861,86.02500000000005L265.578,78.96100000000004L273.729,82.76500000000004L275.631,84.66700000000004H280.52099999999996L288.128,81.95000000000005L293.018,86.84000000000005L297.909,91.45900000000005L298.18,97.43600000000005L294.105,104.22800000000005L303.34200000000004,102.59800000000006L301.71200000000005,112.10700000000006V116.45400000000005L295.31000000000006,118.69000000000005L294.36800000000005,126.03600000000006L287.96400000000006,123.58700000000006L280.8070000000001,122.64500000000007L282.3140000000001,128.67200000000005L277.5110000000001,133.47500000000005V137.33600000000004L273.3200000000001,141.52700000000004C273.3200000000001,141.52700000000004,269.2500000000001,147.21300000000005,269.3180000000001,148.26100000000005S272.7080000000001,153.72300000000004,272.7080000000001,153.72300000000004V158.80900000000005L279.8670000000001,170.67200000000005L284.9510000000001,176.88900000000007L282.6910000000001,179.90400000000005L283.6330000000001,187.06200000000004H278.9240000000001L277.4170000000001,191.58300000000003H272.5200000000001L274.2150000000001,200.05900000000003L270.6360000000001,203.63800000000003L262.5370000000001,202.88500000000005L258.20400000000006,207.21800000000005H241.81700000000006L233.90600000000006,203.63900000000004L227.50200000000007,207.02900000000002V211.55L222.32200000000006,216.73000000000002H216.38900000000007L214.36400000000006,218.75400000000002L214.50600000000006,222.663L208.85500000000005,219.27200000000002L202.64000000000004,225.48700000000002L193.97500000000005,225.29900000000004L185.68700000000004,230.38500000000005L178.34100000000004,230.76100000000005L172.69000000000003,236.03500000000005L171.56000000000003,242.62700000000007L165.34400000000002,245.26400000000007L161.95400000000004,250.72600000000006L155.17300000000003,246.77000000000007L151.02600000000004,246.77100000000007L144.05700000000004,239.80100000000007L148.76600000000005,235.09300000000007L144.05800000000005,228.68900000000008L145.75300000000004,225.11000000000007L141.60900000000004,220.96600000000007L143.30400000000003,214.75100000000006L140.76100000000002,209.94800000000006L145.37600000000003,205.33300000000006L140.66700000000003,200.62400000000005L129.93100000000004,201.75400000000005V197.04500000000004L125.03400000000003,195.19500000000005H115.01700000000004L110.174,190.351Z"},{id:"pardubicky",name:"Pardubický kraj",polygon:"M555.742,226.757L554,234.944L549.333,243.944L547.833,252.611L550.333,256.77799999999996L540.333,264.94499999999994V270.6119999999999L542.833,276.44499999999994L543.833,283.77899999999994L546.25,286.1959999999999L540.667,289.94499999999994L544.8330000000001,298.1119999999999L549.3330000000001,306.94499999999994V311.44499999999994L555.0000000000001,313.94499999999994V321.44499999999994L549.8330000000001,326.6119999999999V332.2789999999999L546.667,336.7789999999999L540.5,330.6119999999999H522L518.333,336.6119999999999H506L502.75,339.8619999999999L495.5,332.6119999999999L489.667,332.44499999999994L482.5,323.94499999999994L468.5,320.77899999999994L466,314.94499999999994L459.333,315.1119999999999V311.44499999999994L452.5,315.77899999999994V321.44499999999994L444.833,318.77899999999994L441,316.77899999999994V311.77899999999994L435.833,309.11199999999997L431.833,308.27899999999994L427.66700000000003,303.94499999999994L420.66700000000003,299.44499999999994L411,299.61L402,292.61L400,284.444L403.667,280.77700000000004L404.167,273.11000000000007L397.33399999999995,269.77700000000004L397.167,265.11000000000007L391.667,263.27700000000004L386,259.944L386.833,255.27700000000002L390.24800000000005,250.347L398.95900000000006,248.40300000000002L408.89500000000004,239.79900000000004L414.16900000000004,242.81300000000005C414.16900000000004,242.81300000000005,423.29800000000006,243.14300000000006,423.77400000000006,242.81300000000005S428.86000000000007,235.84400000000005,428.86000000000007,235.84400000000005H433.75700000000006V241.49500000000006L437.24100000000004,242.72000000000006L440.53700000000003,239.42400000000006L446.94100000000003,236.22200000000007L454.66400000000004,236.41000000000005L458.05500000000006,239.80000000000004V246.39300000000003H462.5760000000001L466.7200000000001,250.53700000000003L473.9720000000001,254.77500000000003L478.2100000000001,259.01300000000003L484.8020000000001,257.13000000000005H494.2200000000001L495.9150000000001,249.97300000000004L501.1890000000001,244.69900000000004L511.17100000000005,241.87400000000005V236.41200000000006H515.1260000000001L523.5210000000001,240.17100000000005L535.9080000000001,247.13600000000005L542.9710000000001,240.07300000000006L546.6390000000001,236.40500000000006L546.5030000000002,230.02000000000007L555.742,226.757Z"},{id:"kralovehradecky",name:"Královéhradecký kraj",polygon:"M401.151,127.863L409.302,128.406L418.267,132.481L420.984,135.198L427.233,136.285L434.025,132.481L436.74199999999996,138.458L440.54599999999994,146.88H445.43699999999995L452.49999999999994,144.16299999999998L456.84799999999996,152.313L456.304,157.475L463.097,152.585L467.715,147.966L475.86499999999995,153.67100000000002L479.941,153.943L481.299,147.966H492.438L506.294,161.55L501.67499999999995,165.626L500.58799999999997,173.505L491.895,176.765L479.397,186.546L480.484,191.98L487.54699999999997,200.13L493.525,197.142L496.921,200.53799999999998V204.749L500.792,208.62099999999998L505.75,208.01L511.456,218.063L519.335,224.31199999999998L520.693,234.36499999999998L523.521,240.16899999999998L515.126,236.41H511.171V241.87199999999999L501.18899999999996,244.69699999999997L495.91499999999996,249.97099999999998L494.21999999999997,257.128H484.80199999999996L478.21,259.01099999999997L473.972,254.77299999999997L466.71999999999997,250.53499999999997L462.57599999999996,246.39099999999996H458.05499999999995V239.8L454.66399999999993,236.41000000000003L446.9409999999999,236.22200000000004L440.5369999999999,239.42400000000004L437.24099999999993,242.72000000000003C437.24099999999993,242.72000000000003,434.0929999999999,241.62100000000004,433.75699999999995,241.49500000000003S433.75699999999995,235.84400000000002,433.75699999999995,235.84400000000002H428.85999999999996L423.77399999999994,242.81300000000002H414.1689999999999L408.8949999999999,239.799L398.95899999999995,248.40300000000002L390.24799999999993,250.347L392.31999999999994,243.566L384.22099999999995,239.234L388.17699999999996,232.26500000000001L386.10499999999996,227.74400000000003L387.23499999999996,222.09400000000002L385.917,216.06600000000003L382.90299999999996,213.05200000000002L377.441,216.63100000000003L368.58799999999997,215.50100000000003V210.22700000000003L363.78499999999997,205.42400000000004L357.47499999999997,204.20000000000005L356.157,199.49100000000004L360.96,194.68800000000005L358.041,186.68300000000005L359.736,181.97400000000005L356.911,177.45300000000006L359.357,173.68500000000006L367.26800000000003,178.77100000000007L374.425,174.06200000000007L385.35,177.82900000000006L388.552,182.72600000000006L393.449,179.90100000000007V174.81600000000006L399.288,171.04900000000006L403.809,175.57000000000005C403.809,175.57000000000005,413.317,173.60500000000005,413.415,173.49800000000005S413.415,169.91900000000004,413.415,169.91900000000004L407.764,164.26800000000003L410.778,158.24100000000004L407.011,154.47400000000005L408.517,150.33000000000004L405.316,142.60700000000003L407.19899999999996,134.69600000000003L401.151,127.863Z"},{id:"liberecky",name:"Liberecký kraj",polygon:"M401.151,127.863L407.197,134.697L405.314,142.608L408.51500000000004,150.33100000000002L407.00900000000007,154.47500000000002L410.77600000000007,158.24200000000002L407.76200000000006,164.269L413.41300000000007,169.92000000000002V173.49900000000002L403.8070000000001,175.57100000000003L399.28600000000006,171.05000000000004L393.44700000000006,174.81700000000004V179.90200000000004L388.55000000000007,182.72700000000003L385.34800000000007,177.83000000000004L374.42300000000006,174.06300000000005L367.2660000000001,178.77200000000005L359.3550000000001,173.68600000000004L354.2700000000001,171.42600000000004V167.65900000000005L347.1590000000001,164.03300000000004L343.9100000000001,160.78400000000005H338.35300000000007L334.11500000000007,156.54600000000005L329.97100000000006,163.70300000000006L323.37800000000004,171.04900000000006L321.11800000000005,168.78900000000007L315.4680000000001,169.73000000000008V174.43900000000008L307.5570000000001,180.84300000000007L298.13900000000007,183.10300000000007L295.8790000000001,176.32200000000006L284.9510000000001,176.88700000000006L279.8670000000001,170.67000000000004L272.7080000000001,158.80700000000004V153.72100000000003L269.3180000000001,148.25900000000004L273.3200000000001,141.52500000000003L277.5110000000001,137.33400000000003V133.47300000000004L282.3140000000001,128.67000000000004L280.8070000000001,122.64300000000004L287.96400000000006,123.58500000000004L294.36800000000005,126.03400000000003L295.31000000000006,118.68800000000003L301.71200000000005,116.45200000000003L318.557,121.61400000000003L323.99100000000004,113.73500000000003L334.04300000000006,113.19200000000002C334.04300000000006,113.19200000000002,340.65700000000004,114.42000000000002,341.1070000000001,114.00700000000002S342.7370000000001,104.49800000000002,342.7370000000001,104.49800000000002L344.9100000000001,95.80400000000002L340.29100000000005,91.18500000000002L344.63800000000003,86.83800000000002H351.973L355.777,90.37000000000002L361.75399999999996,87.11000000000001L365.01399999999995,92.81600000000002L369.90399999999994,90.64300000000001L375.33799999999997,97.16400000000002L372.893,102.59800000000001L375.60999999999996,111.02000000000001L380.364,115.77400000000002L384.847,120.25700000000002L385.39,128.13600000000002L387.156,129.90200000000002L393.269,124.33200000000002L401.151,127.863Z"},{id:"olomoucky",name:"Olomoucký kraj",polygon:"M617.687,214.259V224.60999999999999H612.75L608.25,229.10999999999999L598.25,235.60999999999999V242.60999999999999L594.75,246.10999999999999L597.5,251.10999999999999L591.5,259.61L589.75,267.36L593.875,271.485L590,277.86L588.75,285.36L592.375,288.985H597V294.36H603.25L607.25,298.36L614.5,296.36L620.5,305.11H625.5L629.75,307.36L634.75,303.86L639,308.11L644.5,305.11L652,309.11L650.25,317.61H658L660.75,325.11L666.75,327.11L671.875,332.235L671.25,337.36H676.75L679.5,342.86L675.375,346.985L671.25,345.61L664.5,350.11V357.11L659.125,362.485L653.25,355.86L645.5,358.61L647.75,365.36L641,367.36L636,365.86L631.875,369.985L629,375.11L625.125,371.235L618.5,371.61L616.5,366.86L612.5,370.36L614.75,378.11L611,381.86L608.75,385.36L599.25,386.86L593.375,392.735L589.5,386.11V382.36L586.375,379.235H579.5L578.5,373.86V368.86L572.5,365.11V360.61L568.625,356.735L566.25,351.61H560.75L557,355.86L561,359.86L565.125,363.985L560.75,370.36L557.75,373.36L550.25,367.86L553.75,364.36L549.25,358.36V351.86L554.25,346.61L548.5,344.86L543.75,344.61L546.667,336.777L549.8330000000001,332.277V326.61L555.0000000000001,321.44300000000004V313.94300000000004L549.3330000000001,311.44300000000004V306.94300000000004L544.8330000000001,298.11L540.667,289.94300000000004L546.25,286.194L543.833,283.77700000000004L542.833,276.44300000000004L540.333,270.61V264.94300000000004C540.333,264.94300000000004,550.221,257.03200000000004,550.333,256.77600000000007S547.833,252.60900000000007,547.833,252.60900000000007L549.333,243.94200000000006L554,234.94200000000006L555.742,226.75500000000005L564.435,222.67900000000006H571.228L571.4989999999999,214.25700000000006L567.016,209.77400000000006L562.534,208.00800000000007L559.273,196.32500000000007L552.21,192.52100000000007L556.014,185.18600000000006L564.436,187.35900000000007L570.6850000000001,188.71700000000007L581.009,191.70600000000007L585.22,195.9170000000001L592.4200000000001,193.60700000000008L593.5070000000001,200.67100000000008L599.2120000000001,205.0180000000001H607.9060000000001L610.0790000000001,212.62500000000009L617.687,214.259Z"},{id:"moravskoslezsky",name:"Moravskoslezský kraj",polygon:"M617.687,214.259V224.60999999999999H612.75L608.25,229.10999999999999L598.25,235.60999999999999V242.60999999999999L594.75,246.10999999999999L597.5,251.10999999999999L591.5,259.61L589.75,267.36L593.875,271.485L590,277.86L588.75,285.36L592.375,288.985H597V294.36H603.25L607.25,298.36L614.5,296.36L620.5,305.11H625.5L629.75,307.36L634.75,303.86L639,308.11L644.5,305.11L652,309.11L650.25,317.61H658L660.75,325.11L666.75,327.11L671.875,332.235L671.25,337.36H676.75L679.5,342.86H685.25L690.25,347.11L698.25,343.86L706.25,345.61L712.25,349.86H717.5L723,347.61L723.5,352.11L730.5,356.61L731.75,362.36L737.5,365.046L742.119,363.416L750.813,352.005L750.269,345.484L756.247,342.767L761.1379999999999,345.212L769.2879999999999,343.582L776.0799999999999,345.755L784.7739999999999,341.68L786.1319999999998,335.159L781.2409999999999,321.847L778.2529999999998,312.60999999999996H771.1889999999999L768.2009999999998,309.078L759.2349999999998,306.361L757.8769999999998,299.84L751.8989999999999,286.799L755.1599999999999,279.736L752.4429999999999,278.649L749.7259999999999,271.042L744.2919999999999,275.11699999999996L733.6959999999999,269.14L724.4579999999999,267.782L721.1979999999999,273.488L716.3069999999999,265.338L710.0579999999999,262.34900000000005L707.0699999999998,258.5450000000001L701.6359999999999,262.07700000000006L696.2019999999999,259.63200000000006L696.6089999999999,252.97500000000005L692.127,248.49300000000005L685.606,249.58000000000004L682.345,258.00200000000007C682.345,258.00200000000007,676.811,263.9390000000001,676.096,264.2510000000001S670.255,264.11500000000007,670.255,264.11500000000007L664.686,258.54600000000005L658.98,256.64400000000006L655.992,247.67900000000006L650.8299999999999,240.34300000000005L644.9879999999999,241.02300000000005L639.419,235.45300000000006V230.83400000000006L649.1999999999999,227.84500000000006L656.943,224.04100000000005V219.55800000000005L651.917,214.53200000000004L653.004,209.09800000000004L647.57,203.66400000000004L644.8520000000001,209.09800000000004L640.777,213.17300000000003L627.1930000000001,212.08600000000004L617.687,214.259Z"}]}}};var Q_=function(){var e=this,n=e._self._c;return n("div",{staticClass:"region-map flex justify-center items-center"},[n("div",{staticClass:"w-full max-w-4xl block"},[n("svg",{attrs:{"xmlns:xlink":"http://www.w3.org/1999/xlink",xmlns:"http://www.w3.org/2000/svg",id:"svgmapy",version:"1.1",viewBox:"0 75 800 500"}},[n("g",e._l(e.regions,function(i){return n("a",{key:i.id,attrs:{"xlink:href":"#"},on:{mouseover:function(s){e.current=i},mouseout:function(s){e.current=null},click:function(s){return e.selectRegion(i)}}},[n("path",{staticClass:"map-polygon region-map__region",class:{"region-map__region--current":e.current===i},attrs:{d:i.polygon}})])}),0)])])])},q_=[],J_=Ne(Y_,Q_,q_,!1,null,null,null,null);const K_=J_.exports,X_={props:{initial:{default:()=>{}},syncLocation:{type:Boolean,default:!1},locationParam:{type:String,default:"view"}},data(){return{views:this.$props.initial,queryParams:null,keyListener:t=>{t.keyCode===27&&this.hideAllViews()}}},watch:{routeView(){new URLSearchParams(window.location.search)}},methods:{setView(t,e,n=!1){if(n&&Object.keys(this.$data.views).forEach(i=>{i!==t&&this.setView(i,!1)}),this.$data.views[t]=e,e&&this.$props.syncLocation){const i=new URLSearchParams(window.location.search);i.set(this.$props.locationParam,t),history.pushState(null,null,"?"+i.toString())}},setViews(t){this.$data.views=Object.assign({},this.data.views,t)},toggleView(t){!this.isCurrentView(t)&&this.setView(t,!this.isCurrentView(t),!0)},showView(t){this.setView(t,!0,!0)},isCurrentView(t){return this.$data.views[t]},hideAllViews(){Object.keys(this.$data.views).forEach(t=>{this.setView(t,!1)})}},mounted(){if(window.addEventListener("keydown",this.$data.keyListener),this.$props.syncLocation){const e=new URLSearchParams(window.location.search).get(this.$props.locationParam);e&&Object.keys(this.$data.views).indexOf(e)!==-1&&this.showView(e)}},destroyed(){window.removeEventListener("keydown",this.$data.keyListener)}};var e5=function(){var e=this,n=e._self._c;return n("div",[e._t("default",null,{views:e.views,isCurrentView:e.isCurrentView,toggleView:e.toggleView,showView:e.showView,setView:e.setView})],2)},t5=[],n5=Ne(X_,e5,t5,!1,null,null,null,null);const r5=n5.exports;var Fn=Fu;Fn="default"in Fn?Fn.default:Fn;var i5="2.2.2",a5=/^2\./.test(Fn.version);a5||Fn.util.warn("VueClickaway "+i5+" only supports Vue 2.x, and does not support Vue "+Fn.version);var da="_vue_clickaway_handler";function Bu(t,e,n){Of(t);var i=n.context,s=e.value;if(typeof s=="function"){var l=!1;setTimeout(function(){l=!0},0),t[da]=function(u){var p=u.path||(u.composedPath?u.composedPath():void 0);if(l&&(p?p.indexOf(t)<0:!t.contains(u.target)))return s.call(i,u)},document.documentElement.addEventListener("click",t[da],!1)}}function Of(t){document.documentElement.removeEventListener("click",t[da],!1),delete t[da]}var s5={bind:Bu,update:function(t,e){e.value!==e.oldValue&&Bu(t,e)},unbind:Of},o5={directives:{onClickaway:s5}},l5=o5;const c5={name:"Popout",mixins:[l5],provide(){return{sharedState:this.sharedState}},data(){return{sharedState:{active:!1}}},methods:{toggle(){this.sharedState.active=!this.sharedState.active},away(){this.sharedState.active=!1}},computed:{active(){return this.sharedState.active}}};var u5=function(){var e=this,n=e._self._c;return n("div",{directives:[{name:"on-clickaway",rawName:"v-on-clickaway",value:e.away,expression:"away"}],staticClass:"popout"},[n("div",{staticClass:"popout__toggle-wrapper",class:{"popout__toggle-wrapper--active":e.active},on:{click:e.toggle}},[n("div",{staticClass:"popout__toggle-name"},[e._t("toggler")],2),n("div",{staticClass:"popout__toggle-arrow"},[e.active?e._e():n("i",{staticClass:"ico--chevron-down"}),e.active?n("i",{staticClass:"ico--chevron-up"}):e._e()])]),n("ui-slide-up-down",{attrs:{active:e.active,duration:200}},[e._t("default")],2)],1)},d5=[],f5=Ne(c5,u5,d5,!1,null,null,null,null);const p5=f5.exports,h5={name:"PopoutContent",inject:["sharedState"],computed:{active(){return this.sharedState.active}}};var v5=function(){var e=this,n=e._self._c;return e.active?n("ul",{staticClass:"popout__content-wrapper"},[e._t("default")],2):e._e()},g5=[],m5=Ne(h5,v5,g5,!1,null,null,null,null);const y5=m5.exports,b5={name:"PopoutItem"};var _5=function(){var e=this,n=e._self._c;return n("li",[e._t("default")],2)},w5=[],L5=Ne(b5,_5,w5,!1,null,null,null,null);const A5=L5.exports,C5={data(){return{isMdScreenSize:mc(),show:!1,resizeHandler:()=>{this.$data.isMdScreenSize=mc()}}},props:{href:{type:String},label:{type:String},labelclass:{type:String},wrapperclass:{type:String,default:""},slotwrapperclass:{type:String,default:""}},methods:{handleClick(){this.$props.href&&(window.location=this.$props.href),this.$data.show=!this.$data.show}},mounted(){this.$nextTick(()=>{window.addEventListener("resize",this.$data.resizeHandler)})},beforeDestroy(){window.removeEventListener("resize",this.$data.resizeHandler)}};var E5=function(){var e=this,n=e._self._c;return n("div",{class:[e.wrapperclass,"footer-collapsible"]},[n("span",{staticClass:"head-8xl xl:head-9xl footer-collapsible__toggle",class:[e.labelclass,e.show?"footer-collapsible__toggle--open":""],on:{click:e.handleClick}},[e._v(e._s(e.label))]),n("div",{directives:[{name:"show",rawName:"v-show",value:e.show||e.isMdScreenSize,expression:"show || isMdScreenSize"}],class:[e.slotwrapperclass]},[e._t("default")],2)])},S5=[],x5=Ne(C5,E5,S5,!1,null,null,null,null);const D5=x5.exports,T5={name:"FaqSectionHeader",props:["iteration","name"],data(){return{top:zi()?parseInt(this.iteration)*1.9:parseInt(this.iteration)*1.9+3.8}}},k5=Object.assign(T5,{setup(t){return{__sfc:!0}}});var R5=function(){var e=this,n=e._self._c;return e._self._setupProxy,n("div",{staticClass:"sticky border-y bg-white border-black",style:"top: "+this.top+"em"},[n("a",{staticClass:"container--wide py-1 flex gap-1 items-center",attrs:{href:"#faq"+this.iteration}},[n("svg",{attrs:{width:"20",height:"21",viewBox:"0 0 10 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[n("g",[n("path",{staticClass:"arrow-icon",attrs:{d:"M0 16.5H4.40178L11 10.0002L4.40228 3.5H0L6.60069 10.0002L0 16.5Z",fill:"#000"}})])]),n("span",{staticClass:"mt-0.5"},[e._v(" "+e._s(e.name)+" ")])])])},O5=[],M5=Ne(k5,R5,O5,!1,null,null,null,null);const I5=M5.exports,N5={name:"CardScroll",data(){return{realArrowPosition:this.arrowPosition!==void 0?this.arrowPosition:"top"}},methods:{moveLeft:function(t){this.$refs.scrollable.getBoundingClientRect(),this.$refs.scrollable.scrollBy({left:-this.$refs.scrollable.offsetWidth-32,behavior:"smooth"})},moveRight:function(t){this.$refs.scrollable.getBoundingClientRect(),this.$refs.scrollable.scrollBy({left:this.$refs.scrollable.offsetWidth+32,behavior:"smooth"})}},props:["classes","scrollerClasses","arrowPosition"]};var $5=function(){var e=this,n=e._self._c;return n("div",[e.realArrowPosition==="top"?n("div",{class:"flex gap-4 justify-end text-white text-4xl pt-2 cursor-pointer lg:hidden "+e.scrollerClasses},[n("i",{staticClass:"ico--chevron-left",on:{click:e.moveLeft}}),n("i",{staticClass:"ico--chevron-right",on:{click:e.moveRight}})]):e._e(),n("div",{ref:"scrollable",class:e.classes+" hide-scrollbar"},[e._t("default")],2),e.realArrowPosition==="bottom"?n("div",{class:"flex gap-4 justify-end text-white text-4xl pt-2 cursor-pointer lg:hidden "+e.scrollerClasses},[n("i",{staticClass:"ico--chevron-left",on:{click:e.moveLeft}}),n("i",{staticClass:"ico--chevron-right",on:{click:e.moveRight}})]):e._e()])},P5=[],H5=Ne(N5,$5,P5,!1,null,null,null,null);const j5=H5.exports,B5={name:"CardProgramItemPoint",props:["content","isFirst"]};var V5=function(){var e=this,n=e._self._c;return n("div",{staticClass:"[&_p]:text-lg [&_p]:leading-7 [&_p]:duration-150 [&_p]:delay-300 mt-[-5px] xl:w-1/2 xl:pt-1 xl:m-0"},[n("div",{staticClass:"content-block"},[n("p",[e._v(" "+e._s(this.content)+" ")])])])},F5=[],U5=Ne(B5,V5,F5,!1,null,null,null,null);const z5=U5.exports,W5={name:"CardProgramItem",props:["slug","title","number","content","points","defaultIsOpen"],data(){return{isOpen:this.defaultIsOpen}},methods:{openClose:function(){if(this.isOpen=!this.isOpen,this.isOpen){let t=new URLSearchParams(window.location.search),e=new URL(window.location);t.set("program_view",this.slug),e.search=t,window.history.replaceState({},this.slug,e)}}},mounted(){this.$watch("isOpen",(e,n)=>{e&&!n?(this.$refs.openVariant.classList.remove("w-0"),this.$refs.openVariant.classList.remove("[&_*]:!text-[0rem]"),this.$refs.openVariant.classList.remove("[&_*]:!p-0"),this.$refs.openVariant.classList.remove("[&_*]:!gap-0"),this.$refs.openVariant.classList.remove("[&_*]:!leading-[0px]"),this.$refs.openVariant.classList.remove("[&_*]:!duration-0"),this.$refs.openVariant.classList.remove("[&_*]:!delay-0"),this.$refs.openVariant.classList.remove("!h-0"),zi()&&this.$refs.openVariant.classList.add("duration-300"),this.$refs.openVariant.classList.add("w-full"),this.$refs.openVariant.classList.add("xl:p-12"),this.$refs.openVariant.classList.add("p-6"),zi()||setTimeout(()=>{const s=this.$refs.openVariant.getBoundingClientRect().top+window.pageYOffset-90;window.scrollTo({top:s,behavior:"instant"})},20)):!e&&n&&(zi()&&this.$refs.openVariant.classList.remove("duration-300"),this.$refs.openVariant.classList.remove("w-full"),this.$refs.openVariant.classList.remove("xl:p-12"),this.$refs.openVariant.classList.remove("p-6"),this.$refs.openVariant.classList.add("w-0"),this.$refs.openVariant.classList.add("[&_*]:!text-[0rem]"),this.$refs.openVariant.classList.add("[&_*]:!p-0"),this.$refs.openVariant.classList.add("[&_*]:!gap-0"),this.$refs.openVariant.classList.add("[&_*]:!leading-[0px]"),this.$refs.openVariant.classList.add("[&_*]:!duration-0"),this.$refs.openVariant.classList.add("[&_*]:!delay-0"),this.$refs.openVariant.classList.add("!h-0"))});let t=null;setInterval(()=>{const e=window.location.href;if(e!=t){t=e;const n=new Proxy(new URLSearchParams(window.location.search),{get:(i,s)=>i.get(s)});n.program_view!==null&&n.program_view!==this.slug&&(this.isOpen=!1),n.program_view!==null&&n.program_view===this.slug&&!this.isOpen&&(this.isOpen=!0)}},.1)}},G5=Object.assign(W5,{setup(t){return{__sfc:!0,CardProgramItemPoint:z5}}});var Z5=function(){var e=this,n=e._self._c,i=e._self._setupProxy;return n("li",{class:this.isOpen?"w-full":""},[this.isOpen?e._e():n("div",{ref:"closedVariant",staticClass:"bg-black flex flex-row items-center px-5 py-2 gap-5 justify-start duration-200 cursor-pointer xl:h-[696px] xl:flex-col xl:gap-12 xl:py-8 xl:px-3 xl:justify-between 2xl:h-[646px] hover:bg-grey-600",on:{click:e.openClose}},[n("div",{staticClass:"font-alt text-black text-7xl xl:text-9xl",staticStyle:{"text-shadow":"-1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff"}},[e._v(" "+e._s(e.number)+" ")]),n("div",{staticClass:"text-white leading-7 text-2xl xl:rotate-180 xl:[writing-mode:vertical-rl]"},[e._v(" "+e._s(e.title)+" ")])]),n("div",{ref:"openVariant",staticClass:"bg-white",class:this.defaultIsOpen?"p-6 xl:p-12":"w-0 [&_*]:!text-[0rem] [&_*]:!p-0 [&_*]:!gap-0 [&_*]:!leading-[0px] [&_*]:!delay-0 [&_*]:!duration-0 !h-0"},[n("div",{staticClass:"flex flex-col gap-8 xl:flex-row xl:gap-16"},[n("div",{staticClass:"flex gap-7 w-full justify-start flex-col xl:[flex-flow:column_wrap] xl:h-[600px] 2xl:h-[550px]"},[n("h2",{staticClass:"font-alt text-[3.25rem] duration-200 delay-100 w-1/2 lg:text-[5.5rem] 2xl:text-[6.5rem]"},[e._v(" "+e._s(this.title)+" ")]),e._l(e.points,function(s,l){return n(i.CardProgramItemPoint,{key:s.number,attrs:{content:s.content}})})],2)])])])},Y5=[],Q5=Ne(G5,Z5,Y5,!1,null,null,null,null);const q5=Q5.exports,J5={name:"CardProgram",props:["points","label"]},K5=Object.assign(J5,{setup(t){return{__sfc:!0,CardProgramItem:q5}}});var X5=function(){var e=this,n=e._self._c,i=e._self._setupProxy;return n("div",{staticClass:"bg-pirati-yellow py-16"},[n("div",{staticClass:"container--wide"},[n("h2",{staticClass:"head-14xl head-compact mb-8"},[e._v(e._s(e.label))]),n("ul",{staticClass:"flex gap-3 w-full flex-col xl:flex-row"},e._l(e.points,function(s,l){return n(i.CardProgramItem,{key:s.slug,attrs:{slug:s.slug,defaultIsOpen:l===0,number:s.number,title:s.title,content:s.content,points:s.points}})}),1)])])},e4=[],t4=Ne(K5,X5,e4,!1,null,null,null,null);const n4=t4.exports,r4={name:"CandidatePrimaryBox",props:["name","position","description","url","imageSource"],mounted(){var t={rootMargin:"0px",threshold:.25};const e=this.$refs.text,n=this.$refs.image;function i(l,u){l.forEach(p=>{p.intersectionRatio>=.25&&(e.classList.remove("candidate-primary-box--text-column__hidden"),n.classList.remove("candidate-primary-box--image-column__hidden"))})}var s=new IntersectionObserver(i,t);s.observe(this.$refs.candidateBox)}};var i4=function(){var e=this,n=e._self._c;return n("li",{ref:"candidateBox",staticClass:"candidate-primary-box"},[n("div",{staticClass:"candidate-primary-box--content container--wide flex gap-10 pt-16 pb-8 overflow-x-hidden lg:flex-row lg:gap-8 lg:py-16"},[n("div",{ref:"text",staticClass:"candidate-primary-box--text-column candidate-primary-box--text-column__hidden flex flex-col justify-between w-full duration-700"},[n("div",{staticClass:"flex flex-col lg:w-min"},[n("h2",{staticClass:"head-9xl whitespace-nowrap"},[e._v(" "+e._s(e.name)+" ")]),e.position?n("p",{staticClass:"font-bold text-lg mt-[-0.5rem] mb-8"},[e._v(" "+e._s(e.position)+" ")]):e._e(),n("p",{staticClass:"text-lg mb-8 lg:mb-16"},[e._v(" "+e._s(e.description)+" ")])]),n("div",{staticClass:"flex justify-start"},[n("a",{staticClass:"flex items-center group rounded-full uppercase font-semibold tracking-normal bg-black text-white pl-8 pr-3 py-3 hover:no-underline xl:text-lg xl:pl-8 xl:pr-3 xl:py-4",attrs:{href:e.url}},[n("span",{staticClass:"group-hover:-translate-x-2 duration-200"},[e._v("Zjisti více")]),n("span",{staticClass:"opacity-0 group-hover:opacity-100 duration-200 mb-[0.03rem]"},[n("svg",{attrs:{width:"20",height:"21",viewBox:"0 0 10 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[n("g",[n("path",{staticClass:"arrow-icon",attrs:{d:"M0 16.5H4.40178L11 10.0002L4.40228 3.5H0L6.60069 10.0002L0 16.5Z",fill:"#FEC900"}})])])])])])]),n("div",{ref:"image",staticClass:"candidate-primary-box--image-column candidate-primary-box--image-column__hidden w-full flex items-start justify-center duration-700"},[n("img",{staticClass:"w-3/4 lg:w-1/2",attrs:{src:e.imageSource}})])])])},a4=[],s4=Ne(r4,i4,a4,!1,null,null,null,null);const o4=s4.exports,l4={name:"CandidateSecondaryBox",props:["url","number","imageSource","name","position"]};var c4=function(){var e=this,n=e._self._c;return n("li",{staticClass:"candidate-secondary-box container--wide"},[n("a",{staticClass:"py-2 flex gap-6 items-center underline-offset-2",attrs:{href:e.url}},[n("div",{staticClass:"font-bold text-xl"},[e._v(" "+e._s(this.number)+" ")]),n("div",{staticClass:"flex font-bold justify-center items-center rounded-full"},[n("img",{staticClass:"w-12 object-cover",attrs:{src:this.imageSource}})]),n("div",{staticClass:"flex flex-col lg:flex-row"},[n("h4",{staticClass:"text-xl font-bold"},[e._v(e._s(this.name))]),this.position?n("p",[n("span",{staticClass:"hidden lg:inline"},[e._v(",")]),e._v(" "+e._s(this.position)+" ")]):e._e()])])])},u4=[],d4=Ne(l4,c4,u4,!1,null,null,null,null);const f4=d4.exports,p4={name:"CandidateSecondaryList",props:["heading","candidates","preopened"],methods:{openList(){this.$refs.content.classList.remove("hidden"),this.$refs.button.classList.add("hidden")}},mounted(){this.preopened&&this.openList()}},h4=Object.assign(p4,{setup(t){return{__sfc:!0,CandidateSecondaryBox:f4}}});var v4=function(){var e=this,n=e._self._c,i=e._self._setupProxy;return n("div",{staticClass:"bg-grey-180"},[n("ul",{ref:"content",staticClass:"candidate-secondary-list pt-14 pb-16 hidden"},[n("div",{staticClass:"container--wide"},[n("h2",{staticClass:"head-7xl mb-3"},[e._v(e._s(e.heading))])]),e._l(e.candidates,function(s){return n(i.CandidateSecondaryBox,{key:s.position,attrs:{url:s.url,number:s.number,imageSource:s.imageSource,name:s.name,position:s.position}})})],2),n("div",{ref:"button",staticClass:"pt-14 pb-16 flex justify-center"},[n("button",{staticClass:"flex items-center group rounded-full font-condensed uppercase font-semibold tracking-normal bg-black text-white hover:no-underline pl-8 pr-3 py-3 xl:text-lg xl:pl-8 xl:pr-3 xl:py-4",on:{click:function(s){return e.openList()}}},[n("span",{staticClass:"group-hover:-translate-x-2 duration-200"},[e._v("Další kandidáti")]),n("span",{staticClass:"opacity-0 group-hover:opacity-100 duration-200 mb-[0.03rem]"},[n("svg",{attrs:{width:"20",height:"21",viewBox:"0 0 10 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[n("g",{attrs:{id:"Icon / Placeholder"}},[n("path",{staticClass:"arrow-icon",attrs:{d:"M0 16.5H4.40178L11 10.0002L4.40228 3.5H0L6.60069 10.0002L0 16.5Z",fill:"#FEC900"}})])])])])])])},g4=[],m4=Ne(h4,v4,g4,!1,null,null,null,null);const y4=m4.exports,b4={data(){return{countdown:{days:0,hours:0,minutes:0,seconds:0},countdownText:""}},props:{to:{type:String,required:!0}},mounted(){this.updateCountdown(),setInterval(this.updateCountdown,1e3)},methods:{updateCountdown(){let n=new Date(this.to)-new Date;if(n<=0){this.countdownText="nic. Jdeme volit!";return}const i=24*60*60*1e3;this.countdown.days=Math.floor(n/i),n-=this.countdown.days*i,this.countdown.hours=Math.floor(n/(60*60*1e3)),n-=this.countdown.hours*(60*60*1e3),this.countdown.minutes=Math.floor(n/(60*1e3)),n-=this.countdown.minutes*(60*1e3),this.countdown.seconds=Math.floor(n/1e3);let s="";this.countdown.seconds===1?s="a":this.countdown.seconds>1&&this.countdown.seconds<5&&(s="y"),this.countdownText=`${this.countdown.days} dní, ${this.countdown.hours} hodin, ${this.countdown.minutes} minut a ${this.countdown.seconds} sekund${s}`}}};var _4=function(){var e=this,n=e._self._c;return n("span",[e._v(" "+e._s(e.countdownText)+" ")])},w4=[],L4=Ne(b4,_4,w4,!1,null,null,null,null);const A4=L4.exports,C4={name:"SlideUpDown",props:{active:Boolean,duration:{type:Number,default:500},tag:{type:String,default:"div"},useHidden:{type:Boolean,default:!0}},data:function(){return{style:{},initial:!1,hidden:!1}},watch:{active:function(){this.layout()}},render:function(t){return t(this.tag,{style:this.style,attrs:this.attrs,ref:"container",on:{transitionend:this.onTransitionEnd}},this.$slots.default)},mounted:function(){this.layout(),this.initial=!0},created:function(){this.hidden=!this.active},computed:{el:function(){return this.$refs.container},attrs:function(){var t={"aria-hidden":!this.active,"aria-expanded":this.active};return this.useHidden&&(t.hidden=this.hidden),t}},methods:{layout:function(){var t=this;this.active?(this.hidden=!1,this.$emit("open-start"),this.initial&&this.setHeight("0px",function(){return t.el.scrollHeight+"px"})):(this.$emit("close-start"),this.setHeight(this.el.scrollHeight+"px",function(){return"0px"}))},asap:function(t){this.initial?this.$nextTick(t):t()},setHeight:function(t,e){var n=this;this.style={height:t},this.asap(function(){n.__=n.el.scrollHeight,n.style={height:e(),overflow:"hidden","transition-property":"height","transition-duration":n.duration+"ms"}})},onTransitionEnd:function(t){t.target===this.el&&(this.active?(this.style={},this.$emit("open-end")):(this.style={height:"0",overflow:"hidden"},this.hidden=!0,this.$emit("close-end")))}}},E4={mounted(){console.log("Mounted generic Vue app in ",this.$el)}},S4=null,x4=null;var D4=Ne(E4,S4,x4,!1,null,null,null,null);const T4=D4.exports;Oe.component("ui-animated-arrow",yh);Oe.component("ui-calendar-renderer",Ah);Oe.component("ui-calendar-dummy-provider",Th);Oe.component("ui-calendar-google-provider",Nh);Oe.component("ui-full-calendar",Z_);Oe.component("ui-region-map",K_);Oe.component("ui-view-provider",r5);Oe.component("ui-popout",p5);Oe.component("ui-popout-content",y5);Oe.component("ui-popout-item",A5);Oe.component("ui-footer-collapsible",D5);Oe.component("ui-faq-section-header",I5);Oe.component("ui-horizontal-scrollable",j5);Oe.component("ui-candidate-primary-box",o4);Oe.component("ui-card-program",n4);Oe.component("ui-slide-up-down",C4);Oe.component("ui-candidate-secondary-list",y4);Oe.component("ui-countdown",A4);const k4=(t,e)=>{new Oe({el:t,components:{UiApp:T4}})};function R4(t){return Object.assign({},t.dataset),k4(t)}function O4(t){ph(document.querySelectorAll(".__js-root"),R4)}document.addEventListener("DOMContentLoaded",O4); diff --git a/shared_legacy/static/styleguide2/pirati-ui.eot b/shared_legacy/static/styleguide2/pirati-ui.eot new file mode 100644 index 0000000000000000000000000000000000000000..96011ba55470eaed58e7f6804340b670b3601c9b Binary files /dev/null and b/shared_legacy/static/styleguide2/pirati-ui.eot differ diff --git a/shared_legacy/static/styleguide2/pirati-ui.svg b/shared_legacy/static/styleguide2/pirati-ui.svg new file mode 100644 index 0000000000000000000000000000000000000000..c6e3a71ad07f5229dda5d69c9289dc5ce339be12 --- /dev/null +++ b/shared_legacy/static/styleguide2/pirati-ui.svg @@ -0,0 +1,130 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata>Generated by IcoMoon</metadata> +<defs> +<font id="pirati-ui" horiz-adv-x="1024"> +<font-face units-per-em="1024" ascent="960" descent="-64" /> +<missing-glyph horiz-adv-x="1024" /> +<glyph unicode=" " horiz-adv-x="512" d="" /> +<glyph unicode="" glyph-name="alarm" d="M512 832c-247.424 0-448-200.576-448-448s200.576-448 448-448 448 200.576 448 448-200.576 448-448 448zM512 24c-198.824 0-360 161.178-360 360 0 198.824 161.176 360 360 360 198.822 0 360-161.176 360-360 0-198.822-161.178-360-360-360zM934.784 672.826c16.042 28.052 25.216 60.542 25.216 95.174 0 106.040-85.96 192-192 192-61.818 0-116.802-29.222-151.92-74.596 131.884-27.236 245.206-105.198 318.704-212.578v0zM407.92 885.404c-35.116 45.374-90.102 74.596-151.92 74.596-106.040 0-192-85.96-192-192 0-34.632 9.174-67.122 25.216-95.174 73.5 107.38 186.822 185.342 318.704 212.578zM512 384v256h-64v-320h256v64z" /> +<glyph unicode="" glyph-name="info" d="M448 656c0 26.4 21.6 48 48 48h32c26.4 0 48-21.6 48-48v-32c0-26.4-21.6-48-48-48h-32c-26.4 0-48 21.6-48 48v32zM640 192h-256v64h64v192h-64v64h192v-256h64zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416z" /> +<glyph unicode="" glyph-name="facebook" d="M608 768h160v192h-160c-123.514 0-224-100.486-224-224v-96h-128v-192h128v-512h192v512h160l32 192h-192v96c0 17.346 14.654 32 32 32z" /> +<glyph unicode="" glyph-name="linkedin" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM384 128h-128v448h128v-448zM320 640c-35.4 0-64 28.6-64 64s28.6 64 64 64c35.4 0 64-28.6 64-64s-28.6-64-64-64zM832 128h-128v256c0 35.4-28.6 64-64 64s-64-28.6-64-64v-256h-128v448h128v-79.4c26.4 36.2 66.8 79.4 112 79.4 79.6 0 144-71.6 144-160v-288z" /> +<glyph unicode="" glyph-name="question" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" /> +<glyph unicode="" glyph-name="at" d="M696.32 283.136c-46.612-48.782-112.182-79.108-184.835-79.108-141.102 0-255.488 114.386-255.488 255.488 0 0.451 0.001 0.902 0.004 1.353v-0.070c0 141.385 114.615 256 256 256 57.921 0 111.348-19.235 154.244-51.667l-0.644 0.467v51.2h102.4v-332.8c0-42.415 34.385-76.8 76.8-76.8s76.8 34.385 76.8 76.8v0 76.8c-0.167 226.090-183.487 409.307-409.6 409.307-226.216 0-409.6-183.384-409.6-409.6s183.384-409.6 409.6-409.6c66.818 0 129.898 15.999 185.62 44.376l-2.325-1.074 46.080-91.648c-66.813-34.208-145.753-54.255-229.376-54.255-282.77 0-512 229.23-512 512s229.23 512 512 512c282.596 0 511.718-228.948 512-511.478v-0.027h-0.512v-76.8c0.001-0.159 0.001-0.346 0.001-0.534 0-98.969-80.231-179.2-179.2-179.2-61.529 0-115.815 31.010-148.083 78.253l-0.398 0.617zM512 307.2c84.831 0 153.6 68.769 153.6 153.6s-68.769 153.6-153.6 153.6v0c-84.831 0-153.6-68.769-153.6-153.6s68.769-153.6 153.6-153.6v0z" /> +<glyph unicode="" glyph-name="location" d="M512 960c-176.732 0-320-143.268-320-320 0-320 320-704 320-704s320 384 320 704c0 176.732-143.27 320-320 320zM512 448c-106.040 0-192 85.96-192 192s85.96 192 192 192 192-85.96 192-192-85.96-192-192-192z" /> +<glyph unicode="" glyph-name="phone" d="M704 320c-64-64-64-128-128-128s-128 64-192 128-128 128-128 192 64 64 128 128-128 256-192 256-192-192-192-192c0-128 131.5-387.5 256-512s384-256 512-256c0 0 192 128 192 192s-192 256-256 192z" /> +<glyph unicode="" glyph-name="envelope" d="M921.6 870.4c56.554 0 102.4-45.846 102.4-102.4v0-614.4c0-56.554-45.846-102.4-102.4-102.4v0h-819.2c-56.554 0-102.4 45.846-102.4 102.4v0 614.4c0 56.32 46.080 102.4 102.4 102.4h819.2zM697.856 404.48l326.144-250.88v102.4l-262.144 199.68 262.144 209.92v102.4l-512-409.6-512 409.6v-102.4l262.144-209.92-262.144-199.68v-102.4l326.144 250.88 185.856-148.48 185.856 148.48z" /> +<glyph unicode="" glyph-name="beer" d="M426.667 234.667c0-11.733-9.6-21.333-21.333-21.333s-21.333 9.6-21.333 21.333v256c0 11.733 9.6 21.333 21.333 21.333s21.333-9.6 21.333-21.333v-256zM512 234.667c0-11.733-9.6-21.333-21.333-21.333s-21.333 9.6-21.333 21.333v256c0 11.733 9.6 21.333 21.333 21.333s21.333-9.6 21.333-21.333v-256zM597.333 234.667c0-11.733-9.6-21.333-21.333-21.333s-21.333 9.6-21.333 21.333v256c0 11.733 9.6 21.333 21.333 21.333s21.333-9.6 21.333-21.333v-256zM789.333 682.667h-21.333v42.667c0 47.104-38.229 85.333-85.333 85.333h-384c-47.104 0-85.333-38.229-85.333-85.333v-554.667c0-70.656 57.344-128 128-128h298.667c70.656 0 128 57.344 128 128h21.333c82.347 0 149.333 66.987 149.333 149.333v213.333c0 82.347-66.987 149.333-149.333 149.333zM298.667 725.334h384v-42.667h-189.611l-5.035-14.165c-6.997-19.541-28.288-31.147-47.659-27.648l-14.848 2.475-7.381-13.099c-11.392-20.267-32.64-32.896-55.467-32.896-35.285 0-64 28.715-64 64v64zM682.667 170.667c0-23.552-19.115-42.667-42.667-42.667h-298.667c-23.552 0-42.667 19.115-42.667 42.667v405.76c17.877-13.525 39.936-21.76 64-21.76 33.451 0 64.896 16.043 84.864 42.667 31.061 0 59.008 16.683 74.069 42.667h161.067v-469.334zM853.333 320c0-35.285-28.715-64-64-64h-64v341.333h64c35.285 0 64-28.715 64-64v-213.333z" /> +<glyph unicode="" glyph-name="thermometer" d="M543.553 218.694c37.519-13.052 64.447-48.728 64.447-90.694 0-53.019-42.981-96-96-96s-96 42.981-96 96c0 41.961 26.922 77.635 64.435 90.69-0.286 1.727-0.435 3.5-0.435 5.309v480.003c0 17.448 14.327 31.999 32 31.999 17.796 0 32-14.326 32-31.999v-480.003c0-1.803-0.153-3.576-0.447-5.305v0zM576 238.876v593.009c0 35.41-28.407 64.115-64 64.115-35.346 0-64-28.472-64-64.115v-593.009c-38.259-22.132-64-63.498-64-110.876 0-70.692 57.308-128 128-128s128 57.308 128 128c0 47.378-25.741 88.744-64 110.876zM638.996 272.003c39.862-35.181 65.004-86.656 65.004-144.003 0-106.039-85.961-192-192-192s-192 85.961-192 192c0 57.346 25.141 108.82 65.002 144.002-0.661 5.27-1.002 10.639-1.002 16.088v543.82c0 70.556 57.308 128.090 128 128.090 70.549 0 128-57.348 128-128.090v-543.82c0-5.447-0.342-10.816-1.004-16.087v0 0z" /> +<glyph unicode="" glyph-name="paw" horiz-adv-x="951" d="M445.714 681.143c0-64-33.143-140-106.857-140-92.571 0-148.571 116.571-148.571 196.571 0 64 33.143 140 106.857 140 93.143 0 148.571-116.571 148.571-196.571zM250.286 405.143c0-55.429-29.143-113.143-92-113.143-91.429 0-158.286 112-158.286 194.857 0 55.429 29.714 113.714 92 113.714 91.429 0 158.286-112.571 158.286-195.429zM475.429 420.571c140 0 329.143-201.714 329.143-336.571 0-72.571-59.429-84-117.714-84-76.571 0-138.286 51.429-211.429 51.429-76.571 0-141.714-50.857-224.571-50.857-55.429 0-104.571 18.857-104.571 83.429 0 135.429 189.143 336.571 329.143 336.571zM612 541.143c-73.714 0-106.857 76-106.857 140 0 80 55.429 196.571 148.571 196.571 73.714 0 106.857-76 106.857-140 0-80-56-196.571-148.571-196.571zM858.857 600.571c62.286 0 92-58.286 92-113.714 0-82.857-66.857-194.857-158.286-194.857-62.857 0-92 57.714-92 113.143 0 82.857 66.857 195.429 158.286 195.429z" /> +<glyph unicode="" glyph-name="power" d="M384 960l-384-512h384l-256-512 896 640h-512l384 384z" /> +<glyph unicode="" glyph-name="pirati" horiz-adv-x="968" d="M458.203 826.435c-109.449 0-211.478-42.667-287.536-118.725-77.913-76.058-120.58-179.942-120.58-287.536 0-109.449 42.667-211.478 118.725-289.391 77.913-76.058 179.942-118.725 287.536-118.725 109.449 0 211.478 42.667 287.536 118.725 77.913 76.058 118.725 179.942 118.725 287.536 0 109.449-42.667 211.478-118.725 287.536-74.203 79.768-176.232 120.58-285.681 120.58zM458.203 51.014c-204.058 0-369.159 165.101-369.159 369.159s165.101 369.159 369.159 369.159c204.058 0 369.159-165.101 369.159-369.159s-165.101-369.159-369.159-369.159zM335.768 661.333v57.507h-35.246v-66.783c-24.116-7.42-38.957-14.841-35.246-20.406 7.42 1.855 20.406 3.71 35.246 1.855v-341.333c-37.101-70.493 16.696-179.942 16.696-179.942s-38.957 116.87 48.232 172.522c79.768 50.087 358.029 27.826 356.174 183.652-1.855 220.754-257.855 220.754-385.855 192.928zM448.928 446.145c-12.986-59.362-76.058-89.043-115.014-115.014v298.667c64.928-14.841 140.986-64.928 115.014-183.652z" /> +<glyph unicode="" glyph-name="open-source" d="M512 943.712c-282.304 0-512-229.696-512-512 0-210.624 132.032-402.432 328.448-477.248 8.192-3.264 17.408-2.752 25.344 1.088 7.936 3.904 13.952 10.816 16.576 19.264l96 306.56c4.544 14.528-1.728 30.272-15.040 37.568-41.536 22.912-67.328 66.112-67.328 112.768 0 70.592 57.408 128 128 128s128-57.408 128-128c0-46.656-25.792-89.856-67.328-112.832-13.312-7.296-19.648-23.040-15.040-37.568l96-306.56c2.624-8.448 8.64-15.36 16.576-19.264 4.416-2.112 9.216-3.2 13.952-3.2 3.84 0 7.744 0.704 11.392 2.112 196.48 74.88 328.448 266.688 328.448 477.312 0 282.304-229.696 512-512 512z" /> +<glyph unicode="" glyph-name="jitsi" horiz-adv-x="704" d="M670.24 592.128c-8.224 17.632-21.536 32.448-38.176 42.56-19.808 12.576-44.544 15.232-61.792 15.232-5.824 0-11.616-0.32-17.376-0.896h-0.448c0.32 2.368 0.928 5.44 1.44 7.936 0.864 4.384 1.824 9.344 2.4 14.528 2.304 22.24-5.632 52.128-20.192 76.16-2.304 3.84-2.208 5.12-2.208 5.12 0.704 1.088 1.568 2.112 2.528 2.976l1.344 1.408c34.4 36.864 44.832 77.376 30.88 120.704-26.432 82.144-33.536 82.144-38.72 82.144-1.152 0-2.304-0.224-3.36-0.672-1.056-0.48-2.016-1.152-2.784-2.016-0.864-1.024-1.472-2.24-1.856-3.552-0.352-1.312-0.416-2.656-0.192-4 2.656-27.232-3.488-66.24-7.584-81.088-4.992-18.656-22.528-46.528-77.824-72.992-3.872-1.664-7.84-3.136-11.872-4.384-18.048-6.016-48.192-16.128-64.928-39.2-12.64-14.784-15.712-29.632-21.184-56.384-4.864-23.808-8.8-52.768-1.088-87.36 0.768-3.424 1.504-6.304 2.208-8.864 0.448-1.824 0.864-3.392 1.184-4.768l0.64 0.128-0.672-0.16c0.512-2.048 0.192-2.56-0.544-3.072-2.656-1.056-5.408-1.888-8.192-2.496-8.192-1.312-16.384-2.784-24.224-4.32-24.896-4.288-100.192-17.248-134.848-72.448-21.408-34.048-24.448-78.496-9.056-132.32 15.936-53.248 47.616-89.824 69.28-97.28l0.352-0.128c1.568-0.704 3.040-1.28 4.512-1.792 0-1.472-0.16-3.296-0.352-5.344-0.128-0.928-0.288-1.888-0.416-2.976-2.368-17.344-10.56-36.064-18.912-36.576-4.416 0.864-21.856 10.752-34.208 18.88-3.968 2.592-7.712 5.056-11.264 7.424-34.464 22.784-53.472 35.36-82.528 38.592-0.992 0.096-1.984 0.16-2.976 0.16-30.72 0-86.016-51.744-87.2-154.816-0.576-51.648 4.832-98.88 16.128-140.352 8.064-29.728 16.672-46.656 19.168-51.2l9.952-18.624 4.544 20.48c23.968 108.544 53.536 134.688 102.752 165.984 36.064-33.792 83.424-51.616 137.376-51.616 45.472 0 93.056 13.216 133.92 37.216 40.16 23.552 71.168 55.296 90.112 91.968 3.168-2.048 6.976-4.704 9.472-6.464 9.024-6.304 10.944-7.616 14.144-7.616h0.288c3.52 0.128 36.736 11.264 70.752 52.832 19.776 24.128 36.064 53.984 48.448 88.8 15.328 43.008 24.576 93.792 27.712 150.912 3.488 47.968-1.376 86.144-14.464 113.504l-0.096 0.128zM542.816 868.224c2.848-11.52 3.232-23.52 1.088-35.2-3.2-22.688-12.8-43.008-29.248-61.536 14.016 30.72 23.488 63.296 28.16 96.736zM519.072 727.36c4.992-7.552 8.832-15.84 11.328-24.576 2.784-11.424 2.272-23.424-1.44-34.592-5.888-13.984-13.76-21.056-23.456-21.056h-1.28c-3.424 0.512-6.688 1.728-9.632 3.52-12.448 7.296-19.2 26.624-14.336 40.8 0.224 0.416 0.384 0.864 0.576 1.312 0.8 2.048 3.072 5.984 9.376 12.064 9.024 7.968 22.176 18.016 28.832 22.528h0.032zM374.88 731.232l0.128 0.224v0.192c2.656 6.56 20.992 17.152 33.152 24.192 1.536 0.896 3.040 1.792 4.544 2.624 5.344 2.816 10.816 5.344 16.384 7.584 20.032 8.512 51.2 21.792 76.896 46.496-7.456-26.144-25.408-70.144-54.88-96.8-6.56-5.92-19.776-11.136-35.136-17.216-16.512-6.496-36.384-14.336-55.648-26.144 1.472 15.072 6.144 41.376 14.464 58.848h0.096zM362.080 646.048c9.92 8.192 28.064 19.296 87.52 38.912 0.416-1.824 0.896-4.192 1.344-6.56 0.352-1.792 0.736-3.808 1.184-6.016 3.904-19.2 8.192-40.8 48.192-52.768-3.712-8.192-11.36-22.048-14.048-24.704l-0.864-0.736-0.608-1.024c-7.808-12.48-49.856-39.744-68.704-39.744-0.8 0-1.632 0.064-2.4 0.192-11.36 2.176-37.408 25.312-45.056 42.432-14.816 33.568-11.776 45.664-6.656 49.952l0.096 0.064zM213.952 337.952c-21.792 32.416-38.304 89.088-27.488 134.624v0.192c5.248 24.8 22.528 39.36 29.696 44.48l1.024 0.768c10.592 9.248 32.32 19.040 61.152 27.584 4.096 1.056 6.336 1.536 6.432 1.536 5.312 1.088 11.104 2.432 16.736 3.712 10.656 2.72 21.472 4.832 32.352 6.336 2.72 0.288 5.472 0.8 8.096 1.312 3.52 0.768 7.136 1.248 10.752 1.376 2.912 0.16 5.76-0.608 8.192-2.176 10.688-12.672 36.864-37.76 54.048-39.232h1.056c19.552 1.056 50.176 20.128 91.040 56.704 6.944 6.144 13.408 11.52 19.744 16.224l0.768 0.576c11.136 8.48 23.424 15.328 36.48 20.384-4.256-14.016-7.68-37.952 6.144-71.68 7.2-17.44 20.992-56.768 32.448-95.264 19.712-66.336 16.96-77.984 16.576-79.072-0.544-2.272-1.44-4.416-2.656-6.4-1.536 0.288-3.008 0.832-4.384 1.568-9.952 4.576-21.088 12.768-34.112 22.4-24.16 17.696-54.208 39.744-98.176 56.928-32.288 12.608-64.416 19.008-95.392 19.008-12.832 0.032-25.664-1.216-38.272-3.648-69.248-13.664-105.76-44.192-125.376-60.608l-0.128-0.128c-1.312-1.056-2.24-2.464-2.688-4.064s-0.384-3.296 0.16-4.864c0.576-1.536 1.6-2.848 2.944-3.776s2.944-1.408 4.608-1.408c1.76 0 3.52 0.512 9.248 2.176 20.768 6.176 42.016 10.592 63.488 13.216 7.712 0.896 15.456 1.344 23.232 1.376 33.504 0 64.352-10.24 96.992-32.416 7.488-6.24 12.064-10.4 14.816-13.12l-2.816-0.736-19.808-5.6c-49.024-13.856-123.168-34.784-158.24-34.784-2.688-0.032-5.376 0.128-8.032 0.448-9.12 1.344-20.192 10.848-30.496 26.048h-0.16zM69.344 89.216c-13.792-17.984-23.968-38.496-29.92-60.352-6.592 31.584-14.336 83.584-9.92 124.032 9.152 83.84 50.688 111.936 56.864 113.408h0.384c0.352 0 0.768 0 1.568-0.896 3.328-3.584 10.496-18.816 5.28-81.76-1.216-12.96 1.888-23.936 9.28-32.608 5.024-5.728 11.36-10.208 18.432-13.024-19.968-13.216-37.568-29.696-52.032-48.8h0.064zM139.936 171.52c-2.144-0.96-4.48-1.504-6.848-1.6-0.832-0.064-1.664 0.032-2.464 0.352-0.768 0.288-1.472 0.768-2.048 1.376-1.344 1.376-4.352 6.144-3.392 20.16 0.704 6.912 1.664 13.792 2.56 20.48 2.016 12.608 3.2 25.344 3.584 38.112 24.224-15.84 51.040-32.64 68.416-40.384-11.36-10.048-34.944-28.128-59.808-38.528v0.032zM455.84 173.76c-39.040-40.704-91.776-65.504-148.032-69.632-6.688-0.48-13.344-0.736-19.744-0.736-74.080 0-111.712 31.456-129.024 48.96 83.68 36.096 100.672 87.744 108.096 110.272 0.704 2.208 1.376 4.096 2.048 5.76 3.168 1.568 13.344 6.144 44.672 17.856 24.576 8.864 54.048 18.752 80.032 27.52 21.664 7.296 40.352 13.632 50.56 17.376l0.864 0.256c2.048 0.576 3.264 0.864 4.096 0.992l0.576-0.736c9.504-12.416 25.216-19.968 25.376-20.064 11.808-5.28 24.416-8.448 37.312-9.408-0.288-44.768-20.736-91.168-56.704-128.384l-0.128-0.032zM520.768 326.976c-30.976 0-41.856 9.984-52 22.048-50.304 59.968-105.952 69.824-127.552 71.264-6.912 0.448-13.696 0.672-20.192 0.672-5.44 0-10.784-0.128-15.968-0.48 25.056 8.544 51.36 12.896 77.824 12.96 55.488 0 108.928-19.648 158.752-58.4 20.32-15.808 35.264-27.008 48.192-36-6.304-1.856-14.784-4.256-25.504-7.168l-4.096-1.12c-12.992-2.304-26.176-3.584-39.392-3.776h-0.064zM540.096 213.536c-3.264 2.88-8.192 7.456-13.312 12.096 4.704 11.904 8.224 24.256 10.56 36.864 2.432 13.28 3.936 30.72 4.64 39.936 14.72 2.208 29.28 5.312 43.616 9.28 17.28 4.96 30.592 10.592 40.096 17.024-29.632-74.016-72.544-106.496-85.6-115.136v-0.064zM642.624 382.784c-4.416 36.448-19.168 81.568-24.96 99.104-0.608 2.048-1.12 3.52-1.472 4.608-0.416 1.376-1.76 5.088-4.48 12.672-7.104 19.84-21.952 61.088-24.576 73.28-3.808 17.952 4.768 42.624 10.24 44.768 1.664 0.64 3.456 0.96 5.28 0.96 10.080 0 22.528-9.504 32.384-24.864 11.904-18.432 18.976-42.88 19.904-68.608 2.048-56.128-3.168-103.008-12.288-141.92z" /> +<glyph unicode="" glyph-name="link-horizontal" d="M726 640.667c118 0 212-96 212-214s-94-214-212-214h-172v82h172c72 0 132 60 132 132s-60 132-132 132h-172v82h172zM342 384.667v84h340v-84h-340zM166 426.667c0-72 60-132 132-132h172v-82h-172c-118 0-212 96-212 214s94 214 212 214h172v-82h-172c-72 0-132-60-132-132z" /> +<glyph unicode="" glyph-name="calculator" d="M384 896h-320c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h320c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM384 640h-320v64h320v-64zM896 896h-320c-35.204 0-64-28.8-64-64v-832c0-35.2 28.796-64 64-64h320c35.2 0 64 28.8 64 64v832c0 35.2-28.8 64-64 64zM896 320h-320v64h320v-64zM896 512h-320v64h320v-64zM384 384h-320c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h320c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM384 128h-128v-128h-64v128h-128v64h128v128h64v-128h128v-64z" /> +<glyph unicode="" glyph-name="link" d="M440.236 324.234c-13.31 0-26.616 5.076-36.77 15.23-95.134 95.136-95.134 249.934 0 345.070l192 192c46.088 46.086 107.36 71.466 172.534 71.466s126.448-25.38 172.536-71.464c95.132-95.136 95.132-249.934 0-345.070l-87.766-87.766c-20.308-20.308-53.23-20.308-73.54 0-20.306 20.306-20.306 53.232 0 73.54l87.766 87.766c54.584 54.586 54.584 143.404 0 197.99-26.442 26.442-61.6 41.004-98.996 41.004s-72.552-14.562-98.996-41.006l-192-191.998c-54.586-54.586-54.586-143.406 0-197.992 20.308-20.306 20.306-53.232 0-73.54-10.15-10.152-23.462-15.23-36.768-15.23zM256-52c-65.176 0-126.45 25.38-172.534 71.464-95.134 95.136-95.134 249.934 0 345.070l87.764 87.764c20.308 20.306 53.234 20.306 73.54 0 20.308-20.306 20.308-53.232 0-73.54l-87.764-87.764c-54.586-54.586-54.586-143.406 0-197.992 26.44-26.44 61.598-41.002 98.994-41.002s72.552 14.562 98.998 41.006l192 191.998c54.584 54.586 54.584 143.406 0 197.992-20.308 20.308-20.306 53.232 0 73.54 20.306 20.306 53.232 20.306 73.54-0.002 95.132-95.134 95.132-249.932 0.002-345.068l-192.002-192c-46.090-46.088-107.364-71.466-172.538-71.466z" /> +<glyph unicode="" glyph-name="facebook-full" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h416v448h-128v128h128v64c0 105.8 86.2 192 192 192h128v-128h-128c-35.2 0-64-28.8-64-64v-64h192l-32-128h-160v-448h288c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96z" /> +<glyph unicode="" glyph-name="map" d="M0 768l320 128v-768l-320-128zM384 928l320-192v-736l-320 160zM768 736l256 192v-768l-256-192z" /> +<glyph unicode="" glyph-name="compass" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM96 448c0 229.75 186.25 416 416 416 109.574 0 209.232-42.386 283.534-111.628l-411.534-176.372-176.372-411.534c-69.242 74.302-111.628 173.96-111.628 283.534zM585.166 374.834l-256.082-109.75 109.75 256.082 146.332-146.332zM512 32c-109.574 0-209.234 42.386-283.532 111.628l411.532 176.372 176.372 411.532c69.242-74.298 111.628-173.958 111.628-283.532 0-229.75-186.25-416-416-416z" /> +<glyph unicode="" glyph-name="folder-open" d="M832 0l192 512h-832l-192-512zM128 576l-128-576v832h288l128-128h416v-128z" /> +<glyph unicode="" glyph-name="folder" d="M448 832l128-128h448v-704h-1024v832z" /> +<glyph unicode="" glyph-name="drawer" d="M1016.988 307.99l-256 320c-6.074 7.592-15.266 12.010-24.988 12.010h-448c-9.72 0-18.916-4.418-24.988-12.010l-256-320c-4.538-5.674-7.012-12.724-7.012-19.99v-288c0-35.346 28.654-64 64-64h896c35.348 0 64 28.654 64 64v288c0 7.266-2.472 14.316-7.012 19.99zM960 256h-224l-128-128h-192l-128 128h-224v20.776l239.38 299.224h417.24l239.38-299.224v-20.776zM736 448h-448c-17.672 0-32 14.328-32 32s14.328 32 32 32h448c17.674 0 32-14.328 32-32s-14.326-32-32-32zM800 320h-576c-17.672 0-32 14.326-32 32s14.328 32 32 32h576c17.674 0 32-14.326 32-32s-14.326-32-32-32z" /> +<glyph unicode="" glyph-name="stop" d="M128 832h768v-768h-768z" /> +<glyph unicode="" glyph-name="github" d="M512.008 947.358c-282.738 0-512.008-229.218-512.008-511.998 0-226.214 146.704-418.132 350.136-485.836 25.586-4.738 34.992 11.11 34.992 24.632 0 12.204-0.48 52.542-0.696 95.324-142.448-30.976-172.504 60.41-172.504 60.41-23.282 59.176-56.848 74.916-56.848 74.916-46.452 31.778 3.51 31.124 3.51 31.124 51.4-3.61 78.476-52.766 78.476-52.766 45.672-78.27 119.776-55.64 149.004-42.558 4.588 33.086 17.852 55.68 32.506 68.464-113.73 12.942-233.276 56.85-233.276 253.032 0 55.898 20.004 101.574 52.76 137.428-5.316 12.9-22.854 64.972 4.952 135.5 0 0 43.006 13.752 140.84-52.49 40.836 11.348 84.636 17.036 128.154 17.234 43.502-0.198 87.336-5.886 128.256-17.234 97.734 66.244 140.656 52.49 140.656 52.49 27.872-70.528 10.35-122.6 5.036-135.5 32.82-35.856 52.694-81.532 52.694-137.428 0-196.654-119.778-239.95-233.79-252.624 18.364-15.89 34.724-47.046 34.724-94.812 0-68.508-0.596-123.644-0.596-140.508 0-13.628 9.222-29.594 35.172-24.566 203.322 67.776 349.842 259.626 349.842 485.768 0 282.78-229.234 511.998-511.992 511.998z" /> +<glyph unicode="" glyph-name="clock" d="M658.744 210.744l-210.744 210.746v282.51h128v-229.49l173.256-173.254zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 64c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384z" /> +<glyph unicode="" glyph-name="calendar" d="M320 576h128v-128h-128zM512 576h128v-128h-128zM704 576h128v-128h-128zM128 192h128v-128h-128zM320 192h128v-128h-128zM512 192h128v-128h-128zM320 384h128v-128h-128zM512 384h128v-128h-128zM704 384h128v-128h-128zM128 384h128v-128h-128zM832 960v-64h-128v64h-448v-64h-128v64h-128v-1024h960v1024h-128zM896 0h-832v704h832v-704z" /> +<glyph unicode="" glyph-name="flickr" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM288 288c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zM736 288c-88.4 0-160 71.6-160 160s71.6 160 160 160c88.4 0 160-71.6 160-160s-71.6-160-160-160z" /> +<glyph unicode="" glyph-name="instagram" d="M512 867.8c136.8 0 153-0.6 206.8-3 50-2.2 77-10.6 95-17.6 23.8-9.2 41-20.4 58.8-38.2 18-18 29-35 38.4-58.8 7-18 15.4-45.2 17.6-95 2.4-54 3-70.2 3-206.8s-0.6-153-3-206.8c-2.2-50-10.6-77-17.6-95-9.2-23.8-20.4-41-38.2-58.8-18-18-35-29-58.8-38.4-18-7-45.2-15.4-95-17.6-54-2.4-70.2-3-206.8-3s-153 0.6-206.8 3c-50 2.2-77 10.6-95 17.6-23.8 9.2-41 20.4-58.8 38.2-18 18-29 35-38.4 58.8-7 18-15.4 45.2-17.6 95-2.4 54-3 70.2-3 206.8s0.6 153 3 206.8c2.2 50 10.6 77 17.6 95 9.2 23.8 20.4 41 38.2 58.8 18 18 35 29 58.8 38.4 18 7 45.2 15.4 95 17.6 53.8 2.4 70 3 206.8 3zM512 960c-139 0-156.4-0.6-211-3-54.4-2.4-91.8-11.2-124.2-23.8-33.8-13.2-62.4-30.6-90.8-59.2-28.6-28.4-46-57-59.2-90.6-12.6-32.6-21.4-69.8-23.8-124.2-2.4-54.8-3-72.2-3-211.2s0.6-156.4 3-211c2.4-54.4 11.2-91.8 23.8-124.2 13.2-33.8 30.6-62.4 59.2-90.8 28.4-28.4 57-46 90.6-59 32.6-12.6 69.8-21.4 124.2-23.8 54.6-2.4 72-3 211-3s156.4 0.6 211 3c54.4 2.4 91.8 11.2 124.2 23.8 33.6 13 62.2 30.6 90.6 59s46 57 59 90.6c12.6 32.6 21.4 69.8 23.8 124.2 2.4 54.6 3 72 3 211s-0.6 156.4-3 211c-2.4 54.4-11.2 91.8-23.8 124.2-12.6 34-30 62.6-58.6 91-28.4 28.4-57 46-90.6 59-32.6 12.6-69.8 21.4-124.2 23.8-54.8 2.6-72.2 3.2-211.2 3.2v0zM512 711c-145.2 0-263-117.8-263-263s117.8-263 263-263 263 117.8 263 263c0 145.2-117.8 263-263 263zM512 277.4c-94.2 0-170.6 76.4-170.6 170.6s76.4 170.6 170.6 170.6c94.2 0 170.6-76.4 170.6-170.6s-76.4-170.6-170.6-170.6zM846.8 721.4c0-33.91-27.49-61.4-61.4-61.4s-61.4 27.49-61.4 61.4c0 33.91 27.49 61.4 61.4 61.4s61.4-27.49 61.4-61.4z" /> +<glyph unicode="" glyph-name="newspaper" d="M896 704v128h-896v-704c0-35.346 28.654-64 64-64h864c53.022 0 96 42.978 96 96v544h-128zM832 128h-768v640h768v-640zM128 640h640v-64h-640zM512 512h256v-64h-256zM512 384h256v-64h-256zM512 256h192v-64h-192zM128 512h320v-320h-320z" /> +<glyph unicode="" glyph-name="cart" d="M384 32c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96zM1024 32c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96zM1024 448v384h-768c0 35.346-28.654 64-64 64h-192v-64h128l48.074-412.054c-29.294-23.458-48.074-59.5-48.074-99.946 0-70.696 57.308-128 128-128h768v64h-768c-35.346 0-64 28.654-64 64 0 0.218 0.014 0.436 0.016 0.656l831.984 127.344z" /> +<glyph unicode="" glyph-name="home" d="M1024 352l-192 192v288h-128v-160l-192 192-512-512v-32h128v-320h320v192h128v-192h320v320h128z" /> +<glyph unicode="" glyph-name="chevron-right" d="M414.165 140.502l256 256c16.683 16.683 16.683 43.691 0 60.331l-256 256c-16.683 16.683-43.691 16.683-60.331 0s-16.683-43.691 0-60.331l225.835-225.835-225.835-225.835c-16.683-16.683-16.683-43.691 0-60.331s43.691-16.683 60.331 0z" /> +<glyph unicode="" glyph-name="chevron-left" d="M670.165 200.832l-225.835 225.835 225.835 225.835c16.683 16.683 16.683 43.691 0 60.331s-43.691 16.683-60.331 0l-256-256c-16.683-16.683-16.683-43.691 0-60.331l256-256c16.683-16.683 43.691-16.683 60.331 0s16.683 43.691 0 60.331z" /> +<glyph unicode="" glyph-name="chevron-down" d="M225.835 524.502l256-256c16.683-16.683 43.691-16.683 60.331 0l256 256c16.683 16.683 16.683 43.691 0 60.331s-43.691 16.683-60.331 0l-225.835-225.835-225.835 225.835c-16.683 16.683-43.691 16.683-60.331 0s-16.683-43.691 0-60.331z" /> +<glyph unicode="" glyph-name="chevron-up" d="M798.165 328.832l-256 256c-16.683 16.683-43.691 16.683-60.331 0l-256-256c-16.683-16.683-16.683-43.691 0-60.331s43.691-16.683 60.331 0l225.835 225.835 225.835-225.835c16.683-16.683 43.691-16.683 60.331 0s16.683 43.691 0 60.331z" /> +<glyph unicode="" glyph-name="feed" d="M136.294 209.070c-75.196 0-136.292-61.334-136.292-136.076 0-75.154 61.1-135.802 136.292-135.802 75.466 0 136.494 60.648 136.494 135.802-0.002 74.742-61.024 136.076-136.494 136.076zM0.156 612.070v-196.258c127.784 0 247.958-49.972 338.458-140.512 90.384-90.318 140.282-211.036 140.282-339.3h197.122c-0.002 372.82-303.282 676.070-675.862 676.070zM0.388 960v-196.356c455.782 0 826.756-371.334 826.756-827.644h196.856c0 564.47-459.254 1024-1023.612 1024z" /> +<glyph unicode="" glyph-name="pig" d="M789.568 258.912c0 0 106.56 72.896 106.56 216.672 0 214.016-226.816 293.152-348.768 291.040-121.984-2.144-158.336-34.24-158.336-34.24s-41.504 30.176-85.504 55.456c-33.664 13.12-41.472 15.008-64.864 7.488-18.72 0-6.944-31.168 0.576-42.4 7.456-11.232 43.712-73.28 43.712-73.28s-76.096-78.368-81.728-129.888c0 0.928-35.84 0.288-55.488 0.288s-17.792-21.408-17.792-21.408l0.544-150.848c0 0-1.216-21.408 16.608-21.408 17.792 0 55.616-0.416 55.616-0.416s53.216-77.28 86.944-91.328c0-0.928-29.152-80.096-29.152-80.096s-14.048-24.352 11.232-33.728c25.28-9.344 91.232-37.024 119.328-45.472 28.064-8.416 32.096 10.688 32.096 10.688l27.808 60.064 181.92-0.288 27.808-61.92c0 0 5.344-28.736 42.784-12.832 37.472 15.904 78.368 34.784 109.28 50.688 30.88 15.904 10.56 45.632 10.56 45.632l-31.744 61.536zM298.304 519.552c-17.056 0-30.88 13.856-30.88 30.912s13.824 30.88 30.88 30.88 30.912-13.824 30.912-30.88-13.856-30.912-30.912-30.912zM733.6 615.808c-9.856-11.68-16.288-3.072-24.224-0.736 0 0-33.632 31.2-83.040 45.76-51.168 15.040-105.024 7.776-105.024 7.776-7.936 2.336-17.568 2.592-17.632 14.848 0.416 15.136 18.784 15.264 18.56 15.776 0 0 60.608 5.6 111.328-9.312 49.888-14.656 88-46.528 88-46.528s20.384-14.048 12.032-27.584z" /> +<glyph unicode="" glyph-name="library" horiz-adv-x="1088" d="M1024 0v64h-64v384h64v64h-192v-64h64v-384h-192v384h64v64h-192v-64h64v-384h-192v384h64v64h-192v-64h64v-384h-192v384h64v64h-192v-64h64v-384h-64v-64h-64v-64h1088v64h-64zM512 960h64l512-320v-64h-1088v64l512 320z" /> +<glyph unicode="" glyph-name="office" d="M0-64h512v1024h-512v-1024zM320 832h128v-128h-128v128zM320 576h128v-128h-128v128zM320 320h128v-128h-128v128zM64 832h128v-128h-128v128zM64 576h128v-128h-128v128zM64 320h128v-128h-128v128zM576 640h448v-64h-448zM576-64h128v256h192v-256h128v576h-448z" /> +<glyph unicode="" glyph-name="attachment" d="M665.832 632.952l-64.952 64.922-324.81-324.742c-53.814-53.792-53.814-141.048 0-194.844 53.804-53.792 141.060-53.792 194.874 0l389.772 389.708c89.714 89.662 89.714 235.062 0 324.726-89.666 89.704-235.112 89.704-324.782 0l-409.23-409.178c-0.29-0.304-0.612-0.576-0.876-0.846-125.102-125.096-125.102-327.856 0-452.906 125.054-125.056 327.868-125.056 452.988 0 0.274 0.274 0.516 0.568 0.82 0.876l0.032-0.034 279.332 279.292-64.986 64.92-279.33-279.262c-0.296-0.268-0.564-0.57-0.846-0.844-89.074-89.058-233.98-89.058-323.076 0-89.062 89.042-89.062 233.922 0 322.978 0.304 0.304 0.604 0.582 0.888 0.846l-0.046 0.060 409.28 409.166c53.712 53.738 141.144 53.738 194.886 0 53.712-53.734 53.712-141.148 0-194.84l-389.772-389.7c-17.936-17.922-47.054-17.922-64.972 0-17.894 17.886-17.894 47.032 0 64.92l324.806 324.782z" /> +<glyph unicode="" glyph-name="enlarge" d="M1024 960h-416l160-160-192-192 96-96 192 192 160-160zM1024-64v416l-160-160-192 192-96-96 192-192-160-160zM0-64h416l-160 160 192 192-96 96-192-192-160 160zM0 960v-416l160 160 192-192 96 96-192 192 160 160z" /> +<glyph unicode="" glyph-name="anchor" d="M548.571 804.571c0 20-16.571 36.571-36.571 36.571s-36.571-16.571-36.571-36.571 16.571-36.571 36.571-36.571 36.571 16.571 36.571 36.571zM1024 274.286v-201.143c0-7.429-4.571-14.286-11.429-17.143-2.286-0.571-4.571-1.143-6.857-1.143-4.571 0-9.143 1.714-13.143 5.143l-53.143 53.143c-89.714-108-250.857-177.143-427.429-177.143s-337.714 69.143-427.429 177.143l-53.143-53.143c-3.429-3.429-8.571-5.143-13.143-5.143-2.286 0-4.571 0.571-6.857 1.143-6.857 2.857-11.429 9.714-11.429 17.143v201.143c0 10.286 8 18.286 18.286 18.286h201.143c7.429 0 14.286-4.571 17.143-11.429s1.143-14.286-4-20l-57.143-57.143c51.429-69.143 150.286-119.429 263.429-134.857v369.714h-109.714c-20 0-36.571 16.571-36.571 36.571v73.143c0 20 16.571 36.571 36.571 36.571h109.714v93.143c-43.429 25.143-73.143 72-73.143 126.286 0 80.571 65.714 146.286 146.286 146.286s146.286-65.714 146.286-146.286c0-54.286-29.714-101.143-73.143-126.286v-93.143h109.714c20 0 36.571-16.571 36.571-36.571v-73.143c0-20-16.571-36.571-36.571-36.571h-109.714v-369.714c113.143 15.429 212 65.714 263.429 134.857l-57.143 57.143c-5.143 5.714-6.857 13.143-4 20s9.714 11.429 17.143 11.429h201.143c10.286 0 18.286-8 18.286-18.286z" /> +<glyph unicode="" glyph-name="eye-off" d="M945.942 945.942c-18.746 18.744-49.136 18.744-67.882 0l-202.164-202.164c-51.938 15.754-106.948 24.222-163.896 24.222-223.318 0-416.882-130.042-512-320 41.122-82.124 100.648-153.040 173.022-207.096l-158.962-158.962c-18.746-18.746-18.746-49.136 0-67.882 9.372-9.374 21.656-14.060 33.94-14.060s24.568 4.686 33.942 14.058l864 864c18.744 18.746 18.744 49.138 0 67.884zM416 640c42.24 0 78.082-27.294 90.92-65.196l-121.724-121.724c-37.902 12.838-65.196 48.68-65.196 90.92 0 53.020 42.98 96 96 96zM110.116 448c38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.862 7.3-9.962-27.328-15.412-56.822-15.412-87.596 0-54.89 17.286-105.738 46.7-147.418l-60.924-60.924c-52.446 36.842-97.202 83.882-131.66 138.342zM768 518c0 27.166-4.256 53.334-12.102 77.898l-321.808-321.808c24.568-7.842 50.742-12.090 77.91-12.090 141.382 0 256 114.618 256 256zM830.026 670.026l-69.362-69.362c1.264-0.786 2.53-1.568 3.786-2.368 60.162-38.374 111.142-89.774 149.434-150.296-38.292-60.522-89.274-111.922-149.436-150.296-75.594-48.218-162.89-73.704-252.448-73.704-38.664 0-76.902 4.76-113.962 14.040l-76.894-76.894c59.718-21.462 123.95-33.146 190.856-33.146 223.31 0 416.876 130.042 512 320-45.022 89.916-112.118 166.396-193.974 222.026z" /> +<glyph unicode="" glyph-name="eye" d="M512 768c-223.318 0-416.882-130.042-512-320 95.118-189.958 288.682-320 512-320 223.312 0 416.876 130.042 512 320-95.116 189.958-288.688 320-512 320zM764.45 598.296c60.162-38.374 111.142-89.774 149.434-150.296-38.292-60.522-89.274-111.922-149.436-150.296-75.594-48.218-162.89-73.704-252.448-73.704-89.56 0-176.858 25.486-252.452 73.704-60.158 38.372-111.138 89.772-149.432 150.296 38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.86 7.3-9.96-27.328-15.41-56.822-15.41-87.596 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 30.774-5.452 60.268-15.408 87.598 3.978-2.378 7.938-4.802 11.858-7.302v0zM512 544c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.982 96-96z" /> +<glyph unicode="" glyph-name="bubbles" horiz-adv-x="1152" d="M480 960v0c265.096 0 480-173.914 480-388.448s-214.904-388.448-480-388.448c-25.458 0-50.446 1.62-74.834 4.71-103.106-102.694-222.172-121.108-341.166-123.814v25.134c64.252 31.354 116 88.466 116 153.734 0 9.106-0.712 18.048-2.030 26.794-108.558 71.214-177.97 179.988-177.97 301.89 0 214.534 214.904 388.448 480 388.448zM996 89.314c0-55.942 36.314-104.898 92-131.772v-21.542c-103.126 2.318-197.786 18.102-287.142 106.126-21.14-2.65-42.794-4.040-64.858-4.040-95.47 0-183.408 25.758-253.614 69.040 144.674 0.506 281.26 46.854 384.834 130.672 52.208 42.252 93.394 91.826 122.414 147.348 30.766 58.866 46.366 121.582 46.366 186.406 0 10.448-0.45 20.836-1.258 31.168 72.57-59.934 117.258-141.622 117.258-231.676 0-104.488-60.158-197.722-154.24-258.764-1.142-7.496-1.76-15.16-1.76-22.966z" /> +<glyph unicode="" glyph-name="share" d="M864 256c-45.16 0-85.92-18.738-115.012-48.83l-431.004 215.502c1.314 8.252 2.016 16.706 2.016 25.328s-0.702 17.076-2.016 25.326l431.004 215.502c29.092-30.090 69.852-48.828 115.012-48.828 88.366 0 160 71.634 160 160s-71.634 160-160 160-160-71.634-160-160c0-8.622 0.704-17.076 2.016-25.326l-431.004-215.504c-29.092 30.090-69.852 48.83-115.012 48.83-88.366 0-160-71.636-160-160 0-88.368 71.634-160 160-160 45.16 0 85.92 18.738 115.012 48.828l431.004-215.502c-1.312-8.25-2.016-16.704-2.016-25.326 0-88.368 71.634-160 160-160s160 71.632 160 160c0 88.364-71.634 160-160 160z" /> +<glyph unicode="" glyph-name="strategy" horiz-adv-x="736" d="M704-48c0 8.832-7.168 16-16 16h-576c-8.832 0-16-7.168-16-16s7.168-16 16-16h576c8.832 0 16 7.168 16 16zM40.768 660.672c-13.376-8.896-33.664-35.968-14.432-74.432 15.968-31.904 49.28-70.944 84.704-81.248 18.048-5.312 35.84-3.104 51.36 6.272 35.168 21.056 76.704 49.536 94.304 61.76 22.208-11.232 50.24-13.568 78.72-6.24 0.128 0.032 0.256 0.096 0.384 0.128-1.664-52.832-19.552-85.824-107.008-167.040-77.952-72.352-124.192-167.392-123.744-254.272 0.32-56.992 21.088-105.92 60.16-141.408 2.976-2.72 6.816-4.192 10.784-4.192h448c8.832 0 16 7.168 16 16s-7.168 16-16 16h-441.632c-29.408 28.96-45.024 68.16-45.28 113.76-0.416 76.864 43.104 165.28 113.504 230.656 93.28 86.592 117.408 127.616 117.408 199.584 0 1.312-0.448 2.464-0.736 3.68 17.504 9.44 32.64 21.92 42.976 37.024 12.96 18.88 40.864 67.36 20.16 110.272-3.84 7.904-13.408 11.264-21.376 7.424-7.936-3.84-11.296-13.408-7.424-21.376 9.312-19.296 2.688-48.544-17.728-78.24-11.776-17.152-32.832-31.008-56.352-37.024-23.904-6.112-46.624-3.424-62.464 7.424-5.536 3.776-12.8 3.744-18.272-0.128-0.576-0.384-56.864-40.032-100.768-66.368-8.032-4.8-16.512-5.824-25.984-3.008-24.768 7.232-52 38.784-65.024 64.832-10.528 21.056 0.256 31.104 5.152 34.688 110.304 95.264 165.664 194.24 167.936 198.432 2.112 3.904 2.56 8.512 1.152 12.768-0.16 0.48-11.2 34.016-17.28 65.056 33.472-20.16 91.040-48.32 150.976-48.32 83.328 0 277.056-31.104 277.056-319.232 0-1.568-0.288-158.208-63.040-330.464-3.040-8.288 1.248-17.472 9.568-20.512 1.824-0.608 3.648-0.928 5.472-0.928 6.528 0 12.672 4.032 15.040 10.528 64.672 177.536 64.992 334.912 64.96 341.472 0 325.856-236.576 351.168-309.056 351.168-80.288 0-160.384 60.896-161.152 61.536-4.896 3.68-11.36 4.288-16.864 1.632-5.472-2.688-8.928-8.256-8.928-14.336 0-31.392 14.88-82.176 20.672-100.704-13.376-22.336-66.112-104.992-155.904-182.624zM559.52 910.72c-51.232 34.528-108.512 49.28-191.52 49.28-8.832 0-16-7.168-16-16s7.168-16 16-16c76.16 0 128.096-13.088 173.664-43.808 74.048-49.984 162.336-149.568 162.336-340.192 0-46.432 0-110.016-31.52-236.128-2.112-8.576 3.072-17.248 11.648-19.392 1.312-0.32 2.592-0.48 3.872-0.48 7.2 0 13.728 4.832 15.52 12.128 32.48 129.888 32.48 195.776 32.48 243.872 0 204.672-95.968 312.416-176.48 366.72z" /> +<glyph unicode="" glyph-name="menu" d="M128 384h768c23.552 0 42.667 19.115 42.667 42.667s-19.115 42.667-42.667 42.667h-768c-23.552 0-42.667-19.115-42.667-42.667s19.115-42.667 42.667-42.667zM128 640h768c23.552 0 42.667 19.115 42.667 42.667s-19.115 42.667-42.667 42.667h-768c-23.552 0-42.667-19.115-42.667-42.667s19.115-42.667 42.667-42.667zM128 128h768c23.552 0 42.667 19.115 42.667 42.667s-19.115 42.667-42.667 42.667h-768c-23.552 0-42.667-19.115-42.667-42.667s19.115-42.667 42.667-42.667z" /> +<glyph unicode="" glyph-name="users" horiz-adv-x="1152" d="M768 189.388v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h896c0 128.968-166.898 235.64-384 253.388zM327.196 164.672c55.31 36.15 124.080 63.636 199.788 80.414-15.054 17.784-28.708 37.622-40.492 59.020-30.414 55.234-46.492 116.058-46.492 175.894 0 86.042 0 167.31 30.6 233.762 29.706 64.504 83.128 104.496 159.222 119.488-16.914 76.48-61.94 126.75-181.822 126.75-192 0-192-128.942-192-288 0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h279.006c14.518 12.91 30.596 25.172 48.19 36.672z" /> +<glyph unicode="" glyph-name="book" d="M896 832v-832h-672c-53.026 0-96 42.98-96 96s42.974 96 96 96h608v768h-640c-70.398 0-128-57.6-128-128v-768c0-70.4 57.602-128 128-128h768v896h-64zM224.056 128v0c-0.018-0.002-0.038 0-0.056 0-17.672 0-32-14.326-32-32s14.328-32 32-32c0.018 0 0.038 0.002 0.056 0.002v-0.002h607.89v64h-607.89z" /> +<glyph unicode="" glyph-name="youtube" d="M1013.8 652.8c0 0-10 70.6-40.8 101.6-39 40.8-82.6 41-102.6 43.4-143.2 10.4-358.2 10.4-358.2 10.4h-0.4c0 0-215 0-358.2-10.4-20-2.4-63.6-2.6-102.6-43.4-30.8-31-40.6-101.6-40.6-101.6s-10.2-82.8-10.2-165.8v-77.6c0-82.8 10.2-165.8 10.2-165.8s10-70.6 40.6-101.6c39-40.8 90.2-39.4 113-43.8 82-7.8 348.2-10.2 348.2-10.2s215.2 0.4 358.4 10.6c20 2.4 63.6 2.6 102.6 43.4 30.8 31 40.8 101.6 40.8 101.6s10.2 82.8 10.2 165.8v77.6c-0.2 82.8-10.4 165.8-10.4 165.8zM406.2 315.2v287.8l276.6-144.4-276.6-143.4z" /> +<glyph unicode="" glyph-name="cross" d="M1014.662 137.34c-0.004 0.004-0.008 0.008-0.012 0.010l-310.644 310.65 310.644 310.65c0.004 0.004 0.008 0.006 0.012 0.010 3.344 3.346 5.762 7.254 7.312 11.416 4.246 11.376 1.824 24.682-7.324 33.83l-146.746 146.746c-9.148 9.146-22.45 11.566-33.828 7.32-4.16-1.55-8.070-3.968-11.418-7.31 0-0.004-0.004-0.006-0.008-0.010l-310.648-310.652-310.648 310.65c-0.004 0.004-0.006 0.006-0.010 0.010-3.346 3.342-7.254 5.76-11.414 7.31-11.38 4.248-24.682 1.826-33.83-7.32l-146.748-146.748c-9.148-9.148-11.568-22.452-7.322-33.828 1.552-4.16 3.97-8.072 7.312-11.416 0.004-0.002 0.006-0.006 0.010-0.010l310.65-310.648-310.65-310.652c-0.002-0.004-0.006-0.006-0.008-0.010-3.342-3.346-5.76-7.254-7.314-11.414-4.248-11.376-1.826-24.682 7.322-33.83l146.748-146.746c9.15-9.148 22.452-11.568 33.83-7.322 4.16 1.552 8.070 3.97 11.416 7.312 0.002 0.004 0.006 0.006 0.010 0.010l310.648 310.65 310.648-310.65c0.004-0.002 0.008-0.006 0.012-0.008 3.348-3.344 7.254-5.762 11.414-7.314 11.378-4.246 24.684-1.826 33.828 7.322l146.746 146.748c9.148 9.148 11.57 22.454 7.324 33.83-1.552 4.16-3.97 8.068-7.314 11.414z" /> +<glyph unicode="" glyph-name="checkbox-checked" d="M896 960h-768c-70.4 0-128-57.6-128-128v-768c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v768c0 70.4-57.6 128-128 128zM448 165.49l-237.254 237.256 90.51 90.508 146.744-146.744 306.746 306.746 90.508-90.51-397.254-397.256z" /> +<glyph unicode="" glyph-name="search" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256z" /> +<glyph unicode="" glyph-name="globe" d="M480 896c-265.096 0-480-214.904-480-480 0-265.098 214.904-480 480-480 265.098 0 480 214.902 480 480 0 265.096-214.902 480-480 480zM751.59 256c8.58 40.454 13.996 83.392 15.758 128h127.446c-3.336-44.196-13.624-87.114-30.68-128h-112.524zM208.41 576c-8.58-40.454-13.996-83.392-15.758-128h-127.444c3.336 44.194 13.622 87.114 30.678 128h112.524zM686.036 576c9.614-40.962 15.398-83.854 17.28-128h-191.316v128h174.036zM512 640v187.338c14.59-4.246 29.044-11.37 43.228-21.37 26.582-18.74 52.012-47.608 73.54-83.486 14.882-24.802 27.752-52.416 38.496-82.484h-155.264zM331.232 722.484c21.528 35.878 46.956 64.748 73.54 83.486 14.182 10 28.638 17.124 43.228 21.37v-187.34h-155.264c10.746 30.066 23.616 57.68 38.496 82.484zM448 576v-128h-191.314c1.88 44.146 7.666 87.038 17.278 128h174.036zM95.888 256c-17.056 40.886-27.342 83.804-30.678 128h127.444c1.762-44.608 7.178-87.546 15.758-128h-112.524zM256.686 384h191.314v-128h-174.036c-9.612 40.96-15.398 83.854-17.278 128zM448 192v-187.34c-14.588 4.246-29.044 11.372-43.228 21.37-26.584 18.74-52.014 47.61-73.54 83.486-14.882 24.804-27.75 52.418-38.498 82.484h155.266zM628.768 109.516c-21.528-35.876-46.958-64.746-73.54-83.486-14.184-9.998-28.638-17.124-43.228-21.37v187.34h155.266c-10.746-30.066-23.616-57.68-38.498-82.484zM512 256v128h191.314c-1.88-44.146-7.666-87.040-17.28-128h-174.034zM767.348 448c-1.762 44.608-7.178 87.546-15.758 128h112.524c17.056-40.886 27.344-83.806 30.68-128h-127.446zM830.658 640h-95.9c-18.638 58.762-44.376 110.294-75.316 151.428 42.536-20.34 81.058-47.616 114.714-81.272 21.48-21.478 40.362-44.938 56.502-70.156zM185.844 710.156c33.658 33.658 72.18 60.932 114.714 81.272-30.942-41.134-56.676-92.666-75.316-151.428h-95.898c16.138 25.218 35.022 48.678 56.5 70.156zM129.344 192h95.898c18.64-58.762 44.376-110.294 75.318-151.43-42.536 20.34-81.058 47.616-114.714 81.274-21.48 21.478-40.364 44.938-56.502 70.156zM774.156 121.844c-33.656-33.658-72.18-60.934-114.714-81.274 30.942 41.134 56.678 92.668 75.316 151.43h95.9c-16.14-25.218-35.022-48.678-56.502-70.156z" /> +<glyph unicode="" glyph-name="wikipedia" d="M966.8 726.4c0-3.2-1-6.2-3-9-2-2.6-4.2-4-6.8-4-20-2-36.4-8.4-49-19.2-12.8-10.8-25.8-31.8-39.2-62.4l-206.4-465.4c-1.4-4.4-5.2-6.4-11.4-6.4-4.8 0-8.6 2.2-11.4 6.4l-115.8 242-133.2-242c-2.8-4.4-6.4-6.4-11.4-6.4-6 0-9.8 2.2-11.8 6.4l-202.6 465.2c-12.6 28.8-26 49-40 60.4s-33.6 18.6-58.6 21.2c-2.2 0-4.2 1.2-6 3.4-2 2.2-2.8 4.8-2.8 7.8 0 7.6 2.2 11.4 6.4 11.4 18 0 37-0.8 56.8-2.4 18.4-1.6 35.6-2.4 51.8-2.4 16.4 0 36 0.8 58.4 2.4 23.4 1.6 44.2 2.4 62.4 2.4 4.4 0 6.4-3.8 6.4-11.4s-1.4-11.2-4-11.2c-18-1.4-32.4-6-42.8-13.8s-15.6-18-15.6-30.8c0-6.4 2.2-14.6 6.4-24.2l167.4-378.4 95.2 179.6-88.6 185.8c-16 33.2-29 54.6-39.2 64.2s-25.8 15.4-46.6 17.6c-2 0-3.6 1.2-5.4 3.4s-2.6 4.8-2.6 7.8c0 7.6 1.8 11.4 5.6 11.4 18 0 34.6-0.8 49.8-2.4 14.6-1.6 30-2.4 46.6-2.4 16.2 0 33.2 0.8 51.4 2.4 18.6 1.6 37 2.4 55 2.4 4.4 0 6.4-3.8 6.4-11.4s-1.2-11.2-4-11.2c-36.2-2.4-54.2-12.8-54.2-30.8 0-8 4.2-20.6 12.6-37.6l58.6-119 58.4 108.8c8 15.4 12.2 28.4 12.2 38.8 0 24.8-18 38-54.2 39.6-3.2 0-4.8 3.8-4.8 11.2 0 2.8 0.8 5.2 2.4 7.6s3.2 3.6 4.8 3.6c13 0 28.8-0.8 47.8-2.4 18-1.6 33-2.4 44.6-2.4 8.4 0 20.6 0.8 36.8 2 20.4 1.8 37.6 2.8 51.4 2.8 3.2 0 4.8-3.2 4.8-9.6 0-8.6-3-13-8.8-13-21-2.2-38-8-50.8-17.4s-28.8-30.8-48-64.4l-78.2-143.2 105.2-214.4 155.4 361.4c5.4 13.2 8 25.4 8 36.4 0 26.4-18 40.4-54.2 42.2-3.2 0-4.8 3.8-4.8 11.2 0 7.6 2.4 11.4 7.2 11.4 13.2 0 28.8-0.8 47-2.4 16.8-1.6 30.8-2.4 42-2.4 12 0 25.6 0.8 41.2 2.4 16.2 1.6 30.8 2.4 43.8 2.4 4 0 6-3.2 6-9.6z" /> +<glyph unicode="" glyph-name="pencil" d="M864 960c88.364 0 160-71.634 160-160 0-36.020-11.91-69.258-32-96l-64-64-224 224 64 64c26.742 20.090 59.978 32 96 32zM64 224l-64-288 288 64 592 592-224 224-592-592zM715.578 596.422l-448-448-55.156 55.156 448 448 55.156-55.156z" /> +<glyph unicode="" glyph-name="thumbs-down" horiz-adv-x="914" d="M146.286 621.714c0-20-16.571-36.571-36.571-36.571-20.571 0-36.571 16.571-36.571 36.571 0 20.571 16 36.571 36.571 36.571 20 0 36.571-16 36.571-36.571zM237.714 329.143v365.714c0 20-16.571 36.571-36.571 36.571h-164.571c-20 0-36.571-16.571-36.571-36.571v-365.714c0-20 16.571-36.571 36.571-36.571h164.571c20 0 36.571 16.571 36.571 36.571zM882.857 414.286c19.429-21.714 31.429-54.857 31.429-85.143-0.571-59.429-50.286-109.714-109.714-109.714h-158.286c4.571-18.286 10.286-24 16.571-36.571 14.857-29.714 32-62.857 32-109.714 0-44 0-146.286-128-146.286-9.714 0-18.857 4-25.714 10.857-24.571 24-31.429 59.429-37.714 93.143-6.857 33.143-13.143 67.429-35.429 89.714-17.714 17.714-37.143 42.286-57.714 68.571-25.143 33.143-80 101.143-101.143 102.857-18.857 1.714-34.857 17.714-34.857 36.571v366.286c0 20 17.143 36 36.571 36.571 20 0.571 54.286 12.571 90.286 25.143 61.714 21.143 138.857 48 220.571 48h73.714c50.286-0.571 88-15.429 112.571-44.571 21.714-25.714 31.429-60.571 28-103.429 14.286-13.714 25.143-32.571 30.857-53.714 6.286-22.857 6.286-45.714 0-66.857 17.143-22.857 25.714-49.714 24.571-78.286 0-8-2.286-25.143-8.571-43.429z" /> +<glyph unicode="" glyph-name="thumbs-up" horiz-adv-x="914" d="M146.286 182.857c0 20-16.571 36.571-36.571 36.571-20.571 0-36.571-16.571-36.571-36.571 0-20.571 16-36.571 36.571-36.571 20 0 36.571 16 36.571 36.571zM237.714 475.428v-365.714c0-20-16.571-36.571-36.571-36.571h-164.571c-20 0-36.571 16.571-36.571 36.571v365.714c0 20 16.571 36.571 36.571 36.571h164.571c20 0 36.571-16.571 36.571-36.571zM914.286 475.428c0-30.286-12-62.857-31.429-85.143 6.286-18.286 8.571-35.429 8.571-43.429 1.143-28.571-7.429-55.429-24.571-78.286 6.286-21.143 6.286-44 0-66.857-5.714-21.143-16.571-40-30.857-53.714 3.429-42.857-6.286-77.714-28-103.429-24.571-29.143-62.286-44-112.571-44.571h-73.714c-81.714 0-158.857 26.857-220.571 48-36 12.571-70.286 24.571-90.286 25.143-19.429 0.571-36.571 16.571-36.571 36.571v366.286c0 18.857 16 34.857 34.857 36.571 21.143 1.714 76 69.714 101.143 102.857 20.571 26.286 40 50.857 57.714 68.571 22.286 22.286 28.571 56.571 35.429 89.714 6.286 33.714 13.143 69.143 37.714 93.143 6.857 6.857 16 10.857 25.714 10.857 128 0 128-102.286 128-146.286 0-46.857-16.571-80-32-109.714-6.286-12.571-12-18.286-16.571-36.571h158.286c59.429 0 109.714-50.286 109.714-109.714z" /> +<glyph unicode="" glyph-name="warning" d="M512 867.226l429.102-855.226h-858.206l429.104 855.226zM512 960c-22.070 0-44.14-14.882-60.884-44.648l-437.074-871.112c-33.486-59.532-5-108.24 63.304-108.24h869.308c68.3 0 96.792 48.708 63.3 108.24h0.002l-437.074 871.112c-16.742 29.766-38.812 44.648-60.882 44.648v0zM576 128c0-35.346-28.654-64-64-64s-64 28.654-64 64c0 35.346 28.654 64 64 64s64-28.654 64-64zM512 256c-35.346 0-64 28.654-64 64v192c0 35.346 28.654 64 64 64s64-28.654 64-64v-192c0-35.346-28.654-64-64-64z" /> +<glyph unicode="" glyph-name="dots-three-vertical" d="M512.051 573.44c-62.208 0-112.691-50.432-112.691-112.64s50.483-112.64 112.691-112.64c62.208 0 112.589 50.432 112.589 112.64s-50.381 112.64-112.589 112.64zM512.051 706.56c62.208 0 112.589 50.483 112.589 112.64s-50.381 112.64-112.589 112.64c-62.208 0-112.691-50.432-112.691-112.64s50.483-112.64 112.691-112.64zM512.051 215.040c-62.208 0-112.691-50.432-112.691-112.64s50.483-112.64 112.691-112.64c62.208 0 112.589 50.432 112.589 112.64s-50.381 112.64-112.589 112.64z" /> +<glyph unicode="" glyph-name="dots-three-horizontal" d="M512.051 573.44c-62.208 0-112.691-50.432-112.691-112.64s50.483-112.64 112.691-112.64c62.208 0 112.589 50.432 112.589 112.64s-50.381 112.64-112.589 112.64zM153.651 573.44c-62.208 0-112.691-50.432-112.691-112.64s50.483-112.64 112.691-112.64c62.208 0 112.589 50.483 112.589 112.64s-50.381 112.64-112.589 112.64zM870.451 573.44c-62.208 0-112.691-50.432-112.691-112.64s50.483-112.64 112.691-112.64c62.208 0 112.589 50.432 112.589 112.64s-50.381 112.64-112.589 112.64z" /> +<glyph unicode="" glyph-name="log-out" d="M972.8 460.8l-307.2 256v-153.6h-358.4v-204.8h358.4v-153.6l307.2 256zM153.6 819.2h409.6v102.4h-409.6c-56.32 0-102.4-46.080-102.4-102.4v-716.8c0-56.32 46.080-102.4 102.4-102.4h409.6v102.4h-409.6v716.8z" /> +<glyph unicode="" glyph-name="pin" d="M563.2 358.4h307.2v51.2l-153.6 51.2v409.6l153.6 51.2v51.2h-716.8v-51.2l153.6-51.2v-409.6l-153.6-51.2v-51.2h307.2v-358.4l51.2-51.2 51.2 51.2v358.4z" /> +<glyph unicode="" glyph-name="bullhorn" d="M1024 530.744c0 200.926-58.792 363.938-131.482 365.226 0.292 0.006 0.578 0.030 0.872 0.030h-82.942c0 0-194.8-146.336-475.23-203.754-8.56-45.292-14.030-99.274-14.030-161.502s5.466-116.208 14.030-161.5c280.428-57.418 475.23-203.756 475.23-203.756h82.942c-0.292 0-0.578 0.024-0.872 0.032 72.696 1.288 131.482 164.298 131.482 365.224zM864.824 220.748c-9.382 0-19.532 9.742-24.746 15.548-12.63 14.064-24.792 35.96-35.188 63.328-23.256 61.232-36.066 143.31-36.066 231.124 0 87.81 12.81 169.89 36.066 231.122 10.394 27.368 22.562 49.266 35.188 63.328 5.214 5.812 15.364 15.552 24.746 15.552 9.38 0 19.536-9.744 24.744-15.552 12.634-14.064 24.796-35.958 35.188-63.328 23.258-61.23 36.068-143.312 36.068-231.122 0-87.804-12.81-169.888-36.068-231.124-10.39-27.368-22.562-49.264-35.188-63.328-5.208-5.806-15.36-15.548-24.744-15.548zM251.812 530.744c0 51.95 3.81 102.43 11.052 149.094-47.372-6.554-88.942-10.324-140.34-10.324-67.058 0-67.058 0-67.058 0l-55.466-94.686v-88.17l55.46-94.686c0 0 0 0 67.060 0 51.398 0 92.968-3.774 140.34-10.324-7.236 46.664-11.048 97.146-11.048 149.096zM368.15 317.828l-127.998 24.51 81.842-321.544c4.236-16.634 20.744-25.038 36.686-18.654l118.556 47.452c15.944 6.376 22.328 23.964 14.196 39.084l-123.282 229.152zM864.824 411.27c-3.618 0-7.528 3.754-9.538 5.992-4.87 5.42-9.556 13.86-13.562 24.408-8.962 23.6-13.9 55.234-13.9 89.078s4.938 65.478 13.9 89.078c4.006 10.548 8.696 18.988 13.562 24.408 2.010 2.24 5.92 5.994 9.538 5.994 3.616 0 7.53-3.756 9.538-5.994 4.87-5.42 9.556-13.858 13.56-24.408 8.964-23.598 13.902-55.234 13.902-89.078 0-33.842-4.938-65.478-13.902-89.078-4.004-10.548-8.696-18.988-13.56-24.408-2.008-2.238-5.92-5.992-9.538-5.992z" /> +<glyph unicode="" glyph-name="bin" d="M128 640v-640c0-35.2 28.8-64 64-64h576c35.2 0 64 28.8 64 64v640h-704zM320 64h-64v448h64v-448zM448 64h-64v448h64v-448zM576 64h-64v448h64v-448zM704 64h-64v448h64v-448zM848 832h-208v80c0 26.4-21.6 48-48 48h-224c-26.4 0-48-21.6-48-48v-80h-208c-26.4 0-48-21.6-48-48v-80h832v80c0 26.4-21.6 48-48 48zM576 832h-192v63.198h192v-63.198z" /> +<glyph unicode="" glyph-name="rocket" d="M704 896l-320-320h-192l-192-256c0 0 203.416 56.652 322.066 30.084l-322.066-414.084 421.902 328.144c58.838-134.654-37.902-328.144-37.902-328.144l256 192v192l320 320 64 320-320-64z" /> +<glyph unicode="" glyph-name="lock-open" d="M768 896c105.87 0 192-86.13 192-192v-192h-128v192c0 35.29-28.71 64-64 64h-128c-35.29 0-64-28.71-64-64v-192h16c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48h-544c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h400v192c0 105.87 86.13 192 192 192h128z" /> +<glyph unicode="" glyph-name="lock" d="M592 512h-16v192c0 105.87-86.13 192-192 192h-128c-105.87 0-192-86.13-192-192v-192h-16c-26.4 0-48-21.6-48-48v-480c0-26.4 21.6-48 48-48h544c26.4 0 48 21.6 48 48v480c0 26.4-21.6 48-48 48zM192 704c0 35.29 28.71 64 64 64h128c35.29 0 64-28.71 64-64v-192h-256v192z" /> +<glyph unicode="" glyph-name="equalizer" d="M448 832v16c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576zM256 704v128h128v-128h-128zM832 528c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-576v-128h576v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h192v128h-192v16zM640 384v128h128v-128h-128zM448 208c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576v16zM256 64v128h128v-128h-128z" /> +<glyph unicode="" glyph-name="code" horiz-adv-x="1280" d="M832 224l96-96 320 320-320 320-96-96 224-224zM448 672l-96 96-320-320 320-320 96 96-224 224zM701.298 809.481l69.468-18.944-191.987-704.026-69.468 18.944 191.987 704.026z" /> +<glyph unicode="" glyph-name="switch" d="M640 813.412v-135.958c36.206-15.804 69.5-38.408 98.274-67.18 60.442-60.44 93.726-140.8 93.726-226.274s-33.286-165.834-93.726-226.274c-60.44-60.44-140.798-93.726-226.274-93.726s-165.834 33.286-226.274 93.726c-60.44 60.44-93.726 140.8-93.726 226.274s33.286 165.834 93.726 226.274c28.774 28.774 62.068 51.378 98.274 67.182v135.956c-185.048-55.080-320-226.472-320-429.412 0-247.424 200.578-448 448-448 247.424 0 448 200.576 448 448 0 202.94-134.95 374.332-320 429.412zM448 960h128v-512h-128z" /> +<glyph unicode="" glyph-name="loop" d="M889.68 793.68c-93.608 102.216-228.154 166.32-377.68 166.32-282.77 0-512-229.23-512-512h96c0 229.75 186.25 416 416 416 123.020 0 233.542-53.418 309.696-138.306l-149.696-149.694h352v352l-134.32-134.32zM928 448c0-229.75-186.25-416-416-416-123.020 0-233.542 53.418-309.694 138.306l149.694 149.694h-352v-352l134.32 134.32c93.608-102.216 228.154-166.32 377.68-166.32 282.77 0 512 229.23 512 512h-96z" /> +<glyph unicode="" glyph-name="refresh" d="M1024 576h-384l143.53 143.53c-72.53 72.526-168.96 112.47-271.53 112.47s-199-39.944-271.53-112.47c-72.526-72.53-112.47-168.96-112.47-271.53s39.944-199 112.47-271.53c72.53-72.526 168.96-112.47 271.53-112.47s199 39.944 271.528 112.472c6.056 6.054 11.86 12.292 17.456 18.668l96.32-84.282c-93.846-107.166-231.664-174.858-385.304-174.858-282.77 0-512 229.23-512 512s229.23 512 512 512c141.386 0 269.368-57.326 362.016-149.984l149.984 149.984v-384z" /> +<glyph unicode="" glyph-name="checkbox-unchecked" d="M896 960h-768c-70.4 0-128-57.6-128-128v-768c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v768c0 70.4-57.6 128-128 128zM896 64h-768v768h768v-768z" /> +<glyph unicode="" glyph-name="star-full" d="M1024 562.95l-353.78 51.408-158.22 320.582-158.216-320.582-353.784-51.408 256-249.538-60.432-352.352 316.432 166.358 316.432-166.358-60.434 352.352 256.002 249.538z" /> +<glyph unicode="" glyph-name="star-empty" d="M1024 562.95l-353.78 51.408-158.22 320.582-158.216-320.582-353.784-51.408 256-249.538-60.432-352.352 316.432 166.358 316.432-166.358-60.434 352.352 256.002 249.538zM512 206.502l-223.462-117.48 42.676 248.83-180.786 176.222 249.84 36.304 111.732 226.396 111.736-226.396 249.836-36.304-180.788-176.222 42.678-248.83-223.462 117.48z" /> +<glyph unicode="" glyph-name="bookmark" d="M192 960v-1024l320 320 320-320v1024z" /> +<glyph unicode="" glyph-name="cog" d="M933.79 349.75c-53.726 93.054-21.416 212.304 72.152 266.488l-100.626 174.292c-28.75-16.854-62.176-26.518-97.846-26.518-107.536 0-194.708 87.746-194.708 195.99h-201.258c0.266-33.41-8.074-67.282-25.958-98.252-53.724-93.056-173.156-124.702-266.862-70.758l-100.624-174.292c28.97-16.472 54.050-40.588 71.886-71.478 53.638-92.908 21.512-211.92-71.708-266.224l100.626-174.292c28.65 16.696 61.916 26.254 97.4 26.254 107.196 0 194.144-87.192 194.7-194.958h201.254c-0.086 33.074 8.272 66.57 25.966 97.218 53.636 92.906 172.776 124.594 266.414 71.012l100.626 174.29c-28.78 16.466-53.692 40.498-71.434 71.228zM512 240.668c-114.508 0-207.336 92.824-207.336 207.334 0 114.508 92.826 207.334 207.336 207.334 114.508 0 207.332-92.826 207.332-207.334-0.002-114.51-92.824-207.334-207.332-207.334z" /> +<glyph unicode="" glyph-name="key" d="M704 960c-176.73 0-320-143.268-320-320 0-20.026 1.858-39.616 5.376-58.624l-389.376-389.376v-192c0-35.346 28.654-64 64-64h64v64h128v128h128v128h128l83.042 83.042c34.010-12.316 70.696-19.042 108.958-19.042 176.73 0 320 143.268 320 320s-143.27 320-320 320zM799.874 639.874c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96z" /> +<glyph unicode="" glyph-name="zoom-in" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM448 768h-128v-128h-128v-128h128v-128h128v128h128v128h-128z" /> +<glyph unicode="" glyph-name="zoom-out" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM192 640h384v-128h-384z" /> +<glyph unicode="" glyph-name="shrink" d="M576 512h416l-160 160 192 192-96 96-192-192-160 160zM576 384v-416l160 160 192-192 96 96-192 192 160 160zM448 384.004h-416l160-160-192-192 96-96 192 192 160-160zM448 512v416l-160-160-192 192-96-96 192-192-160-160z" /> +<glyph unicode="" glyph-name="printer" d="M256 896h512v-128h-512v128zM960 704h-896c-35.2 0-64-28.8-64-64v-320c0-35.2 28.794-64 64-64h192v-256h512v256h192c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM128 512c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.652-64-64-64zM704 64h-384v320h384v-320z" /> +<glyph unicode="" glyph-name="file-openoffice" d="M690.22 488.318c-60.668 28.652-137.97 34.42-194.834-6.048 69.14 6.604 144.958-4.838 195.106-57.124 48 55.080 124.116 65.406 192.958 59.732-57.488 38.144-133.22 33.024-193.23 3.44v0zM665.646 354.25c-68.376 1.578-134.434-23.172-191.1-60.104-107.176 45.588-242.736 37.124-334.002-38.982 26.33 0.934 52.006 7.446 78.056 10.792 95.182 9.488 196.588-14.142 268.512-79.824 29.772 43.542 71.644 78.242 119.652 99.922 63.074 30.52 134.16 33.684 202.82 34.52-41.688 28.648-94.614 33.954-143.938 33.676zM917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624z" /> +<glyph unicode="" glyph-name="user" d="M576 253.388v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h896c0 128.968-166.898 235.64-384 253.388z" /> +<glyph unicode="" glyph-name="file-excel" d="M743.028 576h-135.292l-95.732-141.032-95.742 141.032h-135.29l162.162-242.464-182.972-269.536h251.838v91.576h-50.156l50.156 74.994 111.396-166.57h140.444l-182.976 269.536 162.164 242.464zM917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624z" /> +<glyph unicode="" glyph-name="file-word" d="M639.778 484.108h44.21l-51.012-226.178-66.324 318.010h-106.55l-77.114-318.010-57.816 318.010h-111.394l113.092-511.88h108.838l76.294 302.708 68.256-302.708h100.336l129.628 511.88h-170.446v-91.832zM917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624z" /> +<glyph unicode="" glyph-name="file-pdf" d="M842.012 370.52c-13.648 13.446-43.914 20.566-89.972 21.172-31.178 0.344-68.702-2.402-108.17-7.928-17.674 10.198-35.892 21.294-50.188 34.658-38.462 35.916-70.568 85.772-90.576 140.594 1.304 5.12 2.414 9.62 3.448 14.212 0 0 21.666 123.060 15.932 164.666-0.792 5.706-1.276 7.362-2.808 11.796l-1.882 4.834c-5.894 13.592-17.448 27.994-35.564 27.208l-10.916 0.344c-20.202 0-36.664-10.332-40.986-25.774-13.138-48.434 0.418-120.892 24.98-214.738l-6.288-15.286c-17.588-42.876-39.63-86.060-59.078-124.158l-2.528-4.954c-20.46-40.040-39.026-74.028-55.856-102.822l-17.376-9.188c-1.264-0.668-31.044-16.418-38.028-20.644-59.256-35.38-98.524-75.542-105.038-107.416-2.072-10.17-0.53-23.186 10.014-29.212l16.806-8.458c7.292-3.652 14.978-5.502 22.854-5.502 42.206 0 91.202 52.572 158.698 170.366 77.93 25.37 166.652 46.458 244.412 58.090 59.258-33.368 132.142-56.544 178.142-56.544 8.168 0 15.212 0.78 20.932 2.294 8.822 2.336 16.258 7.368 20.792 14.194 8.926 13.432 10.734 31.932 8.312 50.876-0.72 5.622-5.21 12.574-10.068 17.32zM211.646 145.952c7.698 21.042 38.16 62.644 83.206 99.556 2.832 2.296 9.808 8.832 16.194 14.902-47.104-75.124-78.648-105.066-99.4-114.458zM478.434 760.314c13.566 0 21.284-34.194 21.924-66.254s-6.858-54.56-16.158-71.208c-7.702 24.648-11.426 63.5-11.426 88.904 0 0-0.566 48.558 5.66 48.558v0zM398.852 322.506c9.45 16.916 19.282 34.756 29.33 53.678 24.492 46.316 39.958 82.556 51.478 112.346 22.91-41.684 51.444-77.12 84.984-105.512 4.186-3.542 8.62-7.102 13.276-10.65-68.21-13.496-127.164-29.91-179.068-49.862v0zM828.902 326.348c-4.152-2.598-16.052-4.1-23.708-4.1-24.708 0-55.272 11.294-98.126 29.666 16.468 1.218 31.562 1.838 45.102 1.838 24.782 0 32.12 0.108 56.35-6.072 24.228-6.18 24.538-18.734 20.382-21.332v0zM917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624z" /> +<glyph unicode="" glyph-name="file-picture" d="M832 64h-640v128l192 320 263-320 185 128v-256zM832 480c0-53.020-42.98-96-96-96-53.022 0-96 42.98-96 96s42.978 96 96 96c53.020 0 96-42.98 96-96zM917.806 730.924c-22.212 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.888-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.984-17.78 50.678-41.878 81.374-72.572zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.326-32 32-32h224v-624z" /> +<glyph unicode="" glyph-name="file-blank" d="M917.806 730.924c-22.212 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.888-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.984-17.78 50.678-41.878 81.374-72.572zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.326-32 32-32h224v-624z" /> +<glyph unicode="" glyph-name="folder-upload" d="M576 704l-128 128h-448v-832h1024v704h-448zM512 480l224-224h-160v-256h-128v256h-160l224 224z" /> +<glyph unicode="" glyph-name="upload" d="M480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64zM224 640l256 256 256-256h-160v-320h-192v320z" /> +<glyph unicode="" glyph-name="cloud-upload" d="M892.268 573.51c2.444 11.11 3.732 22.648 3.732 34.49 0 88.366-71.634 160-160 160-14.222 0-28.014-1.868-41.132-5.352-24.798 77.352-97.29 133.352-182.868 133.352-87.348 0-161.054-58.336-184.326-138.17-22.742 6.622-46.792 10.17-71.674 10.17-141.384 0-256-114.616-256-256 0-141.388 114.616-256 256-256h128v-192h256v192h224c88.366 0 160 71.632 160 160 0 78.72-56.854 144.162-131.732 157.51zM576 320v-192h-128v192h-160l224 224 224-224h-160z" /> +<glyph unicode="" glyph-name="folder-download" d="M576 704l-128 128h-448v-832h1024v704h-448zM512 96l-224 224h160v256h128v-256h160l-224-224z" /> +<glyph unicode="" glyph-name="download" d="M736 512l-256-256-256 256h160v384h192v-384zM480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64z" /> +<glyph unicode="" glyph-name="cloud-download" d="M891.004 599.94c-3.242 128.698-108.458 232.060-237.862 232.060-75.792 0-143.266-35.494-186.854-90.732-24.442 31.598-62.69 51.96-105.708 51.96-73.81 0-133.642-59.876-133.642-133.722 0-6.436 0.48-12.76 1.364-18.954-11.222 2.024-22.766 3.138-34.57 3.138-106.998 0.002-193.732-86.786-193.732-193.842 0-107.062 86.734-193.848 193.73-193.848h91.76l226.51-234.51 226.51 234.51 111.482 0.012c96.138 0.184 174.008 78.21 174.008 174.446 0 82.090-56.678 150.9-132.996 169.482zM512 128l-192 192h128v192h128v-192h128l-192-192z" /> +<glyph unicode="" glyph-name="checkmark" d="M864 832l-480-480-224 224-160-160 384-384 640 640z" /> +<glyph unicode="" glyph-name="wheelchair" horiz-adv-x="931" d="M584.571 272.571l58.286-116.571c-44-136-170.857-229.143-313.714-229.143-181.143 0-329.143 148-329.143 329.143 0 138.286 86.857 261.714 216.571 309.143l9.714-74.857c-93.143-41.143-153.143-132.571-153.143-234.286 0-141.143 114.857-256 256-256 146.857 0 265.714 125.714 255.429 272.571zM897.714 215.428l33.143-65.143-146.286-73.143c-5.143-2.857-10.857-4-16.571-4-13.714 0-26.857 8-32.571 20l-136.571 272.571h-269.714c-18.286 0-34.286 14.286-36.571 32.571l-54.857 445.143c-0.571 5.714 1.714 18.286 3.429 24 10.857 39.429 47.429 65.143 88 65.143 50.286 0 91.429-41.143 91.429-91.429 0-52-45.714-96.571-98.286-90.857l21.143-165.143h241.714v-73.143h-232.571l9.143-73.143h260c13.714 0 26.857-8 32.571-20l130.286-260z" /> +<glyph unicode="" glyph-name="glass" d="M889.162 780.23c7.568 9.632 8.972 22.742 3.62 33.758-5.356 11.018-16.532 18.012-28.782 18.012h-704c-12.25 0-23.426-6.994-28.78-18.012-5.356-11.018-3.95-24.126 3.618-33.758l313.162-398.57v-381.66h-96c-17.672 0-32-14.326-32-32s14.328-32 32-32h320c17.674 0 32 14.326 32 32s-14.326 32-32 32h-96v381.66l313.162 398.57zM798.162 768l-100.572-128h-371.18l-100.57 128h572.322z" /> +<glyph unicode="" glyph-name="food" d="M921.6 409.6v-358.4c0-56.554-45.846-102.4-102.4-102.4s-102.4 45.846-102.4 102.4v0 256h-102.4v512c0 84.831 68.769 153.6 153.6 153.6v0h153.6v-563.2zM204.8 460.8c-56.554 0-102.4 45.846-102.4 102.4v0 358.4c0 28.277 22.923 51.2 51.2 51.2s51.2-22.923 51.2-51.2v0-204.8h51.2v204.8c0 28.277 22.923 51.2 51.2 51.2s51.2-22.923 51.2-51.2v0-204.8h51.2v204.8c0 28.277 22.923 51.2 51.2 51.2s51.2-22.923 51.2-51.2v0-358.4c0-56.554-45.846-102.4-102.4-102.4v0-409.6c0-56.554-45.846-102.4-102.4-102.4s-102.4 45.846-102.4 102.4v0 409.6z" /> +<glyph unicode="" glyph-name="bed" horiz-adv-x="1170" d="M146.286 365.714h987.429c20 0 36.571-16.571 36.571-36.571v-256h-146.286v146.286h-877.714v-146.286h-146.286v694.857c0 20 16.571 36.571 36.571 36.571h73.143c20 0 36.571-16.571 36.571-36.571v-402.286zM475.429 548.571c0 80.571-65.714 146.286-146.286 146.286s-146.286-65.714-146.286-146.286 65.714-146.286 146.286-146.286 146.286 65.714 146.286 146.286zM1170.286 402.286v36.571c0 121.143-98.286 219.429-219.429 219.429h-402.286c-20 0-36.571-16.571-36.571-36.571v-219.429h658.286z" /> +<glyph unicode="" glyph-name="train" horiz-adv-x="878" d="M621.714 950.857c141.143 0 256-81.714 256-182.857v-512c0-98.857-109.143-178.857-246.286-182.286l121.714-115.429c12-11.429 4-31.429-12.571-31.429h-603.429c-16.571 0-24.571 20-12.571 31.429l121.714 115.429c-137.143 3.429-246.286 83.429-246.286 182.286v512c0 101.143 114.857 182.857 256 182.857h365.714zM438.857 182.857c60.571 0 109.714 49.143 109.714 109.714s-49.143 109.714-109.714 109.714-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714zM768 512v292.571h-658.286v-292.571h658.286z" /> +<glyph unicode="" glyph-name="bus" horiz-adv-x="878" d="M219.429 256c0 40.571-32.571 73.143-73.143 73.143s-73.143-32.571-73.143-73.143 32.571-73.143 73.143-73.143 73.143 32.571 73.143 73.143zM804.571 256c0 40.571-32.571 73.143-73.143 73.143s-73.143-32.571-73.143-73.143 32.571-73.143 73.143-73.143 73.143 32.571 73.143 73.143zM778.286 482.286l-41.143 219.429c-3.429 17.143-18.286 29.714-36 29.714h-524.571c-17.714 0-32.571-12.571-36-29.714l-41.143-219.429c-4-22.857 13.143-43.429 36-43.429h606.857c22.857 0 40 20.571 36 43.429zM649.143 832c0 15.429-12 27.429-27.429 27.429h-365.714c-14.857 0-27.429-12-27.429-27.429s12.571-27.429 27.429-27.429h365.714c15.429 0 27.429 12 27.429 27.429zM877.714 417.714v-344.571h-73.143v-73.143c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143v73.143h-438.857v-73.143c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143v73.143h-73.143v344.571c0 46.857 4 81.714 14.286 127.429l58.857 259.429c10.857 91.429 170.857 146.286 365.714 146.286s354.857-54.857 365.714-146.286l60-259.429c10.286-45.714 13.143-80.571 13.143-127.429z" /> +<glyph unicode="" glyph-name="donation-full" d="M579.709 195.28c-1.324-0.361-2.167-1.204-2.528-2.528s0.241-2.528 1.324-3.25l33.343-22.028c0.722-0.481 1.565-0.602 2.407-0.481l301.531 60.065c-4.935 23.593-31.537 29.491-73.547 20.102l-262.53-51.88zM583.561 832.045c-47.547 83.658-120.251 150.585-220.882 120.612-82.454-24.435-142.881-104.362-142.881-198.974 0-131.085 134.696-237.493 221.243-321.994l121.816-112.066c13.361-12.398 33.945-12.398 47.306 0l121.696 112.066c86.667 84.38 221.243 190.789 221.243 321.994 0 92.205-57.297 170.326-136.381 196.928-102.797 34.667-178.029-32.139-227.141-118.566-0.602-1.204-1.685-1.806-3.009-1.806s-2.407 0.722-3.009 1.806zM152.631 324.078c-15.769-10.232-94.010-55.25-132.649-87.149-12.759-10.713-19.982-24.195-19.982-52.963v-234.122c0-18.296 17.935-14.565 27.204-8.306l173.696 118.566c14.445 9.87 31.658 9.991 48.028 3.972l183.928-67.769c56.815-20.945 112.307-15.167 169.964 3.13l373.152 118.686c79.325 19.139 51.399 111.464-24.315 97.501l-348.596-72.343c-0.843-0.241-1.565 0-2.287 0.361l-26 15.408c-0.963 0.602-1.926 0.602-2.889 0.241-0.963-0.481-1.685-1.204-1.926-2.167-9.389-33.824-35.389-47.547-65.964-43.334l-88.714 12.278c-11.074 1.565-26.241 7.222-35.148 13.963l-99.788 75.232c-10.954 7.222 0.361 22.269 9.75 14.685l98.584-71.14c8.907-6.5 18.056-9.87 29.010-11.315l88.955-11.556c41.287-9.269 64.038 53.806 19.259 78.603l-85.464 48.028c-34.667 20.824-62.714 55.491-99.908 72.825-56.815 26.482-125.547 29.13-187.9-11.315z" /> +<glyph unicode="" glyph-name="donation-outline" horiz-adv-x="1116" d="M717.43 356.829c-17.185 0-33.845 5.903-47.356 16.66l-1.574 1.443-45.257 39.092-21.645 17.972c-127.77 107.437-219.991 185.359-219.991 309.719s89.466 218.285 204.511 218.285c48.668 0.525 95.762-17.841 131.312-51.029 35.55 33.32 82.513 51.554 131.181 51.029 114.783 0 204.511-95.893 204.774-218.417 0-95.106-58.638-163.845-115.964-218.548-28.466-27.417-60.737-54.834-97.992-86.58l-6.428-5.378c-21.12-17.972-43.683-36.731-66.771-56.933l-1.574-1.443c-13.512-10.363-30.172-16.004-47.225-15.873zM586.117 871.19c-64.541 0-115.046-56.408-115.046-128.82 0-79.233 61.13-134.198 188.114-241.242l22.17-19.021c11.675-9.97 23.875-20.202 35.812-30.959 20.071 17.972 39.617 33.976 57.851 49.324l6.034 5.247c35.812 30.828 67.296 57.326 94.057 82.906 53.784 50.636 88.285 96.156 88.285 153.875 0 71.625-50.636 128.82-115.177 128.82-38.83-0.394-74.511-21.383-93.663-55.227-8.264-12.331-22.17-19.677-37.124-19.677v0c-14.955-0.131-28.86 7.346-37.255 19.677-19.021 33.845-54.965 54.834-94.057 55.096zM276.53 16.676v0c17.185 9.445 38.043 9.445 55.227 0 157.68-83.956 234.683-84.218 264.068-78.578 0 0 238.618 7.871 483.665 235.601l19.677 19.677c17.709 17.709 21.514 45.126 9.183 67.034v0c-19.021 33.32-61.393 44.995-94.844 25.974-1.968-1.181-3.935-2.361-5.903-3.804v0l-76.216-42.896c-50.636-27.942-99.304-59.425-145.611-94.057-87.629-72.281-213.038-75.692-304.471-8.396 109.667-38.567 215.006-7.346 263.018 31.746 43.552 34.369 41.978 75.823-42.24 81.332-129.476 8.789-169.617 32.271-181.948 46.438-11.019 13.118-24.137 24.137-38.83 32.795-174.077 97.861-345.006-55.49-345.006-55.49l9.839-17.972 110.848-205.954 17.972-31.877c0.525-0.918 1.705-1.443 2.624-1.049v0zM108.88 261.198l140.101-256.853-106.388-66.115-142.594 267.085z" /> +<glyph unicode="" glyph-name="helios" horiz-adv-x="1087" d="M323.005-53.723c-82.623 17.892-141.556 51.591-201.675 115.321-88.495 93.809-132.229 216.201-119.009 333.051 9.475 83.749 10.736 84.371 62.010 30.616 26.899-28.201 43.375-51.833 40.805-58.529-7.421-19.34 10.651-107.642 31.23-152.593 27.906-60.955 89.477-123.132 149.292-150.761 44.759-20.675 57.076-22.73 136.201-22.73 80.251 0 90.662 1.802 134.342 23.248 92.723 45.525 155.431 132.83 171.68 239.019 4.55 29.738 11.633 61.187 15.739 69.886 11.944 25.304 75.999 95.197 81.867 89.329 10.748-10.748 13.615-140.775 4.187-189.829-44.615-232.117-270.154-377.244-506.67-326.026zM235.947 286.683c-97.83 98.346-174.314 177.341-169.965 175.545 29.455-12.161 87.806-40.328 202.471-97.736l131.625-65.899 341.867 300.060c188.027 165.033 343.371 300.060 345.21 300.060s-80.978-100.535-184.035-223.412c-103.058-122.877-251.722-300.663-330.365-395.080s-146.576-171.821-150.962-172.008c-4.386-0.179-88.017 80.125-185.847 178.47zM333.046 380.575c-69.504 30.215-77.19 147.321-11.884 181.071 46.018 23.782 90.145 19.083 125.557-13.37 23.856-21.862 29.14-32.649 31.958-65.244 4.138-47.862-14.272-81.6-55.101-100.974-33.495-15.894-56.51-16.271-90.529-1.483zM87.73 517.854c-22.835 11.052-41.519 23.551-41.519 27.776 0 17.363 51.75 86.469 93.979 125.497 154.894 143.154 405.997 142.989 560.44-0.368 18.486-17.159 33.275-34.278 32.866-38.042s-16.372-20.605-35.472-37.422l-34.727-30.577-28.372 24.911c-101.096 88.763-228.25 111.963-338.076 61.683-50.714-23.218-121.895-86.409-144.394-128.187-8.217-15.258-16.8-27.207-19.073-26.554-2.273 0.655-22.816 10.23-45.652 21.282zM769.468 712.151c-13.914 10.174-14.171 12.42-2.947 25.702 84.847 100.4 162.568 190.885 172.132 200.401 13.897 13.828 19.429 23.274-77.578-132.466-35.898-57.632-67.765-104.786-70.815-104.786s-12.406 5.017-20.792 11.148zM692.897 766.247c-11.311 8.781-6.311 19.839 44.755 98.989 31.619 49.007 59.96 91.576 62.981 94.597s-12.864-35.296-35.3-85.15c-22.436-49.853-42.585-96.871-44.774-104.482-4.722-16.417-10.539-17.249-27.663-3.954zM220.82 776.791c0.38 9.213 2.253 11.087 4.778 4.778 2.284-5.709 2.004-12.53-0.624-15.158s-4.497 2.043-4.154 10.38zM606.82 802.836c-10.919 4.221-7.74 15.716 22.142 80.059 35.822 77.133 38.463 67.213 7.945-29.845-13.808-43.916-19.934-54.139-30.087-50.213zM316.345 819.628c0 10.874 1.795 15.323 3.989 9.885s2.194-14.334 0-19.771c-2.194-5.437-3.989-0.988-3.989 9.886zM410.785 848.818c-0.434 18.229 2.771 35.343 7.12 38.032 9.217 5.697 9.217-22.623 0-51.405-5.408-16.886-6.447-14.935-7.12 13.373zM505.005 829.514c0.060 5.437 7.084 31.238 15.612 57.336l15.505 47.45-4.321-43.496c-2.377-23.923-6.083-49.724-8.237-57.336-4.475-15.818-18.72-18.853-18.559-3.954z" /> +<glyph unicode="" glyph-name="redmine" horiz-adv-x="1501" d="M0-64.003h325.808l23.272 279.283-302.555 69.797zM58.18 331.64l290.9-69.816 69.816 244.356-244.356 127.977zM197.792 680.72l232.72-127.996 186.195 127.996-174.54 197.812zM1501.024-64.003h-325.788l-23.291 279.283 302.555 69.797zM1442.844 331.64l-290.9-69.816-69.797 244.356 244.336 127.977zM1303.212 680.72l-232.72-127.996-186.156 127.996 174.54 197.812zM500.348 913.44l174.54-209.448h162.885l151.287 209.448-151.287 46.544h-166.976z" /> +<glyph unicode="" glyph-name="zulip" horiz-adv-x="919" d="M918.742 806.888c0-51.583-23.166-97.414-58.471-125.218l-342.735-306.088c-6.365-5.456-14.641 3.342-10.048 10.685l125.718 251.709c3.524 7.047-1.046 15.709-8.275 15.709h-487.618c-75.522 0-137.312 68.929-137.312 153.158 0 84.252 61.791 153.158 137.312 153.158h644.118c75.522 0.045 137.312-68.884 137.312-153.112zM137.312-64h644.118c75.522 0 137.312 68.929 137.312 153.158 0 84.252-61.791 153.158-137.312 153.158h-487.618c-7.229 0-11.799 8.662-8.275 15.709l125.718 251.709c4.592 7.343-3.683 16.141-10.048 10.685l-342.735-306.043c-35.306-27.781-58.471-73.635-58.471-125.218 0-84.229 61.791-153.158 137.312-153.158z" /> +<glyph unicode="" glyph-name="forum" d="M17.552 181.544c-11.34 4.238-17.537 13.082-17.537 25.116 0 20.572 19.788 32.762 38.106 23.467 9.506-4.816 13.451-11.065 13.919-22.060 0.329-7.721 0.017-9.129-3.236-14.723-6.279-10.736-20.117-15.963-31.273-11.809zM87.449 181.698c-6.648 2.362-10.253 5.349-14.254 11.802-6.65 10.688-4.031 25.511 5.96 33.741 12.878 10.602 32.307 6.751 39.982-7.936 7.83-14.991 0.687-32.965-14.99-37.608-7.22-2.152-10.631-2.142-16.699 0.017zM163.579 181.331c-6.684 1.859-15.595 10.891-17.37 17.604-5.578 20.892 12.355 38.925 33.149 33.325 7.688-2.060 15.997-10.824 17.936-18.858 4.874-20.318-13.417-37.738-33.685-32.076zM236.020 181.406c-2.955 0.785-6.751 3.3-10.268 6.822-7.119 7.119-9.379 15.159-7.019 24.975 1.993 8.314 10.101 16.968 17.83 19.013 27.104 7.229 45.879-24.381 26.18-44.081-7.521-7.521-15.829-9.632-26.707-6.751zM308.525 181.698c-6.65 2.362-10.253 5.349-14.254 11.802-6.65 10.688-4.031 25.511 5.96 33.741 12.869 10.602 32.307 6.751 39.971-7.947 11.26-21.542-9.062-45.644-31.674-37.598zM699.661 181.146c-15.697 4.706-23.333 23.915-15.293 38.548 12.926 23.538 49.062 14.419 49.323-12.472 0.174-18.131-16.901-31.212-34.023-26.080zM772.129 181.331c-6.684 1.859-15.595 10.891-17.37 17.604-4.39 16.466 5.812 32.114 22.171 34.053 8.828 1.046 15.292-1.257 21.792-7.755 19.555-19.555 0.285-51.406-26.582-43.902zM844.814 181.612c-9.961 3.547-15.695 10-17.772 19.972-1.085 5.142-1.022 7.688 0.251 12.269 2.194 7.849 10.536 16.445 17.811 18.392 27.104 7.229 45.879-24.381 26.18-44.081-7.621-7.621-16.968-9.933-26.464-6.549zM919.843 181.497c-7.22 2.697-11.454 6.516-14.79 13.317-4.238 8.663-3.856 19.213 0.979 26.515 6.269 9.464 18.915 14.002 30.253 10.837 6.784-1.892 14.824-9.43 16.957-15.902 2.362-7.132 1.089-18.537-2.665-24.234-6.221-9.41-20.563-14.321-30.728-10.524zM989.803 181.544c-6.88 2.563-12.277 7.287-15.159 13.25-3.87 8.015-3.065 19.894 1.831 26.978 4.525 6.521 14.157 11.641 21.948 11.641 7.81 0 17.423-5.108 21.987-11.686 3.266-4.706 3.568-5.998 3.568-14.942 0-8.663-0.377-10.349-3.236-14.69-6.315-9.555-20.563-14.4-30.938-10.536zM328.406 259.684c-21.122 3.903-28.218 31.508-11.793 45.931 11.822 10.377 30.737 7.626 39.613-5.756 3.769-5.712 5.039-16.164 2.764-23.031-4.004-12.144-17.303-19.581-30.569-17.135zM685.836 259.55c-8.358 1.557-15.436 7.112-19.603 15.35-3.14 6.231-2.102 18.543 2.102 24.908 4.773 7.22 11.507 11.239 19.849 11.842 16.628 1.192 28.548-9.632 28.548-25.912 0-16.881-14.556-29.206-30.904-26.154zM249.408 261.192c-20.385 5.578-26.106 31.513-10.067 45.602 5.63 4.941 11.541 6.684 20.039 5.913 13.082-1.19 22.362-10.503 23.296-23.411 0.611-8.358-1.201-14.321-6.013-19.807-6.885-7.855-17.303-11.017-27.249-8.291zM761.12 260.895c-6.65 1.524-15.125 9.129-17.705 15.883-2.898 7.617-1.959 17.955 2.21 24.271 4.874 7.354 11.531 11.22 20.318 11.775 16.231 1.027 28.057-9.884 28.057-25.912 0-8.66-1.889-13.585-7.22-18.945-6.583-6.583-16.23-9.235-25.644-7.084zM23.788 262.303c-2.295 0.721-6.65 3.803-9.68 6.822-7.064 7.052-9.303 15.116-6.948 24.975 2.636 11.017 14.288 20.15 25.677 20.117 14.080-0.019 26.591-12.613 26.591-26.745 0-7.152-2.578-13.015-8.157-18.576-7.688-7.688-17.001-9.932-27.491-6.589zM94.969 262.39c-7.019 2.51-11.357 6.318-14.623 12.869-5.542 11.105-3.669 22.201 5.204 30.804 19.414 18.844 50.3 1.066 43.974-25.3-1.144-4.767-2.797-7.521-7.103-11.812-7.855-7.855-17.423-10.134-27.454-6.549zM168.893 263.89c-21.871 10.904-17.37 43.587 6.784 49.275 10.301 2.429 23.218-3.3 28.392-12.58 13.14-23.518-11.038-48.726-35.175-36.7zM830.693 264.073c-12.043 6.281-17.236 20.787-11.842 33.015 4.971 11.206 12.703 16.357 24.673 16.396 27.113 0.084 36.397-36.867 12.412-49.397-4.612-2.403-8.072-3.324-12.616-3.324s-8.004 0.921-12.616 3.333zM911.206 262.498c-9.341 3.333-17.37 14.778-17.37 24.774 0 11.502 9.062 23.098 20.117 25.756 9.866 2.362 17.927 0.117 24.961-6.952 11.183-11.239 11.273-26.147 0.251-37.171-7.855-7.855-17.604-10.101-27.956-6.414zM982.596 262.467c-18.040 6.445-23.299 30.335-9.632 43.858 9.729 9.622 25.001 10.369 35.46 1.725 16.365-13.484 10.703-40.921-9.498-46.013-6.65-1.676-10.746-1.559-16.337 0.419zM372.928 325.443c-11.251 4.011-17.955 13.634-17.839 25.612 0.251 27.152 36.735 36.097 49.296 12.055 7.83-14.991 0.687-32.965-14.99-37.608-7.153-2.127-10.636-2.132-16.466-0.050zM634.589 325.31c-7.22 2.697-11.454 6.516-14.79 13.317-4.406 8.993-3.87 19.535 1.324 26.949 4.606 6.549 14.178 11.667 21.826 11.667 7.889 0 17.47-5.075 22.060-11.686 3.266-4.706 3.568-5.998 3.568-14.953 0-8.663-0.369-10.349-3.236-14.69-6.279-9.477-20.582-14.4-30.77-10.601zM285.89 333.414c-6.279 1.464-11.809 5.339-15.762 11.004-4.473 6.405-5.281 19.414-1.658 26.522 2.81 5.511 8.425 10.631 14.428 13.149 6.248 2.627 17.849 1.357 23.802-2.568 10.369-6.851 14.632-20.446 10.134-32.244-2.79-7.287-10.971-14.302-18.61-15.94-3.266-0.697-6.309-1.221-6.754-1.156s-2.965 0.62-5.578 1.223zM725.95 333.35c-7.019 1.658-13.335 6.549-16.909 13.121-2.839 5.233-3.199 7.019-2.797 14.051 0.814 14.381 10.067 23.915 24.051 24.807 16.328 1.037 27.956-9.9 28.023-26.357 0.050-12.636-8.056-22.82-20.418-25.677-5.862-1.357-5.98-1.357-11.943 0.050zM197.594 339.27c-15.092 7.654-19.213 27.655-8.425 40.753 11.206 13.585 34.456 11.675 43.4-3.595 4.706-8.043 4.739-18.911 0.050-26.87-4.974-8.459-11.153-12.043-21.524-12.51-6.792-0.301-9.419 0.117-13.518 2.194zM802.311 339.476c-6.337 3.353-12.5 11.793-13.663 18.71-1.87 11.105 3.937 23.132 13.663 28.291 4.506 2.394 6.684 2.764 13.885 2.429 10.904-0.519 17.054-4.438 22.127-14.053 2.965-5.63 3.363-7.443 2.831-13.35-0.754-8.593-5.194-16.464-11.775-20.82-7.055-4.673-19.481-5.214-27.085-1.19zM119.375 339.614c-7.354 2.395-12.132 6.549-15.528 13.484-4.272 8.731-3.702 19.362 1.424 26.783 4.272 6.147 14.197 11.608 21.122 11.608 11.306 0 22.563-7.5 25.747-17.169 2.362-7.141 1.089-18.537-2.665-24.238-6.114-9.244-19.514-13.915-30.089-10.469zM888.772 339.707c-19.581 6.985-24.4 32.53-8.586 45.563 8.459 6.977 19.112 8.056 29.162 2.965 8.731-4.439 12.982-10.64 13.852-20.318 1.212-13.324-5.969-24.584-17.927-28.14-7.209-2.132-10.669-2.16-16.503-0.068zM44.654 340.682c-6.147 1.624-15.475 10.873-17.202 17.074-2.936 10.602-0.754 19.148 6.861 26.765 11.028 11.037 26.338 11.037 37.035 0.017 10.971-11.306 10.979-26.114 0.039-37.068-7.554-7.554-15.843-9.665-26.726-6.784zM963.427 340.682c-6.667 1.758-15.192 10.602-17.228 17.849-2.73 9.71-0.285 19.347 6.617 26.261 5.63 5.639 9.799 7.22 18.945 7.258 7.186 0.019 9.129-0.446 13.283-3.198 10.569-6.996 14.904-17.202 12.278-28.934-1.231-5.542-2.596-7.889-7.086-12.384-7.646-7.635-15.883-9.748-26.817-6.851zM573.050 363.739c-10.971 5.578-17.133 18.073-14.496 29.463 1.892 8.218 6.202 13.986 13.324 17.868 5.233 2.85 7.019 3.199 14.053 2.8 9.598-0.542 16.030-4.171 21.155-11.909 2.864-4.331 3.276-6.114 3.276-14.051s-0.419-9.729-3.276-14.051c-5.271-7.956-11.574-11.425-21.58-11.842-6.174-0.251-9.498 0.203-12.446 1.691zM438.819 365.948c-7.153 3.1-11.144 6.784-14.012 12.937-5.41 11.608-2.898 23.741 6.569 31.851 17.236 14.749 43.684 2.295 43.353-20.385-0.271-18.442-19.526-31.513-35.912-24.405zM505.468 374.97c-9.224 4.564-14.556 13.25-14.556 23.644 0 15.192 11.017 26.067 26.482 26.114 8.314 0.029 13.283-1.892 18.595-7.19 10.168-10.174 10.302-27.326 0.282-37.471-7.53-7.621-21.155-9.884-30.786-5.108zM334.906 394.758c-8.479 4.904-12.043 10.902-12.58 21.189-0.352 6.751 0.050 9.379 1.993 13.183 9.363 18.344 34.807 19.807 46.174 2.63 3.769-5.712 5.039-16.164 2.764-23.031-1.861-5.669-7.5-12.035-13.216-14.958-7.019-3.576-17.973-3.166-25.109 0.969zM665.032 393.458c-9.565 5.029-14.797 13.585-14.797 24.171 0 15.192 10.93 26.147 26.095 26.147 15.326 0 26.067-10.904 26.114-26.512 0.048-10.335-5.117-18.71-14.489-23.527-5.534-2.839-17.772-2.998-22.931-0.29zM244.865 405.203c-9.47 4.305-15.945 13.684-15.945 24.573 0 2.009 0.218 3.97 0.64 5.846l-0.034-0.184c4.554 21.223 31.474 27.956 45.946 11.474 4.941-5.63 6.684-11.541 5.913-20.039-0.766-8.479-4.612-14.923-11.725-19.614-6.105-4.037-18.14-5.041-24.778-2.064zM757.443 405.873c-9.216 4.564-14.556 13.25-14.556 23.644 0 15.025 11.163 26.348 26.046 26.448 8.023 0.050 13.701-2.194 19.013-7.521 5.343-5.343 7.22-10.268 7.22-18.945 0-8.090-2.462-14.061-7.917-19.246-7.521-7.152-20.446-9.041-29.832-4.406zM158.569 410.619c-6.202 1.458-14.422 8.45-17.239 14.681-6.415 14.154 1.156 31.851 15.494 36.154 20.388 6.114 38.743-10.402 34.389-30.971-3.062-14.388-17.772-23.363-32.646-19.849zM852.514 410.429c-9.498 2.362-18.052 11.697-19.781 21.591-1.899 10.902 5.059 23.896 15.271 28.526 11.589 5.271 26.716 0.721 33.249-10 8.286-13.566 3.769-30.669-9.923-37.638-5.252-2.675-13.614-3.78-18.818-2.496zM80.841 414.050c-5.946 1.114-10.989 4.031-15.159 8.76-4.941 5.611-6.684 11.541-5.911 20.030 1.19 13.159 10.503 22.362 23.576 23.299 9.531 0.687 16.298-1.993 22.356-8.876 16.628-18.878-0.050-47.851-24.874-43.218zM933.274 414.273c-7.152 1.24-12.994 5.176-16.957 11.44-4.457 7.019-5.388 13.78-3.032 21.893 3.568 12.297 14.516 19.514 28.057 18.543 20.753-1.492 31.173-26.648 17.772-42.889-6.298-7.635-15.394-10.803-25.845-8.993zM412.757 435.588c-20.010 9.9-19.303 39.413 1.156 47.956 5.779 2.429 16.706 2.362 21.926-0.116 20.418-9.699 19.748-39.807-1.056-48.492-6.329-2.645-15.931-2.362-22.027 0.653zM591.043 435.588c-19.514 9.665-19.548 37.504-0.050 47.521 8.934 4.603 22.703 2.423 30.36-4.807 10.235-9.69 10-28.358-0.486-38.335-7.521-7.141-20.446-9.041-29.826-4.399zM504.897 449.381c-11.231 6.65-15.896 18.174-12.316 30.447 3.635 12.5 13.384 19.196 26.842 18.442 9.534-0.542 15.997-4.171 21.105-11.909 2.864-4.331 3.276-6.114 3.276-14.051s-0.419-9.72-3.276-14.051c-5.252-7.947-11.574-11.407-21.57-11.842-7.454-0.318-9.070 0.017-14.053 2.965zM309.453 457.966c-23.692 5.913-27.822 38.508-6.248 49.245 23.467 11.686 47.621-12.54 35.694-35.786-5.33-10.388-18.207-16.269-29.449-13.459zM702.877 457.966c-23.768 5.946-27.755 38.538-6.047 49.342 20.753 10.339 43.199-7.454 37.805-29.966-3.266-13.617-18.241-22.762-31.745-19.38zM207.646 474.046c-13.384 4.773-20.15 18.777-16.131 33.344 1.754 6.315 10.786 15.359 17.102 17.102 18.040 4.991 34.361-7.086 34.361-25.41 0-18.683-17.792-31.273-35.33-25.021zM798.746 473.879c-5.776 1.825-14.589 10.989-16.366 17.001-3.081 10.369-0.888 18.911 6.832 26.648 11.105 11.105 25.845 11.038 37.075-0.151 10.989-10.937 10.971-25.883-0.039-36.901-7.688-7.688-17.001-9.933-27.5-6.6zM124.053 481.707c-5.98 1.524-11.734 5.678-15.427 11.105-3.091 4.539-3.434 6.013-3.434 14.757 0 8.858 0.318 10.155 3.568 14.857 4.564 6.583 14.178 11.686 21.987 11.686 7.82 0 17.423-5.108 21.987-11.686 3.266-4.706 3.568-5.998 3.568-14.953 0-8.663-0.377-10.349-3.236-14.69-5.872-8.861-18.643-13.751-29.028-11.105zM885.212 482.328c-19.089 6.818-24.167 32.177-9.028 45.142 16.434 14.080 42.027 3.935 43.568-17.269 0.955-13.284-6.153-24.271-18.023-27.792-7.22-2.142-10.679-2.16-16.533-0.077zM374.699 498.535c-15.092 7.654-19.216 27.655-8.425 40.753 11.239 13.644 34.429 11.675 43.467-3.682 6.967-11.842 3.227-28.091-8.224-35.669-6.818-4.506-19.4-5.176-26.817-1.395zM625.211 498.736c-9.732 5.146-15.542 17.172-13.663 28.285 1.163 6.918 7.327 15.36 13.663 18.71 4.506 2.394 6.687 2.764 13.885 2.429 10.843-0.519 17.068-4.439 22.016-13.885 4.406-8.43 4.419-15.368 0.050-23.994-4.807-9.496-11.046-13.44-22.060-13.954-7.2-0.349-9.379 0.048-13.885 2.429zM465.484 514.131c-6.684 1.859-15.595 10.891-17.375 17.606-5.544 20.815 12.446 38.906 33.149 33.316 7.684-2.060 15.997-10.814 17.927-18.858 4.874-20.318-13.417-37.733-33.685-32.076zM551.38 515.486c-7.119 2.663-11.373 6.434-14.623 12.946-8.712 17.47 2.127 36.949 21.483 38.575 5.98 0.514 7.855 0.117 13.484-2.771 24.129-12.424 17.104-47.559-9.951-49.831-3.501-0.285-7.922 0.174-10.388 1.089zM268.638 526.172c-6.751 3.534-9.312 5.902-12.311 11.396-3.993 7.327-4.351 18.063-0.843 24.941 9.235 18.11 34.769 19.447 46.046 2.395 3.769-5.712 5.039-16.164 2.764-23.031-1.861-5.669-7.5-12.035-13.216-14.958-5.339-2.73-17.86-3.132-22.443-0.746zM734.564 526.172c-10.636 5.544-15.461 13.121-15.427 24.149 0.050 15.678 10.77 26.582 26.114 26.582 14.923 0 26.057-11.038 26.114-25.883 0.050-10.708-5.117-19.313-14.489-24.137-5.214-2.695-17.772-3.081-22.328-0.708zM175.267 542.31c-10.134 4.606-17.068 17.248-15.339 27.985 3.367 20.988 27.956 29.943 43.835 15.969 9.923-8.727 11.842-22.429 4.74-33.906-6.684-10.803-21.629-15.326-33.247-10.048zM826.537 542.921c-17.169 7.989-19.972 31.184-5.31 43.734 17.209 14.729 43.3 2.539 43.266-20.217-0.019-19.748-19.781-31.977-37.972-23.518zM339.356 564.794c-5.846 2.73-11.742 9.235-13.663 15.092-2.395 7.287-1.056 18.528 2.898 24.238 4.798 6.948 12.714 11.439 21.661 11.439 6.717 0 12.848-2.529 17.504-6.684l-0.017 0.017c13.353-11.764 11.909-32.51-2.985-42.355-6.482-4.283-18.241-5.107-25.387-1.758zM662.359 565.091c-9.496 4.807-14.556 13.317-14.556 24.405 0 27.051 36.331 36.063 49.296 12.239 2.839-5.233 3.199-7.019 2.797-14.053-0.542-9.574-4.171-16.030-11.86-21.122-6.818-4.506-18.381-5.176-25.677-1.458zM416.31 588.915c-9.296 4.606-14.564 13.267-14.522 23.902 0.116 26.247 33.618 36.202 48.48 14.422 4.071-5.969 5.008-17.123 2.074-24.774-2.19-5.712-8.353-11.842-14.489-14.422-5.872-2.452-15.61-2.060-21.524 0.872zM585.984 588.244c-9.363 4.237-15.747 13.484-15.747 24.22 0 0.002 0 0.004 0 0.007v0c-0.050 8.024 2.194 13.701 7.521 19.021 10.803 10.803 28.627 10.101 38.819-1.524 10.402-11.86 7.646-30.757-5.812-39.648-6.114-4.037-18.14-5.041-24.778-2.064zM242.183 590.422c-6.87 2.563-12.277 7.287-15.159 13.25-3.87 8.015-3.065 19.884 1.831 26.968 4.525 6.521 14.157 11.641 21.948 11.641 7.82 0 17.423-5.108 21.987-11.686 3.266-4.706 3.568-5.998 3.568-14.953 0-8.663-0.377-10.349-3.236-14.69-6.315-9.545-20.563-14.4-30.938-10.536zM508.13 590.054c-9.9 2.898-17.236 13.818-17.236 25.677 0 27.345 37.135 36.329 49.294 11.928 10.87-21.813-8.492-44.506-32.045-37.605zM765.162 590.42c-6.88 2.563-12.278 7.287-15.159 13.25-3.87 8.023-3.065 19.904 1.831 26.978 4.539 6.551 14.154 11.641 22.027 11.641 7.688 0 17.236-5.108 21.871-11.708 3.023-4.305 3.625-6.382 3.937-13.617 0.339-7.721 0.017-9.129-3.236-14.723-6.269-10.736-20.117-15.963-31.27-11.809zM310.156 630.103c-24.204 12.278-15.259 49.095 11.996 49.353 17.268 0.155 29.698-14.556 26.29-31.139-3.702-18.040-21.725-26.616-38.285-18.207zM689.254 630.152c-9.186 4.807-13.546 12.144-13.484 22.729 0.077 13.411 7.045 22.5 19.748 25.812 12.446 3.233 24.961-2.797 30.379-14.642 10.582-23.112-13.919-45.778-36.658-33.886zM390.079 653.139c-5.455 1.57-13.614 10.067-15.394 16.027-3.459 11.551-0.62 21.893 8.033 29.296 17.161 14.69 43.218 2.362 43.19-20.417-0.019-18.442-17.093-30.301-35.835-24.908zM613.854 654.032c-6.377 2.898-13.024 10.837-14.723 17.571-4.245 16.867 8.66 33.199 26.013 32.947 19.633-0.285 31.808-20.016 23.4-37.905-3.276-6.985-5.475-9.129-12.655-12.378-6.667-3.032-15.662-3.13-22.027-0.218zM467.562 666.606c-14.167 7.172-18.576 24.975-9.498 38.383 5.008 7.403 11.957 10.971 21.357 10.971 20.756 0 33.005-19.714 23.668-38.106-4.706-9.263-11.057-13.392-21.455-13.935-6.724-0.352-8.928 0.077-14.087 2.675zM539.048 665.928c-9.565 4.428-14.857 13.183-14.857 24.507 0 14.757 11.038 25.543 26.147 25.543 15.394 0 26.182-10.904 26.114-26.415-0.050-10.882-6.192-20.059-16.279-24.284-5.41-2.261-15.494-1.959-21.125 0.653z" /> +<glyph unicode="" glyph-name="envelop" d="M928 832h-832c-52.8 0-96-43.2-96-96v-640c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v640c0 52.8-43.2 96-96 96zM398.74 409.628l-270.74-210.892v501.642l270.74-290.75zM176.38 704h671.24l-335.62-252-335.62 252zM409.288 398.302l102.712-110.302 102.71 110.302 210.554-270.302h-626.528l210.552 270.302zM625.26 409.628l270.74 290.75v-501.642l-270.74 210.892z" /> +<glyph unicode="" glyph-name="mastodon" d="M510 831c-96.656-0.392-192.626-12.664-242.562-35.688 0 0-107.438-48.908-107.438-215.5 0-198.304-0.144-447.34 178-495.5 68.224-18.336 126.894-22.282 174.062-19.562 85.6 4.832 127.938 31.062 127.938 31.062l-2.875 63.25c0 0-55.483-19.553-124.187-17.312-68.064 2.4-139.77 7.508-150.938 92.5-1.024 7.904-1.532 15.907-1.5 23.875 144.224-35.808 267.206-15.596 301.062-11.5 94.528 11.488 176.817 70.762 187.313 124.938 16.448 85.376 15.062 208.25 15.062 208.25 0 166.592-107.25 215.5-107.25 215.5-52.656 24.592-150.031 36.080-246.687 35.688zM406.562 703.938c33.116-0.888 65.84-15.704 86-47l19.5-33.125 19.438 33.125c40.48 62.944 131.207 59.016 174.375 10.312 39.808-46.336 30.938-76.242 30.938-283.25v-0.062h-78.313v180.125c0 84.32-107.5 87.577-107.5-11.687v-104.375h-77.813v104.375c0 99.264-107.437 96.070-107.437 11.75v-180.125h-78.5c0 207.168-8.71 237.266 30.938 283.25 21.744 24.512 55.259 37.576 88.375 36.688z" /> +<glyph unicode="" glyph-name="file-text2" d="M917.806 730.924c-22.212 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.888-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.984-17.78 50.678-41.878 81.374-72.572zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.326-32 32-32h224v-624zM736 128h-448c-17.672 0-32 14.326-32 32s14.328 32 32 32h448c17.674 0 32-14.326 32-32s-14.326-32-32-32zM736 256h-448c-17.672 0-32 14.326-32 32s14.328 32 32 32h448c17.674 0 32-14.326 32-32s-14.326-32-32-32zM736 384h-448c-17.672 0-32 14.326-32 32s14.328 32 32 32h448c17.674 0 32-14.326 32-32s-14.326-32-32-32z" /> +<glyph unicode="" glyph-name="price-tag" d="M976 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM736 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96z" /> +<glyph unicode="" glyph-name="price-tags" horiz-adv-x="1280" d="M1232 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM992 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM128 416l544 544h-80c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l30.058 30.058-416 416z" /> +<glyph unicode="" glyph-name="twitter" horiz-adv-x="1001" d="M596.009 526.629l372.819 433.371h-88.346l-323.718-376.29-258.553 376.29h-298.21l390.983-569.018-390.983-454.457h88.351l341.855 397.375 273.051-397.375h298.21l-405.458 590.103zM475 385.969l-354.815 507.521h135.702l624.636-893.48h-135.702l-269.821 385.959z" /> +<glyph unicode="" glyph-name="stats-dots" d="M128 64h896v-128h-1024v1024h128zM288 128c-53.020 0-96 42.98-96 96s42.98 96 96 96c2.828 0 5.622-0.148 8.388-0.386l103.192 171.986c-9.84 15.070-15.58 33.062-15.58 52.402 0 53.020 42.98 96 96 96s96-42.98 96-96c0-19.342-5.74-37.332-15.58-52.402l103.192-171.986c2.766 0.238 5.56 0.386 8.388 0.386 2.136 0 4.248-0.094 6.35-0.23l170.356 298.122c-10.536 15.408-16.706 34.036-16.706 54.11 0 53.020 42.98 96 96 96s96-42.98 96-96c0-53.020-42.98-96-96-96-2.14 0-4.248 0.094-6.35 0.232l-170.356-298.124c10.536-15.406 16.706-34.036 16.706-54.11 0-53.020-42.98-96-96-96s-96 42.98-96 96c0 19.34 5.74 37.332 15.578 52.402l-103.19 171.984c-2.766-0.238-5.56-0.386-8.388-0.386s-5.622 0.146-8.388 0.386l-103.192-171.986c9.84-15.068 15.58-33.060 15.58-52.4 0-53.020-42.98-96-96-96z" /> +</font></defs></svg> diff --git a/shared_legacy/static/styleguide2/pirati-ui.ttf b/shared_legacy/static/styleguide2/pirati-ui.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e5e3dfd9a573daa94c1dda32bb7e45a3154684a9 Binary files /dev/null and b/shared_legacy/static/styleguide2/pirati-ui.ttf differ diff --git a/shared_legacy/static/styleguide2/pirati-ui.woff b/shared_legacy/static/styleguide2/pirati-ui.woff new file mode 100644 index 0000000000000000000000000000000000000000..f4a7c6238f4c774d70e62424e1d6c0ad11c949ef Binary files /dev/null and b/shared_legacy/static/styleguide2/pirati-ui.woff differ diff --git a/shared/static/styleguide234/assets/css/pattern-scaffolding.css b/shared_legacy/static/styleguide234/assets/css/pattern-scaffolding.css similarity index 100% rename from shared/static/styleguide234/assets/css/pattern-scaffolding.css rename to shared_legacy/static/styleguide234/assets/css/pattern-scaffolding.css diff --git a/shared/static/styleguide234/assets/css/styles.css b/shared_legacy/static/styleguide234/assets/css/styles.css similarity index 100% rename from shared/static/styleguide234/assets/css/styles.css rename to shared_legacy/static/styleguide234/assets/css/styles.css diff --git a/shared/static/styleguide234/assets/fonts/pirati-ui.eot b/shared_legacy/static/styleguide234/assets/fonts/pirati-ui.eot similarity index 100% rename from shared/static/styleguide234/assets/fonts/pirati-ui.eot rename to shared_legacy/static/styleguide234/assets/fonts/pirati-ui.eot diff --git a/shared/static/styleguide234/assets/fonts/pirati-ui.svg b/shared_legacy/static/styleguide234/assets/fonts/pirati-ui.svg similarity index 100% rename from shared/static/styleguide234/assets/fonts/pirati-ui.svg rename to shared_legacy/static/styleguide234/assets/fonts/pirati-ui.svg diff --git a/shared/static/styleguide234/assets/fonts/pirati-ui.ttf b/shared_legacy/static/styleguide234/assets/fonts/pirati-ui.ttf similarity index 100% rename from shared/static/styleguide234/assets/fonts/pirati-ui.ttf rename to shared_legacy/static/styleguide234/assets/fonts/pirati-ui.ttf diff --git a/shared/static/styleguide234/assets/fonts/pirati-ui.woff b/shared_legacy/static/styleguide234/assets/fonts/pirati-ui.woff similarity index 100% rename from shared/static/styleguide234/assets/fonts/pirati-ui.woff rename to shared_legacy/static/styleguide234/assets/fonts/pirati-ui.woff diff --git a/shared/static/styleguide234/assets/images/logo-full-black.svg b/shared_legacy/static/styleguide234/assets/images/logo-full-black.svg similarity index 100% rename from shared/static/styleguide234/assets/images/logo-full-black.svg rename to shared_legacy/static/styleguide234/assets/images/logo-full-black.svg diff --git a/shared/static/styleguide234/assets/images/logo-full-white.svg b/shared_legacy/static/styleguide234/assets/images/logo-full-white.svg similarity index 100% rename from shared/static/styleguide234/assets/images/logo-full-white.svg rename to shared_legacy/static/styleguide234/assets/images/logo-full-white.svg diff --git a/shared/static/styleguide291/assets/images/logo-round-black.svg b/shared_legacy/static/styleguide234/assets/images/logo-round-black.svg similarity index 100% rename from shared/static/styleguide291/assets/images/logo-round-black.svg rename to shared_legacy/static/styleguide234/assets/images/logo-round-black.svg diff --git a/shared/static/styleguide291/assets/images/logo-round-white.svg b/shared_legacy/static/styleguide234/assets/images/logo-round-white.svg similarity index 100% rename from shared/static/styleguide291/assets/images/logo-round-white.svg rename to shared_legacy/static/styleguide234/assets/images/logo-round-white.svg diff --git a/shared/static/styleguide234/assets/js/main.bundle.js b/shared_legacy/static/styleguide234/assets/js/main.bundle.js similarity index 100% rename from shared/static/styleguide234/assets/js/main.bundle.js rename to shared_legacy/static/styleguide234/assets/js/main.bundle.js diff --git a/shared/static/styleguide234/assets/js/vue.2.6.11.js b/shared_legacy/static/styleguide234/assets/js/vue.2.6.11.js similarity index 100% rename from shared/static/styleguide234/assets/js/vue.2.6.11.js rename to shared_legacy/static/styleguide234/assets/js/vue.2.6.11.js diff --git a/shared/static/styleguide291/assets/css/pattern-scaffolding.css b/shared_legacy/static/styleguide291/assets/css/pattern-scaffolding.css similarity index 100% rename from shared/static/styleguide291/assets/css/pattern-scaffolding.css rename to shared_legacy/static/styleguide291/assets/css/pattern-scaffolding.css diff --git a/shared/static/styleguide291/assets/css/styles.css b/shared_legacy/static/styleguide291/assets/css/styles.css similarity index 100% rename from shared/static/styleguide291/assets/css/styles.css rename to shared_legacy/static/styleguide291/assets/css/styles.css diff --git a/shared/static/styleguide291/assets/fonts/pirati-ui.eot b/shared_legacy/static/styleguide291/assets/fonts/pirati-ui.eot similarity index 100% rename from shared/static/styleguide291/assets/fonts/pirati-ui.eot rename to shared_legacy/static/styleguide291/assets/fonts/pirati-ui.eot diff --git a/shared/static/styleguide291/assets/fonts/pirati-ui.svg b/shared_legacy/static/styleguide291/assets/fonts/pirati-ui.svg similarity index 100% rename from shared/static/styleguide291/assets/fonts/pirati-ui.svg rename to shared_legacy/static/styleguide291/assets/fonts/pirati-ui.svg diff --git a/shared/static/styleguide291/assets/fonts/pirati-ui.ttf b/shared_legacy/static/styleguide291/assets/fonts/pirati-ui.ttf similarity index 100% rename from shared/static/styleguide291/assets/fonts/pirati-ui.ttf rename to shared_legacy/static/styleguide291/assets/fonts/pirati-ui.ttf diff --git a/shared/static/styleguide291/assets/fonts/pirati-ui.woff b/shared_legacy/static/styleguide291/assets/fonts/pirati-ui.woff similarity index 100% rename from shared/static/styleguide291/assets/fonts/pirati-ui.woff rename to shared_legacy/static/styleguide291/assets/fonts/pirati-ui.woff diff --git a/shared/static/styleguide291/assets/images/city-banner.png b/shared_legacy/static/styleguide291/assets/images/city-banner.png similarity index 100% rename from shared/static/styleguide291/assets/images/city-banner.png rename to shared_legacy/static/styleguide291/assets/images/city-banner.png diff --git a/shared/static/styleguide291/assets/images/elections-hero.jpg b/shared_legacy/static/styleguide291/assets/images/elections-hero.jpg similarity index 100% rename from shared/static/styleguide291/assets/images/elections-hero.jpg rename to shared_legacy/static/styleguide291/assets/images/elections-hero.jpg diff --git a/shared/static/styleguide291/assets/images/examples/pg.png b/shared_legacy/static/styleguide291/assets/images/examples/pg.png similarity index 100% rename from shared/static/styleguide291/assets/images/examples/pg.png rename to shared_legacy/static/styleguide291/assets/images/examples/pg.png diff --git a/shared/static/styleguide291/assets/images/examples/sunset.jpeg b/shared_legacy/static/styleguide291/assets/images/examples/sunset.jpeg similarity index 100% rename from shared/static/styleguide291/assets/images/examples/sunset.jpeg rename to shared_legacy/static/styleguide291/assets/images/examples/sunset.jpeg diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-114x114.png b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..d80c1b045c8dd4eaf62a7a005fb24a734a231502 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-114x114.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-120x120.png b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..734c085baee01a6352a01afb971d58682c944a70 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-120x120.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-144x144.png b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..b8059e03cf44c367b2f3a197b3ff1cb706927495 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-144x144.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-152x152.png b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..016482e4c92121b4a5ba35b3333268b82a3cb543 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-152x152.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-57x57.png b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-57x57.png new file mode 100644 index 0000000000000000000000000000000000000000..85feef61bc6d853a602a90ccb59d54602f3d1343 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-57x57.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-60x60.png b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..4a71c195069a55ac1e4846378e5125c2d385f415 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-60x60.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-72x72.png b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..01cb1fcb0d781950111b3a61db5434af07bf6fea Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-72x72.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-76x76.png b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..d527a37e561b4e913c900d2d29b8682946f46c1c Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/apple-touch-icon-76x76.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/favicon-128x128.png b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..4a70b1654597f5b27049e60860d1559ee7cae2b4 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-128x128.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/favicon-16x16.png b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..c741c9d593b7862c04b34c5fd28d7b47924c3a1c Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-16x16.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/favicon-196x196.png b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-196x196.png new file mode 100644 index 0000000000000000000000000000000000000000..75eec7cbf4dfa0af0b4bfc43fc2c32f8846445e9 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-196x196.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/favicon-32x32.png b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..6f23a79becf613d165db931bdcf5a3fad6c832e6 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-32x32.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/favicon-96x96.png b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..f64e3b179086e45b86c879e286c0759c390d7835 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/favicon-96x96.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/favicon.ico b/shared_legacy/static/styleguide291/assets/images/favicons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7f9c6b7f249d8978f2df6de9b0043357016dea3a Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/favicon.ico differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/mstile-144x144.png b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..b8059e03cf44c367b2f3a197b3ff1cb706927495 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-144x144.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/mstile-150x150.png b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..6696eadc9136cd1e07a37be32ec8d45dd67e9861 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-150x150.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/mstile-310x150.png b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..118df818b1c8792ad1edbd5f79f5c964a6fcd702 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-310x150.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/mstile-310x310.png b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe1daf0637b0a65e78b4152b267368358470124 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-310x310.png differ diff --git a/shared_legacy/static/styleguide291/assets/images/favicons/mstile-70x70.png b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..4a70b1654597f5b27049e60860d1559ee7cae2b4 Binary files /dev/null and b/shared_legacy/static/styleguide291/assets/images/favicons/mstile-70x70.png differ diff --git a/shared/static/styleguide291/assets/images/flag.png b/shared_legacy/static/styleguide291/assets/images/flag.png similarity index 100% rename from shared/static/styleguide291/assets/images/flag.png rename to shared_legacy/static/styleguide291/assets/images/flag.png diff --git a/shared/static/styleguide291/assets/images/hero-profile-img.png b/shared_legacy/static/styleguide291/assets/images/hero-profile-img.png similarity index 100% rename from shared/static/styleguide291/assets/images/hero-profile-img.png rename to shared_legacy/static/styleguide291/assets/images/hero-profile-img.png diff --git a/shared/static/styleguide291/assets/images/logo-full-black.svg b/shared_legacy/static/styleguide291/assets/images/logo-full-black.svg similarity index 100% rename from shared/static/styleguide291/assets/images/logo-full-black.svg rename to shared_legacy/static/styleguide291/assets/images/logo-full-black.svg diff --git a/shared/static/styleguide291/assets/images/logo-full-white.svg b/shared_legacy/static/styleguide291/assets/images/logo-full-white.svg similarity index 100% rename from shared/static/styleguide291/assets/images/logo-full-white.svg rename to shared_legacy/static/styleguide291/assets/images/logo-full-white.svg diff --git a/shared_legacy/static/styleguide291/assets/images/logo-round-black.svg b/shared_legacy/static/styleguide291/assets/images/logo-round-black.svg new file mode 100644 index 0000000000000000000000000000000000000000..a47755ad1f0225477b8cba118898953e8b921133 --- /dev/null +++ b/shared_legacy/static/styleguide291/assets/images/logo-round-black.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<svg id="Vrstva_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52.2 55.2"> + <style> + .st0{fill:none} + </style> + <path d="M24.7 7.2c-5.9 0-11.4 2.3-15.5 6.4-4.2 4.1-6.5 9.7-6.5 15.5C2.7 35 5 40.5 9.1 44.7c4.2 4.1 9.7 6.4 15.5 6.4 5.9 0 11.4-2.3 15.5-6.4 4.2-4.1 6.4-9.7 6.4-15.5 0-5.9-2.3-11.4-6.4-15.5-4-4.3-9.5-6.5-15.4-6.5m0 41.8c-11 0-19.9-8.9-19.9-19.9 0-11 8.9-19.9 19.9-19.9 11 0 19.9 8.9 19.9 19.9 0 11-8.9 19.9-19.9 19.9"/> + <path d="M18.1 16.1V13h-1.9v3.6c-1.3.4-2.1.8-1.9 1.1.4-.1 1.1-.2 1.9-.1V36c-2 3.8.9 9.7.9 9.7s-2.1-6.3 2.6-9.3c4.3-2.7 19.3-1.5 19.2-9.9-.1-11.9-13.9-11.9-20.8-10.4m6.1 11.6c-.7 3.2-4.1 4.8-6.2 6.2V17.8c3.5.8 7.6 3.5 6.2 9.9"/> + <path class="st0" d="M0 0h52.2v55.2H0z"/> +</svg> diff --git a/shared_legacy/static/styleguide291/assets/images/logo-round-white.svg b/shared_legacy/static/styleguide291/assets/images/logo-round-white.svg new file mode 100644 index 0000000000000000000000000000000000000000..49e0b19ab5c9d3bd38aeca81ba21bb52172b52ee --- /dev/null +++ b/shared_legacy/static/styleguide291/assets/images/logo-round-white.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 20.217 20.156" width="20.217pt" height="20.156pt"><defs><clipPath id="_clipPath_tR3ALwD3k6PT9ZS47lNZPyjlLQOtvovj"><rect width="20.217" height="20.156"/></clipPath></defs><g clip-path="url(#_clipPath_tR3ALwD3k6PT9ZS47lNZPyjlLQOtvovj)"><path d=" M 10.081 19.222 C 5.04 19.214 0.96 15.123 0.965 10.083 C 0.97 5.042 5.059 0.959 10.1 0.962 C 15.14 0.965 19.225 5.051 19.225 10.092 C 19.214 15.135 15.124 19.219 10.081 19.222 M 17.242 2.97 C 13.848 -0.384 8.558 -0.878 4.603 1.791 C 0.647 4.46 -0.877 9.549 0.963 13.953 C 2.802 18.356 7.493 20.849 12.172 19.911 C 16.85 18.973 20.217 14.864 20.217 10.092 C 20.212 7.417 19.142 4.854 17.242 2.97" fill="rgb(255,255,255)"/><path d=" M 9.888 9.432 C 9.588 10.889 7.988 11.659 7.051 12.292 L 7.051 4.892 C 8.065 5.051 8.96 5.643 9.505 6.513 C 10.049 7.384 10.189 8.447 9.888 9.429 M 7.051 4.094 L 7.051 2.694 L 6.17 2.694 L 6.17 4.316 C 5.564 4.508 5.233 4.701 5.289 4.811 C 5.578 4.746 5.875 4.727 6.17 4.756 L 6.17 13.256 C 5.261 15.016 6.556 17.711 6.556 17.711 C 6.556 17.711 5.592 14.824 7.74 13.449 C 9.723 12.184 16.609 12.789 16.581 8.912 C 16.581 3.412 10.219 3.44 7.051 4.1" fill="rgb(255,255,255)"/></g></svg> diff --git a/shared/static/styleguide291/assets/js/main.bundle.js b/shared_legacy/static/styleguide291/assets/js/main.bundle.js similarity index 100% rename from shared/static/styleguide291/assets/js/main.bundle.js rename to shared_legacy/static/styleguide291/assets/js/main.bundle.js diff --git a/shared/static/styleguide291/assets/js/vue.2.6.11.js b/shared_legacy/static/styleguide291/assets/js/vue.2.6.11.js similarity index 100% rename from shared/static/styleguide291/assets/js/vue.2.6.11.js rename to shared_legacy/static/styleguide291/assets/js/vue.2.6.11.js diff --git a/shared_legacy/storages.py b/shared_legacy/storages.py new file mode 100644 index 0000000000000000000000000000000000000000..09643701978d4fe18fac8db8bc880b38a08f4c11 --- /dev/null +++ b/shared_legacy/storages.py @@ -0,0 +1,21 @@ +import os + +from django.conf import settings +from django.core.files.storage import get_storage_class + + +class OverwriteStorage(get_storage_class()): + def get_available_name(self, name, max_length): + """ + Returns a filename that's free on the target storage system, and + available for new content to be written to. This file storage solves overwrite + on upload problem. + + Found at https://djangosnippets.org/snippets/976/ + """ + + # If the filename already exists, remove it as if it was a true file system + if self.exists(name): + os.remove(os.path.join(settings.MEDIA_ROOT, name)) + + return name diff --git a/shared/templates/shared/article_preview.html b/shared_legacy/templates/shared/article_preview.html similarity index 96% rename from shared/templates/shared/article_preview.html rename to shared_legacy/templates/shared/article_preview.html index af74f84db3dc6bb67ee309923617d9b68cd9f6a7..28fbb8474065d96ad3983d8ce3a44fbb7dad0f4a 100644 --- a/shared/templates/shared/article_preview.html +++ b/shared_legacy/templates/shared/article_preview.html @@ -1,4 +1,5 @@ {% load wagtailcore_tags wagtailimages_tags wagtailroutablepage_tags %} +{% routablepageurl page.root_page.articles_page "tags" as articles_tag_page_url %} <article itemtype="http://schema.org/BlogPosting" @@ -74,7 +75,7 @@ <div class="inline-block-nogap mt-4"> {% for tag in article.get_tags %} <a - href="{{ page.root_page.articles_page.url }}?tag={{ tag.slug }}" + href="{{ articles_tag_page_url }}?tag={{ tag.slug }}" class="btn article-card__category-button btn--condensed text-sm font-light btn--grey-{% if article.is_black %}700{% else %}125{% endif %} btn--hoveractive" > <div class="btn__body">{{ tag }}</div> diff --git a/shared/templates/shared/article_shared_link.html b/shared_legacy/templates/shared/article_shared_link.html similarity index 100% rename from shared/templates/shared/article_shared_link.html rename to shared_legacy/templates/shared/article_shared_link.html diff --git a/shared/templates/shared/blocks/compact_candidate_snippet_block.html b/shared_legacy/templates/shared/blocks/compact_candidate_snippet_block.html similarity index 100% rename from shared/templates/shared/blocks/compact_candidate_snippet_block.html rename to shared_legacy/templates/shared/blocks/compact_candidate_snippet_block.html diff --git a/shared/templates/shared/blocks/footer_links_block.html b/shared_legacy/templates/shared/blocks/footer_links_block.html similarity index 100% rename from shared/templates/shared/blocks/footer_links_block.html rename to shared_legacy/templates/shared/blocks/footer_links_block.html diff --git a/shared/templates/shared/blocks/full_candidate_snippet_block.html b/shared_legacy/templates/shared/blocks/full_candidate_snippet_block.html similarity index 100% rename from shared/templates/shared/blocks/full_candidate_snippet_block.html rename to shared_legacy/templates/shared/blocks/full_candidate_snippet_block.html diff --git a/shared/templates/shared/blocks/newsletter_subscription_block.html b/shared_legacy/templates/shared/blocks/newsletter_subscription_block.html similarity index 100% rename from shared/templates/shared/blocks/newsletter_subscription_block.html rename to shared_legacy/templates/shared/blocks/newsletter_subscription_block.html diff --git a/shared/templates/shared/blocks/table_block.html b/shared_legacy/templates/shared/blocks/table_block.html similarity index 95% rename from shared/templates/shared/blocks/table_block.html rename to shared_legacy/templates/shared/blocks/table_block.html index cf07ec5af95f75f013659ad01c2380893ce3b132..5adfe4166a7ca841bcb7ad6ad15fb0e7a5b63c2b 100644 --- a/shared/templates/shared/blocks/table_block.html +++ b/shared_legacy/templates/shared/blocks/table_block.html @@ -1,7 +1,7 @@ {% load table_block_tags shared_filters %} -<div class="my-6 prose"> - <table> +<div class="my-6"> + <table class="table table--bordered content-block"> {% if table_caption %} <caption class="head-heavy-sm my-4">{{ table_caption }}</caption> {% endif %} diff --git a/shared/templates/shared/calendar_current_events_snippet.html b/shared_legacy/templates/shared/calendar_current_events_snippet.html similarity index 100% rename from shared/templates/shared/calendar_current_events_snippet.html rename to shared_legacy/templates/shared/calendar_current_events_snippet.html diff --git a/shared/templates/shared/chart_script_snippet.html b/shared_legacy/templates/shared/chart_script_snippet.html similarity index 100% rename from shared/templates/shared/chart_script_snippet.html rename to shared_legacy/templates/shared/chart_script_snippet.html diff --git a/shared/templates/shared/compact_candidate_snippet.html b/shared_legacy/templates/shared/compact_candidate_snippet.html similarity index 100% rename from shared/templates/shared/compact_candidate_snippet.html rename to shared_legacy/templates/shared/compact_candidate_snippet.html diff --git a/shared/templates/shared/election_countdown_snippet.html b/shared_legacy/templates/shared/election_countdown_snippet.html similarity index 100% rename from shared/templates/shared/election_countdown_snippet.html rename to shared_legacy/templates/shared/election_countdown_snippet.html diff --git a/shared/templates/shared/election_point_card_snippet.html b/shared_legacy/templates/shared/election_point_card_snippet.html similarity index 100% rename from shared/templates/shared/election_point_card_snippet.html rename to shared_legacy/templates/shared/election_point_card_snippet.html diff --git a/shared/templates/shared/favicon_snippet.html b/shared_legacy/templates/shared/favicon_snippet.html similarity index 100% rename from shared/templates/shared/favicon_snippet.html rename to shared_legacy/templates/shared/favicon_snippet.html diff --git a/shared/templates/shared/followus_snippet.html b/shared_legacy/templates/shared/followus_snippet.html similarity index 100% rename from shared/templates/shared/followus_snippet.html rename to shared_legacy/templates/shared/followus_snippet.html diff --git a/shared/templates/shared/followus_snippet_column.html b/shared_legacy/templates/shared/followus_snippet_column.html similarity index 100% rename from shared/templates/shared/followus_snippet_column.html rename to shared_legacy/templates/shared/followus_snippet_column.html diff --git a/shared/templates/shared/full_candidate_snippet.html b/shared_legacy/templates/shared/full_candidate_snippet.html similarity index 100% rename from shared/templates/shared/full_candidate_snippet.html rename to shared_legacy/templates/shared/full_candidate_snippet.html diff --git a/shared/templates/shared/matomo_snippet.html b/shared_legacy/templates/shared/matomo_snippet.html similarity index 100% rename from shared/templates/shared/matomo_snippet.html rename to shared_legacy/templates/shared/matomo_snippet.html diff --git a/shared/templates/shared/more_articles_snippet.html b/shared_legacy/templates/shared/more_articles_snippet.html similarity index 100% rename from shared/templates/shared/more_articles_snippet.html rename to shared_legacy/templates/shared/more_articles_snippet.html diff --git a/shared/templates/shared/pdf_snippet.html b/shared_legacy/templates/shared/pdf_snippet.html similarity index 85% rename from shared/templates/shared/pdf_snippet.html rename to shared_legacy/templates/shared/pdf_snippet.html index a037e3cd958a934b513b695cfc38f315845e2380..2c69fb22a88cefdf54a24d93d947f11f7cea7dac 100644 --- a/shared/templates/shared/pdf_snippet.html +++ b/shared_legacy/templates/shared/pdf_snippet.html @@ -61,13 +61,17 @@ </script> </div> - <div id="loading"> + <div class="text-gray-500 my-6" id="loading"> Načítání ... </div> {% if download_link %} - <div class="inline-block py-8"> - {% include "styleguide2/includes/atoms/buttons/round_button.html" with text="Stáhnout dokument" url=page.pdf_url show_arrow_on_hover=True %} + <div class="flex flex-col md:flex-row lg:flex-col lg:items-end space-y-2 md:space-y-0 md:space-x-2 lg:space-x-0 lg:space-y-2"> + <a href="{{ request.scheme }}://{{ request.get_host }}{{ page.pdf_url }}"> + <button class="btn btn--inline-icon btn--condensed btn--hoveractive btn--grey-500"> + <div class="btn__body">Odkaz ke stažení PDF</div> + </button> + </a> </div> {% endif %} {% endblock %} diff --git a/shared/templates/shared/person_badge_snippet.html b/shared_legacy/templates/shared/person_badge_snippet.html similarity index 100% rename from shared/templates/shared/person_badge_snippet.html rename to shared_legacy/templates/shared/person_badge_snippet.html diff --git a/shared/templates/shared/person_badge_wide_snippet.html b/shared_legacy/templates/shared/person_badge_wide_snippet.html similarity index 100% rename from shared/templates/shared/person_badge_wide_snippet.html rename to shared_legacy/templates/shared/person_badge_wide_snippet.html diff --git a/shared/templates/shared/small_calendar_snippet.html b/shared_legacy/templates/shared/small_calendar_snippet.html similarity index 100% rename from shared/templates/shared/small_calendar_snippet.html rename to shared_legacy/templates/shared/small_calendar_snippet.html diff --git a/shared/templates/shared/social_icons_snippet.html b/shared_legacy/templates/shared/social_icons_snippet.html similarity index 100% rename from shared/templates/shared/social_icons_snippet.html rename to shared_legacy/templates/shared/social_icons_snippet.html diff --git a/shared/templates/styleguide/2.3.x/article_card.html b/shared_legacy/templates/styleguide/2.3.x/article_card.html similarity index 100% rename from shared/templates/styleguide/2.3.x/article_card.html rename to shared_legacy/templates/styleguide/2.3.x/article_card.html diff --git a/shared/templates/styleguide/2.3.x/article_card_list.html b/shared_legacy/templates/styleguide/2.3.x/article_card_list.html similarity index 100% rename from shared/templates/styleguide/2.3.x/article_card_list.html rename to shared_legacy/templates/styleguide/2.3.x/article_card_list.html diff --git a/shared/templates/styleguide/2.3.x/blocks/button_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/button_block.html similarity index 100% rename from shared/templates/styleguide/2.3.x/blocks/button_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/button_block.html diff --git a/shared/templates/styleguide/2.3.x/blocks/button_group_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/button_group_block.html similarity index 100% rename from shared/templates/styleguide/2.3.x/blocks/button_group_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/button_group_block.html diff --git a/shared/templates/styleguide/2.3.x/blocks/card_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/card_block.html similarity index 99% rename from shared/templates/styleguide/2.3.x/blocks/card_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/card_block.html index 2f2e55423a0e15ef871faf506eb59833ed39300d..62f818557d7d00fc2d0988859e2b495f76fc5579 100644 --- a/shared/templates/styleguide/2.3.x/blocks/card_block.html +++ b/shared_legacy/templates/styleguide/2.3.x/blocks/card_block.html @@ -12,7 +12,6 @@ <img class="w-full h-48 object-cover" src="{{ img.url }}" alt="{{ img.alt }}" /> {% endif %} {% endif %} - <div class="card__body"> {% if self.headline %} <h1 class="card-headline mb-2"> diff --git a/shared/templates/styleguide/2.3.x/blocks/figure_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/figure_block.html similarity index 100% rename from shared/templates/styleguide/2.3.x/blocks/figure_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/figure_block.html diff --git a/shared/templates/styleguide/2.3.x/blocks/full_size_header_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/full_size_header_block.html similarity index 100% rename from shared/templates/styleguide/2.3.x/blocks/full_size_header_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/full_size_header_block.html diff --git a/shared_legacy/templates/styleguide/2.3.x/blocks/gallery_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/gallery_block.html new file mode 100644 index 0000000000000000000000000000000000000000..f4181b7912057ddbc31531bead32e1bbfdf9d5c2 --- /dev/null +++ b/shared_legacy/templates/styleguide/2.3.x/blocks/gallery_block.html @@ -0,0 +1,10 @@ +{% load wagtailimages_tags %} +<div class="w-full grid grid-cols-4 gap-4"> + {% for picture in self.gallery_items %} + {% image picture width-2000 as img %} + {% image picture fill-300x200 as thumb %} + <div> + <a data-fancybox="gallery" href="{{ img.url }}"><img data-src="{{ thumb.url }}" class="lazyload img-fluid" alt="{{ thumb.alt }}"></a> + </div> + {% endfor %} +</div> diff --git a/shared/templates/styleguide/2.3.x/blocks/headline_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/headline_block.html similarity index 100% rename from shared/templates/styleguide/2.3.x/blocks/headline_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/headline_block.html diff --git a/shared/templates/styleguide/2.3.x/blocks/image_banner_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/image_banner_block.html similarity index 100% rename from shared/templates/styleguide/2.3.x/blocks/image_banner_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/image_banner_block.html diff --git a/shared/templates/styleguide/2.3.x/blocks/three_column_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/three_column_block.html similarity index 100% rename from shared/templates/styleguide/2.3.x/blocks/three_column_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/three_column_block.html diff --git a/shared/templates/styleguide/2.3.x/blocks/two_column_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/two_column_block.html similarity index 100% rename from shared/templates/styleguide/2.3.x/blocks/two_column_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/two_column_block.html diff --git a/shared/templates/styleguide/2.3.x/blocks/video_block.html b/shared_legacy/templates/styleguide/2.3.x/blocks/video_block.html similarity index 99% rename from shared/templates/styleguide/2.3.x/blocks/video_block.html rename to shared_legacy/templates/styleguide/2.3.x/blocks/video_block.html index 270d0d85df36c29e64dd1c20f6adf3bd3a9e34fc..00948f9db6257140d068970c06782693f277c4b1 100644 --- a/shared/templates/styleguide/2.3.x/blocks/video_block.html +++ b/shared_legacy/templates/styleguide/2.3.x/blocks/video_block.html @@ -1,5 +1,4 @@ {% load wagtailimages_tags %} - <div class="mb-10 text-center youtube-poster" id="ytVideo{{ self.video_id }}PosterContainer"> {% image self.poster_image width-720 as img %} <img src="{{ img.url }}" alt="{{ img.alt }}" class="w-full object-cover mb-2"> diff --git a/shared/templates/styleguide/2.3.x/menu_item.html b/shared_legacy/templates/styleguide/2.3.x/menu_item.html similarity index 100% rename from shared/templates/styleguide/2.3.x/menu_item.html rename to shared_legacy/templates/styleguide/2.3.x/menu_item.html diff --git a/shared/templates/styleguide/2.3.x/menu_parent.html b/shared_legacy/templates/styleguide/2.3.x/menu_parent.html similarity index 100% rename from shared/templates/styleguide/2.3.x/menu_parent.html rename to shared_legacy/templates/styleguide/2.3.x/menu_parent.html diff --git a/shared/templates/styleguide/2.3.x/pagination.html b/shared_legacy/templates/styleguide/2.3.x/pagination.html similarity index 100% rename from shared/templates/styleguide/2.3.x/pagination.html rename to shared_legacy/templates/styleguide/2.3.x/pagination.html diff --git a/shared_legacy/utils.py b/shared_legacy/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..c27449f8ded58045eba91bad10bdb65869cebb27 --- /dev/null +++ b/shared_legacy/utils.py @@ -0,0 +1,102 @@ +import json +import logging +import urllib.request +from urllib.parse import urljoin + +import bleach +import requests +from django.conf import settings +from django.core.files import File +from django.http import HttpResponse +from django.utils.translation import gettext_lazy +from wagtail.admin.panels import CommentPanel, FieldPanel, HelpPanel, MultiFieldPanel +from wagtail.images.models import Image +from wagtail.models import Page + +from tuning import admin_help + +logger = logging.getLogger() + + +def create_image_from_url(url, filename): + img_data = urllib.request.urlretrieve(url) + img_obj = Image(title=filename) + img_obj.file.save(filename, File(open(img_data[0], "rb"))) + img_obj.save() + return img_obj + + +def get_subpage_url(page, dest_page_type): + try: + return page.get_descendants().type(dest_page_type).live().first().get_url() + except (Page.DoesNotExist, AttributeError): + return "#" + + +def make_promote_panels( + help_content=None, *, seo_title=True, search_description=True, search_image=True +): + if help_content is None: + help_content = admin_help.build( + admin_help.NO_SEO_TITLE, admin_help.NO_SEARCH_IMAGE + ) + + panels = [FieldPanel("slug")] + if seo_title: + panels.append(FieldPanel("seo_title")) + if search_description: + panels.append(FieldPanel("search_description")) + if search_image: + panels.append(FieldPanel("search_image")) + panels.append(HelpPanel(help_content)) + panels.append(CommentPanel()) + + return [MultiFieldPanel(panels, gettext_lazy("Common page configuration"))] + + +def subscribe_to_newsletter(email, list_id): + url = urljoin(settings.MAILTRAIN_API_URL, f"subscribe/{list_id}") + data = {"EMAIL": email, "FORCE_SUBSCRIBE": False, "REQUIRE_CONFIRMATION": True} + response = requests.post( + url, data=data, headers={"access-token": settings.MAILTRAIN_API_TOKEN} + ) + if response.status_code != 200: + logger.error( + "Failed to subscribe!", extra={"data": data, "response": response.text} + ) + return response + + +def subscribe_to_newsletter_ajax(request): + client_response = HttpResponse() + if request.method == "POST": + body = json.loads(request.body) + response = subscribe_to_newsletter(body["email"], body["list_id"]) + if "error" in response.json(): + client_response.status_code = 500 + else: + client_response.status_code = response.status_code + + return client_response + + client_response.status_code = 400 + return client_response + + +def strip_all_html_tags(value: str): + """Drop all HTML tags from given value. + + :param value: string to sanitize + """ + return bleach.clean(value, tags=[], attributes=[], strip=True, strip_comments=True) + + +def trim_to_length(value: str, max_length: int = 150): + """Trim value to max length shall it exceed it. + + :param value: input string + :param max_length: max allowed length + """ + if len(value) > max_length: + return value[:max_length] + "..." + return value diff --git a/shared_legacy/views.py b/shared_legacy/views.py new file mode 100644 index 0000000000000000000000000000000000000000..e2496f5e0016a56908f4ffd22bcf00708139b30a --- /dev/null +++ b/shared_legacy/views.py @@ -0,0 +1,18 @@ +from django.http import HttpResponse +from wagtail.models import Site + + +def page_not_found(request, exception=None): + try: + site = Site.find_for_request(request) + root_page = site.root_page.specific + except: + root_page = None + + if root_page and hasattr(root_page, "get_404_response"): + return root_page.get_404_response(request) + + return HttpResponse( + "<h1>Stránka nenalezena</h1><a href='/'>pokračovat na úvod</a>", + status=404, + ) diff --git a/uniweb/constants.py b/uniweb/constants.py index de8bd7fa7218ae358d77b163cfa8afc7361d097e..fb0ec2ce63647be6c8196cfb24e76717bf4a9372 100644 --- a/uniweb/constants.py +++ b/uniweb/constants.py @@ -1,4 +1,4 @@ -from shared.const import RICH_TEXT_DEFAULT_FEATURES +from shared_legacy.const import RICH_TEXT_DEFAULT_FEATURES RICH_TEXT_FEATURES = RICH_TEXT_DEFAULT_FEATURES diff --git a/uniweb/migrations/0062_alter_uniwebarticlepage_content_and_more.py b/uniweb/migrations/0062_alter_uniwebarticlepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..0af0d177a4390a6cc7703758745807d0f475d4f5 --- /dev/null +++ b/uniweb/migrations/0062_alter_uniwebarticlepage_content_and_more.py @@ -0,0 +1,61 @@ +# Generated by Django 5.0.4 on 2024-06-05 10:37 + +import django.db.models.deletion +import shared_legacy.blocks.base +import wagtail.blocks +import wagtail.blocks.static_block +import wagtail.contrib.table_block.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('calendar_utils', '0004_auto_20220505_1228'), + ('uniweb', '0061_alter_uniwebflexiblepage_content_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='uniwebarticlepage', + name='content', + field=wagtail.fields.StreamField([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor', template='styleguide2/includes/atoms/text/prose_richtext.html')), ('headline', wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Nadpis', max_length=300, required=True)), ('tag', wagtail.blocks.ChoiceBlock(choices=[('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], help_text='Čím nižší číslo, tím vyšší úroveň.', label='Úroveň nadpisu')), ('style', wagtail.blocks.ChoiceBlock(choices=[('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], help_text='Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', label='Velikost')), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('gallery', wagtail.blocks.StructBlock([('gallery_items', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek', required=True), group='ostatní', icon='image', label='Galerie'))], label='Galerie')), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', required=False)), ('content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce'))], label='Obsah', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('two_columns', wagtail.blocks.StructBlock([('left_column_content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', required=False)), ('content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce'))], label='Obsah', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce')), ('button', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('button_group', wagtail.blocks.StructBlock([('buttons', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))]), label='Tlačítka'))]))], label='Obsah levého sloupce', required=True)), ('right_column_content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', required=False)), ('content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce'))], label='Obsah', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce')), ('button', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('button_group', wagtail.blocks.StructBlock([('buttons', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))]), label='Tlačítka'))]))], label='Obsah pravého sloupce', required=True))])), ('three_columns', wagtail.blocks.StructBlock([('left_column_content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', required=False)), ('content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce'))], label='Obsah', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce')), ('button', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('button_group', wagtail.blocks.StructBlock([('buttons', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))]), label='Tlačítka'))]))], label='Obsah levého sloupce', required=True)), ('middle_column_content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', required=False)), ('content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce'))], label='Obsah', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce')), ('button', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('button_group', wagtail.blocks.StructBlock([('buttons', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))]), label='Tlačítka'))]))], label='Obsah prostředního sloupce', required=True)), ('right_column_content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', required=False)), ('content', wagtail.blocks.StreamBlock([('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce'))], label='Obsah', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('figure', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=True)), ('caption', wagtail.blocks.TextBlock(label='Popisek', required=False))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))])), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce')), ('button', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('button_group', wagtail.blocks.StructBlock([('buttons', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))]), label='Tlačítka'))]))], label='Obsah pravého sloupce', required=True))])), ('youtube', wagtail.blocks.StructBlock([('poster_image', wagtail.images.blocks.ImageChooserBlock(help_text='Není třeba vyplňovat, náhled bude dohledán automaticky.', label='Náhled videa (automatické pole)', required=False)), ('video_url', wagtail.blocks.URLBlock(help_text='Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', label='Odkaz na video', required=False)), ('video_id', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky načteno z odkazu.', label='ID videa (automatické pole)', required=False))], label='YouTube video')), ('map_point', wagtail.blocks.StructBlock([('lat', wagtail.blocks.DecimalBlock(help_text='Např. 50.04075', label='Zeměpisná šířka')), ('lon', wagtail.blocks.DecimalBlock(help_text='Např. 15.77659', label='Zeměpisná délka')), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva špendlíku (HEX)')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Špendlík na mapě')), ('map_collection', wagtail.blocks.StructBlock([('features', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('description', wagtail.blocks.TextBlock(label='Popisek', required=False)), ('geojson', wagtail.blocks.TextBlock(help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", label='Geodata', required=True)), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('hex_color', wagtail.blocks.CharBlock(default='000000', help_text='Zadejte barvu pomocí HEX notace (bez # na začátku).', label='Barva (HEX)'))], required=True), label='Součásti')), ('zoom', wagtail.blocks.IntegerBlock(default=15, label='Výchozí zoom', max_value=18, min_value=1)), ('style', wagtail.blocks.ChoiceBlock(choices=[('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], label='Styl')), ('height', wagtail.blocks.IntegerBlock(label='Výška v px', max_value=1000, min_value=100))], label='Mapová kolekce')), ('button', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('button_group', wagtail.blocks.StructBlock([('buttons', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], label='Barva')), ('hoveractive', wagtail.blocks.BooleanBlock(default=True, help_text='Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False)), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))]), label='Tlačítka'))]))], blank=True, verbose_name='Článek'), + ), + migrations.AlterField( + model_name='uniwebcalendarpage', + name='calendar', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='calendar_utils.calendar'), + ), + migrations.AlterField( + model_name='uniwebflexiblepage', + name='content', + field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html')), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, verbose_name='obsah stránky'), + ), + migrations.AlterField( + model_name='uniwebformpage', + name='content_after', + field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html'))], blank=True, verbose_name='obsah stránky za formulářem'), + ), + migrations.AlterField( + model_name='uniwebformpage', + name='content_before', + field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html'))], blank=True, verbose_name='obsah stránky před formulářem'), + ), + migrations.AlterField( + model_name='uniwebformpage', + name='content_landing', + field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html'))], blank=True, verbose_name='obsah stránky zobrazené po odeslání formuláře'), + ), + migrations.AlterField( + model_name='uniwebhomepage', + name='calendar', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='calendar_utils.calendar'), + ), + migrations.AlterField( + model_name='uniwebhomepage', + name='content', + field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html')), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, verbose_name='obsah stránky'), + ), + ] diff --git a/uniweb/migrations/0062_alter_uniwebcalendarpage_calendar_and_more.py b/uniweb/migrations/0062_alter_uniwebcalendarpage_calendar_and_more.py deleted file mode 100644 index 239102ea6314d813467195317902de94e4e28b0b..0000000000000000000000000000000000000000 --- a/uniweb/migrations/0062_alter_uniwebcalendarpage_calendar_and_more.py +++ /dev/null @@ -1,34 +0,0 @@ -# Generated by Django 5.0.4 on 2024-05-06 10:34 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("calendar_utils", "0004_auto_20220505_1228"), - ("uniweb", "0061_alter_uniwebflexiblepage_content_and_more"), - ] - - operations = [ - migrations.AlterField( - model_name="uniwebcalendarpage", - name="calendar", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to="calendar_utils.calendar", - ), - ), - migrations.AlterField( - model_name="uniwebhomepage", - name="calendar", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to="calendar_utils.calendar", - ), - ), - ] diff --git a/uniweb/migrations/0063_alter_uniwebarticlepage_content.py b/uniweb/migrations/0063_alter_uniwebarticlepage_content.py deleted file mode 100644 index a5cf14d54438c7475b680d9a74b26b86d6a4655a..0000000000000000000000000000000000000000 --- a/uniweb/migrations/0063_alter_uniwebarticlepage_content.py +++ /dev/null @@ -1,5849 +0,0 @@ -# Generated by Django 5.0.4 on 2024-05-21 11:30 - -import wagtail.blocks -import wagtail.contrib.table_block.blocks -import wagtail.fields -import wagtail.images.blocks -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ("uniweb", "0062_alter_uniwebcalendarpage_calendar_and_more"), - ] - - operations = [ - migrations.AlterField( - model_name="uniwebarticlepage", - name="content", - field=wagtail.fields.StreamField( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - template="styleguide2/includes/atoms/text/prose_richtext.html", - ), - ), - ( - "headline", - wagtail.blocks.StructBlock( - [ - ( - "headline", - wagtail.blocks.CharBlock( - label="Nadpis", max_length=300, required=True - ), - ), - ( - "tag", - wagtail.blocks.ChoiceBlock( - choices=[ - ("h1", "H1"), - ("h2", "H2"), - ("h3", "H3"), - ("h4", "H4"), - ("h5", "H5"), - ("h6", "H6"), - ], - help_text="Čím nižší číslo, tím vyšší úroveň.", - label="Úroveň nadpisu", - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("head-alt-xl", "Velký, Bebas Neue - 6XL"), - ( - "head-alt-lg", - "Střední, Bebas Neue - 4XL", - ), - ( - "head-alt-md", - "Základní velikost - Roboto - MD", - ), - ("head-alt-sm", "Malý - Roboto - SM"), - ("head-alt-xs", "Extra malý - Roboto - XS"), - ], - help_text="Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.", - label="Velikost", - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "gallery", - wagtail.blocks.StructBlock( - [ - ( - "gallery_items", - wagtail.blocks.ListBlock( - wagtail.images.blocks.ImageChooserBlock( - label="obrázek", required=True - ), - group="ostatní", - icon="image", - label="Galerie", - ), - ) - ], - label="Galerie", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=True - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", required=False - ), - ), - ] - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=False - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", required=False - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ] - ), - ), - ( - "two_columns", - wagtail.blocks.StructBlock( - [ - ( - "left_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ("sm", "Malá"), - ("base", "Střední"), - ("lg", "Velká"), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "sm", - "Malá", - ), - ( - "base", - "Střední", - ), - ( - "lg", - "Velká", - ), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah levého sloupce", - required=True, - ), - ), - ( - "right_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ("sm", "Malá"), - ("base", "Střední"), - ("lg", "Velká"), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "sm", - "Malá", - ), - ( - "base", - "Střední", - ), - ( - "lg", - "Velká", - ), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=True, - ), - ), - ] - ), - ), - ( - "three_columns", - wagtail.blocks.StructBlock( - [ - ( - "left_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ("sm", "Malá"), - ("base", "Střední"), - ("lg", "Velká"), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "sm", - "Malá", - ), - ( - "base", - "Střední", - ), - ( - "lg", - "Velká", - ), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah levého sloupce", - required=True, - ), - ), - ( - "middle_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ("sm", "Malá"), - ("base", "Střední"), - ("lg", "Velká"), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "sm", - "Malá", - ), - ( - "base", - "Střední", - ), - ( - "lg", - "Velká", - ), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah prostředního sloupce", - required=True, - ), - ), - ( - "right_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ("sm", "Malá"), - ("base", "Střední"), - ("lg", "Velká"), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "sm", - "Malá", - ), - ( - "base", - "Střední", - ), - ( - "lg", - "Velká", - ), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=True, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ], - label="YouTube video", - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("osm-mapnik", "OSM Mapnik"), - ("stadia-osm-bright", "Stadia OSM Bright"), - ("stadia-outdoors", "Stadia Outdoors"), - ("mapbox-streets", "Mapbox Streets"), - ("mapbox-outdoors", "Mapbox Outdoors"), - ("mapbox-light", "Mapbox Light"), - ("mapbox-dark", "Mapbox Dark"), - ("mapbox-satellite", "Mapbox Satellite"), - ("mapbox-pirate", "Mapbox Pirate Theme"), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", required=True - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", required=False - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("osm-mapnik", "OSM Mapnik"), - ("stadia-osm-bright", "Stadia OSM Bright"), - ("stadia-outdoors", "Stadia Outdoors"), - ("mapbox-streets", "Mapbox Streets"), - ("mapbox-outdoors", "Mapbox Outdoors"), - ("mapbox-light", "Mapbox Light"), - ("mapbox-dark", "Mapbox Dark"), - ("mapbox-satellite", "Mapbox Satellite"), - ("mapbox-pirate", "Mapbox Pirate Theme"), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", max_length=128, required=True - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ("sm", "Malá"), - ("base", "Střední"), - ("lg", "Velká"), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ("grey-125", "Světle šedá"), - ("blue-300", "Modrá"), - ("cyan-200", "Tyrkysová"), - ("green-400", "Zelené"), - ("violet-400", "Vínová"), - ("red-600", "Červená"), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ("sm", "Malá"), - ("base", "Střední"), - ("lg", "Velká"), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ("grey-125", "Světle šedá"), - ("blue-300", "Modrá"), - ("cyan-200", "Tyrkysová"), - ("green-400", "Zelené"), - ("violet-400", "Vínová"), - ("red-600", "Červená"), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ( - "image_banner", - wagtail.blocks.StructBlock( - [ - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=True - ), - ), - ( - "headline", - wagtail.blocks.CharBlock( - label="Headline", max_length=128, required=True - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=( - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "blockquote", - ), - label="Textový editor", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ("sm", "Malá"), - ("base", "Střední"), - ("lg", "Velká"), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "icon", - wagtail.blocks.CharBlock( - help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", - label="Ikonka", - max_length=128, - required=False, - ), - ), - ( - "size", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "sm", - "Malá", - ), - ( - "base", - "Střední", - ), - ( - "lg", - "Velká", - ), - ], - label="Velikost", - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelené", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", - label="Animovat na hover", - required=False, - ), - ), - ( - "mobile_fullwidth", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", - label="Plná šířka na mobilních zařízeních", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=False, - ), - ), - ] - ), - ), - ], - blank=True, - verbose_name="Článek", - ), - ), - ] diff --git a/uniweb/migrations/0064_alter_uniwebarticlepage_content.py b/uniweb/migrations/0064_alter_uniwebarticlepage_content.py deleted file mode 100644 index 2e7ac50e8d17c545eb2c7d4123d0098dff701672..0000000000000000000000000000000000000000 --- a/uniweb/migrations/0064_alter_uniwebarticlepage_content.py +++ /dev/null @@ -1,5440 +0,0 @@ -# Generated by Django 5.0.4 on 2024-05-21 13:23 - -import wagtail.blocks -import wagtail.contrib.table_block.blocks -import wagtail.fields -import wagtail.images.blocks -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ("uniweb", "0063_alter_uniwebarticlepage_content"), - ] - - operations = [ - migrations.AlterField( - model_name="uniwebarticlepage", - name="content", - field=wagtail.fields.StreamField( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - template="styleguide2/includes/atoms/text/prose_richtext.html", - ), - ), - ( - "headline", - wagtail.blocks.StructBlock( - [ - ( - "headline", - wagtail.blocks.CharBlock( - label="Nadpis", max_length=300, required=True - ), - ), - ( - "tag", - wagtail.blocks.ChoiceBlock( - choices=[ - ("h1", "H1"), - ("h2", "H2"), - ("h3", "H3"), - ("h4", "H4"), - ("h5", "H5"), - ("h6", "H6"), - ], - help_text="Čím nižší číslo, tím vyšší úroveň.", - label="Úroveň nadpisu", - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("head-alt-xl", "Velký, Bebas Neue - 6XL"), - ( - "head-alt-lg", - "Střední, Bebas Neue - 4XL", - ), - ( - "head-alt-md", - "Základní velikost - Roboto - MD", - ), - ("head-alt-sm", "Malý - Roboto - SM"), - ("head-alt-xs", "Extra malý - Roboto - XS"), - ], - help_text="Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.", - label="Velikost", - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "gallery", - wagtail.blocks.StructBlock( - [ - ( - "gallery_items", - wagtail.blocks.ListBlock( - wagtail.images.blocks.ImageChooserBlock( - label="obrázek", required=True - ), - group="ostatní", - icon="image", - label="Galerie", - ), - ) - ], - label="Galerie", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=True - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", required=False - ), - ), - ] - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=False - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", required=False - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ] - ), - ), - ( - "two_columns", - wagtail.blocks.StructBlock( - [ - ( - "left_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah levého sloupce", - required=True, - ), - ), - ( - "right_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=True, - ), - ), - ] - ), - ), - ( - "three_columns", - wagtail.blocks.StructBlock( - [ - ( - "left_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah levého sloupce", - required=True, - ), - ), - ( - "middle_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah prostředního sloupce", - required=True, - ), - ), - ( - "right_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "elevation", - wagtail.blocks.IntegerBlock( - default=2, - help_text="0 = žádný stín, 21 = maximální stín", - label="Velikost stínu", - max_value=21, - min_value=0, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=False, - help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", - label="Zvýraznit stín na hover", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - template="shared/blocks/table_block.html" - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=True, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ], - label="YouTube video", - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("osm-mapnik", "OSM Mapnik"), - ("stadia-osm-bright", "Stadia OSM Bright"), - ("stadia-outdoors", "Stadia Outdoors"), - ("mapbox-streets", "Mapbox Streets"), - ("mapbox-outdoors", "Mapbox Outdoors"), - ("mapbox-light", "Mapbox Light"), - ("mapbox-dark", "Mapbox Dark"), - ("mapbox-satellite", "Mapbox Satellite"), - ("mapbox-pirate", "Mapbox Pirate Theme"), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", required=True - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", required=False - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("osm-mapnik", "OSM Mapnik"), - ("stadia-osm-bright", "Stadia OSM Bright"), - ("stadia-outdoors", "Stadia Outdoors"), - ("mapbox-streets", "Mapbox Streets"), - ("mapbox-outdoors", "Mapbox Outdoors"), - ("mapbox-light", "Mapbox Light"), - ("mapbox-dark", "Mapbox Dark"), - ("mapbox-satellite", "Mapbox Satellite"), - ("mapbox-pirate", "Mapbox Pirate Theme"), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", max_length=128, required=True - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ("pirati-yellow", "Žlutá"), - ("grey-125", "Světle šedá"), - ("blue-300", "Modrá"), - ("cyan-200", "Tyrkysová"), - ("green-400", "Zelená"), - ("violet-400", "Vínová"), - ("red-600", "Červená"), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ("pirati-yellow", "Žlutá"), - ("grey-125", "Světle šedá"), - ("blue-300", "Modrá"), - ("cyan-200", "Tyrkysová"), - ("green-400", "Zelená"), - ("violet-400", "Vínová"), - ("red-600", "Červená"), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ( - "image_banner", - wagtail.blocks.StructBlock( - [ - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=True - ), - ), - ( - "headline", - wagtail.blocks.CharBlock( - label="Headline", max_length=128, required=True - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=( - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "blockquote", - ), - label="Textový editor", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=False, - ), - ), - ] - ), - ), - ], - blank=True, - verbose_name="Článek", - ), - ), - ] diff --git a/uniweb/migrations/0065_alter_uniwebarticlepage_content.py b/uniweb/migrations/0065_alter_uniwebarticlepage_content.py deleted file mode 100644 index c45f2f907ee0715029995785871058ca4dda7ee0..0000000000000000000000000000000000000000 --- a/uniweb/migrations/0065_alter_uniwebarticlepage_content.py +++ /dev/null @@ -1,5337 +0,0 @@ -# Generated by Django 5.0.4 on 2024-05-22 10:20 - -import wagtail.blocks -import wagtail.contrib.table_block.blocks -import wagtail.fields -import wagtail.images.blocks -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ("uniweb", "0064_alter_uniwebarticlepage_content"), - ] - - operations = [ - migrations.AlterField( - model_name="uniwebarticlepage", - name="content", - field=wagtail.fields.StreamField( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - template="styleguide2/includes/atoms/text/prose_richtext.html", - ), - ), - ( - "headline", - wagtail.blocks.StructBlock( - [ - ( - "headline", - wagtail.blocks.CharBlock( - label="Nadpis", max_length=300, required=True - ), - ), - ( - "tag", - wagtail.blocks.ChoiceBlock( - choices=[ - ("h1", "H1"), - ("h2", "H2"), - ("h3", "H3"), - ("h4", "H4"), - ("h5", "H5"), - ("h6", "H6"), - ], - help_text="Čím nižší číslo, tím vyšší úroveň.", - label="Úroveň nadpisu", - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("head-alt-xl", "Velký, Bebas Neue - 6XL"), - ( - "head-alt-lg", - "Střední, Bebas Neue - 4XL", - ), - ( - "head-alt-md", - "Základní velikost - Roboto - MD", - ), - ("head-alt-sm", "Malý - Roboto - SM"), - ("head-alt-xs", "Extra malý - Roboto - XS"), - ], - help_text="Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.", - label="Velikost", - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "gallery", - wagtail.blocks.StructBlock( - [ - ( - "gallery_items", - wagtail.blocks.ListBlock( - wagtail.images.blocks.ImageChooserBlock( - label="obrázek", required=True - ), - group="ostatní", - icon="image", - label="Galerie", - ), - ) - ], - label="Galerie", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=True - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", required=False - ), - ), - ] - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=False - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", required=False - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ] - ), - ), - ( - "two_columns", - wagtail.blocks.StructBlock( - [ - ( - "left_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah levého sloupce", - required=True, - ), - ), - ( - "right_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=True, - ), - ), - ] - ), - ), - ( - "three_columns", - wagtail.blocks.StructBlock( - [ - ( - "left_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah levého sloupce", - required=True, - ), - ), - ( - "middle_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah prostředního sloupce", - required=True, - ), - ), - ( - "right_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=True, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ], - label="YouTube video", - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("osm-mapnik", "OSM Mapnik"), - ("stadia-osm-bright", "Stadia OSM Bright"), - ("stadia-outdoors", "Stadia Outdoors"), - ("mapbox-streets", "Mapbox Streets"), - ("mapbox-outdoors", "Mapbox Outdoors"), - ("mapbox-light", "Mapbox Light"), - ("mapbox-dark", "Mapbox Dark"), - ("mapbox-satellite", "Mapbox Satellite"), - ("mapbox-pirate", "Mapbox Pirate Theme"), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", required=True - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", required=False - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("osm-mapnik", "OSM Mapnik"), - ("stadia-osm-bright", "Stadia OSM Bright"), - ("stadia-outdoors", "Stadia Outdoors"), - ("mapbox-streets", "Mapbox Streets"), - ("mapbox-outdoors", "Mapbox Outdoors"), - ("mapbox-light", "Mapbox Light"), - ("mapbox-dark", "Mapbox Dark"), - ("mapbox-satellite", "Mapbox Satellite"), - ("mapbox-pirate", "Mapbox Pirate Theme"), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", max_length=128, required=True - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ("pirati-yellow", "Žlutá"), - ("grey-125", "Světle šedá"), - ("blue-300", "Modrá"), - ("cyan-200", "Tyrkysová"), - ("green-400", "Zelená"), - ("violet-400", "Vínová"), - ("red-600", "Červená"), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ("pirati-yellow", "Žlutá"), - ("grey-125", "Světle šedá"), - ("blue-300", "Modrá"), - ("cyan-200", "Tyrkysová"), - ("green-400", "Zelená"), - ("violet-400", "Vínová"), - ("red-600", "Červená"), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ( - "image_banner", - wagtail.blocks.StructBlock( - [ - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=True - ), - ), - ( - "headline", - wagtail.blocks.CharBlock( - label="Headline", max_length=128, required=True - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=( - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "blockquote", - ), - label="Textový editor", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=False, - ), - ), - ] - ), - ), - ], - blank=True, - verbose_name="Článek", - ), - ), - ] diff --git a/uniweb/migrations/0066_alter_uniwebarticlepage_content.py b/uniweb/migrations/0066_alter_uniwebarticlepage_content.py deleted file mode 100644 index 7fa6c493d0c1ab9e1ac091b456e4856eec023566..0000000000000000000000000000000000000000 --- a/uniweb/migrations/0066_alter_uniwebarticlepage_content.py +++ /dev/null @@ -1,5086 +0,0 @@ -# Generated by Django 5.0.4 on 2024-05-22 14:01 - -import wagtail.blocks -import wagtail.contrib.table_block.blocks -import wagtail.fields -import wagtail.images.blocks -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ("uniweb", "0065_alter_uniwebarticlepage_content"), - ] - - operations = [ - migrations.AlterField( - model_name="uniwebarticlepage", - name="content", - field=wagtail.fields.StreamField( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - template="styleguide2/includes/atoms/text/prose_richtext.html", - ), - ), - ( - "headline", - wagtail.blocks.StructBlock( - [ - ( - "headline", - wagtail.blocks.CharBlock( - label="Nadpis", max_length=300, required=True - ), - ), - ( - "tag", - wagtail.blocks.ChoiceBlock( - choices=[ - ("h1", "H1"), - ("h2", "H2"), - ("h3", "H3"), - ("h4", "H4"), - ("h5", "H5"), - ("h6", "H6"), - ], - help_text="Čím nižší číslo, tím vyšší úroveň.", - label="Úroveň nadpisu", - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("head-alt-xl", "Velký, Bebas Neue - 6XL"), - ( - "head-alt-lg", - "Střední, Bebas Neue - 4XL", - ), - ( - "head-alt-md", - "Základní velikost - Roboto - MD", - ), - ("head-alt-sm", "Malý - Roboto - SM"), - ("head-alt-xs", "Extra malý - Roboto - XS"), - ], - help_text="Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.", - label="Velikost", - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "gallery", - wagtail.blocks.StructBlock( - [ - ( - "gallery_items", - wagtail.blocks.ListBlock( - wagtail.images.blocks.ImageChooserBlock( - label="obrázek", required=True - ), - group="ostatní", - icon="image", - label="Galerie", - ), - ) - ], - label="Galerie", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=True - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", required=False - ), - ), - ] - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=False - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", required=False - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ] - ), - ), - ( - "two_columns", - wagtail.blocks.StructBlock( - [ - ( - "left_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah levého sloupce", - required=True, - ), - ), - ( - "right_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=True, - ), - ), - ] - ), - ), - ( - "three_columns", - wagtail.blocks.StructBlock( - [ - ( - "left_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah levého sloupce", - required=True, - ), - ), - ( - "middle_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah prostředního sloupce", - required=True, - ), - ), - ( - "right_column_content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "card", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "headline", - wagtail.blocks.TextBlock( - label="Titulek", - required=False, - ), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - "embed", - ], - label="Textový editor", - ), - ), - ( - "table", - wagtail.contrib.table_block.blocks.TableBlock( - label="Tabulka", - template="styleguide2/includes/atoms/table/table.html", - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ], - label="Obsah", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ] - ), - ), - ( - "figure", - wagtail.blocks.StructBlock( - [ - ( - "img", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=True, - ), - ), - ( - "caption", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ] - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - required=True, - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", - required=False, - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "osm-mapnik", - "OSM Mapnik", - ), - ( - "stadia-osm-bright", - "Stadia OSM Bright", - ), - ( - "stadia-outdoors", - "Stadia Outdoors", - ), - ( - "mapbox-streets", - "Mapbox Streets", - ), - ( - "mapbox-outdoors", - "Mapbox Outdoors", - ), - ( - "mapbox-light", - "Mapbox Light", - ), - ( - "mapbox-dark", - "Mapbox Dark", - ), - ( - "mapbox-satellite", - "Mapbox Satellite", - ), - ( - "mapbox-pirate", - "Mapbox Pirate Theme", - ), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "black", - "Černá", - ), - ( - "white", - "Bílá", - ), - ( - "pirati-yellow", - "Žlutá", - ), - ( - "grey-125", - "Světle šedá", - ), - ( - "blue-300", - "Modrá", - ), - ( - "cyan-200", - "Tyrkysová", - ), - ( - "green-400", - "Zelená", - ), - ( - "violet-400", - "Vínová", - ), - ( - "red-600", - "Červená", - ), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", - required=False, - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", - required=False, - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ( - "auto", - "Automaticky", - ), - ( - "center", - "Na střed", - ), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - label="Obsah pravého sloupce", - required=True, - ), - ), - ] - ), - ), - ( - "youtube", - wagtail.blocks.StructBlock( - [ - ( - "poster_image", - wagtail.images.blocks.ImageChooserBlock( - help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", - label="Náhled videa (automatické pole)", - required=False, - ), - ), - ( - "video_url", - wagtail.blocks.URLBlock( - help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", - label="Odkaz na video", - required=False, - ), - ), - ( - "video_id", - wagtail.blocks.CharBlock( - help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", - label="ID videa (automatické pole)", - required=False, - ), - ), - ], - label="YouTube video", - ), - ), - ( - "map_point", - wagtail.blocks.StructBlock( - [ - ( - "lat", - wagtail.blocks.DecimalBlock( - help_text="Např. 50.04075", - label="Zeměpisná šířka", - ), - ), - ( - "lon", - wagtail.blocks.DecimalBlock( - help_text="Např. 15.77659", - label="Zeměpisná délka", - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva špendlíku (HEX)", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("osm-mapnik", "OSM Mapnik"), - ("stadia-osm-bright", "Stadia OSM Bright"), - ("stadia-outdoors", "Stadia Outdoors"), - ("mapbox-streets", "Mapbox Streets"), - ("mapbox-outdoors", "Mapbox Outdoors"), - ("mapbox-light", "Mapbox Light"), - ("mapbox-dark", "Mapbox Dark"), - ("mapbox-satellite", "Mapbox Satellite"), - ("mapbox-pirate", "Mapbox Pirate Theme"), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Špendlík na mapě", - ), - ), - ( - "map_collection", - wagtail.blocks.StructBlock( - [ - ( - "features", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", required=True - ), - ), - ( - "description", - wagtail.blocks.TextBlock( - label="Popisek", required=False - ), - ), - ( - "geojson", - wagtail.blocks.TextBlock( - help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", - label="Geodata", - required=True, - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="Obrázek", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "hex_color", - wagtail.blocks.CharBlock( - default="000000", - help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", - label="Barva (HEX)", - ), - ), - ], - required=True, - ), - label="Součásti", - ), - ), - ( - "zoom", - wagtail.blocks.IntegerBlock( - default=15, - label="Výchozí zoom", - max_value=18, - min_value=1, - ), - ), - ( - "style", - wagtail.blocks.ChoiceBlock( - choices=[ - ("osm-mapnik", "OSM Mapnik"), - ("stadia-osm-bright", "Stadia OSM Bright"), - ("stadia-outdoors", "Stadia Outdoors"), - ("mapbox-streets", "Mapbox Streets"), - ("mapbox-outdoors", "Mapbox Outdoors"), - ("mapbox-light", "Mapbox Light"), - ("mapbox-dark", "Mapbox Dark"), - ("mapbox-satellite", "Mapbox Satellite"), - ("mapbox-pirate", "Mapbox Pirate Theme"), - ], - label="Styl", - ), - ), - ( - "height", - wagtail.blocks.IntegerBlock( - label="Výška v px", - max_value=1000, - min_value=100, - ), - ), - ], - label="Mapová kolekce", - ), - ), - ( - "button", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", max_length=128, required=True - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ("pirati-yellow", "Žlutá"), - ("grey-125", "Světle šedá"), - ("blue-300", "Modrá"), - ("cyan-200", "Tyrkysová"), - ("green-400", "Zelená"), - ("violet-400", "Vínová"), - ("red-600", "Červená"), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - ), - ( - "button_group", - wagtail.blocks.StructBlock( - [ - ( - "buttons", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.CharBlock( - label="Titulek", - max_length=128, - required=True, - ), - ), - ( - "color", - wagtail.blocks.ChoiceBlock( - choices=[ - ("black", "Černá"), - ("white", "Bílá"), - ("pirati-yellow", "Žlutá"), - ("grey-125", "Světle šedá"), - ("blue-300", "Modrá"), - ("cyan-200", "Tyrkysová"), - ("green-400", "Zelená"), - ("violet-400", "Vínová"), - ("red-600", "Červená"), - ], - label="Barva", - ), - ), - ( - "hoveractive", - wagtail.blocks.BooleanBlock( - default=True, - help_text="Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.", - label="Animovat na hover", - required=False, - ), - ), - ( - "page", - wagtail.blocks.PageChooserBlock( - label="Stránka", required=False - ), - ), - ( - "link", - wagtail.blocks.URLBlock( - label="Odkaz", required=False - ), - ), - ( - "align", - wagtail.blocks.ChoiceBlock( - choices=[ - ("auto", "Automaticky"), - ("center", "Na střed"), - ], - label="Zarovnání", - ), - ), - ] - ), - label="Tlačítka", - ), - ) - ] - ), - ), - ], - blank=True, - verbose_name="Článek", - ), - ), - ] diff --git a/uniweb/models.py b/uniweb/models.py index e26531645577136255d6fbbc8db09dbec5fd3960..7217b6fb8e3ba92eb5bf4dd5644abf452c939335 100644 --- a/uniweb/models.py +++ b/uniweb/models.py @@ -27,18 +27,18 @@ from wagtail.search import index from wagtailmetadata.models import MetadataPageMixin from calendar_utils.models import CalendarMixin -from shared.blocks import ChartBlock, FlipCardsBlock, NewsletterSubscriptionBlock -from shared.const import RICH_TEXT_DEFAULT_FEATURES -from shared.models import ( +from shared_legacy.blocks import ChartBlock, FlipCardsBlock, NewsletterSubscriptionBlock +from shared_legacy.const import RICH_TEXT_DEFAULT_FEATURES +from shared_legacy.models import ( ArticleMixin, ExtendedMetadataHomePageMixin, ExtendedMetadataPageMixin, PdfPageMixin, - SharedTaggedUniwebArticle, SubpageMixin, ) -from shared.models.legacy import ArticlesPageMixin, FooterMixin -from shared.utils import make_promote_panels, strip_all_html_tags, trim_to_length +from shared.models import SharedTaggedUniwebArticle +from shared_legacy.models import ArticlesPageMixin, FooterMixin +from shared_legacy.utils import make_promote_panels, strip_all_html_tags, trim_to_length from tuning import admin_help from .blocks import AlignedTableBlock, PeopleGroupListBlock, PersonUrlBlock