diff --git a/cfgov/cfgov/settings/base.py b/cfgov/cfgov/settings/base.py index d7029c71985..4d539cab0b1 100644 --- a/cfgov/cfgov/settings/base.py +++ b/cfgov/cfgov/settings/base.py @@ -103,6 +103,7 @@ "filing_instruction_guide", "health_check", "health_check.db", + "wagtailcharts", # Satellites "complaint_search", "countylimits", diff --git a/cfgov/unprocessed/css/on-demand/wagtail-chart.scss b/cfgov/unprocessed/css/on-demand/wagtail-chart.scss new file mode 100644 index 00000000000..e6462b0476a --- /dev/null +++ b/cfgov/unprocessed/css/on-demand/wagtail-chart.scss @@ -0,0 +1,18 @@ +@use 'sass:math'; +@use '@cfpb/cfpb-design-system/src/abstracts' as *; +@import '../main'; + +.o-wagtail-chart { + max-width: math.div(670px, $base-font-size-px) + em; + margin-bottom: math.div(60px, $base-font-size-px) + em; + + &__subtitle { + margin: 0 0 (math.div(30px, $base-font-size-px) + em); + } + + &__footnote { + max-width: math.div(670px, $size-vi) + rem; + padding-top: math.div(15px, $size-vi) + em; + font-size: 0.75em; + } +} diff --git a/cfgov/unprocessed/js/routes/on-demand/wagtail-charts-chart-block.js b/cfgov/unprocessed/js/routes/on-demand/wagtail-charts-chart-block.js new file mode 100644 index 00000000000..493578baab0 --- /dev/null +++ b/cfgov/unprocessed/js/routes/on-demand/wagtail-charts-chart-block.js @@ -0,0 +1,126 @@ +/* eslint-disable no-undef */ +import pattern from 'patternomaly'; + +/** + * Set default text color to a dark gray + * + * https://www.chartjs.org/docs/latest/general/colors.html + */ +Chart.defaults.color = '#5a5d61'; + +/** + * Takes an array of Chart.js datasets and returns a new array + * with a different line pattern assigned to each dataset's + * borderDash property. + * + * The first line pattern is solid, the second is dashed, + * the third is dotted and all subsequent patterns are dashed + * with an increasingly thicker line. + * + * @param {array} datasets - Array of Chart.js datasets + * @returns {array} Array of Chart.js datasets with borderDash property set + * + * https://www.chartjs.org/docs/latest/samples/line/styling.html + * https://www.chartjs.org/docs/latest/configuration/#dataset-configuration + * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash + */ +const patternizeChartLines = (datasets) => { + const DASH_THICKNESS = 5; + const DASH_PATTERNS = [ + [0, 0], // solid + [DASH_THICKNESS, 2], // dashed + [2, 1], // dotted + ]; + return datasets.map((dataset, i) => { + dataset.borderDash = DASH_PATTERNS[i] || [DASH_THICKNESS * i, 2]; + return dataset; + }); +}; + +/** + * Takes an array of Chart.js datasets and returns a new array + * with a different pattern assigned to each dataset's + * backgroundColor property. + * + * Patterns are from the patternomaly library. + * + * @param {array} datasets - Array of Chart.js datasets + * @returns {array} Array of Chart.js datasets with backgroundColor property set + * + * https://www.chartjs.org/docs/latest/general/colors.html#patterns-and-gradients + * https://github.com/ashiguruma/patternomaly + */ +const patternizeChartBars = (datasets) => { + const patterns = [ + 'dot', + 'diagonal', + 'dash', + 'cross-dash', + 'zigzag-vertical', + 'dot-dash', + 'plus', + 'cross', + 'disc', + 'ring', + 'line', + 'line-vertical', + 'weave', + 'zigzag', + 'diagonal-right-left', + 'square', + 'box', + 'triangle', + 'triangle-inverted', + 'diamond', + 'diamond-box', + ]; + return datasets.map((dataset, i) => { + dataset.backgroundColor = dataset.data.map(() => { + // First pattern is just the solid color + if (i === 0) + return Array.isArray(dataset.backgroundColor) + ? dataset.backgroundColor[0] + : dataset.backgroundColor; + return pattern.draw( + patterns[i - 1], + dataset.backgroundColor, + 'rgba(255, 255, 255, 0.6)', + 10, + ); + }); + return dataset; + }); +}; + +/** + * Change the default Chart.js tooltip options + */ +const tooltipOptions = { + yAlign: 'bottom', + displayColors: false, +}; + +/** + * Define a Chart.js plugin for our CFPB customizations + * + * https://www.chartjs.org/docs/latest/developers/plugins.html + */ +const ChartjsPluginCFPB = { + id: 'cfpb-charts', + beforeInit: (chart) => { + chart.config.options.plugins.tooltip = tooltipOptions; + + if (chart.config.type === 'line') { + patternizeChartLines(chart.config.data.datasets); + } + + if (chart.config.type === 'bar') { + patternizeChartBars(chart.config.data.datasets); + } + + chart.update(); + }, +}; + +Chart.register(ChartjsPluginStacked100.default); +Chart.register({ ChartjsPluginCFPB }); diff --git a/cfgov/v1/atomic_elements/charts.py b/cfgov/v1/atomic_elements/charts.py new file mode 100644 index 00000000000..7003c8557aa --- /dev/null +++ b/cfgov/v1/atomic_elements/charts.py @@ -0,0 +1,108 @@ +from wagtail import blocks + +from wagtailcharts.blocks import ChartBlock as WagtailChartBlock + +from v1 import blocks as v1_blocks + + +CHART_TYPES = ( + ("line", "Line Chart"), + ("bar", "Vertical Bar Chart"), + ("bar_horizontal", "Horizontal Bar Chart"), + ("pie", "Pie Chart"), +) + + +CHART_COLORS = ( + ("#addc91", "Green 60"), + ("#1fa040", "Mid Dark Green"), + ("#257675", "Teal"), + ("#89b6b5", "Teal 60"), + ("#d14124", "Red"), + ("#e79e8e", "Red 60"), + ("#0072ce", "Pacific"), + ("#7eb7e8", "Pacific 60"), + ("#254b87", "Navy"), + ("#9daecc", "Navy 50"), + ("#dc731c", "Dark Gold"), + ("#ffc372", "Gold 70"), + ("#745745", "Dark Neutral"), + ("#baa496", "Neutral 60"), + ("#a01b68", "Dark Purple"), + ("#dc9cbf", "Purple 50"), + ("#d2d3d5", "Gray 20"), +) + + +class ChartBlock(WagtailChartBlock): + eyebrow = blocks.CharBlock( + required=False, + help_text=( + "Optional: Adds an H5 eyebrow above H1 heading text. " + "Only use in conjunction with heading." + ), + label="Pre-heading", + ) + title = v1_blocks.HeadingBlock(required=False) + intro = blocks.RichTextBlock(required=False, icon="edit") + description = blocks.TextBlock( + required=False, help_text="Accessible description of the chart content" + ) + data_source = blocks.TextBlock( + required=False, + help_text="Description of the data source", + ) + date_published = blocks.CharBlock( + required=False, help_text="When the underlying data was published" + ) + download_text = blocks.CharBlock( + required=False, + help_text="Custom text for the chart download field. Required to " + "display a download link.", + ) + download_file = blocks.CharBlock( + required=False, + help_text="Location of a file to download", + ) + notes = blocks.TextBlock(required=False, help_text="Note about the chart") + + def __init__(self, **kwargs): + # Always override chart_types and colors with ours + super().__init__( + chart_types=CHART_TYPES, colors=CHART_COLORS, **kwargs + ) + + # Create a more user-friendly ordering of this block's child blocks. + # + # This puts our content-focused blocks in front of the + # chart-configuration blocks we inherit from wagtailcharts. + # + # child_blocks is an OrderedDict that comes from Wagtail's + # StructBlock. This just calls OrderedDict.move_to_end() in the + # order we want the blocks to appear. + self.child_blocks.move_to_end("chart_type") + self.child_blocks.move_to_end("datasets") + self.child_blocks.move_to_end("settings") + + # We also want the eyebrow to appear above the title field. + self.child_blocks.move_to_end("eyebrow", last=False) + + class Meta: + label = "Chart" + icon = "image" + template = "v1/includes/organisms/wagtail-chart.html" + + # Load wagtailcharts scripts when block is included on a page instead of + # by rendering a {% render_charts %} template tag. + # https://github.com/overcastsoftware/wagtailcharts/blob/v0.5/wagtailcharts/templates/wagtailcharts/tags/render_charts.html + class Media: + js = [ + "wagtailcharts/js/accounting.js?staticroot", + "wagtailcharts/js/chart-types.js?staticroot", + "wagtailcharts/js/chart.js?staticroot", + "wagtailcharts/js/stacked-100.js?staticroot", + "wagtailcharts/js/chartjs-plugin-datalabels.min.js?staticroot", + "wagtail-charts-chart-block.js", + "wagtailcharts/js/wagtailcharts.js?staticroot", + ] + css = ["wagtail-chart.css"] diff --git a/cfgov/v1/jinja2/v1/includes/organisms/wagtail-chart.html b/cfgov/v1/jinja2/v1/includes/organisms/wagtail-chart.html new file mode 100644 index 00000000000..ff751d8c171 --- /dev/null +++ b/cfgov/v1/jinja2/v1/includes/organisms/wagtail-chart.html @@ -0,0 +1,65 @@ +{# ========================================================================== + + wagtail-chart + + ========================================================================== + + Description: + + Create a chart block based on wagtailcharts + + ========================================================================== #} + +{# TODO What should this o-class be? #} +
+ + {% if value.eyebrow %} +
{{ value.eyebrow }}
+ {% endif %} + + {% if value.title %} + {% include_block value.title %} + {% endif %} + + {% if value.intro %} + {% include_block value.intro %} + {% endif %} + + {% if value.subtitle %} +

{{ value.subtitle }}

