diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ba68da54ba49449f1745ca5003e0e244036c03ef..02d457bdbd9374ccbe0e337c419364d9e6f3e558 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,7 +4,7 @@ default_language_version: exclude: snapshots/ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.1.0 + rev: v4.4.0 hooks: - id: trailing-whitespace exclude: ^.*\.md$ @@ -21,11 +21,12 @@ repos: - id: seed-isort-config - repo: https://github.com/timothycrosley/isort - rev: 5.10.1 + rev: 5.12.0 hooks: - id: isort - repo: https://github.com/psf/black - rev: 22.3.0 + rev: 22.12.0 hooks: - id: black + args: ["-t", "py310"] diff --git a/calendar_utils/management/commands/update_callendars.py b/calendar_utils/management/commands/update_callendars.py index e837549834b9b47486aa9e4ad6c9d6a12a94318c..912faaf88948d2607b742c156ecb67bbe2bc3cf8 100644 --- a/calendar_utils/management/commands/update_callendars.py +++ b/calendar_utils/management/commands/update_callendars.py @@ -9,9 +9,25 @@ logger = logging.getLogger(__name__) class Command(BaseCommand): def handle(self, *args, **options): + self.stdout.write("Removing orphaned calendars...") + for cal in Calendar.objects.filter( + districtcenterpage=None, + districthomepage=None, + elections2021calendarpage=None, + senatcampaignhomepage=None, + uniwebhomepage=None, + ): + try: + self.stdout.write(f"- {cal.id} | {cal.url}") + cal.delete() + except Exception as e: + logger.error("Calendar delete failed for %s", cal.url, exc_info=True) + self.stdout.write(" - failed") + self.stdout.write(str(e)) + self.stdout.write("Updating calendars...") for cal in Calendar.objects.all(): - self.stdout.write(f"\n@ {cal.url}") + self.stdout.write(f"\n@ {cal.id} | {cal.url}") try: cal.update_source() self.stdout.write("+ ok") diff --git a/calendar_utils/models.py b/calendar_utils/models.py index b16d21378cf7478461bf648500fef989f009410d..335161250f7c8c763a9fb89a11f700035984b25a 100644 --- a/calendar_utils/models.py +++ b/calendar_utils/models.py @@ -99,8 +99,6 @@ class CalendarMixin(models.Model): # delete related Calendar when URL is cleared if not self.calendar_url and self.calendar: - # TODO handle revisions and maybe other live pages with the same calendar - # self.calendar.delete() self.calendar = None super().save(*args, **kwargs) diff --git a/calendar_utils/parser.py b/calendar_utils/parser.py index e9220ffe14d38958c9d9ec3efdd825ecc68a9d29..504cc20c8f78d64e9d98a8c5b3a5d891f040a9b0 100644 --- a/calendar_utils/parser.py +++ b/calendar_utils/parser.py @@ -1,10 +1,10 @@ from operator import itemgetter from typing import TYPE_CHECKING +from zoneinfo import ZoneInfo import arrow import bleach from django.conf import settings -from zoneinfo import ZoneInfo if TYPE_CHECKING: from icalevnt.icalparser import Event diff --git a/district/migrations/0096_districtelectioncampaignpage_show_program_points_inline_and_more.py b/district/migrations/0096_districtelectioncampaignpage_show_program_points_inline_and_more.py index 8f3bdf38b1f686ce6b4fa85b651247bb968bdb70..6dd338c5627ea5065d0bd3cd467932df75fdda53 100644 --- a/district/migrations/0096_districtelectioncampaignpage_show_program_points_inline_and_more.py +++ b/district/migrations/0096_districtelectioncampaignpage_show_program_points_inline_and_more.py @@ -1,25 +1,99 @@ # Generated by Django 4.0.7 on 2022-08-11 16:38 -from django.db import migrations, models import wagtail.blocks import wagtail.fields +from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('district', '0095_alter_districtpersonpage_options_and_more'), + ("district", "0095_alter_districtpersonpage_options_and_more"), ] operations = [ migrations.AddField( - model_name='districtelectioncampaignpage', - name='show_program_points_inline', - field=models.BooleanField(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.', verbose_name='Zobrazit obsah celého programu na jedné stránce'), + model_name="districtelectioncampaignpage", + name="show_program_points_inline", + field=models.BooleanField( + 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.", + verbose_name="Zobrazit obsah celého programu na jedné stránce", + ), ), migrations.AlterField( - model_name='districtinteractiveprogrampage', - name='content', - field=wagtail.fields.StreamField([('interactive_program_block', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název části programu', required=True)), ('heading', wagtail.blocks.CharBlock(label='Nadpis', required=True)), ('description', wagtail.blocks.RichTextBlock(blank=True, label='Krátký popis, BEZ BODŮ', required=False)), ('icon', wagtail.blocks.ChoiceBlock(choices=[('verejne-sluzby', 'Veřejné služby'), ('zdravotni-pece', 'Zdravotní péče'), ('sport', 'Sport'), ('sport-plavec', 'Sport - plavec'), ('socialni-politika', 'Sociální politika'), ('aktivni-verejnost', 'Aktivní veřejnost'), ('priroda', 'Příroda'), ('vzdelavani', 'Vzdělávání'), ('kultura', 'Kultura'), ('otevrena-radnice', 'Otevřená radnice'), ('cestovni-ruch', 'Cestovní ruch'), ('doprava', 'Doprava'), ('bydleni', 'Bydlení')], label='Ikona')), ('program_items', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('content', wagtail.blocks.RichTextBlock(label='Obsah', required=True))]), label='Seznam bodů', required=True))]))], use_json_field=None, verbose_name='Části programu'), + model_name="districtinteractiveprogrampage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "interactive_program_block", + wagtail.blocks.StructBlock( + [ + ( + "name", + wagtail.blocks.CharBlock( + label="Název části programu", required=True + ), + ), + ( + "heading", + wagtail.blocks.CharBlock( + label="Nadpis", required=True + ), + ), + ( + "description", + wagtail.blocks.RichTextBlock( + blank=True, + label="Krátký popis, BEZ BODŮ", + required=False, + ), + ), + ( + "icon", + wagtail.blocks.ChoiceBlock( + choices=[ + ("verejne-sluzby", "Veřejné služby"), + ("zdravotni-pece", "Zdravotní péče"), + ("sport", "Sport"), + ("sport-plavec", "Sport - plavec"), + ("socialni-politika", "Sociální politika"), + ("aktivni-verejnost", "Aktivní veřejnost"), + ("priroda", "Příroda"), + ("vzdelavani", "Vzdělávání"), + ("kultura", "Kultura"), + ("otevrena-radnice", "Otevřená radnice"), + ("cestovni-ruch", "Cestovní ruch"), + ("doprava", "Doprava"), + ("bydleni", "Bydlení"), + ], + label="Ikona", + ), + ), + ( + "program_items", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "content", + wagtail.blocks.RichTextBlock( + label="Obsah", required=True + ), + ) + ] + ), + label="Seznam bodů", + required=True, + ), + ), + ] + ), + ) + ], + use_json_field=None, + verbose_name="Části programu", + ), ), ] diff --git a/district/migrations/0097_alter_districtelectioncampaignpage_show_program_points_inline.py b/district/migrations/0097_alter_districtelectioncampaignpage_show_program_points_inline.py index 972978cd045635b7e459948ec1e4c73ff3cfaee3..94162db0420067dfd426b48b1b95810562f74756 100644 --- a/district/migrations/0097_alter_districtelectioncampaignpage_show_program_points_inline.py +++ b/district/migrations/0097_alter_districtelectioncampaignpage_show_program_points_inline.py @@ -6,13 +6,20 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('district', '0096_districtelectioncampaignpage_show_program_points_inline_and_more'), + ( + "district", + "0096_districtelectioncampaignpage_show_program_points_inline_and_more", + ), ] operations = [ migrations.AlterField( - model_name='districtelectioncampaignpage', - name='show_program_points_inline', - field=models.BooleanField(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.', verbose_name='Zobrazit obsah programu na jedné stránce'), + model_name="districtelectioncampaignpage", + name="show_program_points_inline", + field=models.BooleanField( + 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.", + verbose_name="Zobrazit obsah programu na jedné stránce", + ), ), ] diff --git a/district/migrations/0098_alter_districtelectionprogrampage_guarantor.py b/district/migrations/0098_alter_districtelectionprogrampage_guarantor.py index f154e65e9da7b707a095afa6d5cb71000a5b9bce..1da7556a232e0c1d1a45b0503e0553bf07da774e 100644 --- a/district/migrations/0098_alter_districtelectionprogrampage_guarantor.py +++ b/district/migrations/0098_alter_districtelectionprogrampage_guarantor.py @@ -1,19 +1,27 @@ # Generated by Django 4.0.7 on 2022-08-11 19:26 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('district', '0097_alter_districtelectioncampaignpage_show_program_points_inline'), + ( + "district", + "0097_alter_districtelectioncampaignpage_show_program_points_inline", + ), ] operations = [ migrations.AlterField( - model_name='districtelectionprogrampage', - name='guarantor', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='district.districtpersonpage', verbose_name='Garant'), + model_name="districtelectionprogrampage", + name="guarantor", + field=models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.PROTECT, + to="district.districtpersonpage", + verbose_name="Garant", + ), ), ] diff --git a/district/migrations/0099_alter_districtelectionprogrampage_guarantor.py b/district/migrations/0099_alter_districtelectionprogrampage_guarantor.py index 8e544f7b66370d01bd00bd000815b56681c91b2f..efa783cff3fc1cbe9d1abf7552db098b4d7555d6 100644 --- a/district/migrations/0099_alter_districtelectionprogrampage_guarantor.py +++ b/district/migrations/0099_alter_districtelectionprogrampage_guarantor.py @@ -1,19 +1,25 @@ # Generated by Django 4.0.7 on 2022-08-11 19:27 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('district', '0098_alter_districtelectionprogrampage_guarantor'), + ("district", "0098_alter_districtelectionprogrampage_guarantor"), ] operations = [ migrations.AlterField( - model_name='districtelectionprogrampage', - name='guarantor', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='district.districtpersonpage', verbose_name='Garant'), + model_name="districtelectionprogrampage", + name="guarantor", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + to="district.districtpersonpage", + verbose_name="Garant", + ), ), ] diff --git a/district/migrations/0100_districtarticlepage_thumb_image.py b/district/migrations/0100_districtarticlepage_thumb_image.py index 12c954948ef149462e6bbd748de5b92d51840a31..b42a55c3c501660431051f6d845d3404d7b02f84 100644 --- a/district/migrations/0100_districtarticlepage_thumb_image.py +++ b/district/migrations/0100_districtarticlepage_thumb_image.py @@ -1,20 +1,27 @@ # Generated by Django 4.0.7 on 2022-09-05 12:16 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('wagtailimages', '0024_index_image_file_hash'), - ('district', '0099_alter_districtelectionprogrampage_guarantor'), + ("wagtailimages", "0024_index_image_file_hash"), + ("district", "0099_alter_districtelectionprogrampage_guarantor"), ] operations = [ migrations.AddField( - model_name='districtarticlepage', - name='thumb_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='thumb_image', to='wagtailimages.image', verbose_name='náhledový obrázek'), + model_name="districtarticlepage", + name="thumb_image", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="thumb_image", + to="wagtailimages.image", + verbose_name="náhledový obrázek", + ), ), ] diff --git a/district/migrations/0102_alter_districtarticlepage_content_and_more.py b/district/migrations/0102_alter_districtarticlepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..2ab8bc97f40e8a81c1d0234009a3a2be156ee096 --- /dev/null +++ b/district/migrations/0102_alter_districtarticlepage_content_and_more.py @@ -0,0 +1,66396 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +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 = [ + ("district", "0101_alter_districtarticlepage_content_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="districtarticlepage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + use_json_field=True, + verbose_name="Článek", + ), + ), + migrations.AlterField( + model_name="districtcenterpage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), + ), + migrations.AlterField( + model_name="districtcenterpage", + name="sidebar_content", + field=wagtail.fields.StreamField( + [ + ( + "map", + 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, + ), + ), + ] + ), + ), + ( + "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, + ), + ), + ], + label="YouTube video", + ), + ), + ( + "address", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "map_image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek mapy", required=False + ), + ), + ( + "map_link", + wagtail.blocks.URLBlock( + label="Odkaz na detail mapy", required=False + ), + ), + ( + "address", + wagtail.blocks.TextBlock( + label="Adresa", required=True + ), + ), + ( + "address_info", + wagtail.blocks.TextBlock( + label="Info k adrese", required=False + ), + ), + ] + ), + ), + ( + "contact", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "contact_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ) + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah bočního panelu", + ), + ), + migrations.AlterField( + model_name="districtcontactpage", + name="contact_people", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Kontakty", + ), + ), + 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.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 odkazu", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Karty rozcestníku", + ), + ), + migrations.AlterField( + model_name="districtcrossroadpage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ( + "group_title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + label="List osob", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah stránky", + ), + ), + migrations.AlterField( + model_name="districtcustompage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ( + "group_title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + label="List osob", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), + ), + migrations.AlterField( + model_name="districtelectioncampaignpage", + name="candidates", + field=wagtail.fields.StreamField( + [ + ( + "candidates", + wagtail.blocks.StructBlock( + [ + ( + "candidate_list", + wagtail.blocks.StreamBlock( + [ + ( + "person_page", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ( + "person_block", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Jméno a příjmení", + max_length=128, + required=True, + ), + ), + ( + "job", + wagtail.blocks.CharBlock( + help_text="Např. 'Informatik'", + label="Povolání", + max_length=128, + required=False, + ), + ), + ( + "profile_photo", + wagtail.images.blocks.ImageChooserBlock( + label="Profilová fotka", + required=False, + ), + ), + ( + "email", + wagtail.blocks.EmailBlock( + label="Email", + required=False, + ), + ), + ( + "city", + wagtail.blocks.CharBlock( + label="Město/obec", + max_length=64, + required=False, + ), + ), + ( + "age", + wagtail.blocks.IntegerBlock( + label="Věk", + required=False, + ), + ), + ( + "is_pirate", + wagtail.blocks.BooleanBlock( + default=True, + label="Je členem Pirátské strany?", + required=False, + ), + ), + ( + "other_party", + wagtail.blocks.CharBlock( + label="Strana", + max_length=64, + required=False, + ), + ), + ( + "other_party_logo", + wagtail.images.blocks.ImageChooserBlock( + help_text="Vyplňte pokud osoba není Pirát", + label="Logo strany", + required=False, + ), + ), + ( + "facebook_url", + wagtail.blocks.URLBlock( + label="Odkaz na Facebook", + required=False, + ), + ), + ( + "instagram_url", + wagtail.blocks.URLBlock( + label="Odkaz na Instagram", + required=False, + ), + ), + ( + "twitter_url", + wagtail.blocks.URLBlock( + label="Odkaz na Twitter", + required=False, + ), + ), + ( + "youtube_url", + wagtail.blocks.URLBlock( + label="Odkaz na Youtube kanál", + required=False, + ), + ), + ( + "flickr_url", + wagtail.blocks.URLBlock( + label="Odkaz na Flickr", + required=False, + ), + ), + ] + ), + ), + ], + label="Kandidáti", + ), + ), + ( + "candidate_list_big_count", + wagtail.blocks.IntegerBlock( + default=7, + label="Počet kanditátů s velkým náhledem", + ), + ), + ( + "candidate_list_shown_count", + wagtail.blocks.IntegerBlock( + default=16, + label="Počet zobrazených kandidátů při načtení stránky (včetně velkých náhledů)", + ), + ), + ( + "cta_text", + wagtail.blocks.CharBlock( + label="Text 'call-to-action' baneru", + required=False, + ), + ), + ( + "cta_link", + wagtail.blocks.URLBlock( + label="Odkaz 'call-to-action' baneru", + required=False, + ), + ), + ( + "cta_button_text", + wagtail.blocks.CharBlock( + label="Text tlačítka 'call-to-action' baneru", + max_length=24, + required=False, + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Kandidátní listina", + ), + ), + migrations.AlterField( + model_name="districtelectioncampaignpage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), + ), + migrations.AlterField( + model_name="districtelectioncampaignpage", + name="hero_cta_buttons", + field=wagtail.fields.StreamField( + [ + ( + "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", + ), + ) + ] + ), + ) + ], + blank=True, + help_text="Použije se v hlavním banneru.", + null=True, + use_json_field=True, + verbose_name="CTAs pro banner", + ), + ), + migrations.AlterField( + model_name="districtelectionprogrampage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), + ), + migrations.AlterField( + model_name="districtgeofeaturecollectionpage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ( + "group_title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + label="List osob", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah úvodní", + ), + ), + migrations.AlterField( + model_name="districtgeofeaturecollectionpage", + name="content_after", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ( + "group_title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + label="List osob", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah za mapou", + ), + ), + migrations.AlterField( + model_name="districtgeofeaturecollectionpage", + name="content_footer", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ( + "group_title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + label="List osob", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah v patičkové části", + ), + ), + migrations.AlterField( + model_name="districtgeofeaturecollectionpage", + name="hero_cta_buttons", + field=wagtail.fields.StreamField( + [ + ( + "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", + ), + ) + ] + ), + ) + ], + blank=True, + help_text="Použije se v hlavním banneru.", + null=True, + use_json_field=True, + verbose_name="CTAs pro banner", + ), + ), + migrations.AlterField( + model_name="districtgeofeaturedetailpage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ( + "group_title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + label="List osob", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), + ), + migrations.AlterField( + model_name="districthomepage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("auto", "Automaticky"), + ("center", "Na střed"), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah stránky", + ), + ), + migrations.AlterField( + model_name="districthomepage", + name="footer_person_list", + field=wagtail.fields.StreamField( + [ + ( + "footer_person_list", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Osoby v zápatí webu", + ), + ), + migrations.AlterField( + model_name="districthomepage", + 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 + ), + ), + ] + ) + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Menu", + ), + ), + migrations.AlterField( + model_name="districthomepage", + name="subheader", + field=wagtail.fields.StreamField( + [ + ( + "header_full_size", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "image_background", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek v pozadí", required=True + ), + ), + ( + "image_foreground", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek v popředí", required=False + ), + ), + ( + "button_group", + 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", + ), + ), + ] + ), + ), + ( + "header_simple", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", required=False + ), + ), + ( + "subtitle", + wagtail.blocks.CharBlock( + label="Podtitulek", required=False + ), + ), + ("image", wagtail.images.blocks.ImageChooserBlock()), + ] + ), + ), + ( + "header", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Nap", label="Titulek", required=False + ), + ), + ("image", wagtail.images.blocks.ImageChooserBlock()), + ( + "button_text", + wagtail.blocks.CharBlock( + label="Text tlačítka", required=False + ), + ), + ( + "button_link", + wagtail.blocks.URLBlock( + label="Odkaz tlačítka", required=False + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Blok pod headerem", + ), + ), + migrations.AlterField( + model_name="districtinteractiveprogrampage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "interactive_program_block", + wagtail.blocks.StructBlock( + [ + ( + "name", + wagtail.blocks.CharBlock( + label="Název části programu", required=True + ), + ), + ( + "heading", + wagtail.blocks.CharBlock( + label="Nadpis", required=True + ), + ), + ( + "description", + wagtail.blocks.RichTextBlock( + blank=True, + label="Krátký popis, BEZ BODŮ", + required=False, + ), + ), + ( + "icon", + wagtail.blocks.ChoiceBlock( + choices=[ + ("verejne-sluzby", "Veřejné služby"), + ("zdravotni-pece", "Zdravotní péče"), + ("sport", "Sport"), + ("sport-plavec", "Sport - plavec"), + ("socialni-politika", "Sociální politika"), + ("aktivni-verejnost", "Aktivní veřejnost"), + ("priroda", "Příroda"), + ("vzdelavani", "Vzdělávání"), + ("kultura", "Kultura"), + ("otevrena-radnice", "Otevřená radnice"), + ("cestovni-ruch", "Cestovní ruch"), + ("doprava", "Doprava"), + ("bydleni", "Bydlení"), + ], + label="Ikona", + ), + ), + ( + "program_items", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "content", + wagtail.blocks.RichTextBlock( + label="Obsah", required=True + ), + ) + ] + ), + label="Seznam bodů", + required=True, + ), + ), + ] + ), + ) + ], + use_json_field=True, + verbose_name="Části programu", + ), + ), + migrations.AlterField( + model_name="districtpeoplepage", + 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", + ), + ), + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ( + "group_title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + label="List osob", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah stránky", + ), + ), + migrations.AlterField( + model_name="districtpersonpage", + name="other_urls", + field=wagtail.fields.StreamField( + [ + ( + "other_url", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Název", required=True + ), + ), + ( + "url", + wagtail.blocks.URLBlock(label="URL", required=True), + ), + ( + "custom_icon", + wagtail.blocks.CharBlock( + help_text="Pro vlastní ikonku zadejde název ikonky z https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons (bez tečky), např. 'ico--beer'", + label="Vlastní ikonka ze styleguide", + required=False, + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Další odkaz", + ), + ), + migrations.AlterField( + model_name="districtpostelectionstrategypage", + 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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), + ), + migrations.AlterField( + model_name="districtprogrampage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "static_program_block", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Titulek bloku", required=True + ), + ), + ( + "perex", + wagtail.blocks.TextBlock( + label="Krátký text pod nadpisem", required=True + ), + ), + ( + "person", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + ), + ( + "completion_percentage", + wagtail.blocks.IntegerBlock( + label="Procento dokončení", required=True + ), + ), + ( + "program_items", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Název", required=True + ), + ), + ( + "completion_percentage", + wagtail.blocks.IntegerBlock( + label="Procento dokončení", + required=True, + ), + ), + ( + "issue_link", + wagtail.blocks.URLBlock( + label="Odkaz na Redmine issue", + required=False, + ), + ), + ] + ), + label="Seznam bodů", + ), + ), + ] + ), + ), + ( + "redmine_program_block", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Titulek bloku", required=True + ), + ), + ( + "perex", + wagtail.blocks.TextBlock( + label="Krátký text pod nadpisem", required=True + ), + ), + ( + "person", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + ), + ( + "redmine_issue", + wagtail.blocks.IntegerBlock( + label="Číslo Redmine issue", required=True + ), + ), + ( + "completion_percentage", + wagtail.blocks.IntegerBlock( + help_text="Hodnota se automaticky načte s Redmine", + label="Procento dokončení - bude doplněno automaticky", + required=False, + ), + ), + ( + "program_items", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Název", required=True + ), + ), + ( + "completion_percentage", + wagtail.blocks.IntegerBlock( + label="Procento dokončení", + required=True, + ), + ), + ( + "issue_link", + wagtail.blocks.URLBlock( + label="Odkaz na Redmine issue", + required=False, + ), + ), + ] + ), + help_text="Hodnota se automaticky načte s Redmine", + label="Seznam bodů - bude doplněno automaticky", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + ] diff --git a/district/migrations/0103_alter_districtarticletag_content_object_and_more.py b/district/migrations/0103_alter_districtarticletag_content_object_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..411bcdebba0c5c12d040ac6a0030de010b8cf4dc --- /dev/null +++ b/district/migrations/0103_alter_districtarticletag_content_object_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.1.5 on 2023-01-31 19:42 + +import django.db.models.deletion +import modelcluster.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("district", "0102_alter_districtarticlepage_content_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="districtarticletag", + name="content_object", + field=modelcluster.fields.ParentalKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="tagged_items", + to="district.districtarticlepage", + ), + ), + migrations.AlterField( + model_name="districtpersontag", + name="content_object", + field=modelcluster.fields.ParentalKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="tagged_items", + to="district.districtpersonpage", + ), + ), + ] diff --git a/district/models.py b/district/models.py index 74a093b60229ce24d7f976a34e47a8e6d6388236..fbbc7e3c4497ee1bbeb3464551ff089748c786f0 100644 --- a/district/models.py +++ b/district/models.py @@ -71,6 +71,7 @@ class DistrictHomePage( ], verbose_name="Blok pod headerem", blank=True, + use_json_field=True, ) content = StreamField( @@ -85,6 +86,7 @@ class DistrictHomePage( ], verbose_name="Obsah stránky", blank=True, + use_json_field=True, ) articles_title = models.CharField("Nadpis článků", max_length=256) @@ -177,6 +179,7 @@ class DistrictHomePage( verbose_name="Osoby v zápatí webu", blank=True, max_num=6, + use_json_field=True, ) # settings @@ -336,7 +339,9 @@ class DistrictHomePage( class DistrictArticleTag(TaggedItemBase): content_object = ParentalKey( - "district.DistrictArticlePage", on_delete=models.CASCADE + "district.DistrictArticlePage", + on_delete=models.CASCADE, + related_name="tagged_items", ) @@ -546,6 +551,7 @@ class DistrictContactPage( [("item", blocks.PersonCustomPositionBlock())], verbose_name="Kontakty", blank=True, + use_json_field=True, ) text = RichTextField("Text", blank=True, features=RICH_TEXT_DEFAULT_FEATURES) @@ -573,7 +579,9 @@ class DistrictContactPage( class DistrictPersonTag(TaggedItemBase): content_object = ParentalKey( - "district.DistrictPersonPage", on_delete=models.CASCADE + "district.DistrictPersonPage", + on_delete=models.CASCADE, + related_name="tagged_items", ) @@ -642,6 +650,7 @@ class DistrictPersonPage( [("other_url", blocks.PersonUrlBlock())], verbose_name="Další odkaz", blank=True, + use_json_field=True, ) ### PANELS @@ -753,6 +762,7 @@ class DistrictPeoplePage( ], verbose_name="Obsah stránky", blank=True, + use_json_field=True, ) ### PANELS @@ -786,6 +796,7 @@ class DistrictElectionBasePage( ], verbose_name="Obsah", blank=True, + use_json_field=True, ) ### PANELS @@ -906,6 +917,7 @@ class DistrictElectionCampaignPage(DistrictElectionBasePage): ], verbose_name="Kandidátní listina", blank=True, + use_json_field=True, ) candidate_list_title = models.CharField( "Titulek kandidátní listiny", @@ -948,6 +960,7 @@ class DistrictElectionCampaignPage(DistrictElectionBasePage): blank=True, null=True, help_text="Použije se v hlavním banneru.", + use_json_field=True, ) hero_image = models.ForeignKey( "wagtailimages.Image", @@ -1096,6 +1109,7 @@ class DistrictInteractiveProgramPage( [("interactive_program_block", blocks.InteractiveProgramBlock())], verbose_name="Části programu", blank=False, + use_json_field=True, ) ### PANELS @@ -1144,6 +1158,7 @@ class DistrictProgramPage( ], verbose_name="obsah stránky", blank=True, + use_json_field=True, ) ### PANELS @@ -1199,6 +1214,7 @@ class DistrictCenterPage( ], verbose_name="Obsah", blank=True, + use_json_field=True, ) text = RichTextField("Text", blank=True, null=True) sidebar_content = StreamField( @@ -1212,6 +1228,7 @@ class DistrictCenterPage( ], verbose_name="Obsah bočního panelu", blank=True, + use_json_field=True, ) ### PANELS @@ -1285,6 +1302,7 @@ class DistrictCrossroadPage( [("cards", blocks.CardLinkWithHeadlineBlock())], verbose_name="Karty rozcestníku", blank=True, + use_json_field=True, ) content = StreamField( @@ -1295,6 +1313,7 @@ class DistrictCrossroadPage( ], verbose_name="Obsah stránky", blank=True, + use_json_field=True, ) ### PANELS @@ -1345,6 +1364,7 @@ class DistrictCustomPage( ], verbose_name="Obsah", blank=True, + use_json_field=True, ) ### PANELS @@ -1381,6 +1401,7 @@ class DistrictGeoFeatureCollectionPage( blank=True, null=True, help_text="Použije se v hlavním banneru.", + use_json_field=True, ) content = StreamField( DEFAULT_CONTENT_BLOCKS @@ -1390,6 +1411,7 @@ class DistrictGeoFeatureCollectionPage( ], verbose_name="Obsah úvodní", blank=True, + use_json_field=True, ) content_after = StreamField( DEFAULT_CONTENT_BLOCKS @@ -1399,6 +1421,7 @@ class DistrictGeoFeatureCollectionPage( ], verbose_name="Obsah za mapou", blank=True, + use_json_field=True, ) content_footer = StreamField( DEFAULT_CONTENT_BLOCKS @@ -1408,6 +1431,7 @@ class DistrictGeoFeatureCollectionPage( ], verbose_name="Obsah v patičkové části", blank=True, + use_json_field=True, ) image = models.ForeignKey( "wagtailimages.Image", @@ -1619,6 +1643,7 @@ class DistrictGeoFeatureDetailPage( ], verbose_name="Obsah", blank=True, + use_json_field=True, ) parts_section_title = models.CharField( "Titulek přehledu součástí", diff --git a/district/static/district/css/custom.css b/district/static/district/css/custom.css index f45c4d4ea0abdbf863d3341d27dfc1ff8d237560..303385ff23b7ad0b7b5c672f695cc065192cbc57 100644 --- a/district/static/district/css/custom.css +++ b/district/static/district/css/custom.css @@ -138,7 +138,7 @@ /* Special button images */ #button-odebirej-novinky::before, -#button-pridej-se-k-nam::before, +#button-pridej-se-k-nam::before, #button-prihod-do-truhly::before { background-size: cover; position: absolute; @@ -233,22 +233,22 @@ background-size: 80%; padding-top: 18%; } - + .content-wrapper { flex-direction: column; justify-content: center; } - + .topic-wrapper { align-items: stretch; width: 100%; flex-basis: 100%; } - + .topic { flex-basis: calc(33.3% - 5px); } - + .topic-content-wrapper { height: 463px; flex-basis: 463px; diff --git a/district/static/district/fonts/bebas-neue/style.css b/district/static/district/fonts/bebas-neue/style.css index 272aab602245003026693882c7d16115dd0c302e..381c6aed38edffedf3356513bd8358ed44808d3d 100644 --- a/district/static/district/fonts/bebas-neue/style.css +++ b/district/static/district/fonts/bebas-neue/style.css @@ -4,7 +4,7 @@ font-weight: normal; src: local('Bebas Neue'), url('BebasNeue.woff') format('woff'); } - + @font-face { font-family: 'Bebas Neue'; font-style: normal; diff --git a/district/static/district/js/jquery-3.1.0.min.js b/district/static/district/js/jquery-3.1.0.min.js index 0880130266c7a8b61d8bbf6d727823fe476fb9a6..42560d4c4147617a90b41206668acd58ee68903e 100644 --- a/district/static/district/js/jquery-3.1.0.min.js +++ b/district/static/district/js/jquery-3.1.0.min.js @@ -1,4 +1,4 @@ /*! jQuery v3.1.0 | (c) jQuery Foundation | jquery.org/license */ !function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0, r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:X.test(c)?JSON.parse(c):c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),aa=["Top","Right","Bottom","Left"],ba=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ca=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function da(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&_.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ea={};function fa(a){var b,c=a.ownerDocument,d=a.nodeName,e=ea[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ea[d]=e,e)}function ga(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ba(d)&&(e[f]=fa(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ga(this,!0)},hide:function(){return ga(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ba(this)?r(this).show():r(this).hide()})}});var ha=/^(?:checkbox|radio)$/i,ia=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ja=/^$|\/(?:java|ecma)script/i,ka={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var na=/<|&#?\w+;/;function oa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(na.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ia.exec(f)||["",""])[1].toLowerCase(),i=ka[h]||ka._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),"script"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;c<h;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==va()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===va()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ta:ua,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:ua,isPropagationStopped:ua,isImmediatePropagationStopped:ua,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ta,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ta,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ta,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&qa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ra.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return wa(this,a,b,c,d)},one:function(a,b,c,d){return wa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=ua),this.each(function(){r.event.remove(this,a,c,b)})}});var xa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ya=/<script|<style|<link/i,za=/checked\s*(?:[^=]|=\s*.checked.)/i,Aa=/^true\/(.*)/,Ba=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ca(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ga(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ha.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ha(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,"script"),Da),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,la(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ea),l=0;l<i;l++)j=h[l],ja.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ba,""),k))}return a}function Ia(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(la(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&ma(la(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(xa,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);if(b)if(c)for(f=f||la(a),g=g||la(h),d=0,e=f.length;d<e;d++)Fa(f[d],g[d]);else Fa(a,h);return g=la(h,"script"),g.length>0&&ma(g,!i&&la(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(la(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(la(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ja=/^margin/,Ka=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),La=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",pa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,pa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Ma(a,b,c){var d,e,f,g,h=a.style;return c=c||La(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ka.test(g)&&Ja.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Na(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Oa=/^(none|table(?!-c[ea]).+)/,Pa={position:"absolute",visibility:"hidden",display:"block"},Qa={letterSpacing:"0",fontWeight:"400"},Ra=["Webkit","Moz","ms"],Sa=d.createElement("div").style;function Ta(a){if(a in Sa)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ra.length;while(c--)if(a=Ra[c]+b,a in Sa)return a}function Ua(a,b,c){var d=_.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Va(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+aa[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+aa[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+aa[f]+"Width",!0,e))):(g+=r.css(a,"padding"+aa[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+aa[f]+"Width",!0,e)));return g}function Wa(a,b,c){var d,e=!0,f=La(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Ma(a,b,f),(d<0||null==d)&&(d=a.style[b]),Ka.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Va(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ma(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=_.exec(c))&&e[1]&&(c=da(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Ma(a,b,d)),"normal"===e&&b in Qa&&(e=Qa[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Oa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Wa(a,b,d):ca(a,Pa,function(){return Wa(a,b,d)})},set:function(a,c,d){var e,f=d&&La(a),g=d&&Va(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=_.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ua(a,c,g)}}}),r.cssHooks.marginLeft=Na(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Ma(a,"marginLeft"))||a.getBoundingClientRect().left-ca(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+aa[d]+b]=f[d]||f[d-2]||f[0];return e}},Ja.test(a)||(r.cssHooks[a+b].set=Ua)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=La(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=aa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function eb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ba(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],$a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ga([a],!0),j=a.style.display||j,k=r.css(a,"display"),ga([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ga([a],!0),m.done(function(){p||ga([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=db(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function fb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function gb(a,b,c){var d,e,f=0,g=gb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||bb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ya||bb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(fb(k,j.opts.specialEasing);f<g;f++)if(d=gb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,db,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(gb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return da(c.elem,a,_.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],gb.tweeners[c]=gb.tweeners[c]||[],gb.tweeners[c].unshift(b)},prefilters:[eb],prefilter:function(a,b){b?gb.prefilters.unshift(a):gb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:e.duration="number"==typeof e.duration?e.duration:e.duration in r.fx.speeds?r.fx.speeds[e.duration]:r.fx.speeds._default,null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ba).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=gb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&_a.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(cb(b,!0),a,d,e)}}),r.each({slideDown:cb("show"),slideUp:cb("hide"),slideToggle:cb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Ya=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Ya=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){Za||(Za=a.requestAnimationFrame?a.requestAnimationFrame(ab):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(Za):a.clearInterval(Za),Za=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var hb,ib=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K); - if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){if(c)return c=Ma(a,b),Ka.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r}); \ No newline at end of file + if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){if(c)return c=Ma(a,b),Ka.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r}); diff --git a/district/static/district/js/ui.js b/district/static/district/js/ui.js index a3f7ec60a41cc3193c4415875aaa86fb8eb3e598..2de82758d0078401d9ec9b0df247d862b9de689a 100644 --- a/district/static/district/js/ui.js +++ b/district/static/district/js/ui.js @@ -3,34 +3,34 @@ $(window).ready( const modalScript = document.createElement("script"); modalScript.src = "/static/district/js/jquery.modal.js"; document.head.append(modalScript); - + $(".topic-content-wrapper").css( "max-height", `${Math.ceil($(".topic").length / 3) * 115.75}px` ) - + $(".topic").on( "click", function(event) { $(".topic").removeClass("topic-selected"); $(".topic-content").css("display", "none"); - + const element = $(event.currentTarget); - + if (element.hasClass("topic-selected")) { element.removeClass("topic-selected"); } else { element.addClass("topic-selected"); - + $(".topic-content-wrapper").html(element.children(".block-topic-content").html()); - + $(".program-point-share").on( "click", function(event) { $("#share-form").modal(); - + const topicParent = event.currentTarget.parentNode.parentNode; - + const shareTextElement = $("#share-text"); const renderedSharedText = ( "„" @@ -39,10 +39,10 @@ $(window).ready( + "“\n\n" + window.location.href ); - + shareTextElement.html(renderedSharedText); shareTextElement.select(); - + $("#share-diaspora")[0].onclick = function(event) { window.open( ( @@ -55,12 +55,12 @@ $(window).ready( "location=no,links=no,scrollbars=no,toolbar=no,width=620,height=550" ); } - + $("#share-twitter").attr( "href", `https://twitter.com/share?text=${encodeURIComponent(renderedSharedText)}` ); - + $("#share-facebook").attr( "href", `https://facebook.com/sharer/sharer.php?u=${encodeURIComponent(window.location.href)}` @@ -70,9 +70,9 @@ $(window).ready( } } ); - + $(".topic")[0].click(); - + $("#js-program").css("display", "block"); } ); diff --git a/district/templates/district/base.html b/district/templates/district/base.html index 04ae5e94513d7c79c2d641f63451499beb87cd6f..c621364257e59fc041e38f02205a80f8fe1840c8 100644 --- a/district/templates/district/base.html +++ b/district/templates/district/base.html @@ -2,6 +2,9 @@ <!doctype html> <html lang="cs"> <head> + {% if request.in_preview_panel %} + <base target="_blank"> + {% endif %} <!-- Meta --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width" /> diff --git a/district/templates/district/blocks/interactive_program_block.html b/district/templates/district/blocks/interactive_program_block.html index 9b1209ab2c776ebff5d0be1d2b2fb88b101877c6..5396d7b87d885934b5149ff75323f477b6342504 100644 --- a/district/templates/district/blocks/interactive_program_block.html +++ b/district/templates/district/blocks/interactive_program_block.html @@ -2,23 +2,23 @@ <section class="topic"> <label>{{ self.name }}</label> - + <svg> <use xlink:href="{% static 'district/svg/theme-icons/' %}{{ self.icon }}.svg#icon"></use> </svg> - + <div style="display:none" aria-hidden="true" class="block-topic-content"> <div class="program-header-wrapper"> <h2>{{ self.heading }}</h2> {{ self.description }} </div> - + {% for item in self.program_items %} <div class="program-point-wrapper"> <div class="program-point-content-wrapper"> {{ item.content }} </div> - + <div class="program-point-button-wrapper"> <svg class="program-point-share" title="Sdílet"> <use xlink:href="{% static 'district/svg/share.svg#icon' %}"></use> diff --git a/district/templates/district/district_interactive_program_page.html b/district/templates/district/district_interactive_program_page.html index 648e25664630ec0c983f3f40a52451aa54a4db3e..065b10f2d1c1536ead789d52b0f604170842a1b9 100644 --- a/district/templates/district/district_interactive_program_page.html +++ b/district/templates/district/district_interactive_program_page.html @@ -51,18 +51,18 @@ <br> <small>I bez JavaScriptu máme program! :)</small> <br> - + {% for block in page.content %} <h2>{{ block.value.name }}</h2> <p>{{ block.value.description }}</p> - + {% for item in block.value.program_items %} {{ item.content }} {% endfor %} {% endfor %} </section> </noscript> - + <section class="main-wrapper" id="js-program" style="display:none"> <div class="content-wrapper"> <section class="topic-wrapper"> @@ -70,24 +70,24 @@ {% include_block block %} {% endfor %} </section> - + <section class="topic-content-wrapper"></section> </div> </section> - + <section class="buttons-wrapper"> <a class="bottom-button" id="button-odebirej-novinky" href="https://nalodeni.pirati.cz/news/all/" >Odebírej<br>Novinky</a> - + <a class="bottom-button" id="button-pridej-se-k-nam" href="https://nalodeni.pirati.cz/" >Přidej se<br>k nám!</a> - + <a class="bottom-button" id="button-prihod-do-truhly" @@ -96,10 +96,10 @@ </section> </section> </div> - + <section id="share-form" class="modal"> <h2>Sdílení je aktem lásky.</h2> - + <textarea id="share-text" rows="5"></textarea> <section class="share-icon-wrapper"> @@ -119,7 +119,7 @@ > </label> </div> - + <a id="share-diaspora" class="share-icon" @@ -131,7 +131,7 @@ height="40" width="40" ></a> - + <a id="share-twitter" class="share-icon" @@ -143,7 +143,7 @@ height="40" width="40" ></a> - + <a id="share-facebook" class="share-icon" @@ -157,7 +157,7 @@ ></a> </section> </section> - + <script type="text/javascript" src="{% static 'district/js/ui.js' %}" diff --git a/districts/templates/districts/base.html b/districts/templates/districts/base.html index 3eaf69f8516764c9286bc1e5b683139386489439..a03dd942c474bf1c9503075f584f9c5903d931d4 100644 --- a/districts/templates/districts/base.html +++ b/districts/templates/districts/base.html @@ -2,6 +2,9 @@ <!doctype html> <html lang="cs"> <head> + {% if request.in_preview_panel %} + <base target="_blank"> + {% endif %} <!-- Font loader --> <script type="text/javascript"> diff --git a/donate/migrations/0025_alter_donateprojectpage_crowdfunding_and_more.py b/donate/migrations/0025_alter_donateprojectpage_crowdfunding_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..9e2cfb011c34bfd4bf4ecfc916db79a7a21528b8 --- /dev/null +++ b/donate/migrations/0025_alter_donateprojectpage_crowdfunding_and_more.py @@ -0,0 +1,84 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("donate", "0024_donateprojectpage_crowdfunding"), + ] + + operations = [ + migrations.AlterField( + model_name="donateprojectpage", + name="crowdfunding", + field=wagtail.fields.StreamField( + [ + ( + "reward_block", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock(label="Název odměny"), + ), + ( + "description", + wagtail.blocks.CharBlock( + label="Popis", max_length=255, required=False + ), + ), + ("amount", wagtail.blocks.IntegerBlock(label="Částka")), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek" + ), + ), + ( + "delivery_date", + wagtail.blocks.DateBlock( + label="Datum dodání", required=False + ), + ), + ( + "reward_id", + wagtail.blocks.IntegerBlock( + label="ID odměny", required=True + ), + ), + ( + "variant_list", + wagtail.blocks.ListBlock( + wagtail.blocks.CharBlock( + help_text="Například velikost: S", + label="Varianta", + max_length=12, + ), + label="Varianty", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Crowdfunding bloky", + ), + ), + migrations.AlterField( + model_name="donateprojectpage", + name="gallery", + field=wagtail.fields.StreamField( + [("photo", wagtail.images.blocks.ImageChooserBlock(label="fotka"))], + blank=True, + use_json_field=True, + verbose_name="galerie fotek", + ), + ), + ] diff --git a/donate/models.py b/donate/models.py index a52d701d2a9f5a51898f3bc1020bbe59b5614531..bf493a729f9cd4b7e8bd86bac5784a0f565dbfc0 100644 --- a/donate/models.py +++ b/donate/models.py @@ -42,13 +42,13 @@ class DonateFormMixin(models.Model): class Meta: abstract = True - def serve(self, request): + def serve(self, request, *args, **kwargs): if request.method == "POST": form = DonateForm(request.POST) if form.is_valid(): url = form.get_redirect_url() return redirect(url) - return super().serve(request) + return super().serve(request, *args, **kwargs) @property def show_donate_form(self): @@ -319,7 +319,7 @@ class DonateRegionPage( content_panels = Page.content_panels + [ FieldPanel("main_title"), - FieldPanel("body", classname="full"), + FieldPanel("body"), ] promote_panels = make_promote_panels( @@ -449,6 +449,7 @@ class DonateProjectPage( [("photo", ImageChooserBlock(label="fotka"))], verbose_name="galerie fotek", blank=True, + use_json_field=True, ) form_title = models.CharField( "titulek formuláře", @@ -466,6 +467,7 @@ class DonateProjectPage( [("reward_block", CrowdfundingRewardBlock())], verbose_name="Crowdfunding bloky", blank=True, + use_json_field=True, ) ### PANELS @@ -476,7 +478,7 @@ class DonateProjectPage( "info do přehledu projektů", ), FieldPanel("date"), - FieldPanel("body", classname="full"), + FieldPanel("body"), FieldPanel("gallery"), ] @@ -591,7 +593,7 @@ class DonateTextPage(Page, ExtendedMetadataPageMixin, SubpageMixin, MetadataPage ### PANELS - content_panels = Page.content_panels + [FieldPanel("body", classname="full")] + content_panels = Page.content_panels + [FieldPanel("body")] promote_panels = make_promote_panels() @@ -625,7 +627,7 @@ class DonateInfoPage( ### PANELS - content_panels = Page.content_panels + [FieldPanel("body", classname="full")] + content_panels = Page.content_panels + [FieldPanel("body")] promote_panels = make_promote_panels() @@ -791,7 +793,7 @@ class DonateSecretPreviewPage(Page): verbose_name = "Skrytá stránka pro náhled konceptu" def get_context(self, request, *args, **kwargs): - parent_page = self.get_parent().get_latest_revision_as_page() + parent_page = self.get_parent().get_latest_revision_as_object() context = parent_page.get_context(request=request) context.update({"disable_robots": True}) @@ -799,7 +801,7 @@ class DonateSecretPreviewPage(Page): return context def get_template(self, request, *args, **kwargs): - parent_page = self.get_parent().get_latest_revision_as_page() + parent_page = self.get_parent().get_latest_revision_as_object() return parent_page.get_template(request, *args, **kwargs) def serve(self, request, *args, **kwargs): diff --git a/donate/templates/donate/base.html b/donate/templates/donate/base.html index ec555c97045fe360f74b2d569a11a97a021a289f..ebe83001416a47e005c5c925982b157af90d0332 100644 --- a/donate/templates/donate/base.html +++ b/donate/templates/donate/base.html @@ -2,6 +2,9 @@ <!doctype html> <html lang="cs"> <head> + {% if request.in_preview_panel %} + <base target="_blank"> + {% endif %} <!-- Font loader --> <script type="text/javascript"> @@ -106,6 +109,14 @@ <a class="nav-link" href="{{ page.root_page.regions_page_url }}">Kraje</a> </li> </ul> + {% if page.root_page.custom_url_1 and page.root_page.custom_url_1_text %} + <a href="{{ page.root_page.custom_url_1 }}" class="d-block d-lg-none mb-3 header_link header_link--desktop" target="_blank" + rel="noreferrer"><i class="icon-external-link mr-2" title="Ikona odkazu"></i>{{ page.root_page.custom_url_1_text }}</a> + {% endif %} + {% if page.root_page.custom_url_2 and page.root_page.custom_url_2_text %} + <a href="{{ page.root_page.custom_url_2 }}" class="d-block d-lg-none mb-3 header_link header_link--desktop" target="_blank" + rel="noreferrer"><i class="icon-external-link mr-2" title="Ikona odkazu"></i>{{ page.root_page.custom_url_2_text }}</a> + {% endif %} <a href="https://www.pirati.cz/" class="d-block d-lg-none mb-3 header_link header_link--mobile" target="_blank" rel="noreferrer"><i class="icon-external-link mr-2" title="Ikona odkazu"></i>www.pirati.cz</a> </div><!-- /navigation --> </div><!-- /container --> diff --git a/elections2021/migrations/0052_alter_elections2021articlepage_content_and_more.py b/elections2021/migrations/0052_alter_elections2021articlepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..18f2d8ac73af6025755e859d8ed67b1ecc14b4e9 --- /dev/null +++ b/elections2021/migrations/0052_alter_elections2021articlepage_content_and_more.py @@ -0,0 +1,697 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +import wagtail.blocks +import wagtail.documents.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("elections2021", "0051_remove_elections2021articlepage_text_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="elections2021articlepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "bold", + "italic", + "superscript", + "subscript", + "strikethrough", + "ul-elections2021", + "ol-elections2021", + "blockquote-elections2021", + "link", + "image", + "document-link", + ], + label="Textový editor", + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Článek", + ), + ), + migrations.AlterField( + model_name="elections2021bannerlistpage", + name="banners", + field=wagtail.fields.StreamField( + [ + ( + "banners", + wagtail.blocks.StructBlock( + [ + ("code", wagtail.blocks.CharBlock(label="kód banneru")), + ( + "candidate1", + wagtail.blocks.CharBlock( + label="první kandidát", required=False + ), + ), + ( + "candidate2", + wagtail.blocks.CharBlock( + label="druhý kandidát", required=False + ), + ), + ( + "tagline", + wagtail.blocks.CharBlock( + label="slogan", required=False + ), + ), + ( + "preview", + wagtail.images.blocks.ImageChooserBlock( + label="náhled" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="objednávání plachet", + ), + ), + migrations.AlterField( + model_name="elections2021downloadspage", + name="downloads", + field=wagtail.fields.StreamField( + [ + ( + "document", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="název")), + ( + "photo", + wagtail.images.blocks.ImageChooserBlock( + label="náhled" + ), + ), + ( + "document", + wagtail.documents.blocks.DocumentChooserBlock( + label="dokument" + ), + ), + ] + ), + ), + ( + "spotify", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="název")), + ( + "photo", + wagtail.images.blocks.ImageChooserBlock( + label="náhled" + ), + ), + ( + "url", + wagtail.blocks.URLBlock(label="odkaz na Spotify"), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="soubory ke stažení", + ), + ), + migrations.AlterField( + model_name="elections2021downloadspage", + name="text_downloads", + field=wagtail.fields.StreamField( + [ + ( + "document", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="název")), + ( + "document", + wagtail.documents.blocks.DocumentChooserBlock( + label="dokument" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="textové soubory ke stažení", + ), + ), + migrations.AlterField( + model_name="elections2021governmentteampage", + name="sections", + field=wagtail.fields.StreamField( + [ + ( + "section", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="název")), + ( + "members", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "name", + wagtail.blocks.CharBlock( + label="jméno" + ), + ), + ( + "photo", + wagtail.images.blocks.ImageChooserBlock( + label="fotka" + ), + ), + ( + "occupation", + wagtail.blocks.CharBlock( + label="povolání" + ), + ), + ( + "resume", + wagtail.blocks.TextBlock( + label="medailonek" + ), + ), + ] + ) + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="sekce vládního týmu", + ), + ), + migrations.AlterField( + model_name="elections2021homepage", + name="carousel", + field=wagtail.fields.StreamField( + [ + ( + "slide", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="titulek")), + ( + "photo", + wagtail.images.blocks.ImageChooserBlock( + label="fotka" + ), + ), + ( + "button_label", + wagtail.blocks.CharBlock(label="text tlačítka"), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="stránka do tlačítka", + page_type=[ + "elections2021.Elections2021ArticlesPage", + "elections2021.Elections2021CandidatesListPage", + "elections2021.Elections2021CandidatesMapPage", + "elections2021.Elections2021ProgramPage", + "elections2021.Elections2021QuestionsPage", + "elections2021.Elections2021ProgramAppPage", + "elections2021.Elections2021TextPage", + "elections2021.Elections2021StrategicListPage", + "elections2021.Elections2021StrategicPage", + "elections2021.Elections2021MythsPage", + "elections2021.Elections2021DownloadsPage", + "elections2021.Elections2021GovernmentTeamPage", + "elections2021.Elections2021CalendarPage", + ], + required=False, + ), + ), + ( + "raw_url", + wagtail.blocks.CharBlock( + label="ručně zadaný odkaz do tlačítka (místo stránky)", + required=False, + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="obsah slideru", + ), + ), + migrations.AlterField( + model_name="elections2021homepage", + name="footer_links", + field=wagtail.fields.StreamField( + [ + ( + "link", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="titulek")), + ("url", wagtail.blocks.URLBlock(label="odkaz")), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="odkazy v zápatí", + ), + ), + migrations.AlterField( + model_name="elections2021homepage", + name="footer_menu", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="název")), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="stránka", + page_type=[ + "elections2021.Elections2021ArticlesPage", + "elections2021.Elections2021CandidatesListPage", + "elections2021.Elections2021CandidatesMapPage", + "elections2021.Elections2021ProgramPage", + "elections2021.Elections2021QuestionsPage", + "elections2021.Elections2021ProgramAppPage", + "elections2021.Elections2021TextPage", + "elections2021.Elections2021StrategicListPage", + "elections2021.Elections2021StrategicPage", + "elections2021.Elections2021MythsPage", + "elections2021.Elections2021DownloadsPage", + "elections2021.Elections2021GovernmentTeamPage", + "elections2021.Elections2021CalendarPage", + "elections2021.Elections2021ProgramInNutshellPage", + "elections2021.Elections2021GoingToVotePage", + ], + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="menu projděte si v zápatí", + ), + ), + migrations.AlterField( + model_name="elections2021homepage", + name="header_links", + field=wagtail.fields.StreamField( + [ + ( + "link", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="titulek")), + ("url", wagtail.blocks.URLBlock(label="odkaz")), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="odkazy v záhlaví", + ), + ), + migrations.AlterField( + model_name="elections2021mythpage", + name="related_points", + field=wagtail.fields.StreamField( + [ + ( + "point", + wagtail.blocks.PageChooserBlock( + label="programový bod", + page_type=["elections2021.Elections2021ProgramPointPage"], + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="související programové body", + ), + ), + migrations.AlterField( + model_name="elections2021programinnutshellpage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "section", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="nadpis")), + ( + "items", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "text", + wagtail.blocks.TextBlock( + label="text" + ), + ), + ( + "points", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.TextBlock( + label="titulek" + ), + ), + ( + "point", + wagtail.blocks.PageChooserBlock( + label="programový bod", + page_type=[ + "elections2021.Elections2021ProgramPointPage" + ], + ), + ), + ] + ), + label="programové body", + ), + ), + ] + ), + label="bloky", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="sekce", + ), + ), + migrations.AlterField( + model_name="elections2021programpointpage", + name="benefits", + field=wagtail.fields.StreamField( + [ + ( + "benefit", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="název")), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h4", + "ul-elections2021", + "superscript", + "link", + "italic", + "document-link", + ], + label="text", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="ostatní benefity", + ), + ), + migrations.AlterField( + model_name="elections2021programpointpage", + name="benefits_main", + field=wagtail.fields.StreamField( + [ + ( + "benefit", + wagtail.blocks.StructBlock( + [ + ( + "variant", + wagtail.blocks.ChoiceBlock( + choices=[ + ("1", "Pro mladé"), + ("2", "Pro rodiny s dětmi"), + ("3", "Pro lidi ve zralém věku"), + ("4", "Pro seniory"), + ("5", "Pro zaměstnance"), + ("6", "Pro živnostníky a podnikatele"), + ("7", "Pro lidi ve finanční tísni"), + ("8", "Pro nás pro všechny"), + ("9", "Pro veřejné finance"), + ("10", "Pro rozvoj obcí a měst"), + ("11", "Pro lékaře a zdravotníky"), + ("12", "Pro zemědělce"), + ("13", "Pro děti"), + ], + label="název", + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h4", + "ul-elections2021", + "superscript", + "link", + "italic", + "document-link", + ], + label="text", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="hlavní benefity", + ), + ), + migrations.AlterField( + model_name="elections2021programpointpage", + name="faq", + field=wagtail.fields.StreamField( + [ + ( + "question", + wagtail.blocks.StructBlock( + [ + ("question", wagtail.blocks.CharBlock(label="otázka")), + ( + "answer", + wagtail.blocks.RichTextBlock( + features=[ + "h4", + "ul-elections2021", + "superscript", + "link", + "italic", + "document-link", + ], + label="odpověď", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="FAQ", + ), + ), + migrations.AlterField( + model_name="elections2021programpointpage", + name="related_points", + field=wagtail.fields.StreamField( + [ + ( + "point", + wagtail.blocks.PageChooserBlock( + label="programový bod", + page_type=["elections2021.Elections2021ProgramPointPage"], + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="související body", + ), + ), + migrations.AlterField( + model_name="elections2021questionspage", + name="elections", + field=wagtail.fields.StreamField( + [ + ( + "question", + wagtail.blocks.StructBlock( + [ + ("question", wagtail.blocks.CharBlock(label="otázka")), + ( + "answer", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "bold", + "italic", + "superscript", + "subscript", + "strikethrough", + "ul-elections2021", + "ol-elections2021", + "blockquote-elections2021", + "link", + "image", + "document-link", + ], + label="odpověď", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="otázky k volbám", + ), + ), + migrations.AlterField( + model_name="elections2021questionspage", + name="myths", + field=wagtail.fields.StreamField( + [ + ( + "question", + wagtail.blocks.StructBlock( + [ + ("question", wagtail.blocks.CharBlock(label="otázka")), + ( + "answer", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "bold", + "italic", + "superscript", + "subscript", + "strikethrough", + "ul-elections2021", + "ol-elections2021", + "blockquote-elections2021", + "link", + "image", + "document-link", + ], + label="odpověď", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="mýty o koalici", + ), + ), + migrations.AlterField( + model_name="elections2021strategicpage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "title", + wagtail.blocks.CharBlock( + icon="title", + label="nadpis sekce (pro navigaci)", + template="elections2021/_strategic_title_block.html", + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h3", + "h4", + "bold", + "italic", + "superscript", + "subscript", + "strikethrough", + "ul-elections2021", + "ol-elections2021", + "blockquote-elections2021", + "link", + "image", + "document-link", + ], + label="text", + template="elections2021/_strategic_text_block.html", + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + ] diff --git a/elections2021/migrations/0053_alter_elections2021articletag_content_object.py b/elections2021/migrations/0053_alter_elections2021articletag_content_object.py new file mode 100644 index 0000000000000000000000000000000000000000..3850ca8440bd1c984bdb39a162e1606840065dd4 --- /dev/null +++ b/elections2021/migrations/0053_alter_elections2021articletag_content_object.py @@ -0,0 +1,24 @@ +# Generated by Django 4.1.5 on 2023-01-31 19:42 + +import django.db.models.deletion +import modelcluster.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("elections2021", "0052_alter_elections2021articlepage_content_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="elections2021articletag", + name="content_object", + field=modelcluster.fields.ParentalKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="tagged_items", + to="elections2021.elections2021articlepage", + ), + ), + ] diff --git a/elections2021/models.py b/elections2021/models.py index 99c7da69feda02154b170aaf0c928f65456fa63d..436464bc20245c4a970bc1010fe9fee8a2a05bed 100644 --- a/elections2021/models.py +++ b/elections2021/models.py @@ -193,19 +193,29 @@ class Elections2021HomePage(MetadataPageMixin, RoutablePageMixin, Page): ### FIELDS carousel = StreamField( - [("slide", SlideBlock())], verbose_name="obsah slideru", blank=True + [("slide", SlideBlock())], + verbose_name="obsah slideru", + blank=True, + use_json_field=True, ) elections_date = models.DateTimeField("datum začátku voleb", blank=True, null=True) header_links = StreamField( - [("link", LinkBlock())], verbose_name="odkazy v záhlaví", blank=True + [("link", LinkBlock())], + verbose_name="odkazy v záhlaví", + blank=True, + use_json_field=True, ) footer_links = StreamField( - [("link", LinkBlock())], verbose_name="odkazy v zápatí", blank=True + [("link", LinkBlock())], + verbose_name="odkazy v zápatí", + blank=True, + use_json_field=True, ) footer_menu = StreamField( [("item", MenuItemBlock())], verbose_name="menu projděte si v zápatí", blank=True, + use_json_field=True, ) gdpr_and_cookies_page = models.ForeignKey( "wagtailcore.Page", @@ -526,7 +536,9 @@ class Elections2021HomePage(MetadataPageMixin, RoutablePageMixin, Page): class Elections2021ArticleTag(TaggedItemBase): content_object = ParentalKey( - "elections2021.Elections2021ArticlePage", on_delete=models.CASCADE + "elections2021.Elections2021ArticlePage", + on_delete=models.CASCADE, + related_name="tagged_items", ) @@ -544,6 +556,7 @@ class Elections2021ArticlePage(ArticleMixin, SubpageMixin, MetadataPageMixin, Pa ], verbose_name="Článek", blank=True, + use_json_field=True, ) tags = ClusterTaggableManager(through=Elections2021ArticleTag, blank=True) card_style = models.CharField( @@ -1628,6 +1641,7 @@ class Elections2021ProgramPointPage(SubpageMixin, MetadataPageMixin, Page): [("question", QuestionBlock())], verbose_name="FAQ", blank=True, + use_json_field=True, ) related_points = StreamField( [ @@ -1641,6 +1655,7 @@ class Elections2021ProgramPointPage(SubpageMixin, MetadataPageMixin, Page): ], verbose_name="související body", blank=True, + use_json_field=True, ) benefit_for_all = RichTextField( "benefit pro společnost", blank=True, null=True, features=RESTRICTED_FEATURES @@ -1649,11 +1664,13 @@ class Elections2021ProgramPointPage(SubpageMixin, MetadataPageMixin, Page): [("benefit", MainBenefitBlock())], verbose_name="hlavní benefity", blank=True, + use_json_field=True, ) benefits = StreamField( [("benefit", BenefitBlock())], verbose_name="ostatní benefity", blank=True, + use_json_field=True, ) default_order = models.IntegerField("výchozí řazení", default=0) @@ -1965,11 +1982,13 @@ class Elections2021QuestionsPage(SubpageMixin, MetadataPageMixin, Page): [("question", RichQuestionBlock())], verbose_name="mýty o koalici", blank=True, + use_json_field=True, ) elections = StreamField( [("question", RichQuestionBlock())], verbose_name="otázky k volbám", blank=True, + use_json_field=True, ) ### PANELS @@ -2065,7 +2084,7 @@ class Elections2021ProgramAppPage(SubpageMixin, MetadataPageMixin, Page): class Meta: verbose_name = "Programová aplikace" - def serve(self, request): + def serve(self, request, *args, **kwargs): if request.method == "POST": form = ProgramAppForm(request.POST) if form.is_valid(): @@ -2078,7 +2097,7 @@ class Elections2021ProgramAppPage(SubpageMixin, MetadataPageMixin, Page): httponly=settings.SESSION_COOKIE_HTTPONLY, ) return response - return super().serve(request) + return super().serve(request, *args, **kwargs) @staticmethod def get_my_selection(request): @@ -2223,6 +2242,7 @@ class Elections2021StrategicPage(SubpageMixin, MetadataPageMixin, Page): ], verbose_name="obsah stránky", blank=True, + use_json_field=True, ) ### PANELS @@ -2329,6 +2349,7 @@ class Elections2021MythPage(SubpageMixin, MetadataPageMixin, Page): ], verbose_name="související programové body", blank=True, + use_json_field=True, ) ### PANELS @@ -2421,11 +2442,13 @@ class Elections2021DownloadsPage(SubpageMixin, MetadataPageMixin, Page): [("document", DownloadDocumentBlock()), ("spotify", DownloadSpotifyBlock())], verbose_name="soubory ke stažení", blank=True, + use_json_field=True, ) text_downloads = StreamField( [("document", DownloadTextDocumentBlock())], verbose_name="textové soubory ke stažení", blank=True, + use_json_field=True, ) ### PANELS @@ -2498,6 +2521,7 @@ class Elections2021GovernmentTeamPage(SubpageMixin, MetadataPageMixin, Page): [("section", GovernmentSectionBlock())], verbose_name="sekce vládního týmu", blank=True, + use_json_field=True, ) ### PANELS @@ -2665,7 +2689,10 @@ class Elections2021BannerListPage( subtitle = models.CharField(max_length=100, blank=True, verbose_name="podtitulek") banners = StreamField( - [("banners", BannerBlock())], verbose_name="objednávání plachet", blank=True + [("banners", BannerBlock())], + verbose_name="objednávání plachet", + blank=True, + use_json_field=True, ) ### PANELS @@ -2703,7 +2730,7 @@ class Elections2021BannerListPage( class Meta: verbose_name = "nabídka plachet" - def serve(self, request, *a, **kw): + def serve(self, request, *args, **kwargs): if request.method == "POST": form = BannerForm(request.POST) form.has_been_saved = False @@ -2716,7 +2743,7 @@ class Elections2021BannerListPage( form.has_been_saved = False request.banner_form = form - return super().serve(request, *a, **kw) + return super().serve(request, *args, **kwargs) class Elections2021MapPage(SubpageMixin, MetadataPageMixin, Page): @@ -2945,7 +2972,10 @@ class Elections2021ProgramInNutshellPage(SubpageMixin, MetadataPageMixin, Page): "obsah", blank=True, null=True, features=ARTICLE_RICH_TEXT_FEATURES ) content = StreamField( - [("section", NutshellSectionBlock())], verbose_name="sekce", blank=True + [("section", NutshellSectionBlock())], + verbose_name="sekce", + blank=True, + use_json_field=True, ) ### PANELS diff --git a/elections2021/static/elections2021/css/styleguide.min.css b/elections2021/static/elections2021/css/styleguide.min.css index 5e49e33e3816038422d544a183921d7699508e03..8d26b5033f933de2e921ef054dc59a8a5e78acf3 100644 --- a/elections2021/static/elections2021/css/styleguide.min.css +++ b/elections2021/static/elections2021/css/styleguide.min.css @@ -1 +1 @@ -@charset "UTF-8";*{-webkit-box-sizing:border-box;box-sizing:border-box}.is-vishidden{position:absolute!important;overflow:hidden;width:1px;height:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px)}#patternlab-body,#patternlab-html{margin:0;padding:0;background:#ddd;-webkit-text-size-adjust:100%}.sg-header{background:#000;color:#fff;font-family:HelveticaNeue,Helvetica,Arial,sans-serif;text-transform:uppercase;position:fixed;top:0;left:0;z-index:4;width:100%}.sg-header ul{padding:0;margin:0;list-style:none}.sg-header a{font-size:70%;color:grey;text-decoration:none;line-height:1;padding:1em .7em;-webkit-transition:color .1s ease-out;transition:color .1s ease-out}.sg-header a.active,.sg-header a:focus,.sg-header a:hover{color:#fff;background:#222}.sg-nav-toggle{display:inline-block;position:relative;text-transform:uppercase;z-index:2}@media all and (min-width:42em){.sg-nav-toggle{display:none}}@media all and (max-width:42em){.sg-nav-container{overflow:hidden;max-height:0;-webkit-transition:max-height .1s ease-out;transition:max-height .1s ease-out}.sg-nav-container.active{max-height:50em}}.sg-nav{z-index:1;margin:0;padding:0;list-style:none}.sg-nav>li{cursor:pointer}@media all and (min-width:42em){.sg-nav>li{border-bottom:0;float:left;position:relative}.sg-nav>li>ol{position:absolute;top:2em;left:0}}.sg-nav a{display:block}.sg-acc-handle:after{content:'▼';color:rgba(255,255,255,.25);display:inline-block;font-size:7px;position:relative;top:-1px;right:-2px;-webkit-transition:all .1s ease-out;transition:all .1s ease-out}@media all and (min-width:42em){.sg-acc-handle:after{float:none}}.sg-acc-handle:focus:after,.sg-acc-handle:hover:after{color:grey}.sg-acc-handle.active{color:#fff;background:#222}.sg-acc-handle.active:after{top:-2px;color:grey;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.sg-acc-panel{overflow:hidden;max-height:0;margin:0;padding:0;list-style:none;min-width:10em;-webkit-transition:max-height .1s ease-out;transition:max-height .1s ease-out}.sg-acc-panel li{background:#222}.sg-acc-panel li:last-child,.sg-acc-panel li:last-child a{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.sg-acc-panel a{display:block}.sg-acc-panel.active{max-height:120em;overflow:auto}.sg-acc-panel.sg-right{position:absolute;left:auto;right:0}.sg-sub-nav{list-style:none}.sg-sub-nav a{text-transform:none;padding-left:1rem}.sg-controls{border:0;position:absolute;top:0;right:0;z-index:2}.sg-control>li{float:left}.sg-size{width:135px}@media all and (min-width:42em){.sg-size{width:auto}}.sg-current-size{font-size:70%;color:grey;padding:.85em .7em}@media all and (min-width:53em){.sg-current-size{float:left}}#sg-form{margin:0;border:0;padding:0}.sg-input{margin:-2px 0 0;padding:.1em;border:0;border-radius:3px;background:#000;color:grey;width:25px;text-align:right;-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.sg-input:hover{color:#fff;background:#222}.sg-input:active,.sg-input:focus{outline:0;background:grey;color:#fff}@media all and (min-width:42em){.sg-input{width:35px}.sg-input.sg-size-px{width:30px}}.sg-size-options{display:none}.sg-size-options a{display:block}@media all and (min-width:53em){.sg-size-options{display:block;float:left;position:static}.sg-size-options>li{float:left}}.sg-tools-toggle{font-size:70%;background:#000;color:grey;text-decoration:none;line-height:1;border:0;cursor:pointer;padding:.9em .7em .6em}.sg-tools-toggle:after{display:none;content:""}.sg-find{position:relative}.twitter-typeahead{width:100%}.typeahead{border:0;background:#222;color:grey;width:100%;right:0;padding:.8em;text-transform:lowercase}.typeahead:focus{background:grey;color:#fff}.tt-input{background:grey;color:#fff;text-transform:uppercase}.tt-input:focus{text-transform:lowercase}.tt-hint{text-transform:lowercase;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.tt-dropdown-menu{text-transform:lowercase;background-color:grey;width:100%;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.tt-suggestion{color:#eee;font-size:75%;padding:.8em}.tt-suggestion.tt-cursor{color:#fff;background:rgba(255,255,255,.25)}.tt-suggestion p{margin:0}.sg-pattern-state{text-transform:none!important}.sg-pattern-state:before{content:"\2022";margin-right:4px;font-size:18px;vertical-align:bottom;display:inline-block;text-decoration:none}.sg-pattern-lineage .sg-pattern-state:before{font-size:12px}#sg-patterns .sg-pattern-state:before{font-size:14px}#sg-patterns .sg-pattern-state{color:#666}.sg-nav .sg-pattern-state:before{margin-top:-4px;margin-bottom:0;margin-left:-4px;height:20px;display:block;float:left}.inprogress:before{color:#FF4136!important}.inreview:before{color:#FC0!important}.complete:before{color:#2ECC40!important}#sg-vp-wrap{text-align:center;width:100%;position:fixed;top:2em;bottom:0;left:0;right:0;z-index:0}#sg-cover{width:100%;height:100%;display:none;position:absolute;z-index:20;cursor:col-resize}#sg-gen-container{height:100%;position:relative;text-align:center;margin:0 auto;-webkit-overflow-scrolling:touch;overflow-y:auto;overflow-x:hidden}#sg-gen-container.hay-mode{-webkit-transition:all 40s linear;transition:all 40s linear}#sg-viewport{position:absolute;height:100%;width:100%;border:0;padding:0;margin:0;top:0;bottom:0;left:0;right:0;background-color:#fff}#sg-viewport.hay-mode{-webkit-transition:all 40s linear;transition:all 40s linear}#sg-rightpull-container{width:14px;float:right;margin:0;height:100%;cursor:col-resize}#sg-rightpull{margin:0;width:100%;height:100%;background:#c2c2c2;-webkit-transition:background .1s ease-out;transition:background .1s ease-out}#sg-rightpull:hover{background:grey}#sg-rightpull:active{cursor:col-resize;background:#666}.vp-animate{-webkit-transition:width .8s ease-out;transition:width .8s ease-out}.sg-pattern{margin-bottom:2em;position:relative;clear:both}.sg-pattern-head{position:relative;padding:.5rem 0 0;line-height:1.3;font-size:90%;color:grey}.sg-pattern-head:empty{padding:0}.sg-pattern-title{font-family:HelveticaNeue,Helvetica,Arial,sans-serif!important;font-size:.85rem!important;line-height:1!important;font-weight:700!important;margin:0!important;padding:0!important;text-transform:capitalize!important}.sg-pattern-title a{display:inline-block;padding:1em 0 .3rem;color:grey!important;text-decoration:none;cursor:pointer;font-weight:700}.sg-pattern-title a:focus,.sg-pattern-title a:hover{color:#000!important}.sg-pattern-title .sg-pattern-state{font-size:80%;font-weight:400;color:#ccc}.sg-pattern-extra-toggle{font-size:9px;position:absolute;bottom:-1px;right:0;z-index:1;padding:.65em;line-height:1;color:grey;font-weight:400;border:1px solid #ddd;border-top-left-radius:6px;border-top-right-radius:6px;-webkit-transition:background .1s ease-out;transition:background .1s ease-out}.sg-pattern-extra-toggle span{display:inline-block}.sg-pattern-extra-toggle.active,.sg-pattern-extra-toggle:focus,.sg-pattern-extra-toggle:hover{background:#eee;color:#000}.sg-pattern-extra-toggle.active{border-bottom-color:#eee}.sg-pattern-extra-toggle.active span{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.sg-pattern-extra{background:#eee;border-top:1px solid #ddd;margin-bottom:1em;overflow:hidden;max-height:1px;-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.sg-pattern-extra a{text-decoration:underline;color:#222}.sg-pattern-extra a:focus,.sg-pattern-extra a:hover{color:grey}.sg-pattern-extra.active{border:1px solid #ddd;border-radius:6px 0 6px 6px;max-height:50em}@media all and (min-width:42em){.sg-pattern-extra-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}}.sg-pattern-extra-info{padding:.5rem .5rem 0;line-height:1.4;font-size:90%;color:grey;overflow:auto;-webkit-overflow-scrolling:touch}.sg-pattern-extra-info:empty{padding:0}@media all and (min-width:42em){.sg-pattern-extra-info{padding:1em;width:40%}}.sg-pattern-desc{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #ccc}.sg-pattern-desc p:last-child{margin:0}.sg-pattern-lineage{font-size:90%;font-style:italic}.sg-pattern-extra-code{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font-size:90%;padding:.5rem;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.sg-pattern-extra-code pre{overflow:scroll!important;-webkit-overflow-scrolling:touch;padding:0 .5rem .5rem!important;margin:0!important;line-height:1!important;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;border-radius:0 6px 6px!important;position:absolute;top:0;bottom:0;left:0;right:0}.sg-pattern-extra-code code{display:block;-moz-tab-size:2!important;-o-tab-size:2!important;tab-size:2!important}@media all and (min-width:42em){.sg-pattern-extra-code{width:60%;padding:1em}}.sg-pattern-category{margin-top:6rem;font:HelveticaNeue,Helvetica,Arial,sans-serif!important}.sg-pattern-category:first-of-type{margin-top:2rem}.sg-pattern-category-title{font-size:1.4rem!important;color:#222!important;margin:0 0 .2rem;text-transform:capitalize}.sg-pattern-category-title a{-webkit-transition:color .1s ease-out;transition:color .1s ease-out}.sg-pattern-category-body{font-size:80%;line-height:1.3}.sg-pattern-category-body:empty{display:none}.language-markup code[class*=language-],.language-markup pre[class*=language-]{white-space:pre-wrap}@media all and (min-width:42em){.language-markup code[class*=language-],.language-markup pre[class*=language-]{white-space:pre}}.sg-tabs{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font:HelveticaNeue,Helvetica,Arial,sans-serif!important}.sg-tabs-list{overflow:hidden;position:relative;bottom:-1px;list-style:none;margin:0;padding:0}.sg-tabs-list li{float:left;margin-right:3px}.sg-tabs-list a{display:block;font-size:90%;font-weight:700;line-height:1;padding:.5em 1em;background:#eee;border:1px solid #ccc;border-bottom:0;color:grey;border-top-right-radius:6px;border-top-left-radius:6px;text-decoration:none;text-transform:capitalize}.sg-tabs-list a:hover{color:#222}.sg-tab-title-active a{background:#f5f2f0;color:#222}.sg-tab-title-active a:focus,.sg-tab-title-active a:hover{color:#222}.sg-tabs-content{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border:1px solid #ccc;border-radius:0 6px 6px;overflow:hidden}.sg-tabs-panel{display:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;min-height:12em}@media all and (min-width:42em){.sg-tabs-panel{min-height:7em}}.sg-modal{font-family:HelveticaNeue,Helvetica,Arial,sans-serif;line-height:1.4;font-size:90%;background:#000;color:#ccc;position:fixed;top:auto;bottom:0;left:0;z-index:2;width:100%;height:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.sg-modal.anim-ready{-webkit-transition:bottom .3s ease-out;transition:bottom .3s ease-out}.sg-modal .sg-pattern-breadcrumb{font-size:70%;color:grey;margin-bottom:.5rem}.sg-modal .sg-pattern-head{margin-bottom:.5rem}.sg-modal .sg-pattern-title{font-size:1.4rem!important;color:#eee}.sg-modal .sg-pattern-extra{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;max-height:none;padding:0}.sg-modal .sg-pattern-extra.active{max-height:none}.sg-modal .sg-pattern-extra-info a{color:#ccc}.sg-modal .sg-pattern-extra-info a:focus,.sg-modal .sg-pattern-extra-info a:hover{color:#eee}.sg-modal .sg-pattern-desc{border-bottom-color:grey}.sg-modal .sg-annotations{border-top-color:grey}.sg-modal .sg-tabs-content{border:0}.sg-modal-close-btn{font-size:70%;background:#000;color:grey;border:0;border-radius:6px 6px 0 0;display:inline-block;padding:.9em .7em .1em;text-transform:uppercase;text-decoration:none;cursor:pointer;position:absolute;right:0;top:1rem;-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.sg-modal.active .sg-modal-close-btn{top:-1.5rem}.sg-modal-close-btn:focus,.sg-modal-close-btn:hover{background:#222;color:#eee}.sg-modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow-y:auto;overflow-x:hidden}.sg-modal-content-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.has-annotation{cursor:help!important;-webkit-box-shadow:0 0 10px grey;box-shadow:0 0 10px grey}.has-annotation a,.has-annotation input{cursor:help!important}.has-annotation:hover{-webkit-box-shadow:0 0 10px #000;box-shadow:0 0 10px #000}.has-annotation.active{-webkit-box-shadow:inset 0 0 20px grey;box-shadow:inset 0 0 20px grey}.annotation-tip{display:block;position:absolute;margin-top:-10px!important;margin-left:-10px!important;width:25px!important;height:25px!important;border-radius:13px!important;text-align:center!important;background:#444!important;color:#fff!important;font-weight:700!important;font-size:16px!important;z-index:100}.sg-annotations{margin:1rem 0;border-top:1px solid #ddd;padding-top:.5rem}.sg-annotations-title{font-size:1rem!important;margin:0 0 .5rem}.sg-annotations-list{padding:0;margin:0;list-style:none;counter-reset:the-count}.sg-annotations-list>li{position:relative;padding-left:1.5rem;margin-bottom:1rem;border-radius:6px;-webkit-transition:background .1s ease;transition:background .1s ease}.sg-annotations-list>li:before{content:counter(the-count);counter-increment:the-count;font-size:85%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:14px;height:14px;border-radius:50%;padding:2px;text-align:center;background:#ccc;color:#222;position:absolute;top:1px;left:0}.sg-annotations-list>li.active{background:rgba(255,255,255,.15)}.sg-annotations-list-title{display:inline;font-size:100%}.sg-annotations-list-title:after{content:"—"}#sg-comments-container{max-width:60em;margin:0 auto}.sg-comment-container{padding-bottom:2em;margin-bottom:1em;border-bottom:1px solid rgba(255,255,255,.25)}.sg-comment-container p:last-child{margin-bottom:0}.sg-comment-container h2{margin-bottom:.25em} \ No newline at end of file +@charset "UTF-8";*{-webkit-box-sizing:border-box;box-sizing:border-box}.is-vishidden{position:absolute!important;overflow:hidden;width:1px;height:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px)}#patternlab-body,#patternlab-html{margin:0;padding:0;background:#ddd;-webkit-text-size-adjust:100%}.sg-header{background:#000;color:#fff;font-family:HelveticaNeue,Helvetica,Arial,sans-serif;text-transform:uppercase;position:fixed;top:0;left:0;z-index:4;width:100%}.sg-header ul{padding:0;margin:0;list-style:none}.sg-header a{font-size:70%;color:grey;text-decoration:none;line-height:1;padding:1em .7em;-webkit-transition:color .1s ease-out;transition:color .1s ease-out}.sg-header a.active,.sg-header a:focus,.sg-header a:hover{color:#fff;background:#222}.sg-nav-toggle{display:inline-block;position:relative;text-transform:uppercase;z-index:2}@media all and (min-width:42em){.sg-nav-toggle{display:none}}@media all and (max-width:42em){.sg-nav-container{overflow:hidden;max-height:0;-webkit-transition:max-height .1s ease-out;transition:max-height .1s ease-out}.sg-nav-container.active{max-height:50em}}.sg-nav{z-index:1;margin:0;padding:0;list-style:none}.sg-nav>li{cursor:pointer}@media all and (min-width:42em){.sg-nav>li{border-bottom:0;float:left;position:relative}.sg-nav>li>ol{position:absolute;top:2em;left:0}}.sg-nav a{display:block}.sg-acc-handle:after{content:'▼';color:rgba(255,255,255,.25);display:inline-block;font-size:7px;position:relative;top:-1px;right:-2px;-webkit-transition:all .1s ease-out;transition:all .1s ease-out}@media all and (min-width:42em){.sg-acc-handle:after{float:none}}.sg-acc-handle:focus:after,.sg-acc-handle:hover:after{color:grey}.sg-acc-handle.active{color:#fff;background:#222}.sg-acc-handle.active:after{top:-2px;color:grey;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.sg-acc-panel{overflow:hidden;max-height:0;margin:0;padding:0;list-style:none;min-width:10em;-webkit-transition:max-height .1s ease-out;transition:max-height .1s ease-out}.sg-acc-panel li{background:#222}.sg-acc-panel li:last-child,.sg-acc-panel li:last-child a{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.sg-acc-panel a{display:block}.sg-acc-panel.active{max-height:120em;overflow:auto}.sg-acc-panel.sg-right{position:absolute;left:auto;right:0}.sg-sub-nav{list-style:none}.sg-sub-nav a{text-transform:none;padding-left:1rem}.sg-controls{border:0;position:absolute;top:0;right:0;z-index:2}.sg-control>li{float:left}.sg-size{width:135px}@media all and (min-width:42em){.sg-size{width:auto}}.sg-current-size{font-size:70%;color:grey;padding:.85em .7em}@media all and (min-width:53em){.sg-current-size{float:left}}#sg-form{margin:0;border:0;padding:0}.sg-input{margin:-2px 0 0;padding:.1em;border:0;border-radius:3px;background:#000;color:grey;width:25px;text-align:right;-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.sg-input:hover{color:#fff;background:#222}.sg-input:active,.sg-input:focus{outline:0;background:grey;color:#fff}@media all and (min-width:42em){.sg-input{width:35px}.sg-input.sg-size-px{width:30px}}.sg-size-options{display:none}.sg-size-options a{display:block}@media all and (min-width:53em){.sg-size-options{display:block;float:left;position:static}.sg-size-options>li{float:left}}.sg-tools-toggle{font-size:70%;background:#000;color:grey;text-decoration:none;line-height:1;border:0;cursor:pointer;padding:.9em .7em .6em}.sg-tools-toggle:after{display:none;content:""}.sg-find{position:relative}.twitter-typeahead{width:100%}.typeahead{border:0;background:#222;color:grey;width:100%;right:0;padding:.8em;text-transform:lowercase}.typeahead:focus{background:grey;color:#fff}.tt-input{background:grey;color:#fff;text-transform:uppercase}.tt-input:focus{text-transform:lowercase}.tt-hint{text-transform:lowercase;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.tt-dropdown-menu{text-transform:lowercase;background-color:grey;width:100%;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.tt-suggestion{color:#eee;font-size:75%;padding:.8em}.tt-suggestion.tt-cursor{color:#fff;background:rgba(255,255,255,.25)}.tt-suggestion p{margin:0}.sg-pattern-state{text-transform:none!important}.sg-pattern-state:before{content:"\2022";margin-right:4px;font-size:18px;vertical-align:bottom;display:inline-block;text-decoration:none}.sg-pattern-lineage .sg-pattern-state:before{font-size:12px}#sg-patterns .sg-pattern-state:before{font-size:14px}#sg-patterns .sg-pattern-state{color:#666}.sg-nav .sg-pattern-state:before{margin-top:-4px;margin-bottom:0;margin-left:-4px;height:20px;display:block;float:left}.inprogress:before{color:#FF4136!important}.inreview:before{color:#FC0!important}.complete:before{color:#2ECC40!important}#sg-vp-wrap{text-align:center;width:100%;position:fixed;top:2em;bottom:0;left:0;right:0;z-index:0}#sg-cover{width:100%;height:100%;display:none;position:absolute;z-index:20;cursor:col-resize}#sg-gen-container{height:100%;position:relative;text-align:center;margin:0 auto;-webkit-overflow-scrolling:touch;overflow-y:auto;overflow-x:hidden}#sg-gen-container.hay-mode{-webkit-transition:all 40s linear;transition:all 40s linear}#sg-viewport{position:absolute;height:100%;width:100%;border:0;padding:0;margin:0;top:0;bottom:0;left:0;right:0;background-color:#fff}#sg-viewport.hay-mode{-webkit-transition:all 40s linear;transition:all 40s linear}#sg-rightpull-container{width:14px;float:right;margin:0;height:100%;cursor:col-resize}#sg-rightpull{margin:0;width:100%;height:100%;background:#c2c2c2;-webkit-transition:background .1s ease-out;transition:background .1s ease-out}#sg-rightpull:hover{background:grey}#sg-rightpull:active{cursor:col-resize;background:#666}.vp-animate{-webkit-transition:width .8s ease-out;transition:width .8s ease-out}.sg-pattern{margin-bottom:2em;position:relative;clear:both}.sg-pattern-head{position:relative;padding:.5rem 0 0;line-height:1.3;font-size:90%;color:grey}.sg-pattern-head:empty{padding:0}.sg-pattern-title{font-family:HelveticaNeue,Helvetica,Arial,sans-serif!important;font-size:.85rem!important;line-height:1!important;font-weight:700!important;margin:0!important;padding:0!important;text-transform:capitalize!important}.sg-pattern-title a{display:inline-block;padding:1em 0 .3rem;color:grey!important;text-decoration:none;cursor:pointer;font-weight:700}.sg-pattern-title a:focus,.sg-pattern-title a:hover{color:#000!important}.sg-pattern-title .sg-pattern-state{font-size:80%;font-weight:400;color:#ccc}.sg-pattern-extra-toggle{font-size:9px;position:absolute;bottom:-1px;right:0;z-index:1;padding:.65em;line-height:1;color:grey;font-weight:400;border:1px solid #ddd;border-top-left-radius:6px;border-top-right-radius:6px;-webkit-transition:background .1s ease-out;transition:background .1s ease-out}.sg-pattern-extra-toggle span{display:inline-block}.sg-pattern-extra-toggle.active,.sg-pattern-extra-toggle:focus,.sg-pattern-extra-toggle:hover{background:#eee;color:#000}.sg-pattern-extra-toggle.active{border-bottom-color:#eee}.sg-pattern-extra-toggle.active span{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.sg-pattern-extra{background:#eee;border-top:1px solid #ddd;margin-bottom:1em;overflow:hidden;max-height:1px;-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.sg-pattern-extra a{text-decoration:underline;color:#222}.sg-pattern-extra a:focus,.sg-pattern-extra a:hover{color:grey}.sg-pattern-extra.active{border:1px solid #ddd;border-radius:6px 0 6px 6px;max-height:50em}@media all and (min-width:42em){.sg-pattern-extra-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}}.sg-pattern-extra-info{padding:.5rem .5rem 0;line-height:1.4;font-size:90%;color:grey;overflow:auto;-webkit-overflow-scrolling:touch}.sg-pattern-extra-info:empty{padding:0}@media all and (min-width:42em){.sg-pattern-extra-info{padding:1em;width:40%}}.sg-pattern-desc{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #ccc}.sg-pattern-desc p:last-child{margin:0}.sg-pattern-lineage{font-size:90%;font-style:italic}.sg-pattern-extra-code{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font-size:90%;padding:.5rem;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.sg-pattern-extra-code pre{overflow:scroll!important;-webkit-overflow-scrolling:touch;padding:0 .5rem .5rem!important;margin:0!important;line-height:1!important;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;border-radius:0 6px 6px!important;position:absolute;top:0;bottom:0;left:0;right:0}.sg-pattern-extra-code code{display:block;-moz-tab-size:2!important;-o-tab-size:2!important;tab-size:2!important}@media all and (min-width:42em){.sg-pattern-extra-code{width:60%;padding:1em}}.sg-pattern-category{margin-top:6rem;font:HelveticaNeue,Helvetica,Arial,sans-serif!important}.sg-pattern-category:first-of-type{margin-top:2rem}.sg-pattern-category-title{font-size:1.4rem!important;color:#222!important;margin:0 0 .2rem;text-transform:capitalize}.sg-pattern-category-title a{-webkit-transition:color .1s ease-out;transition:color .1s ease-out}.sg-pattern-category-body{font-size:80%;line-height:1.3}.sg-pattern-category-body:empty{display:none}.language-markup code[class*=language-],.language-markup pre[class*=language-]{white-space:pre-wrap}@media all and (min-width:42em){.language-markup code[class*=language-],.language-markup pre[class*=language-]{white-space:pre}}.sg-tabs{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font:HelveticaNeue,Helvetica,Arial,sans-serif!important}.sg-tabs-list{overflow:hidden;position:relative;bottom:-1px;list-style:none;margin:0;padding:0}.sg-tabs-list li{float:left;margin-right:3px}.sg-tabs-list a{display:block;font-size:90%;font-weight:700;line-height:1;padding:.5em 1em;background:#eee;border:1px solid #ccc;border-bottom:0;color:grey;border-top-right-radius:6px;border-top-left-radius:6px;text-decoration:none;text-transform:capitalize}.sg-tabs-list a:hover{color:#222}.sg-tab-title-active a{background:#f5f2f0;color:#222}.sg-tab-title-active a:focus,.sg-tab-title-active a:hover{color:#222}.sg-tabs-content{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border:1px solid #ccc;border-radius:0 6px 6px;overflow:hidden}.sg-tabs-panel{display:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;min-height:12em}@media all and (min-width:42em){.sg-tabs-panel{min-height:7em}}.sg-modal{font-family:HelveticaNeue,Helvetica,Arial,sans-serif;line-height:1.4;font-size:90%;background:#000;color:#ccc;position:fixed;top:auto;bottom:0;left:0;z-index:2;width:100%;height:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.sg-modal.anim-ready{-webkit-transition:bottom .3s ease-out;transition:bottom .3s ease-out}.sg-modal .sg-pattern-breadcrumb{font-size:70%;color:grey;margin-bottom:.5rem}.sg-modal .sg-pattern-head{margin-bottom:.5rem}.sg-modal .sg-pattern-title{font-size:1.4rem!important;color:#eee}.sg-modal .sg-pattern-extra{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;max-height:none;padding:0}.sg-modal .sg-pattern-extra.active{max-height:none}.sg-modal .sg-pattern-extra-info a{color:#ccc}.sg-modal .sg-pattern-extra-info a:focus,.sg-modal .sg-pattern-extra-info a:hover{color:#eee}.sg-modal .sg-pattern-desc{border-bottom-color:grey}.sg-modal .sg-annotations{border-top-color:grey}.sg-modal .sg-tabs-content{border:0}.sg-modal-close-btn{font-size:70%;background:#000;color:grey;border:0;border-radius:6px 6px 0 0;display:inline-block;padding:.9em .7em .1em;text-transform:uppercase;text-decoration:none;cursor:pointer;position:absolute;right:0;top:1rem;-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.sg-modal.active .sg-modal-close-btn{top:-1.5rem}.sg-modal-close-btn:focus,.sg-modal-close-btn:hover{background:#222;color:#eee}.sg-modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow-y:auto;overflow-x:hidden}.sg-modal-content-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.has-annotation{cursor:help!important;-webkit-box-shadow:0 0 10px grey;box-shadow:0 0 10px grey}.has-annotation a,.has-annotation input{cursor:help!important}.has-annotation:hover{-webkit-box-shadow:0 0 10px #000;box-shadow:0 0 10px #000}.has-annotation.active{-webkit-box-shadow:inset 0 0 20px grey;box-shadow:inset 0 0 20px grey}.annotation-tip{display:block;position:absolute;margin-top:-10px!important;margin-left:-10px!important;width:25px!important;height:25px!important;border-radius:13px!important;text-align:center!important;background:#444!important;color:#fff!important;font-weight:700!important;font-size:16px!important;z-index:100}.sg-annotations{margin:1rem 0;border-top:1px solid #ddd;padding-top:.5rem}.sg-annotations-title{font-size:1rem!important;margin:0 0 .5rem}.sg-annotations-list{padding:0;margin:0;list-style:none;counter-reset:the-count}.sg-annotations-list>li{position:relative;padding-left:1.5rem;margin-bottom:1rem;border-radius:6px;-webkit-transition:background .1s ease;transition:background .1s ease}.sg-annotations-list>li:before{content:counter(the-count);counter-increment:the-count;font-size:85%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:14px;height:14px;border-radius:50%;padding:2px;text-align:center;background:#ccc;color:#222;position:absolute;top:1px;left:0}.sg-annotations-list>li.active{background:rgba(255,255,255,.15)}.sg-annotations-list-title{display:inline;font-size:100%}.sg-annotations-list-title:after{content:"—"}#sg-comments-container{max-width:60em;margin:0 auto}.sg-comment-container{padding-bottom:2em;margin-bottom:1em;border-bottom:1px solid rgba(255,255,255,.25)}.sg-comment-container p:last-child{margin-bottom:0}.sg-comment-container h2{margin-bottom:.25em} diff --git a/green_deal/migrations/0007_alter_greendealhomepage_content_and_more.py b/green_deal/migrations/0007_alter_greendealhomepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..2e8e56678c7ca5301e8e53997083d5821cbbe02b --- /dev/null +++ b/green_deal/migrations/0007_alter_greendealhomepage_content_and_more.py @@ -0,0 +1,382 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +import django.utils.timezone +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("green_deal", "0006_greendealhomepage_title_suffix"), + ] + + operations = [ + migrations.AlterField( + model_name="greendealhomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "text_2_columns", + wagtail.blocks.StructBlock( + [ + ( + "left_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ], + label="levý sloupec", + ), + ), + ( + "right_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ], + label="pravý sloupec", + ), + ), + ] + ), + ), + ( + "text_1_column", + wagtail.blocks.StructBlock( + [ + ("header", wagtail.blocks.CharBlock()), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ] + ), + ), + ] + ), + ), + ( + "FAQ_columns", + wagtail.blocks.StructBlock( + [ + ( + "left_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ], + label="levý sloupec", + ), + ), + ( + "faqs", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "question", + wagtail.blocks.TextBlock(), + ), + ( + "answer", + wagtail.blocks.RichTextBlock(), + ), + ] + ), + label="faq", + ), + ), + ] + ), + ), + ( + "news", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ("header", wagtail.blocks.CharBlock()), + ( + "perex", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ] + ), + ), + ("img", wagtail.images.blocks.ImageChooserBlock()), + ("link", wagtail.blocks.URLBlock()), + ( + "date", + wagtail.blocks.DateBlock( + default=django.utils.timezone.now + ), + ), + ] + ), + label="aktuality", + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + migrations.AlterField( + model_name="greendealhomepage", + name="top_menu", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="název")), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="stránka", + page_type=[ + "green_deal.GreenDealHomePage", + "green_deal.GreenDealSubPage", + ], + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="horní menu", + ), + ), + migrations.AlterField( + model_name="greendealsubpage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "text_2_columns", + wagtail.blocks.StructBlock( + [ + ( + "left_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ], + label="levý sloupec", + ), + ), + ( + "right_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ], + label="pravý sloupec", + ), + ), + ] + ), + ), + ( + "text_1_column", + wagtail.blocks.StructBlock( + [ + ("header", wagtail.blocks.CharBlock()), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ] + ), + ), + ] + ), + ), + ( + "FAQ_columns", + wagtail.blocks.StructBlock( + [ + ( + "left_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ], + label="levý sloupec", + ), + ), + ( + "faqs", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "question", + wagtail.blocks.TextBlock(), + ), + ( + "answer", + wagtail.blocks.RichTextBlock(), + ), + ] + ), + label="faq", + ), + ), + ] + ), + ), + ( + "news", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ("header", wagtail.blocks.CharBlock()), + ( + "perex", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + ] + ), + ), + ("img", wagtail.images.blocks.ImageChooserBlock()), + ("link", wagtail.blocks.URLBlock()), + ( + "date", + wagtail.blocks.DateBlock( + default=django.utils.timezone.now + ), + ), + ] + ), + label="aktuality", + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + ] diff --git a/green_deal/models.py b/green_deal/models.py index 0548f37718635f6f82c58f9a54a631d99cc775c6..55234bcac9ad0be2e7a72f17699000188d42c302 100644 --- a/green_deal/models.py +++ b/green_deal/models.py @@ -92,6 +92,7 @@ class GreenDealHomePage(ExtendedMetadataHomePageMixin, MetadataPageMixin, Page): ], verbose_name="obsah stránky", blank=True, + use_json_field=True, ) # settings matomo_id = models.IntegerField( @@ -101,6 +102,7 @@ class GreenDealHomePage(ExtendedMetadataHomePageMixin, MetadataPageMixin, Page): [("item", MenuItemBlock())], verbose_name="horní menu", blank=True, + use_json_field=True, ) ### PANELS @@ -155,6 +157,7 @@ class GreenDealSubPage(Page, ExtendedMetadataPageMixin, MetadataPageMixin): ], verbose_name="obsah stránky", blank=True, + use_json_field=True, ) ### PANELS diff --git a/green_deal/templates/green_deal/base.html b/green_deal/templates/green_deal/base.html index dfafb845ec2bf4081fc354545ebd310472d42469..707a975cac197931b8d1643db45675fa6a66df30 100644 --- a/green_deal/templates/green_deal/base.html +++ b/green_deal/templates/green_deal/base.html @@ -4,6 +4,9 @@ <!DOCTYPE html> <html lang="cs-cz"> <head> + {% if request.in_preview_panel %} + <base target="_blank"> + {% endif %} <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="theme-color" content="#000"/> diff --git a/main/blocks.py b/main/blocks.py index 5c4e6890601322cde0a7c6c58f4411ea5c180d6a..c6fcd64f76d201fb9893c6a2b026e4e25bb0fb7e 100644 --- a/main/blocks.py +++ b/main/blocks.py @@ -11,10 +11,7 @@ from wagtail.core.blocks import ( from wagtail.documents.blocks import DocumentChooserBlock from wagtail.images.blocks import ImageChooserBlock -from shared.blocks import ( - CardLinkBlockMixin, - CardLinkWithHeadlineBlockMixin, -) +from shared.blocks import CardLinkBlockMixin, CardLinkWithHeadlineBlockMixin class CTAMixin(StructBlock): diff --git a/main/feeds.py b/main/feeds.py index 018371859a9f98d4c1a695cbf9cc44bbf1329afb..67060a049c060208c054828cd95a92c8d2cc953b 100644 --- a/main/feeds.py +++ b/main/feeds.py @@ -1,78 +1,49 @@ +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 -from .models import MainArticlesPage, MainArticlePage +from .models import MainArticlePage, MainArticlesPage class LatestArticlesFeed(Feed): - def get_object( - self, - request, - id: int - ) -> MainArticlesPage: + def get_object(self, request, id: int) -> MainArticlesPage: return MainArticlesPage.objects.get(id=id) - def title( - self, - obj: MainArticlesPage - ) -> str: + def title(self, obj: MainArticlesPage) -> str: return obj.title - def link( - self, - obj: MainArticlesPage - ) -> str: + def link(self, obj: MainArticlesPage) -> str: return obj.get_full_url() - def description( - self, - obj: MainArticlesPage - ) -> str: + def description(self, obj: MainArticlesPage) -> str: return obj.perex - def items( - self, - obj: MainArticlesPage - ) -> list: - return ( - MainArticlePage - .objects.live() - .child_of(obj) - .order_by("-date") - [:32] - ) + def items(self, obj: MainArticlesPage) -> list: + return MainArticlePage.objects.live().child_of(obj).order_by("-date")[:32] - def item_title( - self, - item: MainArticlePage - ) -> str: + def item_title(self, item: MainArticlePage) -> str: return item.title - def item_description( - self, - item: MainArticlePage - ) -> str: + def item_description(self, item: MainArticlePage) -> str: return render_to_string( "main/feed_item_description.html", {"item": item}, ) - def item_pubdate( - self, - item: MainArticlePage - ) -> datetime: + def item_pubdate(self, item: MainArticlePage) -> datetime: return datetime( - item.date.year, item.date.month, item.date.day, - 12, 0, + item.date.year, + item.date.month, + item.date.day, + 12, + 0, ) - def item_author_name( - self, - item: MainArticlePage - ) -> str: + def item_author_name(self, item: MainArticlePage) -> str: if item.author: return item.author @@ -81,14 +52,25 @@ class LatestArticlesFeed(Feed): return "" - def item_categories( + def item_categories(self, item: MainArticlePage) -> list: + return item.tags.all() + + def item_link(self, item: MainArticlePage) -> str: + return item.get_full_url() + + def item_enclosure_url( self, item: MainArticlePage - ) -> list: - return item.tags.all() + ) -> typing.Union[None, str]: + if item.image is None: + return None + + return item.image.get_rendition("format-webp").full_url - def item_link( + item_enclosure_mime_type = "image/webp" + + def item_enclosure_length( self, item: MainArticlePage - ) -> str: - return item.get_full_url() + ) -> int: + return item.image.file_size diff --git a/main/menu.py b/main/menu.py index 2003749f8f47219e7256782ef8bbb6d9a6b56060..6d65b95e81df271236ddf094f95fd5395f7c3458 100644 --- a/main/menu.py +++ b/main/menu.py @@ -23,6 +23,7 @@ class MenuMixin(MenuMixinBase): [("menu_item", MenuItemBlock())], # , ("menu_parent", MenuParentBlock()) verbose_name="Menu", blank=True, + use_json_field=True, ) class Meta: diff --git a/main/migrations/0004_alter_maincontactpage_contact_boxes_and_more.py b/main/migrations/0004_alter_maincontactpage_contact_boxes_and_more.py index 2e70b011e26b58a0772290f43616186bb0a21cbe..10c611a90f44564e0c7385498302fa6a50b15316 100644 --- a/main/migrations/0004_alter_maincontactpage_contact_boxes_and_more.py +++ b/main/migrations/0004_alter_maincontactpage_contact_boxes_and_more.py @@ -1,62 +1,299 @@ # Generated by Django 4.0.7 on 2022-08-22 13:33 -from django.db import migrations -import main.blocks import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations + +import main.blocks class Migration(migrations.Migration): dependencies = [ - ('main', '0003_mainhomepage_twitter_usernames_and_more'), + ("main", "0003_mainhomepage_twitter_usernames_and_more"), ] operations = [ migrations.AlterField( - model_name='maincontactpage', - name='contact_boxes', - field=wagtail.fields.StreamField([('item', wagtail.blocks.StructBlock([('position', wagtail.blocks.CharBlock(label='Název pozice', required=False)), ('person', wagtail.blocks.PageChooserBlock(label='Osoba', page_type=['main.MainPersonPage']))]))], blank=True, use_json_field=None, verbose_name='Kontaktní boxy'), + model_name="maincontactpage", + name="contact_boxes", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", page_type=["main.MainPersonPage"] + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Kontaktní boxy", + ), ), migrations.AlterField( - model_name='maincontactpage', - name='contact_people', - field=wagtail.fields.StreamField([('item', wagtail.blocks.StructBlock([('position', wagtail.blocks.CharBlock(label='Název pozice', required=False)), ('person', wagtail.blocks.PageChooserBlock(label='Osoba', page_type=['main.MainPersonPage']))]))], blank=True, use_json_field=None, verbose_name='Kontaktní osoby'), + model_name="maincontactpage", + name="contact_people", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", page_type=["main.MainPersonPage"] + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Kontaktní osoby", + ), ), migrations.AlterField( - model_name='mainhomepage', - name='content', - field=wagtail.fields.StreamField([('carousel', wagtail.blocks.StructBlock([('slides', wagtail.blocks.ListBlock(main.blocks.HomePageCarouseSlideBlock, label='Obrázky s nadpisy - carouselu'))])), ('boxes', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Nadpis')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky'))]))], blank=True, use_json_field=None, verbose_name='Hlavní obsah'), + model_name="mainhomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "carousel", + wagtail.blocks.StructBlock( + [ + ( + "slides", + wagtail.blocks.ListBlock( + main.blocks.HomePageCarouseSlideBlock, + label="Obrázky s nadpisy - carouselu", + ), + ) + ] + ), + ), + ( + "boxes", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="Nadpis")), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.BoxBlock, label="Boxíky" + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=None, + verbose_name="Hlavní obsah", + ), ), migrations.AlterField( - model_name='mainhomepage', - name='footer_other_links', - field=wagtail.fields.StreamField([('other_links', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('list', wagtail.blocks.ListBlock(main.blocks.LinkBlock, label='Seznam odkazů s titulkem'))]))], blank=True, use_json_field=None, verbose_name='Bloky dalších odkazů v zápatí webu'), + model_name="mainhomepage", + name="footer_other_links", + field=wagtail.fields.StreamField( + [ + ( + "other_links", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="Titulek")), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.LinkBlock, + label="Seznam odkazů s titulkem", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Bloky dalších odkazů v zápatí webu", + ), ), migrations.AlterField( - model_name='mainhomepage', - name='footer_person_list', - field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('position', wagtail.blocks.CharBlock(label='Název pozice', required=False)), ('person', wagtail.blocks.PageChooserBlock(label='Osoba', page_type=['main.MainPersonPage']))]))], blank=True, use_json_field=None, verbose_name='Osoby v zápatí webu'), + model_name="mainhomepage", + name="footer_person_list", + field=wagtail.fields.StreamField( + [ + ( + "person", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", page_type=["main.MainPersonPage"] + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Osoby v zápatí webu", + ), ), migrations.AlterField( - model_name='mainhomepage', - name='footer_social_links', - field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Titulkek odkazu (text, který se zobrazí místo dlouhého odkazu)')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(label='Ikona'))]))], blank=True, use_json_field=None, verbose_name='Odkazy na sociální sítě v zápatí webu'), + model_name="mainhomepage", + name="footer_social_links", + field=wagtail.fields.StreamField( + [ + ( + "social_links", + wagtail.blocks.StructBlock( + [ + ( + "text", + wagtail.blocks.CharBlock( + label="Titulkek odkazu (text, který se zobrazí místo dlouhého odkazu)" + ), + ), + ("link", wagtail.blocks.URLBlock(label="Odkaz")), + ("icon", wagtail.blocks.CharBlock(label="Ikona")), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Odkazy na sociální sítě v zápatí webu", + ), ), migrations.AlterField( - model_name='mainpeoplepage', - name='people', - field=wagtail.fields.StreamField([('people_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('person_list', wagtail.blocks.ListBlock(wagtail.blocks.PageChooserBlock(label='Detail osoby', page_type=['main.MainPersonPage']), label='Seznam osob'))], label='Seznam osob'))], blank=True, use_json_field=None, verbose_name='Lidé'), + model_name="mainpeoplepage", + name="people", + field=wagtail.fields.StreamField( + [ + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="Titulek")), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.PageChooserBlock( + label="Detail osoby", + page_type=["main.MainPersonPage"], + ), + label="Seznam osob", + ), + ), + ], + label="Seznam osob", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Lidé", + ), ), migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona')), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.TextBlock(label='Obsah'))]), label='Jednotlivé články programu'))], label='Část programu'))], blank=True, use_json_field=None, verbose_name='Program'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona" + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek článku programu" + ), + ), + ( + "text", + wagtail.blocks.TextBlock( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Program", + ), ), migrations.AlterField( - model_name='mainworkpage', - name='timeline', - field=wagtail.fields.StreamField([('article_list', wagtail.blocks.PageChooserBlock(label='Vybrat aktualitu', page_type=['main.MainArticlePage']))], blank=True, use_json_field=None, verbose_name='Timeline'), + model_name="mainworkpage", + name="timeline", + field=wagtail.fields.StreamField( + [ + ( + "article_list", + wagtail.blocks.PageChooserBlock( + label="Vybrat aktualitu", page_type=["main.MainArticlePage"] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Timeline", + ), ), ] diff --git a/main/migrations/0005_mainpersonpage_twitter_username_and_more.py b/main/migrations/0005_mainpersonpage_twitter_username_and_more.py index e515a90e264cab52f1e3927c50211b7b690d70e8..4f5a4c98ec4585319b2166fb21b2a0b1555ba413 100644 --- a/main/migrations/0005_mainpersonpage_twitter_username_and_more.py +++ b/main/migrations/0005_mainpersonpage_twitter_username_and_more.py @@ -1,25 +1,40 @@ # Generated by Django 4.0.7 on 2022-08-23 05:52 -from django.db import migrations, models import wagtail.blocks import wagtail.fields +from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('main', '0004_alter_maincontactpage_contact_boxes_and_more'), + ("main", "0004_alter_maincontactpage_contact_boxes_and_more"), ] operations = [ migrations.AddField( - model_name='mainpersonpage', - name='twitter_username', - field=models.CharField(blank=True, max_length=32, null=True, verbose_name='Uživatelské jméno twitter'), + model_name="mainpersonpage", + name="twitter_username", + field=models.CharField( + blank=True, + max_length=32, + null=True, + verbose_name="Uživatelské jméno twitter", + ), ), migrations.AlterField( - model_name='mainhomepage', - name='twitter_usernames', - field=wagtail.fields.StreamField([('username', wagtail.blocks.CharBlock(label='Twitter uživatelské jméno'))], blank=True, use_json_field=None, verbose_name='Uživatelská jména pro synchronizované twitter účty'), + model_name="mainhomepage", + name="twitter_usernames", + field=wagtail.fields.StreamField( + [ + ( + "username", + wagtail.blocks.CharBlock(label="Twitter uživatelské jméno"), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Uživatelská jména pro synchronizované twitter účty", + ), ), ] diff --git a/main/migrations/0006_mainpersonpage_after_name_mainpersonpage_before_name_and_more.py b/main/migrations/0006_mainpersonpage_after_name_mainpersonpage_before_name_and_more.py index 2b4dfb1976e7bd7c78aa51aac24d214e7ec55f91..b3bd1e210a6907ccd84c54d5e7303692263f771c 100644 --- a/main/migrations/0006_mainpersonpage_after_name_mainpersonpage_before_name_and_more.py +++ b/main/migrations/0006_mainpersonpage_after_name_mainpersonpage_before_name_and_more.py @@ -6,53 +6,74 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('main', '0005_mainpersonpage_twitter_username_and_more'), + ("main", "0005_mainpersonpage_twitter_username_and_more"), ] operations = [ migrations.AddField( - model_name='mainpersonpage', - name='after_name', - field=models.CharField(blank=True, max_length=16, null=True, verbose_name='Tituly za jménem'), + model_name="mainpersonpage", + name="after_name", + field=models.CharField( + blank=True, max_length=16, null=True, verbose_name="Tituly za jménem" + ), ), migrations.AddField( - model_name='mainpersonpage', - name='before_name', - field=models.CharField(blank=True, max_length=16, null=True, verbose_name='Tituly před jménem'), + model_name="mainpersonpage", + name="before_name", + field=models.CharField( + blank=True, max_length=16, null=True, verbose_name="Tituly před jménem" + ), ), migrations.AddField( - model_name='mainpersonpage', - name='email', - field=models.CharField(blank=True, max_length=128, null=True, verbose_name='E-mail'), + model_name="mainpersonpage", + name="email", + field=models.CharField( + blank=True, max_length=128, null=True, verbose_name="E-mail" + ), ), migrations.AddField( - model_name='mainpersonpage', - name='facebook', - field=models.URLField(blank=True, null=True, verbose_name='Odkaz na Facebook'), + model_name="mainpersonpage", + name="facebook", + field=models.URLField( + blank=True, null=True, verbose_name="Odkaz na Facebook" + ), ), migrations.AddField( - model_name='mainpersonpage', - name='instagram', - field=models.URLField(blank=True, null=True, verbose_name='Odkaz na Instagram'), + model_name="mainpersonpage", + name="instagram", + field=models.URLField( + blank=True, null=True, verbose_name="Odkaz na Instagram" + ), ), migrations.AddField( - model_name='mainpersonpage', - name='phone', - field=models.CharField(blank=True, max_length=16, null=True, verbose_name='Telefonní kontakt'), + model_name="mainpersonpage", + name="phone", + field=models.CharField( + blank=True, max_length=16, null=True, verbose_name="Telefonní kontakt" + ), ), migrations.AddField( - model_name='mainpersonpage', - name='position', - field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Pozice/povolání'), + model_name="mainpersonpage", + name="position", + field=models.CharField( + blank=True, max_length=128, null=True, verbose_name="Pozice/povolání" + ), ), migrations.AddField( - model_name='mainpersonpage', - name='twitter', - field=models.URLField(blank=True, null=True, verbose_name='Odkaz na Twitter'), + model_name="mainpersonpage", + name="twitter", + field=models.URLField( + blank=True, null=True, verbose_name="Odkaz na Twitter" + ), ), migrations.AlterField( - model_name='mainpersonpage', - name='twitter_username', - field=models.CharField(blank=True, max_length=32, null=True, verbose_name='Uživatelské jméno twitter pro získání příspěvků'), + model_name="mainpersonpage", + name="twitter_username", + field=models.CharField( + blank=True, + max_length=32, + null=True, + verbose_name="Uživatelské jméno twitter pro získání příspěvků", + ), ), ] diff --git a/main/migrations/0010_alter_mainarticlepage_content.py b/main/migrations/0010_alter_mainarticlepage_content.py index 0e3b901e6eb153a2ab6b21211c9ba9243f9b04d2..e6486c843665be748f0275cc7df4133f5189de34 100644 --- a/main/migrations/0010_alter_mainarticlepage_content.py +++ b/main/migrations/0010_alter_mainarticlepage_content.py @@ -1,22 +1,72 @@ # Generated by Django 4.0.7 on 2022-08-23 20:29 -from django.db import migrations import wagtail.blocks import wagtail.documents.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0009_rename_footer_social_links_mainhomepage_social_links'), + ("main", "0009_rename_footer_social_links_mainhomepage_social_links"), ] operations = [ migrations.AlterField( - model_name='mainarticlepage', - name='content', - field=wagtail.fields.StreamField([('text', wagtail.blocks.RichTextBlock()), ('quote', wagtail.blocks.StructBlock([('quote', wagtail.blocks.CharBlock(label='Citace')), ('autor_name', wagtail.blocks.CharBlock(label='Jméno autora'))])), ('download', wagtail.blocks.StructBlock([('file', wagtail.documents.blocks.DocumentChooserBlock(label='Stáhnutelný soubor'))])), ('image', wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('href', wagtail.blocks.URLBlock(label='Odkaz k textu')), ('text', wagtail.blocks.CharBlock(label='Text'))]))], blank=True, use_json_field=None, verbose_name='Článek'), + model_name="mainarticlepage", + name="content", + field=wagtail.fields.StreamField( + [ + ("text", wagtail.blocks.RichTextBlock()), + ( + "quote", + wagtail.blocks.StructBlock( + [ + ("quote", wagtail.blocks.CharBlock(label="Citace")), + ( + "autor_name", + wagtail.blocks.CharBlock(label="Jméno autora"), + ), + ] + ), + ), + ( + "download", + wagtail.blocks.StructBlock( + [ + ( + "file", + wagtail.documents.blocks.DocumentChooserBlock( + label="Stáhnutelný soubor" + ), + ) + ] + ), + ), + ( + "image", + wagtail.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek" + ), + ), + ( + "href", + wagtail.blocks.URLBlock(label="Odkaz k textu"), + ), + ("text", wagtail.blocks.CharBlock(label="Text")), + ] + ), + ), + ], + blank=True, + use_json_field=None, + verbose_name="Článek", + ), ), ] diff --git a/main/migrations/0018_alter_maincontactpage_contact_boxes.py b/main/migrations/0018_alter_maincontactpage_contact_boxes.py index 9abe6570081bc48a124eb0a6c8d0fee814603b1e..ab6ebf170a0d7615ac3ee55e983988d959965706 100644 --- a/main/migrations/0018_alter_maincontactpage_contact_boxes.py +++ b/main/migrations/0018_alter_maincontactpage_contact_boxes.py @@ -1,20 +1,46 @@ # Generated by Django 4.0.7 on 2022-08-24 19:58 -from django.db import migrations import wagtail.blocks import wagtail.fields +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0017_remove_mainarticlespage_timeline'), + ("main", "0017_remove_mainarticlespage_timeline"), ] operations = [ migrations.AlterField( - model_name='maincontactpage', - name='contact_boxes', - field=wagtail.fields.StreamField([('item', wagtail.blocks.StructBlock([('button_link', wagtail.blocks.URLBlock(label='Odkaz tlačítka')), ('button_text', wagtail.blocks.CharBlock(label='Text tlačítka')), ('title', wagtail.blocks.CharBlock(label='Titulek')), ('subtitle', wagtail.blocks.CharBlock(label='Podtitulek'))]))], blank=True, use_json_field=None, verbose_name='Kontaktní boxy'), + model_name="maincontactpage", + name="contact_boxes", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ( + "button_link", + wagtail.blocks.URLBlock(label="Odkaz tlačítka"), + ), + ( + "button_text", + wagtail.blocks.CharBlock(label="Text tlačítka"), + ), + ("title", wagtail.blocks.CharBlock(label="Titulek")), + ( + "subtitle", + wagtail.blocks.CharBlock(label="Podtitulek"), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Kontaktní boxy", + ), ), ] diff --git a/main/migrations/0019_alter_maincontactpage_text.py b/main/migrations/0019_alter_maincontactpage_text.py index 954778a55f667fac8a961cc9be5a23c840ea408a..aa613ee8ff2e80f40f16dd55e924f356ed2712f0 100644 --- a/main/migrations/0019_alter_maincontactpage_text.py +++ b/main/migrations/0019_alter_maincontactpage_text.py @@ -1,20 +1,45 @@ # Generated by Django 4.0.7 on 2022-08-24 20:25 -from django.db import migrations import wagtail.blocks import wagtail.fields +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0018_alter_maincontactpage_contact_boxes'), + ("main", "0018_alter_maincontactpage_contact_boxes"), ] operations = [ migrations.AlterField( - model_name='maincontactpage', - name='text', - field=wagtail.fields.StreamField([('two_columns_text', wagtail.blocks.StructBlock([('text_column_1', wagtail.blocks.RichTextBlock(label='První sloupec textu')), ('text_column_2', wagtail.blocks.RichTextBlock(label='Druhý sloupec textu'))]))], blank=True, use_json_field=None, verbose_name='Kontaktní informace'), + model_name="maincontactpage", + name="text", + field=wagtail.fields.StreamField( + [ + ( + "two_columns_text", + wagtail.blocks.StructBlock( + [ + ( + "text_column_1", + wagtail.blocks.RichTextBlock( + label="První sloupec textu" + ), + ), + ( + "text_column_2", + wagtail.blocks.RichTextBlock( + label="Druhý sloupec textu" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Kontaktní informace", + ), ), ] diff --git a/main/migrations/0020_alter_mainhomepage_content.py b/main/migrations/0020_alter_mainhomepage_content.py index 5c3ffe1d1b90fb715c32a24ed412c65b28e0174b..2d1156faa0c1b953adad05e2b79554b8b65c6c26 100644 --- a/main/migrations/0020_alter_mainhomepage_content.py +++ b/main/migrations/0020_alter_mainhomepage_content.py @@ -1,21 +1,115 @@ # Generated by Django 4.0.7 on 2022-08-25 04:46 -from django.db import migrations -import main.blocks import wagtail.blocks import wagtail.fields +from django.db import migrations + +import main.blocks class Migration(migrations.Migration): dependencies = [ - ('main', '0019_alter_maincontactpage_text'), + ("main", "0019_alter_maincontactpage_text"), ] operations = [ migrations.AlterField( - model_name='mainhomepage', - name='content', - field=wagtail.fields.StreamField([('carousel', wagtail.blocks.StructBlock([('slides', wagtail.blocks.ListBlock(main.blocks.HomePageCarouseSlideBlock, label='Obrázky s nadpisy - carouselu'))])), ('news', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Nejnovější články se načtou automaticky', label='Titulek'))])), ('people', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Hlavní titulek')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky'))])), ('regions', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Články pro regiony se načtou automaticky', label='Titulek'))])), ('tweets', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Tweety budou načteny pro všchny profily uvedené v nastavení webu automaticky', label='Titulek'))])), ('boxes', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Nadpis')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky'))]))], blank=True, use_json_field=None, verbose_name='Hlavní obsah'), + model_name="mainhomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "carousel", + wagtail.blocks.StructBlock( + [ + ( + "slides", + wagtail.blocks.ListBlock( + main.blocks.HomePageCarouseSlideBlock, + label="Obrázky s nadpisy - carouselu", + ), + ) + ] + ), + ), + ( + "news", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Nejnovější články se načtou automaticky", + label="Titulek", + ), + ) + ] + ), + ), + ( + "people", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock(label="Hlavní titulek"), + ), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.BoxBlock, label="Boxíky" + ), + ), + ] + ), + ), + ( + "regions", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Články pro regiony se načtou automaticky", + label="Titulek", + ), + ) + ] + ), + ), + ( + "tweets", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Tweety budou načteny pro všchny profily uvedené v nastavení webu automaticky", + label="Titulek", + ), + ) + ] + ), + ), + ( + "boxes", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="Nadpis")), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.BoxBlock, label="Boxíky" + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=None, + verbose_name="Hlavní obsah", + ), ), ] diff --git a/main/migrations/0021_alter_maincontactpage_contact_boxes.py b/main/migrations/0021_alter_maincontactpage_contact_boxes.py index 507300a1173e67d0404eac2b819d39d1ae73600a..78e02c2a50a36ceaf75f795dd2897a0737f11239 100644 --- a/main/migrations/0021_alter_maincontactpage_contact_boxes.py +++ b/main/migrations/0021_alter_maincontactpage_contact_boxes.py @@ -1,21 +1,53 @@ # Generated by Django 4.0.7 on 2022-08-25 05:55 -from django.db import migrations import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0020_alter_mainhomepage_content'), + ("main", "0020_alter_mainhomepage_content"), ] operations = [ migrations.AlterField( - model_name='maincontactpage', - name='contact_boxes', - field=wagtail.fields.StreamField([('item', wagtail.blocks.StructBlock([('button_link', wagtail.blocks.URLBlock(label='Odkaz tlačítka')), ('button_text', wagtail.blocks.CharBlock(label='Text tlačítka')), ('title', wagtail.blocks.CharBlock(label='Titulek')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Ikona')), ('subtitle', wagtail.blocks.CharBlock(label='Podtitulek'))]))], blank=True, use_json_field=None, verbose_name='Kontaktní boxy'), + model_name="maincontactpage", + name="contact_boxes", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ( + "button_link", + wagtail.blocks.URLBlock(label="Odkaz tlačítka"), + ), + ( + "button_text", + wagtail.blocks.CharBlock(label="Text tlačítka"), + ), + ("title", wagtail.blocks.CharBlock(label="Titulek")), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona" + ), + ), + ( + "subtitle", + wagtail.blocks.CharBlock(label="Podtitulek"), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Kontaktní boxy", + ), ), ] diff --git a/main/migrations/0022_alter_mainarticlepage_region.py b/main/migrations/0022_alter_mainarticlepage_region.py index 592ac0605abfb5c8afde29b46826c2b8be26ab60..24bfb4c2a4f20018fe90f55fbe5d69cfbbc6182b 100644 --- a/main/migrations/0022_alter_mainarticlepage_region.py +++ b/main/migrations/0022_alter_mainarticlepage_region.py @@ -6,13 +6,35 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('main', '0021_alter_maincontactpage_contact_boxes'), + ("main", "0021_alter_maincontactpage_contact_boxes"), ] operations = [ migrations.AlterField( - model_name='mainarticlepage', - name='region', - field=models.CharField(blank=True, choices=[('PHA', 'Hlavní město Praha'), ('JHC', 'Jihočeský kraj'), ('JHM', 'Jihomoravský kraj'), ('KVK', 'Karlovarský kraj'), ('VYS', 'Kraj Vysočina'), ('KHK', 'Královéhradecký kraj'), ('LBK', 'Liberecký kraj'), ('MSK', 'Moravskoslezský kraj'), ('OLK', 'Olomoucký kraj'), ('PAK', 'Pardubický kraj'), ('PLK', 'Plzeňský kraj'), ('STC', 'Středočeský kraj'), ('ULK', 'Ústecký kraj'), ('ZLK', 'Zlínský kraj')], help_text='Kraj, ke kterému se článek vztahuje', max_length=3, null=True, verbose_name='Kraj'), + model_name="mainarticlepage", + name="region", + field=models.CharField( + blank=True, + choices=[ + ("PHA", "Hlavní město Praha"), + ("JHC", "Jihočeský kraj"), + ("JHM", "Jihomoravský kraj"), + ("KVK", "Karlovarský kraj"), + ("VYS", "Kraj Vysočina"), + ("KHK", "Královéhradecký kraj"), + ("LBK", "Liberecký kraj"), + ("MSK", "Moravskoslezský kraj"), + ("OLK", "Olomoucký kraj"), + ("PAK", "Pardubický kraj"), + ("PLK", "Plzeňský kraj"), + ("STC", "Středočeský kraj"), + ("ULK", "Ústecký kraj"), + ("ZLK", "Zlínský kraj"), + ], + help_text="Kraj, ke kterému se článek vztahuje", + max_length=3, + null=True, + verbose_name="Kraj", + ), ), ] diff --git a/main/migrations/0023_alter_mainprogrampage_program.py b/main/migrations/0023_alter_mainprogrampage_program.py index a8aa7b1cdc4af01093fe4f1fd9071e046c017f6e..1618e894b1207e5c5d5e05c71bb87c80df7ef8a1 100644 --- a/main/migrations/0023_alter_mainprogrampage_program.py +++ b/main/migrations/0023_alter_mainprogrampage_program.py @@ -1,21 +1,77 @@ # Generated by Django 4.0.7 on 2022-08-25 09:18 -from django.db import migrations import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0022_alter_mainarticlepage_region'), + ("main", "0022_alter_mainarticlepage_region"), ] operations = [ migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona')), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.TextBlock(label='Obsah'))]), label='Jednotlivé články programu'))], label='Část programu'))], blank=True, use_json_field=None, verbose_name='Program'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "slug", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky vyplněno", + label="Slug části programu", + required=False, + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona" + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek článku programu" + ), + ), + ( + "text", + wagtail.blocks.TextBlock( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Program", + ), ), ] diff --git a/main/migrations/0024_mainhomepage_max_items_alter_mainhomepage_content_and_more.py b/main/migrations/0024_mainhomepage_max_items_alter_mainhomepage_content_and_more.py index 7c08c2e516f299ded327499a55fab8b11bf67fe2..310eb5495efe5616c70310adfe3fdb930b24b1de 100644 --- a/main/migrations/0024_mainhomepage_max_items_alter_mainhomepage_content_and_more.py +++ b/main/migrations/0024_mainhomepage_max_items_alter_mainhomepage_content_and_more.py @@ -1,36 +1,186 @@ # Generated by Django 4.0.7 on 2022-08-26 10:16 -from django.db import migrations, models -import main.blocks import wagtail.blocks import wagtail.fields +from django.db import migrations, models + +import main.blocks class Migration(migrations.Migration): dependencies = [ - ('main', '0023_alter_mainprogrampage_program'), + ("main", "0023_alter_mainprogrampage_program"), ] operations = [ migrations.AddField( - model_name='mainhomepage', - name='max_items', - field=models.IntegerField(default=4, verbose_name='Počet tweetů na stránce'), + model_name="mainhomepage", + name="max_items", + field=models.IntegerField( + default=4, verbose_name="Počet tweetů na stránce" + ), ), migrations.AlterField( - model_name='mainhomepage', - name='content', - field=wagtail.fields.StreamField([('carousel', wagtail.blocks.StructBlock([('slides', wagtail.blocks.ListBlock(main.blocks.HomePageCarouseSlideBlock, label='Obrázky s nadpisy - carouselu'))])), ('news', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Nejnovější články se načtou automaticky', label='Titulek'))])), ('people', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Hlavní titulek')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky'))])), ('regions', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Články pro regiony se načtou automaticky', label='Titulek'))])), ('tweets', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Tweety budou načteny pro všechny profily uvedené v nastavení webu automaticky', label='Titulek'))])), ('boxes', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Nadpis')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky'))]))], blank=True, use_json_field=None, verbose_name='Hlavní obsah'), + model_name="mainhomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "carousel", + wagtail.blocks.StructBlock( + [ + ( + "slides", + wagtail.blocks.ListBlock( + main.blocks.HomePageCarouseSlideBlock, + label="Obrázky s nadpisy - carouselu", + ), + ) + ] + ), + ), + ( + "news", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Nejnovější články se načtou automaticky", + label="Titulek", + ), + ) + ] + ), + ), + ( + "people", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock(label="Hlavní titulek"), + ), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.BoxBlock, label="Boxíky" + ), + ), + ] + ), + ), + ( + "regions", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Články pro regiony se načtou automaticky", + label="Titulek", + ), + ) + ] + ), + ), + ( + "tweets", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Tweety budou načteny pro všechny profily uvedené v nastavení webu automaticky", + label="Titulek", + ), + ) + ] + ), + ), + ( + "boxes", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="Nadpis")), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.BoxBlock, label="Boxíky" + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=None, + verbose_name="Hlavní obsah", + ), ), migrations.AlterField( - model_name='mainhomepage', - name='social_links', - field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons', label='Ikona'))]))], blank=True, use_json_field=None, verbose_name='Odkazy na sociální sítě v zápatí webu'), + model_name="mainhomepage", + name="social_links", + field=wagtail.fields.StreamField( + [ + ( + "social_links", + wagtail.blocks.StructBlock( + [ + ( + "text", + wagtail.blocks.CharBlock( + label="Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)" + ), + ), + ("link", wagtail.blocks.URLBlock(label="Odkaz")), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons", + label="Ikona", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Odkazy na sociální sítě v zápatí webu", + ), ), migrations.AlterField( - model_name='mainpersonpage', - name='social_links', - field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons', label='Ikona'))]))], blank=True, use_json_field=None, verbose_name='Odkazy na sociální sítě'), + model_name="mainpersonpage", + name="social_links", + field=wagtail.fields.StreamField( + [ + ( + "social_links", + wagtail.blocks.StructBlock( + [ + ( + "text", + wagtail.blocks.CharBlock( + label="Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)" + ), + ), + ("link", wagtail.blocks.URLBlock(label="Odkaz")), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons", + label="Ikona", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Odkazy na sociální sítě", + ), ), ] diff --git a/main/migrations/0025_alter_mainhomepage_social_links_and_more.py b/main/migrations/0025_alter_mainhomepage_social_links_and_more.py index deaf8d37ad8595cfcfdb8f730b056a2cfee4f372..3ea4b65efb1e19c643cc51828845cbeab133f46c 100644 --- a/main/migrations/0025_alter_mainhomepage_social_links_and_more.py +++ b/main/migrations/0025_alter_mainhomepage_social_links_and_more.py @@ -1,35 +1,97 @@ # Generated by Django 4.0.7 on 2022-08-26 13:17 -from django.db import migrations, models import wagtail.blocks import wagtail.fields +from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('main', '0024_mainhomepage_max_items_alter_mainhomepage_content_and_more'), + ("main", "0024_mainhomepage_max_items_alter_mainhomepage_content_and_more"), ] operations = [ migrations.AlterField( - model_name='mainhomepage', - name='social_links', - field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku', label='Ikona'))]))], blank=True, use_json_field=None, verbose_name='Odkazy na sociální sítě v zápatí webu'), + model_name="mainhomepage", + name="social_links", + field=wagtail.fields.StreamField( + [ + ( + "social_links", + wagtail.blocks.StructBlock( + [ + ( + "text", + wagtail.blocks.CharBlock( + label="Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)" + ), + ), + ("link", wagtail.blocks.URLBlock(label="Odkaz")), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku", + label="Ikona", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Odkazy na sociální sítě v zápatí webu", + ), ), migrations.AlterField( - model_name='mainpersonpage', - name='before_name', - field=models.CharField(blank=True, max_length=32, null=True, verbose_name='Tituly před jménem'), + model_name="mainpersonpage", + name="before_name", + field=models.CharField( + blank=True, max_length=32, null=True, verbose_name="Tituly před jménem" + ), ), migrations.AlterField( - model_name='mainpersonpage', - name='social_links', - field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku', label='Ikona'))]))], blank=True, use_json_field=None, verbose_name='Odkazy na sociální sítě'), + model_name="mainpersonpage", + name="social_links", + field=wagtail.fields.StreamField( + [ + ( + "social_links", + wagtail.blocks.StructBlock( + [ + ( + "text", + wagtail.blocks.CharBlock( + label="Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)" + ), + ), + ("link", wagtail.blocks.URLBlock(label="Odkaz")), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku", + label="Ikona", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Odkazy na sociální sítě", + ), ), migrations.AlterField( - model_name='mainpersonpage', - name='twitter_username', - field=models.CharField(blank=True, help_text='Uživatelské jméno zadejte bez @ na začátku', max_length=32, null=True, verbose_name='Uživatelské jméno twitter pro získání příspěvků'), + model_name="mainpersonpage", + name="twitter_username", + field=models.CharField( + blank=True, + help_text="Uživatelské jméno zadejte bez @ na začátku", + max_length=32, + null=True, + verbose_name="Uživatelské jméno twitter pro získání příspěvků", + ), ), ] diff --git a/main/migrations/0031_alter_mainprogrampage_perex.py b/main/migrations/0031_alter_mainprogrampage_perex.py index 87364e7b6b298fadf67209a3721fcfa0f36a653d..407b69b83a9a4aee6274efed5eccb7413641d137 100644 --- a/main/migrations/0031_alter_mainprogrampage_perex.py +++ b/main/migrations/0031_alter_mainprogrampage_perex.py @@ -1,19 +1,19 @@ # Generated by Django 4.0.7 on 2022-09-06 11:42 -from django.db import migrations import wagtail.fields +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0030_mainarticlepage_is_black'), + ("main", "0030_mainarticlepage_is_black"), ] operations = [ migrations.AlterField( - model_name='mainprogrampage', - name='perex', + model_name="mainprogrampage", + name="perex", field=wagtail.fields.RichTextField(), ), ] diff --git a/main/migrations/0032_alter_mainprogrampage_program.py b/main/migrations/0032_alter_mainprogrampage_program.py index 9748a819d64b1ebe364afdd788d97e564420c7ba..72857cf850302b89fa8c4fff28978031127ae6c6 100644 --- a/main/migrations/0032_alter_mainprogrampage_program.py +++ b/main/migrations/0032_alter_mainprogrampage_program.py @@ -1,21 +1,77 @@ # Generated by Django 4.0.7 on 2022-12-05 11:57 -from django.db import migrations import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0031_alter_mainprogrampage_perex'), + ("main", "0031_alter_mainprogrampage_perex"), ] operations = [ migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona')), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(label='Obsah'))]), label='Jednotlivé články programu'))], label='Část programu'))], blank=True, use_json_field=None, verbose_name='Program'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "slug", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky vyplněno", + label="Slug části programu", + required=False, + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona" + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek článku programu" + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Program", + ), ), ] diff --git a/main/migrations/0033_alter_mainpersonpage_position.py b/main/migrations/0033_alter_mainpersonpage_position.py index 9d5f8f84eb32f849a601d206d8e10a98bee250ca..31080aa9a1749f8d69c87e4e07a5669009d8bb8f 100644 --- a/main/migrations/0033_alter_mainpersonpage_position.py +++ b/main/migrations/0033_alter_mainpersonpage_position.py @@ -6,13 +6,15 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('main', '0032_alter_mainprogrampage_program'), + ("main", "0032_alter_mainprogrampage_program"), ] operations = [ migrations.AlterField( - model_name='mainpersonpage', - name='position', - field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Pozice/povolání'), + model_name="mainpersonpage", + name="position", + field=models.CharField( + blank=True, max_length=200, null=True, verbose_name="Pozice/povolání" + ), ), ] diff --git a/main/migrations/0034_alter_mainpeoplepage_perex.py b/main/migrations/0034_alter_mainpeoplepage_perex.py index 711e4e98970655211e29b67ecc4bdd1de1283364..85598bc0ce60db55f39cfc40b0e880154b3faa4a 100644 --- a/main/migrations/0034_alter_mainpeoplepage_perex.py +++ b/main/migrations/0034_alter_mainpeoplepage_perex.py @@ -1,19 +1,19 @@ # Generated by Django 4.0.7 on 2022-12-07 09:59 -from django.db import migrations import wagtail.fields +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0033_alter_mainpersonpage_position'), + ("main", "0033_alter_mainpersonpage_position"), ] operations = [ migrations.AlterField( - model_name='mainpeoplepage', - name='perex', + model_name="mainpeoplepage", + name="perex", field=wagtail.fields.RichTextField(), ), ] diff --git a/main/migrations/0035_rename_contact_newcomers_mainhomepage_contact_newcomers_link_and_more.py b/main/migrations/0035_rename_contact_newcomers_mainhomepage_contact_newcomers_link_and_more.py index b9af282ca3d65e8455f7ad136f35efa5475712d0..96c526306dd8e64e39aaed8c490b733f456c555f 100644 --- a/main/migrations/0035_rename_contact_newcomers_mainhomepage_contact_newcomers_link_and_more.py +++ b/main/migrations/0035_rename_contact_newcomers_mainhomepage_contact_newcomers_link_and_more.py @@ -6,28 +6,38 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('main', '0034_alter_mainpeoplepage_perex'), + ("main", "0034_alter_mainpeoplepage_perex"), ] operations = [ migrations.RenameField( - model_name='mainhomepage', - old_name='contact_newcomers', - new_name='contact_newcomers_link', + model_name="mainhomepage", + old_name="contact_newcomers", + new_name="contact_newcomers_link", ), migrations.RenameField( - model_name='mainhomepage', - old_name='donation_page', - new_name='donation_page_link', + model_name="mainhomepage", + old_name="donation_page", + new_name="donation_page_link", ), migrations.AddField( - model_name='mainhomepage', - name='contact_newcomers_text', - field=models.TextField(blank=True, default='Nalodit se', null=True, verbose_name='Text na tlačítku pro zájemce o členství'), + model_name="mainhomepage", + name="contact_newcomers_text", + field=models.TextField( + blank=True, + default="Nalodit se", + null=True, + verbose_name="Text na tlačítku pro zájemce o členství", + ), ), migrations.AddField( - model_name='mainhomepage', - name='donation_page_text', - field=models.TextField(blank=True, default='Darovat', null=True, verbose_name='Text na tlačítku pro příjem darů'), + model_name="mainhomepage", + name="donation_page_text", + field=models.TextField( + blank=True, + default="Darovat", + null=True, + verbose_name="Text na tlačítku pro příjem darů", + ), ), ] diff --git a/main/migrations/0036_maincrossroadpage.py b/main/migrations/0036_maincrossroadpage.py index f575ce3c1e02f1c8dd1268a05987ce3c35217561..3c852a743e1e2c4fff8a732fc9b25a8536031a3e 100644 --- a/main/migrations/0036_maincrossroadpage.py +++ b/main/migrations/0036_maincrossroadpage.py @@ -1,34 +1,195 @@ # Generated by Django 4.0.7 on 2022-12-18 18:48 -from django.db import migrations, models import django.db.models.deletion -import shared.models import wagtail.blocks import wagtail.fields import wagtail.images.blocks import wagtailmetadata.models +from django.db import migrations, models + +import shared.models class Migration(migrations.Migration): dependencies = [ - ('wagtailcore', '0069_log_entry_jsonfield'), - ('wagtailimages', '0024_index_image_file_hash'), - ('main', '0035_rename_contact_newcomers_mainhomepage_contact_newcomers_link_and_more'), + ("wagtailcore", "0069_log_entry_jsonfield"), + ("wagtailimages", "0024_index_image_file_hash"), + ( + "main", + "0035_rename_contact_newcomers_mainhomepage_contact_newcomers_link_and_more", + ), ] operations = [ migrations.CreateModel( - name='MainCrossroadPage', + name="MainCrossroadPage", fields=[ - ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), - ('headlined_cards_content', wagtail.fields.StreamField([('headlined_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=['main.MainArticlesPage', 'main.MainProgramPage', 'main.MainPeoplePage', 'main.MainPersonPage', 'main.MainSimplePage', 'main.MainContactPage', 'main.MainCrossroadPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty odkazu'))]))], blank=True, use_json_field=None, verbose_name='Karty rozcestníku s nadpisem')), - ('cards_content', wagtail.fields.StreamField([('cards', 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.MainProgramPage', 'main.MainPeoplePage', 'main.MainPersonPage', 'main.MainSimplePage', 'main.MainContactPage', 'main.MainCrossroadPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]))], blank=True, use_json_field=None, verbose_name='Karty rozcestníku')), - ('search_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image', verbose_name='Search image')), + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "headlined_cards_content", + wagtail.fields.StreamField( + [ + ( + "headlined_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=[ + "main.MainArticlesPage", + "main.MainProgramPage", + "main.MainPeoplePage", + "main.MainPersonPage", + "main.MainSimplePage", + "main.MainContactPage", + "main.MainCrossroadPage", + ], + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Karty odkazu", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Karty rozcestníku s nadpisem", + ), + ), + ( + "cards_content", + wagtail.fields.StreamField( + [ + ( + "cards", + 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.MainProgramPage", + "main.MainPeoplePage", + "main.MainPersonPage", + "main.MainSimplePage", + "main.MainContactPage", + "main.MainCrossroadPage", + ], + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Karty rozcestníku", + ), + ), + ( + "search_image", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Search image", + ), + ), ], options={ - 'verbose_name': 'Rozcestník s kartami', + "verbose_name": "Rozcestník s kartami", }, - bases=(shared.models.SubpageMixin, wagtailmetadata.models.WagtailImageMetadataMixin, 'wagtailcore.page', models.Model), + bases=( + shared.models.SubpageMixin, + wagtailmetadata.models.WagtailImageMetadataMixin, + "wagtailcore.page", + models.Model, + ), ), ] diff --git a/main/migrations/0037_alter_mainprogrampage_program.py b/main/migrations/0037_alter_mainprogrampage_program.py index c1e2ca2f6b402fb3b2165700223302eaf225c237..1ce6edae61f275e309124d0ed64238dc3694ff44 100644 --- a/main/migrations/0037_alter_mainprogrampage_program.py +++ b/main/migrations/0037_alter_mainprogrampage_program.py @@ -1,21 +1,83 @@ # Generated by Django 4.0.7 on 2022-12-19 21:29 -from django.db import migrations import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0036_maincrossroadpage'), + ("main", "0036_maincrossroadpage"), ] operations = [ migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona')), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(label='Obsah'))]), label='Jednotlivé články programu'))], label='Část programu'))], blank=True, use_json_field=None, verbose_name='Program'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "slug", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky vyplněno", + label="Slug části programu", + required=False, + ), + ), + ( + "point_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "url", + wagtail.blocks.URLBlock( + label="Odkaz pokrývající celou tuto část" + ), + ), + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona" + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek článku programu" + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Program", + ), ), ] diff --git a/main/migrations/0038_alter_maincrossroadpage_cards_content_and_more.py b/main/migrations/0038_alter_maincrossroadpage_cards_content_and_more.py index 7446b2d1213ffea630066fa580e4e8b4ee51772f..cf2ac45e9e04a939cd2d2ffd1bcd54ad138f410e 100644 --- a/main/migrations/0038_alter_maincrossroadpage_cards_content_and_more.py +++ b/main/migrations/0038_alter_maincrossroadpage_cards_content_and_more.py @@ -1,31 +1,219 @@ # Generated by Django 4.0.7 on 2022-12-29 16:36 -from django.db import migrations import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0037_alter_mainprogrampage_program'), + ("main", "0037_alter_mainprogrampage_program"), ] operations = [ migrations.AlterField( - model_name='maincrossroadpage', - name='cards_content', - field=wagtail.fields.StreamField([('cards', 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))]))], blank=True, use_json_field=None, verbose_name='Karty rozcestníku'), + model_name="maincrossroadpage", + name="cards_content", + field=wagtail.fields.StreamField( + [ + ( + "cards", + 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 + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Karty rozcestníku", + ), ), migrations.AlterField( - model_name='maincrossroadpage', - name='headlined_cards_content', - field=wagtail.fields.StreamField([('headlined_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=['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 odkazu'))]))], blank=True, use_json_field=None, verbose_name='Karty rozcestníku s nadpisem'), + model_name="maincrossroadpage", + name="headlined_cards_content", + field=wagtail.fields.StreamField( + [ + ( + "headlined_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=[ + "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 odkazu", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Karty rozcestníku s nadpisem", + ), ), migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('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')), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(label='Obsah'))]), label='Jednotlivé články programu'))], label='Část programu'))], blank=True, use_json_field=None, verbose_name='Program'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "slug", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky vyplněno", + label="Slug části programu", + required=False, + ), + ), + ( + "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" + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek článku programu" + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Program", + ), ), ] diff --git a/main/migrations/0039_alter_mainprogrampage_program.py b/main/migrations/0039_alter_mainprogrampage_program.py index 150a5cad948de6ed22a39323486d59402dde9e2d..e558d63ed6dc723d2b9d9b587fe6832fca93d289 100644 --- a/main/migrations/0039_alter_mainprogrampage_program.py +++ b/main/migrations/0039_alter_mainprogrampage_program.py @@ -1,21 +1,84 @@ # Generated by Django 4.0.7 on 2022-12-30 13:16 -from django.db import migrations import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0038_alter_maincrossroadpage_cards_content_and_more'), + ("main", "0038_alter_maincrossroadpage_cards_content_and_more"), ] operations = [ migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('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(label='Obsah'))]), label='Jednotlivé články programu'))], label='Část programu'))], blank=True, use_json_field=None, verbose_name='Program'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "slug", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky vyplněno", + label="Slug části programu", + required=False, + ), + ), + ( + "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( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Program", + ), ), ] diff --git a/main/migrations/0040_alter_mainprogrampage_program.py b/main/migrations/0040_alter_mainprogrampage_program.py index 9c60fe0cce25a9e3afa9625f7ef9da8160f928e8..e50d76c960978b2fad04c1d0408ca637eea524f6 100644 --- a/main/migrations/0040_alter_mainprogrampage_program.py +++ b/main/migrations/0040_alter_mainprogrampage_program.py @@ -1,21 +1,90 @@ # Generated by Django 4.0.7 on 2022-12-30 13:26 -from django.db import migrations import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0039_alter_mainprogrampage_program'), + ("main", "0039_alter_mainprogrampage_program"), ] operations = [ migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('perex', wagtail.blocks.RichTextBlock(label='Perex', required=False)), ('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(label='Obsah'))]), label='Jednotlivé články programu'))], label='Část programu'))], blank=True, use_json_field=None, verbose_name='Program'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "slug", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky vyplněno", + label="Slug části programu", + required=False, + ), + ), + ( + "perex", + wagtail.blocks.RichTextBlock( + label="Perex", required=False + ), + ), + ( + "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( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Program", + ), ), ] diff --git a/main/migrations/0041_alter_mainprogrampage_program.py b/main/migrations/0041_alter_mainprogrampage_program.py index 0416d2190ff7336b1c1d8c84af4aa1c4b6adc3a2..beeb7e510169c4516f942cba73405a35f3845ed8 100644 --- a/main/migrations/0041_alter_mainprogrampage_program.py +++ b/main/migrations/0041_alter_mainprogrampage_program.py @@ -1,21 +1,90 @@ # Generated by Django 4.0.7 on 2023-01-04 06:24 -from django.db import migrations import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('main', '0040_alter_mainprogrampage_program'), + ("main", "0040_alter_mainprogrampage_program"), ] operations = [ migrations.AlterField( - model_name='mainprogrampage', - name='program', - field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('perex', wagtail.blocks.RichTextBlock(label='Perex části programu', required=False)), ('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(label='Obsah'))]), label='Jednotlivé články programu'))], label='Část programu'))], blank=True, use_json_field=None, verbose_name='Program'), + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "slug", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky vyplněno", + label="Slug části programu", + required=False, + ), + ), + ( + "perex", + wagtail.blocks.RichTextBlock( + label="Perex části programu", required=False + ), + ), + ( + "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( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=None, + verbose_name="Program", + ), ), ] diff --git a/main/migrations/0042_alter_mainarticlepage_content_and_more.py b/main/migrations/0042_alter_mainarticlepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..bd5dec8ec1effbd1c210d4ab96f1bb850fe0910a --- /dev/null +++ b/main/migrations/0042_alter_mainarticlepage_content_and_more.py @@ -0,0 +1,765 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +import wagtail.blocks +import wagtail.documents.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + +import main.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ("main", "0041_alter_mainprogrampage_program"), + ] + + operations = [ + migrations.AlterField( + model_name="mainarticlepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + template="main/blocks/rich_text_block.html" + ), + ), + ( + "quote", + wagtail.blocks.StructBlock( + [ + ("quote", wagtail.blocks.CharBlock(label="Citace")), + ( + "autor_name", + wagtail.blocks.CharBlock(label="Jméno autora"), + ), + ] + ), + ), + ( + "download", + wagtail.blocks.StructBlock( + [ + ( + "file", + wagtail.documents.blocks.DocumentChooserBlock( + label="Stáhnutelný soubor" + ), + ) + ] + ), + ), + ( + "image", + wagtail.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek" + ), + ), + ( + "href", + wagtail.blocks.URLBlock(label="Odkaz k textu"), + ), + ("text", wagtail.blocks.CharBlock(label="Text")), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Článek", + ), + ), + migrations.AlterField( + model_name="maincontactpage", + name="contact_boxes", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ( + "button_link", + wagtail.blocks.URLBlock(label="Odkaz tlačítka"), + ), + ( + "button_text", + wagtail.blocks.CharBlock(label="Text tlačítka"), + ), + ("title", wagtail.blocks.CharBlock(label="Titulek")), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Ikona" + ), + ), + ( + "subtitle", + wagtail.blocks.CharBlock(label="Podtitulek"), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Kontaktní boxy", + ), + ), + migrations.AlterField( + model_name="maincontactpage", + name="contact_people", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", page_type=["main.MainPersonPage"] + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Kontaktní osoby", + ), + ), + migrations.AlterField( + model_name="maincontactpage", + name="text", + field=wagtail.fields.StreamField( + [ + ( + "two_columns_text", + wagtail.blocks.StructBlock( + [ + ( + "text_column_1", + wagtail.blocks.RichTextBlock( + label="První sloupec textu" + ), + ), + ( + "text_column_2", + wagtail.blocks.RichTextBlock( + label="Druhý sloupec textu" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Kontaktní informace", + ), + ), + migrations.AlterField( + model_name="maincrossroadpage", + name="cards_content", + field=wagtail.fields.StreamField( + [ + ( + "cards", + 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 + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Karty rozcestníku", + ), + ), + migrations.AlterField( + model_name="maincrossroadpage", + name="headlined_cards_content", + field=wagtail.fields.StreamField( + [ + ( + "headlined_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=[ + "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 odkazu", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Karty rozcestníku s nadpisem", + ), + ), + migrations.AlterField( + model_name="mainhomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "carousel", + wagtail.blocks.StructBlock( + [ + ( + "slides", + wagtail.blocks.ListBlock( + main.blocks.HomePageCarouseSlideBlock, + label="Obrázky s nadpisy - carouselu", + ), + ) + ] + ), + ), + ( + "news", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Nejnovější články se načtou automaticky", + label="Titulek", + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek pozadí", required=False + ), + ), + ] + ), + ), + ( + "people", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock(label="Hlavní titulek"), + ), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.BoxBlock, label="Boxíky" + ), + ), + ] + ), + ), + ( + "regions", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Články pro regiony se načtou automaticky", + label="Titulek", + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek pozadí", required=False + ), + ), + ] + ), + ), + ( + "tweets", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Tweety budou načteny pro všechny profily uvedené v nastavení webu automaticky", + label="Titulek", + ), + ) + ] + ), + ), + ( + "boxes", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="Nadpis")), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.BoxBlock, label="Boxíky" + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek pozadí", required=False + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Hlavní obsah", + ), + ), + migrations.AlterField( + model_name="mainhomepage", + name="footer_other_links", + field=wagtail.fields.StreamField( + [ + ( + "other_links", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="Titulek")), + ( + "list", + wagtail.blocks.ListBlock( + main.blocks.LinkBlock, + label="Seznam odkazů s titulkem", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Bloky dalších odkazů v zápatí webu", + ), + ), + migrations.AlterField( + model_name="mainhomepage", + name="footer_person_list", + field=wagtail.fields.StreamField( + [ + ( + "person", + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", required=False + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", page_type=["main.MainPersonPage"] + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Osoby v zápatí webu", + ), + ), + migrations.AlterField( + model_name="mainhomepage", + 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 + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Menu", + ), + ), + migrations.AlterField( + model_name="mainhomepage", + name="social_links", + field=wagtail.fields.StreamField( + [ + ( + "social_links", + wagtail.blocks.StructBlock( + [ + ( + "text", + wagtail.blocks.CharBlock( + label="Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)" + ), + ), + ("link", wagtail.blocks.URLBlock(label="Odkaz")), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku", + label="Ikona", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Odkazy na sociální sítě v zápatí webu", + ), + ), + migrations.AlterField( + model_name="mainhomepage", + name="twitter_usernames", + field=wagtail.fields.StreamField( + [ + ( + "username", + wagtail.blocks.CharBlock(label="Twitter uživatelské jméno"), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Uživatelská jména pro synchronizované twitter účty", + ), + ), + migrations.AlterField( + model_name="mainpeoplepage", + 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=["main.MainPersonPage"], + ), + label="Skupina osob", + ), + ), + ], + label="Seznam osob", + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Lidé", + ), + ), + migrations.AlterField( + model_name="mainpersonpage", + 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=["main.MainPersonPage"], + ), + label="Skupina osob", + ), + ), + ], + label="Seznam osob", + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Další lidé", + ), + ), + migrations.AlterField( + model_name="mainpersonpage", + name="social_links", + field=wagtail.fields.StreamField( + [ + ( + "social_links", + wagtail.blocks.StructBlock( + [ + ( + "text", + wagtail.blocks.CharBlock( + label="Titulek odkazu (text, který se zobrazí místo dlouhého odkazu)" + ), + ), + ("link", wagtail.blocks.URLBlock(label="Odkaz")), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku", + label="Ikona", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Odkazy na sociální sítě", + ), + ), + migrations.AlterField( + model_name="mainprogrampage", + name="program", + field=wagtail.fields.StreamField( + [ + ( + "program_group", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek části programu" + ), + ), + ( + "slug", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky vyplněno", + label="Slug části programu", + required=False, + ), + ), + ( + "perex", + wagtail.blocks.RichTextBlock( + label="Perex části programu", required=False + ), + ), + ( + "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( + label="Obsah" + ), + ), + ] + ), + label="Jednotlivé články programu", + ), + ), + ], + label="Část programu", + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Program", + ), + ), + migrations.AlterField( + model_name="mainsimplepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + template="main/blocks/rich_text_block.html" + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Hlavní obsah", + ), + ), + ] diff --git a/main/migrations/0043_alter_mainarticletag_content_object.py b/main/migrations/0043_alter_mainarticletag_content_object.py new file mode 100644 index 0000000000000000000000000000000000000000..97772e76f8aeb087b87ec983b309cccd7d3436e0 --- /dev/null +++ b/main/migrations/0043_alter_mainarticletag_content_object.py @@ -0,0 +1,24 @@ +# Generated by Django 4.1.5 on 2023-01-31 19:42 + +import django.db.models.deletion +import modelcluster.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("main", "0042_alter_mainarticlepage_content_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="mainarticletag", + name="content_object", + field=modelcluster.fields.ParentalKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="tagged_items", + to="main.mainarticlepage", + ), + ), + ] diff --git a/main/models.py b/main/models.py index 5df3e68c31a55d6c36f38c4b89e107ce0a25fda7..642daf43ea467a0aaac63be6ef2fdf4cdeb8997e 100644 --- a/main/models.py +++ b/main/models.py @@ -91,6 +91,7 @@ class MainHomePage( ], verbose_name="Hlavní obsah", blank=True, + use_json_field=True, ) # footer @@ -100,6 +101,7 @@ class MainHomePage( ], verbose_name="Bloky dalších odkazů v zápatí webu", blank=True, + use_json_field=True, ) footer_person_list = StreamField( @@ -107,6 +109,7 @@ class MainHomePage( verbose_name="Osoby v zápatí webu", blank=True, max_num=6, + use_json_field=True, ) # settings @@ -128,6 +131,7 @@ class MainHomePage( ], verbose_name="Odkazy na sociální sítě v zápatí webu", blank=True, + use_json_field=True, ) twitter_usernames = StreamField( @@ -135,6 +139,7 @@ class MainHomePage( verbose_name="Uživatelská jména pro synchronizované twitter účty", blank=True, max_num=64, + use_json_field=True, ) content_panels = Page.content_panels + [ @@ -294,7 +299,7 @@ class MainHomePage( messages.success( request, - "Zkontroluj si prosím schránku, poslali jsme ti potvrzovací email." + "Zkontroluj si prosím schránku, poslali jsme ti potvrzovací email.", ) try: @@ -309,7 +314,7 @@ class MainHomePage( messages.error( request, - "Tvůj prohlížeč nám odeslal špatná data. Prosím, zkus to znovu." + "Tvůj prohlížeč nám odeslal špatná data. Prosím, zkus to znovu.", ) return HttpResponseRedirect(self.url) @@ -490,7 +495,11 @@ class MainArticlesPage( class MainArticleTag(TaggedItemBase): - content_object = ParentalKey("main.MainArticlePage", on_delete=models.CASCADE) + content_object = ParentalKey( + "main.MainArticlePage", + on_delete=models.CASCADE, + related_name="tagged_items", + ) class MainArticlePage( @@ -511,6 +520,7 @@ class MainArticlePage( ], verbose_name="Článek", blank=True, + use_json_field=True, ) author_page = models.ForeignKey( @@ -574,6 +584,7 @@ class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin [("program_group", blocks.ProgramGroupBlock(label="Část programu"))], verbose_name="Program", blank=True, + use_json_field=True, ) ### PANELS @@ -603,6 +614,7 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, [("people_group", blocks.PeopleGroupBlock(label="Seznam osob"))], verbose_name="Lidé", blank=True, + use_json_field=True, ) ### PANELS @@ -669,12 +681,14 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, ], verbose_name="Odkazy na sociální sítě", blank=True, + use_json_field=True, ) people = StreamField( [("people_group", blocks.PeopleGroupBlock(label="Seznam osob"))], verbose_name="Další lidé", blank=True, + use_json_field=True, ) email = models.CharField("E-mail", max_length=128, blank=True, null=True) @@ -741,6 +755,7 @@ class MainSimplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, ], verbose_name="Hlavní obsah", blank=True, + use_json_field=True, ) ### PANELS @@ -772,16 +787,19 @@ class MainContactPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin [("item", blocks.PersonContactBlock())], verbose_name="Kontaktní osoby", blank=True, + use_json_field=True, ) contact_boxes = StreamField( [("item", blocks.PersonContactBoxBlock())], verbose_name="Kontaktní boxy", blank=True, + use_json_field=True, ) text = StreamField( [("two_columns_text", blocks.TwoTextColumnBlock())], verbose_name="Kontaktní informace", blank=True, + use_json_field=True, ) ### PANELS @@ -817,11 +835,13 @@ class MainCrossroadPage( [(("headlined_cards"), blocks.CardLinkWithHeadlineBlock())], verbose_name="Karty rozcestníku s nadpisem", blank=True, + use_json_field=True, ) cards_content = StreamField( [("cards", blocks.CardLinkBlock())], verbose_name="Karty rozcestníku", blank=True, + use_json_field=True, ) ### PANELS diff --git a/main/static/main/main.js b/main/static/main/main.js index a8b6e64aab78f23686071f85cd74fe9b73549824..3a7fd2e6f6d92f825ab3c1dcbdfb75dbd7ad9b1e 100644 --- a/main/static/main/main.js +++ b/main/static/main/main.js @@ -10,7 +10,7 @@ var t0=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?wind `,"	":" ","'":"'"},Ks=/&(?:lt|gt|quot|amp|#39);/g,Ys=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Zs=A("pre,textarea",!0),Aa=function(e,t){return e&&Zs(e)&&t[0]===` `};function Js(e,t){var n=t?Ys:Ks;return e.replace(n,function(r){return Gs[r]})}function Xs(e,t){for(var n,r,o=[],a=t.expectHTML,c=t.isUnaryTag||Oe,v=t.canBeLeftOpenTag||Oe,p=0,w=function(){if(n=e,r&&Ia(r)){var P=0,R=r.toLowerCase(),k=Pa[R]||(Pa[R]=new RegExp("([\\s\\S]*?)(</"+R+"[^>]*>)","i"));j=e.replace(k,function(de,ge,He){return P=He.length,Ia(R)||R==="noscript"||(ge=ge.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),Aa(R,ge)&&(ge=ge.slice(1)),t.chars&&t.chars(ge),""}),p+=e.length-j.length,e=j,y(R,p-P,p)}else{var Z=e.indexOf("<");if(Z===0){if(ja.test(e)){var G=e.indexOf("-->");if(G>=0)return t.shouldKeepComment&&t.comment&&t.comment(e.substring(4,G),p,p+G+3),O(G+3),"continue"}if(Ma.test(e)){var he=e.indexOf("]>");if(he>=0)return O(he+2),"continue"}var ve=e.match(Ws);if(ve)return O(ve[0].length),"continue";var Ke=e.match(Ea);if(Ke){var Ee=p;return O(Ke[0].length),y(Ke[1],Ee,p),"continue"}var ke=function(){var de=e.match($a);if(de){var ge={tagName:de[1],attrs:[],start:p};O(de[0].length);for(var He=void 0,tt=void 0;!(He=e.match(Bs))&&(tt=e.match(Us)||e.match(zs));)tt.start=p,O(tt[0].length),tt.end=p,ge.attrs.push(tt);if(He)return ge.unarySlash=He[1],O(He[0].length),ge.end=p,ge}}();if(ke)return function(de){var ge=de.tagName,He=de.unarySlash;a&&(r==="p"&&Vs(ge)&&y(r),v(ge)&&r===ge&&y(ge));for(var tt=c(ge)||!!He,Ze=de.attrs.length,Xe=new Array(Ze),ft=0;ft<Ze;ft++){var rt=de.attrs[ft],qe=rt[3]||rt[4]||rt[5]||"",ut=ge==="a"&&rt[1]==="href"?t.shouldDecodeNewlinesForHref:t.shouldDecodeNewlines;Xe[ft]={name:rt[1],value:Js(qe,ut)}}tt||(o.push({tag:ge,lowerCasedTag:ge.toLowerCase(),attrs:Xe,start:de.start,end:de.end}),r=ge),t.start&&t.start(ge,Xe,tt,de.start,de.end)}(ke),Aa(ke.tagName,e)&&O(1),"continue"}var ze=void 0,j=void 0,N=void 0;if(Z>=0){for(j=e.slice(Z);!(Ea.test(j)||$a.test(j)||ja.test(j)||Ma.test(j)||(N=j.indexOf("<",1))<0);)Z+=N,j=e.slice(Z);ze=e.substring(0,Z)}Z<0&&(ze=e),ze&&O(ze.length),t.chars&&ze&&t.chars(ze,p-ze.length,p)}if(e===n)return t.chars&&t.chars(e),"break"};e&&w()!=="break";);function O(P){p+=P,e=e.substring(P)}function y(P,R,k){var Z,G;if(R==null&&(R=p),k==null&&(k=p),P)for(G=P.toLowerCase(),Z=o.length-1;Z>=0&&o[Z].lowerCasedTag!==G;Z--);else Z=0;if(Z>=0){for(var he=o.length-1;he>=Z;he--)t.end&&t.end(o[he].tag,R,k);o.length=Z,r=Z&&o[Z-1].tag}else G==="br"?t.start&&t.start(P,[],!0,R,k):G==="p"&&(t.start&&t.start(P,[],!1,R,k),t.end&&t.end(P,R,k))}y()}var Ra,Da,kr,Nr,Fr,Hr,Vr,_a,ka=/^@|^v-on:/,zr=/^v-|^@|^:|^#/,Qs=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Na=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,qs=/^\(|\)$/g,P0=/^\[.*\]$/,e9=/:(.*)$/,Fa=/^:|^\.|^v-bind:/,Ha=/\.[^.\]]+(?=[^\]]*$)/g,Ur=/^v-slot(:|$)|^#/,t9=/[\r\n]/,n9=/[ \f\t\r\n]+/g,r9=oe(Ns),A0="_empty_";function Br(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:o9(t),rawAttrsMap:{},parent:n,children:[]}}function i9(e,t){Ra=t.warn||Hi,Hr=t.isPreTag||Oe,Vr=t.mustUseProp||Oe,_a=t.getTagNamespace||Oe,t.isReservedTag,kr=Jn(t.modules,"transformNode"),Nr=Jn(t.modules,"preTransformNode"),Fr=Jn(t.modules,"postTransformNode"),Da=t.delimiters;var n,r,o=[],a=t.preserveWhitespace!==!1,c=t.whitespace,v=!1,p=!1;function w(y){if(O(y),v||y.processed||(y=R0(y,t)),o.length||y===n||n.if&&(y.elseif||y.else)&&Nn(n,{exp:y.elseif,block:y}),r&&!y.forbidden)if(y.elseif||y.else)R=y,k=function(G){for(var he=G.length;he--;){if(G[he].type===1)return G[he];G.pop()}}(r.children),k&&k.if&&Nn(k,{exp:R.elseif,block:R});else{if(y.slotScope){var P=y.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[P]=y}r.children.push(y),y.parent=r}var R,k;y.children=y.children.filter(function(G){return!G.slotScope}),O(y),y.pre&&(v=!1),Hr(y.tag)&&(p=!1);for(var Z=0;Z<Fr.length;Z++)Fr[Z](y,t)}function O(y){if(!p)for(var P=void 0;(P=y.children[y.children.length-1])&&P.type===3&&P.text===" ";)y.children.pop()}return Xs(e,{warn:Ra,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(y,P,R,k,Z){var G=r&&r.ns||_a(y);lt&&G==="svg"&&(P=function(Ee){for(var ke=[],ze=0;ze<Ee.length;ze++){var j=Ee[ze];s9.test(j.name)||(j.name=j.name.replace(l9,""),ke.push(j))}return ke}(P));var he,ve=Br(y,P,r);G&&(ve.ns=G),(he=ve).tag!=="style"&&(he.tag!=="script"||he.attrsMap.type&&he.attrsMap.type!=="text/javascript")||bt()||(ve.forbidden=!0);for(var Ke=0;Ke<Nr.length;Ke++)ve=Nr[Ke](ve,t)||ve;v||(function(Ee){mt(Ee,"v-pre")!=null&&(Ee.pre=!0)}(ve),ve.pre&&(v=!0)),Hr(ve.tag)&&(p=!0),v?function(Ee){var ke=Ee.attrsList,ze=ke.length;if(ze)for(var j=Ee.attrs=new Array(ze),N=0;N<ze;N++)j[N]={name:ke[N].name,value:JSON.stringify(ke[N].value)},ke[N].start!=null&&(j[N].start=ke[N].start,j[N].end=ke[N].end);else Ee.pre||(Ee.plain=!0)}(ve):ve.processed||(Va(ve),function(Ee){var ke=mt(Ee,"v-if");if(ke)Ee.if=ke,Nn(Ee,{exp:ke,block:Ee});else{mt(Ee,"v-else")!=null&&(Ee.else=!0);var ze=mt(Ee,"v-else-if");ze&&(Ee.elseif=ze)}}(ve),function(Ee){mt(Ee,"v-once")!=null&&(Ee.once=!0)}(ve)),n||(n=ve),R?w(ve):(r=ve,o.push(ve))},end:function(y,P,R){var k=o[o.length-1];o.length-=1,r=o[o.length-1],w(k)},chars:function(y,P,R){if(r&&(!lt||r.tag!=="textarea"||r.attrsMap.placeholder!==y)){var k,Z=r.children;if(y=p||y.trim()?(k=r).tag==="script"||k.tag==="style"?y:r9(y):Z.length?c?c==="condense"&&t9.test(y)?"":" ":a?" ":"":""){p||c!=="condense"||(y=y.replace(n9," "));var G=void 0,he=void 0;!v&&y!==" "&&(G=function(ve,Ke){var Ee=Ke?Ds(Ke):Rs;if(Ee.test(ve)){for(var ke,ze,j,N=[],de=[],ge=Ee.lastIndex=0;ke=Ee.exec(ve);){(ze=ke.index)>ge&&(de.push(j=ve.slice(ge,ze)),N.push(JSON.stringify(j)));var He=br(ke[1].trim());N.push("_s(".concat(He,")")),de.push({"@binding":He}),ge=ze+ke[0].length}return ge<ve.length&&(de.push(j=ve.slice(ge)),N.push(JSON.stringify(j))),{expression:N.join("+"),tokens:de}}}(y,Da))?he={type:2,expression:G.expression,tokens:G.tokens,text:y}:y===" "&&Z.length&&Z[Z.length-1].text===" "||(he={type:3,text:y}),he&&Z.push(he)}}},comment:function(y,P,R){if(r){var k={type:3,text:y,isComment:!0};r.children.push(k)}}}),n}function R0(e,t){var n,r;(r=Wt(n=e,"key"))&&(n.key=r),e.plain=!e.key&&!e.scopedSlots&&!e.attrsList.length,function(a){var c=Wt(a,"ref");c&&(a.ref=c,a.refInFor=function(v){for(var p=v;p;){if(p.for!==void 0)return!0;p=p.parent}return!1}(a))}(e),function(a){var c;a.tag==="template"?(c=mt(a,"scope"),a.slotScope=c||mt(a,"slot-scope")):(c=mt(a,"slot-scope"))&&(a.slotScope=c);var v=Wt(a,"slot");if(v&&(a.slotTarget=v==='""'?'"default"':v,a.slotTargetDynamic=!(!a.attrsMap[":slot"]&&!a.attrsMap["v-bind:slot"]),a.tag==="template"||a.slotScope||Sr(a,"slot",v,function(G,he){return G.rawAttrsMap[":"+he]||G.rawAttrsMap["v-bind:"+he]||G.rawAttrsMap[he]}(a,"slot"))),a.tag==="template"){if(y=Vi(a,Ur)){var p=za(y),w=p.name,O=p.dynamic;a.slotTarget=w,a.slotTargetDynamic=O,a.slotScope=y.value||A0}}else{var y;if(y=Vi(a,Ur)){var P=a.scopedSlots||(a.scopedSlots={}),R=za(y),k=R.name,Z=(O=R.dynamic,P[k]=Br("template",[],a));Z.slotTarget=k,Z.slotTargetDynamic=O,Z.children=a.children.filter(function(G){if(!G.slotScope)return G.parent=Z,!0}),Z.slotScope=y.value||A0,a.children=[],a.plain=!1}}}(e),function(a){a.tag==="slot"&&(a.slotName=Wt(a,"name"))}(e),function(a){var c;(c=Wt(a,"is"))&&(a.component=c),mt(a,"inline-template")!=null&&(a.inlineTemplate=!0)}(e);for(var o=0;o<kr.length;o++)e=kr[o](e,t)||e;return function(a){var c,v,p,w,O,y,P,R,k=a.attrsList;for(c=0,v=k.length;c<v;c++)if(p=w=k[c].name,O=k[c].value,zr.test(p))if(a.hasBindings=!0,(y=a9(p.replace(zr,"")))&&(p=p.replace(Ha,"")),Fa.test(p))p=p.replace(Fa,""),O=br(O),(R=P0.test(p))&&(p=p.slice(1,-1)),y&&(y.prop&&!R&&(p=X(p))==="innerHtml"&&(p="innerHTML"),y.camel&&!R&&(p=X(p)),y.sync&&(P=bn(O,"$event"),R?fn(a,'"update:"+('.concat(p,")"),P,null,!1,0,k[c],!0):(fn(a,"update:".concat(X(p)),P,null,!1,0,k[c]),z(p)!==X(p)&&fn(a,"update:".concat(z(p)),P,null,!1,0,k[c])))),y&&y.prop||!a.component&&Vr(a.tag,a.attrsMap.type,p)?En(a,p,O,k[c],R):Sr(a,p,O,k[c],R);else if(ka.test(p))p=p.replace(ka,""),(R=P0.test(p))&&(p=p.slice(1,-1)),fn(a,p,O,y,!1,0,k[c],R);else{var Z=(p=p.replace(zr,"")).match(e9),G=Z&&Z[1];R=!1,G&&(p=p.slice(0,-(G.length+1)),P0.test(G)&&(G=G.slice(1,-1),R=!0)),cs(a,p,w,O,G,R,y,k[c])}else Sr(a,p,JSON.stringify(O),k[c]),!a.component&&p==="muted"&&Vr(a.tag,a.attrsMap.type,p)&&En(a,p,"true",k[c])}(e),e}function Va(e){var t;if(t=mt(e,"v-for")){var n=function(r){var o=r.match(Qs);if(!!o){var a={};a.for=o[2].trim();var c=o[1].trim().replace(qs,""),v=c.match(Na);return v?(a.alias=c.replace(Na,"").trim(),a.iterator1=v[1].trim(),v[2]&&(a.iterator2=v[2].trim())):a.alias=c,a}}(t);n&&ae(e,n)}}function Nn(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function za(e){var t=e.name.replace(Ur,"");return t||e.name[0]!=="#"&&(t="default"),P0.test(t)?{name:t.slice(1,-1),dynamic:!0}:{name:'"'.concat(t,'"'),dynamic:!1}}function a9(e){var t=e.match(Ha);if(t){var n={};return t.forEach(function(r){n[r.slice(1)]=!0}),n}}function o9(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}var s9=/^xmlns:NS\d+/,l9=/^NS\d+:/;function Wr(e){return Br(e.tag,e.attrsList.slice(),e.parent)}var Ua=[_s,ks,{preTransformNode:function(e,t){if(e.tag==="input"){var n=e.attrsMap;if(!n["v-model"])return;var r=void 0;if((n[":type"]||n["v-bind:type"])&&(r=Wt(e,"type")),n.type||r||!n["v-bind"]||(r="(".concat(n["v-bind"],").type")),r){var o=mt(e,"v-if",!0),a=o?"&&(".concat(o,")"):"",c=mt(e,"v-else",!0)!=null,v=mt(e,"v-else-if",!0),p=Wr(e);Va(p),xr(p,"type","checkbox"),R0(p,t),p.processed=!0,p.if="(".concat(r,")==='checkbox'")+a,Nn(p,{exp:p.if,block:p});var w=Wr(e);mt(w,"v-for",!0),xr(w,"type","radio"),R0(w,t),Nn(p,{exp:"(".concat(r,")==='radio'")+a,block:w});var O=Wr(e);return mt(O,"v-for",!0),xr(O,":type",r),R0(O,t),Nn(p,{exp:o,block:O}),c?p.else=!0:v&&(p.elseif=v),p}}}}],Ba,Gr,c9={model:function(e,t,n){var r=t.value,o=t.modifiers,a=e.tag,c=e.attrsMap.type;if(e.component)return zi(e,r,o),!1;if(a==="select")(function(v,p,w){var O=w&&w.number,y='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(O?"_n(val)":"val","})"),P="$event.target.multiple ? $$selectedVal : $$selectedVal[0]",R="var $$selectedVal = ".concat(y,";");R="".concat(R," ").concat(bn(p,P)),fn(v,"change",R,null,!0)})(e,r,o);else if(a==="input"&&c==="checkbox")(function(v,p,w){var O=w&&w.number,y=Wt(v,"value")||"null",P=Wt(v,"true-value")||"true",R=Wt(v,"false-value")||"false";En(v,"checked","Array.isArray(".concat(p,")")+"?_i(".concat(p,",").concat(y,")>-1")+(P==="true"?":(".concat(p,")"):":_q(".concat(p,",").concat(P,")"))),fn(v,"change","var $$a=".concat(p,",")+"$$el=$event.target,"+"$$c=$$el.checked?(".concat(P,"):(").concat(R,");")+"if(Array.isArray($$a)){"+"var $$v=".concat(O?"_n("+y+")":y,",")+"$$i=_i($$a,$$v);"+"if($$el.checked){$$i<0&&(".concat(bn(p,"$$a.concat([$$v])"),")}")+"else{$$i>-1&&(".concat(bn(p,"$$a.slice(0,$$i).concat($$a.slice($$i+1))"),")}")+"}else{".concat(bn(p,"$$c"),"}"),null,!0)})(e,r,o);else if(a==="input"&&c==="radio")(function(v,p,w){var O=w&&w.number,y=Wt(v,"value")||"null";y=O?"_n(".concat(y,")"):y,En(v,"checked","_q(".concat(p,",").concat(y,")")),fn(v,"change",bn(p,y),null,!0)})(e,r,o);else if(a==="input"||a==="textarea")(function(v,p,w){var O=v.attrsMap.type,y=w||{},P=y.lazy,R=y.number,k=y.trim,Z=!P&&O!=="range",G=P?"change":O==="range"?fs:"input",he="$event.target.value";k&&(he="$event.target.value.trim()"),R&&(he="_n(".concat(he,")"));var ve=bn(p,he);Z&&(ve="if($event.target.composing)return;".concat(ve)),En(v,"value","(".concat(p,")")),fn(v,G,ve,null,!0),(k||R)&&fn(v,"blur","$forceUpdate()")})(e,r,o);else if(!re.isReservedTag(a))return zi(e,r,o),!1;return!0},text:function(e,t){t.value&&En(e,"textContent","_s(".concat(t.value,")"),t)},html:function(e,t){t.value&&En(e,"innerHTML","_s(".concat(t.value,")"),t)}},u9={expectHTML:!0,modules:Ua,directives:c9,isPreTag:function(e){return e==="pre"},isUnaryTag:Fs,mustUseProp:Ei,canBeLeftOpenTag:Hs,isReservedTag:pr,getTagNamespace:Pi,staticKeys:function(e){return e.reduce(function(t,n){return t.concat(n.staticKeys||[])},[]).join(",")}(Ua)},f9=oe(function(e){return A("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))});function d9(e,t){e&&(Ba=f9(t.staticKeys||""),Gr=t.isReservedTag||Oe,Kr(e),Yr(e,!1))}function Kr(e){if(e.static=function(a){return a.type===2?!1:a.type===3?!0:!(!a.pre&&(a.hasBindings||a.if||a.for||Y(a.tag)||!Gr(a.tag)||function(c){for(;c.parent;){if((c=c.parent).tag!=="template")return!1;if(c.for)return!0}return!1}(a)||!Object.keys(a).every(Ba)))}(e),e.type===1){if(!Gr(e.tag)&&e.tag!=="slot"&&e.attrsMap["inline-template"]==null)return;for(var t=0,n=e.children.length;t<n;t++){var r=e.children[t];Kr(r),r.static||(e.static=!1)}if(e.ifConditions)for(t=1,n=e.ifConditions.length;t<n;t++){var o=e.ifConditions[t].block;Kr(o),o.static||(e.static=!1)}}}function Yr(e,t){if(e.type===1){if((e.static||e.once)&&(e.staticInFor=t),e.static&&e.children.length&&(e.children.length!==1||e.children[0].type!==3))return void(e.staticRoot=!0);if(e.staticRoot=!1,e.children)for(var n=0,r=e.children.length;n<r;n++)Yr(e.children[n],t||!!e.for);if(e.ifConditions)for(n=1,r=e.ifConditions.length;n<r;n++)Yr(e.ifConditions[n].block,t)}}var v9=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,p9=/\([^)]*?\);*$/,Wa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Ga={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},h9={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"]},vn=function(e){return"if(".concat(e,")return null;")},Ka={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:vn("$event.target !== $event.currentTarget"),ctrl:vn("!$event.ctrlKey"),shift:vn("!$event.shiftKey"),alt:vn("!$event.altKey"),meta:vn("!$event.metaKey"),left:vn("'button' in $event && $event.button !== 0"),middle:vn("'button' in $event && $event.button !== 1"),right:vn("'button' in $event && $event.button !== 2")};function Ya(e,t){var n=t?"nativeOn:":"on:",r="",o="";for(var a in e){var c=Za(e[a]);e[a]&&e[a].dynamic?o+="".concat(a,",").concat(c,","):r+='"'.concat(a,'":').concat(c,",")}return r="{".concat(r.slice(0,-1),"}"),o?n+"_d(".concat(r,",[").concat(o.slice(0,-1),"])"):n+r}function Za(e){if(!e)return"function(){}";if(Array.isArray(e))return"[".concat(e.map(function(O){return Za(O)}).join(","),"]");var t=Wa.test(e.value),n=v9.test(e.value),r=Wa.test(e.value.replace(p9,""));if(e.modifiers){var o="",a="",c=[],v=function(O){if(Ka[O])a+=Ka[O],Ga[O]&&c.push(O);else if(O==="exact"){var y=e.modifiers;a+=vn(["ctrl","shift","alt","meta"].filter(function(P){return!y[P]}).map(function(P){return"$event.".concat(P,"Key")}).join("||"))}else c.push(O)};for(var p in e.modifiers)v(p);c.length&&(o+=function(O){return"if(!$event.type.indexOf('key')&&"+"".concat(O.map(m9).join("&&"),")return null;")}(c)),a&&(o+=a);var w=t?"return ".concat(e.value,".apply(null, arguments)"):n?"return (".concat(e.value,").apply(null, arguments)"):r?"return ".concat(e.value):e.value;return"function($event){".concat(o).concat(w,"}")}return t||n?e.value:"function($event){".concat(r?"return ".concat(e.value):e.value,"}")}function m9(e){var t=parseInt(e,10);if(t)return"$event.keyCode!==".concat(t);var n=Ga[e],r=h9[e];return"_k($event.keyCode,"+"".concat(JSON.stringify(e),",")+"".concat(JSON.stringify(n),",")+"$event.key,"+"".concat(JSON.stringify(r))+")"}var g9={on:function(e,t){e.wrapListeners=function(n){return"_g(".concat(n,",").concat(t.value,")")}},bind:function(e,t){e.wrapData=function(n){return"_b(".concat(n,",'").concat(e.tag,"',").concat(t.value,",").concat(t.modifiers&&t.modifiers.prop?"true":"false").concat(t.modifiers&&t.modifiers.sync?",true":"",")")}},cloak:Se},y9=function(e){this.options=e,this.warn=e.warn||Hi,this.transforms=Jn(e.modules,"transformCode"),this.dataGenFns=Jn(e.modules,"genData"),this.directives=ae(ae({},g9),e.directives);var t=e.isReservedTag||Oe;this.maybeComponent=function(n){return!!n.component||!t(n.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ja(e,t){var n=new y9(t),r=e?e.tag==="script"?"null":pn(e,n):'_c("div")';return{render:"with(this){return ".concat(r,"}"),staticRenderFns:n.staticRenderFns}}function pn(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Xa(e,t);if(e.once&&!e.onceProcessed)return Qa(e,t);if(e.for&&!e.forProcessed)return eo(e,t);if(e.if&&!e.ifProcessed)return Zr(e,t);if(e.tag!=="template"||e.slotTarget||t.pre){if(e.tag==="slot")return function(w,O){var y=w.slotName||'"default"',P=Fn(w,O),R="_t(".concat(y).concat(P?",function(){return ".concat(P,"}"):""),k=w.attrs||w.dynamicAttrs?D0((w.attrs||[]).concat(w.dynamicAttrs||[]).map(function(G){return{name:X(G.name),value:G.value,dynamic:G.dynamic}})):null,Z=w.attrsMap["v-bind"];return!k&&!Z||P||(R+=",null"),k&&(R+=",".concat(k)),Z&&(R+="".concat(k?"":",null",",").concat(Z)),R+")"}(e,t);var n=void 0;if(e.component)n=function(w,O,y){var P=O.inlineTemplate?null:Fn(O,y,!0);return"_c(".concat(w,",").concat(to(O,y)).concat(P?",".concat(P):"",")")}(e.component,e,t);else{var r=void 0,o=t.maybeComponent(e);(!e.plain||e.pre&&o)&&(r=to(e,t));var a=void 0,c=t.options.bindings;o&&c&&c.__isScriptSetup!==!1&&(a=function(w,O){var y=X(O),P=fe(y),R=function(G){return w[O]===G?O:w[y]===G?y:w[P]===G?P:void 0},k=R("setup-const")||R("setup-reactive-const");if(k)return k;var Z=R("setup-let")||R("setup-ref")||R("setup-maybe-ref");if(Z)return Z}(c,e.tag)),a||(a="'".concat(e.tag,"'"));var v=e.inlineTemplate?null:Fn(e,t,!0);n="_c(".concat(a).concat(r?",".concat(r):"").concat(v?",".concat(v):"",")")}for(var p=0;p<t.transforms.length;p++)n=t.transforms[p](e,n);return n}return Fn(e,t)||"void 0"}function Xa(e,t){e.staticProcessed=!0;var n=t.pre;return e.pre&&(t.pre=e.pre),t.staticRenderFns.push("with(this){return ".concat(pn(e,t),"}")),t.pre=n,"_m(".concat(t.staticRenderFns.length-1).concat(e.staticInFor?",true":"",")")}function Qa(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return Zr(e,t);if(e.staticInFor){for(var n="",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o(".concat(pn(e,t),",").concat(t.onceId++,",").concat(n,")"):pn(e,t)}return Xa(e,t)}function Zr(e,t,n,r){return e.ifProcessed=!0,qa(e.ifConditions.slice(),t,n,r)}function qa(e,t,n,r){if(!e.length)return r||"_e()";var o=e.shift();return o.exp?"(".concat(o.exp,")?").concat(a(o.block),":").concat(qa(e,t,n,r)):"".concat(a(o.block));function a(c){return n?n(c,t):c.once?Qa(c,t):pn(c,t)}}function eo(e,t,n,r){var o=e.for,a=e.alias,c=e.iterator1?",".concat(e.iterator1):"",v=e.iterator2?",".concat(e.iterator2):"";return e.forProcessed=!0,"".concat(r||"_l","((").concat(o,"),")+"function(".concat(a).concat(c).concat(v,"){")+"return ".concat((n||pn)(e,t))+"})"}function to(e,t){var n="{",r=function(c,v){var p=c.directives;if(!!p){var w,O,y,P,R="directives:[",k=!1;for(w=0,O=p.length;w<O;w++){y=p[w],P=!0;var Z=v.directives[y.name];Z&&(P=!!Z(c,y,v.warn)),P&&(k=!0,R+='{name:"'.concat(y.name,'",rawName:"').concat(y.rawName,'"').concat(y.value?",value:(".concat(y.value,"),expression:").concat(JSON.stringify(y.value)):"").concat(y.arg?",arg:".concat(y.isDynamicArg?y.arg:'"'.concat(y.arg,'"')):"").concat(y.modifiers?",modifiers:".concat(JSON.stringify(y.modifiers)):"","},"))}if(k)return R.slice(0,-1)+"]"}}(e,t);r&&(n+=r+","),e.key&&(n+="key:".concat(e.key,",")),e.ref&&(n+="ref:".concat(e.ref,",")),e.refInFor&&(n+="refInFor:true,"),e.pre&&(n+="pre:true,"),e.component&&(n+='tag:"'.concat(e.tag,'",'));for(var o=0;o<t.dataGenFns.length;o++)n+=t.dataGenFns[o](e);if(e.attrs&&(n+="attrs:".concat(D0(e.attrs),",")),e.props&&(n+="domProps:".concat(D0(e.props),",")),e.events&&(n+="".concat(Ya(e.events,!1),",")),e.nativeEvents&&(n+="".concat(Ya(e.nativeEvents,!0),",")),e.slotTarget&&!e.slotScope&&(n+="slot:".concat(e.slotTarget,",")),e.scopedSlots&&(n+="".concat(function(c,v,p){var w=c.for||Object.keys(v).some(function(R){var k=v[R];return k.slotTargetDynamic||k.if||k.for||no(k)}),O=!!c.if;if(!w)for(var y=c.parent;y;){if(y.slotScope&&y.slotScope!==A0||y.for){w=!0;break}y.if&&(O=!0),y=y.parent}var P=Object.keys(v).map(function(R){return Jr(v[R],p)}).join(",");return"scopedSlots:_u([".concat(P,"]").concat(w?",null,true":"").concat(!w&&O?",null,false,".concat(function(R){for(var k=5381,Z=R.length;Z;)k=33*k^R.charCodeAt(--Z);return k>>>0}(P)):"",")")}(e,e.scopedSlots,t),",")),e.model&&(n+="model:{value:".concat(e.model.value,",callback:").concat(e.model.callback,",expression:").concat(e.model.expression,"},")),e.inlineTemplate){var a=function(c,v){var p=c.children[0];if(p&&p.type===1){var w=Ja(p,v.options);return"inlineTemplate:{render:function(){".concat(w.render,"},staticRenderFns:[").concat(w.staticRenderFns.map(function(O){return"function(){".concat(O,"}")}).join(","),"]}")}}(e,t);a&&(n+="".concat(a,","))}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b(".concat(n,',"').concat(e.tag,'",').concat(D0(e.dynamicAttrs),")")),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function no(e){return e.type===1&&(e.tag==="slot"||e.children.some(no))}function Jr(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Zr(e,t,Jr,"null");if(e.for&&!e.forProcessed)return eo(e,t,Jr);var r=e.slotScope===A0?"":String(e.slotScope),o="function(".concat(r,"){")+"return ".concat(e.tag==="template"?e.if&&n?"(".concat(e.if,")?").concat(Fn(e,t)||"undefined",":undefined"):Fn(e,t)||"undefined":pn(e,t),"}"),a=r?"":",proxy:true";return"{key:".concat(e.slotTarget||'"default"',",fn:").concat(o).concat(a,"}")}function Fn(e,t,n,r,o){var a=e.children;if(a.length){var c=a[0];if(a.length===1&&c.for&&c.tag!=="template"&&c.tag!=="slot"){var v=n?t.maybeComponent(c)?",1":",0":"";return"".concat((r||pn)(c,t)).concat(v)}var p=n?function(O,y){for(var P=0,R=0;R<O.length;R++){var k=O[R];if(k.type===1){if(ro(k)||k.ifConditions&&k.ifConditions.some(function(Z){return ro(Z.block)})){P=2;break}(y(k)||k.ifConditions&&k.ifConditions.some(function(Z){return y(Z.block)}))&&(P=1)}}return P}(a,t.maybeComponent):0,w=o||L9;return"[".concat(a.map(function(O){return w(O,t)}).join(","),"]").concat(p?",".concat(p):"")}}function ro(e){return e.for!==void 0||e.tag==="template"||e.tag==="slot"}function L9(e,t){return e.type===1?pn(e,t):e.type===3&&e.isComment?function(n){return"_e(".concat(JSON.stringify(n.text),")")}(e):function(n){return"_v(".concat(n.type===2?n.expression:io(JSON.stringify(n.text)),")")}(e)}function D0(e){for(var t="",n="",r=0;r<e.length;r++){var o=e[r],a=io(o.value);o.dynamic?n+="".concat(o.name,",").concat(a,","):t+='"'.concat(o.name,'":').concat(a,",")}return t="{".concat(t.slice(0,-1),"}"),n?"_d(".concat(t,",[").concat(n.slice(0,-1),"])"):t}function io(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function ao(e,t){try{return new Function(e)}catch(n){return t.push({err:n,code:e}),Se}}function b9(e){var t=Object.create(null);return function(n,r,o){(r=ae({},r)).warn,delete r.warn;var a=r.delimiters?String(r.delimiters)+n:n;if(t[a])return t[a];var c=e(n,r),v={},p=[];return v.render=ao(c.render,p),v.staticRenderFns=c.staticRenderFns.map(function(w){return ao(w,p)}),t[a]=v}}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 oo,Xr,S9=(oo=function(e,t){var n=i9(e.trim(),t);t.optimize!==!1&&d9(n,t);var r=Ja(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(e){function t(n,r){var o=Object.create(e),a=[],c=[];if(r)for(var v in r.modules&&(o.modules=(e.modules||[]).concat(r.modules)),r.directives&&(o.directives=ae(Object.create(e.directives||null),r.directives)),r)v!=="modules"&&v!=="directives"&&(o[v]=r[v]);o.warn=function(w,O,y){(y?c:a).push(w)};var p=oo(n.trim(),o);return p.errors=a,p.tips=c,p}return{compile:t,compileToFunctions:b9(t)}}),so=S9(u9).compileToFunctions;function lo(e){return(Xr=Xr||document.createElement("div")).innerHTML=e?`<a href=" "/>`:`<div a=" -"/>`,Xr.innerHTML.indexOf(" ")>0}var x9=!!Ae&&lo(!1),w9=!!Ae&&lo(!0),O9=oe(function(e){var t=mr(e);return t&&t.innerHTML}),T9=ot.prototype.$mount;return ot.prototype.$mount=function(e,t){if((e=e&&mr(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if(typeof r=="string")r.charAt(0)==="#"&&(r=O9(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(v){if(v.outerHTML)return v.outerHTML;var p=document.createElement("div");return p.appendChild(v.cloneNode(!0)),p.innerHTML}(e));if(r){var o=so(r,{outputSourceRange:!1,shouldDecodeNewlines:x9,shouldDecodeNewlinesForHref:w9,delimiters:n.delimiters,comments:n.comments},this),a=o.render,c=o.staticRenderFns;n.render=a,n.staticRenderFns=c}}return T9.call(this,e,t)},ot.compile=so,ae(ot,Po),ot.effect=function(e,t){var n=new Dn(Je,e,Se,{sync:!0});t&&(n.update=function(){t(function(){return n.run()})})},ot})})(fo);const zt=uo(fo.exports),vo=function(ce,E,d){for(var L=0;L<ce.length;L++)E.call(d,ce[L])};function C9(){return Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)}function rn(){return C9()>=1200}var po={exports:{}};(function(ce,E){(function(L,i){ce.exports=i()})(typeof self!="undefined"?self:t0,function(){return function(d){var L={};function i(l){if(L[l])return L[l].exports;var u=L[l]={i:l,l:!1,exports:{}};return d[l].call(u.exports,u,u.exports,i),u.l=!0,u.exports}return i.m=d,i.c=L,i.d=function(l,u,h){i.o(l,u)||Object.defineProperty(l,u,{enumerable:!0,get:h})},i.r=function(l){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(l,"__esModule",{value:!0})},i.t=function(l,u){if(u&1&&(l=i(l)),u&8||u&4&&typeof l=="object"&&l&&l.__esModule)return l;var h=Object.create(null);if(i.r(h),Object.defineProperty(h,"default",{enumerable:!0,value:l}),u&2&&typeof l!="string")for(var f in l)i.d(h,f,function(g){return l[g]}.bind(null,f));return h},i.n=function(l){var u=l&&l.__esModule?function(){return l.default}:function(){return l};return i.d(u,"a",u),u},i.o=function(l,u){return Object.prototype.hasOwnProperty.call(l,u)},i.p="",i(i.s="fb15")}({"00ee":function(d,L,i){var l=i("b622"),u=l("toStringTag"),h={};h[u]="z",d.exports=String(h)==="[object z]"},"0366":function(d,L,i){var l=i("1c0b");d.exports=function(u,h,f){if(l(u),h===void 0)return u;switch(f){case 0:return function(){return u.call(h)};case 1:return function(g){return u.call(h,g)};case 2:return function(g,S){return u.call(h,g,S)};case 3:return function(g,S,b){return u.call(h,g,S,b)}}return function(){return u.apply(h,arguments)}}},"0497":function(d,L){var i=function(l){return l.replace(/[A-Z]/g,function(u){return"-"+u.toLowerCase()}).toLowerCase()};d.exports=i},"057f":function(d,L,i){var l=i("fc6a"),u=i("241c").f,h={}.toString,f=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],g=function(S){try{return u(S)}catch(b){return f.slice()}};d.exports.f=function(b){return f&&h.call(b)=="[object Window]"?g(b):u(l(b))}},"06cf":function(d,L,i){var l=i("83ab"),u=i("d1e7"),h=i("5c6c"),f=i("fc6a"),g=i("c04e"),S=i("5135"),b=i("0cfb"),x=Object.getOwnPropertyDescriptor;L.f=l?x:function($,D){if($=f($),D=g(D,!0),b)try{return x($,D)}catch(A){}if(S($,D))return h(!u.f.call($,D),$[D])}},"07ac":function(d,L,i){var l=i("23e7"),u=i("6f53").values;l({target:"Object",stat:!0},{values:function(f){return u(f)}})},"0cfb":function(d,L,i){var l=i("83ab"),u=i("d039"),h=i("cc12");d.exports=!l&&!u(function(){return Object.defineProperty(h("div"),"a",{get:function(){return 7}}).a!=7})},1276:function(d,L,i){var l=i("d784"),u=i("44e7"),h=i("825a"),f=i("1d80"),g=i("4840"),S=i("8aa5"),b=i("50c4"),x=i("14c3"),C=i("9263"),$=i("d039"),D=[].push,A=Math.min,Y=4294967295,Q=!$(function(){return!RegExp(Y,"y")});l("split",2,function(te,ne,ie){var oe;return"abbc".split(/(b)*/)[1]=="c"||"test".split(/(?:)/,-1).length!=4||"ab".split(/(?:ab)*/).length!=2||".".split(/(.?)(.?)/).length!=4||".".split(/()()/).length>1||"".split(/.?/).length?oe=function(J,X){var fe=String(f(this)),Le=X===void 0?Y:X>>>0;if(Le===0)return[];if(J===void 0)return[fe];if(!u(J))return ne.call(fe,J,Le);for(var z=[],me=(J.ignoreCase?"i":"")+(J.multiline?"m":"")+(J.unicode?"u":"")+(J.sticky?"y":""),be=0,ae=new RegExp(J.source,me+"g"),xe,Se,Oe;(xe=C.call(ae,fe))&&(Se=ae.lastIndex,!(Se>be&&(z.push(fe.slice(be,xe.index)),xe.length>1&&xe.index<fe.length&&D.apply(z,xe.slice(1)),Oe=xe[0].length,be=Se,z.length>=Le)));)ae.lastIndex===xe.index&&ae.lastIndex++;return be===fe.length?(Oe||!ae.test(""))&&z.push(""):z.push(fe.slice(be)),z.length>Le?z.slice(0,Le):z}:"0".split(void 0,0).length?oe=function(J,X){return J===void 0&&X===0?[]:ne.call(this,J,X)}:oe=ne,[function(X,fe){var Le=f(this),z=X==null?void 0:X[te];return z!==void 0?z.call(X,Le,fe):oe.call(String(Le),X,fe)},function(J,X){var fe=ie(oe,J,this,X,oe!==ne);if(fe.done)return fe.value;var Le=h(J),z=String(this),me=g(Le,RegExp),be=Le.unicode,ae=(Le.ignoreCase?"i":"")+(Le.multiline?"m":"")+(Le.unicode?"u":"")+(Q?"y":"g"),xe=new me(Q?Le:"^(?:"+Le.source+")",ae),Se=X===void 0?Y:X>>>0;if(Se===0)return[];if(z.length===0)return x(xe,z)===null?[z]:[];for(var Oe=0,je=0,U=[];je<z.length;){xe.lastIndex=Q?je:0;var B=x(xe,Q?z:z.slice(je)),ee;if(B===null||(ee=A(b(xe.lastIndex+(Q?0:je)),z.length))===Oe)je=S(z,je,be);else{if(U.push(z.slice(Oe,je)),U.length===Se)return U;for(var ue=1;ue<=B.length-1;ue++)if(U.push(B[ue]),U.length===Se)return U;je=Oe=ee}}return U.push(z.slice(Oe)),U}]},!Q)},"13d5":function(d,L,i){var l=i("23e7"),u=i("d58f").left,h=i("a640"),f=i("ae40"),g=h("reduce"),S=f("reduce",{1:0});l({target:"Array",proto:!0,forced:!g||!S},{reduce:function(x){return u(this,x,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(d,L,i){var l=i("c6b6"),u=i("9263");d.exports=function(h,f){var g=h.exec;if(typeof g=="function"){var S=g.call(h,f);if(typeof S!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return S}if(l(h)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return u.call(h,f)}},"159b":function(d,L,i){var l=i("da84"),u=i("fdbc"),h=i("17c2"),f=i("9112");for(var g in u){var S=l[g],b=S&&S.prototype;if(b&&b.forEach!==h)try{f(b,"forEach",h)}catch(x){b.forEach=h}}},"17c2":function(d,L,i){var l=i("b727").forEach,u=i("a640"),h=i("ae40"),f=u("forEach"),g=h("forEach");d.exports=!f||!g?function(b){return l(this,b,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(d,L,i){var l=i("d066");d.exports=l("document","documentElement")},"1c0b":function(d,L){d.exports=function(i){if(typeof i!="function")throw TypeError(String(i)+" is not a function");return i}},"1c7e":function(d,L,i){var l=i("b622"),u=l("iterator"),h=!1;try{var f=0,g={next:function(){return{done:!!f++}},return:function(){h=!0}};g[u]=function(){return this},Array.from(g,function(){throw 2})}catch(S){}d.exports=function(S,b){if(!b&&!h)return!1;var x=!1;try{var C={};C[u]=function(){return{next:function(){return{done:x=!0}}}},S(C)}catch($){}return x}},"1d80":function(d,L){d.exports=function(i){if(i==null)throw TypeError("Can't call method on "+i);return i}},"1dde":function(d,L,i){var l=i("d039"),u=i("b622"),h=i("2d00"),f=u("species");d.exports=function(g){return h>=51||!l(function(){var S=[],b=S.constructor={};return b[f]=function(){return{foo:1}},S[g](Boolean).foo!==1})}},"217d":function(d,L){function i(h,f){var g=0,S=h.length,b;for(g;g<S&&(b=f(h[g],g),b!==!1);g++);}function l(h){return Object.prototype.toString.apply(h)==="[object Array]"}function u(h){return typeof h=="function"}d.exports={isFunction:u,isArray:l,each:i}},"23cb":function(d,L,i){var l=i("a691"),u=Math.max,h=Math.min;d.exports=function(f,g){var S=l(f);return S<0?u(S+g,0):h(S,g)}},"23e7":function(d,L,i){var l=i("da84"),u=i("06cf").f,h=i("9112"),f=i("6eeb"),g=i("ce4e"),S=i("e893"),b=i("94ca");d.exports=function(x,C){var $=x.target,D=x.global,A=x.stat,Y,Q,te,ne,ie,oe;if(D?Q=l:A?Q=l[$]||g($,{}):Q=(l[$]||{}).prototype,Q)for(te in C){if(ie=C[te],x.noTargetGet?(oe=u(Q,te),ne=oe&&oe.value):ne=Q[te],Y=b(D?te:$+(A?".":"#")+te,x.forced),!Y&&ne!==void 0){if(typeof ie==typeof ne)continue;S(ie,ne)}(x.sham||ne&&ne.sham)&&h(ie,"sham",!0),f(Q,te,ie,x)}}},"241c":function(d,L,i){var l=i("ca84"),u=i("7839"),h=u.concat("length","prototype");L.f=Object.getOwnPropertyNames||function(g){return l(g,h)}},"25f0":function(d,L,i){var l=i("6eeb"),u=i("825a"),h=i("d039"),f=i("ad6d"),g="toString",S=RegExp.prototype,b=S[g],x=h(function(){return b.call({source:"a",flags:"b"})!="/a/b"}),C=b.name!=g;(x||C)&&l(RegExp.prototype,g,function(){var D=u(this),A=String(D.source),Y=D.flags,Q=String(Y===void 0&&D instanceof RegExp&&!("flags"in S)?f.call(D):Y);return"/"+A+"/"+Q},{unsafe:!0})},"2d00":function(d,L,i){var l=i("da84"),u=i("342f"),h=l.process,f=h&&h.versions,g=f&&f.v8,S,b;g?(S=g.split("."),b=S[0]+S[1]):u&&(S=u.match(/Edge\/(\d+)/),(!S||S[1]>=74)&&(S=u.match(/Chrome\/(\d+)/),S&&(b=S[1]))),d.exports=b&&+b},"342f":function(d,L,i){var l=i("d066");d.exports=l("navigator","userAgent")||""},"35a1":function(d,L,i){var l=i("f5df"),u=i("3f8c"),h=i("b622"),f=h("iterator");d.exports=function(g){if(g!=null)return g[f]||g["@@iterator"]||u[l(g)]}},"37e8":function(d,L,i){var l=i("83ab"),u=i("9bf2"),h=i("825a"),f=i("df75");d.exports=l?Object.defineProperties:function(S,b){h(S);for(var x=f(b),C=x.length,$=0,D;C>$;)u.f(S,D=x[$++],b[D]);return S}},"3b81":function(d,L,i){},"3bbe":function(d,L,i){var l=i("861d");d.exports=function(u){if(!l(u)&&u!==null)throw TypeError("Can't set "+String(u)+" as a prototype");return u}},"3ca3":function(d,L,i){var l=i("6547").charAt,u=i("69f3"),h=i("7dd0"),f="String Iterator",g=u.set,S=u.getterFor(f);h(String,"String",function(b){g(this,{type:f,string:String(b),index:0})},function(){var x=S(this),C=x.string,$=x.index,D;return $>=C.length?{value:void 0,done:!0}:(D=l(C,$),x.index+=D.length,{value:D,done:!1})})},"3f8c":function(d,L){d.exports={}},4160:function(d,L,i){var l=i("23e7"),u=i("17c2");l({target:"Array",proto:!0,forced:[].forEach!=u},{forEach:u})},"428f":function(d,L,i){var l=i("da84");d.exports=l},"42a0":function(d,L){var i=9007199254740991,l="[object Arguments]",u="[object Function]",h="[object GeneratorFunction]",f=/^(?:0|[1-9]\d*)$/;function g(_,W,M){switch(M.length){case 0:return _.call(W);case 1:return _.call(W,M[0]);case 2:return _.call(W,M[0],M[1]);case 3:return _.call(W,M[0],M[1],M[2])}return _.apply(W,M)}function S(_,W){for(var M=-1,re=Array(_);++M<_;)re[M]=W(M);return re}function b(_,W){return function(M){return _(W(M))}}var x=Object.prototype,C=x.hasOwnProperty,$=x.toString,D=x.propertyIsEnumerable,A=b(Object.keys,Object),Y=Math.max,Q=!D.call({valueOf:1},"valueOf");function te(_,W){var M=ae(_)||be(_)?S(_.length,String):[],re=M.length,pe=!!re;for(var Ce in _)(W||C.call(_,Ce))&&!(pe&&(Ce=="length"||fe(Ce,re)))&&M.push(Ce);return M}function ne(_,W,M){var re=_[W];(!(C.call(_,W)&&me(re,M))||M===void 0&&!(W in _))&&(_[W]=M)}function ie(_){if(!z(_))return A(_);var W=[];for(var M in Object(_))C.call(_,M)&&M!="constructor"&&W.push(M);return W}function oe(_,W){return W=Y(W===void 0?_.length-1:W,0),function(){for(var M=arguments,re=-1,pe=Y(M.length-W,0),Ce=Array(pe);++re<pe;)Ce[re]=M[W+re];re=-1;for(var ye=Array(W+1);++re<W;)ye[re]=M[re];return ye[W]=Ce,g(_,this,ye)}}function J(_,W,M,re){M||(M={});for(var pe=-1,Ce=W.length;++pe<Ce;){var ye=W[pe],st=re?re(M[ye],_[ye],ye,M,_):void 0;ne(M,ye,st===void 0?_[ye]:st)}return M}function X(_){return oe(function(W,M){var re=-1,pe=M.length,Ce=pe>1?M[pe-1]:void 0,ye=pe>2?M[2]:void 0;for(Ce=_.length>3&&typeof Ce=="function"?(pe--,Ce):void 0,ye&&Le(M[0],M[1],ye)&&(Ce=pe<3?void 0:Ce,pe=1),W=Object(W);++re<pe;){var st=M[re];st&&_(W,st,re,Ce)}return W})}function fe(_,W){return W=W==null?i:W,!!W&&(typeof _=="number"||f.test(_))&&_>-1&&_%1==0&&_<W}function Le(_,W,M){if(!U(M))return!1;var re=typeof W;return(re=="number"?xe(M)&&fe(W,M.length):re=="string"&&W in M)?me(M[W],_):!1}function z(_){var W=_&&_.constructor,M=typeof W=="function"&&W.prototype||x;return _===M}function me(_,W){return _===W||_!==_&&W!==W}function be(_){return Se(_)&&C.call(_,"callee")&&(!D.call(_,"callee")||$.call(_)==l)}var ae=Array.isArray;function xe(_){return _!=null&&je(_.length)&&!Oe(_)}function Se(_){return B(_)&&xe(_)}function Oe(_){var W=U(_)?$.call(_):"";return W==u||W==h}function je(_){return typeof _=="number"&&_>-1&&_%1==0&&_<=i}function U(_){var W=typeof _;return!!_&&(W=="object"||W=="function")}function B(_){return!!_&&typeof _=="object"}var ee=X(function(_,W){if(Q||z(W)||xe(W)){J(W,ue(W),_);return}for(var M in W)C.call(W,M)&&ne(_,M,W[M])});function ue(_){return xe(_)?te(_):ie(_)}d.exports=ee},"44ad":function(d,L,i){var l=i("d039"),u=i("c6b6"),h="".split;d.exports=l(function(){return!Object("z").propertyIsEnumerable(0)})?function(f){return u(f)=="String"?h.call(f,""):Object(f)}:Object},"44d2":function(d,L,i){var l=i("b622"),u=i("7c73"),h=i("9bf2"),f=l("unscopables"),g=Array.prototype;g[f]==null&&h.f(g,f,{configurable:!0,value:u(null)}),d.exports=function(S){g[f][S]=!0}},"44e7":function(d,L,i){var l=i("861d"),u=i("c6b6"),h=i("b622"),f=h("match");d.exports=function(g){var S;return l(g)&&((S=g[f])!==void 0?!!S:u(g)=="RegExp")}},"466d":function(d,L,i){var l=i("d784"),u=i("825a"),h=i("50c4"),f=i("1d80"),g=i("8aa5"),S=i("14c3");l("match",1,function(b,x,C){return[function(D){var A=f(this),Y=D==null?void 0:D[b];return Y!==void 0?Y.call(D,A):new RegExp(D)[b](String(A))},function($){var D=C(x,$,this);if(D.done)return D.value;var A=u($),Y=String(this);if(!A.global)return S(A,Y);var Q=A.unicode;A.lastIndex=0;for(var te=[],ne=0,ie;(ie=S(A,Y))!==null;){var oe=String(ie[0]);te[ne]=oe,oe===""&&(A.lastIndex=g(Y,h(A.lastIndex),Q)),ne++}return ne===0?null:te}]})},4840:function(d,L,i){var l=i("825a"),u=i("1c0b"),h=i("b622"),f=h("species");d.exports=function(g,S){var b=l(g).constructor,x;return b===void 0||(x=l(b)[f])==null?S:u(x)}},4930:function(d,L,i){var l=i("d039");d.exports=!!Object.getOwnPropertySymbols&&!l(function(){return!String(Symbol())})},"4d64":function(d,L,i){var l=i("fc6a"),u=i("50c4"),h=i("23cb"),f=function(g){return function(S,b,x){var C=l(S),$=u(C.length),D=h(x,$),A;if(g&&b!=b){for(;$>D;)if(A=C[D++],A!=A)return!0}else for(;$>D;D++)if((g||D in C)&&C[D]===b)return g||D||0;return!g&&-1}};d.exports={includes:f(!0),indexOf:f(!1)}},"4de4":function(d,L,i){var l=i("23e7"),u=i("b727").filter,h=i("1dde"),f=i("ae40"),g=h("filter"),S=f("filter");l({target:"Array",proto:!0,forced:!g||!S},{filter:function(x){return u(this,x,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(d,L,i){var l=i("0366"),u=i("7b0b"),h=i("9bdd"),f=i("e95a"),g=i("50c4"),S=i("8418"),b=i("35a1");d.exports=function(C){var $=u(C),D=typeof this=="function"?this:Array,A=arguments.length,Y=A>1?arguments[1]:void 0,Q=Y!==void 0,te=b($),ne=0,ie,oe,J,X,fe,Le;if(Q&&(Y=l(Y,A>2?arguments[2]:void 0,2)),te!=null&&!(D==Array&&f(te)))for(X=te.call($),fe=X.next,oe=new D;!(J=fe.call(X)).done;ne++)Le=Q?h(X,Y,[J.value,ne],!0):J.value,S(oe,ne,Le);else for(ie=g($.length),oe=new D(ie);ie>ne;ne++)Le=Q?Y($[ne],ne):$[ne],S(oe,ne,Le);return oe.length=ne,oe}},"50c4":function(d,L,i){var l=i("a691"),u=Math.min;d.exports=function(h){return h>0?u(l(h),9007199254740991):0}},5135:function(d,L){var i={}.hasOwnProperty;d.exports=function(l,u){return i.call(l,u)}},5692:function(d,L,i){var l=i("c430"),u=i("c6cd");(d.exports=function(h,f){return u[h]||(u[h]=f!==void 0?f:{})})("versions",[]).push({version:"3.6.4",mode:l?"pure":"global",copyright:"\xA9 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(d,L,i){var l=i("d066"),u=i("241c"),h=i("7418"),f=i("825a");d.exports=l("Reflect","ownKeys")||function(S){var b=u.f(f(S)),x=h.f;return x?b.concat(x(S)):b}},5899:function(d,L){d.exports=` +"/>`,Xr.innerHTML.indexOf(" ")>0}var x9=!!Ae&&lo(!1),w9=!!Ae&&lo(!0),O9=oe(function(e){var t=mr(e);return t&&t.innerHTML}),T9=ot.prototype.$mount;return ot.prototype.$mount=function(e,t){if((e=e&&mr(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if(typeof r=="string")r.charAt(0)==="#"&&(r=O9(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(v){if(v.outerHTML)return v.outerHTML;var p=document.createElement("div");return p.appendChild(v.cloneNode(!0)),p.innerHTML}(e));if(r){var o=so(r,{outputSourceRange:!1,shouldDecodeNewlines:x9,shouldDecodeNewlinesForHref:w9,delimiters:n.delimiters,comments:n.comments},this),a=o.render,c=o.staticRenderFns;n.render=a,n.staticRenderFns=c}}return T9.call(this,e,t)},ot.compile=so,ae(ot,Po),ot.effect=function(e,t){var n=new Dn(Je,e,Se,{sync:!0});t&&(n.update=function(){t(function(){return n.run()})})},ot})})(fo);const zt=uo(fo.exports),vo=function(ce,E,d){for(var L=0;L<ce.length;L++)E.call(d,ce[L])};function C9(){return Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)}function rn(){return C9()>=1200}var po={exports:{}};(function(ce,E){(function(L,i){ce.exports=i()})(typeof self!="undefined"?self:t0,function(){return function(d){var L={};function i(l){if(L[l])return L[l].exports;var u=L[l]={i:l,l:!1,exports:{}};return d[l].call(u.exports,u,u.exports,i),u.l=!0,u.exports}return i.m=d,i.c=L,i.d=function(l,u,h){i.o(l,u)||Object.defineProperty(l,u,{enumerable:!0,get:h})},i.r=function(l){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(l,"__esModule",{value:!0})},i.t=function(l,u){if(u&1&&(l=i(l)),u&8||u&4&&typeof l=="object"&&l&&l.__esModule)return l;var h=Object.create(null);if(i.r(h),Object.defineProperty(h,"default",{enumerable:!0,value:l}),u&2&&typeof l!="string")for(var f in l)i.d(h,f,function(g){return l[g]}.bind(null,f));return h},i.n=function(l){var u=l&&l.__esModule?function(){return l.default}:function(){return l};return i.d(u,"a",u),u},i.o=function(l,u){return Object.prototype.hasOwnProperty.call(l,u)},i.p="",i(i.s="fb15")}({"00ee":function(d,L,i){var l=i("b622"),u=l("toStringTag"),h={};h[u]="z",d.exports=String(h)==="[object z]"},"0366":function(d,L,i){var l=i("1c0b");d.exports=function(u,h,f){if(l(u),h===void 0)return u;switch(f){case 0:return function(){return u.call(h)};case 1:return function(g){return u.call(h,g)};case 2:return function(g,S){return u.call(h,g,S)};case 3:return function(g,S,b){return u.call(h,g,S,b)}}return function(){return u.apply(h,arguments)}}},"0497":function(d,L){var i=function(l){return l.replace(/[A-Z]/g,function(u){return"-"+u.toLowerCase()}).toLowerCase()};d.exports=i},"057f":function(d,L,i){var l=i("fc6a"),u=i("241c").f,h={}.toString,f=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],g=function(S){try{return u(S)}catch(b){return f.slice()}};d.exports.f=function(b){return f&&h.call(b)=="[object Window]"?g(b):u(l(b))}},"06cf":function(d,L,i){var l=i("83ab"),u=i("d1e7"),h=i("5c6c"),f=i("fc6a"),g=i("c04e"),S=i("5135"),b=i("0cfb"),x=Object.getOwnPropertyDescriptor;L.f=l?x:function($,D){if($=f($),D=g(D,!0),b)try{return x($,D)}catch(A){}if(S($,D))return h(!u.f.call($,D),$[D])}},"07ac":function(d,L,i){var l=i("23e7"),u=i("6f53").values;l({target:"Object",stat:!0},{values:function(f){return u(f)}})},"0cfb":function(d,L,i){var l=i("83ab"),u=i("d039"),h=i("cc12");d.exports=!l&&!u(function(){return Object.defineProperty(h("div"),"a",{get:function(){return 7}}).a!=7})},1276:function(d,L,i){var l=i("d784"),u=i("44e7"),h=i("825a"),f=i("1d80"),g=i("4840"),S=i("8aa5"),b=i("50c4"),x=i("14c3"),C=i("9263"),$=i("d039"),D=[].push,A=Math.min,Y=4294967295,Q=!$(function(){return!RegExp(Y,"y")});l("split",2,function(te,ne,ie){var oe;return"abbc".split(/(b)*/)[1]=="c"||"test".split(/(?:)/,-1).length!=4||"ab".split(/(?:ab)*/).length!=2||".".split(/(.?)(.?)/).length!=4||".".split(/()()/).length>1||"".split(/.?/).length?oe=function(J,X){var fe=String(f(this)),Le=X===void 0?Y:X>>>0;if(Le===0)return[];if(J===void 0)return[fe];if(!u(J))return ne.call(fe,J,Le);for(var z=[],me=(J.ignoreCase?"i":"")+(J.multiline?"m":"")+(J.unicode?"u":"")+(J.sticky?"y":""),be=0,ae=new RegExp(J.source,me+"g"),xe,Se,Oe;(xe=C.call(ae,fe))&&(Se=ae.lastIndex,!(Se>be&&(z.push(fe.slice(be,xe.index)),xe.length>1&&xe.index<fe.length&&D.apply(z,xe.slice(1)),Oe=xe[0].length,be=Se,z.length>=Le)));)ae.lastIndex===xe.index&&ae.lastIndex++;return be===fe.length?(Oe||!ae.test(""))&&z.push(""):z.push(fe.slice(be)),z.length>Le?z.slice(0,Le):z}:"0".split(void 0,0).length?oe=function(J,X){return J===void 0&&X===0?[]:ne.call(this,J,X)}:oe=ne,[function(X,fe){var Le=f(this),z=X==null?void 0:X[te];return z!==void 0?z.call(X,Le,fe):oe.call(String(Le),X,fe)},function(J,X){var fe=ie(oe,J,this,X,oe!==ne);if(fe.done)return fe.value;var Le=h(J),z=String(this),me=g(Le,RegExp),be=Le.unicode,ae=(Le.ignoreCase?"i":"")+(Le.multiline?"m":"")+(Le.unicode?"u":"")+(Q?"y":"g"),xe=new me(Q?Le:"^(?:"+Le.source+")",ae),Se=X===void 0?Y:X>>>0;if(Se===0)return[];if(z.length===0)return x(xe,z)===null?[z]:[];for(var Oe=0,je=0,U=[];je<z.length;){xe.lastIndex=Q?je:0;var B=x(xe,Q?z:z.slice(je)),ee;if(B===null||(ee=A(b(xe.lastIndex+(Q?0:je)),z.length))===Oe)je=S(z,je,be);else{if(U.push(z.slice(Oe,je)),U.length===Se)return U;for(var ue=1;ue<=B.length-1;ue++)if(U.push(B[ue]),U.length===Se)return U;je=Oe=ee}}return U.push(z.slice(Oe)),U}]},!Q)},"13d5":function(d,L,i){var l=i("23e7"),u=i("d58f").left,h=i("a640"),f=i("ae40"),g=h("reduce"),S=f("reduce",{1:0});l({target:"Array",proto:!0,forced:!g||!S},{reduce:function(x){return u(this,x,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(d,L,i){var l=i("c6b6"),u=i("9263");d.exports=function(h,f){var g=h.exec;if(typeof g=="function"){var S=g.call(h,f);if(typeof S!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return S}if(l(h)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return u.call(h,f)}},"159b":function(d,L,i){var l=i("da84"),u=i("fdbc"),h=i("17c2"),f=i("9112");for(var g in u){var S=l[g],b=S&&S.prototype;if(b&&b.forEach!==h)try{f(b,"forEach",h)}catch(x){b.forEach=h}}},"17c2":function(d,L,i){var l=i("b727").forEach,u=i("a640"),h=i("ae40"),f=u("forEach"),g=h("forEach");d.exports=!f||!g?function(b){return l(this,b,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(d,L,i){var l=i("d066");d.exports=l("document","documentElement")},"1c0b":function(d,L){d.exports=function(i){if(typeof i!="function")throw TypeError(String(i)+" is not a function");return i}},"1c7e":function(d,L,i){var l=i("b622"),u=l("iterator"),h=!1;try{var f=0,g={next:function(){return{done:!!f++}},return:function(){h=!0}};g[u]=function(){return this},Array.from(g,function(){throw 2})}catch(S){}d.exports=function(S,b){if(!b&&!h)return!1;var x=!1;try{var C={};C[u]=function(){return{next:function(){return{done:x=!0}}}},S(C)}catch($){}return x}},"1d80":function(d,L){d.exports=function(i){if(i==null)throw TypeError("Can't call method on "+i);return i}},"1dde":function(d,L,i){var l=i("d039"),u=i("b622"),h=i("2d00"),f=u("species");d.exports=function(g){return h>=51||!l(function(){var S=[],b=S.constructor={};return b[f]=function(){return{foo:1}},S[g](Boolean).foo!==1})}},"217d":function(d,L){function i(h,f){var g=0,S=h.length,b;for(g;g<S&&(b=f(h[g],g),b!==!1);g++);}function l(h){return Object.prototype.toString.apply(h)==="[object Array]"}function u(h){return typeof h=="function"}d.exports={isFunction:u,isArray:l,each:i}},"23cb":function(d,L,i){var l=i("a691"),u=Math.max,h=Math.min;d.exports=function(f,g){var S=l(f);return S<0?u(S+g,0):h(S,g)}},"23e7":function(d,L,i){var l=i("da84"),u=i("06cf").f,h=i("9112"),f=i("6eeb"),g=i("ce4e"),S=i("e893"),b=i("94ca");d.exports=function(x,C){var $=x.target,D=x.global,A=x.stat,Y,Q,te,ne,ie,oe;if(D?Q=l:A?Q=l[$]||g($,{}):Q=(l[$]||{}).prototype,Q)for(te in C){if(ie=C[te],x.noTargetGet?(oe=u(Q,te),ne=oe&&oe.value):ne=Q[te],Y=b(D?te:$+(A?".":"#")+te,x.forced),!Y&&ne!==void 0){if(typeof ie==typeof ne)continue;S(ie,ne)}(x.sham||ne&&ne.sham)&&h(ie,"sham",!0),f(Q,te,ie,x)}}},"241c":function(d,L,i){var l=i("ca84"),u=i("7839"),h=u.concat("length","prototype");L.f=Object.getOwnPropertyNames||function(g){return l(g,h)}},"25f0":function(d,L,i){var l=i("6eeb"),u=i("825a"),h=i("d039"),f=i("ad6d"),g="toString",S=RegExp.prototype,b=S[g],x=h(function(){return b.call({source:"a",flags:"b"})!="/a/b"}),C=b.name!=g;(x||C)&&l(RegExp.prototype,g,function(){var D=u(this),A=String(D.source),Y=D.flags,Q=String(Y===void 0&&D instanceof RegExp&&!("flags"in S)?f.call(D):Y);return"/"+A+"/"+Q},{unsafe:!0})},"2d00":function(d,L,i){var l=i("da84"),u=i("342f"),h=l.process,f=h&&h.versions,g=f&&f.v8,S,b;g?(S=g.split("."),b=S[0]+S[1]):u&&(S=u.match(/Edge\/(\d+)/),(!S||S[1]>=74)&&(S=u.match(/Chrome\/(\d+)/),S&&(b=S[1]))),d.exports=b&&+b},"342f":function(d,L,i){var l=i("d066");d.exports=l("navigator","userAgent")||""},"35a1":function(d,L,i){var l=i("f5df"),u=i("3f8c"),h=i("b622"),f=h("iterator");d.exports=function(g){if(g!=null)return g[f]||g["@@iterator"]||u[l(g)]}},"37e8":function(d,L,i){var l=i("83ab"),u=i("9bf2"),h=i("825a"),f=i("df75");d.exports=l?Object.defineProperties:function(S,b){h(S);for(var x=f(b),C=x.length,$=0,D;C>$;)u.f(S,D=x[$++],b[D]);return S}},"3b81":function(d,L,i){},"3bbe":function(d,L,i){var l=i("861d");d.exports=function(u){if(!l(u)&&u!==null)throw TypeError("Can't set "+String(u)+" as a prototype");return u}},"3ca3":function(d,L,i){var l=i("6547").charAt,u=i("69f3"),h=i("7dd0"),f="String Iterator",g=u.set,S=u.getterFor(f);h(String,"String",function(b){g(this,{type:f,string:String(b),index:0})},function(){var x=S(this),C=x.string,$=x.index,D;return $>=C.length?{value:void 0,done:!0}:(D=l(C,$),x.index+=D.length,{value:D,done:!1})})},"3f8c":function(d,L){d.exports={}},4160:function(d,L,i){var l=i("23e7"),u=i("17c2");l({target:"Array",proto:!0,forced:[].forEach!=u},{forEach:u})},"428f":function(d,L,i){var l=i("da84");d.exports=l},"42a0":function(d,L){var i=9007199254740991,l="[object Arguments]",u="[object Function]",h="[object GeneratorFunction]",f=/^(?:0|[1-9]\d*)$/;function g(_,W,M){switch(M.length){case 0:return _.call(W);case 1:return _.call(W,M[0]);case 2:return _.call(W,M[0],M[1]);case 3:return _.call(W,M[0],M[1],M[2])}return _.apply(W,M)}function S(_,W){for(var M=-1,re=Array(_);++M<_;)re[M]=W(M);return re}function b(_,W){return function(M){return _(W(M))}}var x=Object.prototype,C=x.hasOwnProperty,$=x.toString,D=x.propertyIsEnumerable,A=b(Object.keys,Object),Y=Math.max,Q=!D.call({valueOf:1},"valueOf");function te(_,W){var M=ae(_)||be(_)?S(_.length,String):[],re=M.length,pe=!!re;for(var Ce in _)(W||C.call(_,Ce))&&!(pe&&(Ce=="length"||fe(Ce,re)))&&M.push(Ce);return M}function ne(_,W,M){var re=_[W];(!(C.call(_,W)&&me(re,M))||M===void 0&&!(W in _))&&(_[W]=M)}function ie(_){if(!z(_))return A(_);var W=[];for(var M in Object(_))C.call(_,M)&&M!="constructor"&&W.push(M);return W}function oe(_,W){return W=Y(W===void 0?_.length-1:W,0),function(){for(var M=arguments,re=-1,pe=Y(M.length-W,0),Ce=Array(pe);++re<pe;)Ce[re]=M[W+re];re=-1;for(var ye=Array(W+1);++re<W;)ye[re]=M[re];return ye[W]=Ce,g(_,this,ye)}}function J(_,W,M,re){M||(M={});for(var pe=-1,Ce=W.length;++pe<Ce;){var ye=W[pe],st=re?re(M[ye],_[ye],ye,M,_):void 0;ne(M,ye,st===void 0?_[ye]:st)}return M}function X(_){return oe(function(W,M){var re=-1,pe=M.length,Ce=pe>1?M[pe-1]:void 0,ye=pe>2?M[2]:void 0;for(Ce=_.length>3&&typeof Ce=="function"?(pe--,Ce):void 0,ye&&Le(M[0],M[1],ye)&&(Ce=pe<3?void 0:Ce,pe=1),W=Object(W);++re<pe;){var st=M[re];st&&_(W,st,re,Ce)}return W})}function fe(_,W){return W=W==null?i:W,!!W&&(typeof _=="number"||f.test(_))&&_>-1&&_%1==0&&_<W}function Le(_,W,M){if(!U(M))return!1;var re=typeof W;return(re=="number"?xe(M)&&fe(W,M.length):re=="string"&&W in M)?me(M[W],_):!1}function z(_){var W=_&&_.constructor,M=typeof W=="function"&&W.prototype||x;return _===M}function me(_,W){return _===W||_!==_&&W!==W}function be(_){return Se(_)&&C.call(_,"callee")&&(!D.call(_,"callee")||$.call(_)==l)}var ae=Array.isArray;function xe(_){return _!=null&&je(_.length)&&!Oe(_)}function Se(_){return B(_)&&xe(_)}function Oe(_){var W=U(_)?$.call(_):"";return W==u||W==h}function je(_){return typeof _=="number"&&_>-1&&_%1==0&&_<=i}function U(_){var W=typeof _;return!!_&&(W=="object"||W=="function")}function B(_){return!!_&&typeof _=="object"}var ee=X(function(_,W){if(Q||z(W)||xe(W)){J(W,ue(W),_);return}for(var M in W)C.call(W,M)&&ne(_,M,W[M])});function ue(_){return xe(_)?te(_):ie(_)}d.exports=ee},"44ad":function(d,L,i){var l=i("d039"),u=i("c6b6"),h="".split;d.exports=l(function(){return!Object("z").propertyIsEnumerable(0)})?function(f){return u(f)=="String"?h.call(f,""):Object(f)}:Object},"44d2":function(d,L,i){var l=i("b622"),u=i("7c73"),h=i("9bf2"),f=l("unscopables"),g=Array.prototype;g[f]==null&&h.f(g,f,{configurable:!0,value:u(null)}),d.exports=function(S){g[f][S]=!0}},"44e7":function(d,L,i){var l=i("861d"),u=i("c6b6"),h=i("b622"),f=h("match");d.exports=function(g){var S;return l(g)&&((S=g[f])!==void 0?!!S:u(g)=="RegExp")}},"466d":function(d,L,i){var l=i("d784"),u=i("825a"),h=i("50c4"),f=i("1d80"),g=i("8aa5"),S=i("14c3");l("match",1,function(b,x,C){return[function(D){var A=f(this),Y=D==null?void 0:D[b];return Y!==void 0?Y.call(D,A):new RegExp(D)[b](String(A))},function($){var D=C(x,$,this);if(D.done)return D.value;var A=u($),Y=String(this);if(!A.global)return S(A,Y);var Q=A.unicode;A.lastIndex=0;for(var te=[],ne=0,ie;(ie=S(A,Y))!==null;){var oe=String(ie[0]);te[ne]=oe,oe===""&&(A.lastIndex=g(Y,h(A.lastIndex),Q)),ne++}return ne===0?null:te}]})},4840:function(d,L,i){var l=i("825a"),u=i("1c0b"),h=i("b622"),f=h("species");d.exports=function(g,S){var b=l(g).constructor,x;return b===void 0||(x=l(b)[f])==null?S:u(x)}},4930:function(d,L,i){var l=i("d039");d.exports=!!Object.getOwnPropertySymbols&&!l(function(){return!String(Symbol())})},"4d64":function(d,L,i){var l=i("fc6a"),u=i("50c4"),h=i("23cb"),f=function(g){return function(S,b,x){var C=l(S),$=u(C.length),D=h(x,$),A;if(g&&b!=b){for(;$>D;)if(A=C[D++],A!=A)return!0}else for(;$>D;D++)if((g||D in C)&&C[D]===b)return g||D||0;return!g&&-1}};d.exports={includes:f(!0),indexOf:f(!1)}},"4de4":function(d,L,i){var l=i("23e7"),u=i("b727").filter,h=i("1dde"),f=i("ae40"),g=h("filter"),S=f("filter");l({target:"Array",proto:!0,forced:!g||!S},{filter:function(x){return u(this,x,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(d,L,i){var l=i("0366"),u=i("7b0b"),h=i("9bdd"),f=i("e95a"),g=i("50c4"),S=i("8418"),b=i("35a1");d.exports=function(C){var $=u(C),D=typeof this=="function"?this:Array,A=arguments.length,Y=A>1?arguments[1]:void 0,Q=Y!==void 0,te=b($),ne=0,ie,oe,J,X,fe,Le;if(Q&&(Y=l(Y,A>2?arguments[2]:void 0,2)),te!=null&&!(D==Array&&f(te)))for(X=te.call($),fe=X.next,oe=new D;!(J=fe.call(X)).done;ne++)Le=Q?h(X,Y,[J.value,ne],!0):J.value,S(oe,ne,Le);else for(ie=g($.length),oe=new D(ie);ie>ne;ne++)Le=Q?Y($[ne],ne):$[ne],S(oe,ne,Le);return oe.length=ne,oe}},"50c4":function(d,L,i){var l=i("a691"),u=Math.min;d.exports=function(h){return h>0?u(l(h),9007199254740991):0}},5135:function(d,L){var i={}.hasOwnProperty;d.exports=function(l,u){return i.call(l,u)}},5692:function(d,L,i){var l=i("c430"),u=i("c6cd");(d.exports=function(h,f){return u[h]||(u[h]=f!==void 0?f:{})})("versions",[]).push({version:"3.6.4",mode:l?"pure":"global",copyright:"\xA9 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(d,L,i){var l=i("d066"),u=i("241c"),h=i("7418"),f=i("825a");d.exports=l("Reflect","ownKeys")||function(S){var b=u.f(f(S)),x=h.f;return x?b.concat(x(S)):b}},5899:function(d,L){d.exports=` \v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},"58a8":function(d,L,i){var l=i("1d80"),u=i("5899"),h="["+u+"]",f=RegExp("^"+h+h+"*"),g=RegExp(h+h+"*$"),S=function(b){return function(x){var C=String(l(x));return b&1&&(C=C.replace(f,"")),b&2&&(C=C.replace(g,"")),C}};d.exports={start:S(1),end:S(2),trim:S(3)}},"5c6c":function(d,L){d.exports=function(i,l){return{enumerable:!(i&1),configurable:!(i&2),writable:!(i&4),value:l}}},"60da":function(d,L,i){var l=i("83ab"),u=i("d039"),h=i("df75"),f=i("7418"),g=i("d1e7"),S=i("7b0b"),b=i("44ad"),x=Object.assign,C=Object.defineProperty;d.exports=!x||u(function(){if(l&&x({b:1},x(C({},"a",{enumerable:!0,get:function(){C(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var $={},D={},A=Symbol(),Y="abcdefghijklmnopqrst";return $[A]=7,Y.split("").forEach(function(Q){D[Q]=Q}),x({},$)[A]!=7||h(x({},D)).join("")!=Y})?function(D,A){for(var Y=S(D),Q=arguments.length,te=1,ne=f.f,ie=g.f;Q>te;)for(var oe=b(arguments[te++]),J=ne?h(oe).concat(ne(oe)):h(oe),X=J.length,fe=0,Le;X>fe;)Le=J[fe++],(!l||ie.call(oe,Le))&&(Y[Le]=oe[Le]);return Y}:x},6547:function(d,L,i){var l=i("a691"),u=i("1d80"),h=function(f){return function(g,S){var b=String(u(g)),x=l(S),C=b.length,$,D;return x<0||x>=C?f?"":void 0:($=b.charCodeAt(x),$<55296||$>56319||x+1===C||(D=b.charCodeAt(x+1))<56320||D>57343?f?b.charAt(x):$:f?b.slice(x,x+2):($-55296<<10)+(D-56320)+65536)}};d.exports={codeAt:h(!1),charAt:h(!0)}},"65f0":function(d,L,i){var l=i("861d"),u=i("e8b5"),h=i("b622"),f=h("species");d.exports=function(g,S){var b;return u(g)&&(b=g.constructor,typeof b=="function"&&(b===Array||u(b.prototype))?b=void 0:l(b)&&(b=b[f],b===null&&(b=void 0))),new(b===void 0?Array:b)(S===0?0:S)}},"69f3":function(d,L,i){var l=i("7f9a"),u=i("da84"),h=i("861d"),f=i("9112"),g=i("5135"),S=i("f772"),b=i("d012"),x=u.WeakMap,C,$,D,A=function(J){return D(J)?$(J):C(J,{})},Y=function(J){return function(X){var fe;if(!h(X)||(fe=$(X)).type!==J)throw TypeError("Incompatible receiver, "+J+" required");return fe}};if(l){var Q=new x,te=Q.get,ne=Q.has,ie=Q.set;C=function(J,X){return ie.call(Q,J,X),X},$=function(J){return te.call(Q,J)||{}},D=function(J){return ne.call(Q,J)}}else{var oe=S("state");b[oe]=!0,C=function(J,X){return f(J,oe,X),X},$=function(J){return g(J,oe)?J[oe]:{}},D=function(J){return g(J,oe)}}d.exports={set:C,get:$,has:D,enforce:A,getterFor:Y}},"6dd8":function(d,L,i){(function(l){var u=function(){if(typeof Map!="undefined")return Map;function U(B,ee){var ue=-1;return B.some(function(_,W){return _[0]===ee?(ue=W,!0):!1}),ue}return function(){function B(){this.__entries__=[]}return Object.defineProperty(B.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),B.prototype.get=function(ee){var ue=U(this.__entries__,ee),_=this.__entries__[ue];return _&&_[1]},B.prototype.set=function(ee,ue){var _=U(this.__entries__,ee);~_?this.__entries__[_][1]=ue:this.__entries__.push([ee,ue])},B.prototype.delete=function(ee){var ue=this.__entries__,_=U(ue,ee);~_&&ue.splice(_,1)},B.prototype.has=function(ee){return!!~U(this.__entries__,ee)},B.prototype.clear=function(){this.__entries__.splice(0)},B.prototype.forEach=function(ee,ue){ue===void 0&&(ue=null);for(var _=0,W=this.__entries__;_<W.length;_++){var M=W[_];ee.call(ue,M[1],M[0])}},B}()}(),h=typeof window!="undefined"&&typeof document!="undefined"&&window.document===document,f=function(){return typeof l!="undefined"&&l.Math===Math?l:typeof self!="undefined"&&self.Math===Math?self:typeof window!="undefined"&&window.Math===Math?window:Function("return this")()}(),g=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(f):function(U){return setTimeout(function(){return U(Date.now())},1e3/60)}}(),S=2;function b(U,B){var ee=!1,ue=!1,_=0;function W(){ee&&(ee=!1,U()),ue&&re()}function M(){g(W)}function re(){var pe=Date.now();if(ee){if(pe-_<S)return;ue=!0}else ee=!0,ue=!1,setTimeout(M,B);_=pe}return re}var x=20,C=["top","right","bottom","left","width","height","size","weight"],$=typeof MutationObserver!="undefined",D=function(){function U(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=b(this.refresh.bind(this),x)}return U.prototype.addObserver=function(B){~this.observers_.indexOf(B)||this.observers_.push(B),this.connected_||this.connect_()},U.prototype.removeObserver=function(B){var ee=this.observers_,ue=ee.indexOf(B);~ue&&ee.splice(ue,1),!ee.length&&this.connected_&&this.disconnect_()},U.prototype.refresh=function(){var B=this.updateObservers_();B&&this.refresh()},U.prototype.updateObservers_=function(){var B=this.observers_.filter(function(ee){return ee.gatherActive(),ee.hasActive()});return B.forEach(function(ee){return ee.broadcastActive()}),B.length>0},U.prototype.connect_=function(){!h||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),$?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},U.prototype.disconnect_=function(){!h||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},U.prototype.onTransitionEnd_=function(B){var ee=B.propertyName,ue=ee===void 0?"":ee,_=C.some(function(W){return!!~ue.indexOf(W)});_&&this.refresh()},U.getInstance=function(){return this.instance_||(this.instance_=new U),this.instance_},U.instance_=null,U}(),A=function(U,B){for(var ee=0,ue=Object.keys(B);ee<ue.length;ee++){var _=ue[ee];Object.defineProperty(U,_,{value:B[_],enumerable:!1,writable:!1,configurable:!0})}return U},Y=function(U){var B=U&&U.ownerDocument&&U.ownerDocument.defaultView;return B||f},Q=me(0,0,0,0);function te(U){return parseFloat(U)||0}function ne(U){for(var B=[],ee=1;ee<arguments.length;ee++)B[ee-1]=arguments[ee];return B.reduce(function(ue,_){var W=U["border-"+_+"-width"];return ue+te(W)},0)}function ie(U){for(var B=["top","right","bottom","left"],ee={},ue=0,_=B;ue<_.length;ue++){var W=_[ue],M=U["padding-"+W];ee[W]=te(M)}return ee}function oe(U){var B=U.getBBox();return me(0,0,B.width,B.height)}function J(U){var B=U.clientWidth,ee=U.clientHeight;if(!B&&!ee)return Q;var ue=Y(U).getComputedStyle(U),_=ie(ue),W=_.left+_.right,M=_.top+_.bottom,re=te(ue.width),pe=te(ue.height);if(ue.boxSizing==="border-box"&&(Math.round(re+W)!==B&&(re-=ne(ue,"left","right")+W),Math.round(pe+M)!==ee&&(pe-=ne(ue,"top","bottom")+M)),!fe(U)){var Ce=Math.round(re+W)-B,ye=Math.round(pe+M)-ee;Math.abs(Ce)!==1&&(re-=Ce),Math.abs(ye)!==1&&(pe-=ye)}return me(_.left,_.top,re,pe)}var X=function(){return typeof SVGGraphicsElement!="undefined"?function(U){return U instanceof Y(U).SVGGraphicsElement}:function(U){return U instanceof Y(U).SVGElement&&typeof U.getBBox=="function"}}();function fe(U){return U===Y(U).document.documentElement}function Le(U){return h?X(U)?oe(U):J(U):Q}function z(U){var B=U.x,ee=U.y,ue=U.width,_=U.height,W=typeof DOMRectReadOnly!="undefined"?DOMRectReadOnly:Object,M=Object.create(W.prototype);return A(M,{x:B,y:ee,width:ue,height:_,top:ee,right:B+ue,bottom:_+ee,left:B}),M}function me(U,B,ee,ue){return{x:U,y:B,width:ee,height:ue}}var be=function(){function U(B){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=me(0,0,0,0),this.target=B}return U.prototype.isActive=function(){var B=Le(this.target);return this.contentRect_=B,B.width!==this.broadcastWidth||B.height!==this.broadcastHeight},U.prototype.broadcastRect=function(){var B=this.contentRect_;return this.broadcastWidth=B.width,this.broadcastHeight=B.height,B},U}(),ae=function(){function U(B,ee){var ue=z(ee);A(this,{target:B,contentRect:ue})}return U}(),xe=function(){function U(B,ee,ue){if(this.activeObservations_=[],this.observations_=new u,typeof B!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=B,this.controller_=ee,this.callbackCtx_=ue}return U.prototype.observe=function(B){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element=="undefined"||!(Element instanceof Object))){if(!(B instanceof Y(B).Element))throw new TypeError('parameter 1 is not of type "Element".');var ee=this.observations_;ee.has(B)||(ee.set(B,new be(B)),this.controller_.addObserver(this),this.controller_.refresh())}},U.prototype.unobserve=function(B){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element=="undefined"||!(Element instanceof Object))){if(!(B instanceof Y(B).Element))throw new TypeError('parameter 1 is not of type "Element".');var ee=this.observations_;!ee.has(B)||(ee.delete(B),ee.size||this.controller_.removeObserver(this))}},U.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},U.prototype.gatherActive=function(){var B=this;this.clearActive(),this.observations_.forEach(function(ee){ee.isActive()&&B.activeObservations_.push(ee)})},U.prototype.broadcastActive=function(){if(!!this.hasActive()){var B=this.callbackCtx_,ee=this.activeObservations_.map(function(ue){return new ae(ue.target,ue.broadcastRect())});this.callback_.call(B,ee,B),this.clearActive()}},U.prototype.clearActive=function(){this.activeObservations_.splice(0)},U.prototype.hasActive=function(){return this.activeObservations_.length>0},U}(),Se=typeof WeakMap!="undefined"?new WeakMap:new u,Oe=function(){function U(B){if(!(this instanceof U))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var ee=D.getInstance(),ue=new xe(B,ee,this);Se.set(this,ue)}return U}();["observe","unobserve","disconnect"].forEach(function(U){Oe.prototype[U]=function(){var B;return(B=Se.get(this))[U].apply(B,arguments)}});var je=function(){return typeof f.ResizeObserver!="undefined"?f.ResizeObserver:Oe}();L.a=je}).call(this,i("c8ba"))},"6ea2":function(d,L,i){var l=i("890c"),u=i.n(l);u.a},"6eeb":function(d,L,i){var l=i("da84"),u=i("9112"),h=i("5135"),f=i("ce4e"),g=i("8925"),S=i("69f3"),b=S.get,x=S.enforce,C=String(String).split("String");(d.exports=function($,D,A,Y){var Q=Y?!!Y.unsafe:!1,te=Y?!!Y.enumerable:!1,ne=Y?!!Y.noTargetGet:!1;if(typeof A=="function"&&(typeof D=="string"&&!h(A,"name")&&u(A,"name",D),x(A).source=C.join(typeof D=="string"?D:"")),$===l){te?$[D]=A:f(D,A);return}else Q?!ne&&$[D]&&(te=!0):delete $[D];te?$[D]=A:u($,D,A)})(Function.prototype,"toString",function(){return typeof this=="function"&&b(this).source||g(this)})},"6f53":function(d,L,i){var l=i("83ab"),u=i("df75"),h=i("fc6a"),f=i("d1e7").f,g=function(S){return function(b){for(var x=h(b),C=u(x),$=C.length,D=0,A=[],Y;$>D;)Y=C[D++],(!l||f.call(x,Y))&&A.push(S?[Y,x[Y]]:x[Y]);return A}};d.exports={entries:g(!0),values:g(!1)}},7156:function(d,L,i){var l=i("861d"),u=i("d2bb");d.exports=function(h,f,g){var S,b;return u&&typeof(S=f.constructor)=="function"&&S!==g&&l(b=S.prototype)&&b!==g.prototype&&u(h,b),h}},7418:function(d,L){L.f=Object.getOwnPropertySymbols},"746f":function(d,L,i){var l=i("428f"),u=i("5135"),h=i("e538"),f=i("9bf2").f;d.exports=function(g){var S=l.Symbol||(l.Symbol={});u(S,g)||f(S,g,{value:h.f(g)})}},7839:function(d,L){d.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(d,L,i){var l=i("1d80");d.exports=function(u){return Object(l(u))}},"7c73":function(d,L,i){var l=i("825a"),u=i("37e8"),h=i("7839"),f=i("d012"),g=i("1be4"),S=i("cc12"),b=i("f772"),x=">",C="<",$="prototype",D="script",A=b("IE_PROTO"),Y=function(){},Q=function(J){return C+D+x+J+C+"/"+D+x},te=function(J){J.write(Q("")),J.close();var X=J.parentWindow.Object;return J=null,X},ne=function(){var J=S("iframe"),X="java"+D+":",fe;return J.style.display="none",g.appendChild(J),J.src=String(X),fe=J.contentWindow.document,fe.open(),fe.write(Q("document.F=Object")),fe.close(),fe.F},ie,oe=function(){try{ie=document.domain&&new ActiveXObject("htmlfile")}catch(X){}oe=ie?te(ie):ne();for(var J=h.length;J--;)delete oe[$][h[J]];return oe()};f[A]=!0,d.exports=Object.create||function(X,fe){var Le;return X!==null?(Y[$]=l(X),Le=new Y,Y[$]=null,Le[A]=X):Le=oe(),fe===void 0?Le:u(Le,fe)}},"7dd0":function(d,L,i){var l=i("23e7"),u=i("9ed3"),h=i("e163"),f=i("d2bb"),g=i("d44e"),S=i("9112"),b=i("6eeb"),x=i("b622"),C=i("c430"),$=i("3f8c"),D=i("ae93"),A=D.IteratorPrototype,Y=D.BUGGY_SAFARI_ITERATORS,Q=x("iterator"),te="keys",ne="values",ie="entries",oe=function(){return this};d.exports=function(J,X,fe,Le,z,me,be){u(fe,X,Le);var ae=function(W){if(W===z&&U)return U;if(!Y&&W in Oe)return Oe[W];switch(W){case te:return function(){return new fe(this,W)};case ne:return function(){return new fe(this,W)};case ie:return function(){return new fe(this,W)}}return function(){return new fe(this)}},xe=X+" Iterator",Se=!1,Oe=J.prototype,je=Oe[Q]||Oe["@@iterator"]||z&&Oe[z],U=!Y&&je||ae(z),B=X=="Array"&&Oe.entries||je,ee,ue,_;if(B&&(ee=h(B.call(new J)),A!==Object.prototype&&ee.next&&(!C&&h(ee)!==A&&(f?f(ee,A):typeof ee[Q]!="function"&&S(ee,Q,oe)),g(ee,xe,!0,!0),C&&($[xe]=oe))),z==ne&&je&&je.name!==ne&&(Se=!0,U=function(){return je.call(this)}),(!C||be)&&Oe[Q]!==U&&S(Oe,Q,U),$[X]=U,z)if(ue={values:ae(ne),keys:me?U:ae(te),entries:ae(ie)},be)for(_ in ue)(Y||Se||!(_ in Oe))&&b(Oe,_,ue[_]);else l({target:X,proto:!0,forced:Y||Se},ue);return ue}},"7f9a":function(d,L,i){var l=i("da84"),u=i("8925"),h=l.WeakMap;d.exports=typeof h=="function"&&/native code/.test(u(h))},"825a":function(d,L,i){var l=i("861d");d.exports=function(u){if(!l(u))throw TypeError(String(u)+" is not an object");return u}},"83ab":function(d,L,i){var l=i("d039");d.exports=!l(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},8418:function(d,L,i){var l=i("c04e"),u=i("9bf2"),h=i("5c6c");d.exports=function(f,g,S){var b=l(g);b in f?u.f(f,b,h(0,S)):f[b]=S}},"861d":function(d,L){d.exports=function(i){return typeof i=="object"?i!==null:typeof i=="function"}},"88bc":function(d,L,i){(function(l){var u=1/0,h=9007199254740991,f="[object Arguments]",g="[object Function]",S="[object GeneratorFunction]",b="[object Symbol]",x=typeof l=="object"&&l&&l.Object===Object&&l,C=typeof self=="object"&&self&&self.Object===Object&&self,$=x||C||Function("return this")();function D(M,re,pe){switch(pe.length){case 0:return M.call(re);case 1:return M.call(re,pe[0]);case 2:return M.call(re,pe[0],pe[1]);case 3:return M.call(re,pe[0],pe[1],pe[2])}return M.apply(re,pe)}function A(M,re){for(var pe=-1,Ce=M?M.length:0,ye=Array(Ce);++pe<Ce;)ye[pe]=re(M[pe],pe,M);return ye}function Y(M,re){for(var pe=-1,Ce=re.length,ye=M.length;++pe<Ce;)M[ye+pe]=re[pe];return M}var Q=Object.prototype,te=Q.hasOwnProperty,ne=Q.toString,ie=$.Symbol,oe=Q.propertyIsEnumerable,J=ie?ie.isConcatSpreadable:void 0,X=Math.max;function fe(M,re,pe,Ce,ye){var st=-1,nt=M.length;for(pe||(pe=be),ye||(ye=[]);++st<nt;){var Ae=M[st];re>0&&pe(Ae)?re>1?fe(Ae,re-1,pe,Ce,ye):Y(ye,Ae):Ce||(ye[ye.length]=Ae)}return ye}function Le(M,re){return M=Object(M),z(M,re,function(pe,Ce){return Ce in M})}function z(M,re,pe){for(var Ce=-1,ye=re.length,st={};++Ce<ye;){var nt=re[Ce],Ae=M[nt];pe(Ae,nt)&&(st[nt]=Ae)}return st}function me(M,re){return re=X(re===void 0?M.length-1:re,0),function(){for(var pe=arguments,Ce=-1,ye=X(pe.length-re,0),st=Array(ye);++Ce<ye;)st[Ce]=pe[re+Ce];Ce=-1;for(var nt=Array(re+1);++Ce<re;)nt[Ce]=pe[Ce];return nt[re]=st,D(M,this,nt)}}function be(M){return Se(M)||xe(M)||!!(J&&M&&M[J])}function ae(M){if(typeof M=="string"||_(M))return M;var re=M+"";return re=="0"&&1/M==-u?"-0":re}function xe(M){return je(M)&&te.call(M,"callee")&&(!oe.call(M,"callee")||ne.call(M)==f)}var Se=Array.isArray;function Oe(M){return M!=null&&B(M.length)&&!U(M)}function je(M){return ue(M)&&Oe(M)}function U(M){var re=ee(M)?ne.call(M):"";return re==g||re==S}function B(M){return typeof M=="number"&&M>-1&&M%1==0&&M<=h}function ee(M){var re=typeof M;return!!M&&(re=="object"||re=="function")}function ue(M){return!!M&&typeof M=="object"}function _(M){return typeof M=="symbol"||ue(M)&&ne.call(M)==b}var W=me(function(M,re){return M==null?{}:Le(M,A(fe(re,1),ae))});d.exports=W}).call(this,i("c8ba"))},"890c":function(d,L,i){},8925:function(d,L,i){var l=i("c6cd"),u=Function.toString;typeof l.inspectSource!="function"&&(l.inspectSource=function(h){return u.call(h)}),d.exports=l.inspectSource},"8aa5":function(d,L,i){var l=i("6547").charAt;d.exports=function(u,h,f){return h+(f?l(u,h).length:1)}},"8e95":function(d,L,i){var l=i("c195");d.exports=new l},9020:function(d,L){function i(l){this.options=l,!l.deferSetup&&this.setup()}i.prototype={constructor:i,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(l){return this.options===l||this.options.match===l}},d.exports=i},"90e3":function(d,L){var i=0,l=Math.random();d.exports=function(u){return"Symbol("+String(u===void 0?"":u)+")_"+(++i+l).toString(36)}},9112:function(d,L,i){var l=i("83ab"),u=i("9bf2"),h=i("5c6c");d.exports=l?function(f,g,S){return u.f(f,g,h(1,S))}:function(f,g,S){return f[g]=S,f}},9263:function(d,L,i){var l=i("ad6d"),u=i("9f7f"),h=RegExp.prototype.exec,f=String.prototype.replace,g=h,S=function(){var $=/a/,D=/b*/g;return h.call($,"a"),h.call(D,"a"),$.lastIndex!==0||D.lastIndex!==0}(),b=u.UNSUPPORTED_Y||u.BROKEN_CARET,x=/()??/.exec("")[1]!==void 0,C=S||x||b;C&&(g=function(D){var A=this,Y,Q,te,ne,ie=b&&A.sticky,oe=l.call(A),J=A.source,X=0,fe=D;return ie&&(oe=oe.replace("y",""),oe.indexOf("g")===-1&&(oe+="g"),fe=String(D).slice(A.lastIndex),A.lastIndex>0&&(!A.multiline||A.multiline&&D[A.lastIndex-1]!==` `)&&(J="(?: "+J+")",fe=" "+fe,X++),Q=new RegExp("^(?:"+J+")",oe)),x&&(Q=new RegExp("^"+J+"$(?!\\s)",oe)),S&&(Y=A.lastIndex),te=h.call(ie?Q:A,fe),ie?te?(te.input=te.input.slice(X),te[0]=te[0].slice(X),te.index=A.lastIndex,A.lastIndex+=te[0].length):A.lastIndex=0:S&&te&&(A.lastIndex=A.global?te.index+te[0].length:Y),x&&te&&te.length>1&&f.call(te[0],Q,function(){for(ne=1;ne<arguments.length-2;ne++)arguments[ne]===void 0&&(te[ne]=void 0)}),te}),d.exports=g},"94ca":function(d,L,i){var l=i("d039"),u=/#|\.prototype\./,h=function(x,C){var $=g[f(x)];return $==b?!0:$==S?!1:typeof C=="function"?l(C):!!C},f=h.normalize=function(x){return String(x).replace(u,".").toLowerCase()},g=h.data={},S=h.NATIVE="N",b=h.POLYFILL="P";d.exports=h},"99af":function(d,L,i){var l=i("23e7"),u=i("d039"),h=i("e8b5"),f=i("861d"),g=i("7b0b"),S=i("50c4"),b=i("8418"),x=i("65f0"),C=i("1dde"),$=i("b622"),D=i("2d00"),A=$("isConcatSpreadable"),Y=9007199254740991,Q="Maximum allowed index exceeded",te=D>=51||!u(function(){var J=[];return J[A]=!1,J.concat()[0]!==J}),ne=C("concat"),ie=function(J){if(!f(J))return!1;var X=J[A];return X!==void 0?!!X:h(J)},oe=!te||!ne;l({target:"Array",proto:!0,forced:oe},{concat:function(X){var fe=g(this),Le=x(fe,0),z=0,me,be,ae,xe,Se;for(me=-1,ae=arguments.length;me<ae;me++)if(Se=me===-1?fe:arguments[me],ie(Se)){if(xe=S(Se.length),z+xe>Y)throw TypeError(Q);for(be=0;be<xe;be++,z++)be in Se&&b(Le,z,Se[be])}else{if(z>=Y)throw TypeError(Q);b(Le,z++,Se)}return Le.length=z,Le}})},"9bdd":function(d,L,i){var l=i("825a");d.exports=function(u,h,f,g){try{return g?h(l(f)[0],f[1]):h(f)}catch(b){var S=u.return;throw S!==void 0&&l(S.call(u)),b}}},"9bf2":function(d,L,i){var l=i("83ab"),u=i("0cfb"),h=i("825a"),f=i("c04e"),g=Object.defineProperty;L.f=l?g:function(b,x,C){if(h(b),x=f(x,!0),h(C),u)try{return g(b,x,C)}catch($){}if("get"in C||"set"in C)throw TypeError("Accessors not supported");return"value"in C&&(b[x]=C.value),b}},"9ed3":function(d,L,i){var l=i("ae93").IteratorPrototype,u=i("7c73"),h=i("5c6c"),f=i("d44e"),g=i("3f8c"),S=function(){return this};d.exports=function(b,x,C){var $=x+" Iterator";return b.prototype=u(l,{next:h(1,C)}),f(b,$,!1,!0),g[$]=S,b}},"9f7f":function(d,L,i){var l=i("d039");function u(h,f){return RegExp(h,f)}L.UNSUPPORTED_Y=l(function(){var h=u("a","y");return h.lastIndex=2,h.exec("abcd")!=null}),L.BROKEN_CARET=l(function(){var h=u("^r","gy");return h.lastIndex=2,h.exec("str")!=null})},a15b:function(d,L,i){var l=i("23e7"),u=i("44ad"),h=i("fc6a"),f=i("a640"),g=[].join,S=u!=Object,b=f("join",",");l({target:"Array",proto:!0,forced:S||!b},{join:function(C){return g.call(h(this),C===void 0?",":C)}})},a48b:function(d,L,i){var l=i("0497"),u=function(g){var S=/[height|width]$/;return S.test(g)},h=function(g){var S="",b=Object.keys(g);return b.forEach(function(x,C){var $=g[x];x=l(x),u(x)&&typeof $=="number"&&($=$+"px"),$===!0?S+=x:$===!1?S+="not "+x:S+="("+x+": "+$+")",C<b.length-1&&(S+=" and ")}),S},f=function(g){var S="";return typeof g=="string"?g:g instanceof Array?(g.forEach(function(b,x){S+=h(b),x<g.length-1&&(S+=", ")}),S):h(g)};d.exports=f},a4d3:function(d,L,i){var l=i("23e7"),u=i("da84"),h=i("d066"),f=i("c430"),g=i("83ab"),S=i("4930"),b=i("fdbf"),x=i("d039"),C=i("5135"),$=i("e8b5"),D=i("861d"),A=i("825a"),Y=i("7b0b"),Q=i("fc6a"),te=i("c04e"),ne=i("5c6c"),ie=i("7c73"),oe=i("df75"),J=i("241c"),X=i("057f"),fe=i("7418"),Le=i("06cf"),z=i("9bf2"),me=i("d1e7"),be=i("9112"),ae=i("6eeb"),xe=i("5692"),Se=i("f772"),Oe=i("d012"),je=i("90e3"),U=i("b622"),B=i("e538"),ee=i("746f"),ue=i("d44e"),_=i("69f3"),W=i("b727").forEach,M=Se("hidden"),re="Symbol",pe="prototype",Ce=U("toPrimitive"),ye=_.set,st=_.getterFor(re),nt=Object[pe],Ae=u.Symbol,De=h("JSON","stringify"),lt=Le.f,Qe=z.f,Nt=X.f,an=me.f,dt=xe("symbols"),Et=xe("op-symbols"),Gt=xe("string-to-symbol-registry"),jt=xe("symbol-to-string-registry"),Zt=xe("wks"),bt=u.QObject,Ut=!bt||!bt[pe]||!bt[pe].findChild,St=g&&x(function(){return ie(Qe({},"a",{get:function(){return Qe(this,"a",{value:7}).a}})).a!=7})?function(_e,we,Te){var Ue=lt(nt,we);Ue&&delete nt[we],Qe(_e,we,Te),Ue&&_e!==nt&&Qe(nt,we,Ue)}:Qe,Mt=function(_e,we){var Te=dt[_e]=ie(Ae[pe]);return ye(Te,{type:re,tag:_e,description:we}),g||(Te.description=we),Te},xt=b?function(_e){return typeof _e=="symbol"}:function(_e){return Object(_e)instanceof Ae},Je=function(we,Te,Ue){we===nt&&Je(Et,Te,Ue),A(we);var Ve=te(Te,!0);return A(Ue),C(dt,Ve)?(Ue.enumerable?(C(we,M)&&we[M][Ve]&&(we[M][Ve]=!1),Ue=ie(Ue,{enumerable:ne(0,!1)})):(C(we,M)||Qe(we,M,ne(1,{})),we[M][Ve]=!0),St(we,Ve,Ue)):Qe(we,Ve,Ue)},wt=function(we,Te){A(we);var Ue=Q(Te),Ve=oe(Ue).concat(_t(Ue));return W(Ve,function(pt){(!g||Ot.call(Ue,pt))&&Je(we,pt,Ue[pt])}),we},ct=function(we,Te){return Te===void 0?ie(we):wt(ie(we),Te)},Ot=function(we){var Te=te(we,!0),Ue=an.call(this,Te);return this===nt&&C(dt,Te)&&!C(Et,Te)?!1:Ue||!C(this,Te)||!C(dt,Te)||C(this,M)&&this[M][Te]?Ue:!0},Ft=function(we,Te){var Ue=Q(we),Ve=te(Te,!0);if(!(Ue===nt&&C(dt,Ve)&&!C(Et,Ve))){var pt=lt(Ue,Ve);return pt&&C(dt,Ve)&&!(C(Ue,M)&&Ue[M][Ve])&&(pt.enumerable=!0),pt}},Jt=function(we){var Te=Nt(Q(we)),Ue=[];return W(Te,function(Ve){!C(dt,Ve)&&!C(Oe,Ve)&&Ue.push(Ve)}),Ue},_t=function(we){var Te=we===nt,Ue=Nt(Te?Et:Q(we)),Ve=[];return W(Ue,function(pt){C(dt,pt)&&(!Te||C(nt,pt))&&Ve.push(dt[pt])}),Ve};if(S||(Ae=function(){if(this instanceof Ae)throw TypeError("Symbol is not a constructor");var we=!arguments.length||arguments[0]===void 0?void 0:String(arguments[0]),Te=je(we),Ue=function(Ve){this===nt&&Ue.call(Et,Ve),C(this,M)&&C(this[M],Te)&&(this[M][Te]=!1),St(this,Te,ne(1,Ve))};return g&&Ut&&St(nt,Te,{configurable:!0,set:Ue}),Mt(Te,we)},ae(Ae[pe],"toString",function(){return st(this).tag}),ae(Ae,"withoutSetter",function(_e){return Mt(je(_e),_e)}),me.f=Ot,z.f=Je,Le.f=Ft,J.f=X.f=Jt,fe.f=_t,B.f=function(_e){return Mt(U(_e),_e)},g&&(Qe(Ae[pe],"description",{configurable:!0,get:function(){return st(this).description}}),f||ae(nt,"propertyIsEnumerable",Ot,{unsafe:!0}))),l({global:!0,wrap:!0,forced:!S,sham:!S},{Symbol:Ae}),W(oe(Zt),function(_e){ee(_e)}),l({target:re,stat:!0,forced:!S},{for:function(_e){var we=String(_e);if(C(Gt,we))return Gt[we];var Te=Ae(we);return Gt[we]=Te,jt[Te]=we,Te},keyFor:function(we){if(!xt(we))throw TypeError(we+" is not a symbol");if(C(jt,we))return jt[we]},useSetter:function(){Ut=!0},useSimple:function(){Ut=!1}}),l({target:"Object",stat:!0,forced:!S,sham:!g},{create:ct,defineProperty:Je,defineProperties:wt,getOwnPropertyDescriptor:Ft}),l({target:"Object",stat:!0,forced:!S},{getOwnPropertyNames:Jt,getOwnPropertySymbols:_t}),l({target:"Object",stat:!0,forced:x(function(){fe.f(1)})},{getOwnPropertySymbols:function(we){return fe.f(Y(we))}}),De){var Tt=!S||x(function(){var _e=Ae();return De([_e])!="[null]"||De({a:_e})!="{}"||De(Object(_e))!="{}"});l({target:"JSON",stat:!0,forced:Tt},{stringify:function(we,Te,Ue){for(var Ve=[we],pt=1,Xt;arguments.length>pt;)Ve.push(arguments[pt++]);if(Xt=Te,!(!D(Te)&&we===void 0||xt(we)))return $(Te)||(Te=function(F,q){if(typeof Xt=="function"&&(q=Xt.call(this,F,q)),!xt(q))return q}),Ve[1]=Te,De.apply(null,Ve)}})}Ae[pe][Ce]||be(Ae[pe],Ce,Ae[pe].valueOf),ue(Ae,re),Oe[M]=!0},a623:function(d,L,i){var l=i("23e7"),u=i("b727").every,h=i("a640"),f=i("ae40"),g=h("every"),S=f("every");l({target:"Array",proto:!0,forced:!g||!S},{every:function(x){return u(this,x,arguments.length>1?arguments[1]:void 0)}})},a630:function(d,L,i){var l=i("23e7"),u=i("4df4"),h=i("1c7e"),f=!h(function(g){Array.from(g)});l({target:"Array",stat:!0,forced:f},{from:u})},a640:function(d,L,i){var l=i("d039");d.exports=function(u,h){var f=[][u];return!!f&&l(function(){f.call(null,h||function(){throw 1},1)})}},a691:function(d,L){var i=Math.ceil,l=Math.floor;d.exports=function(u){return isNaN(u=+u)?0:(u>0?l:i)(u)}},a9e3:function(d,L,i){var l=i("83ab"),u=i("da84"),h=i("94ca"),f=i("6eeb"),g=i("5135"),S=i("c6b6"),b=i("7156"),x=i("c04e"),C=i("d039"),$=i("7c73"),D=i("241c").f,A=i("06cf").f,Y=i("9bf2").f,Q=i("58a8").trim,te="Number",ne=u[te],ie=ne.prototype,oe=S($(ie))==te,J=function(me){var be=x(me,!1),ae,xe,Se,Oe,je,U,B,ee;if(typeof be=="string"&&be.length>2){if(be=Q(be),ae=be.charCodeAt(0),ae===43||ae===45){if(xe=be.charCodeAt(2),xe===88||xe===120)return NaN}else if(ae===48){switch(be.charCodeAt(1)){case 66:case 98:Se=2,Oe=49;break;case 79:case 111:Se=8,Oe=55;break;default:return+be}for(je=be.slice(2),U=je.length,B=0;B<U;B++)if(ee=je.charCodeAt(B),ee<48||ee>Oe)return NaN;return parseInt(je,Se)}}return+be};if(h(te,!ne(" 0o1")||!ne("0b1")||ne("+0x1"))){for(var X=function(be){var ae=arguments.length<1?0:be,xe=this;return xe instanceof X&&(oe?C(function(){ie.valueOf.call(xe)}):S(xe)!=te)?b(new ne(J(ae)),xe,X):J(ae)},fe=l?D(ne):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),Le=0,z;fe.length>Le;Le++)g(ne,z=fe[Le])&&!g(X,z)&&Y(X,z,A(ne,z));X.prototype=ie,ie.constructor=X,f(u,te,X)}},ac1f:function(d,L,i){var l=i("23e7"),u=i("9263");l({target:"RegExp",proto:!0,forced:/./.exec!==u},{exec:u})},ad6d:function(d,L,i){var l=i("825a");d.exports=function(){var u=l(this),h="";return u.global&&(h+="g"),u.ignoreCase&&(h+="i"),u.multiline&&(h+="m"),u.dotAll&&(h+="s"),u.unicode&&(h+="u"),u.sticky&&(h+="y"),h}},ae40:function(d,L,i){var l=i("83ab"),u=i("d039"),h=i("5135"),f=Object.defineProperty,g={},S=function(b){throw b};d.exports=function(b,x){if(h(g,b))return g[b];x||(x={});var C=[][b],$=h(x,"ACCESSORS")?x.ACCESSORS:!1,D=h(x,0)?x[0]:S,A=h(x,1)?x[1]:void 0;return g[b]=!!C&&!u(function(){if($&&!l)return!0;var Y={length:-1};$?f(Y,1,{enumerable:!0,get:S}):Y[1]=1,C.call(Y,D,A)})}},ae93:function(d,L,i){var l=i("e163"),u=i("9112"),h=i("5135"),f=i("b622"),g=i("c430"),S=f("iterator"),b=!1,x=function(){return this},C,$,D;[].keys&&(D=[].keys(),"next"in D?($=l(l(D)),$!==Object.prototype&&(C=$)):b=!0),C==null&&(C={}),!g&&!h(C,S)&&u(C,S,x),d.exports={IteratorPrototype:C,BUGGY_SAFARI_ITERATORS:b}},b041:function(d,L,i){var l=i("00ee"),u=i("f5df");d.exports=l?{}.toString:function(){return"[object "+u(this)+"]"}},b0c0:function(d,L,i){var l=i("83ab"),u=i("9bf2").f,h=Function.prototype,f=h.toString,g=/^\s*function ([^ (]*)/,S="name";l&&!(S in h)&&u(h,S,{configurable:!0,get:function(){try{return f.call(this).match(g)[1]}catch(b){return""}}})},b622:function(d,L,i){var l=i("da84"),u=i("5692"),h=i("5135"),f=i("90e3"),g=i("4930"),S=i("fdbf"),b=u("wks"),x=l.Symbol,C=S?x:x&&x.withoutSetter||f;d.exports=function($){return h(b,$)||(g&&h(x,$)?b[$]=x[$]:b[$]=C("Symbol."+$)),b[$]}},b64b:function(d,L,i){var l=i("23e7"),u=i("7b0b"),h=i("df75"),f=i("d039"),g=f(function(){h(1)});l({target:"Object",stat:!0,forced:g},{keys:function(b){return h(u(b))}})},b727:function(d,L,i){var l=i("0366"),u=i("44ad"),h=i("7b0b"),f=i("50c4"),g=i("65f0"),S=[].push,b=function(x){var C=x==1,$=x==2,D=x==3,A=x==4,Y=x==6,Q=x==5||Y;return function(te,ne,ie,oe){for(var J=h(te),X=u(J),fe=l(ne,ie,3),Le=f(X.length),z=0,me=oe||g,be=C?me(te,Le):$?me(te,0):void 0,ae,xe;Le>z;z++)if((Q||z in X)&&(ae=X[z],xe=fe(ae,z,J),x)){if(C)be[z]=xe;else if(xe)switch(x){case 3:return!0;case 5:return ae;case 6:return z;case 2:S.call(be,ae)}else if(A)return!1}return Y?-1:D||A?A:be}};d.exports={forEach:b(0),map:b(1),filter:b(2),some:b(3),every:b(4),find:b(5),findIndex:b(6)}},bcf7:function(d,L,i){var l=i("9020"),u=i("217d").each;function h(f,g){this.query=f,this.isUnconditional=g,this.handlers=[],this.mql=window.matchMedia(f);var S=this;this.listener=function(b){S.mql=b.currentTarget||b,S.assess()},this.mql.addListener(this.listener)}h.prototype={constuctor:h,addHandler:function(f){var g=new l(f);this.handlers.push(g),this.matches()&&g.on()},removeHandler:function(f){var g=this.handlers;u(g,function(S,b){if(S.equals(f))return S.destroy(),!g.splice(b,1)})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){u(this.handlers,function(f){f.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var f=this.matches()?"on":"off";u(this.handlers,function(g){g[f]()})}},d.exports=h},c04e:function(d,L,i){var l=i("861d");d.exports=function(u,h){if(!l(u))return u;var f,g;if(h&&typeof(f=u.toString)=="function"&&!l(g=f.call(u))||typeof(f=u.valueOf)=="function"&&!l(g=f.call(u))||!h&&typeof(f=u.toString)=="function"&&!l(g=f.call(u)))return g;throw TypeError("Can't convert object to primitive value")}},c195:function(d,L,i){var l=i("bcf7"),u=i("217d"),h=u.each,f=u.isFunction,g=u.isArray;function S(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}S.prototype={constructor:S,register:function(b,x,C){var $=this.queries,D=C&&this.browserIsIncapable;return $[b]||($[b]=new l(b,D)),f(x)&&(x={match:x}),g(x)||(x=[x]),h(x,function(A){f(A)&&(A={match:A}),$[b].addHandler(A)}),this},unregister:function(b,x){var C=this.queries[b];return C&&(x?C.removeHandler(x):(C.clear(),delete this.queries[b])),this}},d.exports=S},c430:function(d,L){d.exports=!1},c6b6:function(d,L){var i={}.toString;d.exports=function(l){return i.call(l).slice(8,-1)}},c6cd:function(d,L,i){var l=i("da84"),u=i("ce4e"),h="__core-js_shared__",f=l[h]||u(h,{});d.exports=f},c832:function(d,L,i){(function(l){var u="Expected a function",h="__lodash_hash_undefined__",f=1/0,g="[object Function]",S="[object GeneratorFunction]",b="[object Symbol]",x=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,C=/^\w*$/,$=/^\./,D=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,A=/[\\^$.*+?()[\]{}|]/g,Y=/\\(\\)?/g,Q=/^\[object .+?Constructor\]$/,te=typeof l=="object"&&l&&l.Object===Object&&l,ne=typeof self=="object"&&self&&self.Object===Object&&self,ie=te||ne||Function("return this")();function oe(F,q){return F==null?void 0:F[q]}function J(F){var q=!1;if(F!=null&&typeof F.toString!="function")try{q=!!(F+"")}catch($e){}return q}var X=Array.prototype,fe=Function.prototype,Le=Object.prototype,z=ie["__core-js_shared__"],me=function(){var F=/[^.]+$/.exec(z&&z.keys&&z.keys.IE_PROTO||"");return F?"Symbol(src)_1."+F:""}(),be=fe.toString,ae=Le.hasOwnProperty,xe=Le.toString,Se=RegExp("^"+be.call(ae).replace(A,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Oe=ie.Symbol,je=X.splice,U=xt(ie,"Map"),B=xt(Object,"create"),ee=Oe?Oe.prototype:void 0,ue=ee?ee.toString:void 0;function _(F){var q=-1,$e=F?F.length:0;for(this.clear();++q<$e;){var et=F[q];this.set(et[0],et[1])}}function W(){this.__data__=B?B(null):{}}function M(F){return this.has(F)&&delete this.__data__[F]}function re(F){var q=this.__data__;if(B){var $e=q[F];return $e===h?void 0:$e}return ae.call(q,F)?q[F]:void 0}function pe(F){var q=this.__data__;return B?q[F]!==void 0:ae.call(q,F)}function Ce(F,q){var $e=this.__data__;return $e[F]=B&&q===void 0?h:q,this}_.prototype.clear=W,_.prototype.delete=M,_.prototype.get=re,_.prototype.has=pe,_.prototype.set=Ce;function ye(F){var q=-1,$e=F?F.length:0;for(this.clear();++q<$e;){var et=F[q];this.set(et[0],et[1])}}function st(){this.__data__=[]}function nt(F){var q=this.__data__,$e=jt(q,F);if($e<0)return!1;var et=q.length-1;return $e==et?q.pop():je.call(q,$e,1),!0}function Ae(F){var q=this.__data__,$e=jt(q,F);return $e<0?void 0:q[$e][1]}function De(F){return jt(this.__data__,F)>-1}function lt(F,q){var $e=this.__data__,et=jt($e,F);return et<0?$e.push([F,q]):$e[et][1]=q,this}ye.prototype.clear=st,ye.prototype.delete=nt,ye.prototype.get=Ae,ye.prototype.has=De,ye.prototype.set=lt;function Qe(F){var q=-1,$e=F?F.length:0;for(this.clear();++q<$e;){var et=F[q];this.set(et[0],et[1])}}function Nt(){this.__data__={hash:new _,map:new(U||ye),string:new _}}function an(F){return Mt(this,F).delete(F)}function dt(F){return Mt(this,F).get(F)}function Et(F){return Mt(this,F).has(F)}function Gt(F,q){return Mt(this,F).set(F,q),this}Qe.prototype.clear=Nt,Qe.prototype.delete=an,Qe.prototype.get=dt,Qe.prototype.has=Et,Qe.prototype.set=Gt;function jt(F,q){for(var $e=F.length;$e--;)if(Tt(F[$e][0],q))return $e;return-1}function Zt(F,q){q=Je(q,F)?[q]:St(q);for(var $e=0,et=q.length;F!=null&&$e<et;)F=F[Ft(q[$e++])];return $e&&$e==et?F:void 0}function bt(F){if(!Te(F)||ct(F))return!1;var q=we(F)||J(F)?Se:Q;return q.test(Jt(F))}function Ut(F){if(typeof F=="string")return F;if(Ve(F))return ue?ue.call(F):"";var q=F+"";return q=="0"&&1/F==-f?"-0":q}function St(F){return _e(F)?F:Ot(F)}function Mt(F,q){var $e=F.__data__;return wt(q)?$e[typeof q=="string"?"string":"hash"]:$e.map}function xt(F,q){var $e=oe(F,q);return bt($e)?$e:void 0}function Je(F,q){if(_e(F))return!1;var $e=typeof F;return $e=="number"||$e=="symbol"||$e=="boolean"||F==null||Ve(F)?!0:C.test(F)||!x.test(F)||q!=null&&F in Object(q)}function wt(F){var q=typeof F;return q=="string"||q=="number"||q=="symbol"||q=="boolean"?F!=="__proto__":F===null}function ct(F){return!!me&&me in F}var Ot=_t(function(F){F=pt(F);var q=[];return $.test(F)&&q.push(""),F.replace(D,function($e,et,yt,Ct){q.push(yt?Ct.replace(Y,"$1"):et||$e)}),q});function Ft(F){if(typeof F=="string"||Ve(F))return F;var q=F+"";return q=="0"&&1/F==-f?"-0":q}function Jt(F){if(F!=null){try{return be.call(F)}catch(q){}try{return F+""}catch(q){}}return""}function _t(F,q){if(typeof F!="function"||q&&typeof q!="function")throw new TypeError(u);var $e=function(){var et=arguments,yt=q?q.apply(this,et):et[0],Ct=$e.cache;if(Ct.has(yt))return Ct.get(yt);var on=F.apply(this,et);return $e.cache=Ct.set(yt,on),on};return $e.cache=new(_t.Cache||Qe),$e}_t.Cache=Qe;function Tt(F,q){return F===q||F!==F&&q!==q}var _e=Array.isArray;function we(F){var q=Te(F)?xe.call(F):"";return q==g||q==S}function Te(F){var q=typeof F;return!!F&&(q=="object"||q=="function")}function Ue(F){return!!F&&typeof F=="object"}function Ve(F){return typeof F=="symbol"||Ue(F)&&xe.call(F)==b}function pt(F){return F==null?"":Ut(F)}function Xt(F,q,$e){var et=F==null?void 0:Zt(F,q);return et===void 0?$e:et}d.exports=Xt}).call(this,i("c8ba"))},c8ba:function(d,L){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(l){typeof window=="object"&&(i=window)}d.exports=i},c975:function(d,L,i){var l=i("23e7"),u=i("4d64").indexOf,h=i("a640"),f=i("ae40"),g=[].indexOf,S=!!g&&1/[1].indexOf(1,-0)<0,b=h("indexOf"),x=f("indexOf",{ACCESSORS:!0,1:0});l({target:"Array",proto:!0,forced:S||!b||!x},{indexOf:function($){return S?g.apply(this,arguments)||0:u(this,$,arguments.length>1?arguments[1]:void 0)}})},ca84:function(d,L,i){var l=i("5135"),u=i("fc6a"),h=i("4d64").indexOf,f=i("d012");d.exports=function(g,S){var b=u(g),x=0,C=[],$;for($ in b)!l(f,$)&&l(b,$)&&C.push($);for(;S.length>x;)l(b,$=S[x++])&&(~h(C,$)||C.push($));return C}},cc12:function(d,L,i){var l=i("da84"),u=i("861d"),h=l.document,f=u(h)&&u(h.createElement);d.exports=function(g){return f?h.createElement(g):{}}},cca6:function(d,L,i){var l=i("23e7"),u=i("60da");l({target:"Object",stat:!0,forced:Object.assign!==u},{assign:u})},ce4e:function(d,L,i){var l=i("da84"),u=i("9112");d.exports=function(h,f){try{u(l,h,f)}catch(g){l[h]=f}return f}},d012:function(d,L){d.exports={}},d039:function(d,L){d.exports=function(i){try{return!!i()}catch(l){return!0}}},d066:function(d,L,i){var l=i("428f"),u=i("da84"),h=function(f){return typeof f=="function"?f:void 0};d.exports=function(f,g){return arguments.length<2?h(l[f])||h(u[f]):l[f]&&l[f][g]||u[f]&&u[f][g]}},d1e7:function(d,L,i){var l={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,h=u&&!l.call({1:2},1);L.f=h?function(g){var S=u(this,g);return!!S&&S.enumerable}:l},d28b:function(d,L,i){var l=i("746f");l("iterator")},d2bb:function(d,L,i){var l=i("825a"),u=i("3bbe");d.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var h=!1,f={},g;try{g=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,g.call(f,[]),h=f instanceof Array}catch(S){}return function(b,x){return l(b),u(x),h?g.call(b,x):b.__proto__=x,b}}():void 0)},d3b7:function(d,L,i){var l=i("00ee"),u=i("6eeb"),h=i("b041");l||u(Object.prototype,"toString",h,{unsafe:!0})},d44e:function(d,L,i){var l=i("9bf2").f,u=i("5135"),h=i("b622"),f=h("toStringTag");d.exports=function(g,S,b){g&&!u(g=b?g:g.prototype,f)&&l(g,f,{configurable:!0,value:S})}},d58f:function(d,L,i){var l=i("1c0b"),u=i("7b0b"),h=i("44ad"),f=i("50c4"),g=function(S){return function(b,x,C,$){l(x);var D=u(b),A=h(D),Y=f(D.length),Q=S?Y-1:0,te=S?-1:1;if(C<2)for(;;){if(Q in A){$=A[Q],Q+=te;break}if(Q+=te,S?Q<0:Y<=Q)throw TypeError("Reduce of empty array with no initial value")}for(;S?Q>=0:Y>Q;Q+=te)Q in A&&($=x($,A[Q],Q,D));return $}};d.exports={left:g(!1),right:g(!0)}},d784:function(d,L,i){i("ac1f");var l=i("6eeb"),u=i("d039"),h=i("b622"),f=i("9263"),g=i("9112"),S=h("species"),b=!u(function(){var A=/./;return A.exec=function(){var Y=[];return Y.groups={a:"7"},Y},"".replace(A,"$<a>")!=="7"}),x=function(){return"a".replace(/./,"$0")==="$0"}(),C=h("replace"),$=function(){return/./[C]?/./[C]("a","$0")==="":!1}(),D=!u(function(){var A=/(?:)/,Y=A.exec;A.exec=function(){return Y.apply(this,arguments)};var Q="ab".split(A);return Q.length!==2||Q[0]!=="a"||Q[1]!=="b"});d.exports=function(A,Y,Q,te){var ne=h(A),ie=!u(function(){var z={};return z[ne]=function(){return 7},""[A](z)!=7}),oe=ie&&!u(function(){var z=!1,me=/a/;return A==="split"&&(me={},me.constructor={},me.constructor[S]=function(){return me},me.flags="",me[ne]=/./[ne]),me.exec=function(){return z=!0,null},me[ne](""),!z});if(!ie||!oe||A==="replace"&&!(b&&x&&!$)||A==="split"&&!D){var J=/./[ne],X=Q(ne,""[A],function(z,me,be,ae,xe){return me.exec===f?ie&&!xe?{done:!0,value:J.call(me,be,ae)}:{done:!0,value:z.call(be,me,ae)}:{done:!1}},{REPLACE_KEEPS_$0:x,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:$}),fe=X[0],Le=X[1];l(String.prototype,A,fe),l(RegExp.prototype,ne,Y==2?function(z,me){return Le.call(z,this,me)}:function(z){return Le.call(z,this)})}te&&g(RegExp.prototype[ne],"sham",!0)}},d81d:function(d,L,i){var l=i("23e7"),u=i("b727").map,h=i("1dde"),f=i("ae40"),g=h("map"),S=f("map");l({target:"Array",proto:!0,forced:!g||!S},{map:function(x){return u(this,x,arguments.length>1?arguments[1]:void 0)}})},da84:function(d,L,i){(function(l){var u=function(h){return h&&h.Math==Math&&h};d.exports=u(typeof globalThis=="object"&&globalThis)||u(typeof window=="object"&&window)||u(typeof self=="object"&&self)||u(typeof l=="object"&&l)||Function("return this")()}).call(this,i("c8ba"))},dbb4:function(d,L,i){var l=i("23e7"),u=i("83ab"),h=i("56ef"),f=i("fc6a"),g=i("06cf"),S=i("8418");l({target:"Object",stat:!0,sham:!u},{getOwnPropertyDescriptors:function(x){for(var C=f(x),$=g.f,D=h(C),A={},Y=0,Q,te;D.length>Y;)te=$(C,Q=D[Y++]),te!==void 0&&S(A,Q,te);return A}})},ddb0:function(d,L,i){var l=i("da84"),u=i("fdbc"),h=i("e260"),f=i("9112"),g=i("b622"),S=g("iterator"),b=g("toStringTag"),x=h.values;for(var C in u){var $=l[C],D=$&&$.prototype;if(D){if(D[S]!==x)try{f(D,S,x)}catch(Y){D[S]=x}if(D[b]||f(D,b,C),u[C]){for(var A in h)if(D[A]!==h[A])try{f(D,A,h[A])}catch(Y){D[A]=h[A]}}}}},df75:function(d,L,i){var l=i("ca84"),u=i("7839");d.exports=Object.keys||function(f){return l(f,u)}},e01a:function(d,L,i){var l=i("23e7"),u=i("83ab"),h=i("da84"),f=i("5135"),g=i("861d"),S=i("9bf2").f,b=i("e893"),x=h.Symbol;if(u&&typeof x=="function"&&(!("description"in x.prototype)||x().description!==void 0)){var C={},$=function(){var ne=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),ie=this instanceof $?new x(ne):ne===void 0?x():x(ne);return ne===""&&(C[ie]=!0),ie};b($,x);var D=$.prototype=x.prototype;D.constructor=$;var A=D.toString,Y=String(x("test"))=="Symbol(test)",Q=/^Symbol\((.*)\)[^)]+$/;S(D,"description",{configurable:!0,get:function(){var ne=g(this)?this.valueOf():this,ie=A.call(ne);if(f(C,ne))return"";var oe=Y?ie.slice(7,-1):ie.replace(Q,"$1");return oe===""?void 0:oe}}),l({global:!0,forced:!0},{Symbol:$})}},e163:function(d,L,i){var l=i("5135"),u=i("7b0b"),h=i("f772"),f=i("e177"),g=h("IE_PROTO"),S=Object.prototype;d.exports=f?Object.getPrototypeOf:function(b){return b=u(b),l(b,g)?b[g]:typeof b.constructor=="function"&&b instanceof b.constructor?b.constructor.prototype:b instanceof Object?S:null}},e177:function(d,L,i){var l=i("d039");d.exports=!l(function(){function u(){}return u.prototype.constructor=null,Object.getPrototypeOf(new u)!==u.prototype})},e260:function(d,L,i){var l=i("fc6a"),u=i("44d2"),h=i("3f8c"),f=i("69f3"),g=i("7dd0"),S="Array Iterator",b=f.set,x=f.getterFor(S);d.exports=g(Array,"Array",function(C,$){b(this,{type:S,target:l(C),index:0,kind:$})},function(){var C=x(this),$=C.target,D=C.kind,A=C.index++;return!$||A>=$.length?(C.target=void 0,{value:void 0,done:!0}):D=="keys"?{value:A,done:!1}:D=="values"?{value:$[A],done:!1}:{value:[A,$[A]],done:!1}},"values"),h.Arguments=h.Array,u("keys"),u("values"),u("entries")},e439:function(d,L,i){var l=i("23e7"),u=i("d039"),h=i("fc6a"),f=i("06cf").f,g=i("83ab"),S=u(function(){f(1)}),b=!g||S;l({target:"Object",stat:!0,forced:b,sham:!g},{getOwnPropertyDescriptor:function(C,$){return f(h(C),$)}})},e538:function(d,L,i){var l=i("b622");L.f=l},e893:function(d,L,i){var l=i("5135"),u=i("56ef"),h=i("06cf"),f=i("9bf2");d.exports=function(g,S){for(var b=u(S),x=f.f,C=h.f,$=0;$<b.length;$++){var D=b[$];l(g,D)||x(g,D,C(S,D))}}},e8b5:function(d,L,i){var l=i("c6b6");d.exports=Array.isArray||function(h){return l(h)=="Array"}},e95a:function(d,L,i){var l=i("b622"),u=i("3f8c"),h=l("iterator"),f=Array.prototype;d.exports=function(g){return g!==void 0&&(u.Array===g||f[h]===g)}},eaf9:function(d,L,i){var l=i("3b81"),u=i.n(l);u.a},f013:function(d,L,i){var l=i("fdb2"),u=i.n(l);u.a},f5df:function(d,L,i){var l=i("00ee"),u=i("c6b6"),h=i("b622"),f=h("toStringTag"),g=u(function(){return arguments}())=="Arguments",S=function(b,x){try{return b[x]}catch(C){}};d.exports=l?u:function(b){var x,C,$;return b===void 0?"Undefined":b===null?"Null":typeof(C=S(x=Object(b),f))=="string"?C:g?u(x):($=u(x))=="Object"&&typeof x.callee=="function"?"Arguments":$}},f6fd:function(d,L){(function(i){var l="currentScript",u=i.getElementsByTagName("script");l in i||Object.defineProperty(i,l,{get:function(){try{throw new Error}catch(g){var h,f=(/.*at [^\(]*\((.*):.+:.+\)$/ig.exec(g.stack)||[!1])[1];for(h in u)if(u[h].src==f||u[h].readyState=="interactive")return u[h];return null}}})})(document)},f772:function(d,L,i){var l=i("5692"),u=i("90e3"),h=l("keys");d.exports=function(f){return h[f]||(h[f]=u(f))}},f7fe:function(d,L,i){(function(l){var u="Expected a function",h=NaN,f="[object Symbol]",g=/^\s+|\s+$/g,S=/^[-+]0x[0-9a-f]+$/i,b=/^0b[01]+$/i,x=/^0o[0-7]+$/i,C=parseInt,$=typeof l=="object"&&l&&l.Object===Object&&l,D=typeof self=="object"&&self&&self.Object===Object&&self,A=$||D||Function("return this")(),Y=Object.prototype,Q=Y.toString,te=Math.max,ne=Math.min,ie=function(){return A.Date.now()};function oe(z,me,be){var ae,xe,Se,Oe,je,U,B=0,ee=!1,ue=!1,_=!0;if(typeof z!="function")throw new TypeError(u);me=Le(me)||0,J(be)&&(ee=!!be.leading,ue="maxWait"in be,Se=ue?te(Le(be.maxWait)||0,me):Se,_="trailing"in be?!!be.trailing:_);function W(De){var lt=ae,Qe=xe;return ae=xe=void 0,B=De,Oe=z.apply(Qe,lt),Oe}function M(De){return B=De,je=setTimeout(Ce,me),ee?W(De):Oe}function re(De){var lt=De-U,Qe=De-B,Nt=me-lt;return ue?ne(Nt,Se-Qe):Nt}function pe(De){var lt=De-U,Qe=De-B;return U===void 0||lt>=me||lt<0||ue&&Qe>=Se}function Ce(){var De=ie();if(pe(De))return ye(De);je=setTimeout(Ce,re(De))}function ye(De){return je=void 0,_&&ae?W(De):(ae=xe=void 0,Oe)}function st(){je!==void 0&&clearTimeout(je),B=0,ae=U=xe=je=void 0}function nt(){return je===void 0?Oe:ye(ie())}function Ae(){var De=ie(),lt=pe(De);if(ae=arguments,xe=this,U=De,lt){if(je===void 0)return M(U);if(ue)return je=setTimeout(Ce,me),W(U)}return je===void 0&&(je=setTimeout(Ce,me)),Oe}return Ae.cancel=st,Ae.flush=nt,Ae}function J(z){var me=typeof z;return!!z&&(me=="object"||me=="function")}function X(z){return!!z&&typeof z=="object"}function fe(z){return typeof z=="symbol"||X(z)&&Q.call(z)==f}function Le(z){if(typeof z=="number")return z;if(fe(z))return h;if(J(z)){var me=typeof z.valueOf=="function"?z.valueOf():z;z=J(me)?me+"":me}if(typeof z!="string")return z===0?z:+z;z=z.replace(g,"");var be=b.test(z);return be||x.test(z)?C(z.slice(2),be?2:8):S.test(z)?h:+z}d.exports=oe}).call(this,i("c8ba"))},fb15:function(d,L,i){if(i.r(L),typeof window!="undefined"){i("f6fd");var l;(l=window.document.currentScript)&&(l=l.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(i.p=l[1])}i("4de4"),i("4160"),i("a15b"),i("d81d"),i("fb6a"),i("07ac"),i("159b"),i("a4d3"),i("e439"),i("dbb4"),i("b64b");function u(I,s,m){return s in I?Object.defineProperty(I,s,{value:m,enumerable:!0,configurable:!0,writable:!0}):I[s]=m,I}function h(I,s){var m=Object.keys(I);if(Object.getOwnPropertySymbols){var T=Object.getOwnPropertySymbols(I);s&&(T=T.filter(function(V){return Object.getOwnPropertyDescriptor(I,V).enumerable})),m.push.apply(m,T)}return m}function f(I){for(var s=1;s<arguments.length;s++){var m=arguments[s]!=null?arguments[s]:{};s%2?h(Object(m),!0).forEach(function(T){u(I,T,m[T])}):Object.getOwnPropertyDescriptors?Object.defineProperties(I,Object.getOwnPropertyDescriptors(m)):h(Object(m)).forEach(function(T){Object.defineProperty(I,T,Object.getOwnPropertyDescriptor(m,T))})}return I}var g=i("a48b"),S=i.n(g),b={computed:{isPropsUpdated:function(){var s=this;return Object.keys(this.$props).forEach(function(m){return s[m]}),this.updateSwitch=!this.updateSwitch}},watch:{isPropsUpdated:function(){typeof this.onPropsUpdated=="function"&&this.onPropsUpdated()}}},x=b;function C(I,s,m,T,V,H,K,le){var se=typeof I=="function"?I.options:I;s&&(se.render=s,se.staticRenderFns=m,se._compiled=!0),T&&(se.functional=!0),H&&(se._scopeId="data-v-"+H);var Me;if(K?(Me=function(Ie){Ie=Ie||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!Ie&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(Ie=__VUE_SSR_CONTEXT__),V&&V.call(this,Ie),Ie&&Ie._registeredComponents&&Ie._registeredComponents.add(K)},se._ssrRegister=Me):V&&(Me=le?function(){V.call(this,this.$root.$options.shadowRoot)}:V),Me)if(se.functional){se._injectStyles=Me;var Re=se.render;se.render=function(Ge,Ye){return Me.call(Ye),Re(Ge,Ye)}}else{var Be=se.beforeCreate;se.beforeCreate=Be?[].concat(Be,Me):[Me]}return{exports:I,options:se}}var $,D,A=C(x,$,D,!1,null,null,null),Y=A.exports,Q=i("88bc"),te=i.n(Q),ne=i("42a0"),ie=i.n(ne),oe=i("c832"),J=i.n(oe),X=function(s,m,T){!s||(s.data=s.data||{},s.data[m]=f({},s.data[m],{},T))},fe=function(s,m,T){!s||(s.data=s.data||{},s.data[m]=T)},Le=["class","staticClass","style","attrs","props","domProps","on","nativeOn","directives","scopesSlots","slot","ref","key"];function z(I){return""+I+"-cloned-cid"}function me(I,s){var m=te()(I.data,Le);if(s){var T=I.componentOptions;ie()(m,{props:T.propsData,on:T.listeners})}return m.key&&(m.key=z(m.key)),m}var be=function I(s){var m=s.context&&s.context.$createElement,T=!!s.componentOptions,V=!s.tag,H=T?s.componentOptions.children:s.children;if(V)return s.text;var K=me(s,T),le=T?s.componentOptions.Ctor:s.tag,se=H?H.map(function(Me){return I(Me)}):void 0;return m(le,K,se)},ae=function(s,m,T){if(!!s){var V=s.data||{};return typeof m=="undefined"?V:J()(V,m,T)}},xe=function(s){return f({},ae(s,"staticStyle",{}),{},ae(s,"style",{}))};i("99af"),i("a623"),i("a630"),i("c975"),i("13d5"),i("a9e3"),i("ac1f"),i("3ca3"),i("466d");var Se=function(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)},Oe=function(s){return s.unslick||!s.infinite?0:s.variableWidth?s.slideCount:s.slidesToShow+(s.centerMode?1:0)},je=function(s){return s.unslick||!s.infinite?0:s.slideCount},U=function(s,m,T){return s.target.tagName.match("TEXTAREA|INPUT|SELECT")||!m?"":s.keyCode===37?T?"next":"previous":s.keyCode===39?T?"previous":"next":""},B=function(s){return s.targetSlide>s.currentSlide?s.targetSlide>s.currentSlide+ee(s)?"left":"right":s.targetSlide<s.currentSlide-ue(s)?"right":"left"},ee=function(s){var m=s.slidesToShow,T=s.centerMode,V=s.rtl,H=s.centerPadding;if(T){var K=(m-1)/2+1;return parseInt(H)>0&&(K+=1),V&&m%2===0&&(K+=1),K}return V?0:m-1},ue=function(s){var m=s.slidesToShow,T=s.centerMode,V=s.rtl,H=s.centerPadding;if(T){var K=(m-1)/2+1;return parseInt(H)>0&&(K+=1),!V&&m%2===0&&(K+=1),K}return V?m-1:0},_=function(s){return s.currentSlide-M(s)},W=function(s){return s.currentSlide+re(s)},M=function(s){return s.centerMode?Math.floor(s.slidesToShow/2)+(parseInt(s.centerPadding)>0?1:0):0},re=function(s){return s.centerMode?Math.floor((s.slidesToShow-1)/2)+1+(parseInt(s.centerPadding)>0?1:0):s.slidesToShow},pe=function(s){for(var m=[],T=_(s),V=W(s),H=T;H<V;H++)s.lazyLoadedList.indexOf(H)<0&&m.push(H);return m},Ce=function(s,m){var T,V,H,K,le,se=s.slidesToScroll,Me=s.slidesToShow,Re=s.slideCount,Be=s.currentSlide,Ie=s.lazyLoad,Ge=s.infinite;if(K=Re%se!==0,T=K?0:(Re-Be)%se,m.message==="previous")H=T===0?se:Me-T,le=Be-H,Ie&&!Ge&&(V=Be-H,le=V===-1?Re-1:V);else if(m.message==="next")H=T===0?se:T,le=Be+H,Ie&&!Ge&&(le=(Be+se)%Re+T);else if(m.message==="dots"){if(le=m.index*m.slidesToScroll,le===m.currentSlide)return null}else if(m.message==="children"){if(le=m.index,le===m.currentSlide)return null;if(Ge){var Ye=B(f({},s,{targetSlide:le}));le>m.currentSlide&&Ye==="left"?le=le-Re:le<m.currentSlide&&Ye==="right"&&(le=le+Re)}}else if(m.message==="index"&&(le=Number(m.index),le===m.currentSlide))return null;return le},ye=function(s){return Object.keys(s).filter(function(m){return s[m]!==void 0}).reduce(function(m,T){return m[T]=s[T],m},{})},st=function(s){return Object.keys(s).filter(function(m){return s[m]!==void 0&&s[m]!==null}).reduce(function(m,T){return m[T]=s[T],m},{})},nt=function(s,m,T){return!m||!T&&s.type.indexOf("mouse")!==-1?"":{dragging:!0,touchObject:{startX:s.touches?s.touches[0].pageX:s.clientX,startY:s.touches?s.touches[0].pageY:s.clientY,curX:s.touches?s.touches[0].pageX:s.clientX,curY:s.touches?s.touches[0].pageY:s.clientY}}},Ae=function(s,m){var T=m.scrolling,V=m.animating,H=m.vertical,K=m.swipeToSlide,le=m.verticalSwiping,se=m.rtl,Me=m.currentSlide,Re=m.edgeFriction,Be=m.edgeDragged,Ie=m.onEdge,Ge=m.swiped,Ye=m.swiping,Ne=m.slideCount,Fe=m.slidesToScroll,We=m.infinite,Pe=m.touchObject,vt=m.swipeEvent,It=m.listHeight,Pt=m.listWidth;if(!T){if(V)return s.preventDefault();H&&K&&le&&s.preventDefault();var At,Kt={},wn=St(m);Pe.curX=s.touches?s.touches[0].pageX:s.clientX,Pe.curY=s.touches?s.touches[0].pageY:s.clientY,Pe.swipeLength=Math.round(Math.sqrt(Math.pow(Pe.curX-Pe.startX,2)));var d0=Math.round(Math.sqrt(Math.pow(Pe.curY-Pe.startY,2)));if(!le&&!Ye&&d0>10)return{scrolling:!0};le&&(Pe.swipeLength=d0);var On=(se?-1:1)*(Pe.curX>Pe.startX?1:-1);le&&(On=Pe.curY>Pe.startY?1:-1);var V0=Math.ceil(Ne/Fe),mn=bt(m.touchObject,le),Ht=Pe.swipeLength;return We||(Me===0&&mn==="right"||Me+1>=V0&&mn==="left"||!Et(m)&&mn==="left")&&(Ht=Pe.swipeLength*Re,Be===!1&&Ie&&(Ie(mn),Kt.edgeDragged=!0)),!Ge&&vt&&(vt(mn),Kt.swiped=!0),H?At=wn+Ht*(It/Pt)*On:se?At=wn-Ht*On:At=wn+Ht*On,le&&(At=wn+Ht*On),Kt=f({},Kt,{touchObject:Pe,swipeLeft:At,trackStyle:Je(f({},m,{left:At}))}),Math.abs(Pe.curX-Pe.startX)<Math.abs(Pe.curY-Pe.startY)*.8||Pe.swipeLength>10&&(Kt.swiping=!0,s.preventDefault()),Kt}},De=function(s,m){var T=m.dragging,V=m.swipe,H=m.touchObject,K=m.listWidth,le=m.touchThreshold,se=m.verticalSwiping,Me=m.listHeight,Re=m.currentSlide,Be=m.swipeToSlide,Ie=m.scrolling,Ge=m.onSwipe;if(!T)return V&&s.preventDefault(),{};var Ye=se?Me/le:K/le,Ne=bt(H,se),Fe={dragging:!1,edgeDragged:!1,scrolling:!1,swiping:!1,swiped:!1,swipeLeft:null,touchObject:{}};if(Ie||!H.swipeLength)return Fe;if(H.swipeLength>Ye){s.preventDefault(),Ge&&Ge(Ne);var We,Pe;switch(Ne){case"left":case"up":Pe=Re+Nt(m),We=Be?Qe(m,Pe):Pe,Fe.currentDirection=0;break;case"right":case"down":Pe=Re-Nt(m),We=Be?Qe(m,Pe):Pe,Fe.currentDirection=1;break;default:We=Re}Fe.triggerSlideHandler=We}else{var vt=St(m);Fe.trackStyle=wt(f({},m,{left:vt}))}return Fe},lt=function(s){for(var m=s.infinite?s.slideCount*2:s.slideCount,T=s.infinite?s.slidesToShow*-1:0,V=s.infinite?s.slidesToShow*-1:0,H=[];T<m;)H.push(T),T=V+s.slidesToScroll,V+=Math.min(s.slidesToScroll,s.slidesToShow);return H},Qe=function(s,m){var T=lt(s),V=0;if(m>T[T.length-1])m=T[T.length-1];else for(var H in T){if(m<T[H]){m=V;break}V=T[H]}return m},Nt=function(s){var m=s.centerMode?s.slideWidth*Math.floor(s.slidesToShow/2):0;if(s.swipeToSlide){var T,V=s.listRef,H=V.querySelectorAll(".slick-slide");if(Array.from(H).every(function(se){if(s.vertical){if(se.offsetTop+Zt(se)/2>s.swipeLeft*-1)return T=se,!1}else if(se.offsetLeft-m+jt(se)/2>s.swipeLeft*-1)return T=se,!1;return!0}),!T)return 0;var K=s.rtl===!0?s.slideCount-s.currentSlide:s.currentSlide,le=Math.abs(T.dataset.index-K)||1;return le}else return s.slidesToScroll},an=function(s,m){var T={};return m.forEach(function(V){return T[V]=s[V]}),T},dt={TRACK:["fade","cssEase","speed","infinite","centerMode","currentSlide","lazyLoad","lazyLoadedList","rtl","slideWidth","slideHeight","listHeight","vertical","slidesToShow","slidesToScroll","slideCount","trackStyle","variableWidth","unslick","centerPadding"],DOT:["dotsClass","slideCount","slidesToShow","currentSlide","slidesToScroll","children","customPaging","infinite"],ARROW:["infinite","centerMode","currentSlide","slideCount","slidesToShow","prevArrow","nextArrow"]},Et=function(s){var m=!0;return s.infinite||(s.centerMode&&s.currentSlide>=s.slideCount-1||s.slideCount<=s.slidesToShow||s.currentSlide>=s.slideCount-s.slidesToShow)&&(m=!1),m},Gt=function(s){var m=s.waitForAnimate,T=s.animating,V=s.fade,H=s.infinite,K=s.index,le=s.slideCount,se=s.lazyLoadedList,Me=s.lazyLoad,Re=s.currentSlide,Be=s.centerMode,Ie=s.slidesToScroll,Ge=s.slidesToShow,Ye=s.useCSS;if(m&&T)return{};var Ne=K,Fe,We,Pe,vt={},It={};if(V){if(!H&&(K<0||K>=le))return{};K<0?Ne=K+le:K>=le&&(Ne=K-le),Me&&se.indexOf(Ne)<0&&se.push(Ne),vt={animating:!0,currentSlide:Ne,lazyLoadedList:se},It={animating:!1}}else Fe=Ne,Ne<0?(Fe=Ne+le,H?le%Ie!==0&&(Fe=le-le%Ie):Fe=0):!Et(s)&&Ne>Re?Ne=Fe=Re:Be&&Ne>=le?(Ne=H?le:le-1,Fe=H?0:le-1):Ne>=le&&(Fe=Ne-le,H?le%Ie!==0&&(Fe=0):Fe=le-Ge),We=St(f({},s,{slideIndex:Ne})),Pe=St(f({},s,{slideIndex:Fe})),H||(We===Pe&&(Ne=Fe),We=Pe),Me&&se.concat(pe(f({},s,{currentSlide:Ne}))),Ye?(vt={animating:!0,currentSlide:Fe,trackStyle:wt(f({},s,{left:We})),lazyLoadedList:se},It={animating:!1,currentSlide:Fe,trackStyle:Je(f({},s,{left:Pe})),swipeLeft:null}):vt={currentSlide:Fe,trackStyle:Je(f({},s,{left:Pe})),lazyLoadedList:se};return{state:vt,nextState:It}},jt=function(s){return s&&s.offsetWidth||0},Zt=function(s){return s&&s.offsetHeight||0},bt=function(s){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,T,V,H,K;return T=s.startX-s.curX,V=s.startY-s.curY,H=Math.atan2(V,T),K=Math.round(H*180/Math.PI),K<0&&(K=360-Math.abs(K)),K<=45&&K>=0||K<=360&&K>=315?"left":K>=135&&K<=225?"right":m===!0?K>=35&&K<=135?"up":"down":"vertical"},Ut=function(s){var m=s.children.length,T=Math.ceil(jt(s.listRef)),V=Math.ceil(jt(s.trackRef)),H;if(s.vertical)H=T;else{var K=s.centerMode&&parseInt(s.centerPadding)*2;typeof s.centerPadding=="string"&&s.centerPadding.slice(-1)==="%"&&(K*=T/100),H=Math.ceil((T-K)/s.slidesToShow)}var le=s.listRef&&Zt(s.listRef.querySelector('[data-index="0"]')),se=le*s.slidesToShow,Me=s.currentSlide===void 0?s.initialSlide:s.currentSlide;s.rtl&&s.currentSlide===void 0&&(Me=m-1-s.initialSlide);var Re=s.lazyLoadedList||[],Be=pe({currentSlide:Me,lazyLoadedList:Re});Re.concat(Be);var Ie={slideCount:m,slideWidth:H,listWidth:T,trackWidth:V,currentSlide:Me,slideHeight:le,listHeight:se,lazyLoadedList:Re};return s.autoplaying===null&&s.autoplay&&(Ie.autoplaying="playing"),Ie},St=function(s){if(s.unslick)return 0;xt(s,["slideIndex","trackRef","infinite","centerMode","slideCount","slidesToShow","slidesToScroll","slideWidth","listWidth","variableWidth","slideHeight"]);var m=s.slideIndex,T=s.trackRef,V=s.infinite,H=s.centerMode,K=s.slideCount,le=s.slidesToShow,se=s.slidesToScroll,Me=s.slideWidth,Re=s.listWidth,Be=s.variableWidth,Ie=s.slideHeight,Ge=s.fade,Ye=s.vertical,Ne=0,Fe,We,Pe=0;if(Ge||s.slideCount===1)return 0;var vt=0;if(V?(vt=-Oe(s),K%se!==0&&m+se>K&&(vt=-(m>K?le-(m-K):K%se)),H&&(vt+=parseInt(le/2))):(K%se!==0&&m+se>K&&(vt=le-K%se),H&&(vt=parseInt(le/2))),Ne=vt*Me,Pe=vt*Ie,Ye?Fe=m*Ie*-1+Pe:Fe=m*Me*-1+Ne,Be===!0){var It,Pt=T.$el;if(It=m+Oe(s),We=Pt&&Pt.childNodes[It],Fe=We?We.offsetLeft*-1:0,H===!0){It=V?m+Oe(s):m,We=Pt&&Pt.children[It],Fe=0;for(var At=0;At<It;At++)Fe-=Pt&&Pt.children[At]&&Pt.children[At].offsetWidth;Fe-=parseInt(s.centerPadding),Fe+=We&&(Re-We.offsetWidth)/2}}return Fe},Mt=function(s){return s.slideCount===1?1:Oe(s)+s.slideCount+je(s)},xt=function(s,m){return m.reduce(function(T,V){return T&&s.hasOwnProperty(V)},!0)?null:console.error("Keys Missing:",s)},Je=function(s){xt(s,["left","variableWidth","slideCount","slidesToShow","slideWidth"]);var m,T,V=s.slideCount+2*s.slidesToShow;s.vertical?T=V*s.slideHeight:m=Mt(s)*s.slideWidth;var H={opacity:1,transition:"",WebkitTransition:""};if(s.useTransform){var K=s.vertical?"translate3d(0px, "+s.left+"px, 0px)":"translate3d("+s.left+"px, 0px, 0px)",le=s.vertical?"translate3d(0px, "+s.left+"px, 0px)":"translate3d("+s.left+"px, 0px, 0px)",se=s.vertical?"translateY("+s.left+"px)":"translateX("+s.left+"px)";H=f({},H,{WebkitTransform:K,transform:le,msTransform:se})}else s.vertical?H.top=s.left:H.left=s.left;return s.fade&&(H={opacity:1}),m&&(H.width=m+"px"),T&&(H.height=T+"px"),window&&!window.addEventListener&&window.attachEvent&&(s.vertical?H.marginTop=s.left+"px":H.marginLeft=s.left+"px"),H},wt=function(s){xt(s,["left","variableWidth","slideCount","slidesToShow","slideWidth","speed","cssEase"]);var m=Je(s);return s.useTransform?(m.WebkitTransition="-webkit-transform "+s.speed+"ms "+s.cssEase,m.transition="transform "+s.speed+"ms "+s.cssEase):s.vertical?m.transition="top "+s.speed+"ms "+s.cssEase:m.transition="left "+s.speed+"ms "+s.cssEase,m},ct={accessibility:{type:Boolean,default:!0},adaptiveHeight:{type:Boolean,default:!1},arrows:{type:Boolean,default:!0},asNavFor:{type:Object,default:null},autoplay:{type:Boolean,default:!1},autoplaySpeed:{type:Number,default:3e3},centerMode:{type:Boolean,default:!1},centerPadding:{type:String,default:"50px"},cssEase:{type:String,default:"ease"},dots:{type:Boolean,default:!1},dotsClass:{type:String,default:"slick-dots"},draggable:{type:Boolean,default:!0},edgeFriction:{type:Number,default:.35},fade:{type:Boolean,default:!1},focusOnSelect:{type:Boolean,default:!1},infinite:{type:Boolean,default:!0},initialSlide:{type:Number,default:0},lazyLoad:{type:String,default:null},pauseOnDotsHover:{type:Boolean,default:!1},pauseOnFocus:{type:Boolean,default:!1},pauseOnHover:{type:Boolean,default:!0},responsive:{type:Array,default:null},rows:{type:Number,default:1},rtl:{type:Boolean,default:!1},slidesPerRow:{type:Number,default:1},slidesToScroll:{type:Number,default:1},slidesToShow:{type:Number,default:1},speed:{type:Number,default:500},swipe:{type:Boolean,default:!0},swipeToSlide:{type:Boolean,default:!1},touchMove:{type:Boolean,default:!0},touchThreshold:{type:Number,default:5},useCSS:{type:Boolean,default:!0},useTransform:{type:Boolean,default:!0},variableWidth:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},waitForAnimate:{type:Boolean,default:!0}},Ot=Object.keys(ct).reduce(function(I,s){return I[s]=ct[s].default,I},{});Object.keys(ct).reduce(function(I,s){return I[s]=ct[s].type,I},{}),i("cca6");function Ft(I,s){if(I==null)return{};var m={},T=Object.keys(I),V,H;for(H=0;H<T.length;H++)V=T[H],!(s.indexOf(V)>=0)&&(m[V]=I[V]);return m}function Jt(I,s){if(I==null)return{};var m=Ft(I,s),T,V;if(Object.getOwnPropertySymbols){var H=Object.getOwnPropertySymbols(I);for(V=0;V<H.length;V++)T=H[V],!(s.indexOf(T)>=0)&&(!Object.prototype.propertyIsEnumerable.call(I,T)||(m[T]=I[T]))}return m}i("e01a"),i("d28b"),i("e260"),i("d3b7"),i("ddb0");function _t(I){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_t=function(m){return typeof m}:_t=function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},_t(I)}var Tt=i("6dd8"),_e=i("f7fe"),we=i.n(_e),Te=function(s){var m,T,V,H,K;s.rtl?K=s.slideCount-1-s.index:K=s.index,V=K<0||K>=s.slideCount,s.centerMode?(H=Math.floor(s.slidesToShow/2),T=(K-s.currentSlide)%s.slideCount===0,K>s.currentSlide-H-1&&K<=s.currentSlide+H&&(m=!0)):m=s.currentSlide<=K&&K<s.currentSlide+s.slidesToShow;var le=K===s.currentSlide;return{"slick-slide":!0,"slick-active":m,"slick-center":T,"slick-cloned":V,"slick-current":le}},Ue=function(s){var m={};return(s.variableWidth===void 0||s.variableWidth===!1)&&(m.width=typeof s.slideWidth=="number"?"".concat(s.slideWidth,"px"):s.slideWidth),s.fade&&(m.position="relative",s.vertical?m.top="".concat(-s.index*parseInt(s.slideHeight),"px"):m.left="".concat(-s.index*parseInt(s.slideWidth),"px"),m.opacity=s.currentSlide===s.index?1:0,m.transition="opacity "+s.speed+"ms "+s.cssEase+", visibility "+s.speed+"ms "+s.cssEase),m},Ve=function(s,m){return s.key!=null&&String(s.key)||m},pt={name:"SliderTrack",props:dt.TRACK,methods:{cloneSlide:function(s,m){var T=this,V=be(s);return V.key=m.key,X(V,"class",m.class),X(V,"attrs",m.attrs),X(V,"style",m.style),X(V,"on",{click:function(K){ae(s,"on.click",function(){})(K),T.$emit("childClicked",m.childOnClickOptions)}}),V},renderSlides:function(s,m){var T=this,V=this.$createElement,H,K=[],le=[],se=[],Me=m.length,Re=_(s),Be=W(s);return m.forEach(function(Ie,Ge){var Ye,Ne={message:"children",index:Ge,slidesToScroll:s.slidesToScroll,currentSlide:s.currentSlide};!s.lazyLoad||s.lazyLoad&&s.lazyLoadedList.indexOf(Ge)>=0?Ye=Ie:Ye=V("div");var Fe=Ue(f({},s,{index:Ge})),We=Te(f({},s,{index:Ge}));if(K.push(T.cloneSlide(Ye,{key:"original"+Ve(Ye,Ge),class:We,style:f({outline:"none"},Fe),attrs:{tabIndex:"-1","data-index":Ge,"aria-hidden":"".concat(!We["slick-active"])},childOnClickOptions:Ne})),s.infinite&&s.fade===!1&&Me>s.slidesToShow){var Pe=Me-Ge;Pe<=Oe(s)&&Me!==s.slidesToShow&&(H=-Pe,H>=Re&&(Ye=Ie),We=Te(f({},s,{index:H})),le.push(T.cloneSlide(Ye,{key:"precloned"+Ve(Ye,H),class:We,style:Fe,attrs:{tabIndex:"-1","data-index":H,"aria-hidden":"".concat(!We["slick-active"])},childOnClickOptions:Ne}))),Me!==s.slidesToShow&&(H=Me+Ge,H<Be&&(Ye=Ie),We=Te(f({},s,{index:H})),se.push(T.cloneSlide(Ye,{key:"postcloned"+Ve(Ye,H),class:We,style:Fe,attrs:{tabIndex:"-1","data-index":H,"aria-hidden":"".concat(!We["slick-active"])},childOnClickOptions:Ne})))}},this),s.rtl?le.concat(K,se).reverse():le.concat(K,se)}},render:function(){var s=arguments[0],m=this.renderSlides(this.$props,this.$slots.default);return s("div",{class:{"slick-track":!0,"slick-center":this.$props.centerMode},style:this.trackStyle},[m])}},Xt=pt;i("6ea2");var F,q,$e=C(Xt,F,q,!1,null,"e4caeaf8",null),et=$e.exports;function yt(I,s){(s==null||s>I.length)&&(s=I.length);for(var m=0,T=new Array(s);m<s;m++)T[m]=I[m];return T}function Ct(I){if(Array.isArray(I))return yt(I)}function on(I){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(I))return Array.from(I)}i("b0c0"),i("25f0");function zn(I,s){if(!!I){if(typeof I=="string")return yt(I,s);var m=Object.prototype.toString.call(I).slice(8,-1);if(m==="Object"&&I.constructor&&(m=I.constructor.name),m==="Map"||m==="Set")return Array.from(m);if(m==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(m))return yt(I,s)}}function n0(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Un(I){return Ct(I)||on(I)||zn(I)||n0()}var r0={name:"SliderArrow",props:[].concat(Un(dt.ARROW),["type"]),render:function(){var s=this,m=arguments[0],T={"slick-arrow":!0},V=!0,H,K={currentSlide:this.currentSlide,slideCount:this.slideCount};return this.type==="previous"?(T["slick-prev"]=!0,!this.infinite&&(this.currentSlide===0||this.slideCount<=this.slidesToShow)&&(T["slick-disabled"]=!0,V=!1),K.key="0",H=this.prevArrow?this.prevArrow(K)[0]:m("button",{attrs:{type:"button","data-role":"none"},style:"display: block;"},["Previous"])):(T["slick-next"]=!0,Et(this.$props)||(T["slick-disabled"]=!0,V=!1),K.key="1",H=this.nextArrow?this.nextArrow(K)[0]:m("button",{attrs:{type:"button","data-role":"none"},style:"display: block;"},["Next"])),fe(H,"key",K.key),X(H,"class",T),X(H,"on",{click:function(){V&&s.$emit("arrowClicked",{message:s.type})}}),H}},sn=r0;i("f013");var In,ln,Sn=C(sn,In,ln,!1,null,"21137603",null),ht=Sn.exports;i("1276");var i0=function(s){var m;return s.infinite?m=Math.ceil(s.slideCount/s.slidesToScroll):m=Math.ceil((s.slideCount-s.slidesToShow)/s.slidesToScroll)+1,m},Pn={name:"SliderDots",props:dt.DOT,render:function(){var s=this,m=arguments[0],T=i0({slideCount:this.slideCount,slidesToScroll:this.slidesToScroll,slidesToShow:this.slidesToShow,infinite:this.infinite}),V=Array.apply(null,Array(T+1).join("0").split("")).map(function(le,se){var Me=se*s.slidesToScroll,Re=se*s.slidesToScroll+(s.slidesToScroll-1),Be={"slick-active":s.currentSlide>=Me&&s.currentSlide<=Re},Ie={message:"dots",index:se,slidesToScroll:s.slidesToScroll,currentSlide:s.currentSlide},Ge=s.customPaging?s.customPaging(se)[0]:m("button",[se+1]);return m("li",{key:se,class:Be,on:{click:function(){return s.$emit("dotClicked",Ie)}}},[Ge])}),H={display:"block"},K=u({},this.dotsClass,!0);return m("ul",{style:H,class:K},[V])}},a0=Pn,o0,s0,_0=C(a0,o0,s0,!1,null,null,null),Bn=_0.exports,Wn={animating:!1,autoplaying:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,dragging:!1,edgeDragged:!1,initialized:!1,lazyLoadedList:[],listHeight:null,listWidth:null,scrolling:!1,slideHeight:null,slideWidth:null,swipeLeft:null,swiped:!1,swiping:!1,touchObject:{startX:0,startY:0,curX:0,curY:0},trackStyle:{},trackWidth:0},l0={name:"InnerSlider",components:{SliderTrack:et,SliderArrow:ht,SliderDots:Bn},mixins:[Y],inheritAttrs:!1,props:f({},ct,{unslick:{type:Boolean,default:!1},prevArrow:Function,nextArrow:Function,customPaging:Function}),data:function(){return f({},Wn,{currentSlide:this.initialSlide})},computed:{slideCount:function(){return this.$slots.default.length},spec:function(){return f({},this.$props,{},this.$data,{slideCount:this.slideCount})}},created:function(){if(this.callbackTimers=[],this.clickable=!0,this.debouncedResize=null,this.ssrInit(),this.$parent.$emit("init"),this.lazyLoad){var s=pe(this.spec);s.length>0&&(this.lazyLoadedList=this.lazyLoadedList.concat(s),this.$parent.$emit("lazyLoad",s))}},mounted:function(){var s=this,m=f({listRef:this.$refs.list,trackRef:this.$refs.track,children:this.$slots.default},this.$props);this.updateState(m,!0),this.adaptHeight(),this.autoPlay&&this.autoPlay("update"),this.lazyLoad==="progressive"&&(this.lazyLoadTimer=setInterval(this.progressiveLazyLoad,1e3)),this.ro=new Tt.a(function(){s.animating?(s.onWindowResized(!1),s.callbackTimers.push(setTimeout(function(){return s.onWindowResized()},s.speed))):s.onWindowResized()}),this.ro.observe(this.$refs.list),Array.prototype.forEach.call(this.$refs.list.querySelectorAll(".slick-slide"),function(T){T.onfocus=s.pauseOnFocus?s.onSlideFocus:null,T.onblur=s.pauseOnFocus?s.onSlideBlur:null}),window.addEventListener?window.addEventListener("resize",this.onWindowResized):window.attachEvent("onresize",this.onWindowResized)},updated:function(){if(this.checkImagesLoad(),this.$parent.$emit("reInit"),this.lazyLoad){var s=pe(f({},this.$props,{},this.$data));s.length>0&&(this.lazyLoadedList=this.lazyLoadedList.concat(s),this.$parent.$emit("lazyLoad",s))}this.adaptHeight()},beforeDestroy:function(){this.ro.unobserve(this.$refs.list),this.animationEndCallback&&clearTimeout(this.animationEndCallback),this.lazyLoadTimer&&clearInterval(this.lazyLoadTimer),this.callbackTimers.length&&(this.callbackTimers.forEach(function(s){return clearTimeout(s)}),this.callbackTimers=[]),window.addEventListener?window.removeEventListener("resize",this.onWindowResized):window.detachEvent("onresize",this.onWindowResized),this.autoplayTimer&&clearInterval(this.autoplayTimer)},methods:{onPropsUpdated:function(){for(var s=this.$props,m=f({listRef:this.$refs.list,trackRef:this.$refs.track,children:this.$slots.default},s,{},this.$data),T=!1,V=0,H=Object.keys(this.$props);V<H.length;V++){var K=H[V];if(!s.hasOwnProperty(K)){T=!0;break}if(!(_t(s[K])==="object"||typeof s[K]=="function")&&s[K]!==this.$props[K]){T=!0;break}}this.updateState(m,T),this.currentSlide>=this.slideCount&&this.changeSlide({message:"index",index:this.slideCount-s.slidesToShow,currentSlide:this.currentSlide}),s.autoplay?this.autoPlay("update"):this.pause("paused")},updateState:function(s,m){var T=Ut(s);s=f({},s,{},T,{slideIndex:T.currentSlide});var V=St(s);s=f({},s,{left:V});var H=Je(s);(m||this.slideCount!==s.children.length)&&(T.trackStyle=H),Object.assign(this.$data,T)},adaptHeight:function(){if(this.adaptiveHeight&&this.$refs.list){var s=this.$refs.list.querySelector('[data-index="'.concat(this.currentSlide,'"]'));this.$refs.list.style.height=Zt(s)+"px"}},ssrInit:function(){var s=Oe(this.spec),m=je(this.spec);if(this.variableWidth){var T=[],V=[],H=[];this.$slots.default.forEach(function(Ne){var Fe=xe(Ne),We=Fe.width;H.push(We),T.push(We)});for(var K=0;K<s;K++)V.push(H[H.length-1-K]),T.push(H[H.length-1-K]);for(var le=0;le<m;le++)T.push(H[le]);for(var se=0;se<this.currentSlide;se++)V.push(H[se]);T=T.filter(function(Ne){return Ne}),V=V.filter(function(Ne){return Ne});var Me={width:"calc(".concat(T.join(" + "),")"),left:"calc(".concat(V.map(function(Ne){return"-".concat(Ne)}).join(" + "),")")};if(this.centerMode){var Re=H[this.currentSlide];Me.left="calc(".concat(V.map(function(Ne){return"-".concat(Ne)}).join(" + ")," + (100% - ").concat(Re,") / 2 )")}this.trackStyle=Me}else{var Be=s+m+this.slideCount,Ie=100/this.slidesToShow*Be,Ge=100/Be,Ye=-Ge*(s+this.currentSlide)*Ie/100;this.centerMode&&(Ye+=(100-Ge*Ie/100)/2),this.slideWidth=Ge+"%",this.trackStyle={width:Ie+"%",left:Ye+"%"}}},slideHandler:function(s){var m=this,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,V=this.asNavFor,H=this.speed,K=this.currentSlide,le=Gt(f({index:s},this.$props,{},this.$data,{trackRef:this.$refs.track,useCSS:this.useCSS&&!T})),se=le.state,Me=le.nextState;if(!!se){this.$parent.$emit("beforeChange",K,se.currentSlide);var Re=se.lazyLoadedList.filter(function(Be){return m.lazyLoadedList.indexOf(Be)<0});Re.length&&this.$parent.$emit("lazyLoad",Re),Object.assign(this.$data,se),V&&V.goTo(s),Me&&(this.animationEndCallback=setTimeout(function(){var Be=Me.animating,Ie=Jt(Me,["animating"]);Object.assign(m.$data,Ie),m.callbackTimers.push(setTimeout(function(){m.animating=Be},10)),m.$parent.$emit("afterChange",se.currentSlide),m.animationEndCallback=void 0},H))}},onWindowResized:function(s){var m=this;this.debouncedResize&&this.debouncedResize.cancel(),this.debouncedResize=we()(function(){return m.resizeWindow(s)},50),this.debouncedResize()},resizeWindow:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(!!(this.$refs.track&&this.$refs.track.$el)){var m=f({listRef:this.$refs.list,trackRef:this.$refs.track,children:this.$slots.default},this.$props,{},this.$data);this.updateState(m,s),this.autoplay?this.autoPlay("update"):this.pause("paused"),this.animating=!1,clearTimeout(this.animationEndCallback),this.animationEndCallback=void 0}},checkImagesLoad:function(){var s=this,m=this.$refs.list.querySelectorAll(".slick-slide img"),T=m.length,V=0;Array.prototype.forEach.call(m,function(H){var K=function(){return++V&&V>=T&&s.onWindowResized()};if(!H.onclick)H.onclick=function(){return H.parentNode.focus()};else{var le=H.onclick;H.onclick=function(){le(),H.parentNode.focus()}}H.onload||(s.lazyLoad?H.onload=function(){s.adaptHeight(),s.callbackTimers.push(setTimeout(s.onWindowResized,s.speed))}:(H.onload=K,H.onerror=function(){K(),s.$parent.$emit("lazyLoadError")}))})},progressiveLazyLoad:function(){for(var s=[],m=f({},this.$props,{},this.$data),T=this.currentSlide;T<this.slideCount+je(m);T++)if(this.lazyLoadedList.indexOf(T)<0){s.push(T);break}for(var V=this.currentSlide-1;V>=-Oe(m);V--)if(this.lazyLoadedList.indexOf(V)<0){s.push(V);break}s.length>0?(this.lazyLoadedList=this.lazyLoadedList.concat(s),this.$parent.$emit("lazyLoad",s)):this.lazyLoadTimer&&(clearInterval(this.lazyLoadTimer),this.lazyLoadTimer=void 0)},clickHandler:function(s){this.clickable===!1&&(s.stopPropagation(),s.preventDefault()),this.clickable=!0},keyHandler:function(s){var m=U(s,this.accessibility,this.rtl);m!==""&&this.changeSlide({message:m})},changeSlide:function(s){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,T=f({},this.$props,{},this.$data),V=Ce(T,s);V!==0&&!V||(m===!0?this.slideHandler(V,m):this.slideHandler(V))},swipeStart:function(s){this.verticalSwiping&&this.disableBodyScroll();var m=nt(s,this.swipe,this.draggable);m!==""&&Object.assign(this.$data,m)},swipeMove:function(s){var m=this,T=Ae(s,f({},this.$props,{},this.$data,{trackRef:this.$refs.track,listRef:this.$refs.list,slideIndex:this.currentSlide,onEdge:function(H){return m.$parent.$emit("edge",H)},swipeEvent:function(H){return m.$parent.$emit("swipe",H)}}));!T||(T.swiping&&(this.clickable=!1),Object.assign(this.$data,T))},swipeEnd:function(s){var m=De(s,f({},this.$props,{},this.$data,{trackRef:this.$refs.track,listRef:this.$refs.list,slideIndex:this.currentSlide}));if(!!m){var T=m.triggerSlideHandler;this.triggerSlideHandler=void 0,Object.assign(this.$data,m),T!==void 0&&(this.slideHandler(T),this.verticalSwiping&&this.enableBodyScroll())}},prev:function(){var s=this;this.callbackTimers.push(setTimeout(function(){return s.changeSlide({message:"previous"})},0))},next:function(){var s=this;this.callbackTimers.push(setTimeout(function(){return s.changeSlide({message:"next"})},0))},goTo:function(s){var m=this,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(s=Number(s),isNaN(s))return"";this.callbackTimers.push(setTimeout(function(){return m.changeSlide({message:"index",index:s,currentSlide:m.currentSlide},T)},0))},play:function(){var s;if(this.rtl)s=this.currentSlide-this.slidesToScroll;else if(Et(f({},this.$props,{},this.$data)))s=this.currentSlide+this.slidesToScroll;else return!1;this.slideHandler(s)},autoPlay:function(s){this.autoplayTimer&&clearInterval(this.autoplayTimer);var m=this.autoplaying;if(s==="update"){if(m==="hovered"||m==="focused"||m==="paused")return}else if(s==="leave"){if(m==="paused"||m==="focused")return}else if(s==="blur"&&(m==="paused"||m==="hovered"))return;this.autoplayTimer=setInterval(this.play,this.autoplaySpeed+50),this.autoplaying="playing"},pause:function(s){this.autoplayTimer&&(clearInterval(this.autoplayTimer),this.autoplayTimer=null);var m=this.autoplaying;s==="paused"?this.autoplaying="paused":s==="focused"?(m==="hovered"||m==="playing")&&(this.autoplaying="focused"):m==="playing"&&(this.autoplaying="hovered")},onDotsOver:function(){this.autoplay&&this.pause("hovered")},onDotsLeave:function(){this.autoplay&&this.autoplaying==="hovered"&&this.autoPlay("leave")},onTrackOver:function(){this.autoplay&&this.pause("hovered")},onTrackLeave:function(){this.autoplay&&this.autoplaying==="hovered"&&this.autoPlay("leave")},onSlideFocus:function(){this.autoplay&&this.pause("focused")},onSlideBlur:function(){this.autoplay&&this.autoplaying==="focused"&&this.autoPlay("blur")},selectHandler:function(s){this.focusOnSelect&&this.changeSlide(s)}},render:function(){var s=arguments[0],m={"slick-slider":!0,"slick-initialized":!0,"slick-vertical":this.vertical},T=an(this.spec,dt.TRACK);T=ye(f({},T));var V=this.pauseOnHover,H=ye({mouseenter:V?this.onTrackOver:void 0,mouseover:V?this.onTrackOver:void 0,mouseleave:V?this.onTrackLeave:void 0}),K;if(this.dots===!0&&this.slideCount>=this.slidesToShow){var le=an(this.spec,dt.DOT),se=this.pauseOnDotsHover,Me=ye({mouseenter:se?this.onDotsLeave:void 0,mouseover:se?this.onDotsOver:void 0,mouseleave:se?this.onDotsLeave:void 0});K=s(Bn,{props:f({},le),nativeOn:f({},Me),on:{dotClicked:this.changeSlide}})}var Re,Be,Ie=an(this.spec,dt.ARROW);this.arrows&&(Re=s(ht,{props:f({},f({},Ie,{type:"previous"})),on:{arrowClicked:this.changeSlide}}),Be=s(ht,{props:f({},f({},Ie,{type:"next"})),on:{arrowClicked:this.changeSlide}}));var Ge={};this.vertical&&(Ge={height:"".concat(this.listHeight,"px")});var Ye={};this.vertical===!1?this.centerMode===!0&&(Ye={padding:"0px "+this.centerPadding}):this.centerMode===!0&&(Ye={padding:this.centerPadding+" 0px"});var Ne=f({},this.$parent.$vnode.data.style);this.unslick||(Ne=f({},Ne,{},st(Ge),{},Ye));var Fe=this.accessibility,We=this.dragging,Pe=this.touchMove,vt=ye({click:this.clickHandler,mousedown:Pe?this.swipeStart:void 0,mousemove:We&&Pe?this.swipeMove:void 0,mouseup:Pe?this.swipeEnd:void 0,mouseleave:We&&Pe?this.swipeEnd:void 0,touchstart:Pe?this.swipeStart:void 0,touchmove:We&&Pe?this.swipeMove:void 0,touchend:Pe?this.swipeEnd:void 0,touchcancel:We&&Pe?this.swipeEnd:void 0,keydown:Fe?this.keyHandler:void 0});return s("div",{class:m,attrs:{dir:this.unslick?!1:"ltr"}},[this.unslick?"":Re,s("div",{ref:"list",class:"slick-list",on:f({},vt),style:Ne},[s(et,{ref:"track",props:f({},T),nativeOn:f({},H),on:{childClicked:this.selectHandler}},[this.$slots.default])]),this.unslick?"":Be,this.unslick?"":K])}},Qt=l0;i("eaf9");var c0,Gn,xn=C(Qt,c0,Gn,!1,null,"3d1a4f76",null),Kn=xn.exports,hn=Se()&&i("8e95"),u0={name:"VueSlickCarousel",components:{InnerSlider:Kn},mixins:[Y],inheritAttrs:!1,props:ct,data:function(){return{breakpoint:null}},computed:{settings:function(){var s=this,m=ye(this.$props),T,V;return this.breakpoint?(V=this.responsive.filter(function(H){return H.breakpoint===s.breakpoint}),T=V[0].settings==="unslick"?"unslick":f({},Ot,{},m,{},V[0].settings)):T=f({},Ot,{},m),T.centerMode&&(T.slidesToScroll>1,T.slidesToScroll=1),T.fade&&(T.slidesToShow>1,T.slidesToScroll>1,T.slidesToShow=1,T.slidesToScroll=1),T.variableWidth&&(T.rows>1||T.slidesPerRow>1)&&(console.warn("variableWidth is not supported in case of rows > 1 or slidesPerRow > 1"),T.variableWidth=!1),T}},created:function(){this.makeBreakpoints()},beforeDestroy:function(){this.clearBreakpoints()},methods:{prev:function(){this.$refs.innerSlider.prev()},next:function(){this.$refs.innerSlider.next()},goTo:function(s){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.$refs.innerSlider.goTo(s,m)},pause:function(){this.$refs.innerSlider.pause("paused")},play:function(){this.$refs.innerSlider.autoPlay("play")},onPropsUpdated:function(){this.clearBreakpoints(),this.makeBreakpoints()},clearBreakpoints:function(){this.responsiveMediaHandlers.forEach(function(s){return hn.unregister(s.query,s.handler)}),this.responsiveMediaHandlers=[]},media:function(s,m){!Se()||(hn.register(s,m),this.responsiveMediaHandlers.push({query:s,handler:m}))},makeBreakpoints:function(){var s=this;if(this.breakpoint=null,this.responsiveMediaHandlers=[],this.responsive){var m=this.responsive.map(function(V){return V.breakpoint});m.sort(function(V,H){return V-H}),m.forEach(function(V,H){var K=S()({minWidth:H===0?0:m[H-1]+1,maxWidth:V});s.media(K,function(){s.breakpoint=V})});var T=S()({minWidth:m.slice(-1)[0]});this.media(T,function(){s.breakpoint=null})}}},render:function(){var s=arguments[0],m=this.settings,T=this.$slots.default||[];if(m==="unslick")return s("div",{class:"regular slider"},[T]);m.prevArrow=this.$scopedSlots.prevArrow,m.nextArrow=this.$scopedSlots.nextArrow,m.customPaging=this.$scopedSlots.customPaging,T=T.filter(function(Ie){return!!Ie.tag});for(var V=[],H=null,K=0;K<T.length;K+=m.rows*m.slidesPerRow){for(var le=[],se=K;se<K+m.rows*m.slidesPerRow;se+=m.slidesPerRow){for(var Me=[],Re=se;Re<se+m.slidesPerRow&&(m.variableWidth&&xe(T[Re])&&(H=xe(T[Re]).width),!(Re>=T.length));Re+=1){var Be=be(T[Re]);fe(Be,"key",100*K+10*se+Re),X(Be,"attrs",{tabIndex:-1}),X(Be,"style",{width:"".concat(100/m.slidesPerRow,"%"),display:"inline-block"}),Me.push(Be)}le.push(s("div",{key:10*K+se},[Me]))}m.variableWidth?V.push(s("div",{key:K,style:{width:H}},[le])):V.push(s("div",{key:K},[le]))}return V.length<=m.slidesToShow&&(m.unslick=!0),s(Kn,{ref:"innerSlider",props:f({},m),key:Object.values(m).join("")},[V])}},k0=u0,N0,F0,f0=C(k0,N0,F0,!1,null,null,null),H0=f0.exports;L.default=H0},fb6a:function(d,L,i){var l=i("23e7"),u=i("861d"),h=i("e8b5"),f=i("23cb"),g=i("50c4"),S=i("fc6a"),b=i("8418"),x=i("b622"),C=i("1dde"),$=i("ae40"),D=C("slice"),A=$("slice",{ACCESSORS:!0,0:0,1:2}),Y=x("species"),Q=[].slice,te=Math.max;l({target:"Array",proto:!0,forced:!D||!A},{slice:function(ie,oe){var J=S(this),X=g(J.length),fe=f(ie,X),Le=f(oe===void 0?X:oe,X),z,me,be;if(h(J)&&(z=J.constructor,typeof z=="function"&&(z===Array||h(z.prototype))?z=void 0:u(z)&&(z=z[Y],z===null&&(z=void 0)),z===Array||z===void 0))return Q.call(J,fe,Le);for(me=new(z===void 0?Array:z)(te(Le-fe,0)),be=0;fe<Le;fe++,be++)fe in J&&b(me,be,J[fe]);return me.length=be,me}})},fc6a:function(d,L,i){var l=i("44ad"),u=i("1d80");d.exports=function(h){return l(u(h))}},fdb2:function(d,L,i){},fdbc:function(d,L){d.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(d,L,i){var l=i("4930");d.exports=l&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}}).default})})(po);const qr=uo(po.exports);function Dt(ce,E,d,L,i,l,u,h){var f=typeof ce=="function"?ce.options:ce;E&&(f.render=E,f.staticRenderFns=d,f._compiled=!0),L&&(f.functional=!0),l&&(f._scopeId="data-v-"+l);var g;if(u?(g=function(x){x=x||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!x&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(x=__VUE_SSR_CONTEXT__),i&&i.call(this,x),x&&x._registeredComponents&&x._registeredComponents.add(u)},f._ssrRegister=g):i&&(g=h?function(){i.call(this,(f.functional?this.parent:this).$root.$options.shadowRoot)}:i),g)if(f.functional){f._injectStyles=g;var S=f.render;f.render=function(C,$){return g.call($),S(C,$)}}else{var b=f.beforeCreate;f.beforeCreate=b?[].concat(b,g):[g]}return{exports:ce,options:f}}const $9={components:{VueSlickCarousel:qr},name:"ArticleCarousel",data:()=>({settings:{dots:!1,infinite:!1,slidesToShow:3,slidesToScroll:1,responsive:[{breakpoint:1200,settings:{slidesToShow:1}}]}})};var E9=function(){var E=this,d=E._self._c;return d("vue-slick-carousel",E._b({staticClass:"article-carousel"},"vue-slick-carousel",E.settings,!1),[E._t("default")],2)},j9=[],M9=Dt($9,E9,j9,!1,null,null,null,null);const I9=M9.exports,P9={components:{VueSlickCarousel:qr},name:"HeaderCarousel",data:()=>({settings:{fade:!0,dots:!0}})};var A9=function(){var E=this,d=E._self._c;return d("div",{staticClass:"header-carousel mb-8 xl:mb-32"},[d("vue-slick-carousel",E._b({},"vue-slick-carousel",E.settings,!1),[E._t("default")],2)],1)},R9=[],D9=Dt(P9,A9,R9,!1,null,null,null,null);const _9=D9.exports,k9={props:{name:{type:String,default:"Kalend\xE1\u0159"},events:{type:Array,required:!0},onShowMore:{type:Function,required:!1},hasMore:{type:Boolean,default:!0},showBanner:{type:Boolean,default:!0}},filters:{dateDay:ce=>`${new Date(ce).getDate()}.`}};var N9=function(){var E=this,d=E._self._c;return d("div",{staticClass:"calendar grid grid-cols-4"},[E.showBanner?d("div",{staticClass:"col-span-4 xl:col-span-1"},[d("aside",{staticClass:"banner bg-orange-300 text-white h-full"},[d("i",{staticClass:"ico--calendar banner__icon"}),d("div",{staticClass:"banner__body"},[d("h1",{staticClass:"head-alt-md banner__cta"},[E._v(E._s(E.name))]),E.onShowMore&&E.hasMore?d("button",{staticClass:"btn btn--white btn--fullwidth sm:btn--autowidth mt-8",on:{click:function(L){return E.onShowMore()}}},[d("div",{staticClass:"btn__body"},[E._v("Zobrazit dal\u0161\xED")])]):E._e()])])]):E._e(),d("div",{class:{"col-span-4 xl:col-span-3":E.showBanner,"col-span-4":!E.showBanner}},E._l(E.events,function(L){return d("div",{key:L.id,staticClass:"grid grid-cols-12 items-center calendar-table-row",class:{"calendar-table-row--standalone":!E.showBanner}},[d("div",{staticClass:"col-span-2 text-orange-300 head-alt-md calendar-table-row__col"},[d("span",[E._v(E._s(E._f("dateDay")(L.startTimestamp)))])]),d("div",{staticClass:"col-span-8 grid grid-cols-3 col-gap-4 calendar-table-row__col",class:{"calendar-table-row__col--norborder":!L.mapLink}},[d("div",{staticClass:"col-span-3 md:col-span-1"},[d("strong",{staticClass:"block"},[E._v(E._s(L.startDateVerbose))]),d("p",{staticClass:"font-light text-sm mt-1"},[E._v(E._s(L.allDay?"Cel\xFD den":L.startTimeVerbose))])]),d("div",{staticClass:"col-span-3 md:col-span-2 mt-4 md:mt-0"},[L.link?d("a",{staticClass:"font-bold block",attrs:{href:L.link,target:"_blank",rel:"noreferrer noopener"}},[E._v(E._s(L.title))]):E._e(),L.link?E._e():d("strong",{staticClass:"block"},[E._v(E._s(L.title))]),L.description?d("p",{staticClass:"font-light text-sm mt-1"},[E._v(E._s(L.description))]):E._e()])]),d("div",{staticClass:"col-span-2 text-center font-light calendar-table-row__col"},[L.mapLink?d("a",{staticClass:"icon-link",attrs:{href:L.mapLink}},[d("i",{staticClass:"ico--location text-violet-300 mr-1",attrs:{"aria-hidden":"true"}}),d("span",[E._v("Mapa")])]):E._e()])])}),0)])},F9=[],H9=Dt(k9,N9,F9,!1,null,null,null,null);const V9=H9.exports,co=[{id:2,start:"2020-07-08T10:00:00.000Z",startTimestamp:new Date("2020-07-08T10:00:00.000Z").getTime(),startDateVerbose:"st\u0159eda 8. \u010Dervence 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-07-08T11:00:00.000Z",title:"Pir\xE1tsk\xFD ob\u011Bd - Chrudim",description:"Pravideln\xE9 setk\xE1n\xED pir\xE1t\u016F p\u0159i st\u0159ede\u010Dn\xEDm ob\u011Bd\u011B. Nejen o politice a s chut\xED.",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\u011Bl\xED 13. \u010Dervence 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-07-13T19:30:00.000Z",title:"Mumble - p\u0159edsednictvo",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\u0159eda 15. \u010Dervence 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-07-15T11:00:00.000Z",title:"Pir\xE1tsk\xFD ob\u011Bd - Chrudim",description:"Pravideln\xE9 setk\xE1n\xED pir\xE1t\u016F p\u0159i st\u0159ede\u010Dn\xEDm ob\u011Bd\u011B. Nejen o politice a s chut\xED.",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\u011Bl\xED 20. \u010Dervence 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-07-20T19:30:00.000Z",title:"Mumble - p\u0159edsednictvo",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\u0159eda 22. \u010Dervence 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-07-22T11:00:00.000Z",title:"Pir\xE1tsk\xFD ob\u011Bd - Chrudim",description:"Pravideln\xE9 setk\xE1n\xED pir\xE1t\u016F p\u0159i st\u0159ede\u010Dn\xEDm ob\u011Bd\u011B. Nejen o politice a s chut\xED.",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\u011Bl\xED 27. \u010Dervence 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-07-27T19:30:00.000Z",title:"Mumble - p\u0159edsednictvo",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\u0159eda 29. \u010Dervence 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-07-29T11:00:00.000Z",title:"Pir\xE1tsk\xFD ob\u011Bd - Chrudim",description:"Pravideln\xE9 setk\xE1n\xED pir\xE1t\u016F p\u0159i st\u0159ede\u010Dn\xEDm ob\u011Bd\u011B. Nejen o politice a s chut\xED.",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\u011Bl\xED 3. srpna 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-08-03T19:30:00.000Z",title:"Mumble - p\u0159edsednictvo",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\u0159eda 5. srpna 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-08-05T11:00:00.000Z",title:"Pir\xE1tsk\xFD ob\u011Bd - Chrudim",description:"Pravideln\xE9 setk\xE1n\xED pir\xE1t\u016F p\u0159i st\u0159ede\u010Dn\xEDm ob\u011Bd\u011B. Nejen o politice a s chut\xED.",link:"https://www.google.com/calendar/event?eid=Mmw1Y2RwMTByYm80Y204cWxsaW1maWJmcTJfMjAyMDA4MDVUMTAwMDAwWiA3cjY3M3JsaDI1NW9mb3JodjNvZWIybDBnMEBn"}],z9=[{id:19,start:"2020-08-10T19:00:00.000Z",startTimestamp:new Date("2020-08-10T19:00:00.000Z").getTime(),startDateVerbose:"pond\u011Bl\xED 10. srpna 2020",startTimeVerbose:"21:00",allDay:!1,end:"2020-08-10T19:30:00.000Z",title:"Mumble - p\u0159edsednictvo",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\u0159eda 12. srpna 2020",startTimeVerbose:"12:00",allDay:!1,end:"2020-08-12T11:00:00.000Z",title:"Pir\xE1tsk\xFD ob\u011Bd - Chrudim",description:"Pravideln\xE9 setk\xE1n\xED pir\xE1t\u016F p\u0159i st\u0159ede\u010Dn\xEDm ob\u011Bd\u011B. Nejen o politice a s chut\xED.",link:"https://www.google.com/calendar/event?eid=Mmw1Y2RwMTByYm80Y204cWxsaW1maWJmcTJfMjAyMDA4MTJUMTAwMDAwWiA3cjY3M3JsaDI1NW9mb3JodjNvZWIybDBnMEBn"}],U9={data:()=>({events:co,hasMore:!0}),methods:{onShowMore(){this.$data.events=[...co,...z9],this.$data.hasMore=!1}},render(){return this.$scopedSlots.default({events:this.events,hasMore:this.hasMore,onShowMore:this.onShowMore})}},B9=null,W9=null;var G9=Dt(U9,B9,W9,!1,null,null,null,null);const K9=G9.exports,Y9=10,Z9={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+=Y9},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 ce=this.loadEventsFromStorage();if(ce)this.events=ce;else{const E=new Date,d=E.toISOString(),L=new Date(+E+1e3*60*60*24*90).toISOString(),i=`https://www.googleapis.com/calendar/v3/calendars/${this.calendarId}/events?key=${encodeURIComponent(this.apiKey)}&maxResults=150&timeMin=${encodeURIComponent(d)}&timeMax=${encodeURIComponent(L)}&sanitizeHtml=true&singleEvents=true&maxAtendees=1`;let l=0;fetch(i).then(u=>{if(!u.ok)throw new Error("Problem loading events from google");return u.json()}).then(u=>{this.events=u.items.map(h=>{const f=new Date(h.start.dateTime||h.start.date),g=new Date(h.end.dateTime||h.end.date),S=f.toLocaleDateString("cs-CZ",{weekday:"long",year:"numeric",month:"long",day:"numeric"}),b=f.getHours()+":"+f.getMinutes().toString().padStart(2,"0"),x=!h.start.dateTime;return{id:l++,start:f,startTimestamp:f.getTime(),startDateVerbose:S,startTimeVerbose:b,allDay:x,end:g,title:h.summary,description:h.description,link:h.htmlLink}}).sort((h,f)=>h.start<f.start?-1:1),this.storeEventsToStorage()})}},render(){return this.$scopedSlots.default({events:this.displayedEvents,hasMore:this.hasMore,onShowMore:this.onShowMore})}},J9=null,X9=null;var Q9=Dt(Z9,J9,X9,!1,null,null,null,null);const q9=Q9.exports,el={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(ce){const E=this.$props.links[ce.id];window.open(E,"_blank")}},data(){return{current:null,regions:[{id:"jihocesky",name:"Jiho\u010Desk\xFD 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\u0148sk\xFD 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\xFD 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\xFD 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\xEDnsk\xFD 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\u010Dina",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\u0159edo\u010Desk\xFD 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\xED m\u011Bsto 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:"\xDAsteck\xFD 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\xFD 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\xE1lov\xE9hradeck\xFD 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\xFD 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\xFD 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\xFD 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 tl=function(){var E=this,d=E._self._c;return d("div",{staticClass:"region-map flex justify-center items-center"},[d("div",{staticClass:"w-full max-w-xl block"},[d("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"}},[d("g",E._l(E.regions,function(L){return d("a",{key:L.id,attrs:{"xlink:href":"#"},on:{mouseover:function(i){E.current=L},mouseout:function(i){E.current=null},click:function(i){return E.selectRegion(L)}}},[d("path",{staticClass:"map-polygon region-map__region",class:{"region-map__region--current":E.current===L},attrs:{d:L.polygon}})])}),0)])])])},nl=[],rl=Dt(el,tl,nl,!1,null,null,null,null);const il=rl.exports,al={components:{VueSlickCarousel:qr},name:"TwitterCarousel",data:()=>({settings:{dots:!1,infinite:!1,slidesToShow:4,slidesToScroll:1,responsive:[{breakpoint:1600,settings:{slidesToShow:3}},{breakpoint:1200,settings:{slidesToShow:3}},{breakpoint:900,settings:{slidesToShow:2}},{breakpoint:500,settings:{slidesToShow:1}}]}})};var ol=function(){var E=this,d=E._self._c;return d("vue-slick-carousel",E._b({staticClass:"twitter-carousel"},"vue-slick-carousel",E.settings,!1),[E._t("default")],2)},sl=[],ll=Dt(al,ol,sl,!1,null,null,null,null);const cl=ll.exports,ul={props:{initial:{default:()=>{}},syncLocation:{type:Boolean,default:!1},locationParam:{type:String,default:"view"}},data(){return{views:this.$props.initial,queryParams:null,keyListener:ce=>{ce.keyCode===27&&this.hideAllViews()}}},watch:{routeView(){new URLSearchParams(window.location.search)}},methods:{setView(ce,E,d=!1){if(d&&Object.keys(this.$data.views).forEach(L=>{L!==ce&&this.setView(L,!1)}),this.$data.views[ce]=E,E&&this.$props.syncLocation){const L=new URLSearchParams(window.location.search);L.set(this.$props.locationParam,ce),history.pushState(null,null,"?"+L.toString())}},setViews(ce){this.$data.views=Object.assign({},this.data.views,ce)},toggleView(ce){!this.isCurrentView(ce)&&this.setView(ce,!this.isCurrentView(ce),!0)},showView(ce){this.setView(ce,!0,!0)},isCurrentView(ce){return this.$data.views[ce]},hideAllViews(){Object.keys(this.$data.views).forEach(ce=>{this.setView(ce,!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 fl=function(){var E=this,d=E._self._c;return d("div",[E._t("default",null,{views:E.views,isCurrentView:E.isCurrentView,toggleView:E.toggleView,showView:E.showView,setView:E.setView})],2)},dl=[],vl=Dt(ul,fl,dl,!1,null,null,null,null);const pl=vl.exports,hl={data(){return{show:!1}},props:{href:{type:String},label:{type:String}},methods:{onMouseEnter(){rn()&&(this.$data.show=!0)},onMouseLeave(){rn()&&(this.$data.show=!1)},handleClick(ce){(rn()||this.$data.show)&&this.$props.href&&(window.location=this.$props.href),this.$data.show=!this.$data.show}}};var ml=function(){var E=this,d=E._self._c;return d("div",{on:{mouseenter:E.onMouseEnter,mouseleave:E.onMouseLeave}},[E.href?E._e():d("span",{staticClass:"navbar-menu__link navbar-menu__submenu-toggle",class:{"navbar-menu__submenu-toggle--open":E.show},on:{click:E.handleClick}},[E._v(E._s(E.label))]),E.href?d("a",{staticClass:"navbar-menu__link navbar-menu__submenu-toggle",class:{"navbar-menu__submenu-toggle--open":E.show},attrs:{href:E.href},on:{click:function(L){return L.preventDefault(),E.handleClick.apply(null,arguments)}}},[E._v(E._s(E.label))]):E._e(),d("div",{staticClass:"navbar-menu__submenu-wrap",class:{"navbar-menu__submenu-wrap--show":E.show}},[E._t("default")],2)])},gl=[],yl=Dt(hl,ml,gl,!1,null,null,null,null);const Ll=yl.exports,bl={data(){return{show:!1,parsedItems:JSON.parse(this.items)}},props:{href:{type:String},label:{type:String},items:{type:String}},methods:{onMouseEnter(){rn()&&(this.$data.show=!0)},onMouseLeave(){rn()&&(this.$data.show=!1)},handleClick(ce){(rn()||this.$data.show)&&this.$props.href&&(window.location=this.$props.href),this.$data.show=!this.$data.show}}};var Sl=function(){var E=this,d=E._self._c;return d("div",{on:{mouseenter:E.onMouseEnter,mouseleave:E.onMouseLeave}},[E.href?E._e():d("span",{staticClass:"navbar-menu__link navbar-menu__submenu-toggle",class:{"navbar-menu__submenu-toggle--open":E.show},on:{click:E.handleClick}},[E._v(E._s(E.label))]),E.href?d("a",{staticClass:"navbar-menu__link navbar-menu__submenu-toggle",class:{"navbar-menu__submenu-toggle--open":E.show},attrs:{href:E.href},on:{click:function(L){return L.preventDefault(),E.handleClick.apply(null,arguments)}}},[E._v(E._s(E.label))]):E._e(),d("div",{staticClass:"navbar-menu__submenu-wrap",class:{"navbar-menu__submenu-wrap--show":E.show}},[d("ul",{staticClass:"navbar-menu__submenu"},E._l(E.parsedItems,function(L,i){return d("li",{key:i},[d("a",{staticClass:"navbar-menu__link",attrs:{href:L[1]}},[E._v(E._s(L[0]))])])}),0)])])},xl=[],wl=Dt(bl,Sl,xl,!1,null,null,null,null);const Ol=wl.exports,Tl={components:{UiNavbarSubitem:Ll,UiNavbarSubitemReplacing:Ol},data(){return{isLgScreenSize:rn(),show:!1,resizeHandler:()=>{this.$data.isLgScreenSize=rn()}}},mounted(){this.$nextTick(()=>{window.addEventListener("resize",this.$data.resizeHandler)})},beforeDestroy(){window.removeEventListener("resize",this.$data.resizeHandler)}},Cl=null,$l=null;var El=Dt(Tl,Cl,$l,!1,null,null,null,null);const jl=El.exports,Ml={data(){return{isLgScreenSize:rn(),show:!1,resizeHandler:()=>{this.$data.isLgScreenSize=rn()}}},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 Il=function(){var E=this,d=E._self._c;return d("div",{class:[E.wrapperclass,"footer-collapsible"]},[d("span",{staticClass:"text-xl font-alt uppercase tracking-wide text-white footer-collapsible__toggle",class:[E.labelclass,E.show?"footer-collapsible__toggle--open":""],on:{click:E.handleClick}},[E._v(E._s(E.label))]),d("div",{directives:[{name:"show",rawName:"v-show",value:E.show||E.isLgScreenSize,expression:"show || isLgScreenSize"}],class:[E.slotwrapperclass]},[E._t("default")],2)])},Pl=[],Al=Dt(Ml,Il,Pl,!1,null,null,null,null);const Rl=Al.exports,Dl={name:"flipCountdown",props:{deadline:{type:String},stop:{type:Boolean},units:{type:String,default:"days,hours,minutes,seconds"},clockClasses:{type:String,default:"text-6xl"},slotClasses:{type:String,default:"text-3xl"}},data(){const ce=Math.floor(Math.random()*100);return{now:Math.trunc(new Date().getTime()/1e3),date:null,interval:null,diff:0,show:!1,timeData:[{current:0,previous:0,label:"Dn\xED",elementId:"flip-card-days-"+ce,show:this.units.indexOf("days")!==-1},{current:0,previous:0,label:"Hod",elementId:"flip-card-hours-"+ce,show:this.units.indexOf("hours")!==-1},{current:0,previous:0,label:"Min",elementId:"flip-card-minutes-"+ce,show:this.units.indexOf("minutes")!==-1},{current:0,previous:0,label:"Sek",elementId:"flip-card-seconds-"+ce,show:this.units.indexOf("seconds")!==-1}]}},created(){if(!this.deadline)throw new Error("Missing props 'deadline'");const ce=this.deadline;if(this.date=Math.trunc(Date.parse(ce.replace(/-/g,"/"))/1e3),!this.date)throw new Error("Invalid props value, correct the 'deadline'");this.interval=setInterval(()=>{this.now=Math.trunc(new Date().getTime()/1e3)},1e3)},mounted(){this.diff!==0&&(this.show=!0)},watch:{deadline(ce,E){const d=this.deadline;if(this.date=Math.trunc(Date.parse(d.replace(/-/g,"/"))/1e3),!this.date)throw new Error("Invalid props value, correct the 'deadline'")},now(ce){this.diff=this.date-ce,this.diff<=0||this.stop?(this.diff=0,this.updateTime(3,0)):(this.updateTime(0,Math.trunc(this.diff/60/60/24)),this.updateTime(1,Math.trunc(this.diff/60/60)%24),this.updateTime(2,Math.trunc(this.diff/60)%60),this.updateTime(3,Math.trunc(this.diff)%60))}},filters:{twoDigits(ce){return ce.toString().length<=1?"0"+ce.toString():ce.toString()}},methods:{updateTime(ce,E){if(ce>=this.timeData.length||E===void 0)return;const d=()=>{const L=this.timeData[ce],i=E<0?0:E,l=document.querySelector(`#${L.elementId}`);if(i!==L.current&&(L.previous=L.current,L.current=i,l&&(l.classList.remove("flip"),l.offsetWidth,l.classList.add("flip")),ce===0)){const u=l.querySelectorAll("span b");u&&vo(u,h=>{const f=h.classList[0];if(E/1e3>=1){if(!f.includes("-4digits")){const g=f+"-4digits";h.classList.add(g),h.classList.remove(f)}}else if(f.includes("-4digits")){const g=f.replace("-4digits","");h.classList.add(g),h.classList.remove(f)}})}};window.requestAnimationFrame?this.frame=requestAnimationFrame(d):d()}},beforeDestroy(){window.cancelAnimationFrame&&cancelAnimationFrame(this.frame)},destroyed(){clearInterval(interval)}};var _l=function(){var E=this,d=E._self._c;return d("div",{staticClass:"flip-clock"},[E._l(E.timeData,function(L){return[d("span",{directives:[{name:"show",rawName:"v-show",value:L.show,expression:"data.show"}],key:L.label,staticClass:"flip-clock__piece",attrs:{id:L.elementId}},[d("span",{class:["flip-clock__card","flip-card",E.clockClasses]},[d("b",{staticClass:"flip-card__top"},[E._v(E._s(E._f("twoDigits")(L.current)))]),d("b",{staticClass:"flip-card__bottom",attrs:{"data-value":E._f("twoDigits")(L.current)}}),d("b",{staticClass:"flip-card__back",attrs:{"data-value":E._f("twoDigits")(L.previous)}}),d("b",{staticClass:"flip-card__back-bottom",attrs:{"data-value":E._f("twoDigits")(L.previous)}})]),d("span",{class:["flip-clock__slot","font-alt",E.slotClasses]},[E._v(E._s(L.label))])])]})],2)},kl=[],Nl=Dt(Dl,_l,kl,!1,null,null,null,null);const Fl=Nl.exports,Hl={data:()=>({isDown:!1,startX:null,scrollLeft:null}),methods:{mousemove:function(ce){if(!this.isDown)return;ce.preventDefault();const E=this.$refs.slider.getBoundingClientRect().left|null,L=ce.pageX-E-this.startX;this.$refs.slider.scrollLeft=this.scrollLeft-L},mouseleave:function(){this.isDown=!1},mouseup:function(){this.isDown=!1},mousedown:function(ce){this.isDown=!0;const E=this.$refs.slider.getBoundingClientRect().left|null;this.startX=ce.pageX-E,this.scrollLeft=this.$refs.slider.scrollLeft}}};var Vl=function(){var E=this,d=E._self._c;return d("div",{ref:"slider",staticClass:"horizontal-scrolling draggable no-scrollbars",class:{active:E.isDown},on:{mousedown:E.mousedown,mouseleave:E.mouseleave,mouseup:E.mouseup,mousemove:E.mousemove}},[E._t("default")],2)},zl=[],Ul=Dt(Hl,Vl,zl,!1,null,null,null,null);const Bl=Ul.exports,Wl={mounted(){console.log("Mounted generic Vue app in ",this.$el)}},Gl=null,Kl=null;var Yl=Dt(Wl,Gl,Kl,!1,null,null,null,null);const Zl=Yl.exports;zt.component("ui-article-carousel",I9);zt.component("ui-header-carousel",_9);zt.component("ui-calendar-renderer",V9);zt.component("ui-calendar-dummy-provider",K9);zt.component("ui-calendar-google-provider",q9);zt.component("ui-region-map",il);zt.component("ui-twitter-carousel",cl);zt.component("ui-view-provider",pl);zt.component("ui-navbar",jl);zt.component("ui-footer-collapsible",Rl);zt.component("ui-flip-clock",Fl);zt.component("ui-horizontal-scrollable",Bl);const Jl=(ce,E)=>{new zt({el:ce,components:{UiApp:Zl}})};function Xl(ce){return Object.assign({},ce.dataset),Jl(ce)}function Ql(ce){vo(document.querySelectorAll(".__js-root"),Xl)}document.addEventListener("DOMContentLoaded",Ql); diff --git a/main/templates/main/base.html b/main/templates/main/base.html index 7c8564010b64a0342c170fc7bc5e668a3f361be5..bca61594e9e5a9c6c4d474503a309f4b3c3c1a2f 100644 --- a/main/templates/main/base.html +++ b/main/templates/main/base.html @@ -2,6 +2,9 @@ <!doctype html> <html lang="cs"> <head> + {% if request.in_preview_panel %} + <base target="_blank"> + {% endif %} <!-- Meta --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"/> diff --git a/main/templates/main/blocks/article_quote_block.html b/main/templates/main/blocks/article_quote_block.html index fef74e01df5f1f47fd35fe92a45d505ec8719a1d..5f39eb2fe09587d2a83ff0f131759d62878aa72d 100644 --- a/main/templates/main/blocks/article_quote_block.html +++ b/main/templates/main/blocks/article_quote_block.html @@ -6,4 +6,4 @@ <span class="text-3xl head-4xl xl:text-4xl">{{ self.quote }}</span> <span class="font-alt text-turquoise-500 mb-6">– {{ self.autor_name }}</span> </div> -</div> \ No newline at end of file +</div> diff --git a/main/templates/main/feed_item_description.html b/main/templates/main/feed_item_description.html index e01e314b9b46f64db02e3bdfa6d0a98fe84ddfd0..c84b96824e9d5a12180b6b040712cda922a892ef 100644 --- a/main/templates/main/feed_item_description.html +++ b/main/templates/main/feed_item_description.html @@ -1,5 +1,24 @@ {% load wagtailcore_tags %} +<p>{{ item.perex }}</p> + {% for block in item.content %} - {% include_block block %} + {% if block.block_type == "text" %} + {% comment %} + No need to wrap this in a <p>, as the value already does this + {% endcomment %} + {{ block.value }} + {% elif block.block_type == "quote" %} + <blockquote>„{{ block.value.quote }}“</blockquote> + <p>— {{ block.value.autor_name }}</p> + {% elif block.block_type == "download" %} + <p> + Soubor „{{ block.value.file }}“ ke stažení: <a href="{{ block.value.file.url }}">{{ block.value.file.url }}</a> + </p> + {% elif block.block_type == "image" %} + <a href="{{ block.value.href }}"> + <img src="{{ block.value.image.url }}"> + </a> + <p>{{ block.value.text }}</p> + {% endif %} {% endfor %} diff --git a/majak/settings/base.py b/majak/settings/base.py index 8acb40653302d3a6df864a44ca8b6c36e4e0a0ca..7672ef0c0bdcb4917e1d81f462a6360d9b569c06 100644 --- a/majak/settings/base.py +++ b/majak/settings/base.py @@ -71,6 +71,7 @@ INSTALLED_APPS = [ "wagtail.admin", "wagtail.core", "wagtailmetadata", + "wagtail_trash", "modelcluster", "taggit", "django_extensions", diff --git a/majak/settings/test.py b/majak/settings/test.py new file mode 100644 index 0000000000000000000000000000000000000000..c31108db00533b2b0d2a895b68179982b7827e0d --- /dev/null +++ b/majak/settings/test.py @@ -0,0 +1,3 @@ +from .dev import * + +INSTALLED_APPS += ["tests"] diff --git a/pytest.ini b/pytest.ini index d56649df501e8f881900af8bf5833bbbcc64ffa7..581d37570cc6a4b21afee02e80d697882034e1dc 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,3 @@ [pytest] -addopts = --ds=majak.settings.dev -p no:warnings --nomigrations +addopts = --ds=majak.settings.test -p no:warnings --nomigrations python_files = test_*.py diff --git a/regulace_konopi/migrations/0010_alter_regkonhomepage_content_and_more.py b/regulace_konopi/migrations/0010_alter_regkonhomepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..a335589217dc9d83ff44a63a08fb468b2fb8c911 --- /dev/null +++ b/regulace_konopi/migrations/0010_alter_regkonhomepage_content_and_more.py @@ -0,0 +1,364 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("regulace_konopi", "0009_regkonhomepage_title_suffix"), + ] + + operations = [ + migrations.AlterField( + model_name="regkonhomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ("title", wagtail.blocks.CharBlock(icon="title", label="nadpis")), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="text", + ), + ), + ( + "text_centered", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="text-center", + ), + ), + ( + "text_justify", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="text-justify", + ), + ), + ( + "carousel", + wagtail.blocks.ListBlock( + wagtail.images.blocks.ImageChooserBlock(label="obrázek"), + icon="image", + label="carousel", + ), + ), + ( + "carousel_text", + wagtail.blocks.ListBlock( + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ] + ), + icon="paragraph", + label="carousel-text", + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + migrations.AlterField( + model_name="regkonhomepage", + name="top_menu", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="název")), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="stránka", + page_type=[ + "regulace_konopi.RegkonHomePage", + "regulace_konopi.RegkonSubPage", + ], + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="horní menu", + ), + ), + migrations.AlterField( + model_name="regkonsubpage", + name="content", + field=wagtail.fields.StreamField( + [ + ("title", wagtail.blocks.CharBlock(icon="title", label="nadpis")), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="text", + ), + ), + ( + "text_centered", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="text-center", + ), + ), + ( + "text_justify", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="text-justify", + ), + ), + ( + "carousel", + wagtail.blocks.ListBlock( + wagtail.images.blocks.ImageChooserBlock(label="obrázek"), + icon="image", + label="carousel", + ), + ), + ( + "carousel_text", + wagtail.blocks.ListBlock( + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ] + ), + icon="image", + label="carousel-text", + ), + ), + ( + "FAQ", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ("question", wagtail.blocks.TextBlock()), + ("answer", wagtail.blocks.RichTextBlock()), + ], + template="regulace_konopi/blocks/faq.html", + ), + label="faq", + ), + ), + ( + "meps", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="název")), + ( + "mep", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "name", + wagtail.blocks.CharBlock( + label="jméno" + ), + ), + ( + "approved", + wagtail.blocks.ChoiceBlock( + choices=[ + (1, "Pro"), + (0, "Proti"), + (-1, "Nevíme"), + ], + label="hlasoval", + ), + ), + ] + ) + ), + ), + ], + template="regulace_konopi/blocks/party.html", + ), + ), + ( + "text_3_columns", + wagtail.blocks.StreamBlock( + [ + ( + "column", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="column", + ), + ) + ], + icon="doc-full", + max_num=3, + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + ] diff --git a/regulace_konopi/models.py b/regulace_konopi/models.py index 051443b898f4d3a6703622b516eb845824ff2b0e..4cf97fe9d12a59be17057336b8cc74f9eff7eb57 100644 --- a/regulace_konopi/models.py +++ b/regulace_konopi/models.py @@ -105,6 +105,7 @@ class RegkonHomePage(ExtendedMetadataHomePageMixin, MetadataPageMixin, Page): ], verbose_name="obsah stránky", blank=True, + use_json_field=True, ) # settings matomo_id = models.IntegerField( @@ -114,6 +115,7 @@ class RegkonHomePage(ExtendedMetadataHomePageMixin, MetadataPageMixin, Page): [("item", MenuItemBlock())], verbose_name="horní menu", blank=True, + use_json_field=True, ) ### PANELS @@ -211,6 +213,7 @@ class RegkonSubPage(Page, ExtendedMetadataPageMixin, MetadataPageMixin): ], verbose_name="obsah stránky", blank=True, + use_json_field=True, ) ### PANELS diff --git a/regulace_konopi/static/regulace_konopi/vendor/css/bootstrap.min.css b/regulace_konopi/static/regulace_konopi/vendor/css/bootstrap.min.css index 6bcea10adc987683f9d7352b453e79b6f1d65b48..aeede51d5137b45d124f2d04de785ee62d696343 100644 --- a/regulace_konopi/static/regulace_konopi/vendor/css/bootstrap.min.css +++ b/regulace_konopi/static/regulace_konopi/vendor/css/bootstrap.min.css @@ -4,4 +4,3 @@ * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item{display:-ms-flexbox;display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} -/*# sourceMappingURL=bootstrap.min.css.map */ diff --git a/requirements/base.in b/requirements/base.in index a5efaec929a35501a9c0701231e153784290e7f7..0cd088a7fe2c0e5a0ed83397828e20fac0a2532f 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1,5 +1,6 @@ wagtail wagtail-metadata +wagtail-trash django-environ django-extensions django-redis diff --git a/requirements/base.txt b/requirements/base.txt index ca34b60d0bdd85ca611ed9e321b849bb99044575..e07195ba9e7ee5b4ddebb48e2b56fb8a294ecf93 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,39 +4,39 @@ # # pip-compile base.in # ---extra-index-url https://pip:glpat-KpSQYD89Uw-zz3VJTMmT@gitlab.com/api/v4/groups/6879633/-/packages/pypi/simple - amqp==5.1.1 # via kombu anyascii==0.3.1 # via wagtail -arrow==1.2.2 +appnope==0.1.3 + # via ipython +arrow==1.2.3 # via # -r base.in # ics -asgiref==3.5.2 +asgiref==3.6.0 # via django -asttokens==2.0.5 +asttokens==2.2.1 # via stack-data async-timeout==4.0.2 # via redis -attrs==22.1.0 +attrs==22.2.0 # via ics backcall==0.2.0 # via ipython -beautifulsoup4==4.9.3 +beautifulsoup4==4.11.1 # via # -r base.in # wagtail billiard==3.6.4.0 # via celery -bleach==5.0.1 +bleach==6.0.0 # via -r base.in brotli==1.0.9 # via fonttools celery==5.2.7 # via -r base.in -certifi==2022.6.15 +certifi==2022.12.7 # via # requests # sentry-sdk @@ -44,7 +44,7 @@ cffi==1.15.1 # via # cryptography # weasyprint -charset-normalizer==2.1.0 +charset-normalizer==3.0.1 # via requests click==8.1.3 # via @@ -58,20 +58,18 @@ click-plugins==1.1.1 # via celery click-repl==0.2.0 # via celery -cryptography==37.0.4 +cryptography==39.0.0 # via # josepy # mozilla-django-oidc # pyopenssl -cssselect2==0.6.0 +cssselect2==0.7.0 # via weasyprint datetime==4.3 # via icalevnt decorator==5.1.1 # via ipython -deprecated==1.2.13 - # via redis -django==4.0.7 +django==4.1.5 # via # django-extensions # django-filter @@ -88,9 +86,9 @@ django==4.0.7 # wagtail django-environ==0.9.0 # via -r base.in -django-extensions==3.2.0 +django-extensions==3.2.1 # via -r base.in -django-filter==21.1 +django-filter==22.1 # via wagtail django-modelcluster==6.0 # via wagtail @@ -104,23 +102,23 @@ django-settings-export==1.2.1 # via -r base.in django-simple-captcha==0.5.17 # via -r base.in -django-taggit==2.1.0 +django-taggit==3.1.0 # via wagtail -django-treebeard==4.5.1 +django-treebeard==4.6.0 # via wagtail django-widget-tweaks==1.4.12 # via -r base.in -djangorestframework==3.13.1 +djangorestframework==3.14.0 # via wagtail draftjs-exporter==2.1.7 # via wagtail et-xmlfile==1.1.0 # via openpyxl -executing==0.9.1 +executing==1.2.0 # via stack-data -fastjsonschema==2.16.1 +fastjsonschema==2.16.2 # via -r base.in -fonttools[woff]==4.34.4 +fonttools[woff]==4.38.0 # via weasyprint html5lib==1.1 # via @@ -134,11 +132,11 @@ icalevnt==0.1.26 # via -r base.in ics==0.7.2 # via -r base.in -idna==3.3 +idna==3.4 # via requests -ipython==8.4.0 +ipython==8.9.0 # via -r base.in -jedi==0.18.1 +jedi==0.18.2 # via ipython josepy==1.13.0 # via mozilla-django-oidc @@ -148,40 +146,38 @@ l18n==2021.3 # via wagtail markdown==3.4.1 # via -r base.in -matplotlib-inline==0.1.3 +matplotlib-inline==0.1.6 # via ipython mozilla-django-oidc==2.0.0 # via pirates -numpy==1.23.1 +numpy==1.24.1 # via opencv-python -oauthlib==3.2.0 +oauthlib==3.2.2 # via # requests-oauthlib # tweepy -opencv-python==4.6.0.66 +opencv-python==4.7.0.68 # via -r base.in openpyxl==3.0.10 - # via tablib -packaging==21.3 - # via redis + # via wagtail parso==0.8.3 # via jedi pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython -pillow==9.2.0 +pillow==9.4.0 # via # django-simple-captcha # wagtail # weasyprint pirates==0.6.0 # via -r base.in -prompt-toolkit==3.0.30 +prompt-toolkit==3.0.36 # via # click-repl # ipython -psycopg2-binary==2.9.3 +psycopg2-binary==2.9.5 # via -r base.in ptyprocess==0.7.0 # via pexpect @@ -189,19 +185,17 @@ pure-eval==0.2.2 # via stack-data pycparser==2.21 # via cffi -pydyf==0.2.0 +pydyf==0.5.0 # via weasyprint -pygments==2.12.0 +pygments==2.14.0 # via ipython -pyopenssl==22.0.0 +pyopenssl==23.0.0 # via josepy pyparsing==2.4.7 - # via - # httplib2 - # packaging -pypdf2==2.9.0 + # via httplib2 +pypdf2==3.0.1 # via -r base.in -pyphen==0.12.0 +pyphen==0.13.2 # via weasyprint python-dateutil==2.8.2 # via @@ -220,9 +214,9 @@ pytz==2021.3 # l18n pyyaml==6.0 # via -r base.in -redis==4.3.4 +redis==4.4.2 # via django-redis -requests==2.28.1 +requests==2.28.2 # via # -r base.in # mozilla-django-oidc @@ -231,7 +225,7 @@ requests==2.28.1 # wagtail requests-oauthlib==1.3.1 # via tweepy -sentry-sdk==1.9.2 +sentry-sdk==1.14.0 # via -r base.in six==1.16.0 # via @@ -244,27 +238,25 @@ six==1.16.0 # python-dateutil soupsieve==2.3.2.post1 # via beautifulsoup4 -sqlparse==0.4.2 +sqlparse==0.4.3 # via django -stack-data==0.3.0 +stack-data==0.6.2 # via ipython -tablib[xls,xlsx]==3.2.1 - # via wagtail tatsu==5.8.3 # via ics -telepath==0.2 +telepath==0.3 # via wagtail -tinycss2==1.1.1 +tinycss2==1.2.1 # via # cssselect2 # weasyprint -traitlets==5.3.0 +traitlets==5.9.0 # via # ipython # matplotlib-inline -tweepy==4.10.0 +tweepy==4.12.1 # via -r base.in -urllib3==1.26.11 +urllib3==1.26.14 # via # requests # sentry-sdk @@ -273,15 +265,18 @@ vine==5.0.0 # amqp # celery # kombu -wagtail==3.0.1 +wagtail==4.1.1 # via # -r base.in # wagtail-metadata -wagtail-metadata==4.0.0 + # wagtail-trash +wagtail-metadata==4.0.2 # via -r base.in -wcwidth==0.2.5 +wagtail-trash==0.3.0 + # via -r base.in +wcwidth==0.2.6 # via prompt-toolkit -weasyprint==56.1 +weasyprint==57.2 # via -r base.in webencodings==0.5.1 # via @@ -289,21 +284,13 @@ webencodings==0.5.1 # cssselect2 # html5lib # tinycss2 -whitenoise==6.2.0 +whitenoise==6.3.0 # via -r base.in willow==1.4.1 # via wagtail -wrapt==1.14.1 - # via deprecated -xlrd==2.0.1 - # via tablib -xlsxwriter==3.0.3 - # via wagtail -xlwt==1.3.0 - # via tablib -zope-interface==5.4.0 +zope-interface==5.5.2 # via datetime -zopfli==0.2.1 +zopfli==0.2.2 # via fonttools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/dev.in b/requirements/dev.in index 83164f754d05a7af4df45b41a3b0dfee8841f508..0cc5912dfdbe9cdc70567d4ac410670a9628a313 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -1,4 +1,4 @@ -django<4.1 +django django-debug-toolbar pytest pytest-sugar diff --git a/requirements/dev.txt b/requirements/dev.txt index 7657c841e40c244f2a8d1c81b04c412cede36d8e..7449b3249d08665b05f6e1f8fc0fdfefeafe045d 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,41 +4,39 @@ # # pip-compile dev.in # -asgiref==3.5.2 +asgiref==3.6.0 # via django -attrs==22.1.0 +attrs==22.2.0 # via pytest -coverage[toml]==6.4.2 +coverage[toml]==7.1.0 # via pytest-cov -django==4.0.7 +django==4.1.5 # via # -r dev.in # django-debug-toolbar -django-debug-toolbar==3.5.0 +django-debug-toolbar==3.8.1 # via -r dev.in +exceptiongroup==1.1.0 + # via pytest factory-boy==3.2.1 # via pytest-factoryboy -faker==13.15.1 +faker==16.6.1 # via factory-boy fastdiff==0.3.0 # via snapshottest -freezegun==1.2.1 +freezegun==1.2.2 # via pytest-freezegun inflection==0.5.1 # via pytest-factoryboy -iniconfig==1.1.1 +iniconfig==2.0.0 # via pytest -packaging==21.3 +packaging==23.0 # via # pytest # pytest-sugar pluggy==1.0.0 # via pytest -py==1.11.0 - # via pytest -pyparsing==2.4.7 - # via packaging -pytest==7.1.2 +pytest==7.2.1 # via # -r dev.in # pytest-cov @@ -47,17 +45,17 @@ pytest==7.1.2 # pytest-freezegun # pytest-mock # pytest-sugar -pytest-cov==3.0.0 +pytest-cov==4.0.0 # via -r dev.in pytest-django==4.5.2 # via -r dev.in -pytest-factoryboy==2.5.0 +pytest-factoryboy==2.5.1 # via -r dev.in pytest-freezegun==0.4.2 # via -r dev.in -pytest-mock==3.8.2 +pytest-mock==3.10.0 # via -r dev.in -pytest-sugar==0.9.5 +pytest-sugar==0.9.6 # via -r dev.in python-dateutil==2.8.2 # via @@ -69,11 +67,11 @@ six==1.16.0 # snapshottest snapshottest==0.6.0 # via -r dev.in -sqlparse==0.4.2 +sqlparse==0.4.3 # via # django # django-debug-toolbar -termcolor==1.1.0 +termcolor==2.2.0 # via # pytest-sugar # snapshottest @@ -81,7 +79,7 @@ tomli==2.0.1 # via # coverage # pytest -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via pytest-factoryboy wasmer==1.1.0 # via fastdiff diff --git a/senat_campaign/migrations/0010_alter_senatcampaignhomepage_about_gallery_and_more.py b/senat_campaign/migrations/0010_alter_senatcampaignhomepage_about_gallery_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..44b8d6a8721fd60323d8283b71a891a066898aa0 --- /dev/null +++ b/senat_campaign/migrations/0010_alter_senatcampaignhomepage_about_gallery_and_more.py @@ -0,0 +1,151 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +import wagtail.blocks +import wagtail.documents.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("senat_campaign", "0009_senatcampaignhomepage_donations_url"), + ] + + operations = [ + migrations.AlterField( + model_name="senatcampaignhomepage", + name="about_gallery", + field=wagtail.fields.StreamField( + [("photo", wagtail.images.blocks.ImageChooserBlock(label="fotka"))], + blank=True, + use_json_field=True, + verbose_name="kdo jsem - galerie", + ), + ), + migrations.AlterField( + model_name="senatcampaignhomepage", + name="contacts", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="jméno")), + ( + "job", + wagtail.blocks.CharBlock( + label="pozice", required=False + ), + ), + ( + "phone", + wagtail.blocks.CharBlock( + label="telefon", required=False + ), + ), + ( + "email", + wagtail.blocks.EmailBlock( + label="email", required=False + ), + ), + ( + "photo", + wagtail.images.blocks.ImageChooserBlock( + label="fotka" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="kontaktní osoby", + ), + ), + migrations.AlterField( + model_name="senatcampaignhomepage", + name="financials", + field=wagtail.fields.StreamField( + [ + ( + "link", + wagtail.blocks.StructBlock( + [ + ("label", wagtail.blocks.CharBlock(label="název")), + ("url", wagtail.blocks.URLBlock(label="odkaz")), + ], + label="odkaz", + ), + ), + ( + "document", + wagtail.blocks.StructBlock( + [ + ("label", wagtail.blocks.CharBlock(label="název")), + ( + "doc", + wagtail.documents.blocks.DocumentChooserBlock( + label="dokument" + ), + ), + ], + label="dokument", + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="transparentní financování", + ), + ), + migrations.AlterField( + model_name="senatcampaignprogrampage", + name="committee_preference", + field=wagtail.fields.StreamField( + [("committee", wagtail.blocks.CharBlock(label="výbor či komise"))], + blank=True, + use_json_field=True, + verbose_name="preferované výbory a komise", + ), + ), + migrations.AlterField( + model_name="senatcampaignprogrampage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="titulek")), + ( + "perex", + wagtail.blocks.TextBlock( + label="perex na úvodní stránku" + ), + ), + ( + "body", + wagtail.blocks.RichTextBlock(label="text bodu"), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="ilustrační obrázek" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="programové body", + ), + ), + ] diff --git a/senat_campaign/models.py b/senat_campaign/models.py index bc9f243b74b455cc264898792766938990e450e3..25df95d255f1ae151a641e80b9fb3776224d0cb5 100644 --- a/senat_campaign/models.py +++ b/senat_campaign/models.py @@ -71,6 +71,7 @@ class SenatCampaignHomePage( [("photo", ImageChooserBlock(label="fotka"))], verbose_name="kdo jsem - galerie", blank=True, + use_json_field=True, ) # financials financials = StreamField( @@ -98,6 +99,7 @@ class SenatCampaignHomePage( ], verbose_name="transparentní financování", blank=True, + use_json_field=True, ) # settings first_name = models.CharField("jméno", max_length=250) @@ -114,7 +116,10 @@ class SenatCampaignHomePage( twitter = models.URLField("Twitter URL", blank=True, null=True) linkedin = models.URLField("LinkedIn URL", blank=True, null=True) contacts = StreamField( - [("item", ContactBlock())], verbose_name="kontaktní osoby", blank=True + [("item", ContactBlock())], + verbose_name="kontaktní osoby", + blank=True, + use_json_field=True, ) matomo_id = models.IntegerField( "Matomo ID pro sledování návštěvnosti", blank=True, null=True @@ -142,8 +147,8 @@ class SenatCampaignHomePage( ), MultiFieldPanel( [ - FieldPanel("about_left", classname="full"), - FieldPanel("about_right", classname="full"), + FieldPanel("about_left"), + FieldPanel("about_right"), FieldPanel("about_gallery"), ], heading="kdo jsem", @@ -358,7 +363,7 @@ class SenatCampaignNewsPage( content_panels = Page.content_panels + [ FieldPanel("date"), FieldPanel("perex"), - FieldPanel("body", classname="full"), + FieldPanel("body"), FieldPanel("photo"), ] @@ -442,9 +447,13 @@ class SenatCampaignProgramPage( [("committee", blocks.CharBlock(label="výbor či komise"))], verbose_name="preferované výbory a komise", blank=True, + use_json_field=True, ) content = StreamField( - [("item", ProgramBlock())], verbose_name="programové body", blank=True + [("item", ProgramBlock())], + verbose_name="programové body", + blank=True, + use_json_field=True, ) ### PANELS @@ -495,7 +504,7 @@ class SenatCampaignCookiesPage( ### PANELS content_panels = Page.content_panels + [ - FieldPanel("body", classname="full"), + FieldPanel("body"), ] promote_panels = [ diff --git a/senate/migrations/0005_alter_senatehomepage_candidates_and_more.py b/senate/migrations/0005_alter_senatehomepage_candidates_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..f1531caa792137895b045dd1e4e8faf46a252137 --- /dev/null +++ b/senate/migrations/0005_alter_senatehomepage_candidates_and_more.py @@ -0,0 +1,160 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("senate", "0004_senatehomepage_candidates_second_round"), + ] + + operations = [ + migrations.AlterField( + model_name="senatehomepage", + name="candidates", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="jméno")), + ("district", wagtail.blocks.CharBlock(label="obvod")), + ( + "info", + wagtail.blocks.CharBlock(label="info o nominaci"), + ), + ( + "phone", + wagtail.blocks.CharBlock( + label="telefon", required=False + ), + ), + ( + "email", + wagtail.blocks.EmailBlock( + label="email", required=False + ), + ), + ( + "web", + wagtail.blocks.URLBlock( + label="web", required=False + ), + ), + ( + "photo", + wagtail.images.blocks.ImageChooserBlock( + label="fotka" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="kandidáti", + ), + ), + migrations.AlterField( + model_name="senatehomepage", + name="candidates_second_round", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="jméno")), + ("district", wagtail.blocks.CharBlock(label="obvod")), + ( + "info", + wagtail.blocks.CharBlock(label="info o nominaci"), + ), + ( + "phone", + wagtail.blocks.CharBlock( + label="telefon", required=False + ), + ), + ( + "email", + wagtail.blocks.EmailBlock( + label="email", required=False + ), + ), + ( + "web", + wagtail.blocks.URLBlock( + label="web", required=False + ), + ), + ( + "photo", + wagtail.images.blocks.ImageChooserBlock( + label="fotka" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="kandidáti do 2. kola", + ), + ), + migrations.AlterField( + model_name="senatehomepage", + name="senators", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="jméno")), + ("district", wagtail.blocks.CharBlock(label="obvod")), + ( + "info", + wagtail.blocks.CharBlock(label="info o nominaci"), + ), + ( + "phone", + wagtail.blocks.CharBlock( + label="telefon", required=False + ), + ), + ( + "email", + wagtail.blocks.EmailBlock( + label="email", required=False + ), + ), + ( + "web", + wagtail.blocks.URLBlock( + label="web", required=False + ), + ), + ( + "photo", + wagtail.images.blocks.ImageChooserBlock( + label="fotka" + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="naši senátoři", + ), + ), + ] diff --git a/senate/models.py b/senate/models.py index 7b23e2e35271f3a6638e829b344d37e80cb686ec..3b34cf354761db6954c2e2a08240984c88e75b5a 100644 --- a/senate/models.py +++ b/senate/models.py @@ -34,13 +34,22 @@ class SenateHomePage(MetadataPageMixin, Page): ### FIELDS senators = StreamField( - [("item", PersonBlock())], verbose_name="naši senátoři", blank=True + [("item", PersonBlock())], + verbose_name="naši senátoři", + blank=True, + use_json_field=True, ) candidates = StreamField( - [("item", PersonBlock())], verbose_name="kandidáti", blank=True + [("item", PersonBlock())], + verbose_name="kandidáti", + blank=True, + use_json_field=True, ) candidates_second_round = StreamField( - [("item", PersonBlock())], verbose_name="kandidáti do 2. kola", blank=True + [("item", PersonBlock())], + verbose_name="kandidáti do 2. kola", + blank=True, + use_json_field=True, ) matomo_id = models.IntegerField( "Matomo ID pro sledování návštěvnosti", blank=True, null=True diff --git a/senate/static/senate/assets/css/styles.css b/senate/static/senate/assets/css/styles.css index ce1921ed86349729ca5a9b0b8731986aca015630..9e2bbe76b772c3035f0aa8da45bbfdc2200d2124 100644 --- a/senate/static/senate/assets/css/styles.css +++ b/senate/static/senate/assets/css/styles.css @@ -4719,5 +4719,3 @@ footer .footer-profile { .contact .city-districts .city-dist-card .text-part .cdc-row a.fb { margin-left: 0px; margin-top: 8px; } } - -/*# sourceMappingURL=styles.css.map */ diff --git a/senate/templates/senate/base.html b/senate/templates/senate/base.html index f2a3b710cf8c174cabd7b917e684a99af2f32de8..bcbab5841b7526968383e3cdee6b13698747eb1a 100644 --- a/senate/templates/senate/base.html +++ b/senate/templates/senate/base.html @@ -2,6 +2,9 @@ <!doctype html> <html lang="cs"> <head> + {% if request.in_preview_panel %} + <base target="_blank"> + {% endif %} <meta charset="utf-8"> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0, shrink-to-fit=no"> {% meta_tags %} diff --git a/shared/models.py b/shared/models.py index db1ff4ab21f91869ff4cc08f444a88712a6993db..45103c595941abee9db137962540a1716e164e82 100644 --- a/shared/models.py +++ b/shared/models.py @@ -41,6 +41,7 @@ class ArticleMixin(models.Model): DEFAULT_CONTENT_BLOCKS, verbose_name="Článek", blank=True, + use_json_field=True, ) date = models.DateField("datum", default=timezone.now) perex = models.TextField("perex") @@ -96,6 +97,7 @@ class MenuMixin(Page): [("menu_item", MenuItemBlock()), ("menu_parent", MenuParentBlock())], verbose_name="Menu", blank=True, + use_json_field=True, ) menu_panels = [ diff --git a/shared/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css.map b/shared/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css.map new file mode 100644 index 0000000000000000000000000000000000000000..2e8a143cd29487e699f50060778f033e4634e630 --- /dev/null +++ b/shared/static/shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"AAAA;;;;;ACCA,MAGI,OAAA,QAAA,SAAA,QAAA,SAAA,QAAA,OAAA,QAAA,MAAA,QAAA,SAAA,QAAA,SAAA,QAAA,QAAA,QAAA,OAAA,QAAA,OAAA,QAAA,QAAA,KAAA,OAAA,QAAA,YAAA,QAIA,UAAA,QAAA,YAAA,QAAA,UAAA,QAAA,OAAA,QAAA,UAAA,QAAA,SAAA,QAAA,QAAA,QAAA,OAAA,QAIA,gBAAA,EAAA,gBAAA,MAAA,gBAAA,MAAA,gBAAA,MAAA,gBAAA,OAKF,yBAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,wBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UCAF,ECqBA,QADA,SDjBE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,4BAAA,YAMF,QAAA,MAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAUF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBEgFI,UAAA,KF9EJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KGYF,0CHCE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KChBF,0BD2BA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EACA,iCAAA,KAAA,yBAAA,KAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QCrBF,GDwBA,GCzBA,GD4BE,WAAA,EACA,cAAA,KAGF,MCxBA,MACA,MAFA,MD6BE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,ECzBA,OD2BE,YAAA,OAGF,MExFI,UAAA,IFiGJ,IC9BA,IDgCE,SAAA,SEnGE,UAAA,IFqGF,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YIhLA,QJmLE,MAAA,QACA,gBAAA,UASJ,cACE,MAAA,QACA,gBAAA,KI/LA,oBJkME,MAAA,QACA,gBAAA,KC/BJ,KACA,IDuCA,ICtCA,KD0CE,YAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UEpJE,UAAA,IFwJJ,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,IAGE,SAAA,OACA,eAAA,OAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OAEE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC1EF,OD6EA,MC3EA,SADA,OAEA,SD+EE,OAAA,EACA,YAAA,QErPE,UAAA,QFuPF,YAAA,QAGF,OC7EA,MD+EE,SAAA,QAGF,OC7EA,OD+EE,eAAA,KAMF,OACE,UAAA,OC7EF,cACA,aACA,cDkFA,OAIE,mBAAA,OCjFF,6BACA,4BACA,6BDoFE,sBAKI,OAAA,QCpFN,gCACA,+BACA,gCDwFA,yBAIE,QAAA,EACA,aAAA,KCvFF,qBD0FA,kBAEE,WAAA,WACA,QAAA,EAIF,iBC1FA,2BACA,kBAFA,iBDoGE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MEjSI,UAAA,OFmSJ,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SGzGF,yCFGA,yCD4GE,OAAA,KG1GF,cHkHE,eAAA,KACA,mBAAA,KG9GF,yCHsHE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UACA,OAAA,QAGF,SACE,QAAA,KG3HF,SHiIE,QAAA,eC1HF,IAAK,IAAK,IAAK,IAAK,IAAK,IIhWzB,GAAA,GAAA,GAAA,GAAA,GAAA,GAEE,cAAA,MAEA,YAAA,IACA,YAAA,IAIF,IAAA,GHgHM,UAAA,OG/GN,IAAA,GH+GM,UAAA,KG9GN,IAAA,GH8GM,UAAA,QG7GN,IAAA,GH6GM,UAAA,OG5GN,IAAA,GH4GM,UAAA,QG3GN,IAAA,GH2GM,UAAA,KGzGN,MHyGM,UAAA,QGvGJ,YAAA,IAIF,WHmGM,UAAA,KGjGJ,YAAA,IACA,YAAA,IAEF,WH8FM,UAAA,OG5FJ,YAAA,IACA,YAAA,IAEF,WHyFM,UAAA,OGvFJ,YAAA,IACA,YAAA,IAEF,WHoFM,UAAA,OGlFJ,YAAA,IACA,YAAA,IL6BF,GKpBE,WAAA,KACA,cAAA,KACA,OAAA,EACA,WAAA,IAAA,MAAA,eJ+WF,OIvWA,MHMI,UAAA,IGHF,YAAA,IJ0WF,MIvWA,KAEE,QAAA,KACA,iBAAA,QAQF,eC/EE,aAAA,EACA,WAAA,KDmFF,aCpFE,aAAA,EACA,WAAA,KDsFF,kBACE,QAAA,aADF,mCAII,aAAA,MAUJ,YHjCI,UAAA,IGmCF,eAAA,UAIF,YACE,cAAA,KHeI,UAAA,QGXN,mBACE,QAAA,MH7CE,UAAA,IG+CF,MAAA,QAHF,2BAMI,QAAA,aEnHJ,WCIE,UAAA,KAGA,OAAA,KDDF,eACE,QAAA,OACA,iBAAA,KACA,OAAA,IAAA,MAAA,QEXE,cAAA,ODMF,UAAA,KAGA,OAAA,KDcF,QAEE,QAAA,aAGF,YACE,cAAA,MACA,YAAA,EAGF,gBLkCI,UAAA,IKhCF,MAAA,QGvCF,KRuEI,UAAA,MQrEF,MAAA,QACA,UAAA,WAGA,OACE,MAAA,QAKJ,IACE,QAAA,MAAA,MR0DE,UAAA,MQxDF,MAAA,KACA,iBAAA,QDZE,cAAA,MCQJ,QASI,QAAA,ERkDA,UAAA,KQhDA,YAAA,IVwMJ,IUjME,QAAA,MRyCE,UAAA,MQvCF,MAAA,QAHF,SR0CI,UAAA,QQlCA,MAAA,QACA,WAAA,OAKJ,gBACE,WAAA,MACA,WAAA,OCxCA,WCDA,MAAA,KACA,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KCmDE,yBFtDF,WCWI,UAAA,OC2CF,yBFtDF,WCWI,UAAA,OC2CF,yBFtDF,WCWI,UAAA,OC2CF,0BFtDF,WCWI,UAAA,QDLJ,iBAAA,cAAA,cAAA,cAAA,cCPA,MAAA,KACA,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KCmDE,yBFrCE,WAAA,cACE,UAAA,OEoCJ,yBFrCE,WAAA,cAAA,cACE,UAAA,OEoCJ,yBFrCE,WAAA,cAAA,cAAA,cACE,UAAA,OEoCJ,0BFrCE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QAoBN,KCrBA,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,aAAA,MACA,YAAA,MDwBA,YACE,aAAA,EACA,YAAA,EAFF,iBV4jBF,0BUtjBM,cAAA,EACA,aAAA,EGlDJ,KAAA,OAAA,QAAA,QAAA,QAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,Ob6mBF,UAEqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aAFqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aAFkJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,aAEqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aahnBI,SAAA,SACA,MAAA,KACA,cAAA,KACA,aAAA,KAmBE,KACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,cF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,cF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,cF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,cF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,cF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,cF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,UFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,OFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,QFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,QFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,QFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,aAAwB,eAAA,GAAA,MAAA,GAExB,YAAuB,eAAA,GAAA,MAAA,GAGrB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,UAAwB,eAAA,GAAA,MAAA,GAAxB,UAAwB,eAAA,GAAA,MAAA,GAAxB,UAAwB,eAAA,GAAA,MAAA,GAMtB,UFRR,YAAA,UEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,IEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,IEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,IEQQ,WFRR,YAAA,WEQQ,WFRR,YAAA,WCKE,yBC9BE,QACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,iBF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,aFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,UFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,gBAAwB,eAAA,GAAA,MAAA,GAExB,eAAuB,eAAA,GAAA,MAAA,GAGrB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAMtB,aFRR,YAAA,EEQQ,aFRR,YAAA,UEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,cFRR,YAAA,WEQQ,cFRR,YAAA,YCKE,yBC9BE,QACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,iBF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,aFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,UFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,gBAAwB,eAAA,GAAA,MAAA,GAExB,eAAuB,eAAA,GAAA,MAAA,GAGrB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAMtB,aFRR,YAAA,EEQQ,aFRR,YAAA,UEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,cFRR,YAAA,WEQQ,cFRR,YAAA,YCKE,yBC9BE,QACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,iBF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,aFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,UFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,gBAAwB,eAAA,GAAA,MAAA,GAExB,eAAuB,eAAA,GAAA,MAAA,GAGrB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAMtB,aFRR,YAAA,EEQQ,aFRR,YAAA,UEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,cFRR,YAAA,WEQQ,cFRR,YAAA,YCKE,0BC9BE,QACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,iBF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,aFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,UFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,gBAAwB,eAAA,GAAA,MAAA,GAExB,eAAuB,eAAA,GAAA,MAAA,GAGrB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAMtB,aFRR,YAAA,EEQQ,aFRR,YAAA,UEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,cFRR,YAAA,WEQQ,cFRR,YAAA,YGnDF,OACE,MAAA,KACA,cAAA,KACA,MAAA,QdypDF,Uc5pDA,UAQI,QAAA,OACA,eAAA,IACA,WAAA,IAAA,MAAA,QAVJ,gBAcI,eAAA,OACA,cAAA,IAAA,MAAA,QAfJ,mBAmBI,WAAA,IAAA,MAAA,QdypDJ,achpDA,aAGI,QAAA,MASJ,gBACE,OAAA,IAAA,MAAA,Qd4oDF,mBc7oDA,mBAKI,OAAA,IAAA,MAAA,Qd6oDJ,yBclpDA,yBAWM,oBAAA,Id8oDN,8BAFA,qBcvoDA,qBdwoDA,2BcnoDI,OAAA,EAQJ,yCAEI,iBAAA,gBX/DF,4BW2EI,MAAA,QACA,iBAAA,iBCnFJ,ef+sDF,kBADA,kBe1sDM,iBAAA,QfktDN,2BAFA,kBeptDE,kBfqtDF,wBezsDQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCf4sDF,qCensDU,iBAAA,QA5BR,iBfquDF,oBADA,oBehuDM,iBAAA,QfwuDN,6BAFA,oBe1uDE,oBf2uDF,0Be/tDQ,aAAA,QZLN,oCYiBM,iBAAA,QALN,uCfkuDF,uCeztDU,iBAAA,QA5BR,ef2vDF,kBADA,kBetvDM,iBAAA,Qf8vDN,2BAFA,kBehwDE,kBfiwDF,wBervDQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCfwvDF,qCe/uDU,iBAAA,QA5BR,YfixDF,eADA,ee5wDM,iBAAA,QfoxDN,wBAFA,eetxDE,efuxDF,qBe3wDQ,aAAA,QZLN,+BYiBM,iBAAA,QALN,kCf8wDF,kCerwDU,iBAAA,QA5BR,efuyDF,kBADA,kBelyDM,iBAAA,Qf0yDN,2BAFA,kBe5yDE,kBf6yDF,wBejyDQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCfoyDF,qCe3xDU,iBAAA,QA5BR,cf6zDF,iBADA,iBexzDM,iBAAA,Qfg0DN,0BAFA,iBel0DE,iBfm0DF,uBevzDQ,aAAA,QZLN,iCYiBM,iBAAA,QALN,oCf0zDF,oCejzDU,iBAAA,QA5BR,afm1DF,gBADA,gBe90DM,iBAAA,Qfs1DN,yBAFA,gBex1DE,gBfy1DF,sBe70DQ,aAAA,QZLN,gCYiBM,iBAAA,QALN,mCfg1DF,mCev0DU,iBAAA,QA5BR,Yfy2DF,eADA,eep2DM,iBAAA,Qf42DN,wBAFA,ee92DE,ef+2DF,qBen2DQ,aAAA,QZLN,+BYiBM,iBAAA,QALN,kCfs2DF,kCe71DU,iBAAA,QA5BR,cf+3DF,iBADA,iBe13DM,iBAAA,iBZGJ,iCYiBM,iBAAA,iBALN,oCfq3DF,oCe52DU,iBAAA,iBD8EV,sBAGM,MAAA,KACA,iBAAA,QACA,aAAA,QALN,uBAWM,MAAA,QACA,iBAAA,QACA,aAAA,QAKN,YACE,MAAA,KACA,iBAAA,QdgyDF,eclyDA,edmyDA,qBc5xDI,aAAA,QAPJ,2BAWI,OAAA,EAXJ,oDAgBM,iBAAA,sBXrIJ,uCW4IM,MAAA,KACA,iBAAA,uBFhFJ,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,6BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GAdV,kBAOQ,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MAVR,kCAcU,OAAA,EE7KV,cACE,QAAA,MACA,MAAA,KACA,OAAA,2BACA,QAAA,QAAA,OfqHI,UAAA,KelHJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,QRbE,cAAA,OSCE,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCDLJ,cCMM,WAAA,MDNN,0BAsBI,iBAAA,YACA,OAAA,EAvBJ,6BA4BI,MAAA,YACA,YAAA,EAAA,EAAA,EAAA,QEtBF,oBACE,MAAA,QACA,iBAAA,KACA,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBFhBN,yCAqCI,MAAA,QAEA,QAAA,EAvCJ,gCAqCI,MAAA,QAEA,QAAA,EAvCJ,oCAqCI,MAAA,QAEA,QAAA,EAvCJ,qCAqCI,MAAA,QAEA,QAAA,EAvCJ,2BAqCI,MAAA,QAEA,QAAA,EAvCJ,uBAAA,wBAiDI,iBAAA,QAEA,QAAA,EAIJ,qCAOI,MAAA,QACA,iBAAA,KAKJ,mBhBk/DA,oBgBh/DE,QAAA,MACA,MAAA,KAUF,gBACE,YAAA,oBACA,eAAA,oBACA,cAAA,EflBE,UAAA,QeoBF,YAAA,IAGF,mBACE,YAAA,kBACA,eAAA,kBf8BI,UAAA,Qe5BJ,YAAA,IAGF,mBACE,YAAA,mBACA,eAAA,mBfuBI,UAAA,QerBJ,YAAA,IASF,wBACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,EACA,cAAA,EfQI,UAAA,KeNJ,YAAA,IACA,MAAA,QACA,iBAAA,YACA,OAAA,MAAA,YACA,aAAA,IAAA,EAVF,wCAAA,wCAcI,cAAA,EACA,aAAA,EAYJ,iBACE,OAAA,0BACA,QAAA,OAAA,MfjBI,UAAA,QemBJ,YAAA,IR7IE,cAAA,MQiJJ,iBACE,OAAA,yBACA,QAAA,MAAA,KfzBI,UAAA,Qe2BJ,YAAA,IRrJE,cAAA,MQ0JJ,8BAAA,0BAGI,OAAA,KAIJ,sBACE,OAAA,KAQF,YACE,cAAA,KAGF,WACE,QAAA,MACA,WAAA,OAQF,UACE,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,aAAA,KACA,YAAA,KAJF,ehBu9DA,wBgB/8DI,cAAA,IACA,aAAA,IASJ,YACE,SAAA,SACA,QAAA,MACA,aAAA,QAGF,kBACE,SAAA,SACA,WAAA,MACA,YAAA,ShB88DF,6CgBj9DA,8CAQI,MAAA,QAIJ,kBACE,cAAA,EAGF,mBACE,QAAA,mBAAA,QAAA,YACA,eAAA,OAAA,YAAA,OACA,aAAA,EACA,aAAA,OAJF,qCAQI,SAAA,OACA,WAAA,EACA,aAAA,SACA,YAAA,EEpMF,gBACE,QAAA,KACA,MAAA,KACA,WAAA,OjByBA,UAAA,IiBvBA,MAAA,QAGF,eACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MjBoEE,UAAA,QiBlEF,YAAA,IACA,MAAA,KACA,iBAAA,mBV1DA,cAAA,ORktEJ,0BACA,yBkBxrEI,sClBsrEJ,qCkBhpEM,QAAA,MAtCF,uBAAA,mCA4CE,aAAA,QAGE,cAAA,qBACA,iBAAA,gQACA,kBAAA,UACA,oBAAA,MAAA,wBAAA,OACA,gBAAA,sBAAA,sBAnDJ,6BAAA,yCAuDI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAxDJ,2CAAA,+BAiEI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBAlEJ,wBAAA,oCAyEE,aAAA,QAGE,cAAA,wBACA,WAAA,+KAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,IAAA,CAAA,gQAAA,KAAA,UAAA,OAAA,MAAA,OAAA,CAAA,sBAAA,sBA7EJ,8BAAA,0CAiFI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAlFJ,6CAAA,yDA0FI,MAAA,QlBqoEiD,2CACzD,0CkBhuEI,uDlB+tEJ,sDkBhoEQ,QAAA,MA/FJ,qDAAA,iEAuGI,MAAA,QAvGJ,6DAAA,yEA0GM,aAAA,QA1GN,qEAAA,iFAgHM,aAAA,QC1IN,iBAAA,QD0BA,mEAAA,+EAuHM,WAAA,EAAA,EAAA,EAAA,MAAA,oBAvHN,iFAAA,6FA2HM,aAAA,QA3HN,+CAAA,2DAqII,aAAA,QArIJ,qDAAA,iEA0IM,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBA/HR,kBACE,QAAA,KACA,MAAA,KACA,WAAA,OjByBA,UAAA,IiBvBA,MAAA,QAGF,iBACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MjBoEE,UAAA,QiBlEF,YAAA,IACA,MAAA,KACA,iBAAA,mBV1DA,cAAA,ORszEJ,8BACA,6BkB5xEI,0ClB0xEJ,yCkBpvEM,QAAA,MAtCF,yBAAA,qCA4CE,aAAA,QAGE,cAAA,qBACA,iBAAA,2TACA,kBAAA,UACA,oBAAA,MAAA,wBAAA,OACA,gBAAA,sBAAA,sBAnDJ,+BAAA,2CAuDI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAxDJ,6CAAA,iCAiEI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBAlEJ,0BAAA,sCAyEE,aAAA,QAGE,cAAA,wBACA,WAAA,+KAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,IAAA,CAAA,2TAAA,KAAA,UAAA,OAAA,MAAA,OAAA,CAAA,sBAAA,sBA7EJ,gCAAA,4CAiFI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAlFJ,+CAAA,2DA0FI,MAAA,QlByuEqD,+CAC7D,8CkBp0EI,2DlBm0EJ,0DkBpuEQ,QAAA,MA/FJ,uDAAA,mEAuGI,MAAA,QAvGJ,+DAAA,2EA0GM,aAAA,QA1GN,uEAAA,mFAgHM,aAAA,QC1IN,iBAAA,QD0BA,qEAAA,iFAuHM,WAAA,EAAA,EAAA,EAAA,MAAA,oBAvHN,mFAAA,+FA2HM,aAAA,QA3HN,iDAAA,6DAqII,aAAA,QArIJ,uDAAA,mEA0IM,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBF8FV,aACE,QAAA,YAAA,QAAA,KACA,cAAA,IAAA,KAAA,UAAA,IAAA,KACA,eAAA,OAAA,YAAA,OAHF,yBASI,MAAA,KJtNA,yBI6MJ,mBAeM,QAAA,YAAA,QAAA,KACA,eAAA,OAAA,YAAA,OACA,cAAA,OAAA,gBAAA,OACA,cAAA,EAlBN,yBAuBM,QAAA,YAAA,QAAA,KACA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,cAAA,IAAA,KAAA,UAAA,IAAA,KACA,eAAA,OAAA,YAAA,OACA,cAAA,EA3BN,2BAgCM,QAAA,aACA,MAAA,KACA,eAAA,OAlCN,qCAuCM,QAAA,ahBioEJ,4BgBxqEF,0BA4CM,MAAA,KA5CN,yBAkDM,QAAA,YAAA,QAAA,KACA,eAAA,OAAA,YAAA,OACA,cAAA,OAAA,gBAAA,OACA,MAAA,KACA,aAAA,EAtDN,+BAyDM,SAAA,SACA,kBAAA,EAAA,YAAA,EACA,WAAA,EACA,aAAA,OACA,YAAA,EA7DN,6BAiEM,eAAA,OAAA,YAAA,OACA,cAAA,OAAA,gBAAA,OAlEN,mCAqEM,cAAA,GIxUN,KACE,QAAA,aAEA,YAAA,IACA,MAAA,QACA,WAAA,OAEA,eAAA,OACA,OAAA,QACA,oBAAA,KAAA,iBAAA,KAAA,gBAAA,KAAA,YAAA,KACA,iBAAA,YACA,OAAA,IAAA,MAAA,YCuFA,QAAA,QAAA,OpBuBI,UAAA,KoBrBJ,YAAA,IbrGE,cAAA,OSCE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCGLJ,KHMM,WAAA,MdAJ,WiBUE,MAAA,QACA,gBAAA,KAjBJ,WAAA,WAsBI,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAvBJ,cAAA,cA6BI,QAAA,IAeJ,epBw8EA,wBoBt8EE,eAAA,KASA,aCvDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,sBAAA,sBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrB8+EF,mCqB3+EI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrB2+EJ,yCqBt+EQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDIN,eCvDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,qBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,qBAAA,qBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAKJ,wBAAA,wBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,oDAAA,oDrBmhFF,qCqBhhFI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,0DAAA,0DrBghFJ,2CqB3gFQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBDIN,aCvDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAKJ,sBAAA,sBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrBwjFF,mCqBrjFI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrBqjFJ,yCqBhjFQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBDIN,UCvDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,gBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,gBAAA,gBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,mBAAA,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,+CAAA,+CrB6lFF,gCqB1lFI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,qDAAA,qDrB0lFJ,sCqBrlFQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDIN,aCvDA,MAAA,QFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,QFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAEE,MAAA,QFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,sBAAA,sBAEE,MAAA,QACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrBkoFF,mCqB/nFI,MAAA,QACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrB+nFJ,yCqB1nFQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDIN,YCvDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,kBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,kBAAA,kBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAKJ,qBAAA,qBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,iDAAA,iDrBuqFF,kCqBpqFI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,uDAAA,uDrBoqFJ,wCqB/pFQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBDIN,WCvDA,MAAA,QFAE,iBAAA,QEEF,aAAA,QlBIA,iBkBAE,MAAA,QFNA,iBAAA,QEQA,aAAA,QAGF,iBAAA,iBAEE,MAAA,QFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAKJ,oBAAA,oBAEE,MAAA,QACA,iBAAA,QACA,aAAA,QAOF,gDAAA,gDrB4sFF,iCqBzsFI,MAAA,QACA,iBAAA,QAIA,aAAA,QAEA,sDAAA,sDrBysFJ,uCqBpsFQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBDIN,UCvDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,gBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,gBAAA,gBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,kBAKJ,mBAAA,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,+CAAA,+CrBivFF,gCqB9uFI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,qDAAA,qDrB8uFJ,sCqBzuFQ,WAAA,EAAA,EAAA,EAAA,MAAA,kBDUN,qBCHA,MAAA,QACA,aAAA,QlBrDA,2BkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrBuuFF,2CqBpuFI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErBuuFJ,iDqBluFQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD7BN,uBCHA,MAAA,QACA,aAAA,QlBrDA,6BkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,6BAAA,6BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAGF,gCAAA,gCAEE,MAAA,QACA,iBAAA,YAGF,4DAAA,4DrBuwFF,6CqBpwFI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,kEAAA,kErBuwFJ,mDqBlwFQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBD7BN,qBCHA,MAAA,QACA,aAAA,QlBrDA,2BkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrBuyFF,2CqBpyFI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErBuyFJ,iDqBlyFQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD7BN,kBCHA,MAAA,QACA,aAAA,QlBrDA,wBkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,wBAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAGF,2BAAA,2BAEE,MAAA,QACA,iBAAA,YAGF,uDAAA,uDrBu0FF,wCqBp0FI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6DAAA,6DrBu0FJ,8CqBl0FQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBD7BN,qBCHA,MAAA,QACA,aAAA,QlBrDA,2BkBwDE,MAAA,QACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrBu2FF,2CqBp2FI,MAAA,QACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErBu2FJ,iDqBl2FQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD7BN,oBCHA,MAAA,QACA,aAAA,QlBrDA,0BkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,0BAAA,0BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,6BAAA,6BAEE,MAAA,QACA,iBAAA,YAGF,yDAAA,yDrBu4FF,0CqBp4FI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,+DAAA,+DrBu4FJ,gDqBl4FQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD7BN,mBCHA,MAAA,QACA,aAAA,QlBrDA,yBkBwDE,MAAA,QACA,iBAAA,QACA,aAAA,QAGF,yBAAA,yBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAGF,4BAAA,4BAEE,MAAA,QACA,iBAAA,YAGF,wDAAA,wDrBu6FF,yCqBp6FI,MAAA,QACA,iBAAA,QACA,aAAA,QAEA,8DAAA,8DrBu6FJ,+CqBl6FQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBD7BN,kBCHA,MAAA,QACA,aAAA,QlBrDA,wBkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,wBAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,kBAGF,2BAAA,2BAEE,MAAA,QACA,iBAAA,YAGF,uDAAA,uDrBu8FF,wCqBp8FI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6DAAA,6DrBu8FJ,8CqBl8FQ,WAAA,EAAA,EAAA,EAAA,MAAA,kBDlBR,UACE,YAAA,IACA,MAAA,QACA,gBAAA,KjBrEA,gBiBwEE,MAAA,QACA,gBAAA,UAPJ,gBAAA,gBAYI,gBAAA,UACA,WAAA,KAbJ,mBAAA,mBAkBI,MAAA,QACA,eAAA,KAWJ,mBAAA,QCJE,QAAA,MAAA,KpBuBI,UAAA,QoBrBJ,YAAA,IbrGE,cAAA,MY2GJ,mBAAA,QCRE,QAAA,OAAA,MpBuBI,UAAA,QoBrBJ,YAAA,IbrGE,cAAA,MYoHJ,WACE,QAAA,MACA,MAAA,KAFF,sBAMI,WAAA,MpBq9FJ,6BADA,4BoB/8FA,6BAII,MAAA,KExIJ,MLMM,WAAA,QAAA,KAAA,OAKF,uCKXJ,MLYM,WAAA,MKZN,iBAII,QAAA,EAIJ,qBAEI,QAAA,KAIJ,YACE,SAAA,SACA,OAAA,EACA,SAAA,OLXI,WAAA,OAAA,KAAA,KAKF,uCKGJ,YLFM,WAAA,MjB6mGN,UACA,UAFA,WuBvnGA,QAIE,SAAA,SAGF,iBACE,YAAA,OCoBE,wBACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAhCJ,WAAA,KAAA,MACA,aAAA,KAAA,MAAA,YACA,cAAA,EACA,YAAA,KAAA,MAAA,YAqDE,8BACE,YAAA,ED1CN,eACE,SAAA,SACA,IAAA,KACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,UAAA,MACA,QAAA,MAAA,EACA,OAAA,QAAA,EAAA,EtBsGI,UAAA,KsBpGJ,MAAA,QACA,WAAA,KACA,WAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,gBf3BE,cAAA,OeoCA,oBACE,MAAA,KACA,KAAA,EAGF,qBACE,MAAA,EACA,KAAA,KXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,0BWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MAON,uBAEI,IAAA,KACA,OAAA,KACA,WAAA,EACA,cAAA,QC/BA,gCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAzBJ,WAAA,EACA,aAAA,KAAA,MAAA,YACA,cAAA,KAAA,MACA,YAAA,KAAA,MAAA,YA8CE,sCACE,YAAA,EDUN,0BAEI,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,YAAA,QC7CA,mCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAlBJ,WAAA,KAAA,MAAA,YACA,aAAA,EACA,cAAA,KAAA,MAAA,YACA,YAAA,KAAA,MAuCE,yCACE,YAAA,EA7BF,mCDmDE,eAAA,EAKN,yBAEI,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,aAAA,QC9DA,kCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAJF,kCAgBI,QAAA,KAGF,mCACE,QAAA,aACA,aAAA,OACA,eAAA,OACA,QAAA,GA9BN,WAAA,KAAA,MAAA,YACA,aAAA,KAAA,MACA,cAAA,KAAA,MAAA,YAiCE,wCACE,YAAA,EAVA,mCDiDA,eAAA,EAON,oCAAA,kCAAA,mCAAA,iCAKI,MAAA,KACA,OAAA,KAKJ,kBE9GE,OAAA,EACA,OAAA,MAAA,EACA,SAAA,OACA,WAAA,IAAA,MAAA,QFkHF,eACE,QAAA,MACA,MAAA,KACA,QAAA,OAAA,OACA,MAAA,KACA,YAAA,IACA,MAAA,QACA,WAAA,QACA,YAAA,OACA,iBAAA,YACA,OAAA,EpBpHA,qBAAA,qBoBmIE,MAAA,QACA,gBAAA,KJ9IA,iBAAA,QIoHJ,sBAAA,sBAgCI,MAAA,KACA,gBAAA,KJrJA,iBAAA,QIoHJ,wBAAA,wBAuCI,MAAA,QACA,eAAA,KACA,iBAAA,YAQJ,oBACE,QAAA,MAIF,iBACE,QAAA,MACA,QAAA,MAAA,OACA,cAAA,EtBpDI,UAAA,QsBsDJ,MAAA,QACA,YAAA,OAIF,oBACE,QAAA,MACA,QAAA,OAAA,OACA,MAAA,QG1LF,W1B62GA,oB0B32GE,SAAA,SACA,QAAA,mBAAA,QAAA,YACA,eAAA,O1Bi3GF,yB0Br3GA,gBAOI,SAAA,SACA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,K1Bo3GJ,+BGn3GE,sBuBII,QAAA,E1Bs3GN,gCADA,gCADA,+B0Bj4GA,uBAAA,uBAAA,sBAkBM,QAAA,EAMN,aACE,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,cAAA,MAAA,gBAAA,WAHF,0BAMI,MAAA,K1Bu3GJ,wC0Bn3GA,kCAII,YAAA,K1Bo3GJ,4C0Bx3GA,uDlBhBI,wBAAA,EACA,2BAAA,ER64GJ,6C0B93GA,kClBFI,uBAAA,EACA,0BAAA,EkBgCJ,uBACE,cAAA,SACA,aAAA,SAFF,8B1B22GA,yCADA,sC0Bn2GI,YAAA,EAGF,yCACE,aAAA,EAIJ,0CAAA,+BACE,cAAA,QACA,aAAA,QAGF,0CAAA,+BACE,cAAA,OACA,aAAA,OAoBF,oBACE,mBAAA,OAAA,eAAA,OACA,eAAA,MAAA,YAAA,WACA,cAAA,OAAA,gBAAA,OAHF,yB1B61GA,+B0Bt1GI,MAAA,K1B21GJ,iD0Bl2GA,2CAYI,WAAA,K1B21GJ,qD0Bv2GA,gElBlFI,2BAAA,EACA,0BAAA,ER87GJ,sD0B72GA,2ClBhGI,uBAAA,EACA,wBAAA,EkBuIJ,uB1B20GA,kC0Bx0GI,cAAA,E1B60GJ,4C0Bh1GA,yC1Bk1GA,uDADA,oD0B10GM,SAAA,SACA,KAAA,cACA,eAAA,KCzJN,aACE,SAAA,SACA,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,eAAA,QAAA,YAAA,QACA,MAAA,K3Bi/GF,0BADA,4B2Br/GA,2B3Bo/GA,qC2Bz+GI,SAAA,SACA,SAAA,EAAA,EAAA,GAAA,KAAA,EAAA,EAAA,GACA,UAAA,EACA,cAAA,E3B2/GJ,uCADA,yCADA,wCADA,yCADA,2CADA,0CAJA,wCADA,0C2B//GA,yC3BmgHA,kDADA,oDADA,mD2B9+GM,YAAA,K3B4/GN,sEADA,kC2B9gHA,iCA2BI,QAAA,EA3BJ,mDAgCI,QAAA,E3Bw/GJ,6C2BxhHA,4CnBeI,wBAAA,EACA,2BAAA,ER8gHJ,8C2B9hHA,6CnB6BI,uBAAA,EACA,0BAAA,EmB9BJ,0BA4CI,QAAA,YAAA,QAAA,KACA,eAAA,OAAA,YAAA,OA7CJ,8D3B2iHA,qEQ5hHI,wBAAA,EACA,2BAAA,EmBhBJ,+DnB6BI,uBAAA,EACA,0BAAA,ERwhHJ,oB2B1/GA,qBAEE,QAAA,YAAA,QAAA,K3B8/GF,yB2BhgHA,0BAQI,SAAA,SACA,QAAA,E3B6/GJ,+B2BtgHA,gCAYM,QAAA,E3BkgHN,8BACA,2CAEA,2CADA,wD2BhhHA,+B3B2gHA,4CAEA,4CADA,yD2Bx/GI,YAAA,KAIJ,qBAAuB,aAAA,KACvB,oBAAsB,YAAA,KAQtB,kBACE,QAAA,YAAA,QAAA,KACA,eAAA,OAAA,YAAA,OACA,QAAA,QAAA,OACA,cAAA,E1BwBI,UAAA,K0BtBJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,OACA,YAAA,OACA,iBAAA,QACA,OAAA,IAAA,MAAA,QnB1GE,cAAA,OR6mHJ,uC2B/gHA,oCAkBI,WAAA,E3BkgHJ,+B2Bx/GA,4CAEE,OAAA,yB3B2/GF,+B2Bx/GA,8B3B4/GA,yCAFA,sDACA,0CAFA,uD2Bn/GE,QAAA,MAAA,K1BXI,UAAA,Q0BaJ,YAAA,InBvIE,cAAA,MRmoHJ,+B2Bx/GA,4CAEE,OAAA,0B3B2/GF,+B2Bx/GA,8B3B4/GA,yCAFA,sDACA,0CAFA,uD2Bn/GE,QAAA,OAAA,M1B5BI,UAAA,Q0B8BJ,YAAA,InBxJE,cAAA,MmB4JJ,+B3Bw/GA,+B2Bt/GE,cAAA,Q3B8/GF,wFACA,+EAHA,uDACA,oE2Bl/GA,uC3Bg/GA,oDQzoHI,wBAAA,EACA,2BAAA,EmBiKJ,sC3Bi/GA,mDAGA,qEACA,kFAHA,yDACA,sEQvoHI,uBAAA,EACA,0BAAA,EoB3BJ,gBACE,SAAA,SACA,QAAA,MACA,WAAA,OACA,aAAA,OAGF,uBACE,QAAA,mBAAA,QAAA,YACA,aAAA,KAGF,sBACE,SAAA,SACA,KAAA,EACA,QAAA,GACA,MAAA,KACA,OAAA,QACA,QAAA,EANF,4DASI,MAAA,KACA,aAAA,QTzBA,iBAAA,QSeJ,0DAoBM,WAAA,EAAA,EAAA,EAAA,MAAA,oBApBN,wEAyBI,aAAA,QAzBJ,0EA6BI,MAAA,KACA,iBAAA,QACA,aAAA,QA/BJ,qDAAA,sDAuCM,MAAA,QAvCN,6DAAA,8DA0CQ,iBAAA,QAUR,sBACE,SAAA,SACA,cAAA,EAEA,eAAA,IAJF,8BASI,SAAA,SACA,IAAA,OACA,KAAA,QACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,eAAA,KACA,QAAA,GACA,iBAAA,KACA,OAAA,QAAA,MAAA,IAlBJ,6BAwBI,SAAA,SACA,IAAA,OACA,KAAA,QACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,QAAA,GACA,WAAA,UAAA,GAAA,CAAA,IAAA,IASJ,+CpB5GI,cAAA,OoB4GJ,4EAOM,iBAAA,iNAPN,mFAaM,aAAA,QTxHF,iBAAA,QS2GJ,kFAkBM,iBAAA,8JAlBN,sFAwBM,iBAAA,mBAxBN,4FA2BM,iBAAA,mBASN,4CAGI,cAAA,IAHJ,yEAQM,iBAAA,6JARN,mFAcM,iBAAA,mBAUN,eACE,aAAA,QADF,6CAKM,KAAA,SACA,MAAA,QACA,eAAA,IAEA,cAAA,MATN,4CAaM,IAAA,mBACA,KAAA,qBACA,MAAA,iBACA,OAAA,iBACA,iBAAA,QAEA,cAAA,MX1LA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,WAAA,CAAA,kBAAA,KAAA,YAAA,WAAA,UAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,UAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,WAAA,CAAA,kBAAA,KAAA,YAKF,uCWkKJ,4CXjKM,WAAA,MWiKN,0EA0BM,iBAAA,KACA,kBAAA,mBAAA,UAAA,mBA3BN,oFAiCM,iBAAA,mBAYN,eACE,QAAA,aACA,MAAA,KACA,OAAA,2BACA,QAAA,QAAA,QAAA,QAAA,O3B/FI,UAAA,K2BkGJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,eAAA,OACA,WAAA,KAAA,+KAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,KACA,OAAA,IAAA,MAAA,QpBjOE,cAAA,OoBoOF,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAfF,qBAkBI,aAAA,QACA,QAAA,EAIE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAvBN,gCAgCM,MAAA,QACA,iBAAA,KAjCN,yBAAA,qCAuCI,OAAA,KACA,cAAA,OACA,iBAAA,KAzCJ,wBA6CI,MAAA,QACA,iBAAA,QA9CJ,2BAmDI,QAAA,KAnDJ,8BAwDI,MAAA,YACA,YAAA,EAAA,EAAA,EAAA,QAIJ,kBACE,OAAA,0BACA,YAAA,OACA,eAAA,OACA,aAAA,M3B5JI,UAAA,Q2BgKN,kBACE,OAAA,yBACA,YAAA,MACA,eAAA,MACA,aAAA,K3BpKI,UAAA,Q2B6KN,aACE,SAAA,SACA,QAAA,aACA,MAAA,KACA,OAAA,2BACA,cAAA,EAGF,mBACE,SAAA,SACA,QAAA,EACA,MAAA,KACA,OAAA,2BACA,OAAA,EACA,QAAA,EANF,4CASI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oB5BumHJ,+C4BjnHA,gDAgBI,iBAAA,QAhBJ,sDAqBM,QAAA,SArBN,0DA0BI,QAAA,kBAIJ,mBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,EACA,OAAA,2BACA,QAAA,QAAA,OAEA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,OAAA,IAAA,MAAA,QpB1VE,cAAA,OoB6UJ,0BAkBI,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,QAAA,EACA,QAAA,MACA,OAAA,qBACA,QAAA,QAAA,OACA,YAAA,IACA,MAAA,QACA,QAAA,STxWA,iBAAA,QS0WA,YAAA,QpB3WA,cAAA,EAAA,OAAA,OAAA,EoBsXJ,cACE,MAAA,KACA,OAAA,OACA,QAAA,EACA,iBAAA,YACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KALF,oBAQI,QAAA,EARJ,0CAY8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAZ9B,sCAa8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAb9B,+BAc8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAd9B,gCAkBI,OAAA,EAlBJ,oCAsBI,MAAA,KACA,OAAA,KACA,WAAA,QT7YA,iBAAA,QS+YA,OAAA,EpBhZA,cAAA,KSCE,mBAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YWmZF,mBAAA,KAAA,WAAA,KX9YA,uCWgXJ,oCX/WM,mBAAA,KAAA,WAAA,MW+WN,2CTrXI,iBAAA,QSqXJ,6CAsCI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YpBjaA,cAAA,KoBsXJ,gCAiDI,MAAA,KACA,OAAA,KTvaA,iBAAA,QSyaA,OAAA,EpB1aA,cAAA,KSCE,gBAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YW6aF,gBAAA,KAAA,WAAA,KXxaA,uCWgXJ,gCX/WM,gBAAA,KAAA,WAAA,MW+WN,uCTrXI,iBAAA,QSqXJ,gCAgEI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YpB3bA,cAAA,KoBsXJ,yBA2EI,MAAA,KACA,OAAA,KACA,WAAA,EACA,aAAA,MACA,YAAA,MTpcA,iBAAA,QSscA,OAAA,EpBvcA,cAAA,KSCE,eAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YW0cF,WAAA,KXrcA,uCWgXJ,yBX/WM,eAAA,KAAA,WAAA,MW+WN,gCTrXI,iBAAA,QSqXJ,yBA6FI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,YACA,aAAA,YACA,aAAA,MAnGJ,8BAwGI,iBAAA,QpB9dA,cAAA,KoBsXJ,8BA6GI,aAAA,KACA,iBAAA,QpBpeA,cAAA,KoBsXJ,6CAoHM,iBAAA,QApHN,sDAwHM,OAAA,QAxHN,yCA4HM,iBAAA,QA5HN,yCAgIM,OAAA,QAhIN,kCAoIM,iBAAA,QAKN,8B5BknHA,mBACA,eiBjnIM,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCWyfJ,8B5BynHE,mBACA,eiBlnII,WAAA,MYPN,KACE,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,aAAA,EACA,cAAA,EACA,WAAA,KAGF,UACE,QAAA,MACA,QAAA,MAAA,K1BCA,gBAAA,gB0BEE,gBAAA,KALJ,mBAUI,MAAA,QACA,eAAA,KACA,OAAA,QAQJ,UACE,cAAA,IAAA,MAAA,QADF,oBAII,cAAA,KAJJ,oBAQI,OAAA,IAAA,MAAA,YrB3BA,uBAAA,OACA,wBAAA,OLCF,0BAAA,0B0B6BI,aAAA,QAAA,QAAA,QAZN,6BAgBM,MAAA,QACA,iBAAA,YACA,aAAA,Y7BkoIN,mC6BppIA,2BAwBI,MAAA,QACA,iBAAA,KACA,aAAA,QAAA,QAAA,KA1BJ,yBA+BI,WAAA,KrBlDA,uBAAA,EACA,wBAAA,EqB4DJ,qBrBtEI,cAAA,OqBsEJ,4B7B2nIA,2B6BpnII,MAAA,KACA,iBAAA,QASJ,oBAEI,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,WAAA,OAIJ,yBAEI,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,WAAA,OASJ,uBAEI,QAAA,KAFJ,qBAKI,QAAA,MCpGJ,QACE,SAAA,SACA,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,eAAA,OAAA,YAAA,OACA,cAAA,QAAA,gBAAA,cACA,QAAA,MAAA,KANF,mB9B8tIA,yBAAwE,sBAAvB,sBAAvB,sBAAqE,sB8BntI3F,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,eAAA,OAAA,YAAA,OACA,cAAA,QAAA,gBAAA,cAoBJ,cACE,QAAA,aACA,YAAA,SACA,eAAA,SACA,aAAA,K7BwEI,UAAA,Q6BtEJ,YAAA,QACA,YAAA,O3B1CA,oBAAA,oB2B6CE,gBAAA,KASJ,YACE,QAAA,YAAA,QAAA,KACA,mBAAA,OAAA,eAAA,OACA,aAAA,EACA,cAAA,EACA,WAAA,KALF,sBAQI,cAAA,EACA,aAAA,EATJ,2BAaI,SAAA,OACA,MAAA,KASJ,aACE,QAAA,aACA,YAAA,MACA,eAAA,MAYF,iBACE,wBAAA,KAAA,WAAA,KACA,kBAAA,EAAA,UAAA,EAGA,eAAA,OAAA,YAAA,OAIF,gBACE,QAAA,OAAA,O7BSI,UAAA,Q6BPJ,YAAA,EACA,iBAAA,YACA,OAAA,IAAA,MAAA,YtBrHE,cAAA,OLWF,sBAAA,sB2B8GE,gBAAA,KAMJ,qBACE,QAAA,aACA,MAAA,MACA,OAAA,MACA,eAAA,OACA,QAAA,GACA,WAAA,UAAA,OAAA,OACA,gBAAA,KAAA,KlBlEE,4BkB4EC,6B9B+qIH,mCAA4G,gCAAnC,gCAAnC,gCAAyG,gC8B5qIvI,cAAA,EACA,aAAA,GlB7FN,yBkByFA,kBAoBI,cAAA,IAAA,OAAA,UAAA,IAAA,OACA,cAAA,MAAA,gBAAA,WArBH,8BAwBK,mBAAA,IAAA,eAAA,IAxBL,6CA2BO,SAAA,SA3BP,wCA+BO,cAAA,MACA,aAAA,MAhCP,6B9BwsIH,mCAA4G,gCAAnC,gCAAnC,gCAAyG,gC8BlqIvI,cAAA,OAAA,UAAA,OAtCL,mCAqDK,QAAA,sBAAA,QAAA,eAGA,wBAAA,KAAA,WAAA,KAxDL,kCA4DK,QAAA,MlBxIN,4BkB4EC,6B9BytIH,mCAA4G,gCAAnC,gCAAnC,gCAAyG,gC8BttIvI,cAAA,EACA,aAAA,GlB7FN,yBkByFA,kBAoBI,cAAA,IAAA,OAAA,UAAA,IAAA,OACA,cAAA,MAAA,gBAAA,WArBH,8BAwBK,mBAAA,IAAA,eAAA,IAxBL,6CA2BO,SAAA,SA3BP,wCA+BO,cAAA,MACA,aAAA,MAhCP,6B9BkvIH,mCAA4G,gCAAnC,gCAAnC,gCAAyG,gC8B5sIvI,cAAA,OAAA,UAAA,OAtCL,mCAqDK,QAAA,sBAAA,QAAA,eAGA,wBAAA,KAAA,WAAA,KAxDL,kCA4DK,QAAA,MlBxIN,4BkB4EC,6B9BmwIH,mCAA4G,gCAAnC,gCAAnC,gCAAyG,gC8BhwIvI,cAAA,EACA,aAAA,GlB7FN,yBkByFA,kBAoBI,cAAA,IAAA,OAAA,UAAA,IAAA,OACA,cAAA,MAAA,gBAAA,WArBH,8BAwBK,mBAAA,IAAA,eAAA,IAxBL,6CA2BO,SAAA,SA3BP,wCA+BO,cAAA,MACA,aAAA,MAhCP,6B9B4xIH,mCAA4G,gCAAnC,gCAAnC,gCAAyG,gC8BtvIvI,cAAA,OAAA,UAAA,OAtCL,mCAqDK,QAAA,sBAAA,QAAA,eAGA,wBAAA,KAAA,WAAA,KAxDL,kCA4DK,QAAA,MlBxIN,6BkB4EC,6B9B6yIH,mCAA4G,gCAAnC,gCAAnC,gCAAyG,gC8B1yIvI,cAAA,EACA,aAAA,GlB7FN,0BkByFA,kBAoBI,cAAA,IAAA,OAAA,UAAA,IAAA,OACA,cAAA,MAAA,gBAAA,WArBH,8BAwBK,mBAAA,IAAA,eAAA,IAxBL,6CA2BO,SAAA,SA3BP,wCA+BO,cAAA,MACA,aAAA,MAhCP,6B9Bs0IH,mCAA4G,gCAAnC,gCAAnC,gCAAyG,gC8BhyIvI,cAAA,OAAA,UAAA,OAtCL,mCAqDK,QAAA,sBAAA,QAAA,eAGA,wBAAA,KAAA,WAAA,KAxDL,kCA4DK,QAAA,MAjEV,eAyBQ,cAAA,IAAA,OAAA,UAAA,IAAA,OACA,cAAA,MAAA,gBAAA,WA1BR,0B9Bk2IA,gCAAmG,6BAAhC,6BAAhC,6BAAgG,6B8B11IzH,cAAA,EACA,aAAA,EATV,2BA6BU,mBAAA,IAAA,eAAA,IA7BV,0CAgCY,SAAA,SAhCZ,qCAoCY,cAAA,MACA,aAAA,MArCZ,0B9Bs3IA,gCAAmG,6BAAhC,6BAAhC,6BAAgG,6B8B30IzH,cAAA,OAAA,UAAA,OA3CV,gCA0DU,QAAA,sBAAA,QAAA,eAGA,wBAAA,KAAA,WAAA,KA7DV,+BAiEU,QAAA,KAaV,4BAEI,MAAA,e3BhNF,kCAAA,kC2BmNI,MAAA,eALN,oCAWM,MAAA,e3BzNJ,0CAAA,0C2B4NM,MAAA,eAdR,6CAkBQ,MAAA,e9B2zIR,4CAEA,2CADA,yC8B90IA,0CA0BM,MAAA,eA1BN,8BA+BI,MAAA,eACA,aAAA,eAhCJ,mCAoCI,iBAAA,8PApCJ,2BAwCI,MAAA,eAxCJ,6BA0CM,MAAA,e3BxPJ,mCAAA,mC2B2PM,MAAA,eAOR,2BAEI,MAAA,K3BpQF,iCAAA,iC2BuQI,MAAA,KALN,mCAWM,MAAA,qB3B7QJ,yCAAA,yC2BgRM,MAAA,sBAdR,4CAkBQ,MAAA,sB9BuzIR,2CAEA,0CADA,wC8B10IA,yCA0BM,MAAA,KA1BN,6BA+BI,MAAA,qBACA,aAAA,qBAhCJ,kCAoCI,iBAAA,oQApCJ,0BAwCI,MAAA,qBAxCJ,4BA0CM,MAAA,K3B5SJ,kCAAA,kC2B+SM,MAAA,KC3TR,MACE,SAAA,SACA,QAAA,YAAA,QAAA,KACA,mBAAA,OAAA,eAAA,OACA,UAAA,EAEA,UAAA,WACA,iBAAA,KACA,gBAAA,WACA,OAAA,IAAA,MAAA,iBvBRE,cAAA,OuBDJ,SAaI,aAAA,EACA,YAAA,EAdJ,2DvBUI,uBAAA,OACA,wBAAA,OuBXJ,yDvBwBI,2BAAA,OACA,0BAAA,OuBKJ,WAGE,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAGA,WAAA,IACA,QAAA,QAIF,YACE,cAAA,OAGF,eACE,WAAA,SACA,cAAA,EAGF,sBACE,cAAA,E5B3CA,iB4BgDE,gBAAA,KAFJ,sBAMI,YAAA,QAQJ,aACE,QAAA,OAAA,QACA,cAAA,EAEA,iBAAA,gBACA,cAAA,IAAA,MAAA,iBALF,yBvBnEI,cAAA,mBAAA,mBAAA,EAAA,EuBmEJ,sDAaM,WAAA,EAKN,aACE,QAAA,OAAA,QACA,iBAAA,gBACA,WAAA,IAAA,MAAA,iBAHF,wBvBrFI,cAAA,EAAA,EAAA,mBAAA,mBuBoGJ,kBACE,aAAA,SACA,cAAA,QACA,YAAA,SACA,cAAA,EAGF,mBACE,aAAA,SACA,YAAA,SAIF,kBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,QAGF,U/BgmJA,iBADA,c+B5lJE,kBAAA,EAAA,YAAA,EACA,MAAA,KAGF,U/BgmJA,cQxtJI,uBAAA,mBACA,wBAAA,mBuB4HJ,U/BimJA,iBQhtJI,2BAAA,mBACA,0BAAA,mBuBsHJ,iBAEI,cAAA,KnBzFA,yBmBuFJ,WAMI,QAAA,YAAA,QAAA,KACA,cAAA,IAAA,KAAA,UAAA,IAAA,KACA,aAAA,MACA,YAAA,MATJ,iBAaM,SAAA,EAAA,EAAA,GAAA,KAAA,EAAA,EAAA,GACA,aAAA,KACA,cAAA,EACA,YAAA,MAUN,kBAII,cAAA,KnBrHA,yBmBiHJ,YAQI,QAAA,YAAA,QAAA,KACA,cAAA,IAAA,KAAA,UAAA,IAAA,KATJ,kBAcM,SAAA,EAAA,EAAA,GAAA,KAAA,EAAA,EAAA,GACA,cAAA,EAfN,wBAkBQ,YAAA,EACA,YAAA,EAnBR,mCvBxJI,wBAAA,EACA,2BAAA,ER0wJF,gD+BnnJF,iDA8BY,wBAAA,E/BylJV,gD+BvnJF,oDAmCY,2BAAA,EAnCZ,oCvB1II,uBAAA,EACA,0BAAA,ERwwJF,iD+B/nJF,kDA6CY,uBAAA,E/BslJV,iD+BnoJF,qDAkDY,0BAAA,GAaZ,oBAEI,cAAA,OnBlLA,yBmBgLJ,cAMI,qBAAA,EAAA,kBAAA,EAAA,aAAA,EACA,mBAAA,QAAA,gBAAA,QAAA,WAAA,QACA,QAAA,EACA,OAAA,EATJ,oBAYM,QAAA,aACA,MAAA,MAUN,iBAEI,SAAA,OAFJ,oCAKM,cAAA,EvB5OF,2BAAA,EACA,0BAAA,EuBsOJ,qCvBrPI,uBAAA,EACA,wBAAA,EuBoPJ,8BvB9PI,cAAA,EuB6QE,cAAA,KClRN,YACE,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,QAAA,OAAA,KACA,cAAA,KAEA,WAAA,KACA,iBAAA,QxBFE,cAAA,OwBMJ,kCAGI,aAAA,MAHJ,0CAMM,QAAA,aACA,cAAA,MACA,MAAA,QACA,QAAA,IATN,gDAoBI,gBAAA,UApBJ,gDAwBI,gBAAA,KAxBJ,wBA4BI,MAAA,QCvCJ,YACE,QAAA,YAAA,QAAA,K5BGA,aAAA,EACA,WAAA,KGAE,cAAA,OyBCJ,WACE,SAAA,SACA,QAAA,MACA,QAAA,MAAA,OACA,YAAA,KACA,YAAA,KACA,MAAA,QACA,iBAAA,KACA,OAAA,IAAA,MAAA,QARF,iBAWI,QAAA,EACA,MAAA,QACA,gBAAA,KACA,iBAAA,QACA,aAAA,QAfJ,iBAmBI,QAAA,EACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAIJ,kCAGM,YAAA,EzBCF,uBAAA,OACA,0BAAA,OyBLJ,iCzBVI,wBAAA,OACA,2BAAA,OyBSJ,6BAcI,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QAjBJ,+BAqBI,MAAA,QACA,eAAA,KAEA,OAAA,KACA,iBAAA,KACA,aAAA,QCtDF,0BACE,QAAA,OAAA,OjC2HE,UAAA,QiCzHF,YAAA,IAKE,iD1BwBF,uBAAA,MACA,0BAAA,M0BpBE,gD1BKF,wBAAA,MACA,2BAAA,M0BnBF,0BACE,QAAA,OAAA,MjC2HE,UAAA,QiCzHF,YAAA,IAKE,iD1BwBF,uBAAA,MACA,0BAAA,M0BpBE,gD1BKF,wBAAA,MACA,2BAAA,M2BjBJ,OACE,QAAA,aACA,QAAA,MAAA,KlCiEE,UAAA,IkC/DF,YAAA,IACA,YAAA,EACA,WAAA,OACA,YAAA,OACA,eAAA,S3BRE,cAAA,OSCE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCkBNJ,OlBOM,WAAA,MdIJ,cAAA,cgCGI,gBAAA,KAdN,aAoBI,QAAA,KAKJ,YACE,SAAA,SACA,IAAA,KAOF,YACE,cAAA,KACA,aAAA,K3BpCE,cAAA,M2B6CF,eCjDA,MAAA,KACA,iBAAA,QjCcA,sBAAA,sBiCVI,MAAA,KACA,iBAAA,QAHI,sBAAA,sBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,mBDqCJ,iBCjDA,MAAA,KACA,iBAAA,QjCcA,wBAAA,wBiCVI,MAAA,KACA,iBAAA,QAHI,wBAAA,wBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,qBDqCJ,eCjDA,MAAA,KACA,iBAAA,QjCcA,sBAAA,sBiCVI,MAAA,KACA,iBAAA,QAHI,sBAAA,sBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,mBDqCJ,YCjDA,MAAA,KACA,iBAAA,QjCcA,mBAAA,mBiCVI,MAAA,KACA,iBAAA,QAHI,mBAAA,mBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBDqCJ,eCjDA,MAAA,QACA,iBAAA,QjCcA,sBAAA,sBiCVI,MAAA,QACA,iBAAA,QAHI,sBAAA,sBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,mBDqCJ,cCjDA,MAAA,KACA,iBAAA,QjCcA,qBAAA,qBiCVI,MAAA,KACA,iBAAA,QAHI,qBAAA,qBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,mBDqCJ,aCjDA,MAAA,QACA,iBAAA,QjCcA,oBAAA,oBiCVI,MAAA,QACA,iBAAA,QAHI,oBAAA,oBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,qBDqCJ,YCjDA,MAAA,KACA,iBAAA,QjCcA,mBAAA,mBiCVI,MAAA,KACA,iBAAA,QAHI,mBAAA,mBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,kBCbN,WACE,QAAA,KAAA,KACA,cAAA,KAEA,iBAAA,Q7BCE,cAAA,MIuDA,yByB5DJ,WAQI,QAAA,KAAA,MAIJ,iBACE,cAAA,EACA,aAAA,E7BTE,cAAA,E8BDJ,OACE,SAAA,SACA,QAAA,OAAA,QACA,cAAA,KACA,OAAA,IAAA,MAAA,Y9BHE,cAAA,O8BQJ,eAEE,MAAA,QAIF,YACE,YAAA,IAQF,mBACE,cAAA,KADF,0BAKI,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,OAAA,QACA,MAAA,QAUF,eC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,kBACE,iBAAA,QAGF,2BACE,MAAA,QDqCF,iBC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,oBACE,iBAAA,QAGF,6BACE,MAAA,QDqCF,eC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,kBACE,iBAAA,QAGF,2BACE,MAAA,QDqCF,YC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,eACE,iBAAA,QAGF,wBACE,MAAA,QDqCF,eC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,kBACE,iBAAA,QAGF,2BACE,MAAA,QDqCF,cC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,iBACE,iBAAA,QAGF,0BACE,MAAA,QDqCF,aC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,gBACE,iBAAA,QAGF,yBACE,MAAA,QDqCF,YC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,eACE,iBAAA,QAGF,wBACE,MAAA,QCRF,wCACE,KAAO,oBAAA,KAAA,EACP,GAAK,oBAAA,EAAA,GAFP,gCACE,KAAO,oBAAA,KAAA,EACP,GAAK,oBAAA,EAAA,GAIT,UACE,QAAA,YAAA,QAAA,KACA,OAAA,KACA,SAAA,OvCoHI,UAAA,OuClHJ,iBAAA,QhCRE,cAAA,OgCaJ,cACE,QAAA,YAAA,QAAA,KACA,mBAAA,OAAA,eAAA,OACA,cAAA,OAAA,gBAAA,OACA,SAAA,OACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,iBAAA,QvBpBI,WAAA,MAAA,IAAA,KAKF,uCuBOJ,cvBNM,WAAA,MuBkBN,sBrBaE,iBAAA,iKqBXA,gBAAA,KAAA,KAIA,uBACE,kBAAA,qBAAA,GAAA,OAAA,SAAA,UAAA,qBAAA,GAAA,OAAA,SAGE,uCAJJ,uBAKM,kBAAA,KAAA,UAAA,MCzCR,OACE,QAAA,YAAA,QAAA,KACA,eAAA,MAAA,YAAA,WAGF,YACE,SAAA,EAAA,KAAA,ECFF,YACE,QAAA,YAAA,QAAA,KACA,mBAAA,OAAA,eAAA,OAGA,aAAA,EACA,cAAA,EASF,wBACE,MAAA,KACA,MAAA,QACA,WAAA,QvCNA,8BAAA,8BuCUE,QAAA,EACA,MAAA,QACA,gBAAA,KACA,iBAAA,QAVJ,+BAcI,MAAA,QACA,iBAAA,QASJ,iBACE,SAAA,SACA,QAAA,MACA,QAAA,OAAA,QAEA,iBAAA,KACA,OAAA,IAAA,MAAA,iBANF,6BlC7BI,uBAAA,OACA,wBAAA,OkC4BJ,4BlCfI,2BAAA,OACA,0BAAA,OkCcJ,0BAAA,0BAkBI,MAAA,QACA,eAAA,KACA,iBAAA,KApBJ,wBAyBI,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QA5BJ,kCAgCI,iBAAA,EAhCJ,yCAmCM,WAAA,KACA,iBAAA,IAcF,uBACE,mBAAA,IAAA,eAAA,IADF,oDlCjCA,0BAAA,OAZA,wBAAA,EkC6CA,mDlC7CA,wBAAA,OAYA,0BAAA,EkCiCA,+CAeM,WAAA,EAfN,yDAmBM,iBAAA,IACA,kBAAA,EApBN,gEAuBQ,YAAA,KACA,kBAAA,I9BzDR,yB8BiCA,0BACE,mBAAA,IAAA,eAAA,IADF,uDlCjCA,0BAAA,OAZA,wBAAA,EkC6CA,sDlC7CA,wBAAA,OAYA,0BAAA,EkCiCA,kDAeM,WAAA,EAfN,4DAmBM,iBAAA,IACA,kBAAA,EApBN,mEAuBQ,YAAA,KACA,kBAAA,K9BzDR,yB8BiCA,0BACE,mBAAA,IAAA,eAAA,IADF,uDlCjCA,0BAAA,OAZA,wBAAA,EkC6CA,sDlC7CA,wBAAA,OAYA,0BAAA,EkCiCA,kDAeM,WAAA,EAfN,4DAmBM,iBAAA,IACA,kBAAA,EApBN,mEAuBQ,YAAA,KACA,kBAAA,K9BzDR,yB8BiCA,0BACE,mBAAA,IAAA,eAAA,IADF,uDlCjCA,0BAAA,OAZA,wBAAA,EkC6CA,sDlC7CA,wBAAA,OAYA,0BAAA,EkCiCA,kDAeM,WAAA,EAfN,4DAmBM,iBAAA,IACA,kBAAA,EApBN,mEAuBQ,YAAA,KACA,kBAAA,K9BzDR,0B8BiCA,0BACE,mBAAA,IAAA,eAAA,IADF,uDlCjCA,0BAAA,OAZA,wBAAA,EkC6CA,sDlC7CA,wBAAA,OAYA,0BAAA,EkCiCA,kDAeM,WAAA,EAfN,4DAmBM,iBAAA,IACA,kBAAA,EApBN,mEAuBQ,YAAA,KACA,kBAAA,KAcZ,mCAEI,mBAAA,EACA,kBAAA,ElCjIA,cAAA,EkC8HJ,+CAOM,iBAAA,EAPN,yDAaM,oBAAA,EC7IJ,yBACE,MAAA,QACA,iBAAA,QxCWF,sDAAA,sDwCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,2BACE,MAAA,QACA,iBAAA,QxCWF,wDAAA,wDwCPM,MAAA,QACA,iBAAA,QAPN,yDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,yBACE,MAAA,QACA,iBAAA,QxCWF,sDAAA,sDwCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,sBACE,MAAA,QACA,iBAAA,QxCWF,mDAAA,mDwCPM,MAAA,QACA,iBAAA,QAPN,oDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,yBACE,MAAA,QACA,iBAAA,QxCWF,sDAAA,sDwCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,wBACE,MAAA,QACA,iBAAA,QxCWF,qDAAA,qDwCPM,MAAA,QACA,iBAAA,QAPN,sDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,uBACE,MAAA,QACA,iBAAA,QxCWF,oDAAA,oDwCPM,MAAA,QACA,iBAAA,QAPN,qDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,sBACE,MAAA,QACA,iBAAA,QxCWF,mDAAA,mDwCPM,MAAA,QACA,iBAAA,QAPN,oDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QChBR,OACE,MAAA,M3C8HI,UAAA,O2C5HJ,YAAA,IACA,YAAA,EACA,MAAA,KACA,YAAA,EAAA,IAAA,EAAA,KACA,QAAA,GzCKA,ayCDE,MAAA,KACA,gBAAA,KzCIF,2CAAA,2CyCCI,QAAA,IAWN,aACE,QAAA,EACA,iBAAA,YACA,OAAA,EACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAMF,iBACE,eAAA,KCvCF,OACE,UAAA,MACA,SAAA,O5C6HI,UAAA,Q4C1HJ,iBAAA,sBACA,gBAAA,YACA,OAAA,IAAA,MAAA,eACA,WAAA,EAAA,OAAA,OAAA,eACA,wBAAA,WAAA,gBAAA,WACA,QAAA,ErCLE,cAAA,OqCLJ,wBAcI,cAAA,OAdJ,eAkBI,QAAA,EAlBJ,YAsBI,QAAA,MACA,QAAA,EAvBJ,YA2BI,QAAA,KAIJ,cACE,QAAA,YAAA,QAAA,KACA,eAAA,OAAA,YAAA,OACA,QAAA,OAAA,OACA,MAAA,QACA,iBAAA,sBACA,gBAAA,YACA,cAAA,IAAA,MAAA,gBAGF,YACE,QAAA,OCpCF,YAEE,SAAA,OAFF,mBAKI,WAAA,OACA,WAAA,KAKJ,OACE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,OAAA,KACA,SAAA,OAGA,QAAA,EAOF,cACE,SAAA,SACA,MAAA,KACA,OAAA,MAEA,eAAA,KAGA,0B7BrCI,WAAA,kBAAA,IAAA,SAAA,WAAA,UAAA,IAAA,SAAA,WAAA,UAAA,IAAA,QAAA,CAAA,kBAAA,IAAA,S6BuCF,kBAAA,mBAAA,UAAA,mB7BlCA,uC6BgCF,0B7B/BI,WAAA,M6BmCJ,0BACE,kBAAA,KAAA,UAAA,KAIF,kCACE,kBAAA,YAAA,UAAA,YAIJ,yBACE,QAAA,YAAA,QAAA,KACA,WAAA,kBAFF,wCAKI,WAAA,mBACA,SAAA,O9C6wLJ,uC8CnxLA,uCAWI,kBAAA,EAAA,YAAA,EAXJ,qCAeI,WAAA,KAIJ,uBACE,QAAA,YAAA,QAAA,KACA,eAAA,OAAA,YAAA,OACA,WAAA,kBAHF,+BAOI,QAAA,MACA,OAAA,mBACA,QAAA,GATJ,+CAcI,mBAAA,OAAA,eAAA,OACA,cAAA,OAAA,gBAAA,OACA,OAAA,KAhBJ,8DAmBM,WAAA,KAnBN,uDAuBM,QAAA,KAMN,eACE,SAAA,SACA,QAAA,YAAA,QAAA,KACA,mBAAA,OAAA,eAAA,OACA,MAAA,KAGA,eAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,etC9GE,cAAA,MsCkHF,QAAA,EAIF,gBACE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,MAAA,MACA,OAAA,MACA,iBAAA,KAPF,qBAUW,QAAA,EAVX,qBAWW,QAAA,GAKX,cACE,QAAA,YAAA,QAAA,KACA,eAAA,MAAA,YAAA,WACA,cAAA,QAAA,gBAAA,cACA,QAAA,KAAA,KACA,cAAA,IAAA,MAAA,QtClIE,uBAAA,kBACA,wBAAA,kBsC4HJ,qBASI,QAAA,KAAA,KAEA,OAAA,MAAA,MAAA,MAAA,KAKJ,aACE,cAAA,EACA,YAAA,IAKF,YACE,SAAA,SAGA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,QAAA,KAIF,cACE,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,eAAA,OAAA,YAAA,OACA,cAAA,IAAA,gBAAA,SACA,QAAA,OACA,WAAA,IAAA,MAAA,QtCrJE,2BAAA,kBACA,0BAAA,kBsC8IJ,gBAcI,OAAA,OAKJ,yBACE,SAAA,SACA,IAAA,QACA,MAAA,KACA,OAAA,KACA,SAAA,OlCvIE,yBkCzBJ,cAuKI,UAAA,MACA,OAAA,QAAA,KAlJJ,yBAsJI,WAAA,oBAtJJ,wCAyJM,WAAA,qBAtIN,uBA2II,WAAA,oBA3IJ,+BA8IM,OAAA,qBAQJ,UAAY,UAAA,OlCtKV,yBkC0KF,U9C+vLA,U8C7vLE,UAAA,OlC5KA,0BkCiLF,UAAY,UAAA,QC5Od,SACE,SAAA,SACA,QAAA,KACA,QAAA,MACA,OAAA,ECJA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,K/CgHI,UAAA,Q8CpHJ,UAAA,WACA,QAAA,EAXF,cAaW,QAAA,GAbX,gBAgBI,SAAA,SACA,QAAA,MACA,MAAA,MACA,OAAA,MAnBJ,wBAsBM,SAAA,SACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,mCAAA,gBACE,QAAA,MAAA,EADF,0CAAA,uBAII,OAAA,EAJJ,kDAAA,+BAOM,IAAA,EACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAKN,qCAAA,kBACE,QAAA,EAAA,MADF,4CAAA,yBAII,KAAA,EACA,MAAA,MACA,OAAA,MANJ,oDAAA,iCASM,MAAA,EACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAKN,sCAAA,mBACE,QAAA,MAAA,EADF,6CAAA,0BAII,IAAA,EAJJ,qDAAA,kCAOM,OAAA,EACA,aAAA,EAAA,MAAA,MACA,oBAAA,KAKN,oCAAA,iBACE,QAAA,EAAA,MADF,2CAAA,wBAII,MAAA,EACA,MAAA,MACA,OAAA,MANJ,mDAAA,gCASM,KAAA,EACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAqBN,eACE,UAAA,MACA,QAAA,OAAA,MACA,MAAA,KACA,WAAA,OACA,iBAAA,KvC3GE,cAAA,OyCLJ,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,MACA,UAAA,MDLA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,K/CgHI,UAAA,QgDnHJ,UAAA,WACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,ezCVE,cAAA,MyCLJ,gBAoBI,SAAA,SACA,QAAA,MACA,MAAA,KACA,OAAA,MACA,OAAA,EAAA,MAxBJ,uBAAA,wBA4BM,SAAA,SACA,QAAA,MACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,mCAAA,gBACE,cAAA,MADF,0CAAA,uBAII,OAAA,mBAJJ,kDAAA,+BAOM,OAAA,EACA,aAAA,MAAA,MAAA,EACA,iBAAA,gBATN,iDAAA,8BAaM,OAAA,IACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAKN,qCAAA,kBACE,YAAA,MADF,4CAAA,yBAII,KAAA,mBACA,MAAA,MACA,OAAA,KACA,OAAA,MAAA,EAPJ,oDAAA,iCAUM,KAAA,EACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,gBAZN,mDAAA,gCAgBM,KAAA,IACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAKN,sCAAA,mBACE,WAAA,MADF,6CAAA,0BAII,IAAA,mBAJJ,qDAAA,kCAOM,IAAA,EACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,gBATN,oDAAA,iCAaM,IAAA,IACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,KAfN,8DAAA,2CAqBI,SAAA,SACA,IAAA,EACA,KAAA,IACA,QAAA,MACA,MAAA,KACA,YAAA,OACA,QAAA,GACA,cAAA,IAAA,MAAA,QAIJ,oCAAA,iBACE,aAAA,MADF,2CAAA,wBAII,MAAA,mBACA,MAAA,MACA,OAAA,KACA,OAAA,MAAA,EAPJ,mDAAA,gCAUM,MAAA,EACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,gBAZN,kDAAA,+BAgBM,MAAA,IACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAsBN,gBACE,QAAA,MAAA,OACA,cAAA,EhD3BI,UAAA,KgD8BJ,iBAAA,QACA,cAAA,IAAA,MAAA,QzChJE,uBAAA,kBACA,wBAAA,kByCyIJ,sBAUI,QAAA,KAIJ,cACE,QAAA,MAAA,OACA,MAAA,QC3JF,UACE,SAAA,SAGF,wBACE,iBAAA,MAAA,aAAA,MAGF,gBACE,SAAA,SACA,MAAA,KACA,SAAA,OCvBA,uBACE,QAAA,MACA,MAAA,KACA,QAAA,GDwBJ,eACE,SAAA,SACA,QAAA,KACA,MAAA,KACA,MAAA,KACA,aAAA,MACA,4BAAA,OAAA,oBAAA,OjC5BI,WAAA,kBAAA,IAAA,YAAA,WAAA,UAAA,IAAA,YAAA,WAAA,UAAA,IAAA,WAAA,CAAA,kBAAA,IAAA,YAKF,uCiCiBJ,ejChBM,WAAA,MjB6xMN,oBACA,oBkDpwMA,sBAGE,QAAA,MlDswMF,4BkDnwMA,6CAEE,kBAAA,iBAAA,UAAA,iBlDuwMF,2BkDpwMA,8CAEE,kBAAA,kBAAA,UAAA,kBAQF,8BAEI,QAAA,EACA,oBAAA,QACA,kBAAA,KAAA,UAAA,KlDmwMJ,sDACA,uDkDxwMA,qCAUI,QAAA,EACA,QAAA,EAXJ,0ClD8wMA,2CkD9vMI,QAAA,EACA,QAAA,EjCtEE,WAAA,QAAA,GAAA,IAKF,uCiCgDJ,0ClDsxME,2CiBr0MI,WAAA,MjB20MN,uBkDjwMA,uBAEE,SAAA,SACA,IAAA,EACA,OAAA,EACA,QAAA,EAEA,QAAA,YAAA,QAAA,KACA,eAAA,OAAA,YAAA,OACA,cAAA,OAAA,gBAAA,OACA,MAAA,IACA,MAAA,KACA,WAAA,OACA,QAAA,GjC7FI,WAAA,QAAA,KAAA,KAKF,uCjBg2MF,uBkDrxMF,uBjC1EM,WAAA,MjBs2MN,6BADA,6BGj2ME,6BAAA,6B+CwFE,MAAA,KACA,gBAAA,KACA,QAAA,EACA,QAAA,GAGJ,uBACE,KAAA,EAKF,uBACE,MAAA,ElD6wMF,4BkDtwMA,4BAEE,QAAA,aACA,MAAA,KACA,OAAA,KACA,WAAA,UAAA,GAAA,CAAA,KAAA,KAEF,4BACE,iBAAA,qMAEF,4BACE,iBAAA,sMASF,qBACE,SAAA,SACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,GACA,QAAA,YAAA,QAAA,KACA,cAAA,OAAA,gBAAA,OACA,aAAA,EAEA,aAAA,IACA,YAAA,IACA,WAAA,KAZF,wBAeI,WAAA,YACA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,OAAA,IACA,aAAA,IACA,YAAA,IACA,YAAA,OACA,OAAA,QACA,iBAAA,KACA,gBAAA,YAEA,WAAA,KAAA,MAAA,YACA,cAAA,KAAA,MAAA,YACA,QAAA,GjCtKE,WAAA,QAAA,IAAA,KAKF,uCiCqIJ,wBjCpIM,WAAA,MiCoIN,6BAiCI,QAAA,EASJ,kBACE,SAAA,SACA,MAAA,IACA,OAAA,KACA,KAAA,IACA,QAAA,GACA,YAAA,KACA,eAAA,KACA,MAAA,KACA,WAAA,OE/LF,kCACE,GAAK,kBAAA,eAAA,UAAA,gBADP,0BACE,GAAK,kBAAA,eAAA,UAAA,gBAGP,gBACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,YACA,OAAA,MAAA,MAAA,aACA,mBAAA,YAEA,cAAA,IACA,kBAAA,eAAA,KAAA,OAAA,SAAA,UAAA,eAAA,KAAA,OAAA,SAGF,mBACE,MAAA,KACA,OAAA,KACA,aAAA,KAOF,gCACE,GACE,kBAAA,SAAA,UAAA,SAEF,IACE,QAAA,GALJ,wBACE,GACE,kBAAA,SAAA,UAAA,SAEF,IACE,QAAA,GAIJ,cACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,YACA,iBAAA,aAEA,cAAA,IACA,QAAA,EACA,kBAAA,aAAA,KAAA,OAAA,SAAA,UAAA,aAAA,KAAA,OAAA,SAGF,iBACE,MAAA,KACA,OAAA,KCnDF,gBAAqB,eAAA,mBACrB,WAAqB,eAAA,cACrB,cAAqB,eAAA,iBACrB,cAAqB,eAAA,iBACrB,mBAAqB,eAAA,sBACrB,gBAAqB,eAAA,mBCFnB,YACE,iBAAA,kBnDUF,mBAAA,mBH4hNF,wBADA,wBsDhiNM,iBAAA,kBANJ,cACE,iBAAA,kBnDUF,qBAAA,qBHsiNF,0BADA,0BsD1iNM,iBAAA,kBANJ,YACE,iBAAA,kBnDUF,mBAAA,mBHgjNF,wBADA,wBsDpjNM,iBAAA,kBANJ,SACE,iBAAA,kBnDUF,gBAAA,gBH0jNF,qBADA,qBsD9jNM,iBAAA,kBANJ,YACE,iBAAA,kBnDUF,mBAAA,mBHokNF,wBADA,wBsDxkNM,iBAAA,kBANJ,WACE,iBAAA,kBnDUF,kBAAA,kBH8kNF,uBADA,uBsDllNM,iBAAA,kBANJ,UACE,iBAAA,kBnDUF,iBAAA,iBHwlNF,sBADA,sBsD5lNM,iBAAA,kBANJ,SACE,iBAAA,kBnDUF,gBAAA,gBHkmNF,qBADA,qBsDtmNM,iBAAA,kBCCN,UACE,iBAAA,eAGF,gBACE,iBAAA,sBCXF,QAAkB,OAAA,IAAA,MAAA,kBAClB,YAAkB,WAAA,IAAA,MAAA,kBAClB,cAAkB,aAAA,IAAA,MAAA,kBAClB,eAAkB,cAAA,IAAA,MAAA,kBAClB,aAAkB,YAAA,IAAA,MAAA,kBAElB,UAAmB,OAAA,YACnB,cAAmB,WAAA,YACnB,gBAAmB,aAAA,YACnB,iBAAmB,cAAA,YACnB,eAAmB,YAAA,YAGjB,gBACE,aAAA,kBADF,kBACE,aAAA,kBADF,gBACE,aAAA,kBADF,aACE,aAAA,kBADF,gBACE,aAAA,kBADF,eACE,aAAA,kBADF,cACE,aAAA,kBADF,aACE,aAAA,kBAIJ,cACE,aAAA,eAOF,YACE,cAAA,gBAGF,SACE,cAAA,iBAGF,aACE,uBAAA,iBACA,wBAAA,iBAGF,eACE,wBAAA,iBACA,2BAAA,iBAGF,gBACE,2BAAA,iBACA,0BAAA,iBAGF,cACE,uBAAA,iBACA,0BAAA,iBAGF,YACE,cAAA,gBAGF,gBACE,cAAA,cAGF,cACE,cAAA,gBAGF,WACE,cAAA,YLxEA,iBACE,QAAA,MACA,MAAA,KACA,QAAA,GMOE,QAAwB,QAAA,eAAxB,UAAwB,QAAA,iBAAxB,gBAAwB,QAAA,uBAAxB,SAAwB,QAAA,gBAAxB,SAAwB,QAAA,gBAAxB,aAAwB,QAAA,oBAAxB,cAAwB,QAAA,qBAAxB,QAAwB,QAAA,sBAAA,QAAA,eAAxB,eAAwB,QAAA,6BAAA,QAAA,sB7CiD1B,yB6CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,sBAAA,QAAA,eAAxB,kBAAwB,QAAA,6BAAA,QAAA,uB7CiD1B,yB6CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,sBAAA,QAAA,eAAxB,kBAAwB,QAAA,6BAAA,QAAA,uB7CiD1B,yB6CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,sBAAA,QAAA,eAAxB,kBAAwB,QAAA,6BAAA,QAAA,uB7CiD1B,0B6CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,sBAAA,QAAA,eAAxB,kBAAwB,QAAA,6BAAA,QAAA,uBAU9B,aAEI,cAAqB,QAAA,eAArB,gBAAqB,QAAA,iBAArB,sBAAqB,QAAA,uBAArB,eAAqB,QAAA,gBAArB,eAAqB,QAAA,gBAArB,mBAAqB,QAAA,oBAArB,oBAAqB,QAAA,qBAArB,cAAqB,QAAA,sBAAA,QAAA,eAArB,qBAAqB,QAAA,6BAAA,QAAA,uBCrBzB,kBACE,SAAA,SACA,QAAA,MACA,MAAA,KACA,QAAA,EACA,SAAA,OALF,0BAQI,QAAA,MACA,QAAA,GATJ,yC1D+8NA,wBADA,yBAEA,yBACA,wB0Dh8NI,SAAA,SACA,IAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,KACA,OAAA,KACA,OAAA,EAQF,gCAEI,YAAA,WAFJ,gCAEI,YAAA,OAFJ,+BAEI,YAAA,IAFJ,+BAEI,YAAA,KCzBF,UAAgC,mBAAA,cAAA,eAAA,cAChC,aAAgC,mBAAA,iBAAA,eAAA,iBAChC,kBAAgC,mBAAA,sBAAA,eAAA,sBAChC,qBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,WAA8B,cAAA,eAAA,UAAA,eAC9B,aAA8B,cAAA,iBAAA,UAAA,iBAC9B,mBAA8B,cAAA,uBAAA,UAAA,uBAC9B,WAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,aAA8B,kBAAA,YAAA,UAAA,YAC9B,aAA8B,kBAAA,YAAA,UAAA,YAC9B,eAA8B,kBAAA,YAAA,YAAA,YAC9B,eAA8B,kBAAA,YAAA,YAAA,YAE9B,uBAAoC,cAAA,gBAAA,gBAAA,qBACpC,qBAAoC,cAAA,cAAA,gBAAA,mBACpC,wBAAoC,cAAA,iBAAA,gBAAA,iBACpC,yBAAoC,cAAA,kBAAA,gBAAA,wBACpC,wBAAoC,cAAA,qBAAA,gBAAA,uBAEpC,mBAAiC,eAAA,gBAAA,YAAA,qBACjC,iBAAiC,eAAA,cAAA,YAAA,mBACjC,oBAAiC,eAAA,iBAAA,YAAA,iBACjC,sBAAiC,eAAA,mBAAA,YAAA,mBACjC,qBAAiC,eAAA,kBAAA,YAAA,kBAEjC,qBAAkC,mBAAA,gBAAA,cAAA,qBAClC,mBAAkC,mBAAA,cAAA,cAAA,mBAClC,sBAAkC,mBAAA,iBAAA,cAAA,iBAClC,uBAAkC,mBAAA,kBAAA,cAAA,wBAClC,sBAAkC,mBAAA,qBAAA,cAAA,uBAClC,uBAAkC,mBAAA,kBAAA,cAAA,kBAElC,iBAAgC,oBAAA,eAAA,WAAA,eAChC,kBAAgC,oBAAA,gBAAA,WAAA,qBAChC,gBAAgC,oBAAA,cAAA,WAAA,mBAChC,mBAAgC,oBAAA,iBAAA,WAAA,iBAChC,qBAAgC,oBAAA,mBAAA,WAAA,mBAChC,oBAAgC,oBAAA,kBAAA,WAAA,kB/CYhC,yB+ClDA,aAAgC,mBAAA,cAAA,eAAA,cAChC,gBAAgC,mBAAA,iBAAA,eAAA,iBAChC,qBAAgC,mBAAA,sBAAA,eAAA,sBAChC,wBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,cAA8B,cAAA,eAAA,UAAA,eAC9B,gBAA8B,cAAA,iBAAA,UAAA,iBAC9B,sBAA8B,cAAA,uBAAA,UAAA,uBAC9B,cAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAE9B,0BAAoC,cAAA,gBAAA,gBAAA,qBACpC,wBAAoC,cAAA,cAAA,gBAAA,mBACpC,2BAAoC,cAAA,iBAAA,gBAAA,iBACpC,4BAAoC,cAAA,kBAAA,gBAAA,wBACpC,2BAAoC,cAAA,qBAAA,gBAAA,uBAEpC,sBAAiC,eAAA,gBAAA,YAAA,qBACjC,oBAAiC,eAAA,cAAA,YAAA,mBACjC,uBAAiC,eAAA,iBAAA,YAAA,iBACjC,yBAAiC,eAAA,mBAAA,YAAA,mBACjC,wBAAiC,eAAA,kBAAA,YAAA,kBAEjC,wBAAkC,mBAAA,gBAAA,cAAA,qBAClC,sBAAkC,mBAAA,cAAA,cAAA,mBAClC,yBAAkC,mBAAA,iBAAA,cAAA,iBAClC,0BAAkC,mBAAA,kBAAA,cAAA,wBAClC,yBAAkC,mBAAA,qBAAA,cAAA,uBAClC,0BAAkC,mBAAA,kBAAA,cAAA,kBAElC,oBAAgC,oBAAA,eAAA,WAAA,eAChC,qBAAgC,oBAAA,gBAAA,WAAA,qBAChC,mBAAgC,oBAAA,cAAA,WAAA,mBAChC,sBAAgC,oBAAA,iBAAA,WAAA,iBAChC,wBAAgC,oBAAA,mBAAA,WAAA,mBAChC,uBAAgC,oBAAA,kBAAA,WAAA,mB/CYhC,yB+ClDA,aAAgC,mBAAA,cAAA,eAAA,cAChC,gBAAgC,mBAAA,iBAAA,eAAA,iBAChC,qBAAgC,mBAAA,sBAAA,eAAA,sBAChC,wBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,cAA8B,cAAA,eAAA,UAAA,eAC9B,gBAA8B,cAAA,iBAAA,UAAA,iBAC9B,sBAA8B,cAAA,uBAAA,UAAA,uBAC9B,cAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAE9B,0BAAoC,cAAA,gBAAA,gBAAA,qBACpC,wBAAoC,cAAA,cAAA,gBAAA,mBACpC,2BAAoC,cAAA,iBAAA,gBAAA,iBACpC,4BAAoC,cAAA,kBAAA,gBAAA,wBACpC,2BAAoC,cAAA,qBAAA,gBAAA,uBAEpC,sBAAiC,eAAA,gBAAA,YAAA,qBACjC,oBAAiC,eAAA,cAAA,YAAA,mBACjC,uBAAiC,eAAA,iBAAA,YAAA,iBACjC,yBAAiC,eAAA,mBAAA,YAAA,mBACjC,wBAAiC,eAAA,kBAAA,YAAA,kBAEjC,wBAAkC,mBAAA,gBAAA,cAAA,qBAClC,sBAAkC,mBAAA,cAAA,cAAA,mBAClC,yBAAkC,mBAAA,iBAAA,cAAA,iBAClC,0BAAkC,mBAAA,kBAAA,cAAA,wBAClC,yBAAkC,mBAAA,qBAAA,cAAA,uBAClC,0BAAkC,mBAAA,kBAAA,cAAA,kBAElC,oBAAgC,oBAAA,eAAA,WAAA,eAChC,qBAAgC,oBAAA,gBAAA,WAAA,qBAChC,mBAAgC,oBAAA,cAAA,WAAA,mBAChC,sBAAgC,oBAAA,iBAAA,WAAA,iBAChC,wBAAgC,oBAAA,mBAAA,WAAA,mBAChC,uBAAgC,oBAAA,kBAAA,WAAA,mB/CYhC,yB+ClDA,aAAgC,mBAAA,cAAA,eAAA,cAChC,gBAAgC,mBAAA,iBAAA,eAAA,iBAChC,qBAAgC,mBAAA,sBAAA,eAAA,sBAChC,wBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,cAA8B,cAAA,eAAA,UAAA,eAC9B,gBAA8B,cAAA,iBAAA,UAAA,iBAC9B,sBAA8B,cAAA,uBAAA,UAAA,uBAC9B,cAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAE9B,0BAAoC,cAAA,gBAAA,gBAAA,qBACpC,wBAAoC,cAAA,cAAA,gBAAA,mBACpC,2BAAoC,cAAA,iBAAA,gBAAA,iBACpC,4BAAoC,cAAA,kBAAA,gBAAA,wBACpC,2BAAoC,cAAA,qBAAA,gBAAA,uBAEpC,sBAAiC,eAAA,gBAAA,YAAA,qBACjC,oBAAiC,eAAA,cAAA,YAAA,mBACjC,uBAAiC,eAAA,iBAAA,YAAA,iBACjC,yBAAiC,eAAA,mBAAA,YAAA,mBACjC,wBAAiC,eAAA,kBAAA,YAAA,kBAEjC,wBAAkC,mBAAA,gBAAA,cAAA,qBAClC,sBAAkC,mBAAA,cAAA,cAAA,mBAClC,yBAAkC,mBAAA,iBAAA,cAAA,iBAClC,0BAAkC,mBAAA,kBAAA,cAAA,wBAClC,yBAAkC,mBAAA,qBAAA,cAAA,uBAClC,0BAAkC,mBAAA,kBAAA,cAAA,kBAElC,oBAAgC,oBAAA,eAAA,WAAA,eAChC,qBAAgC,oBAAA,gBAAA,WAAA,qBAChC,mBAAgC,oBAAA,cAAA,WAAA,mBAChC,sBAAgC,oBAAA,iBAAA,WAAA,iBAChC,wBAAgC,oBAAA,mBAAA,WAAA,mBAChC,uBAAgC,oBAAA,kBAAA,WAAA,mB/CYhC,0B+ClDA,aAAgC,mBAAA,cAAA,eAAA,cAChC,gBAAgC,mBAAA,iBAAA,eAAA,iBAChC,qBAAgC,mBAAA,sBAAA,eAAA,sBAChC,wBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,cAA8B,cAAA,eAAA,UAAA,eAC9B,gBAA8B,cAAA,iBAAA,UAAA,iBAC9B,sBAA8B,cAAA,uBAAA,UAAA,uBAC9B,cAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAE9B,0BAAoC,cAAA,gBAAA,gBAAA,qBACpC,wBAAoC,cAAA,cAAA,gBAAA,mBACpC,2BAAoC,cAAA,iBAAA,gBAAA,iBACpC,4BAAoC,cAAA,kBAAA,gBAAA,wBACpC,2BAAoC,cAAA,qBAAA,gBAAA,uBAEpC,sBAAiC,eAAA,gBAAA,YAAA,qBACjC,oBAAiC,eAAA,cAAA,YAAA,mBACjC,uBAAiC,eAAA,iBAAA,YAAA,iBACjC,yBAAiC,eAAA,mBAAA,YAAA,mBACjC,wBAAiC,eAAA,kBAAA,YAAA,kBAEjC,wBAAkC,mBAAA,gBAAA,cAAA,qBAClC,sBAAkC,mBAAA,cAAA,cAAA,mBAClC,yBAAkC,mBAAA,iBAAA,cAAA,iBAClC,0BAAkC,mBAAA,kBAAA,cAAA,wBAClC,yBAAkC,mBAAA,qBAAA,cAAA,uBAClC,0BAAkC,mBAAA,kBAAA,cAAA,kBAElC,oBAAgC,oBAAA,eAAA,WAAA,eAChC,qBAAgC,oBAAA,gBAAA,WAAA,qBAChC,mBAAgC,oBAAA,cAAA,WAAA,mBAChC,sBAAgC,oBAAA,iBAAA,WAAA,iBAChC,wBAAgC,oBAAA,mBAAA,WAAA,mBAChC,uBAAgC,oBAAA,kBAAA,WAAA,mBC1ChC,YAAwB,MAAA,eACxB,aAAwB,MAAA,gBACxB,YAAwB,MAAA,ehDoDxB,yBgDtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBhDoDxB,yBgDtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBhDoDxB,yBgDtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBhDoDxB,0BgDtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBCL1B,eAAsB,SAAA,eAAtB,iBAAsB,SAAA,iBCCtB,iBAAyB,SAAA,iBAAzB,mBAAyB,SAAA,mBAAzB,mBAAyB,SAAA,mBAAzB,gBAAyB,SAAA,gBAAzB,iBAAyB,SAAA,yBAAA,SAAA,iBAK3B,WACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,KAGF,cACE,SAAA,MACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KAI4B,2DAD9B,YAEI,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MCzBJ,SCEE,SAAA,SACA,MAAA,IACA,OAAA,IACA,QAAA,EACA,OAAA,KACA,SAAA,OACA,KAAA,cACA,YAAA,OACA,OAAA,EAUA,0BAAA,yBAEE,SAAA,OACA,MAAA,KACA,OAAA,KACA,SAAA,QACA,KAAA,KACA,YAAA,OC7BJ,WAAa,WAAA,EAAA,QAAA,OAAA,2BACb,QAAU,WAAA,EAAA,MAAA,KAAA,0BACV,WAAa,WAAA,EAAA,KAAA,KAAA,2BACb,aAAe,WAAA,eCCX,MAAuB,MAAA,cAAvB,MAAuB,MAAA,cAAvB,MAAuB,MAAA,cAAvB,OAAuB,MAAA,eAAvB,QAAuB,MAAA,eAAvB,MAAuB,OAAA,cAAvB,MAAuB,OAAA,cAAvB,MAAuB,OAAA,cAAvB,OAAuB,OAAA,eAAvB,QAAuB,OAAA,eAI3B,QAAU,UAAA,eACV,QAAU,WAAA,eAIV,YAAc,UAAA,gBACd,YAAc,WAAA,gBAEd,QAAU,MAAA,gBACV,QAAU,OAAA,gBCfV,uBAEI,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EAEA,eAAA,KACA,QAAA,GAEA,iBAAA,cCNI,KAAgC,OAAA,YAChC,MpEg6PR,MoE95PU,WAAA,YAEF,MpEi6PR,MoE/5PU,aAAA,YAEF,MpEk6PR,MoEh6PU,cAAA,YAEF,MpEm6PR,MoEj6PU,YAAA,YAfF,KAAgC,OAAA,iBAChC,MpEw7PR,MoEt7PU,WAAA,iBAEF,MpEy7PR,MoEv7PU,aAAA,iBAEF,MpE07PR,MoEx7PU,cAAA,iBAEF,MpE27PR,MoEz7PU,YAAA,iBAfF,KAAgC,OAAA,gBAChC,MpEg9PR,MoE98PU,WAAA,gBAEF,MpEi9PR,MoE/8PU,aAAA,gBAEF,MpEk9PR,MoEh9PU,cAAA,gBAEF,MpEm9PR,MoEj9PU,YAAA,gBAfF,KAAgC,OAAA,eAChC,MpEw+PR,MoEt+PU,WAAA,eAEF,MpEy+PR,MoEv+PU,aAAA,eAEF,MpE0+PR,MoEx+PU,cAAA,eAEF,MpE2+PR,MoEz+PU,YAAA,eAfF,KAAgC,OAAA,iBAChC,MpEggQR,MoE9/PU,WAAA,iBAEF,MpEigQR,MoE//PU,aAAA,iBAEF,MpEkgQR,MoEhgQU,cAAA,iBAEF,MpEmgQR,MoEjgQU,YAAA,iBAfF,KAAgC,OAAA,eAChC,MpEwhQR,MoEthQU,WAAA,eAEF,MpEyhQR,MoEvhQU,aAAA,eAEF,MpE0hQR,MoExhQU,cAAA,eAEF,MpE2hQR,MoEzhQU,YAAA,eAfF,KAAgC,QAAA,YAChC,MpEgjQR,MoE9iQU,YAAA,YAEF,MpEijQR,MoE/iQU,cAAA,YAEF,MpEkjQR,MoEhjQU,eAAA,YAEF,MpEmjQR,MoEjjQU,aAAA,YAfF,KAAgC,QAAA,iBAChC,MpEwkQR,MoEtkQU,YAAA,iBAEF,MpEykQR,MoEvkQU,cAAA,iBAEF,MpE0kQR,MoExkQU,eAAA,iBAEF,MpE2kQR,MoEzkQU,aAAA,iBAfF,KAAgC,QAAA,gBAChC,MpEgmQR,MoE9lQU,YAAA,gBAEF,MpEimQR,MoE/lQU,cAAA,gBAEF,MpEkmQR,MoEhmQU,eAAA,gBAEF,MpEmmQR,MoEjmQU,aAAA,gBAfF,KAAgC,QAAA,eAChC,MpEwnQR,MoEtnQU,YAAA,eAEF,MpEynQR,MoEvnQU,cAAA,eAEF,MpE0nQR,MoExnQU,eAAA,eAEF,MpE2nQR,MoEznQU,aAAA,eAfF,KAAgC,QAAA,iBAChC,MpEgpQR,MoE9oQU,YAAA,iBAEF,MpEipQR,MoE/oQU,cAAA,iBAEF,MpEkpQR,MoEhpQU,eAAA,iBAEF,MpEmpQR,MoEjpQU,aAAA,iBAfF,KAAgC,QAAA,eAChC,MpEwqQR,MoEtqQU,YAAA,eAEF,MpEyqQR,MoEvqQU,cAAA,eAEF,MpE0qQR,MoExqQU,eAAA,eAEF,MpE2qQR,MoEzqQU,aAAA,eAQF,MAAwB,OAAA,kBACxB,OpEyqQR,OoEvqQU,WAAA,kBAEF,OpE0qQR,OoExqQU,aAAA,kBAEF,OpE2qQR,OoEzqQU,cAAA,kBAEF,OpE4qQR,OoE1qQU,YAAA,kBAfF,MAAwB,OAAA,iBACxB,OpEisQR,OoE/rQU,WAAA,iBAEF,OpEksQR,OoEhsQU,aAAA,iBAEF,OpEmsQR,OoEjsQU,cAAA,iBAEF,OpEosQR,OoElsQU,YAAA,iBAfF,MAAwB,OAAA,gBACxB,OpEytQR,OoEvtQU,WAAA,gBAEF,OpE0tQR,OoExtQU,aAAA,gBAEF,OpE2tQR,OoEztQU,cAAA,gBAEF,OpE4tQR,OoE1tQU,YAAA,gBAfF,MAAwB,OAAA,kBACxB,OpEivQR,OoE/uQU,WAAA,kBAEF,OpEkvQR,OoEhvQU,aAAA,kBAEF,OpEmvQR,OoEjvQU,cAAA,kBAEF,OpEovQR,OoElvQU,YAAA,kBAfF,MAAwB,OAAA,gBACxB,OpEywQR,OoEvwQU,WAAA,gBAEF,OpE0wQR,OoExwQU,aAAA,gBAEF,OpE2wQR,OoEzwQU,cAAA,gBAEF,OpE4wQR,OoE1wQU,YAAA,gBAMN,QAAmB,OAAA,eACnB,SpE4wQJ,SoE1wQM,WAAA,eAEF,SpE6wQJ,SoE3wQM,aAAA,eAEF,SpE8wQJ,SoE5wQM,cAAA,eAEF,SpE+wQJ,SoE7wQM,YAAA,exDTF,yBwDlDI,QAAgC,OAAA,YAChC,SpEg1QN,SoE90QQ,WAAA,YAEF,SpEg1QN,SoE90QQ,aAAA,YAEF,SpEg1QN,SoE90QQ,cAAA,YAEF,SpEg1QN,SoE90QQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SpEm2QN,SoEj2QQ,WAAA,iBAEF,SpEm2QN,SoEj2QQ,aAAA,iBAEF,SpEm2QN,SoEj2QQ,cAAA,iBAEF,SpEm2QN,SoEj2QQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SpEs3QN,SoEp3QQ,WAAA,gBAEF,SpEs3QN,SoEp3QQ,aAAA,gBAEF,SpEs3QN,SoEp3QQ,cAAA,gBAEF,SpEs3QN,SoEp3QQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SpEy4QN,SoEv4QQ,WAAA,eAEF,SpEy4QN,SoEv4QQ,aAAA,eAEF,SpEy4QN,SoEv4QQ,cAAA,eAEF,SpEy4QN,SoEv4QQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SpE45QN,SoE15QQ,WAAA,iBAEF,SpE45QN,SoE15QQ,aAAA,iBAEF,SpE45QN,SoE15QQ,cAAA,iBAEF,SpE45QN,SoE15QQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SpE+6QN,SoE76QQ,WAAA,eAEF,SpE+6QN,SoE76QQ,aAAA,eAEF,SpE+6QN,SoE76QQ,cAAA,eAEF,SpE+6QN,SoE76QQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SpEk8QN,SoEh8QQ,YAAA,YAEF,SpEk8QN,SoEh8QQ,cAAA,YAEF,SpEk8QN,SoEh8QQ,eAAA,YAEF,SpEk8QN,SoEh8QQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SpEq9QN,SoEn9QQ,YAAA,iBAEF,SpEq9QN,SoEn9QQ,cAAA,iBAEF,SpEq9QN,SoEn9QQ,eAAA,iBAEF,SpEq9QN,SoEn9QQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SpEw+QN,SoEt+QQ,YAAA,gBAEF,SpEw+QN,SoEt+QQ,cAAA,gBAEF,SpEw+QN,SoEt+QQ,eAAA,gBAEF,SpEw+QN,SoEt+QQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SpE2/QN,SoEz/QQ,YAAA,eAEF,SpE2/QN,SoEz/QQ,cAAA,eAEF,SpE2/QN,SoEz/QQ,eAAA,eAEF,SpE2/QN,SoEz/QQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SpE8gRN,SoE5gRQ,YAAA,iBAEF,SpE8gRN,SoE5gRQ,cAAA,iBAEF,SpE8gRN,SoE5gRQ,eAAA,iBAEF,SpE8gRN,SoE5gRQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SpEiiRN,SoE/hRQ,YAAA,eAEF,SpEiiRN,SoE/hRQ,cAAA,eAEF,SpEiiRN,SoE/hRQ,eAAA,eAEF,SpEiiRN,SoE/hRQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UpE6hRN,UoE3hRQ,WAAA,kBAEF,UpE6hRN,UoE3hRQ,aAAA,kBAEF,UpE6hRN,UoE3hRQ,cAAA,kBAEF,UpE6hRN,UoE3hRQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UpEgjRN,UoE9iRQ,WAAA,iBAEF,UpEgjRN,UoE9iRQ,aAAA,iBAEF,UpEgjRN,UoE9iRQ,cAAA,iBAEF,UpEgjRN,UoE9iRQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UpEmkRN,UoEjkRQ,WAAA,gBAEF,UpEmkRN,UoEjkRQ,aAAA,gBAEF,UpEmkRN,UoEjkRQ,cAAA,gBAEF,UpEmkRN,UoEjkRQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UpEslRN,UoEplRQ,WAAA,kBAEF,UpEslRN,UoEplRQ,aAAA,kBAEF,UpEslRN,UoEplRQ,cAAA,kBAEF,UpEslRN,UoEplRQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UpEymRN,UoEvmRQ,WAAA,gBAEF,UpEymRN,UoEvmRQ,aAAA,gBAEF,UpEymRN,UoEvmRQ,cAAA,gBAEF,UpEymRN,UoEvmRQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YpEumRF,YoErmRI,WAAA,eAEF,YpEumRF,YoErmRI,aAAA,eAEF,YpEumRF,YoErmRI,cAAA,eAEF,YpEumRF,YoErmRI,YAAA,gBxDTF,yBwDlDI,QAAgC,OAAA,YAChC,SpEyqRN,SoEvqRQ,WAAA,YAEF,SpEyqRN,SoEvqRQ,aAAA,YAEF,SpEyqRN,SoEvqRQ,cAAA,YAEF,SpEyqRN,SoEvqRQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SpE4rRN,SoE1rRQ,WAAA,iBAEF,SpE4rRN,SoE1rRQ,aAAA,iBAEF,SpE4rRN,SoE1rRQ,cAAA,iBAEF,SpE4rRN,SoE1rRQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SpE+sRN,SoE7sRQ,WAAA,gBAEF,SpE+sRN,SoE7sRQ,aAAA,gBAEF,SpE+sRN,SoE7sRQ,cAAA,gBAEF,SpE+sRN,SoE7sRQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SpEkuRN,SoEhuRQ,WAAA,eAEF,SpEkuRN,SoEhuRQ,aAAA,eAEF,SpEkuRN,SoEhuRQ,cAAA,eAEF,SpEkuRN,SoEhuRQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SpEqvRN,SoEnvRQ,WAAA,iBAEF,SpEqvRN,SoEnvRQ,aAAA,iBAEF,SpEqvRN,SoEnvRQ,cAAA,iBAEF,SpEqvRN,SoEnvRQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SpEwwRN,SoEtwRQ,WAAA,eAEF,SpEwwRN,SoEtwRQ,aAAA,eAEF,SpEwwRN,SoEtwRQ,cAAA,eAEF,SpEwwRN,SoEtwRQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SpE2xRN,SoEzxRQ,YAAA,YAEF,SpE2xRN,SoEzxRQ,cAAA,YAEF,SpE2xRN,SoEzxRQ,eAAA,YAEF,SpE2xRN,SoEzxRQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SpE8yRN,SoE5yRQ,YAAA,iBAEF,SpE8yRN,SoE5yRQ,cAAA,iBAEF,SpE8yRN,SoE5yRQ,eAAA,iBAEF,SpE8yRN,SoE5yRQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SpEi0RN,SoE/zRQ,YAAA,gBAEF,SpEi0RN,SoE/zRQ,cAAA,gBAEF,SpEi0RN,SoE/zRQ,eAAA,gBAEF,SpEi0RN,SoE/zRQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SpEo1RN,SoEl1RQ,YAAA,eAEF,SpEo1RN,SoEl1RQ,cAAA,eAEF,SpEo1RN,SoEl1RQ,eAAA,eAEF,SpEo1RN,SoEl1RQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SpEu2RN,SoEr2RQ,YAAA,iBAEF,SpEu2RN,SoEr2RQ,cAAA,iBAEF,SpEu2RN,SoEr2RQ,eAAA,iBAEF,SpEu2RN,SoEr2RQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SpE03RN,SoEx3RQ,YAAA,eAEF,SpE03RN,SoEx3RQ,cAAA,eAEF,SpE03RN,SoEx3RQ,eAAA,eAEF,SpE03RN,SoEx3RQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UpEs3RN,UoEp3RQ,WAAA,kBAEF,UpEs3RN,UoEp3RQ,aAAA,kBAEF,UpEs3RN,UoEp3RQ,cAAA,kBAEF,UpEs3RN,UoEp3RQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UpEy4RN,UoEv4RQ,WAAA,iBAEF,UpEy4RN,UoEv4RQ,aAAA,iBAEF,UpEy4RN,UoEv4RQ,cAAA,iBAEF,UpEy4RN,UoEv4RQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UpE45RN,UoE15RQ,WAAA,gBAEF,UpE45RN,UoE15RQ,aAAA,gBAEF,UpE45RN,UoE15RQ,cAAA,gBAEF,UpE45RN,UoE15RQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UpE+6RN,UoE76RQ,WAAA,kBAEF,UpE+6RN,UoE76RQ,aAAA,kBAEF,UpE+6RN,UoE76RQ,cAAA,kBAEF,UpE+6RN,UoE76RQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UpEk8RN,UoEh8RQ,WAAA,gBAEF,UpEk8RN,UoEh8RQ,aAAA,gBAEF,UpEk8RN,UoEh8RQ,cAAA,gBAEF,UpEk8RN,UoEh8RQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YpEg8RF,YoE97RI,WAAA,eAEF,YpEg8RF,YoE97RI,aAAA,eAEF,YpEg8RF,YoE97RI,cAAA,eAEF,YpEg8RF,YoE97RI,YAAA,gBxDTF,yBwDlDI,QAAgC,OAAA,YAChC,SpEkgSN,SoEhgSQ,WAAA,YAEF,SpEkgSN,SoEhgSQ,aAAA,YAEF,SpEkgSN,SoEhgSQ,cAAA,YAEF,SpEkgSN,SoEhgSQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SpEqhSN,SoEnhSQ,WAAA,iBAEF,SpEqhSN,SoEnhSQ,aAAA,iBAEF,SpEqhSN,SoEnhSQ,cAAA,iBAEF,SpEqhSN,SoEnhSQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SpEwiSN,SoEtiSQ,WAAA,gBAEF,SpEwiSN,SoEtiSQ,aAAA,gBAEF,SpEwiSN,SoEtiSQ,cAAA,gBAEF,SpEwiSN,SoEtiSQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SpE2jSN,SoEzjSQ,WAAA,eAEF,SpE2jSN,SoEzjSQ,aAAA,eAEF,SpE2jSN,SoEzjSQ,cAAA,eAEF,SpE2jSN,SoEzjSQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SpE8kSN,SoE5kSQ,WAAA,iBAEF,SpE8kSN,SoE5kSQ,aAAA,iBAEF,SpE8kSN,SoE5kSQ,cAAA,iBAEF,SpE8kSN,SoE5kSQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SpEimSN,SoE/lSQ,WAAA,eAEF,SpEimSN,SoE/lSQ,aAAA,eAEF,SpEimSN,SoE/lSQ,cAAA,eAEF,SpEimSN,SoE/lSQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SpEonSN,SoElnSQ,YAAA,YAEF,SpEonSN,SoElnSQ,cAAA,YAEF,SpEonSN,SoElnSQ,eAAA,YAEF,SpEonSN,SoElnSQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SpEuoSN,SoEroSQ,YAAA,iBAEF,SpEuoSN,SoEroSQ,cAAA,iBAEF,SpEuoSN,SoEroSQ,eAAA,iBAEF,SpEuoSN,SoEroSQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SpE0pSN,SoExpSQ,YAAA,gBAEF,SpE0pSN,SoExpSQ,cAAA,gBAEF,SpE0pSN,SoExpSQ,eAAA,gBAEF,SpE0pSN,SoExpSQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SpE6qSN,SoE3qSQ,YAAA,eAEF,SpE6qSN,SoE3qSQ,cAAA,eAEF,SpE6qSN,SoE3qSQ,eAAA,eAEF,SpE6qSN,SoE3qSQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SpEgsSN,SoE9rSQ,YAAA,iBAEF,SpEgsSN,SoE9rSQ,cAAA,iBAEF,SpEgsSN,SoE9rSQ,eAAA,iBAEF,SpEgsSN,SoE9rSQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SpEmtSN,SoEjtSQ,YAAA,eAEF,SpEmtSN,SoEjtSQ,cAAA,eAEF,SpEmtSN,SoEjtSQ,eAAA,eAEF,SpEmtSN,SoEjtSQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UpE+sSN,UoE7sSQ,WAAA,kBAEF,UpE+sSN,UoE7sSQ,aAAA,kBAEF,UpE+sSN,UoE7sSQ,cAAA,kBAEF,UpE+sSN,UoE7sSQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UpEkuSN,UoEhuSQ,WAAA,iBAEF,UpEkuSN,UoEhuSQ,aAAA,iBAEF,UpEkuSN,UoEhuSQ,cAAA,iBAEF,UpEkuSN,UoEhuSQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UpEqvSN,UoEnvSQ,WAAA,gBAEF,UpEqvSN,UoEnvSQ,aAAA,gBAEF,UpEqvSN,UoEnvSQ,cAAA,gBAEF,UpEqvSN,UoEnvSQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UpEwwSN,UoEtwSQ,WAAA,kBAEF,UpEwwSN,UoEtwSQ,aAAA,kBAEF,UpEwwSN,UoEtwSQ,cAAA,kBAEF,UpEwwSN,UoEtwSQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UpE2xSN,UoEzxSQ,WAAA,gBAEF,UpE2xSN,UoEzxSQ,aAAA,gBAEF,UpE2xSN,UoEzxSQ,cAAA,gBAEF,UpE2xSN,UoEzxSQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YpEyxSF,YoEvxSI,WAAA,eAEF,YpEyxSF,YoEvxSI,aAAA,eAEF,YpEyxSF,YoEvxSI,cAAA,eAEF,YpEyxSF,YoEvxSI,YAAA,gBxDTF,0BwDlDI,QAAgC,OAAA,YAChC,SpE21SN,SoEz1SQ,WAAA,YAEF,SpE21SN,SoEz1SQ,aAAA,YAEF,SpE21SN,SoEz1SQ,cAAA,YAEF,SpE21SN,SoEz1SQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SpE82SN,SoE52SQ,WAAA,iBAEF,SpE82SN,SoE52SQ,aAAA,iBAEF,SpE82SN,SoE52SQ,cAAA,iBAEF,SpE82SN,SoE52SQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SpEi4SN,SoE/3SQ,WAAA,gBAEF,SpEi4SN,SoE/3SQ,aAAA,gBAEF,SpEi4SN,SoE/3SQ,cAAA,gBAEF,SpEi4SN,SoE/3SQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SpEo5SN,SoEl5SQ,WAAA,eAEF,SpEo5SN,SoEl5SQ,aAAA,eAEF,SpEo5SN,SoEl5SQ,cAAA,eAEF,SpEo5SN,SoEl5SQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SpEu6SN,SoEr6SQ,WAAA,iBAEF,SpEu6SN,SoEr6SQ,aAAA,iBAEF,SpEu6SN,SoEr6SQ,cAAA,iBAEF,SpEu6SN,SoEr6SQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SpE07SN,SoEx7SQ,WAAA,eAEF,SpE07SN,SoEx7SQ,aAAA,eAEF,SpE07SN,SoEx7SQ,cAAA,eAEF,SpE07SN,SoEx7SQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SpE68SN,SoE38SQ,YAAA,YAEF,SpE68SN,SoE38SQ,cAAA,YAEF,SpE68SN,SoE38SQ,eAAA,YAEF,SpE68SN,SoE38SQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SpEg+SN,SoE99SQ,YAAA,iBAEF,SpEg+SN,SoE99SQ,cAAA,iBAEF,SpEg+SN,SoE99SQ,eAAA,iBAEF,SpEg+SN,SoE99SQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SpEm/SN,SoEj/SQ,YAAA,gBAEF,SpEm/SN,SoEj/SQ,cAAA,gBAEF,SpEm/SN,SoEj/SQ,eAAA,gBAEF,SpEm/SN,SoEj/SQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SpEsgTN,SoEpgTQ,YAAA,eAEF,SpEsgTN,SoEpgTQ,cAAA,eAEF,SpEsgTN,SoEpgTQ,eAAA,eAEF,SpEsgTN,SoEpgTQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SpEyhTN,SoEvhTQ,YAAA,iBAEF,SpEyhTN,SoEvhTQ,cAAA,iBAEF,SpEyhTN,SoEvhTQ,eAAA,iBAEF,SpEyhTN,SoEvhTQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SpE4iTN,SoE1iTQ,YAAA,eAEF,SpE4iTN,SoE1iTQ,cAAA,eAEF,SpE4iTN,SoE1iTQ,eAAA,eAEF,SpE4iTN,SoE1iTQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UpEwiTN,UoEtiTQ,WAAA,kBAEF,UpEwiTN,UoEtiTQ,aAAA,kBAEF,UpEwiTN,UoEtiTQ,cAAA,kBAEF,UpEwiTN,UoEtiTQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UpE2jTN,UoEzjTQ,WAAA,iBAEF,UpE2jTN,UoEzjTQ,aAAA,iBAEF,UpE2jTN,UoEzjTQ,cAAA,iBAEF,UpE2jTN,UoEzjTQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UpE8kTN,UoE5kTQ,WAAA,gBAEF,UpE8kTN,UoE5kTQ,aAAA,gBAEF,UpE8kTN,UoE5kTQ,cAAA,gBAEF,UpE8kTN,UoE5kTQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UpEimTN,UoE/lTQ,WAAA,kBAEF,UpEimTN,UoE/lTQ,aAAA,kBAEF,UpEimTN,UoE/lTQ,cAAA,kBAEF,UpEimTN,UoE/lTQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UpEonTN,UoElnTQ,WAAA,gBAEF,UpEonTN,UoElnTQ,aAAA,gBAEF,UpEonTN,UoElnTQ,cAAA,gBAEF,UpEonTN,UoElnTQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YpEknTF,YoEhnTI,WAAA,eAEF,YpEknTF,YoEhnTI,aAAA,eAEF,YpEknTF,YoEhnTI,cAAA,eAEF,YpEknTF,YoEhnTI,YAAA,gBC/DN,gBAAkB,YAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,oBAIlB,cAAiB,WAAA,kBACjB,WAAiB,YAAA,iBACjB,aAAiB,YAAA,iBACjB,eCTE,SAAA,OACA,cAAA,SACA,YAAA,ODeE,WAAwB,WAAA,eACxB,YAAwB,WAAA,gBACxB,aAAwB,WAAA,iBzDqCxB,yByDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBzDqCxB,yByDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBzDqCxB,yByDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBzDqCxB,0ByDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBAM5B,gBAAmB,eAAA,oBACnB,gBAAmB,eAAA,oBACnB,iBAAmB,eAAA,qBAInB,mBAAuB,YAAA,cACvB,qBAAuB,YAAA,kBACvB,oBAAuB,YAAA,cACvB,kBAAuB,YAAA,cACvB,oBAAuB,YAAA,iBACvB,aAAuB,WAAA,iBAIvB,YAAc,MAAA,eEvCZ,cACE,MAAA,kBpEUF,qBAAA,qBoELM,MAAA,kBANN,gBACE,MAAA,kBpEUF,uBAAA,uBoELM,MAAA,kBANN,cACE,MAAA,kBpEUF,qBAAA,qBoELM,MAAA,kBANN,WACE,MAAA,kBpEUF,kBAAA,kBoELM,MAAA,kBANN,cACE,MAAA,kBpEUF,qBAAA,qBoELM,MAAA,kBANN,aACE,MAAA,kBpEUF,oBAAA,oBoELM,MAAA,kBANN,YACE,MAAA,kBpEUF,mBAAA,mBoELM,MAAA,kBANN,WACE,MAAA,kBpEUF,kBAAA,kBoELM,MAAA,kBFuCR,WAAa,MAAA,kBACb,YAAc,MAAA,kBAEd,eAAiB,MAAA,yBACjB,eAAiB,MAAA,+BAIjB,WGvDE,KAAA,CAAA,CAAA,EAAA,EACA,MAAA,YACA,YAAA,KACA,iBAAA,YACA,OAAA,EHuDF,sBAAwB,gBAAA,eAExB,YACE,WAAA,qBACA,cAAA,qBAKF,YAAc,MAAA,kBIjEd,SACE,WAAA,kBAGF,WACE,WAAA,iBCAA,a3EOF,ECk5TE,QADA,S0El5TI,YAAA,eAEA,WAAA,eAGF,YAEI,gBAAA,UASJ,mBACE,QAAA,KAAA,YAAA,I3E8LN,I2E/KM,YAAA,mB1Ei4TJ,W0E/3TE,IAEE,OAAA,IAAA,MAAA,QACA,kBAAA,MAQF,MACE,QAAA,mB1E23TJ,I0Ex3TE,GAEE,kBAAA,M1E03TJ,GACA,G0Ex3TE,EAGE,QAAA,EACA,OAAA,EAGF,G1Es3TF,G0Ep3TI,iBAAA,MAQF,MACE,KAAA,G3E5CN,K2E+CM,UAAA,gBhEtFJ,WgEyFI,UAAA,gB5C9EN,Q4CmFM,QAAA,KvC/FN,OuCkGM,OAAA,IAAA,MAAA,K5DnGN,O4DuGM,gBAAA,mBADF,U1Eg3TF,U0E32TM,iBAAA,e1E+2TN,mBcl7TF,mB4D0EQ,OAAA,IAAA,MAAA,kB5DWR,Y4DNM,MAAA,Q1E42TJ,wBAFA,eeh+TA,efi+TA,qB0Er2TM,aAAA,Q5DlBR,sB4DuBM,MAAA,QACA,aAAA","sourcesContent":["/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 0%;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n -ms-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n -webkit-transform: scale(1.02);\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Remove select outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $input-color;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: add($input-padding-y-lg, $input-border-width);\n padding-bottom: add($input-padding-y-lg, $input-border-width);\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: add($input-padding-y-sm, $input-border-width);\n padding-bottom: add($input-padding-y-sm, $input-border-width);\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: $input-padding-y 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n @include font-size($input-font-size);\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .form-check-label,\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n @if ($state == \"valid\" or $state == \"invalid\") {\n .was-validated #{if(&, \"&\", \"\")}:#{$state},\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n } @else {\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n .form-control {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: escape-svg($icon);\n background-repeat: no-repeat;\n background-position: right $input-height-inner-quarter center;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, escape-svg($icon) $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n .form-check-input {\n @include form-validation-state-selector($state) {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n @include form-validation-state-selector($state) {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n @include form-validation-state-selector($state) {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n white-space: $btn-white-space;\n vertical-align: middle;\n cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover() {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover() {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover() {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus() {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down() {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up() {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right() {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left() {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down();\n } @else if $direction == up {\n @include caret-up();\n } @else if $direction == right {\n @include caret-right();\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left();\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n @include deprecate(\"The `nav-divider()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover() {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 0%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n width: $custom-control-indicator-size;\n height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled],\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n color: $custom-control-label-color;\n vertical-align: top;\n cursor: $custom-control-cursor;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-checked);\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-radio-indicator-icon-checked);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);\n left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-background;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;\n } @else {\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n\n // Remove outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $custom-select-color;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .custom-file-label,\n &:disabled ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus() {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus() {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n %container-flex-properties {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n\n .container,\n .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n @extend %container-flex-properties;\n }\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n %container-navbar-expand-#{$breakpoint} {\n padding-right: 0;\n padding-left: 0;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n %container-nesting-#{$breakpoint} {\n flex-wrap: nowrap;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-nesting-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-nesting-#{$breakpoint};\n }\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus() {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus() {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-light-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus() {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus() {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus() {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-dark-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus() {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: $card-height;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n // Workaround for the image size bug in IE\n // See: https://github.com/twbs/bootstrap/pull/28855\n min-height: 1px;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover() {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n > .card {\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:not(:first-of-type) {\n @include border-top-radius(0);\n }\n\n > .card-header {\n @include border-radius(0);\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n @include font-size($breadcrumb-font-size);\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: escape-svg($breadcrumb-divider);\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 3;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 3;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n @include transition($badge-transition);\n\n @at-root a#{&} {\n @include hover-focus() {\n text-decoration: none;\n }\n }\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n @at-root a#{&} {\n @include hover-focus() {\n color: color-yiq($bg);\n background-color: darken($bg, 10%);\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus() {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n color: $list-group-color;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($list-group-border-radius);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n\n & + & {\n border-top-width: 0;\n\n &.active {\n margin-top: -$list-group-border-width;\n border-top-width: $list-group-border-width;\n }\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n .list-group-item {\n &:first-child {\n @include border-bottom-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n @include border-top-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n & + .list-group-item {\n border-top-width: $list-group-border-width;\n border-left-width: 0;\n\n &.active {\n margin-left: -$list-group-border-width;\n border-left-width: $list-group-border-width;\n }\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n @include border-radius(0);\n\n &:first-child {\n border-top-width: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n border-bottom-width: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus() {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover() {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus() {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n max-width: $toast-max-width;\n overflow: hidden; // cheap rounded corners on nested items\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n backdrop-filter: blur(10px);\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n\n // When trying to close, animate focus to scale\n .modal.modal-static & {\n transform: $modal-scale-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: subtract(100%, $modal-dialog-margin * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: subtract(100%, $modal-dialog-margin * 2);\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: subtract(100vh, $modal-dialog-margin * 2);\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-inner-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when there should be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding - $modal-footer-margin-between / 2;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-inner-border-radius);\n\n // Place margin between footer elements\n // This solution is far from ideal because of the universal selector usage,\n // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n // stylelint-disable-next-line selector-max-universal\n > * {\n margin: $modal-footer-margin-between / 2;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n }\n }\n\n .modal-dialog-centered {\n min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n &::before {\n height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text() {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $popover-border-radius;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .arrow {\n bottom: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .arrow {\n left: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .arrow {\n top: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .arrow {\n right: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n @include border-top-radius($popover-inner-border-radius);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(opacity 0s $carousel-transition-duration);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus() {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus() {\n background-color: darken($color, 10%) !important;\n }\n }\n @include deprecate(\"The `bg-variant` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value, true);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-blacklist, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate(); }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value, true);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // IE & < Edge 18\n overflow-wrap: break-word !important;\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus() {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n @include deprecate(\"`text-emphasis-variant()`\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} diff --git a/tests/calendar_utils/conftest.py b/tests/calendar_utils/conftest.py index dff52c421e8ab87857ccc2ed143e5dc33a37ae76..d8e3018a72a2949ff9f61c5d96ae7556c62c4d89 100644 --- a/tests/calendar_utils/conftest.py +++ b/tests/calendar_utils/conftest.py @@ -3,11 +3,8 @@ from datetime import datetime from pathlib import Path import pytest -from django.db import connection from icalevnt.icalparser import Event -from calendar_utils.models import CalendarMixin - @pytest.fixture(scope="session") def sample_response(): @@ -60,19 +57,3 @@ def sample_future_events(): event_dict["start"] = datetime.fromisoformat(event_dict["start"]) event_dict["end"] = datetime.fromisoformat(event_dict["end"]) return event_dict_list - - -class DummyModel(CalendarMixin): - class Meta: - app_label = "__tests" - - -@pytest.fixture(scope="session") -def Dummy(django_db_setup, django_db_blocker): - with django_db_blocker.unblock(): - with connection.schema_editor() as editor: - editor.create_model(DummyModel) - yield DummyModel - with django_db_blocker.unblock(): - with connection.schema_editor() as editor: - editor.delete_model(DummyModel) diff --git a/tests/calendar_utils/test_models.py b/tests/calendar_utils/test_models.py index 62b2245e5628c74f746c445a4d1bcd6b359d4000..52743746ad4e377285480e3413511e38d0acc4b2 100644 --- a/tests/calendar_utils/test_models.py +++ b/tests/calendar_utils/test_models.py @@ -4,6 +4,7 @@ import pytz from faker import Faker from calendar_utils.models import Calendar +from tests.models import DummyCalendarModel pytestmark = pytest.mark.django_db @@ -86,16 +87,16 @@ def test_calendar__save_and_load_events__no_values(): assert cal.future_events is None -def test_calendar_mixin__no_calendar_url(Dummy): - obj = Dummy.objects.create() +def test_calendar_mixin__no_calendar_url(): + obj = DummyCalendarModel.objects.create() assert obj.calendar is None -def test_calendar_mixin__set_calendar_url(Dummy, mocker): +def test_calendar_mixin__set_calendar_url(mocker): m_update = mocker.patch.object(Calendar, "update_source") url = fake.url() - obj = Dummy.objects.create(calendar_url=url) + obj = DummyCalendarModel.objects.create(calendar_url=url) obj.refresh_from_db() assert obj.calendar_url == url @@ -103,9 +104,9 @@ def test_calendar_mixin__set_calendar_url(Dummy, mocker): assert m_update.call_count == 1 -def test_calendar_mixin__update_calendar_url(Dummy, mocker): +def test_calendar_mixin__update_calendar_url(mocker): m_update = mocker.patch.object(Calendar, "update_source") - obj = Dummy.objects.create(calendar_url=fake.url()) + obj = DummyCalendarModel.objects.create(calendar_url=fake.url()) url = fake.url() m_update.reset_mock() @@ -118,10 +119,10 @@ def test_calendar_mixin__update_calendar_url(Dummy, mocker): assert m_update.call_count == 1 -def test_calendar_mixin__unchanged_calendar_url(Dummy, mocker): +def test_calendar_mixin__unchanged_calendar_url(mocker): m_update = mocker.patch.object(Calendar, "update_source") url = fake.url() - obj = Dummy.objects.create(calendar_url=url) + obj = DummyCalendarModel.objects.create(calendar_url=url) m_update.reset_mock() obj.save() @@ -132,9 +133,9 @@ def test_calendar_mixin__unchanged_calendar_url(Dummy, mocker): assert m_update.call_count == 1 -def test_calendar_mixin__clear_calendar_url(Dummy, mocker): +def test_calendar_mixin__clear_calendar_url(mocker): m_update = mocker.patch.object(Calendar, "update_source") - obj = Dummy.objects.create(calendar_url=fake.url()) + obj = DummyCalendarModel.objects.create(calendar_url=fake.url()) m_update.reset_mock() obj.calendar_url = None @@ -144,4 +145,3 @@ def test_calendar_mixin__clear_calendar_url(Dummy, mocker): assert obj.calendar_url is None assert obj.calendar is None assert m_update.call_count == 0 - assert Calendar.objects.count() == 0 diff --git a/tests/calendar_utils/test_parser.py b/tests/calendar_utils/test_parser.py index 76d9a0b421f6a43c31022d29c932792447cf8b6c..8c1f141468d89de38cfc16bb33108e1dff382cc4 100644 --- a/tests/calendar_utils/test_parser.py +++ b/tests/calendar_utils/test_parser.py @@ -1,9 +1,9 @@ from datetime import datetime +from zoneinfo import ZoneInfo import arrow import pytest from icalevnt.icalparser import Event -from zoneinfo import ZoneInfo from calendar_utils.parser import ( process_event_list, diff --git a/tests/models.py b/tests/models.py new file mode 100644 index 0000000000000000000000000000000000000000..5c6da8b862ad5a7f63e77e8cc8256119bf8cb301 --- /dev/null +++ b/tests/models.py @@ -0,0 +1,5 @@ +from calendar_utils.models import CalendarMixin + + +class DummyCalendarModel(CalendarMixin): + pass diff --git a/tuning/static/majak/css/tuning.css b/tuning/static/majak/css/tuning.css index 9fa5733ba733a8f83c45bdbc951c477996050533..550be3780d1d5a09350b1adbd81e487ee0603236 100644 --- a/tuning/static/majak/css/tuning.css +++ b/tuning/static/majak/css/tuning.css @@ -1,4 +1,6 @@ -/* fix UI on users's groups config */ -#id_groups label { - width: 100%; +.login-form { + text-align: center; +} +.login-form footer { + display: none; } diff --git a/tuning/templates/wagtailadmin/login.html b/tuning/templates/wagtailadmin/login.html index a71b05049bbb3b569a340790322163789f570466..4dfd12d076d7552132a117faeb61840c68c102ec 100644 --- a/tuning/templates/wagtailadmin/login.html +++ b/tuning/templates/wagtailadmin/login.html @@ -1,10 +1,13 @@ {% extends "wagtailadmin/login.html" %} +{% block branding_login %}Redakční systém Maják{% endblock %} + {% block login_form %} - <h1>Redakční systém Maják</h1> <a class="button" href="{% url 'oidc_authentication_init' %}?next={{ request.GET.next }}">Přihlásit se Pirátskou identitou</a> {% endblock %} {% block below_login %} -<p style="margin-top: 1.5em">Nepustí vás to dovnitř? Postupujte dle návodu na <a href="https://majak.pirati.cz" style="color: #FFFFFF; text-decoration: underline;">majak.pirati.cz</a></p> + <p style="margin-top: 1.5em">Nepustí vás to dovnitř? Postupujte dle návodu na <a href="https://majak.pirati.cz">majak.pirati.cz</a></p> {% endblock %} + +{% block branding_logo %}{% endblock %} diff --git a/twitter_utils/services.py b/twitter_utils/services.py index e3215b7366478fb19edc3b9e10c935626cfedff5..3e8dd8380f4e790458d1e712323114a1f88abc62 100644 --- a/twitter_utils/services.py +++ b/twitter_utils/services.py @@ -148,7 +148,7 @@ class TweetDownloadService: # ulož obrázek Twitter účtu do media tweet.author_img.save( *self.download_remote_image(user_data.profile_image_url), - False # to prevent model save before bulk create + False, # to prevent model save before bulk create ) # zkus dohledat obrázek pro Tweet @@ -169,5 +169,5 @@ class TweetDownloadService: if img_url: # ne vždycky je obrázek v media_listu... tweet.image.save( *self.download_remote_image(image_url=img_url), - False # to prevent model save before bulk create + False, # to prevent model save before bulk create ) diff --git a/uniweb/migrations/0034_alter_uniwebarticlepage_content_and_more.py b/uniweb/migrations/0034_alter_uniwebarticlepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..9c73a1d522a6cb10039015b226aa9a6b5b76f315 --- /dev/null +++ b/uniweb/migrations/0034_alter_uniwebarticlepage_content_and_more.py @@ -0,0 +1,8027 @@ +# Generated by Django 4.1.5 on 2023-01-30 23:27 + +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 + + +class Migration(migrations.Migration): + + dependencies = [ + ("uniweb", "0033_alter_uniwebarticlepage_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", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.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", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "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", + ), + ), + ( + "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, + use_json_field=True, + verbose_name="Článek", + ), + ), + 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é"), + ("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é"), + ("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é"), + ("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é"), + ("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é"), + ("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", + ), + ), + ] + ), + ), + ( + "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í", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=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é"), + ("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é"), + ("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é"), + ("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é"), + ("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é"), + ("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", + ), + ), + ] + ), + ), + ( + "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í", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=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é"), + ("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é"), + ("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é"), + ("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é"), + ("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é"), + ("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", + ), + ), + ] + ), + ), + ( + "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í", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=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é"), + ("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é"), + ("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é"), + ("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é"), + ("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é"), + ("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", + ), + ), + ] + ), + ), + ( + "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í", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky zobrazené po odeslání formuláře", + ), + ), + 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é"), + ("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é"), + ("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é"), + ("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é"), + ("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é"), + ("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", + ), + ), + ] + ), + ), + ( + "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í", + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + migrations.AlterField( + model_name="uniwebhomepage", + name="top_menu", + field=wagtail.fields.StreamField( + [ + ( + "item", + wagtail.blocks.StructBlock( + [ + ("name", wagtail.blocks.CharBlock(label="název")), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="stránka", + page_type=[ + "uniweb.UniwebHomePage", + "uniweb.UniwebFlexiblePage", + "uniweb.UniwebArticlesIndexPage", + "uniweb.UniwebFormPage", + ], + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="horní menu", + ), + ), + ] diff --git a/uniweb/migrations/0035_alter_uniwebarticletag_content_object.py b/uniweb/migrations/0035_alter_uniwebarticletag_content_object.py new file mode 100644 index 0000000000000000000000000000000000000000..8e63a0192388900263eef102b03f4313ce1ba580 --- /dev/null +++ b/uniweb/migrations/0035_alter_uniwebarticletag_content_object.py @@ -0,0 +1,24 @@ +# Generated by Django 4.1.5 on 2023-01-31 19:42 + +import django.db.models.deletion +import modelcluster.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("uniweb", "0034_alter_uniwebarticlepage_content_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="uniwebarticletag", + name="content_object", + field=modelcluster.fields.ParentalKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="tagged_items", + to="uniweb.uniwebarticlepage", + ), + ), + ] diff --git a/uniweb/models.py b/uniweb/models.py index fd50c61f6e5379095a72c37bbc312553a5343aef..d40baa1dd797fef5978bef6d720e21a363a35f85 100644 --- a/uniweb/models.py +++ b/uniweb/models.py @@ -360,7 +360,11 @@ CONTENT_STREAM_BLOCKS = [ class UniwebArticleTag(TaggedItemBase): - content_object = ParentalKey("uniweb.UniwebArticlePage", on_delete=models.CASCADE) + content_object = ParentalKey( + "uniweb.UniwebArticlePage", + on_delete=models.CASCADE, + related_name="tagged_items", + ) class UniwebHomePage( @@ -369,17 +373,23 @@ class UniwebHomePage( ### FIELDS content = StreamField( - CONTENT_STREAM_BLOCKS, verbose_name="obsah stránky", blank=True + CONTENT_STREAM_BLOCKS, + verbose_name="obsah stránky", + blank=True, + use_json_field=True, ) # settings matomo_id = models.IntegerField( - "Matomo ID pro sledování návštěvnosti", blank=True, null=True + "Matomo ID pro sledování návštěvnosti", + blank=True, + null=True, ) top_menu = StreamField( [("item", MenuItemBlock())], verbose_name="horní menu", blank=True, + use_json_field=True, ) narrow_layout = models.BooleanField( "zúžený obsah stránky", @@ -467,7 +477,10 @@ class UniwebFlexiblePage( ### FIELDS content = StreamField( - CONTENT_STREAM_BLOCKS, verbose_name="obsah stránky", blank=True + CONTENT_STREAM_BLOCKS, + verbose_name="obsah stránky", + blank=True, + use_json_field=True, ) ### PANELS @@ -584,15 +597,22 @@ class UniwebFormPage( ### FIELDS content_before = StreamField( - CONTENT_STREAM_BLOCKS, verbose_name="obsah stránky před formulářem", blank=True + CONTENT_STREAM_BLOCKS, + verbose_name="obsah stránky před formulářem", + blank=True, + use_json_field=True, ) content_after = StreamField( - CONTENT_STREAM_BLOCKS, verbose_name="obsah stránky za formulářem", blank=True + CONTENT_STREAM_BLOCKS, + verbose_name="obsah stránky za formulářem", + blank=True, + use_json_field=True, ) content_landing = StreamField( CONTENT_STREAM_BLOCKS, verbose_name="obsah stránky zobrazené po odeslání formuláře", blank=True, + use_json_field=True, ) ### PANELS diff --git a/uniweb/templates/uniweb/base.html b/uniweb/templates/uniweb/base.html index fb7a3aa1cb60d8575c4a5337f9c44110ca59c273..7f17985382b858ce71d75d7c4f0fd8c3d208afa5 100644 --- a/uniweb/templates/uniweb/base.html +++ b/uniweb/templates/uniweb/base.html @@ -2,6 +2,9 @@ <!doctype html> <html lang="cs"> <head> + {% if request.in_preview_panel %} + <base target="_blank"> + {% endif %} <!-- Meta --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width" />