Merge branch 'esfoobar-usds/release/yaml-based-score-datasets' into esfoobar-usds/1417-nri-yaml-score

This commit is contained in:
Jorge Escobar 2022-06-23 13:49:51 -04:00
commit 8ab7be32f3
20 changed files with 756 additions and 970 deletions

View file

@ -12,6 +12,7 @@ GATSBY_DATA_PIPELINE_SCORE_PATH=data-pipeline/data/score
GATSBY_FILE_DL_PATH_SCREENING_TOOL_DATA_ZIP=downloadable/Screening_Tool_Data.zip
GATSBY_FILE_DL_PATH_SHAPE_FILE_ZIP=shapefile/usa.zip
GATSBY_FILE_DL_PATH_TSD_PDF=downloadable/cejst_technical_support_document.pdf
GATSBY_FILE_DL_PATH_TSD_ES_PDF=downloadable/cejst-technical-support-document-es.pdf
GATSBY_FILE_DL_PATH_COMMUNITIES_LIST_XLS=downloadable/communities-2022-05-12-1914GMT.xlsx
GATSBY_FILE_DL_PATH_COMMUNITIES_LIST_CSV=downloadable/communities-2022-05-12-1914GMT.csv
GATSBY_FILE_DL_PATH_HOW_TO_COMMUNITIES_PDF=downloadable/Draft_Communities_List.pdf

View file

@ -10,8 +10,9 @@ GATSBY_DATA_PIPELINE_SCORE_PATH=data-pipeline/data/score
GATSBY_FILE_DL_PATH_SCREENING_TOOL_DATA_ZIP=downloadable/Screening_Tool_Data.zip
GATSBY_FILE_DL_PATH_SHAPE_FILE_ZIP=shapefile/usa.zip
GATSBY_FILE_DL_PATH_TSD_PDF=downloadable/cejst_technical_support_document.pdf
GATSBY_FILE_DL_PATH_COMMUNITIES_LIST_XLS=downloadable/communities-2022-05-12-1914GMT.csv
GATSBY_FILE_DL_PATH_COMMUNITIES_LIST_CSV=downloadable/communities-2022-05-12-1914GMT.xlsx
GATSBY_FILE_DL_PATH_TSD_ES_PDF=downloadable/cejst-technical-support-document-es.pdf
GATSBY_FILE_DL_PATH_COMMUNITIES_LIST_XLS=downloadable/communities-2022-05-31-1915GMT.xlsx
GATSBY_FILE_DL_PATH_COMMUNITIES_LIST_CSV=downloadable/communities-2022-05-31-1915GMT.csv
GATSBY_FILE_DL_PATH_HOW_TO_COMMUNITIES_PDF=downloadable/Draft_Communities_List.pdf
GATSBY_MAP_TILES_PATH=tiles

View file

