Release of improve census tract display info (#1480)

* will replace mapbox logo (#1477)

* Replace maplibre logo with mapbox
* change the logo go to mapbox
* Add CodeQL and modify mapbox logo via useRef()

* Make side panel formula more apparent (#1481)

* Add ExceedBurden and CategorySpacer

- create ExceedBurden component that is used twice
- create a .categorySpacer class for the AND component
- modify indicator styling to work with background higlighting
- add BE stubs for Burden booleans
- remove Indicators header
- add copy to intl

* Add comments on disadv. indicator

- darken bg color
- add a border
- bold the text

* Adds indicator arrow and sub text to sidepanel

- add threshold to IndicatorInfo
- update SASS for indicatorValueCol
- update tests
- add constants to intl

* Make disadv indicators bold

- add 1px margin between indicators

* Add BE signals for new sidepanel

- tested with staging backend

* Add staging hash to URL

* Fix poverty backend signal

- refactor backend signals in constants file

* Make exceed burden value bold

* Refactor indicator values

- remove arrows and subtext when value is N/A
- Show -- when value is N/A
- intl alt tags in indicator
- fix alignment of arrows
- update snapshots

* Revert settings.json file

* revert settings file again

* Refactor what is displayed when data unavailable

- add an unavailable icon
- add data is not available subtext
- modify low income threshold
- update snapshots
- factor out rendered logic to JSX functions
- update image alt tags and intl

* Refactor Indicator component to unit test

- Add unit test for Indicator value icon
- Add unit test for Indicator value sub-text
- update snapshots

* Add de-coupled BE signals

* Rebase hotfix

* Fix indicator value 0 shows N/A icon

- remove coercion of 0 as null
- make components check null / failure case first and default all else
- update unit test to account for this use case
- update snapshots

* Add null check for percentage suffix

- update unit tests
- update snapshots

* remove cypress zoom test

- intermittent failure continue

* revert cypress to 8.3.0

* Revert cypress-cucumber

* Add Chrome to frontend deploy action

* Update logo css classname after update to maplibre (#1482)

* Add new wording to the map panel that appears upon load when no tract is selected and Outstanding CEQ changes to sidepanel (#1483)

* Add new side panel unselected tract

- add new icons
- refactor old component
- follow component folder pattern
- update snapshot tests
- add to intl

* Add bold to text, add spacing and correct typos

* Add tabindex to sidepanel content to pass a11y

* Refactor i18n anti-patterns on explore tool page

- add i18n patterns for nesting
- add i18n pattern for partial strings
- add i18n rich-text functions
- add i18n pattern for minimal context
- add i18n pattern for dates
- add i18n pattern for numbers
- add i18n pattern for centralizing rich text functions
- add i18n patter for description
- add i18n pattern for ids
- see shared drive file J40 Localization Patterns for status on refactor

* Remove links of expired public engagement sessions

- allow cypress tests to pass

* Update snapshots for public enagement page

* Copy updates to non-selected side panel

- update snapshots

* Updates to side panel copy

- ag loss and building loss text
- clean transit
- NPL RMP sites
- proportion to percent
- update snapshots
- updates to es.json

* Updates from QA

- make title smaller
- make margins above icons smaller
- add bottom margin on container
- add census before tracts in copy
- update snapshots

* Update snapshot after rebase

* disable max-len on description fields on i18n copy (#1487)

* Remove color key from Explore the tool page (#1484)

* Remove color key

* Add comment to Language component

* Move tribal note copy to meth page

- adjust responsive sizing props on Grid to allow for proper mobile viewing on Explore page

* Add responsive size to text under map

- reduce z-index of territory focus control so that it doesn't go over the survey button on mobile

* Rewrite the two "notes about" the "low" datasets (#1489)

* Refactor all copy to adhere to recommended patterns

- remove LowIncome component
- add intl README
- update snapshots

* Fix key error missing in datasetCard

- update type in IIndicators
- update snapshots

* Add two notes on low dataset cards

- refactor DatasetCard to standard component pattern
- add a note to the interface
- update snapshots

* Add function comment to force re-build

* Update missing sass module file name

* Update sidepanel non-selected copy (#1495)

* Update sidepanel non-selected copy

- update snapshots

* Update URL in deploy FE for cypress test

* removing trailing slash

* Add wording to UI that calls out improvements to display of census tract information (#1492)

* Adds census tract alert on all pages

- add i18n text
- updates snapshots
- makes public engagement page a fast link

* Style the Alert to have more space around it

* Update copy on Alert

- update snapshots

* Swap gerkhin order

* Set Alert to expire on Apr 15th 2022

* Add WHEJAC meetings (#1501)

* Add WHEJAC meetings

- add expired icons
- automatically load expired icons when event has passed
- update snapshots

* Update public engagement button

* Remove public eng gherkin tests

- need to troubleshoot why these are failing

* Remove the before CEQ in copy

* Make the count of thresholds exceeded on the side panel more clear (#1503)

* Update category / thrsh count in side panel

- connect BE signal of CC to side panel
- i18n functions to call from AreaDetail component
- update snapshots
-

* Update send feedback - color and icon

- update snapshots

* Update both exceed statements in sidepanel

- update snapshots

* Update copy for higher ed and high school (#1502)

* Update copy for higher ed and high school

- update dataset cards
- update taskforce card AND
- update side panel indicator titles
- add i18n for dataset cards title
- update snapshots

* Update threshold values for Higher ed and HS.

- update snapshots

* Update AND clause

- missing 'of' in copy
- update BE signal for non-higher ed enrollment signal
This commit is contained in:
Vim 2022-03-29 22:49:57 -04:00 committed by GitHub
commit db6b5de24e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
91 changed files with 5339 additions and 3220 deletions

View file

@ -4,44 +4,37 @@ import {isMobile as isMobileReactDeviceDetect} from 'react-device-detect';
export const isMobile = isMobileReactDeviceDetect;
const XYZ_SUFFIX = '{z}/{x}/{y}.pbf';
export const featureURLForTilesetName = (tilesetName: string): string => {
// The feature tile base URL and path can either point locally or the CDN.
// This is selected based on the DATA_SOURCE env variable.
const featureTileBaseURL = process.env.DATA_SOURCE === 'local' ?
process.env.GATSBY_LOCAL_TILES_BASE_URL :
process.env.GATSBY_CDN_TILES_BASE_URL;
const featureTilePath = process.env.DATA_SOURCE === 'local' ?
process.env.GATSBY_DATA_PIPELINE_SCORE_PATH_LOCAL :
process.env.GATSBY_DATA_PIPELINE_SCORE_PATH;
return [
featureTileBaseURL,
featureTilePath,
process.env.GATSBY_MAP_TILES_PATH,
tilesetName,
XYZ_SUFFIX,
].join('/');
};
export const FEATURE_TILE_HIGH_ZOOM_URL = featureURLForTilesetName('high');
export const FEATURE_TILE_LOW_ZOOM_URL = featureURLForTilesetName('low');
// Staging links for testing:
// export const FEATURE_TILE_HIGH_ZOOM_URL = `https://justice40-data.s3.amazonaws.com/data-pipeline-staging/1297/deee14dd93b783c8d366434dc8438a281b5c89df/data/score/tiles/high/${XYZ_SUFFIX}`;
// export const FEATURE_TILE_LOW_ZOOM_URL = `https://justice40-data.s3.amazonaws.com/data-pipeline-staging/1297/deee14dd93b783c8d366434dc8438a281b5c89df/data/score/tiles/low/${XYZ_SUFFIX}`;
// Performance markers
export const PERFORMANCE_MARKER_MAP_IDLE = 'MAP_IDLE';
// ******* PROPERTIES FROM TILE SERVER **************
export type J40Properties = { [key: string]: any };
// Properties
export const SCORE_PROPERTY_HIGH = 'SM_PFS';
export const SCORE_PROPERTY_LOW = 'M_SCORE';
// ****** SIDE PANEL BACKEND SIGNALS ***********
// Set the threshold percentile used by most indicators in the side panel
export const DEFAULT_THRESHOLD_PERCENTILE = 90;
// General Census Track Info
export const GEOID_PROPERTY = 'GEOID10';
export const COUNTY_NAME = 'CF';
export const STATE_NAME = 'SF';
export const TOTAL_POPULATION = 'TPF';
/**
* The SCORE_BOUNDAY_THRESHOLD will determine if the tract is disadvantaged
* or not. Currently all values are railed to 0 or 1. If the
* SCORE_PROPERTY_HIGH is greater than SCORE_BOUNDARY_THRESHOLD,
* the tract will be considered disadvantaged.
*/
export const SCORE_BOUNDARY_THRESHOLD = 0.6;
// Determines the X of Y threshold exceeded
export const TOTAL_NUMBER_OF_DISADVANTAGE_INDICATORS = 'TC';
export const TOTAL_NUMBER_OF_INDICATORS = 'THRHLD';
export const COUNT_OF_CATEGORIES_DISADV = 'CC';
export const SIDE_PANEL_STATE = 'UI_EXP';
export const SIDE_PANEL_STATE_VALUES = {
NATION: 'Nation',
@ -49,102 +42,142 @@ export const SIDE_PANEL_STATE_VALUES = {
ISLAND_AREAS: 'Island Areas',
};
export const THRHLD = 'TERRITORY_THRESHOLD';
// Indicator values:
export const ASTHMA_PERCENTILE = 'AF_PFS';
export const COUNTY_NAME = 'CF';
export const DIABETES_PERCENTILE = 'DF_PFS';
export const DIESEL_MATTER_PERCENTILE = 'DSF_PFS';
export const ENERGY_PERCENTILE = 'EBF_PFS';
export const HEART_PERCENTILE = 'HDF_PFS';
export const HIGH_SCHOOL_PROPERTY_PERCENTILE = `HSEF`;
export const HOUSING_BURDEN_PROPERTY_PERCENTILE = 'HBF_PFS';
export const LEAD_PAINT_PERCENTILE = 'LPF_PFS';
export const LIFE_PERCENTILE = 'LLEF_PFS';
export const LINGUISTIC_ISOLATION_PROPERTY_PERCENTILE = 'LIF_PFS';
export const LOW_MEDIAN_INCOME_PERCENTILE = 'LMI_PFS';
export const PM25_PERCENTILE = 'PM25F_PFS';
export const POVERTY_PROPERTY_PERCENTILE = 'P200_PFS';
export const STATE_NAME = 'SF';
export const TOTAL_POPULATION = 'TPF';
export const TRAFFIC_PERCENTILE = 'TF_PFS';
export const UNEMPLOYMENT_PROPERTY_PERCENTILE = 'UF_PFS';
export const WASTEWATER_PERCENTILE = 'WF_PFS';
export const EXP_AGRICULTURE_LOSS_PERCENTILE = 'EALR_PFS';
export const EXP_BUILDING_LOSS_PERCENTILE = 'EBLR_PFS';
export const EXP_POPULATION_LOSS_PERCENTILE = 'EPLR_PFS';
export const MEDIAN_HOME_VALUE_PERCENTILE = 'MHVF_PFS';
export const POVERTY_BELOW_100_PERCENTILE = 'P100_PFS';
export const POVERTY_BELOW_200_PERCENTILE = 'P200_PFS';
export const PROXIMITY_NPL_SITES_PERCENTILE = 'NPL_PFS';
export const PROXIMITY_RMP_SITES_PERCENTILE = 'RMP_PFS';
export const PROXIMITY_TSDF_SITES_PERCENTILE = 'TSDF_PFS';
export const HIGHER_ED_PERCENTILE = 'CA';
export const ISLAND_AREAS_UNEMPLOYMENT_LOW_HS_EDU_PERCENTILE_FIELD= 'IAULHSE_PFS';
export const ISLAND_AREAS_POVERTY_LOW_HS_EDU_PERCENTILE_FIELD= 'IAPLHSE_PFS';
export const ISLAND_AREAS_LOW_MEDIAN_INCOME_LOW_HS_EDU_PERCENTILE_FIELD= 'IALMILHSE_PFS';
export const ISLAND_AREAS_LOW_HS_EDU_PERCENTILE_FIELD= 'IALHE_PFS';
export const ISLAND_AREAS_HS_EDU_PERCENTAGE_FIELD= 'IAHSEF';
// Category booleans (disadvantaged or not):
// Climate category
export const IS_CLIMATE_FACTOR_DISADVANTAGED_M = 'M_CLT';
export const IS_ENERGY_FACTOR_DISADVANTAGED_M = 'M_ENY';
export const IS_TRANSPORT_FACTOR_DISADVANTAGED_M = 'M_TRN';
export const IS_HOUSING_FACTOR_DISADVANTAGED_M = 'M_HSG';
export const IS_POLLUTION_FACTOR_DISADVANTAGED_M = 'M_PLN';
export const IS_WATER_FACTOR_DISADVANTAGED_M = 'M_WTR';
export const IS_HEALTH_FACTOR_DISADVANTAGED_M = 'M_HLTH';
export const IS_WORKFORCE_FACTOR_DISADVANTAGED_M = 'M_WKFC';
export const IS_CLIMATE_EXCEED_ONE_OR_MORE_INDICATORS_M = 'M_CLT_EOMI';
// Total indicators values:
export const TOTAL_NUMBER_OF_DISADVANTAGE_INDICATORS = 'TC';
export const TOTAL_NUMBER_OF_INDICATORS = 'THRHLD';
export const EXP_AGRICULTURE_LOSS_PERCENTILE = 'EALR_PFS';
export const IS_EXCEEDS_THRESH_FOR_EXP_AGR_LOSS = 'EAL_ET';
// Indicator booleans (disadvangted or not): (GTE = greater than or equal)
export const IS_GTE_90_EXP_POP_LOSS_AND_IS_LOW_INCOME = 'EPLRLI';
export const IS_GTE_90_EXP_AGR_LOSS_AND_IS_LOW_INCOME = 'EALRLI';
export const IS_GTE_90_EXP_BLD_LOSS_AND_IS_LOW_INCOME = 'EBLRLI';
export const IS_GTE_90_PM25_AND_IS_LOW_INCOME = 'PM25LI';
export const IS_GTE_90_ENERGY_BURDEN_AND_IS_LOW_INCOME = 'EBLI';
export const IS_GTE_90_DIESEL_PM_AND_IS_LOW_INCOME = 'DPMLI';
export const IS_GTE_90_TRAFFIC_PROX_AND_IS_LOW_INCOME = 'TPLI';
export const IS_GTE_90_LEAD_PAINT_AND_MEDIAN_HOME_VAL_AND_IS_LOW_INCOME = 'LPMHVLI';
export const IS_GTE_90_HOUSE_BURDEN_AND_IS_LOW_INCOME = 'HBLI';
export const IS_GTE_90_RMP_AND_IS_LOW_INCOME = 'RMPLI';
export const IS_GTE_90_SUPERFUND_AND_IS_LOW_INCOME = 'SFLI';
export const IS_GTE_90_HAZARD_WASTE_AND_IS_LOW_INCOME = 'HWLI';
export const IS_GTE_90_WASTEWATER_AND_IS_LOW_INCOME = 'WDLI';
export const IS_GTE_90_DIABETES_AND_IS_LOW_INCOME = 'DLI';
export const IS_GTE_90_ASTHMA_AND_IS_LOW_INCOME = 'ALI';
export const IS_GTE_90_HEART_DISEASE_AND_IS_LOW_INCOME = 'HDLI';
export const IS_GTE_90_LOW_LIFE_EXP_AND_IS_LOW_INCOME = 'LLELI';
export const IS_GTE_90_LINGUISITIC_ISO_AND_IS_LOW_INCOME = 'LILHSE';
export const IS_GTE_90_BELOW_100_POVERTY_AND_LOW_HIGH_SCHOOL_EDU = 'PLHSE';
export const IS_GTE_90_LOW_MEDIAN_INCOME_AND_LOW_HIGH_SCHOOL_EDU = 'LMILHSE';
export const IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU = 'ULHSE';
export const EXP_BUILDING_LOSS_PERCENTILE = 'EBLR_PFS';
export const IS_EXCEEDS_THRESH_FOR_EXP_BLD_LOSS = 'EBL_ET';
export const EXP_POPULATION_LOSS_PERCENTILE = 'EPLR_PFS';
export const IS_EXCEEDS_THRESH_FOR_EXP_POP_LOSS = 'EPL_ET';
export const IS_EXCEED_BOTH_SOCIO_INDICATORS_M = 'M_EBSI';
export const POVERTY_BELOW_200_PERCENTILE = 'P200_PFS';
export const IS_FEDERAL_POVERTY_LEVEL_200 = 'FPL200S';
export const IS_HIGHER_ED_PERCENTILE = 'CA_LT20';
export const TOTAL_THRESHOLD_CRITERIA = 'TC';
export const IS_GTE_90_ISLAND_AREA_UNEMPLOYMENT_AND_IS_LOW_HS_EDU_2009 = 'IAULHSE';
export const IS_GTE_90_ISLAND_AREA_BELOW_100_POVERTY_AND_IS_LOW_HS_EDU_2009 = 'IAPLHSE';
export const IS_GTE_90_ISLAND_AREA_LOW_MEDIAN_INCOME_AND_IS_LOW_HS_EDU_2009 = 'IALMILHSE';
export const ISLAND_AREA_LOW_HS_EDU = 'IALHE';
export const IS_LOW_HS_EDUCATION_LOW_HIGHER_ED_PRIORITIZED = 'LHE';
// The name of the layer within the tiles that contains the score
export const SCORE_SOURCE_LAYER = 'blocks';
export const HIGHER_ED_PERCENTILE = 'CA';
export const IS_HIGHER_ED_PERCENTILE = 'CA_LT20';
export const NON_HIGHER_ED_PERCENTILE = 'NCA';
// Energy category
export const IS_ENERGY_FACTOR_DISADVANTAGED_M = 'M_ENY';
export const IS_ENERGY_EXCEED_ONE_OR_MORE_INDICATORS_M = 'M_ENY_EOMI';
export const ENERGY_PERCENTILE = 'EBF_PFS';
export const IS_EXCEEDS_THRESH_FOR_ENERGY_BURDEN = 'EB_ET';
export const PM25_PERCENTILE = 'PM25F_PFS';
export const IS_EXCEEDS_THRESH_FOR_PM25 = 'PM25_ET';
// Transport category
export const IS_TRANSPORT_FACTOR_DISADVANTAGED_M = 'M_TRN';
export const IS_TRANSPORT_EXCEED_ONE_OR_MORE_INDICATORS_M = 'M_TRN_EOMI';
export const DIESEL_MATTER_PERCENTILE = 'DSF_PFS';
export const IS_EXCEEDS_THRESH_FOR_DIESEL_PM = 'DS_ET';
export const TRAFFIC_PERCENTILE = 'TF_PFS';
export const IS_EXCEEDS_THRESH_FOR_TRAFFIC_PROX = 'TP_ET';
// Housing category
export const IS_HOUSING_FACTOR_DISADVANTAGED_M = 'M_HSG';
export const IS_HOUSING_EXCEED_ONE_OR_MORE_INDICATORS_M = 'M_HSG_EOMI';
export const HOUSING_BURDEN_PROPERTY_PERCENTILE = 'HBF_PFS';
export const IS_EXCEEDS_THRESH_FOR_HOUSE_BURDEN = 'HB_ET';
export const LEAD_PAINT_PERCENTILE = 'LPF_PFS';
export const IS_EXCEEDS_THRESH_FOR_LEAD_PAINT_AND_MEDIAN_HOME_VAL = 'LPP_ET';
// export const MEDIAN_HOME_VALUE_PERCENTILE = 'MHVF_PFS'; // No longer showing in UI
// Pollution category
export const IS_POLLUTION_FACTOR_DISADVANTAGED_M = 'M_PLN';
export const IS_POLLUTION_EXCEED_ONE_OR_MORE_INDICATORS_M = 'M_PLN_EOMI';
export const PROXIMITY_TSDF_SITES_PERCENTILE = 'TSDF_PFS';
export const IS_EXCEEDS_THRESH_FOR_HAZARD_WASTE = 'TSDF_ET';
export const PROXIMITY_NPL_SITES_PERCENTILE = 'NPL_PFS';
export const IS_EXCEEDS_THRESH_FOR_SUPERFUND = 'NPL_ET';
export const PROXIMITY_RMP_SITES_PERCENTILE = 'RMP_PFS';
export const IS_EXCEEDS_THRESH_FOR_RMP = 'RMP_ET';
// Water category
export const IS_WATER_FACTOR_DISADVANTAGED_M = 'M_WTR';
export const IS_WATER_EXCEED_ONE_OR_MORE_INDICATORS_M = 'M_WTR_EOMI';
export const WASTEWATER_PERCENTILE = 'WF_PFS';
export const IS_EXCEEDS_THRESH_FOR_WASTEWATER = 'WD_ET';
// Health category
export const IS_HEALTH_FACTOR_DISADVANTAGED_M = 'M_HLTH';
export const IS_HEALTH_EXCEED_ONE_OR_MORE_INDICATORS_M = 'M_HLTH_EOMI';
export const ASTHMA_PERCENTILE = 'AF_PFS';
export const IS_EXCEEDS_THRESH_FOR_ASTHMA = 'A_ET';
export const DIABETES_PERCENTILE = 'DF_PFS';
export const IS_EXCEEDS_THRESH_FOR_DIABETES = 'DB_ET';
export const HEART_PERCENTILE = 'HDF_PFS';
export const IS_EXCEEDS_THRESH_FOR_HEART_DISEASE = 'HD_ET';
export const LIFE_PERCENTILE = 'LLEF_PFS';
export const IS_EXCEEDS_THRESH_FOR_LOW_LIFE_EXP = 'LLE_ET';
// Workforce category
export const IS_WORKFORCE_FACTOR_DISADVANTAGED_M = 'M_WKFC';
export const IS_WORKFORCE_EXCEED_ONE_OR_MORE_INDICATORS_M = 'M_WKFC_EOMI';
export const LINGUISTIC_ISOLATION_PROPERTY_PERCENTILE = 'LIF_PFS';
export const IS_EXCEEDS_THRESH_FOR_LINGUISITIC_ISO = 'LISO_ET';
export const LOW_MEDIAN_INCOME_PERCENTILE = 'LMI_PFS';
export const IS_EXCEEDS_THRESH_FOR_LOW_MEDIAN_INCOME = 'LMI_ET';
export const ISLAND_AREAS_LOW_MEDIAN_INCOME_LOW_HS_EDU_PERCENTILE_FIELD= 'IALMILHSE_PFS';
export const IS_EXCEEDS_THRESH_FOR_ISLAND_AREA_LOW_MEDIAN_INCOME = 'IA_LMI_ET';
export const UNEMPLOYMENT_PROPERTY_PERCENTILE = 'UF_PFS';
export const IS_EXCEEDS_THRESH_FOR_UNEMPLOYMENT = 'UN_ET';
export const ISLAND_AREAS_UNEMPLOYMENT_LOW_HS_EDU_PERCENTILE_FIELD= 'IAULHSE_PFS';
export const IS_EXCEEDS_THRESH_FOR_ISLAND_AREA_UNEMPLOYMENT = 'IA_UN_ET';
export const POVERTY_BELOW_100_PERCENTILE = 'P100_PFS';
export const IS_EXCEEDS_THRESH_FOR_BELOW_100_POVERTY = 'POV_ET';
export const ISLAND_AREAS_POVERTY_LOW_HS_EDU_PERCENTILE_FIELD= 'IAPLHSE_PFS';
export const IS_EXCEEDS_THRESH_FOR_ISLAND_AREA_BELOW_100_POVERTY = 'IA_POV_ET';
export const IS_WORKFORCE_EXCEED_BOTH_SOCIO_INDICATORS_M = 'M_WKFC_EBSI';
export const HIGH_SCHOOL_PROPERTY_PERCENTILE = `HSEF`;
export const IS_LOW_HS_EDUCATION_LOW_HIGHER_ED_PRIORITIZED = 'LHE';
export const ISLAND_AREAS_HS_EDU_PERCENTAGE_FIELD= 'IAHSEF';
export const ISLAND_AREA_LOW_HS_EDU = 'IALHE';
// ********** MAP CONSTANTS ***************
// Source name constants
export const BASE_MAP_SOURCE_NAME = 'base-map-source-name';
export const HIGH_ZOOM_SOURCE_NAME = 'high-zoom-source-name';
export const LOW_ZOOM_SOURCE_NAME = 'low-zoom-source-name';
// Layer ID constants
export const SCORE_SOURCE_LAYER = 'blocks'; // The name of the layer within the tiles that contains the score
export const BASE_MAP_LAYER_ID = 'base-map-layer-id';
export const HIGH_ZOOM_LAYER_ID = 'high-zoom-layer-id';
export const PRIORITIZED_HIGH_ZOOM_LAYER_ID = 'prioritized-high-zoom-layer-id';
@ -152,6 +185,10 @@ export const LOW_ZOOM_LAYER_ID = 'low-zoom-layer-id';
export const FEATURE_BORDER_LAYER_ID = 'feature-border-layer-id';
export const SELECTED_FEATURE_BORDER_LAYER_ID = 'selected-feature-border-layer-id';
// Used in layer filters:
export const SCORE_PROPERTY_LOW = 'M_SCORE';
export const SCORE_PROPERTY_HIGH = 'SM_PFS';
// Zoom
export const GLOBAL_MIN_ZOOM = 3;
export const GLOBAL_MAX_ZOOM = 22;
@ -177,13 +214,6 @@ export const PRIORITIZED_FEATURE_FILL_COLOR = '#768FB3';
export const FEATURE_BORDER_WIDTH = 0.8;
export const SELECTED_FEATURE_BORDER_WIDTH = 5.0;
/**
* This threshold will determine if the feature is prioritized
* or not. Currently all values are railed to 0 or 1 so this value
* doesn't really matter.
*/
export const SCORE_BOUNDARY_THRESHOLD = 0.6;
// Bounds - these bounds can be obtained by using the getCurrentMapBoundingBox() function in the map
export const GLOBAL_MAX_BOUNDS: LngLatBoundsLike = [
[-180.118306, 5.499550],

View file

@ -0,0 +1,5 @@
# How to i18n copy for J40
1. Note that description fields can not have line feed or carriage returns or they will render a /n in the en.json file.
2. Use bold, italic function in common.tsx
3. Use <FormattedNumber> and <FormattedDate> for these data types.

View file

@ -1,8 +1,8 @@
/* eslint-disable max-len */
import React from 'react';
import {defineMessages} from 'react-intl';
import {FormattedMessage} from 'gatsby-plugin-intl';
import LinkTypeWrapper from '../../components/LinkTypeWrapper';
import {italicFn, linkFn} from './common';
export const EXEC_ORDER_LINK = 'https://www.federalregister.gov/documents/2021/02/01/2021-02177/tackling-the-climate-crisis-at-home-and-abroad#:~:text=Sec.%20223.%20Justice40,40-percent%20goal.';
@ -10,28 +10,28 @@ export const PAGE = defineMessages({
TILE: {
id: 'about.page.title.text',
defaultMessage: 'About',
description: 'about page title text',
description: 'Navigate to the About page. This is the about page title text',
},
HEADING: {
id: 'index.heading.about.us',
id: 'about.page.heading.text',
defaultMessage: 'About',
description: 'main heading for about page',
description: 'Navigate to the About page. This is the first heading',
},
HEADING_1: {
id: 'index.heading.screentool',
id: 'about.page.heading.1.text',
defaultMessage: 'Screening tool',
description: 'heading for about screening tool',
description: 'Navigate to the About page. This is the second heading',
},
HEADING1_DESCRIPTION2: {
id: 'about.page.sub.header.1.text.2',
defaultMessage: 'The current version of the tool is in a public beta form and'+
' will be updated based on feedback and research.',
description: 'about page sub header text',
description: 'Navigate to the About page. This is first heading description',
},
HEADING_2: {
id: 'index.heading.justice40',
id: 'about.page.sub.header.2.text',
defaultMessage: 'The Justice40 Initiative',
description: 'heading for about justice 40',
description: 'Navigate to the About page. This is the third heading',
},
HEADING2_DESCRIPTION1: {
id: 'about.page.sub.header.2.text.1',
@ -43,7 +43,7 @@ export const PAGE = defineMessages({
housing, training and workforce development, the remediation and reduction of legacy pollution,
and the development of critical clean water infrastructure.
`,
description: 'about page sub header text',
description: 'Navigate to the About page. This is the third heading description',
},
});
@ -51,9 +51,9 @@ export const HEADING_1 = {
DESCRIPTION_1:
<FormattedMessage
id={'about.page.sub.header.1.text.1'}
description={'about page sub header text'}
description={'Navigate to the About page. This is the second heading description'}
defaultMessage={`
In {eoLink} on {tacklingItalics}, President Biden directed the Council on Environmental Quality (CEQ)
In <link1>Executive Order 14008</link1> on <italictag>Tackling the Climate Crisis at Home and Abroad</italictag>, President Biden directed the Council on Environmental Quality (CEQ)
to create a Climate and Economic Justice Screening Tool. The purpose of the tool is to help
Federal agencies identify disadvantaged communities that are marginalized, underserved, and
overburdened by pollution. The current version of the tool provides socioeconomic, environmental,
@ -61,13 +61,8 @@ export const HEADING_1 = {
tool identifies disadvantaged communities through publicly-available, nationally-consistent datasets.
`}
values={{
eoLink: <LinkTypeWrapper
linkText={'Executive Order 14008'}
internal={false}
url={EXEC_ORDER_LINK}
openUrlNewTab={true}
/>,
tacklingItalics: <i>Tackling the Climate Crisis at Home and Abroad</i>,
link1: linkFn(EXEC_ORDER_LINK, false, true),
italictag: italicFn,
}}
/>,
};
@ -79,16 +74,11 @@ export const HEADING_2 = {
description={'about page sub header text'}
defaultMessage={`
Read more about the Justice40 Initiative in President Bidens
{eoLink} on {tacklingItalics}.
<link1>Executive Order 14008</link1> on <italictag>Tackling the Climate Crisis at Home and Abroad</italictag>.
`}
values={{
eoLink: <LinkTypeWrapper
linkText={'Executive Order 14008'}
internal={false}
url={EXEC_ORDER_LINK}
openUrlNewTab={true}
/>,
tacklingItalics: <i>Tackling the Climate Crisis at Home and Abroad</i>,
link1: linkFn(EXEC_ORDER_LINK, false, true),
italictag: italicFn,
}}
/>,
};
@ -98,81 +88,81 @@ export const GITHUB_LINK = 'https://github.com/usds/justice40-tool';
export const HOW_TO_GET_STARTED = defineMessages({
TITLE: {
id: 'howToGetStarted.title',
id: 'about.page.howToGetStarted.title',
defaultMessage: 'How to get started',
description: 'sub heading of page',
description: 'Navigate to the About page. This is the sub heading of page',
},
FEDERAL_PM_HEADING: {
id: 'federal.pm.heading',
id: 'about.page.federal.pm.heading',
defaultMessage: 'Federal program managers',
description: 'sub heading of page',
description: 'Navigate to the About page. This is the sub heading of page',
},
FEDERAL_PM_INFO: {
id: 'federal.pm.info',
id: 'about.page.federal.pm.info',
defaultMessage: `
Download the tools current list of communities, explore data that may be useful to your
program, and provide feedback on the tool.
`,
description: 'sub heading of page',
description: 'Navigate to the About page. This is the sub heading of page',
},
FEDERAL_PM_LINK_TEXT: {
id: 'federal.pm.link',
id: 'about.page.federal.pm.link',
defaultMessage: 'Methodology & data',
description: 'link text to go to methodology page',
description: 'link text to Navigate to the About page. This is the go to methodology page',
},
COMMUNITY_MEMBERS_HEADING: {
id: 'community.members.heading',
id: 'about.page.community.members.heading',
defaultMessage: 'Community members',
description: 'sub heading of page',
description: 'Navigate to the About page. This is the sub heading of page',
},
COMMUNITY_MEMBERS_INFO: {
id: 'community.members.info',
id: 'about.page.community.members.info',
defaultMessage: `
Explore data about communities across the U.S., including your own, and provide feedback on the tool.
`,
description: 'sub heading of page',
description: 'Navigate to the About page. This is the sub heading of page',
},
COMMUNITY_MEMBERS_LINK_TEXT: {
id: 'community.members.link',
id: 'about.page.community.members.link',
defaultMessage: 'Explore the tool',
description: 'link to explore the tool page',
description: 'link to Navigate to the About page. This is the explore the tool page',
},
});
export const GET_INVOLVED = defineMessages({
TITLE: {
id: 'getInvolved.title',
id: 'about.page.getInvolved.title',
defaultMessage: 'Get involved',
description: 'sub heading of page',
description: 'Navigate to the About page. This is the sub heading of page',
},
SEND_FEEDBACK_HEADING: {
id: 'send.feedback.heading',
id: 'about.page.send.feedback.heading',
defaultMessage: 'Send feedback',
description: 'sending feedback heading',
description: 'Navigate to the About page. This is the sending feedback heading',
},
SEND_FEEDBACK_INFO: {
id: 'send.feedback.info',
id: 'about.page.send.feedback.info',
defaultMessage: `
Have ideas about data and information that reflect the experiences and conditions of your community?
`,
description: 'sending feedback information',
description: 'Navigate to the About page. This is the sending feedback information',
},
JOIN_OSC_HEADING: {
id: 'join.opensource.heading',
id: 'about.page.join.opensource.heading',
defaultMessage: 'Join the open source community',
description: 'join the community heading',
description: 'Navigate to the About page. This is the join the community heading',
},
JOIN_OSC_INFO: {
id: 'join.open.source.info',
id: 'about.page.join.open.source.info',
defaultMessage: `
The tools code is open source, which means it is available for the public to view and contribute to it.
`,
description: 'info on joining open source community',
description: 'info on Navigate to the About page. This is the joining open source community',
},
JOIN_OSC_LINK_TEXT: {
id: 'join.open.source.link',
id: 'about.page.join.open.source.link',
defaultMessage: 'Check it out on GitHub',
description: 'link to github repository',
description: 'Navigate to the About page. This is the link to github repository',
},
});

View file

@ -1,120 +1,162 @@
/* eslint-disable max-len */
/* eslint-disable react/display-name */
import React from 'react';
import {FormattedMessage} from 'gatsby-plugin-intl';
import {defineMessages} from 'react-intl';
import LinkTypeWrapper from '../../components/LinkTypeWrapper';
/*
* i18n curried functions from react-intl (aka format.js)
* using ver3 of the docs as this is what gatsby-plugin-intl uses:
* https://formatjs.io/docs/react-intl/upgrade-guide-3x#enhanced-formattedmessage--formatmessage-rich-text-formatting
*
* */
export const italicFn = (str:string) => <i>{str}</i>;
export const boldFn = (str:string) => <strong>{str}</strong>;
export const simpleLink = (href:string) => (str:string) => <a href={href}>{str}</a>;
// eslint-disable-next-line max-len
export const linkFn = (to:string, isInternal:boolean, isOpenNewTab:boolean) => (str:string) => <LinkTypeWrapper linkText={str} internal={isInternal} url={to} openUrlNewTab={isOpenNewTab}/>;
export const FEEDBACK_EMAIL = 'Screeningtool-Support@omb.eop.gov';
// Beta Banner
export const BETA_BANNER = defineMessages({
TITLE: {
id: 'banner.beta.title',
id: 'common.pages.banner.beta.title',
defaultMessage: 'This is a beta site.',
description: 'the main title of the beta banner',
description: 'Navigate to the about page. This is the main title of the beta banner',
},
INFO: {
id: 'banner.beta.info',
id: 'common.pages.banner.beta.info',
defaultMessage: `It is an early, in-progress version of the tool with limited datasets that will
be regularly updated.`,
description: 'the main info of the beta banner',
description: 'Navigate to the about page. This is the main info of the beta banner',
},
});
// Alerts
// Expiration month is zero-based: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth
export const ALERTS = {
CENSUS_TRACT: defineMessages({
TITLE: {
id: 'common.pages.alerts.census.tract.title',
defaultMessage: 'Improvements to the map on the Explore the tool page',
description: 'Navigate to any page. This the title of the alert that informs the user that new census tract information is available',
},
}),
EXPIRATION_DATE: new Date(2022, 3, 15), // Set expiration for Apr 15th 2022.
CENSUS_TRACT_DESCRIPTION: <FormattedMessage
id={'common.pages.alerts.census.tract.description'}
defaultMessage={`View improvements made to the display of the information for each census tract and <link1>send feedback</link1>.`}
description={`Navigate to any page. This the title of the alert that informs the user that new census tract information is available`}
values={{
link1: linkFn(`mailto:${FEEDBACK_EMAIL}`, false, true),
}}
/>,
};
// Header
export const HEADER = defineMessages({
TITLE_LINE_1: {
id: 'header.title.line1',
id: 'common.pages.header.title.line1',
defaultMessage: `Climate and Economic Justice`,
description: 'Title in nav header line 1 of 2',
description: 'Navigate to the about page. This is Title in nav header line 1 of 2',
},
TITLE_LINE_2: {
id: 'header.title.line2',
id: 'common.pages.header.title.line2',
defaultMessage: `Screening Tool`,
description: 'Title in nav header line 2 of 2',
description: 'Navigate to the about page. This is Title in nav header line 2 of 2',
},
ABOUT: {
id: 'header.about',
id: 'common.pages.header.about',
defaultMessage: 'About',
description: 'Header navigate item to the about page',
description: 'Navigate to the about page. This is Header navigate item to the about page',
},
EXPLORE: {
id: 'header.explore',
id: 'common.pages.header.explore',
defaultMessage: 'Explore the tool',
description: 'Header navigate item to the Explore the tool page',
description: 'Navigate to the about page. This is Header navigate item to the Explore the tool page',
},
METHODOLOGY: {
id: 'header.methodology',
id: 'common.pages.header.methodology',
defaultMessage: 'Methodology & data',
description: 'Header navigate item to the Methodology page',
description: 'Navigate to the about page. This is Header navigate item to the Methodology page',
},
CONTACT: {
id: 'header.contact',
id: 'common.pages.header.contact',
defaultMessage: 'Contact',
description: 'Header navigate item to the Contact page',
description: 'Navigate to the about page. This is Header navigate item to the Contact page',
},
});
// Footer
export const FOOTER = defineMessages({
ARIA_LABEL: {
id: 'footer.arialabel',
id: 'common.pages.footer.arialabel',
defaultMessage: 'Footer navigation',
description: 'aria-label text for whole footer',
description: 'Navigate to the about page. This is aria-label text for whole footer',
},
TITLE: {
id: 'footer.logo.title',
id: 'common.pages.footer.logo.title',
defaultMessage: 'Council on Environmental Quality',
description: 'Footer under logo',
description: 'Navigate to the about page. This is Footer under logo',
},
MORE_INFO: {
id: 'footer.moreinfoheader',
id: 'common.pages.footer.moreinfoheader',
defaultMessage: 'More information',
description: 'Footer column header',
description: 'Navigate to the about page. This is Footer column header',
},
WHITEHOUSE: {
id: 'footer.whitehouse.text',
id: 'common.pages.footer.whitehouse.text',
defaultMessage: 'Whitehouse.gov',
description: 'Footer Whitehouse.gov link text',
description: 'Navigate to the about page. This is Footer Whitehouse.gov link text',
},
WHITEHOUSE_LINK: {
id: 'footer.whitehouse.link',
id: 'common.pages.footer.whitehouse.link',
defaultMessage: 'https://www.whitehouse.gov/',
description: 'Footer Whitehouse.gov link text',
description: 'Navigate to the about page. This is Footer Whitehouse.gov link text',
},
FOIA: {
id: 'footer.foia.text',
id: 'common.pages.footer.foia.text',
defaultMessage: 'Freedom of Information Act (FOIA)',
description: 'Footer FOIA link text',
description: 'Navigate to the about page. This is Footer FOIA link text',
},
PRIVACY: {
id: 'footer.privacy.text',
id: 'common.pages.footer.privacy.text',
defaultMessage: 'Privacy Policy',
description: 'Footer privacy policy link text',
description: 'Navigate to the about page. This is Footer privacy policy link text',
},
PRIVACY_LINK: {
id: 'footer.privacy.link',
id: 'common.pages.footer.privacy.link',
defaultMessage: 'https://www.whitehouse.gov/privacy/',
description: 'Footer privacy policy link text',
description: 'Navigate to the about page. This is Footer privacy policy link text',
},
LOGO_ALT: {
id: 'footer.whitehouselogoalt',
id: 'common.pages.footer.whitehouselogoalt',
defaultMessage: 'Whitehouse logo',
description: 'Footer Whitehouse logo alt text',
description: 'Navigate to the about page. This is Footer Whitehouse logo alt text',
},
QUESTIONS: {
id: 'footer.questionsheader',
id: 'common.pages.footer.questionsheader',
defaultMessage: 'Have a question about government services?',
description: 'Footer column header',
description: 'Navigate to the about page. This is Footer column header',
},
FIND_CONTACT: {
id: 'footer.findcontact',
id: 'common.pages.footer.findcontact',
defaultMessage: 'Find a contact at USA.gov',
description: 'Footer find contact link text',
description: 'Navigate to the about page. This is Footer find contact link text',
},
FIND_CONTACT_LINK: {
id: 'footer.findcontact.link',
id: 'common.pages.footer.findcontact.link',
defaultMessage: 'https://www.usa.gov/',
description: 'Footer find contact link text',
description: 'Navigate to the about page. This is Footer find contact link text',
},
CONTACT: {
id: 'footer.contactheader',
id: 'common.pages.footer.contactheader',
defaultMessage: 'Contact',
description: 'Footer column header',
description: 'Navigate to the about page. This is Footer column header',
},
});
@ -126,4 +168,11 @@ export const FOOTER_CEQ_ADDRESS = {
}
;
export const CONSOLE_ERROR = defineMessages({
STAGE_URL: {
id: 'common.pages.console.error.stage.url',
defaultMessage: `
Please check stage_hash value. It must be a 4 digit decimal value / 40 digit hexadecimal value`,
description: 'Navigate to the about page. This is console error staging URL',
},
});

View file

@ -1,33 +1,34 @@
/* eslint-disable max-len */
import React from 'react';
import {defineMessages} from 'react-intl';
import {FormattedMessage, Link} from 'gatsby-plugin-intl';
import LinkTypeWrapper from '../../components/LinkTypeWrapper';
import {FormattedMessage} from 'gatsby-plugin-intl';
import * as COMMON_COPY from './common';
export const PAGE_INTRO = defineMessages({
PAGE_TILE: {
id: 'contact.page.title.text',
defaultMessage: 'Contact',
description: 'contact page title text',
description: 'Navigate to the contact page, this is the contact page title text',
},
PAGE_HEADING: {
id: 'contact.page.header.text',
defaultMessage: 'Contact',
description: 'contact page header text',
description: 'Navigate to the contact page, this is the contact page header text',
},
PAGE_SUB_HEADING: {
id: 'contact.page.sub.header.text',
defaultMessage: 'Email us',
description: 'contact page sub header text',
description: 'Navigate to the contact page, this is the contact page sub header text',
},
PAGE_DESCRIPTION: {
id: 'contact.page.sub.header.text',
defaultMessage: 'Email us',
description: 'contact page sub header text',
description: 'Navigate to the contact page, this is the contact page sub header text',
},
SURVEY_TEXT: {
id: 'fab.survey.text',
id: 'contact.page.fab.survey.text',
defaultMessage: `Help improve the site & data`,
description: 'text for floating action button',
description: 'Navigate to the contact page, this is the text for floating action button',
},
});
@ -35,18 +36,17 @@ export const CENSUS_TRACT_FEEDBACK = {
TITLE: <FormattedMessage
id={'contact.page.census.tract.feedback.title'}
defaultMessage={`Census tract feedback`}
description={'census tract feedback section'}
description={'Navigate to the contact page, this is the census tract feedback section'}
/>,
PARAGRAPH1: <FormattedMessage
id={'contact.page.census.tract.feedback.para1'}
defaultMessage={`
To provide feedback about a specific census tract, either select the send feedback button after
selecting a census tract on the {exploreLink} page or use the email address provided above. Please
include the census tract ID, county, and state or territory information, in addition to your feedback.
To provide feedback about a specific census tract, either select the send feedback button after
selecting a census tract on the <link1>Explore the tool</link1> page or use the email address provided above. Please include the census tract ID, county, and state or territory information, in addition to your feedback.
`}
description={'census tract feedback section'}
description={'Navigate to the contact page, this is the census tract feedback section'}
values={{
exploreLink: <Link to={'/cejst'}>Explore the tool</Link>,
link1: COMMON_COPY.linkFn('/cejst', true, false),
}}
/>,
PARAGRAPH2: <FormattedMessage
@ -55,21 +55,16 @@ export const CENSUS_TRACT_FEEDBACK = {
If there are specific data indicators that could be improved or changed, please include that
information in the body of the email.
`}
description={'census tract feedback section'}
description={'Navigate to the contact page, this is the census tract feedback section'}
/>,
PARAGRAPH3: <FormattedMessage
id={'contact.page.census.tract.feedback.para3'}
defaultMessage={`
In addition, you can provide feedback on the tool via this {improvementSurvey}.
In addition, you can provide feedback on the tool via this <link1>survey</link1>.
`}
description={'census tract feedback section'}
description={'Navigate to the contact page, this is the census tract feedback section'}
values={{
improvementSurvey: <LinkTypeWrapper
linkText={'survey'}
internal={false}
url={`https://www.surveymonkey.com/r/cejst-survey`}
openUrlNewTab={true}
/>,
link1: COMMON_COPY.linkFn('https://www.surveymonkey.com/r/cejst-survey', false, true),
}}
/>,
};
@ -79,5 +74,3 @@ export const CONTACT_VIA_EMAIL = {
DESCRIPTION: 'Contact page body text',
DEFAULT_MESSAGE: `For general feedback, email {general_email_address}.`,
};
export const FEEDBACK_EMAIL = 'Screeningtool-Support@omb.eop.gov';

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,56 +1,66 @@
/* eslint-disable max-len */
import {defineMessages} from 'react-intl';
import mar9 from '../../images/eventDates/mar9.svg';
import mar10 from '../../images/eventDates/mar10.svg';
import mar16 from '../../images/eventDates/mar16.svg';
import mar22 from '../../images/eventDates/mar22.svg';
import mar30 from '../../images/eventDates/mar30.svg';
import mar31 from '../../images/eventDates/mar31.svg';
import apr15 from '../../images/eventDates/apr15.svg';
import mar9Exp from '../../images/eventDates/mar9-inactive.svg';
import mar10Exp from '../../images/eventDates/mar10-inactive.svg';
import mar16Exp from '../../images/eventDates/mar16-inactive.svg';
import mar22Exp from '../../images/eventDates/mar22-inactive.svg';
import mar30Exp from '../../images/eventDates/mar30-inactive.svg';
import mar31Exp from '../../images/eventDates/mar31-inactive.svg';
import apr15Exp from '../../images/eventDates/apr15-inactive.svg';
export const PAGE_INTRO = defineMessages({
PAGE_TILE: {
id: 'publiceng.page.title.text',
id: 'public.eng.page.title.text',
defaultMessage: 'Public engagement opportunities',
description: 'publiceng page title text',
description: 'Navigate to the the public engagement page, this will be the publiceng page title text',
},
PAGE_HEADING1: {
id: 'publiceng.page.heading1.text',
id: 'public.eng.page.heading1.text',
defaultMessage: 'Public engagement opportunities',
description: 'publiceng page header text',
description: 'Navigate to the the public engagement page, this will be the publiceng page header text',
},
PAGE_HEADING2: {
id: 'publiceng.page.sub.header2.text',
id: 'public.eng.page.sub.header2.text',
defaultMessage: 'Find an event',
description: 'publiceng page sub header text',
description: 'Navigate to the the public engagement page, this will be the publiceng page sub header text',
},
PAGE_DESCRIPTION1: {
id: 'publiceng.page.description1.text',
id: 'public.eng.page.description1.text',
defaultMessage: `
CEQ is hosting engagement opportunities to connect with the public about the current version of the
tool. These sessions are an opportunity to obtain training on the tool or to provide feedback on the
beta version of the tool. CEQ hopes that members of the public will join these engagements to learn
about the tool, have their questions answered, and share feedback.
`,
description: 'publiceng page description 1 text',
description: 'Navigate to the the public engagement page, this will be the publiceng page description 1 text',
},
PAGE_DESCRIPTION2: {
id: 'publiceng.page.description2.text',
id: 'public.eng.page.description2.text',
defaultMessage: `
Pre-registration is required to participate and speak at the sessions.
`,
description: 'publiceng page description 2 text',
description: 'Navigate to the the public engagement page, this will be the publiceng page description 2 text',
},
PAGE_DESCRIPTION3: {
id: 'publiceng.page.description3.text',
id: 'public.eng.page.description3.text',
defaultMessage: `
As they become available, additional public trainings and engagement opportunities on the Climate
and Economic Justice Screening Tool will also be posted on this page.
`,
description: 'publiceng page description 3 text',
description: 'Navigate to the the public engagement page, this will be the publiceng page description 3 text',
},
SURVEY_TEXT: {
id: 'fab.survey.text',
defaultMessage: `Help improve the site & data`,
description: 'text for floating action button',
description: 'Navigate to the the public engagement page, this will be the text for floating action button',
},
});
@ -58,12 +68,12 @@ export const PUBLIC_ENG_BUTTON = defineMessages({
LABEL: {
id: 'public.eng.page.button.label',
defaultMessage: `Public Engagement`,
description: 'public engagement button label',
description: 'Navigate to the the public engagement page, this will be the public engagement button label',
},
TAG_LABEL: {
id: 'public.eng.page.tag.label',
defaultMessage: `NEW`,
description: 'public engagement tag label',
defaultMessage: `UPDATED`,
description: 'Navigate to the the public engagement page, this will be the public engagement tag label',
},
});
@ -72,7 +82,7 @@ export const EVENT_TYPES = {
NAME: {
id: 'public.eng.page.event.training.sess.name',
defaultMessage: `training session`,
description: 'public engagement page event training session name',
description: 'Navigate to the the public engagement page, this will be the public engagement page event training session name',
},
DESCRIPTION: {
id: 'public.eng.page.event.training.description',
@ -83,14 +93,14 @@ export const EVENT_TYPES = {
use the current version of the tool. The presenters at these webinars will be available to
provide technical support and address issues related to accessing and using the tool.
`,
description: 'public engagement page event training session description',
description: 'Navigate to the the public engagement page, this will be the public engagement page event training session description',
},
}),
LISTENING_SESS: defineMessages({
NAME: {
id: 'public.eng.page.event.listening.sess.name',
defaultMessage: `listening session`,
description: 'public engagement page event listening session name',
description: 'Navigate to the the public engagement page, this will be the public engagement page event listening session name',
},
DESCRIPTION: {
id: 'public.eng.page.event.listening.sess.description',
@ -101,52 +111,82 @@ export const EVENT_TYPES = {
tool to ensure that it reflects the environmental, climate and other challenges that communities
are experiencing.
`,
description: 'public engagement page event listening session description',
description: 'Navigate to the the public engagement page, this will be the public engagement page event listening session description',
},
}),
WHEJAC_DAY1: defineMessages({
NAME: {
id: 'public.eng.page.event.whejac.meeting.day.1.name',
defaultMessage: `Public WHEJAC meeting day one`,
description: 'public engagement page event WHEJAC meeting day 1 name',
},
DESCRIPTION: {
id: 'public.eng.page.event.whejac.meeting.day.1.description',
defaultMessage: `
Members of the public are encouraged to provide comments relevant to the beta version of the Climate and Economic Justice Screening Tool that was developed by CEQ and federal government agencies implementation of the Justice40 Initiative will be considered by the WHEJAC during the public meeting.
`,
description: 'public engagement page event WHEJAC day 1 description',
},
}),
WHEJAC_DAY2: defineMessages({
NAME: {
id: 'public.eng.page.event.whejac.meeting.day.2.name',
defaultMessage: `Public WHEJAC meeting day two`,
description: 'public engagement page event WHEJAC meeting day 2 name',
},
DESCRIPTION: {
id: 'public.eng.page.event.whejac.meeting.day.2.description',
defaultMessage: `
Members of the public are encouraged to attend and hear updates and discussion from the WHEJAC Climate and Economic Justice Screening Tool workgroup, the Justice40 workgroup, and the WHEJAC business time and meeting conversation during which the WHEJAC will use reflect on the meeting proceedings and public comment period; provide workgroup updates; discuss action items and finalize next steps.
`,
description: 'public engagement page event WHEJAC day 2 description',
},
}),
};
export const EVENT_FIELDS = defineMessages({
EVENT_INFO: {
id: 'publiceng.page.event.info.label',
id: 'public.eng.page.event.info.label',
defaultMessage: 'Event info',
description: 'public engagement page event info label',
description: 'Navigate to the the public engagement page, this will be the public engagement page event info label',
},
REG_LINK: {
id: 'publiceng.page.event.reglink.label',
id: 'public.eng.page.event.reglink.label',
defaultMessage: 'Registration link',
description: 'public engagment page event registration link label',
description: 'Navigate to the the public engagement page, this will be the public engagment page event registration link label',
},
});
export const EVENTS = [
{
DATE: new Date(2022, 9, 3),
DATE: new Date(2022, 2, 9),
NAME: EVENT_TYPES.TRAINING_SESS.NAME,
DESC: EVENT_TYPES.TRAINING_SESS.DESCRIPTION,
NUMBER: 1,
IMAGE: mar9,
EXPIRED_IMG: mar9Exp,
FIELDS: defineMessages({
INFO: {
id: 'public.eng.page.event.training.1.info',
defaultMessage: `March 9th (4:00 - 5:00 PM EST)`,
description: 'public engagement page event training session 1 date',
description: 'Navigate to the the public engagement page, this will be the public engagement page event training session 1 date',
},
}),
REG_LINK: `https://pitc.zoomgov.com/webinar/register/WN_D-Om_xXhTtiLv71y3Rr1CQ`,
DATA_CY: `mar-9-reg-link-block`,
},
{
DATE: new Date(2022, 10, 3),
DATE: new Date(2022, 2, 10),
NAME: EVENT_TYPES.TRAINING_SESS.NAME,
DESC: EVENT_TYPES.TRAINING_SESS.DESCRIPTION,
NUMBER: 2,
IMAGE: mar10,
EXPIRED_IMG: mar10Exp,
FIELDS: defineMessages({
INFO: {
id: 'public.eng.page.event.training.2.info',
defaultMessage: `March 10th (4:00 - 5:00 PM EST)`,
description: 'public engagement page event training session 2 date',
description: 'Navigate to the the public engagement page, this will be the public engagement page event training session 2 date',
},
}),
REG_LINK: `https://pitc.zoomgov.com/webinar/register/WN_QsSqshI4TpmRBkI6nVlWxQ`,
@ -154,16 +194,17 @@ export const EVENTS = [
},
{
DATE: new Date(2022, 16, 3),
DATE: new Date(2022, 2, 16),
NAME: EVENT_TYPES.TRAINING_SESS.NAME,
DESC: EVENT_TYPES.TRAINING_SESS.DESCRIPTION,
NUMBER: 3,
IMAGE: mar16,
EXPIRED_IMG: mar16Exp,
FIELDS: defineMessages({
INFO: {
id: 'public.eng.page.event.training.3.info',
defaultMessage: `March 16th (4:00 - 5:00 PM EST)`,
description: 'public engagement page event training session 3 date',
description: 'Navigate to the the public engagement page, this will be the public engagement page event training session 3 date',
},
}),
REG_LINK: `https://pitc.zoomgov.com/webinar/register/WN_q86iMtpwTESYa6f0xpIk7g`,
@ -171,16 +212,17 @@ export const EVENTS = [
},
{
DATE: new Date(2022, 22, 3),
DATE: new Date(2022, 2, 22),
NAME: EVENT_TYPES.LISTENING_SESS.NAME,
DESC: EVENT_TYPES.LISTENING_SESS.DESCRIPTION,
NUMBER: 1,
IMAGE: mar22,
EXPIRED_IMG: mar22Exp,
FIELDS: defineMessages({
INFO: {
id: 'public.eng.page.event.listening.1.info',
defaultMessage: `March 22nd (4:00 - 5:00 PM EST)`,
description: 'public engagement page event listening session 1 date',
description: 'Navigate to the the public engagement page, this will be the public engagement page event listening session 1 date',
},
}),
REG_LINK: `https://pitc.zoomgov.com/webinar/register/WN_YT7_uLZqScGHgyAcTCuJjA`,
@ -188,16 +230,51 @@ export const EVENTS = [
},
{
DATE: new Date(2022, 15, 4),
DATE: new Date(2022, 30, 2),
NAME: EVENT_TYPES.WHEJAC_DAY1.NAME,
DESC: EVENT_TYPES.WHEJAC_DAY1.DESCRIPTION,
NUMBER: 0,
IMAGE: mar30,
EXPIRED_IMG: mar30Exp,
FIELDS: defineMessages({
INFO: {
id: 'public.eng.page.whejac.meeting.day.1.info',
defaultMessage: `March 30th (3:00 - 7:00 PM EST)`,
description: 'public engagement page event WHEJAC',
},
}),
REG_LINK: `https://usepa.zoomgov.com/webinar/register/WN_wCwVP1dtT0auAR5kfucVtw`,
DATA_CY: `mar-30-reg-link-block`,
},
{
DATE: new Date(2022, 31, 2),
NAME: EVENT_TYPES.WHEJAC_DAY2.NAME,
DESC: EVENT_TYPES.WHEJAC_DAY2.DESCRIPTION,
NUMBER: 0,
IMAGE: mar31,
EXPIRED_IMG: mar31Exp,
FIELDS: defineMessages({
INFO: {
id: 'public.eng.page.whejac.meeting.day.1.info',
defaultMessage: `March 31th (3:00 - 7:30 PM EST)`,
description: 'public engagement page event WHEJAC',
},
}),
REG_LINK: `https://usepa.zoomgov.com/webinar/register/WN_wCwVP1dtT0auAR5kfucVtw`,
DATA_CY: `mar-31-reg-link-block`,
},
{
DATE: new Date(2022, 3, 15),
NAME: EVENT_TYPES.LISTENING_SESS.NAME,
DESC: EVENT_TYPES.LISTENING_SESS.DESCRIPTION,
NUMBER: 2,
IMAGE: apr15,
EXPIRED_IMG: apr15Exp,
FIELDS: defineMessages({
INFO: {
id: 'public.eng.page.event.listening.2.info',
defaultMessage: `April 15th (4:00 - 5:00 PM EST)`,
description: 'public engagement page event listening session 2 date',
description: 'Navigate to the the public engagement page, this will be the public engagement page event listening session 2 date',
},
}),
REG_LINK: `https://pitc.zoomgov.com/webinar/register/WN_dLw3xChiTlaOLGdHXQWk0w`,

View file

@ -1,5 +1,6 @@
import {Style} from 'maplibre-gl';
import * as constants from '../data/constants';
import {featureURLForTilesetName} from '../components/J40Map';
// *********** BASE MAP SOURCES ***************
const imageSuffix = constants.isMobile ? '' : '@2x';
@ -50,7 +51,7 @@ export const getOSBaseMap = () : Style => {
// Our current tippecanoe command does not set an id.
// The below line promotes the GEOID10 property to the ID
'promoteId': constants.GEOID_PROPERTY,
'tiles': [constants.FEATURE_TILE_HIGH_ZOOM_URL],
'tiles': [featureURLForTilesetName('high')],
// Setting maxzoom here enables 'overzooming'
// e.g. continued zooming beyond the max bounds.
// More here: https://docs.mapbox.com/help/glossary/overzoom/
@ -66,7 +67,7 @@ export const getOSBaseMap = () : Style => {
// to give us a favorable tradeoff between performance and fidelity.
'type': 'vector',
'promoteId': constants.GEOID_PROPERTY,
'tiles': [constants.FEATURE_TILE_LOW_ZOOM_URL],
'tiles': [featureURLForTilesetName('low')],
'minzoom': constants.GLOBAL_MIN_ZOOM_LOW,
'maxzoom': constants.GLOBAL_MAX_ZOOM_LOW,
},