+ {% endif %} + + {# Copied from wagtailcharts/templates/wagtailcharts/blocks/chart_block.html #} + + > +

+ Your browser does not support the canvas element. + This canvas shows a chart {% if value.title %} with the title {{value.title}} {%endif%} +

+
+ +

+ {% if value.data_source %} + Source: {{value.data_source}}
+ {% endif %} + {% if value.date_published %} + Date published: {{value.date_published}}
+ {% endif %} + + {% if value.download_text and value.download_file %} + Download: + {{value.download_text}}
+ {% endif %} + + {% if value.notes %} + Notes: {{value.notes}} + {% endif %} +

+
+ diff --git a/cfgov/v1/jinja2/v1/layouts/base.html b/cfgov/v1/jinja2/v1/layouts/base.html index 981470ca081..21eea59e6f1 100644 --- a/cfgov/v1/jinja2/v1/layouts/base.html +++ b/cfgov/v1/jinja2/v1/layouts/base.html @@ -336,6 +336,8 @@ {% for js in page.media_js %} {% if 'https://' in js %} s.push('{{ js }}'); + {% elif js.endswith('?staticroot') %} + s.push('{{ static(js[:-11]) }}'); {% else %} s.push( '{{ static('js/routes/on-demand/' + js) }}' ); {% endif %} diff --git a/cfgov/v1/migrations/0038_wagtail_charts_chart_block.py b/cfgov/v1/migrations/0038_wagtail_charts_chart_block.py new file mode 100644 index 00000000000..729a1031fdc --- /dev/null +++ b/cfgov/v1/migrations/0038_wagtail_charts_chart_block.py @@ -0,0 +1,35 @@ +# Generated by Django 4.2.16 on 2024-09-30 15:20 + +from django.db import migrations +import v1.atomic_elements.tables +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('v1', '0037_add_table_caption'), + ] + + operations = [ + migrations.AlterField( + model_name='blogpage', + name='content', + field=wagtail.fields.StreamField([('full_width_text', 42), ('info_unit_group', 53), ('expandable', 56), ('well', 41), ('video_player', 59), ('email_signup', 39), ('simple_chart', 76), ('faq_schema', 85), ('how_to_schema', 95), ('wagtailchart_block', 131)], block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'icon': 'edit'}), 1: ('wagtail.blocks.RichTextBlock', (), {}), 2: ('wagtail.blocks.CharBlock', (), {'help_text': '\n ID will be auto-generated on save.\n However, you may enter some human-friendly text that\n will be incorporated to make it easier to read.\n ', 'label': 'ID for this content block', 'required': False}), 3: ('wagtail.blocks.StructBlock', [[('link_id', 2)]], {}), 4: ('wagtail.blocks.StructBlock', [[('content_block', 1), ('anchor_link', 3)]], {}), 5: ('wagtail_footnotes.blocks.RichTextBlockWithFootnotes', (), {'features': ['anchor-identifier', 'h2', 'h3', 'h4', 'h5', 'hr', 'ol', 'ul', 'bold', 'italic', 'superscript', 'blockquote', 'link', 'document-link', 'image', 'icon', 'footnotes']}), 6: ('wagtail.blocks.CharBlock', (), {'required': False}), 7: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5')]}), 8: ('wagtail.blocks.CharBlock', (), {'help_text': 'Input the name of an icon to appear to the left of the heading. E.g., approved, help-round, etc. See full list of icons', 'required': False}), 9: ('wagtail.blocks.StructBlock', [[('text', 6), ('level', 7), ('icon', 8)]], {'required': False}), 10: ('wagtail.images.blocks.ImageChooserBlock', (), {'required': False}), 11: ('wagtail.blocks.CharBlock', (), {'help_text': "No character limit, but be as succinct as possible. If the image is decorative (i.e., a screenreader wouldn't have anything useful to say about it), leave this field blank.", 'required': False}), 12: ('wagtail.blocks.StructBlock', [[('upload', 10), ('alt', 11)]], {}), 13: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('full', 'Full width'), (470, '470px'), (270, '270px'), (170, '170px')]}), 14: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('right', 'right'), ('left', 'left')], 'help_text': 'Does not apply if the image is full-width'}), 15: ('wagtail.blocks.RichTextBlock', (), {'label': 'Caption', 'required': False}), 16: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Check to add a horizontal rule line to bottom of inset.', 'label': 'Has bottom rule line', 'required': False}), 17: ('wagtail.blocks.StructBlock', [[('image', 12), ('image_width', 13), ('image_position', 14), ('text', 15), ('is_bottom_rule', 16)]], {}), 18: ('wagtail.blocks.MultipleChoiceBlock', [], {'choices': [('is_full_width', 'Display the table at full width'), ('stack_on_mobile', 'Stack the table columns on mobile')], 'required': False}), 19: ('wagtail.blocks.CharBlock', (), {}), 20: ('wagtail.blocks.FloatBlock', (), {}), 21: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'ol', 'ul', 'link', 'document-link', 'superscript']}), 22: ('wagtail_footnotes.blocks.RichTextBlockWithFootnotes', (), {'features': ['bold', 'italic', 'ol', 'ul', 'link', 'document-link', 'superscript', 'footnotes']}), 23: ('wagtail.contrib.typed_table_block.blocks.TypedTableBlock', [[('text', 19), ('numeric', 20), ('rich_text', 21), ('rich_text_with_footnotes', 22)]], {}), 24: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'link', 'document-link'], 'required': False}), 25: ('wagtail.blocks.StructBlock', [[('heading', 9), ('text_introduction', 6), ('options', 18), ('data', 23), ('caption', 24)]], {}), 26: ('wagtail.blocks.TextBlock', (), {}), 27: ('wagtail.blocks.TextBlock', (), {'required': False}), 28: ('wagtail.blocks.StructBlock', [[('body', 26), ('citation', 27)]], {}), 29: ('wagtail.blocks.RichTextBlock', (), {'required': False}), 30: ('wagtail.blocks.CharBlock', (), {'help_text': 'Add an ARIA label if the link text does not describe the destination of the link (e.g. has ambiguous text like "Learn more" that is not descriptive on its own).', 'required': False}), 31: ('wagtail.blocks.CharBlock', (), {'default': '/', 'required': False}), 32: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'required': False}), 33: ('wagtail.blocks.StructBlock', [[('text', 6), ('aria_label', 30), ('url', 31), ('is_link_boldface', 32)]], {}), 34: ('wagtail.blocks.StructBlock', [[('slug_text', 6), ('paragraph_text', 29), ('button', 33)]], {}), 35: ('wagtail.blocks.ListBlock', (33,), {}), 36: ('wagtail.blocks.StructBlock', [[('heading', 6), ('paragraph', 29), ('links', 35)]], {}), 37: ('v1.blocks.ReusableTextChooserBlock', ('v1.ReusableText',), {}), 38: ('v1.blocks.ReusableNotificationChooserBlock', ('v1.ReusableNotification',), {}), 39: ('v1.blocks.EmailSignUpChooserBlock', (), {}), 40: ('wagtail.blocks.RichTextBlock', (), {'label': 'Well', 'required': False}), 41: ('wagtail.blocks.StructBlock', [[('content', 40)]], {}), 42: ('wagtail.blocks.StreamBlock', [[('content', 0), ('content_with_anchor', 4), ('content_with_footnotes', 5), ('heading', 9), ('image', 17), ('table', 25), ('quote', 28), ('cta', 34), ('related_links', 36), ('reusable_text', 37), ('reusable_notification', 38), ('email_signup', 39), ('well', 41)]], {}), 43: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('50-50', '50/50'), ('33-33-33', '33/33/33'), ('25-75', '25/75')], 'help_text': 'Choose the number and width of info unit columns.', 'label': 'Format'}), 44: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': "Check this to link all images and headings to the URL of the first link in their unit's list, if there is a link.", 'required': False}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add a horizontal rule line to top of info unit group.', 'required': False}), 46: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to show horizontal rule lines between info units.', 'label': 'Show rule lines between items', 'required': False}), 47: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('none', 'None'), ('rounded', 'Rounded corners'), ('circle', 'Circle')], 'help_text': 'Adds a border-radius class to images in this group, allowing for a rounded or circular border.', 'label': 'Border radius for images?', 'required': False}), 48: ('wagtail.blocks.StructBlock', [[('text', 6), ('level', 7), ('icon', 8)]], {'default': {'level': 'h3'}, 'required': False}), 49: ('wagtail.blocks.RichTextBlock', (), {'blank': True, 'required': False}), 50: ('wagtail.blocks.ListBlock', (33,), {'required': False}), 51: ('wagtail.blocks.StructBlock', [[('image', 12), ('heading', 48), ('body', 49), ('links', 50)]], {}), 52: ('wagtail.blocks.ListBlock', (51,), {'default': []}), 53: ('wagtail.blocks.StructBlock', [[('format', 43), ('heading', 9), ('intro', 29), ('link_image_and_heading', 44), ('has_top_rule_line', 45), ('lines_between_items', 46), ('border_radius_image', 47), ('info_units', 52)]], {}), 54: ('wagtail.blocks.BooleanBlock', (), {'required': False}), 55: ('wagtail.blocks.StreamBlock', [[('paragraph', 29), ('well', 41), ('links', 33), ('info_unit_group', 53)]], {'blank': True}), 56: ('wagtail.blocks.StructBlock', [[('label', 6), ('icon', 6), ('is_bordered', 54), ('is_midtone', 54), ('is_expanded', 54), ('is_expanded_padding', 54), ('content', 55)]], {}), 57: ('wagtail.blocks.RegexBlock', (), {'error_messages': {'invalid': 'The YouTube video ID is in the wrong format.'}, 'help_text': 'Enter the YouTube video ID, which is located at the end of the video URL, after "v=". For example, the video ID for https://www.youtube.com/watch?v=1V0Ax9OIc84 is 1V0Ax9OIc84.', 'label': 'YouTube video ID', 'regex': '^[\\w-]{11}$', 'required': False}), 58: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Optional thumbnail image to show before and after the video plays. If the thumbnail image is not set here, the video player will default to showing the thumbnail that was set in (or automatically chosen by) YouTube.', 'required': False}), 59: ('wagtail.blocks.StructBlock', [[('video_id', 57), ('thumbnail_image', 58)]], {}), 60: ('wagtail.blocks.CharBlock', (), {'required': True}), 61: ('wagtail.blocks.TextBlock', (), {'help_text': 'Accessible description of the chart content', 'required': True}), 62: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('bar', 'Bar'), ('datetime', 'Date/time'), ('line', 'Line'), ('tilemap', 'Tile grid map')]}), 63: ('wagtail.blocks.TextBlock', (), {'help_text': "URL of the chart's data source or an array of JSON data", 'required': True, 'rows': 2}), 64: ('wagtail.blocks.TextBlock', (), {'help_text': 'For charts pulling from a separate source file, include a list of the column headers (from a CSV file) or keys (from a JSON file) to include in the chart as ["HEADER/KEY1", "HEADER/KEY2"]. To change how the data is labeled in the chart, include the correct labels with the format [{"key": "HEADER/KEY1", "label": "NEWLABEL"}, {"key": "HEADER/KEY2", "label": "NEWLABEL2"}]', 'required': False}), 65: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Uncheck this option to initially only show the first data series in the chart. Leave checked to show all data series by default. Users can always turn data series on or off by interacting with the chart legend. ', 'required': False}), 66: ('wagtail.blocks.TextBlock', (), {'help_text': 'The column header (CSV), key or data array (JSON) to include as the source of x-axis values.', 'required': False}), 67: ('wagtail.blocks.CharBlock', (), {'help_text': "Name the javascript function in chart-hooks.js to run on the provided data before handing it to the chart. Can also provide '___'-separated arguments to this function which are passed in as arguments 2 to n", 'required': False}), 68: ('wagtail.blocks.TextBlock', (), {'help_text': 'If the chart needs the option for users to filter the data shown, for example by date or geographic region, provide the JSON objects to filter on, in the format {key: "KEY", "label": "LABEL"}', 'required': False}), 69: ('wagtail.blocks.TextBlock', (), {'help_text': 'A JSON object with style overrides for the underlying Highcharts chart. No object merging is done, nested objects should be referenced with dot notation: {"tooltip.shape": "circle"}', 'required': False}), 70: ('wagtail.blocks.IntegerBlock', (), {'blank': True, 'help_text': 'A number to determine how many months of the data are projected values', 'max_value': 12, 'min_value': 0, 'null': True, 'required': False}), 71: ('wagtail.blocks.CharBlock', (), {'help_text': 'Attribution for the data source', 'required': False}), 72: ('wagtail.blocks.CharBlock', (), {'help_text': 'When the underlying data was published', 'required': False}), 73: ('wagtail.blocks.CharBlock', (), {'help_text': 'Custom text for the chart download field. Required to display a download link.', 'required': False}), 74: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of a file to download, if different from the data source', 'required': False}), 75: ('wagtail.blocks.TextBlock', (), {'help_text': 'General chart information', 'required': False}), 76: ('wagtail.blocks.StructBlock', [[('title', 60), ('subtitle', 27), ('description', 61), ('figure_number', 6), ('chart_type', 62), ('data_source', 63), ('data_series', 64), ('show_all_series_by_default', 65), ('x_axis_source', 66), ('transform', 67), ('x_axis_label', 6), ('y_axis_label', 6), ('filters', 68), ('style_overrides', 69), ('projected_months', 70), ('source_credits', 71), ('date_published', 72), ('download_text', 73), ('download_file', 74), ('notes', 75)]], {}), 77: ('wagtail.blocks.RichTextBlock', (), {'blank': True, 'features': ['ol', 'ul', 'bold', 'italic', 'link', 'document-link'], 'required': False}), 78: ('wagtail.blocks.CharBlock', (), {'blank': True, 'help_text': "Add an optional anchor link tag for this question. Tag should be unique and use dashes or underscores for separation instead of spaces (ie, 'question-one-tag')", 'max_length': 500, 'required': False}), 79: ('wagtail.blocks.CharBlock', (), {'max_length': 500}), 80: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'h3', 'h4', 'link', 'ol', 'ul', 'document-link', 'image', 'embed'], 'label': 'Text'}), 81: ('wagtail.blocks.StructBlock', [[('content', 80)]], {}), 82: ('wagtail.blocks.StreamBlock', [[('text', 81), ('table', 25), ('video_player', 59)]], {}), 83: ('wagtail.blocks.StructBlock', [[('anchor_tag', 78), ('question', 79), ('answer_content', 82)]], {}), 84: ('wagtail.blocks.ListBlock', (83,), {}), 85: ('wagtail.blocks.StructBlock', [[('description', 77), ('questions', 84)]], {'label': 'FAQ schema'}), 86: ('wagtail.blocks.CharBlock', (), {'label': 'Title of How To section', 'max_length': 500}), 87: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4')], 'help_text': 'Choose a tag for the title of the How To section.', 'label': 'Tag for How To section title'}), 88: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'The How To schema requires a title to let search engines understand what it is about. If you do not want the title to be displayed in the page, uncheck this box and the title content will only be made available to crawlers and screen readers.', 'label': 'Show How To section title', 'required': False}), 89: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('b', 'Bold'), ('p', 'Paragraph')], 'help_text': 'Choose a tag for the title of each HowTo step.', 'label': 'Tag for step titles'}), 90: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this box to display numbers before step titles. ', 'label': 'Show numbers for steps', 'required': False}), 91: ('wagtail.blocks.CharBlock', (), {'blank': True, 'help_text': "Add an optional anchor link tag to allow linking directly to this step. Tag should be unique and use dashes or underscores for separation instead of spaces (ie, 'step-one-tag').", 'max_length': 500, 'required': False}), 92: ('wagtail.blocks.CharBlock', (), {'help_text': 'Enter a title for this HowTo step. You do not need to include a number in the title -- numbers will be added automatically in the template if the show numbers checkbox is checked.', 'max_length': 500}), 93: ('wagtail.blocks.StructBlock', [[('anchor_tag', 91), ('title', 92), ('step_content', 82)]], {}), 94: ('wagtail.blocks.ListBlock', (93,), {}), 95: ('wagtail.blocks.StructBlock', [[('title', 86), ('title_tag', 87), ('show_title', 88), ('description', 77), ('step_title_tag', 89), ('has_numbers', 90), ('steps', 94)]], {'label': 'HowTo schema', 'max_num': 1}), 96: ('wagtail.blocks.CharBlock', (), {'help_text': 'Optional: Adds an H5 eyebrow above H1 heading text. Only use in conjunction with heading.', 'label': 'Pre-heading', 'required': False}), 97: ('wagtail.blocks.RichTextBlock', (), {'icon': 'edit', 'required': False}), 98: ('wagtail.blocks.TextBlock', (), {'help_text': 'Accessible description of the chart content', 'required': False}), 99: ('wagtail.blocks.TextBlock', (), {'help_text': 'Description of the data source', 'required': False}), 100: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of a file to download', 'required': False}), 101: ('wagtail.blocks.TextBlock', (), {'help_text': 'Note about the chart', 'required': False}), 102: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('line', 'Line Chart'), ('bar', 'Vertical Bar Chart'), ('bar_horizontal', 'Horizontal Bar Chart'), ('pie', 'Pie Chart')], 'label': 'Chart Type'}), 103: ('wagtail.blocks.TextBlock', (), {'default': '{"data":[], "options":{}}'}), 104: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Show legend', 'required': False}), 105: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Use HTML legend', 'required': False}), 106: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('top', 'Top'), ('bottom', 'Bottom'), ('left', 'Left'), ('right', 'Right')], 'group': 'General', 'label': 'Legend position'}), 107: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Reverse legend', 'required': False}), 108: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Show values on chart', 'required': False}), 109: ('wagtail.blocks.IntegerBlock', (), {'default': 1, 'group': 'General', 'label': 'Precision in labels/tooltips'}), 110: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'General', 'label': 'Show Chart Grid', 'required': False}), 111: ('wagtail.blocks.CharBlock', (), {'group': 'General', 'label': 'X axis label', 'required': False}), 112: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('none', 'No stacking'), ('stacked', 'Stacked'), ('stacked_100', 'Stacked 100%')], 'group': 'General', 'label': 'Stacking'}), 113: ('wagtail.blocks.CharBlock', (), {'group': 'General', 'label': 'Unit override', 'required': False}), 114: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis minimum value', 'required': False}), 115: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis maximum value', 'required': False}), 116: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis step size', 'required': False}), 117: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis label', 'required': False}), 118: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('number', 'Numerical'), ('percentage', 'Percentage')], 'group': 'Left_Axis', 'label': 'Left Y axis data type', 'required': False}), 119: ('wagtail.blocks.IntegerBlock', (), {'default': 0, 'group': 'Left_Axis', 'label': 'Left Y axis tick precision'}), 120: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'Left_Axis', 'label': 'Show left axis numbers', 'required': False}), 121: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis minimum value', 'required': False}), 122: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis maximum value', 'required': False}), 123: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis step size', 'required': False}), 124: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis label', 'required': False}), 125: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('number', 'Numerical'), ('percentage', 'Percentage')], 'group': 'Right_Axis', 'label': 'Right Y axis data type', 'required': False}), 126: ('wagtail.blocks.IntegerBlock', (), {'default': 0, 'group': 'Right_Axis', 'label': 'Right Y axis tick precision'}), 127: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'Right_Axis', 'label': 'Show right axis numbers', 'required': False}), 128: ('wagtail.blocks.IntegerBlock', (), {'default': 2, 'group': 'Pie_Chart', 'label': 'Width of pie slice border'}), 129: ('wagtail.blocks.CharBlock', (), {'default': '#fff', 'group': 'Pie_Chart', 'label': 'Color of pie slice border'}), 130: ('wagtail.blocks.StructBlock', [[('show_legend', 104), ('html_legend', 105), ('legend_position', 106), ('reverse_legend', 107), ('show_values_on_chart', 108), ('precision', 109), ('show_grid', 110), ('x_label', 111), ('stacking', 112), ('unit_override', 113), ('y_left_min', 114), ('y_left_max', 115), ('y_left_step_size', 116), ('y_left_label', 117), ('y_left_data_type', 118), ('y_left_precision', 119), ('y_left_show', 120), ('y_right_min', 121), ('y_right_max', 122), ('y_right_step_size', 123), ('y_right_label', 124), ('y_right_data_type', 125), ('y_right_precision', 126), ('y_right_show', 127), ('pie_border_width', 128), ('pie_border_color', 129)]], {}), 131: ('wagtail.blocks.StructBlock', [[('eyebrow', 96), ('title', 9), ('intro', 97), ('description', 98), ('data_source', 99), ('date_published', 72), ('download_text', 73), ('download_file', 100), ('notes', 101), ('chart_type', 102), ('datasets', 103), ('settings', 130)]], {'colors': (('#addc91', 'Green 60'), ('#1fa040', 'Mid Dark Green'), ('#257675', 'Teal'), ('#89b6b5', 'Teal 60'), ('#d14124', 'Red'), ('#e79e8e', 'Red 60'), ('#0072ce', 'Pacific'), ('#7eb7e8', 'Pacific 60'), ('#254b87', 'Navy'), ('#9daecc', 'Navy 50'), ('#dc731c', 'Dark Gold'), ('#ffc372', 'Gold 70'), ('#745745', 'Dark Neutral'), ('#baa496', 'Neutral 60'), ('#a01b68', 'Dark Purple'), ('#dc9cbf', 'Purple 50'), ('#d2d3d5', 'Gray 20'))})}), + ), + migrations.AlterField( + model_name='browsepage', + name='content', + field=wagtail.fields.StreamField([('full_width_text', 42), ('info_unit_group', 53), ('wagtailchart_block', 91), ('expandable_group', 99), ('expandable', 97), ('well', 41), ('video_player', 102), ('table', 25), ('raw_html_block', 103), ('simple_chart', 118), ('chart_block', 129), ('mortgage_chart_block', 133), ('mortgage_map_block', 133), ('mortgage_downloads_block', 135), ('data_snapshot', 149), ('job_listing_table', 150), ('faq_group', 159)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'icon': 'edit'}), 1: ('wagtail.blocks.RichTextBlock', (), {}), 2: ('wagtail.blocks.CharBlock', (), {'help_text': '\n ID will be auto-generated on save.\n However, you may enter some human-friendly text that\n will be incorporated to make it easier to read.\n ', 'label': 'ID for this content block', 'required': False}), 3: ('wagtail.blocks.StructBlock', [[('link_id', 2)]], {}), 4: ('wagtail.blocks.StructBlock', [[('content_block', 1), ('anchor_link', 3)]], {}), 5: ('wagtail_footnotes.blocks.RichTextBlockWithFootnotes', (), {'features': ['anchor-identifier', 'h2', 'h3', 'h4', 'h5', 'hr', 'ol', 'ul', 'bold', 'italic', 'superscript', 'blockquote', 'link', 'document-link', 'image', 'icon', 'footnotes']}), 6: ('wagtail.blocks.CharBlock', (), {'required': False}), 7: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5')]}), 8: ('wagtail.blocks.CharBlock', (), {'help_text': 'Input the name of an icon to appear to the left of the heading. E.g., approved, help-round, etc. See full list of icons', 'required': False}), 9: ('wagtail.blocks.StructBlock', [[('text', 6), ('level', 7), ('icon', 8)]], {'required': False}), 10: ('wagtail.images.blocks.ImageChooserBlock', (), {'required': False}), 11: ('wagtail.blocks.CharBlock', (), {'help_text': "No character limit, but be as succinct as possible. If the image is decorative (i.e., a screenreader wouldn't have anything useful to say about it), leave this field blank.", 'required': False}), 12: ('wagtail.blocks.StructBlock', [[('upload', 10), ('alt', 11)]], {}), 13: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('full', 'Full width'), (470, '470px'), (270, '270px'), (170, '170px')]}), 14: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('right', 'right'), ('left', 'left')], 'help_text': 'Does not apply if the image is full-width'}), 15: ('wagtail.blocks.RichTextBlock', (), {'label': 'Caption', 'required': False}), 16: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Check to add a horizontal rule line to bottom of inset.', 'label': 'Has bottom rule line', 'required': False}), 17: ('wagtail.blocks.StructBlock', [[('image', 12), ('image_width', 13), ('image_position', 14), ('text', 15), ('is_bottom_rule', 16)]], {}), 18: ('wagtail.blocks.MultipleChoiceBlock', [], {'choices': [('is_full_width', 'Display the table at full width'), ('stack_on_mobile', 'Stack the table columns on mobile')], 'required': False}), 19: ('wagtail.blocks.CharBlock', (), {}), 20: ('wagtail.blocks.FloatBlock', (), {}), 21: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'ol', 'ul', 'link', 'document-link', 'superscript']}), 22: ('wagtail_footnotes.blocks.RichTextBlockWithFootnotes', (), {'features': ['bold', 'italic', 'ol', 'ul', 'link', 'document-link', 'superscript', 'footnotes']}), 23: ('wagtail.contrib.typed_table_block.blocks.TypedTableBlock', [[('text', 19), ('numeric', 20), ('rich_text', 21), ('rich_text_with_footnotes', 22)]], {}), 24: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'link', 'document-link'], 'required': False}), 25: ('wagtail.blocks.StructBlock', [[('heading', 9), ('text_introduction', 6), ('options', 18), ('data', 23), ('caption', 24)]], {}), 26: ('wagtail.blocks.TextBlock', (), {}), 27: ('wagtail.blocks.TextBlock', (), {'required': False}), 28: ('wagtail.blocks.StructBlock', [[('body', 26), ('citation', 27)]], {}), 29: ('wagtail.blocks.RichTextBlock', (), {'required': False}), 30: ('wagtail.blocks.CharBlock', (), {'help_text': 'Add an ARIA label if the link text does not describe the destination of the link (e.g. has ambiguous text like "Learn more" that is not descriptive on its own).', 'required': False}), 31: ('wagtail.blocks.CharBlock', (), {'default': '/', 'required': False}), 32: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'required': False}), 33: ('wagtail.blocks.StructBlock', [[('text', 6), ('aria_label', 30), ('url', 31), ('is_link_boldface', 32)]], {}), 34: ('wagtail.blocks.StructBlock', [[('slug_text', 6), ('paragraph_text', 29), ('button', 33)]], {}), 35: ('wagtail.blocks.ListBlock', (33,), {}), 36: ('wagtail.blocks.StructBlock', [[('heading', 6), ('paragraph', 29), ('links', 35)]], {}), 37: ('v1.blocks.ReusableTextChooserBlock', ('v1.ReusableText',), {}), 38: ('v1.blocks.ReusableNotificationChooserBlock', ('v1.ReusableNotification',), {}), 39: ('v1.blocks.EmailSignUpChooserBlock', (), {}), 40: ('wagtail.blocks.RichTextBlock', (), {'label': 'Well', 'required': False}), 41: ('wagtail.blocks.StructBlock', [[('content', 40)]], {}), 42: ('wagtail.blocks.StreamBlock', [[('content', 0), ('content_with_anchor', 4), ('content_with_footnotes', 5), ('heading', 9), ('image', 17), ('table', 25), ('quote', 28), ('cta', 34), ('related_links', 36), ('reusable_text', 37), ('reusable_notification', 38), ('email_signup', 39), ('well', 41)]], {}), 43: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('50-50', '50/50'), ('33-33-33', '33/33/33'), ('25-75', '25/75')], 'help_text': 'Choose the number and width of info unit columns.', 'label': 'Format'}), 44: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': "Check this to link all images and headings to the URL of the first link in their unit's list, if there is a link.", 'required': False}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add a horizontal rule line to top of info unit group.', 'required': False}), 46: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to show horizontal rule lines between info units.', 'label': 'Show rule lines between items', 'required': False}), 47: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('none', 'None'), ('rounded', 'Rounded corners'), ('circle', 'Circle')], 'help_text': 'Adds a border-radius class to images in this group, allowing for a rounded or circular border.', 'label': 'Border radius for images?', 'required': False}), 48: ('wagtail.blocks.StructBlock', [[('text', 6), ('level', 7), ('icon', 8)]], {'default': {'level': 'h3'}, 'required': False}), 49: ('wagtail.blocks.RichTextBlock', (), {'blank': True, 'required': False}), 50: ('wagtail.blocks.ListBlock', (33,), {'required': False}), 51: ('wagtail.blocks.StructBlock', [[('image', 12), ('heading', 48), ('body', 49), ('links', 50)]], {}), 52: ('wagtail.blocks.ListBlock', (51,), {'default': []}), 53: ('wagtail.blocks.StructBlock', [[('format', 43), ('heading', 9), ('intro', 29), ('link_image_and_heading', 44), ('has_top_rule_line', 45), ('lines_between_items', 46), ('border_radius_image', 47), ('info_units', 52)]], {}), 54: ('wagtail.blocks.CharBlock', (), {'help_text': 'Optional: Adds an H5 eyebrow above H1 heading text. Only use in conjunction with heading.', 'label': 'Pre-heading', 'required': False}), 55: ('wagtail.blocks.RichTextBlock', (), {'icon': 'edit', 'required': False}), 56: ('wagtail.blocks.TextBlock', (), {'help_text': 'Accessible description of the chart content', 'required': False}), 57: ('wagtail.blocks.TextBlock', (), {'help_text': 'Description of the data source', 'required': False}), 58: ('wagtail.blocks.CharBlock', (), {'help_text': 'When the underlying data was published', 'required': False}), 59: ('wagtail.blocks.CharBlock', (), {'help_text': 'Custom text for the chart download field. Required to display a download link.', 'required': False}), 60: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of a file to download', 'required': False}), 61: ('wagtail.blocks.TextBlock', (), {'help_text': 'Note about the chart', 'required': False}), 62: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('line', 'Line Chart'), ('bar', 'Vertical Bar Chart'), ('bar_horizontal', 'Horizontal Bar Chart'), ('pie', 'Pie Chart')], 'label': 'Chart Type'}), 63: ('wagtail.blocks.TextBlock', (), {'default': '{"data":[], "options":{}}'}), 64: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Show legend', 'required': False}), 65: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Use HTML legend', 'required': False}), 66: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('top', 'Top'), ('bottom', 'Bottom'), ('left', 'Left'), ('right', 'Right')], 'group': 'General', 'label': 'Legend position'}), 67: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Reverse legend', 'required': False}), 68: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Show values on chart', 'required': False}), 69: ('wagtail.blocks.IntegerBlock', (), {'default': 1, 'group': 'General', 'label': 'Precision in labels/tooltips'}), 70: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'General', 'label': 'Show Chart Grid', 'required': False}), 71: ('wagtail.blocks.CharBlock', (), {'group': 'General', 'label': 'X axis label', 'required': False}), 72: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('none', 'No stacking'), ('stacked', 'Stacked'), ('stacked_100', 'Stacked 100%')], 'group': 'General', 'label': 'Stacking'}), 73: ('wagtail.blocks.CharBlock', (), {'group': 'General', 'label': 'Unit override', 'required': False}), 74: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis minimum value', 'required': False}), 75: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis maximum value', 'required': False}), 76: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis step size', 'required': False}), 77: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis label', 'required': False}), 78: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('number', 'Numerical'), ('percentage', 'Percentage')], 'group': 'Left_Axis', 'label': 'Left Y axis data type', 'required': False}), 79: ('wagtail.blocks.IntegerBlock', (), {'default': 0, 'group': 'Left_Axis', 'label': 'Left Y axis tick precision'}), 80: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'Left_Axis', 'label': 'Show left axis numbers', 'required': False}), 81: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis minimum value', 'required': False}), 82: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis maximum value', 'required': False}), 83: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis step size', 'required': False}), 84: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis label', 'required': False}), 85: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('number', 'Numerical'), ('percentage', 'Percentage')], 'group': 'Right_Axis', 'label': 'Right Y axis data type', 'required': False}), 86: ('wagtail.blocks.IntegerBlock', (), {'default': 0, 'group': 'Right_Axis', 'label': 'Right Y axis tick precision'}), 87: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'Right_Axis', 'label': 'Show right axis numbers', 'required': False}), 88: ('wagtail.blocks.IntegerBlock', (), {'default': 2, 'group': 'Pie_Chart', 'label': 'Width of pie slice border'}), 89: ('wagtail.blocks.CharBlock', (), {'default': '#fff', 'group': 'Pie_Chart', 'label': 'Color of pie slice border'}), 90: ('wagtail.blocks.StructBlock', [[('show_legend', 64), ('html_legend', 65), ('legend_position', 66), ('reverse_legend', 67), ('show_values_on_chart', 68), ('precision', 69), ('show_grid', 70), ('x_label', 71), ('stacking', 72), ('unit_override', 73), ('y_left_min', 74), ('y_left_max', 75), ('y_left_step_size', 76), ('y_left_label', 77), ('y_left_data_type', 78), ('y_left_precision', 79), ('y_left_show', 80), ('y_right_min', 81), ('y_right_max', 82), ('y_right_step_size', 83), ('y_right_label', 84), ('y_right_data_type', 85), ('y_right_precision', 86), ('y_right_show', 87), ('pie_border_width', 88), ('pie_border_color', 89)]], {}), 91: ('wagtail.blocks.StructBlock', [[('eyebrow', 54), ('title', 9), ('intro', 55), ('description', 56), ('data_source', 57), ('date_published', 58), ('download_text', 59), ('download_file', 60), ('notes', 61), ('chart_type', 62), ('datasets', 63), ('settings', 90)]], {'colors': (('#addc91', 'Green 60'), ('#1fa040', 'Mid Dark Green'), ('#257675', 'Teal'), ('#89b6b5', 'Teal 60'), ('#d14124', 'Red'), ('#e79e8e', 'Red 60'), ('#0072ce', 'Pacific'), ('#7eb7e8', 'Pacific 60'), ('#254b87', 'Navy'), ('#9daecc', 'Navy 50'), ('#dc731c', 'Dark Gold'), ('#ffc372', 'Gold 70'), ('#745745', 'Dark Neutral'), ('#baa496', 'Neutral 60'), ('#a01b68', 'Dark Purple'), ('#dc9cbf', 'Purple 50'), ('#d2d3d5', 'Gray 20'))}), 92: ('wagtail.blocks.CharBlock', (), {'help_text': 'Added as an <h3> at the top of this block. Also adds a wrapping <div> whose id attribute comes from a slugified version of this heading, creating an anchor that can be used when linking to this part of the page.', 'required': False}), 93: ('wagtail.blocks.BooleanBlock', (), {'required': False}), 94: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add a horizontal rule line to top of expandable group.', 'required': False}), 95: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add FAQ schema markup to expandables.', 'label': 'Uses FAQ schema', 'required': False}), 96: ('wagtail.blocks.StreamBlock', [[('paragraph', 29), ('well', 41), ('links', 33), ('info_unit_group', 53)]], {'blank': True}), 97: ('wagtail.blocks.StructBlock', [[('label', 6), ('icon', 6), ('is_bordered', 93), ('is_midtone', 93), ('is_expanded', 93), ('is_expanded_padding', 93), ('content', 96)]], {}), 98: ('wagtail.blocks.ListBlock', (97,), {}), 99: ('wagtail.blocks.StructBlock', [[('heading', 92), ('body', 29), ('is_accordion', 93), ('has_top_rule_line', 94), ('is_faq', 95), ('expandables', 98)]], {}), 100: ('wagtail.blocks.RegexBlock', (), {'error_messages': {'invalid': 'The YouTube video ID is in the wrong format.'}, 'help_text': 'Enter the YouTube video ID, which is located at the end of the video URL, after "v=". For example, the video ID for https://www.youtube.com/watch?v=1V0Ax9OIc84 is 1V0Ax9OIc84.', 'label': 'YouTube video ID', 'regex': '^[\\w-]{11}$', 'required': False}), 101: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Optional thumbnail image to show before and after the video plays. If the thumbnail image is not set here, the video player will default to showing the thumbnail that was set in (or automatically chosen by) YouTube.', 'required': False}), 102: ('wagtail.blocks.StructBlock', [[('video_id', 100), ('thumbnail_image', 101)]], {}), 103: ('wagtail.blocks.RawHTMLBlock', (), {'label': 'Raw HTML block'}), 104: ('wagtail.blocks.CharBlock', (), {'required': True}), 105: ('wagtail.blocks.TextBlock', (), {'help_text': 'Accessible description of the chart content', 'required': True}), 106: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('bar', 'Bar'), ('datetime', 'Date/time'), ('line', 'Line'), ('tilemap', 'Tile grid map')]}), 107: ('wagtail.blocks.TextBlock', (), {'help_text': "URL of the chart's data source or an array of JSON data", 'required': True, 'rows': 2}), 108: ('wagtail.blocks.TextBlock', (), {'help_text': 'For charts pulling from a separate source file, include a list of the column headers (from a CSV file) or keys (from a JSON file) to include in the chart as ["HEADER/KEY1", "HEADER/KEY2"]. To change how the data is labeled in the chart, include the correct labels with the format [{"key": "HEADER/KEY1", "label": "NEWLABEL"}, {"key": "HEADER/KEY2", "label": "NEWLABEL2"}]', 'required': False}), 109: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Uncheck this option to initially only show the first data series in the chart. Leave checked to show all data series by default. Users can always turn data series on or off by interacting with the chart legend. ', 'required': False}), 110: ('wagtail.blocks.TextBlock', (), {'help_text': 'The column header (CSV), key or data array (JSON) to include as the source of x-axis values.', 'required': False}), 111: ('wagtail.blocks.CharBlock', (), {'help_text': "Name the javascript function in chart-hooks.js to run on the provided data before handing it to the chart. Can also provide '___'-separated arguments to this function which are passed in as arguments 2 to n", 'required': False}), 112: ('wagtail.blocks.TextBlock', (), {'help_text': 'If the chart needs the option for users to filter the data shown, for example by date or geographic region, provide the JSON objects to filter on, in the format {key: "KEY", "label": "LABEL"}', 'required': False}), 113: ('wagtail.blocks.TextBlock', (), {'help_text': 'A JSON object with style overrides for the underlying Highcharts chart. No object merging is done, nested objects should be referenced with dot notation: {"tooltip.shape": "circle"}', 'required': False}), 114: ('wagtail.blocks.IntegerBlock', (), {'blank': True, 'help_text': 'A number to determine how many months of the data are projected values', 'max_value': 12, 'min_value': 0, 'null': True, 'required': False}), 115: ('wagtail.blocks.CharBlock', (), {'help_text': 'Attribution for the data source', 'required': False}), 116: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of a file to download, if different from the data source', 'required': False}), 117: ('wagtail.blocks.TextBlock', (), {'help_text': 'General chart information', 'required': False}), 118: ('wagtail.blocks.StructBlock', [[('title', 104), ('subtitle', 27), ('description', 105), ('figure_number', 6), ('chart_type', 106), ('data_source', 107), ('data_series', 108), ('show_all_series_by_default', 109), ('x_axis_source', 110), ('transform', 111), ('x_axis_label', 6), ('y_axis_label', 6), ('filters', 112), ('style_overrides', 113), ('projected_months', 114), ('source_credits', 115), ('date_published', 58), ('download_text', 59), ('download_file', 116), ('notes', 117)]], {'group': 'Not commonly used'}), 119: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('bar', 'Bar | % y-axis values'), ('line', 'Line | millions/billions y-axis values'), ('line-index', 'Line-Index | integer y-axis values'), ('tile_map', 'Tile Map | grid-like USA map')]}), 120: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('blue', 'Blue'), ('gold', 'Gold'), ('green', 'Green'), ('navy', 'Navy'), ('neutral', 'Neutral'), ('purple', 'Purple'), ('teal', 'Teal')], 'help_text': 'Chart\'s color scheme. See "https://github.com/cfpb/cfpb-chart-builder#createchart-options-".', 'required': False}), 121: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of the chart\'s data source relative to "https://files.consumerfinance.gov/data/". For example,"consumer-credit-trends/auto-loans/num_data_AUT.csv".', 'required': True}), 122: ('wagtail.blocks.DateBlock', (), {'help_text': 'Automatically generated when CCT cron job runs'}), 123: ('wagtail.blocks.CharBlock', (), {'help_text': 'Briefly summarize the chart for visually impaired users.', 'required': True}), 124: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add a horizontal rule line to top of chart block.', 'required': False}), 125: ('wagtail.blocks.DateBlock', (), {'help_text': 'Month of latest entry in dataset'}), 126: ('wagtail.blocks.CharBlock', (), {'help_text': 'Optional metadata for the chart to use. For example, with CCT this would be the chart\'s "group".', 'required': False}), 127: ('wagtail.blocks.CharBlock', (), {'help_text': 'Text to display as a footnote. For example, "Data from the last six months are not final."', 'required': False}), 128: ('wagtail.blocks.CharBlock', (), {'help_text': 'Custom y-axis label. NOTE: Line-Index chart y-axis is not overridable with this field!', 'required': False}), 129: ('wagtail.blocks.StructBlock', [[('title', 104), ('chart_type', 119), ('color_scheme', 120), ('data_source', 121), ('date_published', 122), ('description', 123), ('has_top_rule_line', 124), ('last_updated_projected_data', 125), ('metadata', 126), ('note', 127), ('y_axis_label', 128)]], {'group': 'Not commonly used'}), 130: ('wagtail.blocks.CharBlock', (), {'form_classname': 'title', 'required': True}), 131: ('wagtail.blocks.CharBlock', (), {'help_text': 'Chart summary for visually impaired users.', 'required': False}), 132: ('wagtail.blocks.CharBlock', (), {'help_text': 'Text for "Note" section of footnotes.', 'required': False}), 133: ('wagtail.blocks.StructBlock', [[('content_block', 1), ('title', 130), ('description', 131), ('note', 132), ('has_top_rule_line', 124)]], {'group': 'Not commonly used'}), 134: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this box to allow the archival section to display. No section will appear if there are no archival downloads.', 'required': False}), 135: ('wagtail.blocks.StructBlock', [[('show_archives', 134)]], {'group': 'Not commonly used'}), 136: ('wagtail.blocks.CharBlock', (), {'help_text': 'Market identifier, e.g. AUT', 'max_length': 20, 'required': True}), 137: ('wagtail.blocks.CharBlock', (), {'help_text': 'Number of originations, e.g. 1.2 million', 'max_length': 20}), 138: ('wagtail.blocks.CharBlock', (), {'help_text': 'Total dollar value of originations, e.g. $3.4 billion', 'max_length': 20}), 139: ('wagtail.blocks.CharBlock', (), {'help_text': 'Percentage change, e.g. 5.6% increase', 'max_length': 20}), 140: ('wagtail.blocks.CharBlock', (), {'help_text': 'Descriptive sentence, e.g. Auto loans originated', 'max_length': 100}), 141: ('wagtail.blocks.CharBlock', (), {'help_text': 'Descriptive sentence, e.g. Dollar volume of new loans', 'max_length': 100}), 142: ('wagtail.blocks.CharBlock', (), {'help_text': 'Descriptive sentence, e.g. In year-over-year originations', 'max_length': 100}), 143: ('wagtail.blocks.DateBlock', (), {'help_text': 'Month of latest entry in dataset for inquiry data', 'max_length': 20, 'required': False}), 144: ('wagtail.blocks.CharBlock', (), {'help_text': 'Percentage change, e.g. 5.6% increase', 'max_length': 20, 'required': False}), 145: ('wagtail.blocks.CharBlock', (), {'help_text': 'Descriptive sentence, e.g. In year-over-year inquiries', 'max_length': 100, 'required': False}), 146: ('wagtail.blocks.DateBlock', (), {'help_text': 'Month of latest entry in dataset for credit tightness data', 'max_length': 20, 'required': False}), 147: ('wagtail.blocks.CharBlock', (), {'help_text': 'Descriptive sentence, e.g. In year-over-year credit tightness', 'max_length': 100, 'required': False}), 148: ('wagtail.images.blocks.ImageChooserBlock', (), {'icon': 'image', 'required': False}), 149: ('wagtail.blocks.StructBlock', [[('market_key', 136), ('num_originations', 137), ('value_originations', 138), ('year_over_year_change', 139), ('last_updated_projected_data', 125), ('num_originations_text', 140), ('value_originations_text', 141), ('year_over_year_change_text', 142), ('inquiry_month', 143), ('inquiry_year_over_year_change', 144), ('inquiry_year_over_year_change_text', 145), ('tightness_month', 146), ('tightness_year_over_year_change', 144), ('tightness_year_over_year_change_text', 147), ('image', 148)]], {}), 150: ('jobmanager.blocks.JobListingTable', (), {}), 151: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add a horizontal rule line to top of FAQ group.', 'required': False}), 152: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to show horizontal rule lines between FAQ items.', 'label': 'Show rule lines between items', 'required': False}), 153: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'h2'), ('h3', 'h3'), ('h4', 'h4'), ('p', 'p')], 'help_text': 'HTML tag for questions.'}), 154: ('wagtail.blocks.CharBlock', (), {'blank': True, 'help_text': "Add an optional anchor link tag for this question. Tag should be unique and use dashes or underscores for separation instead of spaces (ie, 'question-one-tag')", 'max_length': 500, 'required': False}), 155: ('wagtail.blocks.CharBlock', (), {'max_length': 500}), 156: ('wagtail.blocks.StreamBlock', [[('full_width_text', 42), ('info_unit_group', 53)]], {}), 157: ('wagtail.blocks.StructBlock', [[('anchor_tag', 154), ('question', 155), ('answer', 156)]], {}), 158: ('wagtail.blocks.ListBlock', (157,), {'label': 'FAQ items'}), 159: ('wagtail.blocks.StructBlock', [[('has_top_rule_line', 151), ('lines_between_items', 152), ('question_tag', 153), ('faq_items', 158)]], {})}), + ), + migrations.AlterField( + model_name='documentdetailpage', + name='content', + field=wagtail.fields.StreamField([('full_width_text', 42), ('expandable', 56), ('expandable_group', 61), ('notification', 66), ('simple_chart', 83), ('table', 25), ('crc_table', 85), ('case_docket_table', 87), ('wagtailchart_block', 123)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'icon': 'edit'}), 1: ('wagtail.blocks.RichTextBlock', (), {}), 2: ('wagtail.blocks.CharBlock', (), {'help_text': '\n ID will be auto-generated on save.\n However, you may enter some human-friendly text that\n will be incorporated to make it easier to read.\n ', 'label': 'ID for this content block', 'required': False}), 3: ('wagtail.blocks.StructBlock', [[('link_id', 2)]], {}), 4: ('wagtail.blocks.StructBlock', [[('content_block', 1), ('anchor_link', 3)]], {}), 5: ('wagtail_footnotes.blocks.RichTextBlockWithFootnotes', (), {'features': ['anchor-identifier', 'h2', 'h3', 'h4', 'h5', 'hr', 'ol', 'ul', 'bold', 'italic', 'superscript', 'blockquote', 'link', 'document-link', 'image', 'icon', 'footnotes']}), 6: ('wagtail.blocks.CharBlock', (), {'required': False}), 7: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5')]}), 8: ('wagtail.blocks.CharBlock', (), {'help_text': 'Input the name of an icon to appear to the left of the heading. E.g., approved, help-round, etc. See full list of icons', 'required': False}), 9: ('wagtail.blocks.StructBlock', [[('text', 6), ('level', 7), ('icon', 8)]], {'required': False}), 10: ('wagtail.images.blocks.ImageChooserBlock', (), {'required': False}), 11: ('wagtail.blocks.CharBlock', (), {'help_text': "No character limit, but be as succinct as possible. If the image is decorative (i.e., a screenreader wouldn't have anything useful to say about it), leave this field blank.", 'required': False}), 12: ('wagtail.blocks.StructBlock', [[('upload', 10), ('alt', 11)]], {}), 13: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('full', 'Full width'), (470, '470px'), (270, '270px'), (170, '170px')]}), 14: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('right', 'right'), ('left', 'left')], 'help_text': 'Does not apply if the image is full-width'}), 15: ('wagtail.blocks.RichTextBlock', (), {'label': 'Caption', 'required': False}), 16: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Check to add a horizontal rule line to bottom of inset.', 'label': 'Has bottom rule line', 'required': False}), 17: ('wagtail.blocks.StructBlock', [[('image', 12), ('image_width', 13), ('image_position', 14), ('text', 15), ('is_bottom_rule', 16)]], {}), 18: ('wagtail.blocks.MultipleChoiceBlock', [], {'choices': [('is_full_width', 'Display the table at full width'), ('stack_on_mobile', 'Stack the table columns on mobile')], 'required': False}), 19: ('wagtail.blocks.CharBlock', (), {}), 20: ('wagtail.blocks.FloatBlock', (), {}), 21: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'ol', 'ul', 'link', 'document-link', 'superscript']}), 22: ('wagtail_footnotes.blocks.RichTextBlockWithFootnotes', (), {'features': ['bold', 'italic', 'ol', 'ul', 'link', 'document-link', 'superscript', 'footnotes']}), 23: ('wagtail.contrib.typed_table_block.blocks.TypedTableBlock', [[('text', 19), ('numeric', 20), ('rich_text', 21), ('rich_text_with_footnotes', 22)]], {}), 24: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'link', 'document-link'], 'required': False}), 25: ('wagtail.blocks.StructBlock', [[('heading', 9), ('text_introduction', 6), ('options', 18), ('data', 23), ('caption', 24)]], {}), 26: ('wagtail.blocks.TextBlock', (), {}), 27: ('wagtail.blocks.TextBlock', (), {'required': False}), 28: ('wagtail.blocks.StructBlock', [[('body', 26), ('citation', 27)]], {}), 29: ('wagtail.blocks.RichTextBlock', (), {'required': False}), 30: ('wagtail.blocks.CharBlock', (), {'help_text': 'Add an ARIA label if the link text does not describe the destination of the link (e.g. has ambiguous text like "Learn more" that is not descriptive on its own).', 'required': False}), 31: ('wagtail.blocks.CharBlock', (), {'default': '/', 'required': False}), 32: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'required': False}), 33: ('wagtail.blocks.StructBlock', [[('text', 6), ('aria_label', 30), ('url', 31), ('is_link_boldface', 32)]], {}), 34: ('wagtail.blocks.StructBlock', [[('slug_text', 6), ('paragraph_text', 29), ('button', 33)]], {}), 35: ('wagtail.blocks.ListBlock', (33,), {}), 36: ('wagtail.blocks.StructBlock', [[('heading', 6), ('paragraph', 29), ('links', 35)]], {}), 37: ('v1.blocks.ReusableTextChooserBlock', ('v1.ReusableText',), {}), 38: ('v1.blocks.ReusableNotificationChooserBlock', ('v1.ReusableNotification',), {}), 39: ('v1.blocks.EmailSignUpChooserBlock', (), {}), 40: ('wagtail.blocks.RichTextBlock', (), {'label': 'Well', 'required': False}), 41: ('wagtail.blocks.StructBlock', [[('content', 40)]], {}), 42: ('wagtail.blocks.StreamBlock', [[('content', 0), ('content_with_anchor', 4), ('content_with_footnotes', 5), ('heading', 9), ('image', 17), ('table', 25), ('quote', 28), ('cta', 34), ('related_links', 36), ('reusable_text', 37), ('reusable_notification', 38), ('email_signup', 39), ('well', 41)]], {}), 43: ('wagtail.blocks.BooleanBlock', (), {'required': False}), 44: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('50-50', '50/50'), ('33-33-33', '33/33/33'), ('25-75', '25/75')], 'help_text': 'Choose the number and width of info unit columns.', 'label': 'Format'}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': "Check this to link all images and headings to the URL of the first link in their unit's list, if there is a link.", 'required': False}), 46: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add a horizontal rule line to top of info unit group.', 'required': False}), 47: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to show horizontal rule lines between info units.', 'label': 'Show rule lines between items', 'required': False}), 48: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('none', 'None'), ('rounded', 'Rounded corners'), ('circle', 'Circle')], 'help_text': 'Adds a border-radius class to images in this group, allowing for a rounded or circular border.', 'label': 'Border radius for images?', 'required': False}), 49: ('wagtail.blocks.StructBlock', [[('text', 6), ('level', 7), ('icon', 8)]], {'default': {'level': 'h3'}, 'required': False}), 50: ('wagtail.blocks.RichTextBlock', (), {'blank': True, 'required': False}), 51: ('wagtail.blocks.ListBlock', (33,), {'required': False}), 52: ('wagtail.blocks.StructBlock', [[('image', 12), ('heading', 49), ('body', 50), ('links', 51)]], {}), 53: ('wagtail.blocks.ListBlock', (52,), {'default': []}), 54: ('wagtail.blocks.StructBlock', [[('format', 44), ('heading', 9), ('intro', 29), ('link_image_and_heading', 45), ('has_top_rule_line', 46), ('lines_between_items', 47), ('border_radius_image', 48), ('info_units', 53)]], {}), 55: ('wagtail.blocks.StreamBlock', [[('paragraph', 29), ('well', 41), ('links', 33), ('info_unit_group', 54)]], {'blank': True}), 56: ('wagtail.blocks.StructBlock', [[('label', 6), ('icon', 6), ('is_bordered', 43), ('is_midtone', 43), ('is_expanded', 43), ('is_expanded_padding', 43), ('content', 55)]], {}), 57: ('wagtail.blocks.CharBlock', (), {'help_text': 'Added as an <h3> at the top of this block. Also adds a wrapping <div> whose id attribute comes from a slugified version of this heading, creating an anchor that can be used when linking to this part of the page.', 'required': False}), 58: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add a horizontal rule line to top of expandable group.', 'required': False}), 59: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add FAQ schema markup to expandables.', 'label': 'Uses FAQ schema', 'required': False}), 60: ('wagtail.blocks.ListBlock', (56,), {}), 61: ('wagtail.blocks.StructBlock', [[('heading', 57), ('body', 29), ('is_accordion', 43), ('has_top_rule_line', 58), ('is_faq', 59), ('expandables', 60)]], {}), 62: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('information', 'Information'), ('warning', 'Warning')]}), 63: ('wagtail.blocks.CharBlock', (), {'help_text': 'The main notification message to display.', 'required': True}), 64: ('wagtail.blocks.TextBlock', (), {'help_text': 'Explanation text appears below the message in smaller type.', 'required': False}), 65: ('wagtail.blocks.ListBlock', (33,), {'help_text': 'Links appear on their own lines below the explanation.', 'required': False}), 66: ('wagtail.blocks.StructBlock', [[('type', 62), ('message', 63), ('explanation', 64), ('links', 65)]], {}), 67: ('wagtail.blocks.CharBlock', (), {'required': True}), 68: ('wagtail.blocks.TextBlock', (), {'help_text': 'Accessible description of the chart content', 'required': True}), 69: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('bar', 'Bar'), ('datetime', 'Date/time'), ('line', 'Line'), ('tilemap', 'Tile grid map')]}), 70: ('wagtail.blocks.TextBlock', (), {'help_text': "URL of the chart's data source or an array of JSON data", 'required': True, 'rows': 2}), 71: ('wagtail.blocks.TextBlock', (), {'help_text': 'For charts pulling from a separate source file, include a list of the column headers (from a CSV file) or keys (from a JSON file) to include in the chart as ["HEADER/KEY1", "HEADER/KEY2"]. To change how the data is labeled in the chart, include the correct labels with the format [{"key": "HEADER/KEY1", "label": "NEWLABEL"}, {"key": "HEADER/KEY2", "label": "NEWLABEL2"}]', 'required': False}), 72: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Uncheck this option to initially only show the first data series in the chart. Leave checked to show all data series by default. Users can always turn data series on or off by interacting with the chart legend. ', 'required': False}), 73: ('wagtail.blocks.TextBlock', (), {'help_text': 'The column header (CSV), key or data array (JSON) to include as the source of x-axis values.', 'required': False}), 74: ('wagtail.blocks.CharBlock', (), {'help_text': "Name the javascript function in chart-hooks.js to run on the provided data before handing it to the chart. Can also provide '___'-separated arguments to this function which are passed in as arguments 2 to n", 'required': False}), 75: ('wagtail.blocks.TextBlock', (), {'help_text': 'If the chart needs the option for users to filter the data shown, for example by date or geographic region, provide the JSON objects to filter on, in the format {key: "KEY", "label": "LABEL"}', 'required': False}), 76: ('wagtail.blocks.TextBlock', (), {'help_text': 'A JSON object with style overrides for the underlying Highcharts chart. No object merging is done, nested objects should be referenced with dot notation: {"tooltip.shape": "circle"}', 'required': False}), 77: ('wagtail.blocks.IntegerBlock', (), {'blank': True, 'help_text': 'A number to determine how many months of the data are projected values', 'max_value': 12, 'min_value': 0, 'null': True, 'required': False}), 78: ('wagtail.blocks.CharBlock', (), {'help_text': 'Attribution for the data source', 'required': False}), 79: ('wagtail.blocks.CharBlock', (), {'help_text': 'When the underlying data was published', 'required': False}), 80: ('wagtail.blocks.CharBlock', (), {'help_text': 'Custom text for the chart download field. Required to display a download link.', 'required': False}), 81: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of a file to download, if different from the data source', 'required': False}), 82: ('wagtail.blocks.TextBlock', (), {'help_text': 'General chart information', 'required': False}), 83: ('wagtail.blocks.StructBlock', [[('title', 67), ('subtitle', 27), ('description', 68), ('figure_number', 6), ('chart_type', 69), ('data_source', 70), ('data_series', 71), ('show_all_series_by_default', 72), ('x_axis_source', 73), ('transform', 74), ('x_axis_label', 6), ('y_axis_label', 6), ('filters', 75), ('style_overrides', 76), ('projected_months', 77), ('source_credits', 78), ('date_published', 79), ('download_text', 80), ('download_file', 81), ('notes', 82)]], {}), 84: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'link']}), 85: ('wagtail.blocks.StructBlock', [[('website', 84), ('phone', 84), ('mailing_address', 84)]], {}), 86: ('wagtail.blocks.ListBlock', (v1.atomic_elements.tables.CaseDocketEvent,), {'collapsed': True, 'min_num': 1}), 87: ('wagtail.blocks.StructBlock', [[('events', 86)]], {}), 88: ('wagtail.blocks.CharBlock', (), {'help_text': 'Optional: Adds an H5 eyebrow above H1 heading text. Only use in conjunction with heading.', 'label': 'Pre-heading', 'required': False}), 89: ('wagtail.blocks.RichTextBlock', (), {'icon': 'edit', 'required': False}), 90: ('wagtail.blocks.TextBlock', (), {'help_text': 'Accessible description of the chart content', 'required': False}), 91: ('wagtail.blocks.TextBlock', (), {'help_text': 'Description of the data source', 'required': False}), 92: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of a file to download', 'required': False}), 93: ('wagtail.blocks.TextBlock', (), {'help_text': 'Note about the chart', 'required': False}), 94: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('line', 'Line Chart'), ('bar', 'Vertical Bar Chart'), ('bar_horizontal', 'Horizontal Bar Chart'), ('pie', 'Pie Chart')], 'label': 'Chart Type'}), 95: ('wagtail.blocks.TextBlock', (), {'default': '{"data":[], "options":{}}'}), 96: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Show legend', 'required': False}), 97: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Use HTML legend', 'required': False}), 98: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('top', 'Top'), ('bottom', 'Bottom'), ('left', 'Left'), ('right', 'Right')], 'group': 'General', 'label': 'Legend position'}), 99: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Reverse legend', 'required': False}), 100: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Show values on chart', 'required': False}), 101: ('wagtail.blocks.IntegerBlock', (), {'default': 1, 'group': 'General', 'label': 'Precision in labels/tooltips'}), 102: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'General', 'label': 'Show Chart Grid', 'required': False}), 103: ('wagtail.blocks.CharBlock', (), {'group': 'General', 'label': 'X axis label', 'required': False}), 104: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('none', 'No stacking'), ('stacked', 'Stacked'), ('stacked_100', 'Stacked 100%')], 'group': 'General', 'label': 'Stacking'}), 105: ('wagtail.blocks.CharBlock', (), {'group': 'General', 'label': 'Unit override', 'required': False}), 106: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis minimum value', 'required': False}), 107: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis maximum value', 'required': False}), 108: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis step size', 'required': False}), 109: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis label', 'required': False}), 110: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('number', 'Numerical'), ('percentage', 'Percentage')], 'group': 'Left_Axis', 'label': 'Left Y axis data type', 'required': False}), 111: ('wagtail.blocks.IntegerBlock', (), {'default': 0, 'group': 'Left_Axis', 'label': 'Left Y axis tick precision'}), 112: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'Left_Axis', 'label': 'Show left axis numbers', 'required': False}), 113: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis minimum value', 'required': False}), 114: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis maximum value', 'required': False}), 115: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis step size', 'required': False}), 116: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis label', 'required': False}), 117: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('number', 'Numerical'), ('percentage', 'Percentage')], 'group': 'Right_Axis', 'label': 'Right Y axis data type', 'required': False}), 118: ('wagtail.blocks.IntegerBlock', (), {'default': 0, 'group': 'Right_Axis', 'label': 'Right Y axis tick precision'}), 119: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'Right_Axis', 'label': 'Show right axis numbers', 'required': False}), 120: ('wagtail.blocks.IntegerBlock', (), {'default': 2, 'group': 'Pie_Chart', 'label': 'Width of pie slice border'}), 121: ('wagtail.blocks.CharBlock', (), {'default': '#fff', 'group': 'Pie_Chart', 'label': 'Color of pie slice border'}), 122: ('wagtail.blocks.StructBlock', [[('show_legend', 96), ('html_legend', 97), ('legend_position', 98), ('reverse_legend', 99), ('show_values_on_chart', 100), ('precision', 101), ('show_grid', 102), ('x_label', 103), ('stacking', 104), ('unit_override', 105), ('y_left_min', 106), ('y_left_max', 107), ('y_left_step_size', 108), ('y_left_label', 109), ('y_left_data_type', 110), ('y_left_precision', 111), ('y_left_show', 112), ('y_right_min', 113), ('y_right_max', 114), ('y_right_step_size', 115), ('y_right_label', 116), ('y_right_data_type', 117), ('y_right_precision', 118), ('y_right_show', 119), ('pie_border_width', 120), ('pie_border_color', 121)]], {}), 123: ('wagtail.blocks.StructBlock', [[('eyebrow', 88), ('title', 9), ('intro', 89), ('description', 90), ('data_source', 91), ('date_published', 79), ('download_text', 80), ('download_file', 92), ('notes', 93), ('chart_type', 94), ('datasets', 95), ('settings', 122)]], {'colors': (('#addc91', 'Green 60'), ('#1fa040', 'Mid Dark Green'), ('#257675', 'Teal'), ('#89b6b5', 'Teal 60'), ('#d14124', 'Red'), ('#e79e8e', 'Red 60'), ('#0072ce', 'Pacific'), ('#7eb7e8', 'Pacific 60'), ('#254b87', 'Navy'), ('#9daecc', 'Navy 50'), ('#dc731c', 'Dark Gold'), ('#ffc372', 'Gold 70'), ('#745745', 'Dark Neutral'), ('#baa496', 'Neutral 60'), ('#a01b68', 'Dark Purple'), ('#dc9cbf', 'Purple 50'), ('#d2d3d5', 'Gray 20'))})}), + ), + migrations.AlterField( + model_name='legacyblogpage', + name='content', + field=wagtail.fields.StreamField([('full_width_text', 42), ('info_unit_group', 53), ('expandable', 56), ('well', 41), ('video_player', 59), ('email_signup', 39), ('simple_chart', 76), ('faq_schema', 85), ('how_to_schema', 95), ('wagtailchart_block', 131), ('content', 132), ('reusable_text', 37)], block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'icon': 'edit'}), 1: ('wagtail.blocks.RichTextBlock', (), {}), 2: ('wagtail.blocks.CharBlock', (), {'help_text': '\n ID will be auto-generated on save.\n However, you may enter some human-friendly text that\n will be incorporated to make it easier to read.\n ', 'label': 'ID for this content block', 'required': False}), 3: ('wagtail.blocks.StructBlock', [[('link_id', 2)]], {}), 4: ('wagtail.blocks.StructBlock', [[('content_block', 1), ('anchor_link', 3)]], {}), 5: ('wagtail_footnotes.blocks.RichTextBlockWithFootnotes', (), {'features': ['anchor-identifier', 'h2', 'h3', 'h4', 'h5', 'hr', 'ol', 'ul', 'bold', 'italic', 'superscript', 'blockquote', 'link', 'document-link', 'image', 'icon', 'footnotes']}), 6: ('wagtail.blocks.CharBlock', (), {'required': False}), 7: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5')]}), 8: ('wagtail.blocks.CharBlock', (), {'help_text': 'Input the name of an icon to appear to the left of the heading. E.g., approved, help-round, etc. See full list of icons', 'required': False}), 9: ('wagtail.blocks.StructBlock', [[('text', 6), ('level', 7), ('icon', 8)]], {'required': False}), 10: ('wagtail.images.blocks.ImageChooserBlock', (), {'required': False}), 11: ('wagtail.blocks.CharBlock', (), {'help_text': "No character limit, but be as succinct as possible. If the image is decorative (i.e., a screenreader wouldn't have anything useful to say about it), leave this field blank.", 'required': False}), 12: ('wagtail.blocks.StructBlock', [[('upload', 10), ('alt', 11)]], {}), 13: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('full', 'Full width'), (470, '470px'), (270, '270px'), (170, '170px')]}), 14: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('right', 'right'), ('left', 'left')], 'help_text': 'Does not apply if the image is full-width'}), 15: ('wagtail.blocks.RichTextBlock', (), {'label': 'Caption', 'required': False}), 16: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Check to add a horizontal rule line to bottom of inset.', 'label': 'Has bottom rule line', 'required': False}), 17: ('wagtail.blocks.StructBlock', [[('image', 12), ('image_width', 13), ('image_position', 14), ('text', 15), ('is_bottom_rule', 16)]], {}), 18: ('wagtail.blocks.MultipleChoiceBlock', [], {'choices': [('is_full_width', 'Display the table at full width'), ('stack_on_mobile', 'Stack the table columns on mobile')], 'required': False}), 19: ('wagtail.blocks.CharBlock', (), {}), 20: ('wagtail.blocks.FloatBlock', (), {}), 21: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'ol', 'ul', 'link', 'document-link', 'superscript']}), 22: ('wagtail_footnotes.blocks.RichTextBlockWithFootnotes', (), {'features': ['bold', 'italic', 'ol', 'ul', 'link', 'document-link', 'superscript', 'footnotes']}), 23: ('wagtail.contrib.typed_table_block.blocks.TypedTableBlock', [[('text', 19), ('numeric', 20), ('rich_text', 21), ('rich_text_with_footnotes', 22)]], {}), 24: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'link', 'document-link'], 'required': False}), 25: ('wagtail.blocks.StructBlock', [[('heading', 9), ('text_introduction', 6), ('options', 18), ('data', 23), ('caption', 24)]], {}), 26: ('wagtail.blocks.TextBlock', (), {}), 27: ('wagtail.blocks.TextBlock', (), {'required': False}), 28: ('wagtail.blocks.StructBlock', [[('body', 26), ('citation', 27)]], {}), 29: ('wagtail.blocks.RichTextBlock', (), {'required': False}), 30: ('wagtail.blocks.CharBlock', (), {'help_text': 'Add an ARIA label if the link text does not describe the destination of the link (e.g. has ambiguous text like "Learn more" that is not descriptive on its own).', 'required': False}), 31: ('wagtail.blocks.CharBlock', (), {'default': '/', 'required': False}), 32: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'required': False}), 33: ('wagtail.blocks.StructBlock', [[('text', 6), ('aria_label', 30), ('url', 31), ('is_link_boldface', 32)]], {}), 34: ('wagtail.blocks.StructBlock', [[('slug_text', 6), ('paragraph_text', 29), ('button', 33)]], {}), 35: ('wagtail.blocks.ListBlock', (33,), {}), 36: ('wagtail.blocks.StructBlock', [[('heading', 6), ('paragraph', 29), ('links', 35)]], {}), 37: ('v1.blocks.ReusableTextChooserBlock', ('v1.ReusableText',), {}), 38: ('v1.blocks.ReusableNotificationChooserBlock', ('v1.ReusableNotification',), {}), 39: ('v1.blocks.EmailSignUpChooserBlock', (), {}), 40: ('wagtail.blocks.RichTextBlock', (), {'label': 'Well', 'required': False}), 41: ('wagtail.blocks.StructBlock', [[('content', 40)]], {}), 42: ('wagtail.blocks.StreamBlock', [[('content', 0), ('content_with_anchor', 4), ('content_with_footnotes', 5), ('heading', 9), ('image', 17), ('table', 25), ('quote', 28), ('cta', 34), ('related_links', 36), ('reusable_text', 37), ('reusable_notification', 38), ('email_signup', 39), ('well', 41)]], {}), 43: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('50-50', '50/50'), ('33-33-33', '33/33/33'), ('25-75', '25/75')], 'help_text': 'Choose the number and width of info unit columns.', 'label': 'Format'}), 44: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': "Check this to link all images and headings to the URL of the first link in their unit's list, if there is a link.", 'required': False}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to add a horizontal rule line to top of info unit group.', 'required': False}), 46: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this to show horizontal rule lines between info units.', 'label': 'Show rule lines between items', 'required': False}), 47: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('none', 'None'), ('rounded', 'Rounded corners'), ('circle', 'Circle')], 'help_text': 'Adds a border-radius class to images in this group, allowing for a rounded or circular border.', 'label': 'Border radius for images?', 'required': False}), 48: ('wagtail.blocks.StructBlock', [[('text', 6), ('level', 7), ('icon', 8)]], {'default': {'level': 'h3'}, 'required': False}), 49: ('wagtail.blocks.RichTextBlock', (), {'blank': True, 'required': False}), 50: ('wagtail.blocks.ListBlock', (33,), {'required': False}), 51: ('wagtail.blocks.StructBlock', [[('image', 12), ('heading', 48), ('body', 49), ('links', 50)]], {}), 52: ('wagtail.blocks.ListBlock', (51,), {'default': []}), 53: ('wagtail.blocks.StructBlock', [[('format', 43), ('heading', 9), ('intro', 29), ('link_image_and_heading', 44), ('has_top_rule_line', 45), ('lines_between_items', 46), ('border_radius_image', 47), ('info_units', 52)]], {}), 54: ('wagtail.blocks.BooleanBlock', (), {'required': False}), 55: ('wagtail.blocks.StreamBlock', [[('paragraph', 29), ('well', 41), ('links', 33), ('info_unit_group', 53)]], {'blank': True}), 56: ('wagtail.blocks.StructBlock', [[('label', 6), ('icon', 6), ('is_bordered', 54), ('is_midtone', 54), ('is_expanded', 54), ('is_expanded_padding', 54), ('content', 55)]], {}), 57: ('wagtail.blocks.RegexBlock', (), {'error_messages': {'invalid': 'The YouTube video ID is in the wrong format.'}, 'help_text': 'Enter the YouTube video ID, which is located at the end of the video URL, after "v=". For example, the video ID for https://www.youtube.com/watch?v=1V0Ax9OIc84 is 1V0Ax9OIc84.', 'label': 'YouTube video ID', 'regex': '^[\\w-]{11}$', 'required': False}), 58: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Optional thumbnail image to show before and after the video plays. If the thumbnail image is not set here, the video player will default to showing the thumbnail that was set in (or automatically chosen by) YouTube.', 'required': False}), 59: ('wagtail.blocks.StructBlock', [[('video_id', 57), ('thumbnail_image', 58)]], {}), 60: ('wagtail.blocks.CharBlock', (), {'required': True}), 61: ('wagtail.blocks.TextBlock', (), {'help_text': 'Accessible description of the chart content', 'required': True}), 62: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('bar', 'Bar'), ('datetime', 'Date/time'), ('line', 'Line'), ('tilemap', 'Tile grid map')]}), 63: ('wagtail.blocks.TextBlock', (), {'help_text': "URL of the chart's data source or an array of JSON data", 'required': True, 'rows': 2}), 64: ('wagtail.blocks.TextBlock', (), {'help_text': 'For charts pulling from a separate source file, include a list of the column headers (from a CSV file) or keys (from a JSON file) to include in the chart as ["HEADER/KEY1", "HEADER/KEY2"]. To change how the data is labeled in the chart, include the correct labels with the format [{"key": "HEADER/KEY1", "label": "NEWLABEL"}, {"key": "HEADER/KEY2", "label": "NEWLABEL2"}]', 'required': False}), 65: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Uncheck this option to initially only show the first data series in the chart. Leave checked to show all data series by default. Users can always turn data series on or off by interacting with the chart legend. ', 'required': False}), 66: ('wagtail.blocks.TextBlock', (), {'help_text': 'The column header (CSV), key or data array (JSON) to include as the source of x-axis values.', 'required': False}), 67: ('wagtail.blocks.CharBlock', (), {'help_text': "Name the javascript function in chart-hooks.js to run on the provided data before handing it to the chart. Can also provide '___'-separated arguments to this function which are passed in as arguments 2 to n", 'required': False}), 68: ('wagtail.blocks.TextBlock', (), {'help_text': 'If the chart needs the option for users to filter the data shown, for example by date or geographic region, provide the JSON objects to filter on, in the format {key: "KEY", "label": "LABEL"}', 'required': False}), 69: ('wagtail.blocks.TextBlock', (), {'help_text': 'A JSON object with style overrides for the underlying Highcharts chart. No object merging is done, nested objects should be referenced with dot notation: {"tooltip.shape": "circle"}', 'required': False}), 70: ('wagtail.blocks.IntegerBlock', (), {'blank': True, 'help_text': 'A number to determine how many months of the data are projected values', 'max_value': 12, 'min_value': 0, 'null': True, 'required': False}), 71: ('wagtail.blocks.CharBlock', (), {'help_text': 'Attribution for the data source', 'required': False}), 72: ('wagtail.blocks.CharBlock', (), {'help_text': 'When the underlying data was published', 'required': False}), 73: ('wagtail.blocks.CharBlock', (), {'help_text': 'Custom text for the chart download field. Required to display a download link.', 'required': False}), 74: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of a file to download, if different from the data source', 'required': False}), 75: ('wagtail.blocks.TextBlock', (), {'help_text': 'General chart information', 'required': False}), 76: ('wagtail.blocks.StructBlock', [[('title', 60), ('subtitle', 27), ('description', 61), ('figure_number', 6), ('chart_type', 62), ('data_source', 63), ('data_series', 64), ('show_all_series_by_default', 65), ('x_axis_source', 66), ('transform', 67), ('x_axis_label', 6), ('y_axis_label', 6), ('filters', 68), ('style_overrides', 69), ('projected_months', 70), ('source_credits', 71), ('date_published', 72), ('download_text', 73), ('download_file', 74), ('notes', 75)]], {}), 77: ('wagtail.blocks.RichTextBlock', (), {'blank': True, 'features': ['ol', 'ul', 'bold', 'italic', 'link', 'document-link'], 'required': False}), 78: ('wagtail.blocks.CharBlock', (), {'blank': True, 'help_text': "Add an optional anchor link tag for this question. Tag should be unique and use dashes or underscores for separation instead of spaces (ie, 'question-one-tag')", 'max_length': 500, 'required': False}), 79: ('wagtail.blocks.CharBlock', (), {'max_length': 500}), 80: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'h3', 'h4', 'link', 'ol', 'ul', 'document-link', 'image', 'embed'], 'label': 'Text'}), 81: ('wagtail.blocks.StructBlock', [[('content', 80)]], {}), 82: ('wagtail.blocks.StreamBlock', [[('text', 81), ('table', 25), ('video_player', 59)]], {}), 83: ('wagtail.blocks.StructBlock', [[('anchor_tag', 78), ('question', 79), ('answer_content', 82)]], {}), 84: ('wagtail.blocks.ListBlock', (83,), {}), 85: ('wagtail.blocks.StructBlock', [[('description', 77), ('questions', 84)]], {'label': 'FAQ schema'}), 86: ('wagtail.blocks.CharBlock', (), {'label': 'Title of How To section', 'max_length': 500}), 87: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4')], 'help_text': 'Choose a tag for the title of the How To section.', 'label': 'Tag for How To section title'}), 88: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'The How To schema requires a title to let search engines understand what it is about. If you do not want the title to be displayed in the page, uncheck this box and the title content will only be made available to crawlers and screen readers.', 'label': 'Show How To section title', 'required': False}), 89: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('b', 'Bold'), ('p', 'Paragraph')], 'help_text': 'Choose a tag for the title of each HowTo step.', 'label': 'Tag for step titles'}), 90: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Check this box to display numbers before step titles. ', 'label': 'Show numbers for steps', 'required': False}), 91: ('wagtail.blocks.CharBlock', (), {'blank': True, 'help_text': "Add an optional anchor link tag to allow linking directly to this step. Tag should be unique and use dashes or underscores for separation instead of spaces (ie, 'step-one-tag').", 'max_length': 500, 'required': False}), 92: ('wagtail.blocks.CharBlock', (), {'help_text': 'Enter a title for this HowTo step. You do not need to include a number in the title -- numbers will be added automatically in the template if the show numbers checkbox is checked.', 'max_length': 500}), 93: ('wagtail.blocks.StructBlock', [[('anchor_tag', 91), ('title', 92), ('step_content', 82)]], {}), 94: ('wagtail.blocks.ListBlock', (93,), {}), 95: ('wagtail.blocks.StructBlock', [[('title', 86), ('title_tag', 87), ('show_title', 88), ('description', 77), ('step_title_tag', 89), ('has_numbers', 90), ('steps', 94)]], {'label': 'HowTo schema', 'max_num': 1}), 96: ('wagtail.blocks.CharBlock', (), {'help_text': 'Optional: Adds an H5 eyebrow above H1 heading text. Only use in conjunction with heading.', 'label': 'Pre-heading', 'required': False}), 97: ('wagtail.blocks.RichTextBlock', (), {'icon': 'edit', 'required': False}), 98: ('wagtail.blocks.TextBlock', (), {'help_text': 'Accessible description of the chart content', 'required': False}), 99: ('wagtail.blocks.TextBlock', (), {'help_text': 'Description of the data source', 'required': False}), 100: ('wagtail.blocks.CharBlock', (), {'help_text': 'Location of a file to download', 'required': False}), 101: ('wagtail.blocks.TextBlock', (), {'help_text': 'Note about the chart', 'required': False}), 102: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('line', 'Line Chart'), ('bar', 'Vertical Bar Chart'), ('bar_horizontal', 'Horizontal Bar Chart'), ('pie', 'Pie Chart')], 'label': 'Chart Type'}), 103: ('wagtail.blocks.TextBlock', (), {'default': '{"data":[], "options":{}}'}), 104: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Show legend', 'required': False}), 105: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Use HTML legend', 'required': False}), 106: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('top', 'Top'), ('bottom', 'Bottom'), ('left', 'Left'), ('right', 'Right')], 'group': 'General', 'label': 'Legend position'}), 107: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Reverse legend', 'required': False}), 108: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'group': 'General', 'label': 'Show values on chart', 'required': False}), 109: ('wagtail.blocks.IntegerBlock', (), {'default': 1, 'group': 'General', 'label': 'Precision in labels/tooltips'}), 110: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'General', 'label': 'Show Chart Grid', 'required': False}), 111: ('wagtail.blocks.CharBlock', (), {'group': 'General', 'label': 'X axis label', 'required': False}), 112: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('none', 'No stacking'), ('stacked', 'Stacked'), ('stacked_100', 'Stacked 100%')], 'group': 'General', 'label': 'Stacking'}), 113: ('wagtail.blocks.CharBlock', (), {'group': 'General', 'label': 'Unit override', 'required': False}), 114: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis minimum value', 'required': False}), 115: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis maximum value', 'required': False}), 116: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis step size', 'required': False}), 117: ('wagtail.blocks.CharBlock', (), {'group': 'Left_Axis', 'label': 'Left Y axis label', 'required': False}), 118: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('number', 'Numerical'), ('percentage', 'Percentage')], 'group': 'Left_Axis', 'label': 'Left Y axis data type', 'required': False}), 119: ('wagtail.blocks.IntegerBlock', (), {'default': 0, 'group': 'Left_Axis', 'label': 'Left Y axis tick precision'}), 120: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'Left_Axis', 'label': 'Show left axis numbers', 'required': False}), 121: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis minimum value', 'required': False}), 122: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis maximum value', 'required': False}), 123: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis step size', 'required': False}), 124: ('wagtail.blocks.CharBlock', (), {'group': 'Right_Axis', 'label': 'Right Y axis label', 'required': False}), 125: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('number', 'Numerical'), ('percentage', 'Percentage')], 'group': 'Right_Axis', 'label': 'Right Y axis data type', 'required': False}), 126: ('wagtail.blocks.IntegerBlock', (), {'default': 0, 'group': 'Right_Axis', 'label': 'Right Y axis tick precision'}), 127: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'group': 'Right_Axis', 'label': 'Show right axis numbers', 'required': False}), 128: ('wagtail.blocks.IntegerBlock', (), {'default': 2, 'group': 'Pie_Chart', 'label': 'Width of pie slice border'}), 129: ('wagtail.blocks.CharBlock', (), {'default': '#fff', 'group': 'Pie_Chart', 'label': 'Color of pie slice border'}), 130: ('wagtail.blocks.StructBlock', [[('show_legend', 104), ('html_legend', 105), ('legend_position', 106), ('reverse_legend', 107), ('show_values_on_chart', 108), ('precision', 109), ('show_grid', 110), ('x_label', 111), ('stacking', 112), ('unit_override', 113), ('y_left_min', 114), ('y_left_max', 115), ('y_left_step_size', 116), ('y_left_label', 117), ('y_left_data_type', 118), ('y_left_precision', 119), ('y_left_show', 120), ('y_right_min', 121), ('y_right_max', 122), ('y_right_step_size', 123), ('y_right_label', 124), ('y_right_data_type', 125), ('y_right_precision', 126), ('y_right_show', 127), ('pie_border_width', 128), ('pie_border_color', 129)]], {}), 131: ('wagtail.blocks.StructBlock', [[('eyebrow', 96), ('title', 9), ('intro', 97), ('description', 98), ('data_source', 99), ('date_published', 72), ('download_text', 73), ('download_file', 100), ('notes', 101), ('chart_type', 102), ('datasets', 103), ('settings', 130)]], {'colors': (('#addc91', 'Green 60'), ('#1fa040', 'Mid Dark Green'), ('#257675', 'Teal'), ('#89b6b5', 'Teal 60'), ('#d14124', 'Red'), ('#e79e8e', 'Red 60'), ('#0072ce', 'Pacific'), ('#7eb7e8', 'Pacific 60'), ('#254b87', 'Navy'), ('#9daecc', 'Navy 50'), ('#dc731c', 'Dark Gold'), ('#ffc372', 'Gold 70'), ('#745745', 'Dark Neutral'), ('#baa496', 'Neutral 60'), ('#a01b68', 'Dark Purple'), ('#dc9cbf', 'Purple 50'), ('#d2d3d5', 'Gray 20'))}), 132: ('wagtail.blocks.RawHTMLBlock', (), {'help_text': 'Content from WordPress unescaped.'})}), + ), + ] diff --git a/cfgov/v1/models/base.py b/cfgov/v1/models/base.py index bb0cb9cb111..be1c7bddef0 100644 --- a/cfgov/v1/models/base.py +++ b/cfgov/v1/models/base.py @@ -354,7 +354,7 @@ def page_js(self): # Returns the JS files required by this page and its StreamField blocks. @property def media_js(self): - return sorted(set(self.page_js + self.streamfield_media("js"))) + return list(dict.fromkeys(self.page_js + self.streamfield_media("js"))) # Returns the CSS files required by this page and its StreamField blocks. @property diff --git a/cfgov/v1/models/blog_page.py b/cfgov/v1/models/blog_page.py index bf55af033f7..fc36bf04ab8 100644 --- a/cfgov/v1/models/blog_page.py +++ b/cfgov/v1/models/blog_page.py @@ -5,7 +5,7 @@ from wagtail.fields import StreamField from v1 import blocks as v1_blocks -from v1.atomic_elements import organisms, schema +from v1.atomic_elements import charts, organisms, schema from v1.feeds import get_appropriate_rss_feed_url_for_page from v1.models.learn_page import AbstractFilterPage @@ -20,6 +20,7 @@ class BlogContent(blocks.StreamBlock): simple_chart = organisms.SimpleChart() faq_schema = schema.FAQ(label="FAQ schema") how_to_schema = schema.HowTo(label="HowTo schema", max_num=1) + wagtailchart_block = charts.ChartBlock() class BlogPage(AbstractFilterPage): diff --git a/cfgov/v1/models/browse_page.py b/cfgov/v1/models/browse_page.py index 5dd744d044a..c360faef700 100644 --- a/cfgov/v1/models/browse_page.py +++ b/cfgov/v1/models/browse_page.py @@ -11,7 +11,7 @@ from data_research.blocks import MortgageDataDownloads from jobmanager.blocks import JobListingTable -from v1.atomic_elements import molecules, organisms, schema +from v1.atomic_elements import charts, molecules, organisms, schema from v1.models.base import CFGOVPage @@ -123,17 +123,27 @@ class BrowsePage(AbstractBrowsePage): [ ("full_width_text", organisms.FullWidthText()), ("info_unit_group", organisms.InfoUnitGroup()), - ("simple_chart", organisms.SimpleChart()), + ("wagtailchart_block", charts.ChartBlock()), ("expandable_group", organisms.ExpandableGroup()), ("expandable", organisms.Expandable()), ("well", organisms.Well()), ("video_player", organisms.VideoPlayer()), ("table", organisms.Table()), ("raw_html_block", blocks.RawHTMLBlock(label="Raw HTML block")), - ("chart_block", organisms.ChartBlock()), - ("mortgage_chart_block", organisms.MortgageChartBlock()), - ("mortgage_map_block", organisms.MortgageMapBlock()), - ("mortgage_downloads_block", MortgageDataDownloads()), + ("simple_chart", organisms.SimpleChart(group="Not commonly used")), + ("chart_block", organisms.ChartBlock(group="Not commonly used")), + ( + "mortgage_chart_block", + organisms.MortgageChartBlock(group="Not commonly used"), + ), + ( + "mortgage_map_block", + organisms.MortgageMapBlock(group="Not commonly used"), + ), + ( + "mortgage_downloads_block", + MortgageDataDownloads(group="Not commonly used"), + ), ("data_snapshot", organisms.DataSnapshot()), ("job_listing_table", JobListingTable()), ("faq_group", schema.FAQGroup()), diff --git a/cfgov/v1/models/learn_page.py b/cfgov/v1/models/learn_page.py index 19d192f6876..6196f6e848a 100644 --- a/cfgov/v1/models/learn_page.py +++ b/cfgov/v1/models/learn_page.py @@ -23,7 +23,7 @@ from localflavor.us.models import USStateField from v1 import blocks as v1_blocks -from v1.atomic_elements import molecules, organisms, schema +from v1.atomic_elements import charts, molecules, organisms, schema from v1.models.base import CFGOVPage from v1.util.events import get_venue_coords @@ -122,6 +122,7 @@ class DocumentDetailPage(AbstractFilterPage): ("table", organisms.Table()), ("crc_table", organisms.ConsumerReportingCompanyTable()), ("case_docket_table", organisms.CaseDocketTable()), + ("wagtailchart_block", charts.ChartBlock()), ], blank=True, block_counts={"case_docket_table": {"max_num": 1}}, diff --git a/cfgov/v1/tests/atomic_elements/organisms/test_charts.py b/cfgov/v1/tests/atomic_elements/organisms/test_charts.py new file mode 100644 index 00000000000..7e982fe70c7 --- /dev/null +++ b/cfgov/v1/tests/atomic_elements/organisms/test_charts.py @@ -0,0 +1,23 @@ +from django.test import TestCase + +from wagtail.models import Site + +from v1.atomic_elements.charts import CHART_COLORS, CHART_TYPES, ChartBlock + + +class ChartBlockTestCase(TestCase): + def setUp(self): + self.root = Site.objects.get(is_default_site=True).root_page + + def test_chartblock_overrides(self): + block = ChartBlock() + + # We override the chart types and colors + self.assertEqual(block.chart_types, CHART_TYPES) + self.assertEqual(block.meta.colors, CHART_COLORS) + + # And we override the child block ordering to ensure these are the + # last three blocks in the editor. + self.assertEqual(list(block.child_blocks.keys())[-1], "settings") + self.assertEqual(list(block.child_blocks.keys())[-2], "datasets") + self.assertEqual(list(block.child_blocks.keys())[-3], "chart_type") diff --git a/npm-packages-offline-cache/@babel-code-frame-7.24.7.tgz b/npm-packages-offline-cache/@babel-code-frame-7.24.7.tgz deleted file mode 100644 index 426d12947cc..00000000000 Binary files a/npm-packages-offline-cache/@babel-code-frame-7.24.7.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-code-frame-7.25.7.tgz b/npm-packages-offline-cache/@babel-code-frame-7.25.7.tgz new file mode 100644 index 00000000000..5a11a82b840 Binary files /dev/null and b/npm-packages-offline-cache/@babel-code-frame-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-compat-data-7.25.4.tgz b/npm-packages-offline-cache/@babel-compat-data-7.25.4.tgz deleted file mode 100644 index f0c514f53a8..00000000000 Binary files a/npm-packages-offline-cache/@babel-compat-data-7.25.4.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-compat-data-7.25.7.tgz b/npm-packages-offline-cache/@babel-compat-data-7.25.7.tgz new file mode 100644 index 00000000000..505f5db98b4 Binary files /dev/null and b/npm-packages-offline-cache/@babel-compat-data-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-core-7.25.2.tgz b/npm-packages-offline-cache/@babel-core-7.25.2.tgz deleted file mode 100644 index c8d4ffe60e0..00000000000 Binary files a/npm-packages-offline-cache/@babel-core-7.25.2.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-core-7.25.7.tgz b/npm-packages-offline-cache/@babel-core-7.25.7.tgz new file mode 100644 index 00000000000..61b1c9dc14d Binary files /dev/null and b/npm-packages-offline-cache/@babel-core-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-generator-7.25.6.tgz b/npm-packages-offline-cache/@babel-generator-7.25.6.tgz deleted file mode 100644 index b13512b69b3..00000000000 Binary files a/npm-packages-offline-cache/@babel-generator-7.25.6.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-generator-7.25.7.tgz b/npm-packages-offline-cache/@babel-generator-7.25.7.tgz new file mode 100644 index 00000000000..9e3849f2683 Binary files /dev/null and b/npm-packages-offline-cache/@babel-generator-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helper-compilation-targets-7.25.2.tgz b/npm-packages-offline-cache/@babel-helper-compilation-targets-7.25.2.tgz deleted file mode 100644 index 1a5dd30179a..00000000000 Binary files a/npm-packages-offline-cache/@babel-helper-compilation-targets-7.25.2.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-helper-compilation-targets-7.25.7.tgz b/npm-packages-offline-cache/@babel-helper-compilation-targets-7.25.7.tgz new file mode 100644 index 00000000000..16be304767f Binary files /dev/null and b/npm-packages-offline-cache/@babel-helper-compilation-targets-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helper-module-imports-7.24.7.tgz b/npm-packages-offline-cache/@babel-helper-module-imports-7.24.7.tgz deleted file mode 100644 index e9ee2a3ff95..00000000000 Binary files a/npm-packages-offline-cache/@babel-helper-module-imports-7.24.7.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-helper-module-imports-7.25.7.tgz b/npm-packages-offline-cache/@babel-helper-module-imports-7.25.7.tgz new file mode 100644 index 00000000000..f46318e8c7b Binary files /dev/null and b/npm-packages-offline-cache/@babel-helper-module-imports-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helper-module-transforms-7.25.2.tgz b/npm-packages-offline-cache/@babel-helper-module-transforms-7.25.2.tgz deleted file mode 100644 index 7b2aea4aaee..00000000000 Binary files a/npm-packages-offline-cache/@babel-helper-module-transforms-7.25.2.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-helper-module-transforms-7.25.7.tgz b/npm-packages-offline-cache/@babel-helper-module-transforms-7.25.7.tgz new file mode 100644 index 00000000000..baf1608e321 Binary files /dev/null and b/npm-packages-offline-cache/@babel-helper-module-transforms-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helper-plugin-utils-7.24.8.tgz b/npm-packages-offline-cache/@babel-helper-plugin-utils-7.24.8.tgz deleted file mode 100644 index f836906754d..00000000000 Binary files a/npm-packages-offline-cache/@babel-helper-plugin-utils-7.24.8.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-helper-plugin-utils-7.25.7.tgz b/npm-packages-offline-cache/@babel-helper-plugin-utils-7.25.7.tgz new file mode 100644 index 00000000000..78864c980a0 Binary files /dev/null and b/npm-packages-offline-cache/@babel-helper-plugin-utils-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helper-simple-access-7.24.7.tgz b/npm-packages-offline-cache/@babel-helper-simple-access-7.24.7.tgz deleted file mode 100644 index d093065caf7..00000000000 Binary files a/npm-packages-offline-cache/@babel-helper-simple-access-7.24.7.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-helper-simple-access-7.25.7.tgz b/npm-packages-offline-cache/@babel-helper-simple-access-7.25.7.tgz new file mode 100644 index 00000000000..0600d5bda06 Binary files /dev/null and b/npm-packages-offline-cache/@babel-helper-simple-access-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helper-string-parser-7.24.8.tgz b/npm-packages-offline-cache/@babel-helper-string-parser-7.24.8.tgz deleted file mode 100644 index 3b03b850215..00000000000 Binary files a/npm-packages-offline-cache/@babel-helper-string-parser-7.24.8.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-helper-string-parser-7.25.7.tgz b/npm-packages-offline-cache/@babel-helper-string-parser-7.25.7.tgz new file mode 100644 index 00000000000..99d931b0ca3 Binary files /dev/null and b/npm-packages-offline-cache/@babel-helper-string-parser-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helper-validator-identifier-7.24.7.tgz b/npm-packages-offline-cache/@babel-helper-validator-identifier-7.24.7.tgz deleted file mode 100644 index 8f0e33ab3ec..00000000000 Binary files a/npm-packages-offline-cache/@babel-helper-validator-identifier-7.24.7.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-helper-validator-identifier-7.25.7.tgz b/npm-packages-offline-cache/@babel-helper-validator-identifier-7.25.7.tgz new file mode 100644 index 00000000000..d8945eb8956 Binary files /dev/null and b/npm-packages-offline-cache/@babel-helper-validator-identifier-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helper-validator-option-7.24.8.tgz b/npm-packages-offline-cache/@babel-helper-validator-option-7.24.8.tgz deleted file mode 100644 index 34e75532abb..00000000000 Binary files a/npm-packages-offline-cache/@babel-helper-validator-option-7.24.8.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-helper-validator-option-7.25.7.tgz b/npm-packages-offline-cache/@babel-helper-validator-option-7.25.7.tgz new file mode 100644 index 00000000000..6be15578667 Binary files /dev/null and b/npm-packages-offline-cache/@babel-helper-validator-option-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-helpers-7.25.6.tgz b/npm-packages-offline-cache/@babel-helpers-7.25.7.tgz similarity index 78% rename from npm-packages-offline-cache/@babel-helpers-7.25.6.tgz rename to npm-packages-offline-cache/@babel-helpers-7.25.7.tgz index 88911e16b7a..8c23d6ea9cb 100644 Binary files a/npm-packages-offline-cache/@babel-helpers-7.25.6.tgz and b/npm-packages-offline-cache/@babel-helpers-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-highlight-7.24.7.tgz b/npm-packages-offline-cache/@babel-highlight-7.24.7.tgz deleted file mode 100644 index f0943404ded..00000000000 Binary files a/npm-packages-offline-cache/@babel-highlight-7.24.7.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-highlight-7.25.7.tgz b/npm-packages-offline-cache/@babel-highlight-7.25.7.tgz new file mode 100644 index 00000000000..a61a7c19466 Binary files /dev/null and b/npm-packages-offline-cache/@babel-highlight-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-parser-7.25.6.tgz b/npm-packages-offline-cache/@babel-parser-7.25.6.tgz deleted file mode 100644 index 1a813c3ed7d..00000000000 Binary files a/npm-packages-offline-cache/@babel-parser-7.25.6.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-parser-7.25.7.tgz b/npm-packages-offline-cache/@babel-parser-7.25.7.tgz new file mode 100644 index 00000000000..1c6b859f430 Binary files /dev/null and b/npm-packages-offline-cache/@babel-parser-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-plugin-syntax-import-attributes-7.25.6.tgz b/npm-packages-offline-cache/@babel-plugin-syntax-import-attributes-7.25.6.tgz deleted file mode 100644 index da89651f55c..00000000000 Binary files a/npm-packages-offline-cache/@babel-plugin-syntax-import-attributes-7.25.6.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-plugin-syntax-import-attributes-7.25.7.tgz b/npm-packages-offline-cache/@babel-plugin-syntax-import-attributes-7.25.7.tgz new file mode 100644 index 00000000000..41a765d7385 Binary files /dev/null and b/npm-packages-offline-cache/@babel-plugin-syntax-import-attributes-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-plugin-syntax-jsx-7.24.7.tgz b/npm-packages-offline-cache/@babel-plugin-syntax-jsx-7.24.7.tgz deleted file mode 100644 index 0edfb22f9b4..00000000000 Binary files a/npm-packages-offline-cache/@babel-plugin-syntax-jsx-7.24.7.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-plugin-syntax-jsx-7.25.7.tgz b/npm-packages-offline-cache/@babel-plugin-syntax-jsx-7.25.7.tgz new file mode 100644 index 00000000000..f3e2965c078 Binary files /dev/null and b/npm-packages-offline-cache/@babel-plugin-syntax-jsx-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-plugin-syntax-typescript-7.25.4.tgz b/npm-packages-offline-cache/@babel-plugin-syntax-typescript-7.25.4.tgz deleted file mode 100644 index df20b451ed2..00000000000 Binary files a/npm-packages-offline-cache/@babel-plugin-syntax-typescript-7.25.4.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-plugin-syntax-typescript-7.25.7.tgz b/npm-packages-offline-cache/@babel-plugin-syntax-typescript-7.25.7.tgz new file mode 100644 index 00000000000..dc3fe3efbe2 Binary files /dev/null and b/npm-packages-offline-cache/@babel-plugin-syntax-typescript-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-runtime-7.25.6.tgz b/npm-packages-offline-cache/@babel-runtime-7.25.7.tgz similarity index 99% rename from npm-packages-offline-cache/@babel-runtime-7.25.6.tgz rename to npm-packages-offline-cache/@babel-runtime-7.25.7.tgz index e5dd7e738b5..7894be295c0 100644 Binary files a/npm-packages-offline-cache/@babel-runtime-7.25.6.tgz and b/npm-packages-offline-cache/@babel-runtime-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-template-7.25.0.tgz b/npm-packages-offline-cache/@babel-template-7.25.0.tgz deleted file mode 100644 index 85fcd420951..00000000000 Binary files a/npm-packages-offline-cache/@babel-template-7.25.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-template-7.25.7.tgz b/npm-packages-offline-cache/@babel-template-7.25.7.tgz new file mode 100644 index 00000000000..dcffe4856f9 Binary files /dev/null and b/npm-packages-offline-cache/@babel-template-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-traverse-7.25.6.tgz b/npm-packages-offline-cache/@babel-traverse-7.25.6.tgz deleted file mode 100644 index e20602031cc..00000000000 Binary files a/npm-packages-offline-cache/@babel-traverse-7.25.6.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-traverse-7.25.7.tgz b/npm-packages-offline-cache/@babel-traverse-7.25.7.tgz new file mode 100644 index 00000000000..91107d579b0 Binary files /dev/null and b/npm-packages-offline-cache/@babel-traverse-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@babel-types-7.25.6.tgz b/npm-packages-offline-cache/@babel-types-7.25.6.tgz deleted file mode 100644 index 56bf02b63e4..00000000000 Binary files a/npm-packages-offline-cache/@babel-types-7.25.6.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@babel-types-7.25.7.tgz b/npm-packages-offline-cache/@babel-types-7.25.7.tgz new file mode 100644 index 00000000000..bfed1a5381f Binary files /dev/null and b/npm-packages-offline-cache/@babel-types-7.25.7.tgz differ diff --git a/npm-packages-offline-cache/@cypress-request-3.0.1.tgz b/npm-packages-offline-cache/@cypress-request-3.0.1.tgz deleted file mode 100644 index 22d2ddb3063..00000000000 Binary files a/npm-packages-offline-cache/@cypress-request-3.0.1.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@cypress-request-3.0.5.tgz b/npm-packages-offline-cache/@cypress-request-3.0.5.tgz new file mode 100644 index 00000000000..43f352ad9f4 Binary files /dev/null and b/npm-packages-offline-cache/@cypress-request-3.0.5.tgz differ diff --git a/npm-packages-offline-cache/@eslint-community-regexpp-4.11.0.tgz b/npm-packages-offline-cache/@eslint-community-regexpp-4.11.0.tgz deleted file mode 100644 index f9c503a911c..00000000000 Binary files a/npm-packages-offline-cache/@eslint-community-regexpp-4.11.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@eslint-community-regexpp-4.11.1.tgz b/npm-packages-offline-cache/@eslint-community-regexpp-4.11.1.tgz new file mode 100644 index 00000000000..267fc55c8f2 Binary files /dev/null and b/npm-packages-offline-cache/@eslint-community-regexpp-4.11.1.tgz differ diff --git a/npm-packages-offline-cache/@types-estree-1.0.5.tgz b/npm-packages-offline-cache/@types-estree-1.0.5.tgz deleted file mode 100644 index 96f998878ad..00000000000 Binary files a/npm-packages-offline-cache/@types-estree-1.0.5.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@types-estree-1.0.6.tgz b/npm-packages-offline-cache/@types-estree-1.0.6.tgz new file mode 100644 index 00000000000..5c524dacd94 Binary files /dev/null and b/npm-packages-offline-cache/@types-estree-1.0.6.tgz differ diff --git a/npm-packages-offline-cache/@types-node-22.5.2.tgz b/npm-packages-offline-cache/@types-node-22.5.2.tgz deleted file mode 100644 index ab4c386848e..00000000000 Binary files a/npm-packages-offline-cache/@types-node-22.5.2.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/@types-node-22.7.4.tgz b/npm-packages-offline-cache/@types-node-22.7.4.tgz new file mode 100644 index 00000000000..7b05f3b62b2 Binary files /dev/null and b/npm-packages-offline-cache/@types-node-22.7.4.tgz differ diff --git a/npm-packages-offline-cache/acorn-walk-8.3.3.tgz b/npm-packages-offline-cache/acorn-walk-8.3.3.tgz deleted file mode 100644 index cf597d78088..00000000000 Binary files a/npm-packages-offline-cache/acorn-walk-8.3.3.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/acorn-walk-8.3.4.tgz b/npm-packages-offline-cache/acorn-walk-8.3.4.tgz new file mode 100644 index 00000000000..9df6a5ae469 Binary files /dev/null and b/npm-packages-offline-cache/acorn-walk-8.3.4.tgz differ diff --git a/npm-packages-offline-cache/ansi-regex-6.0.1.tgz b/npm-packages-offline-cache/ansi-regex-6.0.1.tgz deleted file mode 100644 index 9f3d1a179c3..00000000000 Binary files a/npm-packages-offline-cache/ansi-regex-6.0.1.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/ansi-regex-6.1.0.tgz b/npm-packages-offline-cache/ansi-regex-6.1.0.tgz new file mode 100644 index 00000000000..1c9144b0ce5 Binary files /dev/null and b/npm-packages-offline-cache/ansi-regex-6.1.0.tgz differ diff --git a/npm-packages-offline-cache/aria-query-5.3.0.tgz b/npm-packages-offline-cache/aria-query-5.3.0.tgz deleted file mode 100644 index 01b8597b153..00000000000 Binary files a/npm-packages-offline-cache/aria-query-5.3.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/aria-query-5.3.2.tgz b/npm-packages-offline-cache/aria-query-5.3.2.tgz new file mode 100644 index 00000000000..383d466d328 Binary files /dev/null and b/npm-packages-offline-cache/aria-query-5.3.2.tgz differ diff --git a/npm-packages-offline-cache/binary-extensions-2.3.0.tgz b/npm-packages-offline-cache/binary-extensions-2.3.0.tgz deleted file mode 100644 index f09abb3bc92..00000000000 Binary files a/npm-packages-offline-cache/binary-extensions-2.3.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/browserslist-4.23.3.tgz b/npm-packages-offline-cache/browserslist-4.23.3.tgz deleted file mode 100644 index dd010140002..00000000000 Binary files a/npm-packages-offline-cache/browserslist-4.23.3.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/browserslist-4.24.0.tgz b/npm-packages-offline-cache/browserslist-4.24.0.tgz new file mode 100644 index 00000000000..02ddd706288 Binary files /dev/null and b/npm-packages-offline-cache/browserslist-4.24.0.tgz differ diff --git a/npm-packages-offline-cache/caniuse-lite-1.0.30001655.tgz b/npm-packages-offline-cache/caniuse-lite-1.0.30001655.tgz deleted file mode 100644 index c0a5b3f9115..00000000000 Binary files a/npm-packages-offline-cache/caniuse-lite-1.0.30001655.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/caniuse-lite-1.0.30001666.tgz b/npm-packages-offline-cache/caniuse-lite-1.0.30001666.tgz new file mode 100644 index 00000000000..e79dcfc9d44 Binary files /dev/null and b/npm-packages-offline-cache/caniuse-lite-1.0.30001666.tgz differ diff --git a/npm-packages-offline-cache/chokidar-3.6.0.tgz b/npm-packages-offline-cache/chokidar-3.6.0.tgz deleted file mode 100644 index 7ed4eae4673..00000000000 Binary files a/npm-packages-offline-cache/chokidar-3.6.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/chokidar-4.0.1.tgz b/npm-packages-offline-cache/chokidar-4.0.1.tgz new file mode 100644 index 00000000000..2a22b37b947 Binary files /dev/null and b/npm-packages-offline-cache/chokidar-4.0.1.tgz differ diff --git a/npm-packages-offline-cache/cjs-module-lexer-1.4.0.tgz b/npm-packages-offline-cache/cjs-module-lexer-1.4.0.tgz deleted file mode 100644 index 87c2de51791..00000000000 Binary files a/npm-packages-offline-cache/cjs-module-lexer-1.4.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/cjs-module-lexer-1.4.1.tgz b/npm-packages-offline-cache/cjs-module-lexer-1.4.1.tgz new file mode 100644 index 00000000000..e59c3c7d89e Binary files /dev/null and b/npm-packages-offline-cache/cjs-module-lexer-1.4.1.tgz differ diff --git a/npm-packages-offline-cache/debug-4.3.6.tgz b/npm-packages-offline-cache/debug-4.3.6.tgz deleted file mode 100644 index dbed55d6553..00000000000 Binary files a/npm-packages-offline-cache/debug-4.3.6.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/debug-4.3.7.tgz b/npm-packages-offline-cache/debug-4.3.7.tgz new file mode 100644 index 00000000000..1655a3dc60a Binary files /dev/null and b/npm-packages-offline-cache/debug-4.3.7.tgz differ diff --git a/npm-packages-offline-cache/dequal-2.0.3.tgz b/npm-packages-offline-cache/dequal-2.0.3.tgz deleted file mode 100644 index d1d52b60a27..00000000000 Binary files a/npm-packages-offline-cache/dequal-2.0.3.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/electron-to-chromium-1.5.13.tgz b/npm-packages-offline-cache/electron-to-chromium-1.5.13.tgz deleted file mode 100644 index 4333f3c9241..00000000000 Binary files a/npm-packages-offline-cache/electron-to-chromium-1.5.13.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/electron-to-chromium-1.5.31.tgz b/npm-packages-offline-cache/electron-to-chromium-1.5.31.tgz new file mode 100644 index 00000000000..00d92061d8d Binary files /dev/null and b/npm-packages-offline-cache/electron-to-chromium-1.5.31.tgz differ diff --git a/npm-packages-offline-cache/eslint-module-utils-2.12.0.tgz b/npm-packages-offline-cache/eslint-module-utils-2.12.0.tgz new file mode 100644 index 00000000000..43fa21ee1b5 Binary files /dev/null and b/npm-packages-offline-cache/eslint-module-utils-2.12.0.tgz differ diff --git a/npm-packages-offline-cache/eslint-module-utils-2.9.0.tgz b/npm-packages-offline-cache/eslint-module-utils-2.9.0.tgz deleted file mode 100644 index 93d676b28fb..00000000000 Binary files a/npm-packages-offline-cache/eslint-module-utils-2.9.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/fast-uri-3.0.1.tgz b/npm-packages-offline-cache/fast-uri-3.0.1.tgz deleted file mode 100644 index 6937325ee91..00000000000 Binary files a/npm-packages-offline-cache/fast-uri-3.0.1.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/fast-uri-3.0.2.tgz b/npm-packages-offline-cache/fast-uri-3.0.2.tgz new file mode 100644 index 00000000000..501a4732b90 Binary files /dev/null and b/npm-packages-offline-cache/fast-uri-3.0.2.tgz differ diff --git a/npm-packages-offline-cache/form-data-2.3.3.tgz b/npm-packages-offline-cache/form-data-2.3.3.tgz deleted file mode 100644 index e2ccd1a4b5c..00000000000 Binary files a/npm-packages-offline-cache/form-data-2.3.3.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/http-signature-1.3.6.tgz b/npm-packages-offline-cache/http-signature-1.3.6.tgz deleted file mode 100644 index 449d812bd8b..00000000000 Binary files a/npm-packages-offline-cache/http-signature-1.3.6.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/http-signature-1.4.0.tgz b/npm-packages-offline-cache/http-signature-1.4.0.tgz new file mode 100644 index 00000000000..c1d0ef3fbf1 Binary files /dev/null and b/npm-packages-offline-cache/http-signature-1.4.0.tgz differ diff --git a/npm-packages-offline-cache/is-binary-path-2.1.0.tgz b/npm-packages-offline-cache/is-binary-path-2.1.0.tgz deleted file mode 100644 index be7714afbde..00000000000 Binary files a/npm-packages-offline-cache/is-binary-path-2.1.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/jsesc-2.5.2.tgz b/npm-packages-offline-cache/jsesc-2.5.2.tgz deleted file mode 100644 index 5c4afb70ba5..00000000000 Binary files a/npm-packages-offline-cache/jsesc-2.5.2.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/jsesc-3.0.2.tgz b/npm-packages-offline-cache/jsesc-3.0.2.tgz new file mode 100644 index 00000000000..7a9c7ae969a Binary files /dev/null and b/npm-packages-offline-cache/jsesc-3.0.2.tgz differ diff --git a/npm-packages-offline-cache/ms-2.1.2.tgz b/npm-packages-offline-cache/ms-2.1.2.tgz deleted file mode 100644 index 82525387eb2..00000000000 Binary files a/npm-packages-offline-cache/ms-2.1.2.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/nwsapi-2.2.12.tgz b/npm-packages-offline-cache/nwsapi-2.2.12.tgz deleted file mode 100644 index f9a803ba511..00000000000 Binary files a/npm-packages-offline-cache/nwsapi-2.2.12.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/nwsapi-2.2.13.tgz b/npm-packages-offline-cache/nwsapi-2.2.13.tgz new file mode 100644 index 00000000000..7c77f30f902 Binary files /dev/null and b/npm-packages-offline-cache/nwsapi-2.2.13.tgz differ diff --git a/npm-packages-offline-cache/patternomaly-1.3.2.tgz b/npm-packages-offline-cache/patternomaly-1.3.2.tgz new file mode 100644 index 00000000000..a0cb4bbe8a6 Binary files /dev/null and b/npm-packages-offline-cache/patternomaly-1.3.2.tgz differ diff --git a/npm-packages-offline-cache/patternomaly-36e497c0b79ca786c8eded8abd954d927facd6a7 b/npm-packages-offline-cache/patternomaly-36e497c0b79ca786c8eded8abd954d927facd6a7 new file mode 100644 index 00000000000..8cabdd47d05 Binary files /dev/null and b/npm-packages-offline-cache/patternomaly-36e497c0b79ca786c8eded8abd954d927facd6a7 differ diff --git a/npm-packages-offline-cache/patternomaly-5ca857ae7888aacaac9ecfc43f6b3e9859e40645 b/npm-packages-offline-cache/patternomaly-5ca857ae7888aacaac9ecfc43f6b3e9859e40645 new file mode 100644 index 00000000000..c3962d5a9b3 Binary files /dev/null and b/npm-packages-offline-cache/patternomaly-5ca857ae7888aacaac9ecfc43f6b3e9859e40645 differ diff --git a/npm-packages-offline-cache/postcss-8.4.44.tgz b/npm-packages-offline-cache/postcss-8.4.44.tgz deleted file mode 100644 index 3d8ca24274f..00000000000 Binary files a/npm-packages-offline-cache/postcss-8.4.44.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/pump-3.0.0.tgz b/npm-packages-offline-cache/pump-3.0.0.tgz deleted file mode 100644 index 337322cf0dc..00000000000 Binary files a/npm-packages-offline-cache/pump-3.0.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/pump-3.0.2.tgz b/npm-packages-offline-cache/pump-3.0.2.tgz new file mode 100644 index 00000000000..66b6be34477 Binary files /dev/null and b/npm-packages-offline-cache/pump-3.0.2.tgz differ diff --git a/npm-packages-offline-cache/qs-6.10.4.tgz b/npm-packages-offline-cache/qs-6.10.4.tgz deleted file mode 100644 index 900de141a46..00000000000 Binary files a/npm-packages-offline-cache/qs-6.10.4.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/qs-6.13.0.tgz b/npm-packages-offline-cache/qs-6.13.0.tgz new file mode 100644 index 00000000000..64b3e0ba397 Binary files /dev/null and b/npm-packages-offline-cache/qs-6.13.0.tgz differ diff --git a/npm-packages-offline-cache/readdirp-3.6.0.tgz b/npm-packages-offline-cache/readdirp-3.6.0.tgz deleted file mode 100644 index cc455c08bd4..00000000000 Binary files a/npm-packages-offline-cache/readdirp-3.6.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/readdirp-4.0.1.tgz b/npm-packages-offline-cache/readdirp-4.0.1.tgz new file mode 100644 index 00000000000..499795297fb Binary files /dev/null and b/npm-packages-offline-cache/readdirp-4.0.1.tgz differ diff --git a/npm-packages-offline-cache/sass-1.77.8.tgz b/npm-packages-offline-cache/sass-1.77.8.tgz deleted file mode 100644 index fd9a669f73a..00000000000 Binary files a/npm-packages-offline-cache/sass-1.77.8.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/sass-1.79.4.tgz b/npm-packages-offline-cache/sass-1.79.4.tgz new file mode 100644 index 00000000000..1cf2cb7d7a4 Binary files /dev/null and b/npm-packages-offline-cache/sass-1.79.4.tgz differ diff --git a/npm-packages-offline-cache/source-map-js-1.2.0.tgz b/npm-packages-offline-cache/source-map-js-1.2.0.tgz deleted file mode 100644 index f01a73d28f1..00000000000 Binary files a/npm-packages-offline-cache/source-map-js-1.2.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/stylelint-scss-6.5.1.tgz b/npm-packages-offline-cache/stylelint-scss-6.5.1.tgz deleted file mode 100644 index b38acf9a864..00000000000 Binary files a/npm-packages-offline-cache/stylelint-scss-6.5.1.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/stylelint-scss-6.7.0.tgz b/npm-packages-offline-cache/stylelint-scss-6.7.0.tgz new file mode 100644 index 00000000000..7f978d867b1 Binary files /dev/null and b/npm-packages-offline-cache/stylelint-scss-6.7.0.tgz differ diff --git a/npm-packages-offline-cache/update-browserslist-db-1.1.0.tgz b/npm-packages-offline-cache/update-browserslist-db-1.1.0.tgz deleted file mode 100644 index 06381f9c1ed..00000000000 Binary files a/npm-packages-offline-cache/update-browserslist-db-1.1.0.tgz and /dev/null differ diff --git a/npm-packages-offline-cache/update-browserslist-db-1.1.1.tgz b/npm-packages-offline-cache/update-browserslist-db-1.1.1.tgz new file mode 100644 index 00000000000..501e816a3c6 Binary files /dev/null and b/npm-packages-offline-cache/update-browserslist-db-1.1.1.tgz differ diff --git a/package.json b/package.json index 1cb0a691c6a..e25cb883e20 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "lodash.throttle": "4.1.1", "number-to-words": "1.2.4", "papaparse": "5.3.2", + "patternomaly": "1.3.2", "postcss": "8.4.47", "svg-inline-loader": "0.8.2" }, diff --git a/requirements/libraries.txt b/requirements/libraries.txt index 42b5b858133..73c4b76757a 100644 --- a/requirements/libraries.txt +++ b/requirements/libraries.txt @@ -42,6 +42,7 @@ wagtail-placeholder-images==0.1.1 wagtail-sharing==2.12.1 wagtail-treemodeladmin==1.9.2 wagtailmedia==0.15.2 +wagtailcharts==0.6.1 # These packages are installed from GitHub. https://github.com/cfpb/owning-a-home-api/releases/download/0.18.2/owning_a_home_api-0.18.2-py3-none-any.whl diff --git a/yarn.lock b/yarn.lock index 1ddeaf37616..9d3b70dec63 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,131 +10,131 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.7.tgz#438f2c524071531d643c6f0188e1e28f130cebc7" + integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== dependencies: - "@babel/highlight" "^7.24.7" + "@babel/highlight" "^7.25.7" picocolors "^1.0.0" -"@babel/compat-data@^7.25.2": - version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" - integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== +"@babel/compat-data@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.7.tgz#b8479fe0018ef0ac87b6b7a5c6916fcd67ae2c9c" + integrity sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" - integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.7.tgz#1b3d144157575daf132a3bc80b2b18e6e3ca6ece" + integrity sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.0" - "@babel/helper-compilation-targets" "^7.25.2" - "@babel/helper-module-transforms" "^7.25.2" - "@babel/helpers" "^7.25.0" - "@babel/parser" "^7.25.0" - "@babel/template" "^7.25.0" - "@babel/traverse" "^7.25.2" - "@babel/types" "^7.25.2" + "@babel/code-frame" "^7.25.7" + "@babel/generator" "^7.25.7" + "@babel/helper-compilation-targets" "^7.25.7" + "@babel/helper-module-transforms" "^7.25.7" + "@babel/helpers" "^7.25.7" + "@babel/parser" "^7.25.7" + "@babel/template" "^7.25.7" + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.25.0", "@babel/generator@^7.25.6", "@babel/generator@^7.7.2": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.6.tgz#0df1ad8cb32fe4d2b01d8bf437f153d19342a87c" - integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw== +"@babel/generator@^7.25.7", "@babel/generator@^7.7.2": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.7.tgz#de86acbeb975a3e11ee92dd52223e6b03b479c56" + integrity sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA== dependencies: - "@babel/types" "^7.25.6" + "@babel/types" "^7.25.7" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" + jsesc "^3.0.2" -"@babel/helper-compilation-targets@^7.25.2": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" - integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== +"@babel/helper-compilation-targets@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz#11260ac3322dda0ef53edfae6e97b961449f5fa4" + integrity sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A== dependencies: - "@babel/compat-data" "^7.25.2" - "@babel/helper-validator-option" "^7.24.8" - browserslist "^4.23.1" + "@babel/compat-data" "^7.25.7" + "@babel/helper-validator-option" "^7.25.7" + browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-module-imports@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" - integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-module-transforms@^7.25.2": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" - integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== - dependencies: - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - "@babel/traverse" "^7.25.2" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" - integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== - -"@babel/helper-simple-access@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" - integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-string-parser@^7.24.8": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" - integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== - -"@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== - -"@babel/helper-validator-option@^7.24.8": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" - integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== - -"@babel/helpers@^7.25.0": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.6.tgz#57ee60141829ba2e102f30711ffe3afab357cc60" - integrity sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q== - dependencies: - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.6" - -"@babel/highlight@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" - integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== - dependencies: - "@babel/helper-validator-identifier" "^7.24.7" +"@babel/helper-module-imports@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz#dba00d9523539152906ba49263e36d7261040472" + integrity sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-module-transforms@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz#2ac9372c5e001b19bc62f1fe7d96a18cb0901d1a" + integrity sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ== + dependencies: + "@babel/helper-module-imports" "^7.25.7" + "@babel/helper-simple-access" "^7.25.7" + "@babel/helper-validator-identifier" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.8.0": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz#8ec5b21812d992e1ef88a9b068260537b6f0e36c" + integrity sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw== + +"@babel/helper-simple-access@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz#5eb9f6a60c5d6b2e0f76057004f8dacbddfae1c0" + integrity sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-string-parser@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54" + integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== + +"@babel/helper-validator-identifier@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" + integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== + +"@babel/helper-validator-option@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz#97d1d684448228b30b506d90cace495d6f492729" + integrity sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ== + +"@babel/helpers@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.7.tgz#091b52cb697a171fe0136ab62e54e407211f09c2" + integrity sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA== + dependencies: + "@babel/template" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/highlight@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.7.tgz#20383b5f442aa606e7b5e3043b0b1aafe9f37de5" + integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== + dependencies: + "@babel/helper-validator-identifier" "^7.25.7" chalk "^2.4.2" js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.6": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" - integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.7.tgz#99b927720f4ddbfeb8cd195a363ed4532f87c590" + integrity sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw== dependencies: - "@babel/types" "^7.25.6" + "@babel/types" "^7.25.7" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -165,11 +165,11 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz#6d4c78f042db0e82fd6436cd65fec5dc78ad2bde" - integrity sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ== + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz#d78dd0499d30df19a598e63ab895e21b909bc43f" + integrity sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw== dependencies: - "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-plugin-utils" "^7.25.7" "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" @@ -186,11 +186,11 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" - integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz#5352d398d11ea5e7ef330c854dea1dae0bf18165" + integrity sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.25.7" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -249,48 +249,48 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" - integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz#bfc05b0cc31ebd8af09964650cee723bb228108b" + integrity sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g== dependencies: - "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-plugin-utils" "^7.25.7" "@babel/runtime@^7.23.2": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" - integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.7.tgz#7ffb53c37a8f247c8c4d335e89cdf16a2e0d0fb6" + integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.25.0", "@babel/template@^7.3.3": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" - integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.25.0" - "@babel/types" "^7.25.0" - -"@babel/traverse@^7.24.7", "@babel/traverse@^7.25.2": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41" - integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.6" - "@babel/parser" "^7.25.6" - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.6" +"@babel/template@^7.25.7", "@babel/template@^7.3.3": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.7.tgz#27f69ce382855d915b14ab0fe5fb4cbf88fa0769" + integrity sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA== + dependencies: + "@babel/code-frame" "^7.25.7" + "@babel/parser" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/traverse@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8" + integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== + dependencies: + "@babel/code-frame" "^7.25.7" + "@babel/generator" "^7.25.7" + "@babel/parser" "^7.25.7" + "@babel/template" "^7.25.7" + "@babel/types" "^7.25.7" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.6", "@babel/types@^7.3.3": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" - integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.7", "@babel/types@^7.3.3": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b" + integrity sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ== dependencies: - "@babel/helper-string-parser" "^7.24.8" - "@babel/helper-validator-identifier" "^7.24.7" + "@babel/helper-string-parser" "^7.25.7" + "@babel/helper-validator-identifier" "^7.25.7" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -353,9 +353,9 @@ integrity sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ== "@cypress/request@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.1.tgz#72d7d5425236a2413bd3d8bb66d02d9dc3168960" - integrity sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.5.tgz#d893a6e68ce2636c085fcd8d7283c3186499ba63" + integrity sha512-v+XHd9XmWbufxF1/bTaVm2yhbxY+TB4YtWRqF2zaXBlDNMkls34KiATz0AVDLavL3iB6bQk9/7n3oY1EoLSWGA== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -363,14 +363,14 @@ combined-stream "~1.0.6" extend "~3.0.2" forever-agent "~0.6.1" - form-data "~2.3.2" - http-signature "~1.3.6" + form-data "~4.0.0" + http-signature "~1.4.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.19" performance-now "^2.1.0" - qs "6.10.4" + qs "6.13.0" safe-buffer "^5.1.2" tough-cookie "^4.1.3" tunnel-agent "^0.6.0" @@ -534,9 +534,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.6.1": - version "4.11.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" - integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== + version "4.11.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.1.tgz#a547badfc719eb3e5f4b556325e542fbe9d7a18f" + integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q== "@eslint/eslintrc@^2.1.4": version "2.1.4" @@ -954,9 +954,9 @@ "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/graceful-fs@^4.1.3": version "4.1.9" @@ -1004,9 +1004,9 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/node@*": - version "22.5.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.2.tgz#e42344429702e69e28c839a7e16a8262a8086793" - integrity sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg== + version "22.7.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.4.tgz#e35d6f48dca3255ce44256ddc05dee1c23353fcc" + integrity sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg== dependencies: undici-types "~6.19.2" @@ -1078,9 +1078,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.2: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: acorn "^8.11.0" @@ -1142,9 +1142,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== ansi-styles@^3.2.1: version "3.2.1" @@ -1165,7 +1165,7 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@^3.0.3: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -1196,11 +1196,9 @@ argparse@^2.0.1: integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== aria-query@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" - integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== - dependencies: - dequal "^2.0.3" + version "5.3.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== array-buffer-byte-length@^1.0.1: version "1.0.1" @@ -1477,11 +1475,6 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - blob-util@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" @@ -1505,20 +1498,20 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.3, braces@~3.0.2: +braces@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" -browserslist@^4.23.1, browserslist@^4.23.3: - version "4.23.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" - integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== +browserslist@^4.23.3, browserslist@^4.24.0: + version "4.24.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.0.tgz#a1325fe4bc80b64fda169629fc01b3d6cecd38d4" + integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== dependencies: - caniuse-lite "^1.0.30001646" - electron-to-chromium "^1.5.4" + caniuse-lite "^1.0.30001663" + electron-to-chromium "^1.5.28" node-releases "^2.0.18" update-browserslist-db "^1.1.0" @@ -1583,10 +1576,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001646: - version "1.0.30001655" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz#0ce881f5a19a2dcfda2ecd927df4d5c1684b982f" - integrity sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg== +caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001663: + version "1.0.30001666" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001666.tgz#112d77e80f1762f62a1b71ba92164e0cb3f3dd13" + integrity sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g== caseless@~0.12.0: version "0.12.0" @@ -1620,20 +1613,12 @@ check-more-types@^2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== -"chokidar@>=3.0.0 <4.0.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" +chokidar@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.1.tgz#4a6dff66798fb0f72a94f616abbd7e1a19f31d41" + integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== + dependencies: + readdirp "^4.0.1" ci-info@^3.2.0: version "3.9.0" @@ -1641,9 +1626,9 @@ ci-info@^3.2.0: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz#677de7ed7efff67cc40c9bf1897fea79d41b5215" - integrity sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g== + version "1.4.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170" + integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA== clean-stack@^2.0.0: version "2.2.0" @@ -1732,7 +1717,7 @@ colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -1957,11 +1942,11 @@ dayjs@^1.10.4: integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: - ms "2.1.2" + ms "^2.1.3" debug@^3.1.0, debug@^3.2.7: version "3.2.7" @@ -2013,11 +1998,6 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -dequal@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -2069,10 +2049,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.5.4: - version "1.5.13" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" - integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== +electron-to-chromium@^1.5.28: + version "1.5.31" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.31.tgz#b1478418769dec72ea70d9fdf147a81491857f10" + integrity sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg== emittery@^0.13.1: version "0.13.1" @@ -2277,7 +2257,7 @@ esbuild@0.24.0: "@esbuild/win32-ia32" "0.24.0" "@esbuild/win32-x64" "0.24.0" -escalade@^3.1.1, escalade@^3.1.2: +escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== @@ -2323,9 +2303,9 @@ eslint-import-resolver-node@^0.3.9: resolve "^1.22.4" eslint-module-utils@^2.8.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.9.0.tgz#95d4ac038a68cd3f63482659dffe0883900eb342" - integrity sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ== + version "2.12.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" + integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== dependencies: debug "^3.2.7" @@ -2626,9 +2606,9 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-uri@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" - integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.2.tgz#d78b298cf70fd3b752fd951175a3da6a7b48f024" + integrity sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row== fastest-levenshtein@^1.0.16: version "1.0.16" @@ -2734,7 +2714,7 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -form-data@^4.0.0: +form-data@^4.0.0, form-data@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== @@ -2743,15 +2723,6 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - fraction.js@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" @@ -2772,7 +2743,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -2858,7 +2829,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -3050,14 +3021,14 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== +http-signature@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f" + integrity sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg== dependencies: assert-plus "^1.0.0" jsprim "^2.0.2" - sshpk "^1.14.1" + sshpk "^1.18.0" https-proxy-agent@^5.0.1: version "5.0.1" @@ -3189,13 +3160,6 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -3273,7 +3237,7 @@ is-generator-function@^1.0.10: dependencies: has-tostringtag "^1.0.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -3922,10 +3886,10 @@ jsdom@^20.0.0: ws "^8.11.0" xml-name-validator "^4.0.0" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== json-buffer@3.0.1: version "3.0.1" @@ -4256,12 +4220,7 @@ minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -4293,7 +4252,7 @@ node-releases@^2.0.18: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -4316,9 +4275,9 @@ number-to-words@1.2.4: integrity sha512-/fYevVkXRcyBiZDg6yzZbm0RuaD6i0qRfn8yr+6D0KgBMOndFPxuW10qCHpzs50nN8qKuv78k8MuotZhcVX6Pw== nwsapi@^2.2.2: - version "2.2.12" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.12.tgz#fb6af5c0ec35b27b4581eb3bbad34ec9e5c696f8" - integrity sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w== + version "2.2.13" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.13.tgz#e56b4e98960e7a040e5474536587e599c4ff4655" + integrity sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ== object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" @@ -4521,6 +4480,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +patternomaly@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/patternomaly/-/patternomaly-1.3.2.tgz#70b8db17d7318ab1471cc43f94011bb866c54d09" + integrity sha512-70UhA5+ZrnNgdfDBKXIGbMHpP+naTzfx9vPT4KwIdhtWWs0x6FWZRJQMXXhV2jcK0mxl28FA/2LPAKArNG058Q== + pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -4536,7 +4500,7 @@ picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -4576,7 +4540,7 @@ postcss-replace@2.0.1: kind-of "^6.0.3" object-path "^0.11.8" -postcss-resolve-nested-selector@^0.1.4, postcss-resolve-nested-selector@^0.1.6: +postcss-resolve-nested-selector@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz#3d84dec809f34de020372c41b039956966896686" integrity sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw== @@ -4591,7 +4555,7 @@ postcss-scss@4.0.9, postcss-scss@^4.0.9: resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685" integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== -postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: +postcss-selector-parser@^6.1.2: version "6.1.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== @@ -4604,7 +4568,7 @@ postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.47: +postcss@8.4.47, postcss@^8.4.41: version "8.4.47" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== @@ -4613,15 +4577,6 @@ postcss@8.4.47: picocolors "^1.1.0" source-map-js "^1.2.1" -postcss@^8.4.41: - version "8.4.44" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.44.tgz#d56834ef6508610ba224bb22b2457b2169ed0480" - integrity sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw== - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.1" - source-map-js "^1.2.0" - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -4684,9 +4639,9 @@ psl@^1.1.33: integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + version "3.0.2" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" + integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -4701,12 +4656,12 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== -qs@6.10.4: - version "6.10.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.4.tgz#6a3003755add91c0ec9eacdc5f878b034e73f9e7" - integrity sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g== +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" querystringify@^2.1.1: version "2.2.0" @@ -4728,12 +4683,10 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" +readdirp@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.1.tgz#b2fe35f8dca63183cd3b86883ecc8f720ea96ae6" + integrity sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw== reflect.getprototypeof@^1.0.4: version "1.0.6" @@ -4906,11 +4859,11 @@ safe-regex-test@^1.0.3: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.69.5: - version "1.77.8" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.8.tgz#9f18b449ea401759ef7ec1752a16373e296b52bd" - integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== + version "1.79.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.79.4.tgz#f9c45af35fbeb53d2c386850ec842098d9935267" + integrity sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg== dependencies: - chokidar ">=3.0.0 <4.0.0" + chokidar "^4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" @@ -5038,12 +4991,7 @@ snyk@1.1293.1: "@sentry/node" "^7.36.0" global-agent "^3.0.0" -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== - -source-map-js@^1.2.1: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== @@ -5094,7 +5042,7 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sshpk@^1.14.1: +sshpk@^1.18.0: version "1.18.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== @@ -5243,16 +5191,16 @@ stylelint-config-standard@^36.0.0: stylelint-config-recommended "^14.0.1" stylelint-scss@^6.4.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-6.5.1.tgz#bcb6a4ada71a0adbf181e155548e5f25ee4aeece" - integrity sha512-ZLqdqihm6uDYkrsOeD6YWb+stZI8Wn92kUNDhE4M+g9g1aCnRv0JlOrttFiAJJwaNzpdQgX3YJb5vDQXVuO9Ww== + version "6.7.0" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-6.7.0.tgz#df9c2bcd20c555c5670914f23bb983c94bfbb0e3" + integrity sha512-RFIa2A+pVWS5wjNT+whtK7wsbZEWazyqesCuSaPbPlZ8lh2TujwVJSnCYJijg6ChZzwI8pZPRZS1L6A9aCbXDg== dependencies: css-tree "2.3.1" is-plain-object "5.0.0" known-css-properties "^0.34.0" postcss-media-query-parser "^0.2.3" - postcss-resolve-nested-selector "^0.1.4" - postcss-selector-parser "^6.1.1" + postcss-resolve-nested-selector "^0.1.6" + postcss-selector-parser "^6.1.2" postcss-value-parser "^4.2.0" stylelint@16.9.0: @@ -5561,12 +5509,12 @@ untildify@^4.0.0: integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== update-browserslist-db@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" - integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + version "1.1.1" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== dependencies: - escalade "^3.1.2" - picocolors "^1.0.1" + escalade "^3.2.0" + picocolors "^1.1.0" uri-js@^4.2.2: version "4.4.1"