@ -12,6 +12,7 @@ This README contains the following content:
- [Feature toggling](#feature-toggling)
- [Environment variables](#environment-variables)
- [Debugging](#debugging)
- [Package versions](#package-versions)
## Installing and running the client site
@ -203,3 +204,16 @@ When developing, to use a flag:
4. Run the _Debug Chrome_ configuration by hitting the green play button
5. Install the [CORS chrome extension](https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf?hl=en) in the browser that is launched by the debugger.
6. Set breakpoints in VS code!
## Package Versions
The following attemps to explain why certain packages versions have been chosen and what their current limitations are
| package | current version | latest version | using latest? | how does it break? |
|------------|-----------------|----------------|---------------|--------------------|
| gatsby | 3.14.6 | 4.14.2 | No | when attempting to update - breaks all unit tests. Compatibility warning come up with all plugins but this doesn't seems to effect functionality. This is the latest version we can release without investigating unit tests. |
| gatsby-cli | 3.14.2 | 4.15.2 | No | when attempting to update - breaks all unit tests. Compatibility warning come up with all plugins but this doesn't seems to effect functionality. This is the latest version we can release without investigating unit tests.|
| sass | 1.32.12 | 1.52.3 | No | This version is needed to surpress the dart warnings on / as division for each component. See [here](https://github.com/twbs/bootstrap/issues/34051#issuecomment-845884423) for more information |
| uswds | 2.11.2 | 3.0.2 | No | Needs to stay at 2.11 for peer dependency on trussworks|
| trussworks | 2.9.0 | 3.0.2 | No | Needs to stay at 2.9 as 3.0 is breaking change |

1542
client/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -69,17 +69,15 @@
"license-checker": "^25.0.1",
"prettier": "^2.6.0",
"react-test-renderer": "^17.0.2",
"sass": "^1.49.9",
"sass": "~1.32.13",
"sass-loader": "^11.1.1",
"start-server-and-test": "^1.14.0",
"ts-jest": "^27.1.3"
},
"dependencies": {
"-": "^0.0.1",
"@sentry/gatsby": "^6.19.1",
"@trussworks/react-uswds": "^2.8.0",
"@trussworks/react-uswds": "^2.9.0",
"@turf/bbox": "^6.5.0",
"D": "^1.0.0",
"d3-ease": "^3.0.1",
"gatsby-plugin-env-variables": "^2.2.0",
"gatsby-plugin-robots-txt": "^1.7.0",

View file

@ -599,9 +599,9 @@ const AreaDetail = ({properties, hash}: IAreaDetailProps) => {
</div>
{/* Number of thresholds exceeded */}
<div className={styles.showThresholdExceed}>
{/* <div className={styles.showThresholdExceed}>
{EXPLORE_COPY.numberOfThresholdsExceeded(properties[constants.TOTAL_NUMBER_OF_DISADVANTAGE_INDICATORS])}
</div>
</div> */}
{/* Send Feedback button */}
<a
className={styles.sendFeedbackLink}

View file

@ -47,11 +47,10 @@ $sidePanelLabelFontColor: #171716;
@include u-margin-top('05');
}
.showThresholdExceed {
font-size: small;
@include u-margin-top('05');
}
// .showThresholdExceed {
// font-size: small;
// @include u-margin-top('05');
// }
.sendFeedbackLink {
@include u-margin-top(2);

View file

@ -53,10 +53,7 @@ exports[`rendering of the AreaDetail checks if indicators for ISLAND AREAS are p
<div />
</div>
<div>
Disadvantaged in 5 categories
</div>
<div>
At or above 3 thresholds
in 5 categories
</div>
<a
href="
@ -417,10 +414,7 @@ exports[`rendering of the AreaDetail checks if indicators for NATION is present
<div />
</div>
<div>
Disadvantaged in 5 categories
</div>
<div>
At or above 3 thresholds
in 5 categories
</div>
<a
href="
@ -2156,10 +2150,7 @@ exports[`rendering of the AreaDetail checks if indicators for PUERTO RICO are pr
<div />
</div>
<div>
Disadvantaged in 5 categories
</div>
<div>
At or above 3 thresholds
in 5 categories
</div>
<a
href="

View file

@ -66,7 +66,7 @@ exports[`rendering of the Categories checks if component renders 1`] = `
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -119,7 +119,7 @@ exports[`rendering of the Categories checks if component renders 1`] = `
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -176,7 +176,7 @@ exports[`rendering of the Categories checks if component renders 1`] = `
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -235,7 +235,7 @@ exports[`rendering of the Categories checks if component renders 1`] = `
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -294,7 +294,7 @@ exports[`rendering of the Categories checks if component renders 1`] = `
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -341,7 +341,7 @@ exports[`rendering of the Categories checks if component renders 1`] = `
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -406,7 +406,7 @@ exports[`rendering of the Categories checks if component renders 1`] = `
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>

View file

@ -44,7 +44,7 @@ exports[`rendering of the CategoryCard checks if component renders 1`] = `
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>

View file

@ -1,7 +1,9 @@
import React, {useState} from 'react';
/* eslint-disable max-len */
import React, {useEffect, useState} from 'react';
import {LngLatBoundsLike} from 'maplibre-gl';
import {useIntl} from 'gatsby-plugin-intl';
import {Search} from '@trussworks/react-uswds';
import {useWindowSize} from 'react-use';
import MapSearchMessage from '../MapSearchMessage';
@ -17,6 +19,22 @@ const MapSearch = ({goToPlace}:IMapSearch) => {
const [isSearchResultsNull, setIsSearchResultsNull] = useState(false);
const intl = useIntl();
/**
* At compile-time, the width/height returned by useWindowSize will be X. When the client requests the
* app on run-time from CDN, and the app hydrates, reconcilation no longer occurs and the client is forced
* to use X.
*
* To avoid this, we set the placeholder text as a state variable. We also create a useEffect that updates
* that state whenenver the width changes.
*
*/
const {width, height} = useWindowSize();
const [placeholderText, setPlaceholderText]= useState(EXPLORE_COPY.MAP.SEARCH_PLACEHOLDER);
useEffect( () => {
width > height ? setPlaceholderText(EXPLORE_COPY.MAP.SEARCH_PLACEHOLDER): setPlaceholderText(EXPLORE_COPY.MAP.SEARCH_PLACEHOLDER_MOBILE);
}, [width]);
/*
onSearchHandler will
1. extract the search term from the input field
@ -61,7 +79,7 @@ const MapSearch = ({goToPlace}:IMapSearch) => {
<div className={styles.mapSearchContainer}>
<MapSearchMessage isSearchResultsNull={isSearchResultsNull} />
<Search
placeholder={intl.formatMessage(EXPLORE_COPY.MAP.SEARCH_PLACEHOLDER)}
placeholder={intl.formatMessage(placeholderText)}
size="small"
onSubmit={(e) => onSearchHandler(e)}
/>

View file

@ -4,7 +4,7 @@ exports[`rendering of the MapSearch checks if component renders 1`] = `
<DocumentFragment>
<div>
<div>
No location found. Please try again.
Location not found or unknown. Please try a different search.
</div>
<form
class="usa-search usa-search--small"
@ -23,7 +23,7 @@ exports[`rendering of the MapSearch checks if component renders 1`] = `
data-testid="textInput"
id="search-field"
name="search"
placeholder="Enter a city, state or ZIP"
placeholder="Search for an address, city, state or ZIP"
type="search"
/>
<button

View file

@ -3,7 +3,7 @@
exports[`rendering of the MapSearchMessage when search results are empty checks if component renders 1`] = `
<DocumentFragment>
<div>
No location found. Please try again.
Location not found or unknown. Please try a different search.
</div>
</DocumentFragment>
`;

View file

@ -7,14 +7,15 @@
}
.territoryFocusContainer {
// styles for mobile-lg (480px) and greater widths
@include at-media('mobile-lg') {
@include baseTerritoryFocus;
// styles for mobile-lg (480px) and greater widths:
@include at-media('mobile-lg') {
top: units(card-lg);
};
@include baseTerritoryFocus;
top: units(9);
// styles for mobile-lg (480px) and smaller widths:
top: 100px;
}

View file

@ -62,6 +62,11 @@ export const DOWNLOAD_FILES = {
URL: getDownloadFileUrl(process.env.GATSBY_FILE_DL_PATH_TSD_PDF),
LAST_UPDATED: new Date('5/4/2022').getTime(),
},
TSD_ES: {
SIZE: 2.5, // MB
URL: getDownloadFileUrl(process.env.GATSBY_FILE_DL_PATH_TSD_ES_PDF),
LAST_UPDATED: new Date('5/4/2022').getTime(),
},
HOW_TO_COMMUNITIES: {
SIZE: 674, // KB
URL: getDownloadFileUrl(process.env.GATSBY_FILE_DL_PATH_HOW_TO_COMMUNITIES_PDF),
@ -129,6 +134,7 @@ export const DOWNLOAD_LINKS = {
description={'Navigate to the download page. This is fourth download file link'}
values={{
link4: COMMON_COPY.linkFn(DOWNLOAD_FILES.TSD.URL, false, true),
link4es: COMMON_COPY.linkFn(DOWNLOAD_FILES.TSD_ES.URL, false, true),
tsdFileSize: <FormattedNumber
value={DOWNLOAD_FILES.TSD.SIZE}
style="unit"

View file

@ -63,12 +63,17 @@ export const MAP = defineMessages({
},
SEARCH_PLACEHOLDER: {
id: 'explore.map.page.map.search.placeholder.text',
defaultMessage: 'Enter a city, state or ZIP',
defaultMessage: 'Search for an address, city, state or ZIP',
description: 'On the explore the map page, on the map, the placeholder text for search',
},
SEARCH_PLACEHOLDER_MOBILE: {
id: 'explore.map.page.map.search.placeholder.mobile.text',
defaultMessage: 'Search locations',
description: 'On the explore the map page, on the map, the placeholder text for search',
},
SEARCH_RESULTS_EMPTY_MESSAGE: {
id: 'explore.map.page.map.search.results.empty.text',
defaultMessage: 'No location found. Please try again.',
defaultMessage: 'Location not found or unknown. Please try a different search.',
description: 'On the explore the map page, on the map, the text displaying message for no search results found',
},
LOWER48_SHORT: {
@ -309,21 +314,22 @@ export const COMMUNITY = {
export const numberOfCategoriesExceeded = (categoryCount:number) => <FormattedMessage
id={'explore.map.page.side.panel.num.categories.exceeded'}
defaultMessage={`Disadvantaged in {numberOfDisCategories, plural, one {# category} other {# categories}}`}
defaultMessage={`in {numberOfDisCategories, plural, one {# category} other {# categories}}`}
description={`Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show how many categories are exceeded`}
values={{
numberOfDisCategories: categoryCount,
}}
/>;
export const numberOfThresholdsExceeded = (thresholds:number) => <FormattedMessage
id={'explore.map.page.side.panel.num.thresholds.exceeded'}
defaultMessage={`At or above {numberOfThresholdExceed, plural, one {# threshold} other {# thresholds}}`}
description={`Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show how many thresholds are exceeded`}
values={{
numberOfThresholdExceed: thresholds,
}}
/>;
// Temporarily commenting out as it may be needed again:
// export const numberOfThresholdsExceeded = (thresholds:number) => <FormattedMessage
// id={'explore.map.page.side.panel.num.thresholds.exceeded'}
// defaultMessage={`At or above {numberOfThresholdExceed, plural, one {# threshold} other {# thresholds}}`}
// description={`Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show how many thresholds are exceeded`}
// values={{
// numberOfThresholdExceed: thresholds,
// }}
// />;
export const SEND_FEEDBACK = defineMessages({
EMAIL_BODY: {

View file

@ -95,7 +95,7 @@ export const CATEGORY_AND_CLAUSE = {
LOW_INC_65_WHEN_HIGH_ED_LTE_20: <FormattedMessage
id={'methodology.page.category.and.clause.low.inc.hs.ed'}
defaultMessage={`
<boldtag>AND</boldtag> is above the 65th percentile for <link1>low income</link1> AND 80% or more of individuals 15 or older are not enrolled in <link2>higher education</link2>
<boldtag>AND</boldtag> is at or above the 65th percentile for <link1>low income</link1> AND 80% or more of individuals 15 or older are not enrolled in <link2>higher education</link2>
`}
description={'Navigate to the methodology page. Navigate to the category section. This is category portion of the formula dealing with lower income and high school degree rate'}
values={{

View file

@ -343,12 +343,16 @@
"defaultMessage": "Communities identified as disadvantaged by the map are those that are marginalized, underserved, and overburdened by pollution. These communities are at or above the thresholds in one or more of eight categories of criteria.",
"description": "On the explore the map page, the description of the legend"
},
"explore.map.page.map.search.placeholder.mobile.text": {
"defaultMessage": "Search locations",
"description": "On the explore the map page, on the map, the placeholder text for search"
},
"explore.map.page.map.search.placeholder.text": {
"defaultMessage": "Enter a city, state or ZIP",
"defaultMessage": "Search for an address, city, state or ZIP",
"description": "On the explore the map page, on the map, the placeholder text for search"
},
"explore.map.page.map.search.results.empty.text": {
"defaultMessage": "No location found. Please try again.",
"defaultMessage": "Location not found or unknown. Please try a different search.",
"description": "On the explore the map page, on the map, the text displaying message for no search results found"
},
"explore.map.page.map.territoryFocus.alaska.long": {
@ -780,13 +784,9 @@
"description": "Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show the communities the score currently is not focused on"
},
"explore.map.page.side.panel.num.categories.exceeded": {
"defaultMessage": "Disadvantaged in {numberOfDisCategories, plural, one {# category} other {# categories}}",
"defaultMessage": "in {numberOfDisCategories, plural, one {# category} other {# categories}}",
"description": "Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show how many categories are exceeded"
},
"explore.map.page.side.panel.num.thresholds.exceeded": {
"defaultMessage": "At or above {numberOfThresholdExceed, plural, one {# threshold} other {# thresholds}}",
"description": "Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show how many thresholds are exceeded"
},
"explore.map.page.side.panel.send.feedback.alt.img": {
"defaultMessage": "Send feedback",
"description": "Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show a send feedback icon, this is the images alt tag"
@ -920,7 +920,7 @@
"description": "Navigate to the methodology page. Navigate to the category section. This is the portion of the formula dealing with higher ed enrollment and high school degree rate"
},
"methodology.page.category.and.clause.low.inc.hs.ed": {
"defaultMessage": "<boldtag>AND</boldtag> is above the 65th percentile for <link1>low income</link1> AND 80% or more of individuals 15 or older are not enrolled in <link2>higher education</link2>",
"defaultMessage": "<boldtag>AND</boldtag> is at or above the 65th percentile for <link1>low income</link1> AND 80% or more of individuals 15 or older are not enrolled in <link2>higher education</link2>",
"description": "Navigate to the methodology page. Navigate to the category section. This is category portion of the formula dealing with lower income and high school degree rate"
},
"methodology.page.category.asthma.description.text": {

View file

@ -74,7 +74,7 @@
"download.page.download.file.1": "<link1>Datos de la lista de comunidades</link1> (.xlsx {cldXlsFileSize})",
"download.page.download.file.2": "<link2>Datos de la lista de comunidades</link2> (.csv {cldCsvFileSize})",
"download.page.download.file.3": "<link3>Archivo de forma</link3> (Libro de códigos incluido con geojson {shapeFileSize} descomprimido)",
"download.page.download.file.4": "<link4>Documento de soporte técnico</link4> (.pdf {tsdFileSize})",
"download.page.download.file.4": "<link4es>Documento de soporte técnico</link4es> (.pdf {tsdFileSize})",
"download.page.download.file.5": "<link5>Cómo utilizar la lista de comunidades</link5> (.pdf {howToCommFileSize})",
"downloads.page.description1.text": "Los conjuntos de datos que se utilizan en la herramienta, junto con un diccionario de datos e información sobre cómo utilizar la lista de comunidades (.pdf) están disponibles en los siguientes formatos del archivo:",
"downloads.page.download.icon.alt.tag": "El icono utilizado para indicar que el archivo se puede descargar",
@ -87,8 +87,9 @@
"explore.map.page.heading.text": "Explore la herramienta",
"explore.map.page.label.text": "Comunidad desfavorecida",
"explore.map.page.legend.description.text": "Las comunidades que la herramienta identifica como desfavorecidas son las que se encuentran marginadas, desatendidas y abrumadas por la contaminación. Esas comunidades alcanzan los umbrales de una o más de ocho categorías de criterios, o los superan.",
"explore.map.page.map.search.placeholder.text": "Introduzca una ciudad, estado o código postal",
"explore.map.page.map.search.results.empty.text": "No se encontró el lugar. Vuelva a intentarlo.",
"explore.map.page.map.search.placeholder.mobile.text": "Buscar ubicaciones",
"explore.map.page.map.search.placeholder.text": "Busque una dirección, ciudad, estado o código postal",
"explore.map.page.map.search.results.empty.text": "Ubicación no encontrada o desconocida. Intente una búsqueda diferente.",
"explore.map.page.map.territoryFocus.alaska.long": "Alaska",
"explore.map.page.map.territoryFocus.alaska.short": "AK",
"explore.map.page.map.territoryFocus.american.samoa.long": "Samoa estadounidense",
@ -198,7 +199,7 @@
"explore.map.page.side.panel.info.title": "Lo que debe saber",
"explore.map.page.side.panel.is.community.of.focus": "¿Está identificada como desfavorecida?",
"explore.map.page.side.panel.not.community.of.focus": "No",
"explore.map.page.side.panel.num.categories.exceeded": "Desfavorecida en {numberOfDisCategories, plural, one {# categoría} other {# categorías}}",
"explore.map.page.side.panel.num.categories.exceeded": "en {numberOfDisCategories, plural, one {# categoría} other {# categorías}}",
"explore.map.page.side.panel.num.thresholds.exceeded": "Al umbral o lo supera en {numberOfThresholdExceed, plural, one {# umbral} other {# umbrales}}",
"explore.map.page.side.panel.send.feedback.alt.img": "Enviar comentarios",
"explore.map.page.side.panel.send.feedback.email.body": "Aporte comentarios acerca de este grupo de bloques del censo, incluidos los conjuntos de datos, las categorías de datos proporcionadas para este grupo de bloques del censo, las comunidades que viven en este grupo de bloques del censo y toda la información pertinente que el Consejo sobre la Calidad del Medio Ambiente (CEQ, por sus siglas en inglés) debe saber acerca de este grupo de bloques del censo.",
@ -232,7 +233,7 @@
"map.territoryFocus.focusOn": "Enfoque en {territory}",
"methodology.page.categories.title": "Las comunidades están identificadas como desfavorecidas por la versión actual de la herramienta para los fines de la Iniciativa Justice40 si se encuentran en grupos de bloques del censo que estén en el umbral o por encima del umbral de una o más de las ocho categorías de criterios a continuación.",
"methodology.page.category.and.clause.hs.ed.higher.ed": "<boldtag>Y</boldtag> 10% o más de los adultos con 25 años cumplidos no han obtenido <link1>un grado de escuela preparatoria o secundaria</link1> Y 80% o más de las personas con 15 años cumplidos no están inscritas en un programa de <link2>educación superior</link2>",
"methodology.page.category.and.clause.low.inc.hs.ed": "<boldtag>Y</boldtag> está por encima del percentil de 65 para <link1>bajos ingresos</link1> Y 80% o más de las personas con 15 años cumplidos no están inscritas en un programa de <link2>educación superior</link2>",
"methodology.page.category.and.clause.low.inc.hs.ed": "<boldtag>Y</boldtag> está en o por encima del percentil de 65 para <link1>bajos ingresos</link1> Y 80% o más de las personas con 15 años cumplidos no están inscritas en un programa de <link2>educación superior</link2>",
"methodology.page.category.asthma.description.text": "Porcentaje ponderado de personas que respondan “sí” a ambas de las siguientes preguntas: “¿Alguna vez le dijo un médico, enfermero u otro profesional sanitario que tiene asma?” y “¿Aún tiene asma?\"",
"methodology.page.category.card.title": "Comunidades que están <boldtag>identificadas como desfavorecidas</boldtag>",
"methodology.page.category.diabetes.description.text": "Porcentaje ponderado de personas de 18 años cumplidos que informan que un médico, enfermero u otro profesional sanitario les dijo que tienen diabetes y no es diabetes gestacional.",

View file

@ -494,7 +494,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -547,7 +547,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -604,7 +604,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -663,7 +663,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -722,7 +722,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -769,7 +769,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>
@ -834,7 +834,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<strong>
AND
</strong>
is above the 65th percentile for
is at or above the 65th percentile for
<a
href="#low-income"
>