{"version":3,"sources":["webpack:///./src/data/Config/LayerTypes/LabelsConfig.js","webpack:///./src/data/Config/LayerTypes/OutlineConfig.js","webpack:///./src/data/Config/LayerTypes/ChoroplethLayerConfig.js","webpack:///./src/data/Config/LayerTypes/OtherLayerConfig.js","webpack:///./src/data/Config/LayersConfig.js","webpack:///./src/data/Config/SourceConfig.js","webpack:///./src/data/Config/LegislativeChoroplethStyleConfig.js","webpack:///./src/data/Config/TractChoroplethStyleConfig.js","webpack:///./src/data/Config/TractVotingChoroplethStyleConfig.js","webpack:///./src/data/DemographicData/DemoArrayManager.js","webpack:///./src/data/DemographicData/TractDemoArrayManager.js","webpack:///./src/data/Config/VotingPrecinctChoroplethStyleConfig.js","webpack:///./src/data/Config/Config.js"],"names":["LabelsConfig","_config","this","layers","beforeId","OutlineConfig","id","enums","LEG_BODY","CONGRESS","type","paint","ST_UPPER","ST_LOWER","ChoroplethLayerConfig","zoomThreshold","overlap","data","congressDemographics","dataStyle","stUpperDemographics","stLowerDemographics","source","tractDemographics","tractVAPDemographics","OtherLayerConig","LayersConfig","labelsConfig","outlineConfig","choroplethLayerConfig","otherLayerConfig","OtherLayerConfig","maxWide","minClose","labels","outlines","choropleth","other","layerArray","flat","choroplethLayerArray","filter","l","layerDist","replace","labelLayerArray","includes","sort","a","b","params","zIndex","reverse","SourceConfig","congress","tiles","api","hosts","nodeHostAddress","stateLegUpper","stateLegLower","tractCVAP","url","tractVAP","fipsLabelCongressSource","fipsLabelStLegUpperSource","fipsLabelStLegLowerSource","voting","sourceArray","LegislativeChoroplethStyleConfig","config","deviation","title","titleplaintext","description","scale","color","step","getLegendValues","label","popchgpct1020","TractChoroplethStyleConfig","h","w","as","ai","n","TractVotingChoroplethStyleConfig","DemoArrayManager","loading","columns","Columns","array","columnObj","obj","columnName","indexOf","idx","_geoid","_districtType","CongressData","StUpperData","StLowerData","length","ArrayToObj","d","arr","forEach","element","TractDemoArrayManager","ColumnsVoting","TractVotingData","TractData","VotingPrecinctChoroplethStyleConfig","votingPrecincts","Config","experimentalFeatures","print","process","propublica","keys","ProPublicaAPIKey","WillFMapboxKey","CUNYMapBoxKey","GoogleKey","DATA_SOURCE","PROPUB","POSTGRES","POSTGRES_TILES","POSTGRES_FIPS_LABELS","MAPBOX","ARCGIS_FEATURE_SERVER","MAP_VARIABLES","DEVIATION","POP","POPCHG1020","POPCHGPCT1020","SIDE_TABS","ONE_PERSON","DEMOGRAPHICS","md","MobileDetect","window","navigator","userAgent","mobile","phone","map","setup","container","style","center","zoom","pitch","hash","logoPosition","attributionControl","preserveDrawingBuffer","antialias","layersConfig","sourceConfig","demoArrayManager","tractDemoArrayManager","tractVotingDemoArrayManager","legislativeChoroplethStyleConfig","tractChoroplethStyleConfig","tractVotingChoroplethStyleConfig","votingPrecinctSyleConfig","displayLabels","bodies","_configInstance","Enums","Sources","LegislativeChoropleth","TractChoropleth","TractVotingChoropleth","VotingChoropleth"],"mappings":"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","file":"js/app~f6586248.97da935d.js","sourcesContent":["export default class LabelsConfig {\r\n constructor(_config) {\r\n this.layers = [\r\n //Congress Labels\r\n {\r\n 'id': 'fips-labels-congress',\r\n 'type': 'symbol',\r\n 'source': 'fips-labels-congress-source',\r\n // 'source-layer': `congress_us_centroids`,\r\n 'source-layer': `congress_labels_us_centroids`,\r\n 'minzoom': 8, //7\r\n 'layout': {\r\n // 'text-field': ['get', 'namelsad'],\r\n // 'text-field': ['get', 'conglabel'],\r\n 'text-field': ['get', 'distname'],\r\n 'text-variable-anchor': ['top', 'bottom', 'left', 'right'],\r\n 'text-size': 16,\r\n 'text-justify': 'auto',\r\n 'text-font': [\r\n 'literal',\r\n ['Lato Black Italic', 'Arial Unicode MS Regular']\r\n ]\r\n },\r\n 'paint': {\r\n 'text-halo-color': '#787878', //#fff\r\n 'text-halo-width': .75,\r\n // 'text-color': '#fff',\r\n 'text-color': '#fff', //#787878\r\n 'text-opacity': 1 //Deprecated: this.opacitySlideValue\r\n },\r\n 'params': {\r\n beforeId: 'choropleth-label-placeholder', \r\n }\r\n },\r\n //State Upper\r\n {\r\n 'id': 'fips-labels-statelegupper',\r\n 'type': 'symbol',\r\n 'source': 'fips-labels-statelegupper-source',\r\n 'source-layer': `stateupper_labels_us_centroids`,\r\n 'minzoom': 9,\r\n 'layout': {\r\n 'text-field': ['get', 'stateupperlabel'],\r\n 'text-variable-anchor': ['top', 'bottom', 'left', 'right'],\r\n 'text-size': 16,\r\n 'text-justify': 'auto',\r\n 'text-font': [\r\n 'literal',\r\n ['Lato Black Italic', 'Arial Unicode MS Regular']\r\n ]\r\n },\r\n 'paint': {\r\n 'text-halo-color': '#787878', //#fff\r\n 'text-halo-width': .75,\r\n // 'text-color': '#fff',\r\n 'text-color': '#fff', //#787878\r\n 'text-opacity': 1 //Deprecated: this.opacitySlideValue\r\n },\r\n 'params': {\r\n beforeId: 'choropleth-label-placeholder', \r\n }\r\n },\r\n //State Lower\r\n {\r\n 'id': 'fips-labels-stateleglower',\r\n 'type': 'symbol',\r\n 'source': 'fips-labels-stateleglower-source',\r\n 'source-layer': `statelower_labels_us_centroids`,\r\n 'minzoom': 10,\r\n 'layout': {\r\n 'text-field': ['get', 'statelowerlabel'],\r\n // 'text-field': ['get', 'distname'],\r\n 'text-variable-anchor': ['top', 'bottom', 'left', 'right'],\r\n 'text-size': 16,\r\n 'text-justify': 'auto',\r\n 'text-font': [\r\n 'literal',\r\n ['Lato Black Italic', 'Arial Unicode MS Regular']\r\n ]\r\n },\r\n 'paint': {\r\n 'text-halo-color': '#787878', //#fff\r\n 'text-halo-width': .75,\r\n // 'text-color': '#fff',\r\n 'text-color': '#fff', //#787878\r\n 'text-opacity': 1 //Deprecated: this.opacitySlideValue\r\n },\r\n 'params': {\r\n beforeId: 'choropleth-label-placeholder', \r\n }\r\n },\r\n ]\r\n }\r\n}","export default class OutlineConfig {\r\n constructor(_config) {\r\n this.layers = [\r\n\r\n //Congress outline\r\n {\r\n id: `${_config.enums.LEG_BODY.CONGRESS}-outline`,\r\n type: 'line',\r\n 'source': `${_config.enums.LEG_BODY.CONGRESS}-choro-source`,\r\n //'source': `legislative-choro-source`,\r\n 'source-layer': `congress_demographics`,\r\n paint: {\r\n 'line-color': '#fff', //707070 222\r\n 'line-opacity': 0.8, //1\r\n 'line-width': 1.25 //.5\r\n },\r\n 'layout': {\r\n 'visibility': 'visible',\r\n },\r\n 'minzoom': 6,\r\n 'params':{\r\n beforeId: 'choropleth-outline-placeholder'\r\n }\r\n },\r\n //Congress highlight outline\r\n {\r\n id: `${_config.enums.LEG_BODY.CONGRESS}-highlight-outline`,\r\n type: 'line',\r\n 'source': `${_config.enums.LEG_BODY.CONGRESS}-choro-source`,\r\n //'source': `legislative-choro-source`,\r\n 'source-layer': `congress_demographics`,\r\n paint: {\r\n 'line-color': '#222',\r\n 'line-opacity': 1,\r\n 'line-width': 5\r\n },\r\n 'layout': {\r\n 'visibility': 'visible',\r\n },\r\n //https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/\r\n //https://docs.mapbox.com/help/glossary/filter/\r\n \"filter\": [\"==\", [\"get\",\"geoid\"], -1],\r\n 'params':{\r\n beforeId: 'choropleth-highlight-outline-placeholder',\r\n }\r\n },\r\n //St Upper outline\r\n {\r\n id: `${_config.enums.LEG_BODY.ST_UPPER}-outline`,\r\n type: 'line',\r\n 'source': `${_config.enums.LEG_BODY.ST_UPPER}-choro-source`,\r\n //'source': `legislative-choro-source`,\r\n 'source-layer': `statelegupper_demographics`,\r\n paint: {\r\n 'line-color': '#fff', //241 707070 222\r\n 'line-opacity': 0.8, //1\r\n 'line-width': 1.25 //.5\r\n },\r\n 'layout': {\r\n 'visibility': 'none',\r\n },\r\n 'minzoom': 6,\r\n 'params':{\r\n beforeId: 'choropleth-outline-placeholder',\r\n }\r\n },\r\n //St Upper highlight outline\r\n {\r\n id: `${_config.enums.LEG_BODY.ST_UPPER}-highlight-outline`,\r\n type: 'line',\r\n 'source': `${_config.enums.LEG_BODY.ST_UPPER}-choro-source`,\r\n //'source': `legislative-choro-source`,\r\n 'source-layer': `statelegupper_demographics`,\r\n paint: {\r\n 'line-color': '#222',\r\n 'line-opacity': 1,\r\n 'line-width': 5\r\n },\r\n 'layout': {\r\n 'visibility': 'visible',\r\n },\r\n //https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/\r\n //https://docs.mapbox.com/help/glossary/filter/\r\n \"filter\": [\"==\", [\"get\",\"geoid\"], '#222'],\r\n 'params':{\r\n beforeId: 'choropleth-highlight-outline-placeholder',\r\n }\r\n },\r\n //st lower outline\r\n {\r\n id: `${_config.enums.LEG_BODY.ST_LOWER}-outline`,\r\n type: 'line',\r\n 'source': `${_config.enums.LEG_BODY.ST_LOWER}-choro-source`,\r\n //'source': `legislative-choro-source`,\r\n 'source-layer': `stateleglower_demographics`,\r\n paint: {\r\n 'line-color': '#fff', //492 707070 222\r\n 'line-opacity': 0.8, //1\r\n 'line-width': 1.25 //.5\r\n },\r\n 'layout': {\r\n 'visibility': 'none',\r\n },\r\n 'minzoom': 6,\r\n 'params':{\r\n beforeId: 'choropleth-outline-placeholder',\r\n }\r\n },\r\n //st lower highlight outline\r\n {\r\n id: `${_config.enums.LEG_BODY.ST_LOWER}-highlight-outline`,\r\n type: 'line',\r\n 'source': `${_config.enums.LEG_BODY.ST_LOWER}-choro-source`,\r\n //'source': `legislative-choro-source`,\r\n 'source-layer': `stateleglower_demographics`,\r\n paint: {\r\n 'line-color': '#222',\r\n 'line-opacity': 1,\r\n 'line-width': 5\r\n },\r\n 'layout': {\r\n 'visibility': 'visible',\r\n },\r\n //https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/\r\n //https://docs.mapbox.com/help/glossary/filter/\r\n \"filter\": [\"==\", [\"get\",\"geoid\"], '#222'],\r\n 'params':{\r\n beforeId: 'choropleth-highlight-outline-placeholder',\r\n }\r\n },\r\n ]\r\n }\r\n}","import congressDemographics from '../../DemographicData/congress-demographics.json'\r\nimport stUpperDemographics from '../../DemographicData/statelegupper-demographics.json'\r\nimport stLowerDemographics from '../../DemographicData/stateleglower-demographics.json'\r\nimport tractDemographics from '../../DemographicData/tracts-demographics.json'\r\nimport tractVAPDemographics from '../../DemographicData/tracts-voting-demographics.json'\r\nexport default class ChoroplethLayerConfig {\r\n constructor(_config) {\r\n this.zoomThreshold = 0; //Depricated for mapbox. When using mapbox wide/close tiles, set to the zoom level where they switch\r\n this.overlap = 0;\r\n this.layers = [\r\n {\r\n 'id': _config.enums.LEG_BODY.CONGRESS,\r\n 'type': 'fill',\r\n //'source': `${_config.enums.LEG_BODY.CONGRESS}-choro-source`,\r\n 'source': `congress-choro-source`,\r\n 'source-layer': `congress_demographics`,\r\n 'minzoom': this.zoomThreshold-this.overlap,\r\n 'layout': {\r\n // make layer visible by default\r\n 'visibility': 'visible',\r\n },\r\n 'paint': {\r\n //'fill-color': |* Set programatically based on scale values*|,\r\n 'fill-opacity': 0.8, //.5\r\n 'fill-antialias': false, //disables outline if false\r\n 'fill-outline-color': [ \"step\", [\"zoom\"],'rgba(0,0,0,0)', 5,'#fff']\r\n \r\n },\r\n 'params': {\r\n beforeId: 'choropleth-placeholder', \r\n type: 'jurisdiction',\r\n data: congressDemographics,\r\n dataStyle: null\r\n }\r\n },\r\n {\r\n 'id': _config.enums.LEG_BODY.ST_UPPER,\r\n 'type': 'fill',\r\n //'source': `${_config.enums.LEG_BODY.ST_UPPER}-choro-source`,\r\n 'source': `statelegupper-choro-source`,\r\n 'source-layer': `statelegupper_demographics`,\r\n 'minzoom': this.zoomThreshold-this.overlap,\r\n 'layout': {\r\n 'visibility': 'none',\r\n },\r\n 'paint': {\r\n //'fill-color': matchExpression,\r\n 'fill-opacity': 0.8, //.5\r\n 'fill-antialias': false, //disables outline if false\r\n 'fill-outline-color': [ \"step\", [\"zoom\"],'rgba(0,0,0,0)', 5,'#fff']\r\n },\r\n 'params': {\r\n beforeId: 'choropleth-placeholder', \r\n type: 'jurisdiction',\r\n data: stUpperDemographics,\r\n dataStyle: null\r\n }\r\n\r\n },\r\n {\r\n 'id': _config.enums.LEG_BODY.ST_LOWER,\r\n type: \"fill\",\r\n //source: `${_config.enums.LEG_BODY.ST_LOWER}-choro-source`,\r\n 'source': `stateleglower-choro-source`,\r\n \"source-layer\": \"stateleglower_demographics\",\r\n 'minzoom': this.zoomThreshold-this.overlap,\r\n 'layout': {\r\n 'visibility': 'none',\r\n },\r\n paint: {\r\n 'fill-opacity': 0.8, //.5\r\n 'fill-antialias': false, //disables outline if false\r\n 'fill-outline-color': [ \"step\", [\"zoom\"],'rgba(0,0,0,0)', 5,'#fff']\r\n },\r\n 'params': {\r\n beforeId: 'choropleth-placeholder', \r\n type: 'jurisdiction',\r\n data: stLowerDemographics,\r\n dataStyle: null\r\n }\r\n },\r\n {\r\n 'id': 'tract-cvap',\r\n type: \"fill\",\r\n source: `tract-cvap-choro-source`,\r\n \"source-layer\": \"tract19_vb-b680ns\",\r\n //\"source-layer\": \"tiger20tractsUScb500k-2ontwt\",\r\n 'minzoom': this.zoomThreshold-this.overlap,\r\n 'layout': {\r\n 'visibility': 'none',\r\n },\r\n paint: {\r\n 'fill-opacity': 0.8, //.5\r\n 'fill-antialias': [ \"step\", [\"zoom\"],true, 8,false]\r\n //'fill-outline-color':'rgba(0,0,0,0)'\r\n },\r\n 'params': {\r\n beforeId: 'choropleth-placeholder', \r\n type: 'tract',\r\n data: tractDemographics,\r\n dataStyle: null\r\n }\r\n },\r\n {\r\n 'id': 'tract-vap',\r\n type: \"fill\",\r\n source: `tract-vap-choro-source`,\r\n //\"source-layer\": \"tract19_vb-b680ns\",\r\n \"source-layer\": \"tiger20tractsUScb500k-2ontwt\",\r\n 'minzoom': this.zoomThreshold-this.overlap,\r\n 'layout': {\r\n 'visibility': 'none',\r\n },\r\n paint: {\r\n 'fill-opacity': 0.8, //.5\r\n 'fill-antialias': [ \"step\", [\"zoom\"],true, 8,false]\r\n //'fill-outline-color':'rgba(0,0,0,0)'\r\n },\r\n 'params': {\r\n beforeId: 'choropleth-placeholder', \r\n type: 'tract-vap',\r\n data: tractVAPDemographics,\r\n dataStyle: null\r\n }\r\n },\r\n {\r\n 'id': 'voting-precincts',\r\n type: \"fill\",\r\n source: `voting-precincts`,\r\n \"source-layer\": \"nytimes2020precinctresults\",\r\n 'minzoom': this.zoomThreshold-this.overlap,\r\n 'layout': {\r\n 'visibility': 'none',\r\n },\r\n paint: {\r\n 'fill-opacity': .8, //.5\r\n 'fill-antialias': [ \"step\", [\"zoom\"],true, 10,false],\r\n //'fill-color': '#f00'\r\n //'fill-outline-color':'rgba(0,0,0,0)'\r\n 'fill-color': [\r\n 'step', // arg 1\r\n ['get', 'bidenpct'], // arg 2\r\n '#888', // arg 3\r\n // 0, '#D9091B', // rest of the expression is arg 4\r\n // .10, '#CD0D22',\r\n // .20, '#AD1637',\r\n // .30, '#812453',\r\n // .40, '#762759',\r\n // .50, '#4F3372',\r\n // .60, '#3D387D',\r\n // .70, '#293F8B',\r\n // .80, '#164496',\r\n // .90, '#174597',\r\n // 1.00, '#1644CC'\r\n 0, '#b2182b',\r\n .20, '#ef8a62',\r\n .40, '#fddbc7',\r\n .50, '#d1e5f0',\r\n .60, '#67a9cf',\r\n .80, '#2166ac'\r\n // ,\r\n // 1.00, '#1644CC'\r\n ]\r\n // ['#b2182b','#','#','#','#','#']\r\n // {\r\n // 'property': 'bidenpct',\r\n // 'stops': [\r\n // [0, 'darkred'],\r\n // [.5, 'lightgrey'],\r\n // [1, 'darkblue']\r\n // ]\r\n // },\r\n },\r\n 'params': {\r\n beforeId: 'choropleth-placeholder', \r\n type: 'voting-precinct',\r\n //data: tractDemographics,\r\n //dataStyle: null\r\n }\r\n },\r\n ]\r\n\r\n }\r\n}","export default class OtherLayerConig {\r\n constructor(_config) {\r\n this.layers =[\r\n \r\n ]\r\n }\r\n}","import LabelsConfig from './LayerTypes/LabelsConfig';\r\nimport OutlineConfig from './LayerTypes/OutlineConfig';\r\nimport ChoroplethLayerConfig from './LayerTypes/ChoroplethLayerConfig';\r\nimport OtherLayerConfig from './LayerTypes/OtherLayerConfig';\r\nimport {\r\n Enums\r\n} from './Config';\r\n\r\nexport default class LayersConfig {\r\n constructor(_config) {\r\n const labelsConfig = new LabelsConfig(_config);\r\n const outlineConfig = new OutlineConfig(_config);\r\n const choroplethLayerConfig = new ChoroplethLayerConfig(_config);\r\n const otherLayerConfig = new OtherLayerConfig(_config);\r\n\r\n this.maxWide = choroplethLayerConfig.zoomThreshold;\r\n this.minClose = choroplethLayerConfig.zoomThreshold - choroplethLayerConfig.overlap;\r\n\r\n this.layers = {\r\n labels: labelsConfig.layers,\r\n outlines: outlineConfig.layers,\r\n choropleth: choroplethLayerConfig.layers,\r\n other: otherLayerConfig.layers\r\n }\r\n\r\n this.layerArray = [this.layers.labels, this.layers.outlines, this.layers.choropleth, this.layers.other].flat();\r\n //this.layerArray = [this.layers.outlines, this.layers.other].flat();\r\n //TODO: Are choropleth layer array and label layer array redundant? Can't it just use layers.choropleth and layers.labels?\r\n this.choroplethLayerArray = this.layerArray.filter((l) => {\r\n if (l['source-layer']) {\r\n // console.log(l.id.replace('-wide',''))\r\n const layerDist = l.id.replace('-wide', '').replace('-outline', '').replace('-highlight', '');\r\n return layerDist === _config.enums.LEG_BODY.CONGRESS ||\r\n layerDist === _config.enums.LEG_BODY.ST_UPPER ||\r\n layerDist === _config.enums.LEG_BODY.ST_LOWER ||\r\n layerDist === 'tract-vap' ||\r\n layerDist === 'tract-cvap' ||\r\n layerDist === 'voting-precincts';\r\n }\r\n });\r\n\r\n this.labelLayerArray = this.layerArray.filter((l) => {\r\n if (l['source-layer']) {\r\n // return l['source-layer'].includes('_us_centroid');\r\n return l['source-layer'].includes('centroids');\r\n }\r\n });\r\n\r\n this.layerArray.sort((a, b) => a.params.zIndex > b.params.zIndex ? 1 : -1);\r\n this.layerArray = this.layerArray.reverse();\r\n\r\n \r\n }\r\n}","\r\nexport default class SourceConfig {\r\n constructor(_config){\r\n \r\n this.congress= {\r\n 'name':'congress-choro-source', \r\n 'data':{\r\n type: 'vector',\r\n tiles: [`${_config.api.hosts.nodeHostAddress}/mvt/congress_demographics/{z}/{x}/{y}?geom_column=geom&columns=geoid`]\r\n }\r\n }\r\n\r\n this.stateLegUpper= {\r\n 'name':'statelegupper-choro-source', \r\n 'data':{\r\n type: 'vector',\r\n tiles: [`${_config.api.hosts.nodeHostAddress}/mvt/statelegupper_demographics/{z}/{x}/{y}?geom_column=geom&columns=geoid`]\r\n }\r\n }\r\n\r\n this.stateLegLower= {\r\n 'name':'stateleglower-choro-source', \r\n 'data':{\r\n type: 'vector',\r\n tiles: [`${_config.api.hosts.nodeHostAddress}/mvt/stateleglower_demographics/{z}/{x}/{y}?geom_column=geom&columns=geoid`]\r\n }\r\n }\r\n\r\n this.tractCVAP = {\r\n 'name':'tract-cvap-choro-source', \r\n 'data':{\r\n type: 'vector',\r\n url: \"mapbox://cunycur.81xntks0\",\r\n //url: \"mapbox://cunycur.cdy5fioz\",\r\n }\r\n }\r\n\r\n this.tractVAP = {\r\n 'name':'tract-vap-choro-source', \r\n 'data':{\r\n type: 'vector',\r\n //url: \"mapbox://cunycur.81xntks0\",\r\n url: \"mapbox://cunycur.cdy5fioz\",\r\n }\r\n }\r\n \r\n this.fipsLabelCongressSource= {\r\n 'name':'fips-labels-congress-source', \r\n 'data':{\r\n type: 'vector',\r\n tiles: [`${_config.api.hosts.nodeHostAddress}/mvt/congress_labels_us_centroids/{z}/{x}/{y}?geom_column=geom&columns=distname`]\r\n }\r\n }\r\n\r\n this.fipsLabelStLegUpperSource= {\r\n 'name':'fips-labels-statelegupper-source', \r\n 'data':{\r\n type: 'vector',\r\n tiles: [`${_config.api.hosts.nodeHostAddress}/mvt/stateupper_labels_us_centroids/{z}/{x}/{y}?geom_column=geom&columns=stateupperlabel`]\r\n }\r\n }\r\n\r\n this.fipsLabelStLegLowerSource= {\r\n 'name':'fips-labels-stateleglower-source', \r\n 'data':{\r\n type: 'vector',\r\n tiles: [`${_config.api.hosts.nodeHostAddress}/mvt/statelower_labels_us_centroids/{z}/{x}/{y}?geom_column=geom&columns=statelowerlabel`]\r\n }\r\n }\r\n\r\n // this.legislative = {\r\n // 'name':'legislative-choro-source', \r\n // 'data':{\r\n // type: 'vector',\r\n // tiles: [`${_config.api.hosts.nodeHostAddress}/mvt_layered/congress_demographics%2Cstatelegupper_demographics%2Cstateleglower_demographics/{z}/{x}/{y}?geom_column=geom&columns=geoid`\r\n // ]\r\n // }\r\n // }\r\n\r\n // this.legislativeLabel = {\r\n // 'name':'legislative-label-source', \r\n // 'data':{\r\n // type: 'vector',\r\n // tiles: [`${_config.api.hosts.nodeHostAddress}/mvt_layered/congress_labels_us_centroids%2Cstateupper_labels_us_centroids%2Cstatelower_labels_us_centroids/{z}/{x}/{y}?geom_column=geom&columns=distlabel`\r\n // ]\r\n // }\r\n // }\r\n\r\n this.voting = {\r\n 'name': 'voting-precincts',\r\n 'data':{\r\n type:'vector',\r\n tiles:[`${_config.api.hosts.nodeHostAddress}/mvt/nytimes2020precinctresults/{z}/{x}/{y}?geom_column=geom&columns=geoid,bidenpct`]\r\n }\r\n }\r\n \r\n this.sourceArray = [\r\n // this.legislative,\r\n this.congress,\r\n this.stateLegUpper,\r\n this.stateLegLower,\r\n this.tractCVAP, \r\n this.tractVAP,\r\n this.voting,\r\n this.fipsLabelCongressSource, this.fipsLabelStLegUpperSource,this.fipsLabelStLegLowerSource];\r\n }\r\n}","export default class LegislativeChoroplethStyleConfig {\r\n constructor(){\r\n this.config = {\r\n deviation: { //Must match column name!\r\n title: \"Difference from Average
\",\r\n titleplaintext: \"Difference from Average\",\r\n // description: \"Congress: based on projected # of seats.
State Legislature: current population estimates.\",\r\n // description: \"District population estimate compared
w/ state avg based on state's 2019 ACS pop. estimate\",\r\n description: \"District population compared
w/ state avg based on 2020 Census\",\r\n scale:[ \r\n //Brown to Purple CB ['#b35806','#e08214','#fdb863','#fee0b6','#f7f7f7','#d8daeb','#b2abd2','#8073ac','#542788'] \r\n //Orange to green CB combo ['#b35806','#e08214','#fdb863','#fee0b6','#f7f7f7', '#d9ef8b','#a6d96a','#66bd63','#1a9850']\r\n {\r\n color:\"#b35806\", //d73027\r\n step:[-0.1, true] //need to expand\r\n },\r\n {\r\n color:\"#e08214\", //f46d43\r\n step:[-0.1,false,-.05,false]\r\n },\r\n {\r\n color:\"#fdb863\", //fdae61\r\n step:[-0.05,true,-.02,false]\r\n },\r\n {\r\n color:\"#fee0b6\", //fee090\r\n step:[-0.02,true,-.001,false]\r\n },\r\n {\r\n color:\"#ededed\", //ebebeb gray\r\n step:[-0.001,true,0.001,true]\r\n },\r\n {\r\n color:\"#d9ef8b\", //e0f3f8\r\n step:[0.001,false,0.02,false]\r\n },\r\n {\r\n color:\"#a6d96a\", //abd9e9\r\n step:[0.02,true,0.05,false]\r\n },\r\n {\r\n color:\"#66bd63\", //74add1\r\n step:[0.05,true,.1,false]\r\n },\r\n {\r\n color:\"#1a9850\", //4575b4\r\n step:[.1, true] //need to shrink \r\n }\r\n ],\r\n getLegendValues: function(scale){\r\n\r\n return [\r\n {\r\n color: scale[0]['color'],\r\n label: '10% or more below avg. population'\r\n },\r\n {\r\n color: scale[1]['color'],\r\n label: '5%-10% below avg. pop.'\r\n },\r\n {\r\n color: scale[2]['color'],\r\n label: '2%-5% below avg. pop.'\r\n },\r\n {\r\n color: scale[3]['color'],\r\n label: 'up to 2% below avg. pop.'\r\n },\r\n {\r\n color: scale[4]['color'],\r\n label: 'Average'\r\n },\r\n {\r\n color: scale[5]['color'],\r\n label: 'up to 2% above avg. pop.'\r\n },\r\n {\r\n color: scale[6]['color'],\r\n label: '2%-5% above avg. pop.'\r\n },\r\n {\r\n color: scale[7]['color'],\r\n label: '5%-10% above avg. pop.'\r\n },\r\n {\r\n color: scale[8]['color'],\r\n label: '10% or more above avg. pop.'\r\n }\r\n ]\r\n }\r\n } \r\n\r\n //Brown to blue-gold CB ['#543005','#8c510a','#bf812d','#dfc27d','#f6e8c3','#c7eae5','#80cdc1','#35978f','#01665e','#003c30'] - VB preference\r\n \r\n //Orange to purple ColorBrewer ['#b35806','#e08214','#fdb863','#fee0b6','#f7f7f7','#d8daeb','#b2abd2','#8073ac','#542788'] \r\n\r\n //RedOrange to Green CB ['#d73027','#f46d43','#fdae61','#fee08b','#ffffbf','#d9ef8b','#a6d96a','#66bd63','#1a9850']\r\n\r\n //['#d53e4f','#f46d43','#fdae61','#fee08b','#ffffbf','#e6f598','#abdda4','#66c2a5','#3288bd']\r\n ,\r\n popchgpct1020: {\r\n // title: \"Estimated Population
Change 2010-2019

\",\r\n // titleplaintext: \"Estimated Population Change 2010-2019\",\r\n title: \"Population Change
2010-2020

\",\r\n titleplaintext: \"Population Change 2010-2020\",\r\n description: null,\r\n //popThreshold: .05,\r\n //thresholdColumn: 'pop2019',\r\n scale:[ //Orange to Purple CB ['#b35806','#e08214','#fdb863','#fee0b6','#f7f7f7','#d8daeb','#b2abd2','#8073ac','#542788']\r\n //Orange to green CB combo ['#b35806','#e08214','#fdb863','#fee0b6','#f7f7f7', '#d9ef8b','#a6d96a','#66bd63','#1a9850']\r\n {\r\n color:\"#b35806\",\r\n step:[-0.1,true] //pop decrease\r\n },{\r\n color:\"#e08214\",\r\n step:[-0.1,false,-.05,false]\r\n },\r\n {\r\n color:\"#fdb863\",\r\n step:[-0.05,true,-0.001,false]\r\n },\r\n {\r\n color:\"#ededed\", //ebebeb gray\r\n step:[-0.001,true,0.001,true]\r\n },\r\n {\r\n color:\"#d8daeb\",\r\n step:[0.001,false,0.05,false]\r\n },\r\n {\r\n color:\"#b2abd2\",\r\n step:[0.05,true,0.1,false]\r\n },\r\n {\r\n color:\"#8073ac\",\r\n step:[0.1,true,.2,false]\r\n },\r\n {\r\n color:\"#542788\",\r\n step:[.2, true] \r\n \r\n }\r\n // ,\r\n // {\r\n // color:\"#b2abd2\",\r\n // step:[0,false,0.05,false]\r\n // },\r\n // {\r\n // color:\"#8073ac\",\r\n // step:[0.05,true,.1,false]\r\n // },\r\n // {\r\n // color:\"#542788\",\r\n // step:[.1, true] \r\n \r\n // }\r\n //pop increase \r\n ],\r\n getLegendValues: function(scale){\r\n return [\r\n {\r\n color: scale[0]['color'],\r\n label: 'Population fell 10% or more'\r\n },{\r\n color: scale[1]['color'],\r\n label: 'Decreased up to 10%'\r\n },\r\n {\r\n color: scale[2]['color'],\r\n label: 'Decreased up to 5%'\r\n },\r\n {\r\n color: scale[3]['color'],\r\n label: 'No change (+/- 0.1%)'\r\n },\r\n {\r\n color: scale[4]['color'],\r\n label: 'Increased up to 5%'\r\n },\r\n {\r\n color: scale[5]['color'],\r\n label: 'Increased 5% to 10%'\r\n },\r\n {\r\n color: scale[6]['color'],\r\n label: 'Increased 10% to 20%'\r\n },\r\n {\r\n color: scale[7]['color'],\r\n label: 'Population grew by 20% or more'\r\n },\r\n ]\r\n },\r\n }\r\n }\r\n }\r\n}","export default class TractChoroplethStyleConfig {\r\n constructor(){\r\n this.config = {\r\n h: {\r\n title: \"Hispanic CVAP
\",\r\n titleplaintext: \"Hispanic CVAP\",\r\n description: \"Hispanic CVAP\",\r\n scale:[ \r\n {\r\n color:\"#BAE3B3\", \r\n step:[.25, false]\r\n },\r\n {\r\n color:\"#74C477\", \r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#31A353\",\r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#006E2C\",\r\n step:[.75,true, 1, true] \r\n }\r\n ]\r\n },\r\n w: {\r\n title: \"White Non-Hispanic CVAP
\",\r\n titleplaintext: \"White Non-Hispanic CVAP\",\r\n description: \"White Non-Hispanic CVAP\",\r\n scale:[ \r\n {\r\n color:\"#BED8E8\", \r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#6BAFD6\", \r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#3183BD\",\r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#08529C\", \r\n step:[.75,true,1, true] \r\n }\r\n ]\r\n },\r\n b: {\r\n title: \"Black CVAP
\",\r\n titleplaintext: \"Black CVAP\",\r\n description: \"Black CVAP\",\r\n scale:[ \r\n {\r\n color:\"#FCBF86\", \r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#FC8D3D\",\r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#E6560E\", \r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#A63703\", \r\n step:[.75,true,1, true] \r\n }\r\n ]\r\n },\r\n as: {\r\n title: \"Asian CVAP
\",\r\n titleplaintext: \"Asian CVAP\",\r\n description: \"Asian CVAP\",\r\n scale:[ \r\n {\r\n color:\"#FAB4B9\", \r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#F768A1\",\r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#C41B89\", \r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#7A0178\", \r\n step:[.75,true,1, true] \r\n }\r\n ]\r\n },\r\n ai: {\r\n title: \"American Indian / Alaska Native CVAP
\",\r\n titleplaintext: \"American Indian / Alaska Native CVAP\",\r\n description: \"American Indian / Alaska Native CVAP\",\r\n scale:[ \r\n\r\n {\r\n color:\"#cbc9e2\", \r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#9e9ac8\", \r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#756bb1\",\r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#54278f\",\r\n step:[.75,true,1, true] \r\n }\r\n ]\r\n }\r\n ,\r\n n: {\r\n title: \"Native Hawaiian / Other Pacific Islander CVAP
\",\r\n titleplaintext: \"Native Hawaiian / Other Pacific Islander CVAP\",\r\n description: \"Native Hawaiian / Other Pacific Islander CVAP\",\r\n scale:[ \r\n\r\n {\r\n color:\"#C9C9C9\", //f46d43\r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#969696\", //fdae61\r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#636363\", //fee090\r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#363636\", //4575b4\r\n step:[.75,true,1, true] //need to shrink \r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}","export default class TractVotingChoroplethStyleConfig {\r\n constructor(){\r\n this.config = {\r\n h: {\r\n title: \"Hispanic VAP
\",\r\n titleplaintext: \"Hispanic VAP\",\r\n description: \"Hispanic VAP\",\r\n scale:[ \r\n {\r\n color:\"#BAE3B3\", \r\n step:[.25, false]\r\n },\r\n {\r\n color:\"#74C477\", \r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#31A353\",\r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#006E2C\",\r\n step:[.75,true, 1, true] \r\n }\r\n ]\r\n },\r\n w: {\r\n title: \"White Non-Hispanic VAP
\",\r\n titleplaintext: \"White Non-Hispanic VAP\",\r\n description: \"White Non-Hispanic VAP\",\r\n scale:[ \r\n {\r\n color:\"#BED8E8\", \r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#6BAFD6\", \r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#3183BD\",\r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#08529C\", \r\n step:[.75,true,1, true] \r\n }\r\n ]\r\n },\r\n b: {\r\n title: \"Black VAP
\",\r\n titleplaintext: \"Black VAP\",\r\n description: \"Black VAP\",\r\n scale:[ \r\n {\r\n color:\"#FCBF86\", \r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#FC8D3D\",\r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#E6560E\", \r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#A63703\", \r\n step:[.75,true,1, true] \r\n }\r\n ]\r\n },\r\n as: {\r\n title: \"Asian VAP
\",\r\n titleplaintext: \"Asian VAP\",\r\n description: \"Asian VAP\",\r\n scale:[ \r\n {\r\n color:\"#FAB4B9\", \r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#F768A1\",\r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#C41B89\", \r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#7A0178\", \r\n step:[.75,true,1, true] \r\n }\r\n ]\r\n },\r\n ai: {\r\n title: \"American Indian / Alaska Native VAP
\",\r\n titleplaintext: \"American Indian / Alaska Native VAP\",\r\n description: \"American Indian / Alaska Native VAP\",\r\n scale:[ \r\n\r\n {\r\n color:\"#cbc9e2\", \r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#9e9ac8\", \r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#756bb1\",\r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#54278f\",\r\n step:[.75,true,1, true] \r\n }\r\n ]\r\n }\r\n ,\r\n n: {\r\n title: \"Native Hawaiian / Other Pacific Islander VAP
\",\r\n titleplaintext: \"Native Hawaiian / Other Pacific Islander VAP\",\r\n description: \"Native Hawaiian / Other Pacific Islander VAP\",\r\n scale:[ \r\n\r\n {\r\n color:\"#C9C9C9\", //f46d43\r\n step:[.25,false]\r\n },\r\n {\r\n color:\"#969696\", //fdae61\r\n step:[.25,true,.5,false]\r\n },\r\n {\r\n color:\"#636363\", //fee090\r\n step:[.5,true,.75,false]\r\n },\r\n {\r\n color:\"#363636\", //4575b4\r\n step:[.75,true,1, true] //need to shrink \r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}","import Columns from './column-names.json';\r\n\r\nimport CongressData from './congress-demographics.json';\r\nimport StUpperData from './statelegupper-demographics.json';\r\nimport StLowerData from './stateleglower-demographics.json';\r\n\r\n//This is for legislative district (congress,st upper, st lower) data ONLY. See TractDemoArrayManager.js for tract level data manager\r\nexport default class DemoArrayManager {\r\n constructor(config) {\r\n this.loading = true;\r\n this.columns = Columns.array;\r\n this.columnObj = Columns.obj;\r\n this.config = config;\r\n this.loading = false;\r\n }\r\n\r\n ColToIdx(columnName) {\r\n return this.columns.indexOf(columnName);\r\n }\r\n\r\n IdxToCol(idx) {\r\n return this.columns[idx];\r\n }\r\n\r\n GetDistrictData(_geoid, _districtType) {\r\n this.loading = true;\r\n let data;\r\n switch (_districtType) {\r\n case this.config.enums.LEG_BODY.CONGRESS:\r\n data = CongressData;\r\n break;\r\n case this.config.enums.LEG_BODY.ST_UPPER:\r\n data = StUpperData;\r\n break;\r\n case this.config.enums.LEG_BODY.ST_LOWER:\r\n data = StLowerData;\r\n break;\r\n }\r\n if(data.length > 0){\r\n return this.ArrayToObj(data.filter(d => d[0] === _geoid));\r\n }\r\n this.loading = false;\r\n return {}\r\n }\r\n\r\n GetDistrictArr(_geoid, _districtType) {\r\n let data;\r\n switch (_districtType) {\r\n case this.config.enums.LEG_BODY.CONGRESS:\r\n data = CongressData;\r\n break;\r\n case this.config.enums.LEG_BODY.ST_UPPER:\r\n data = StUpperData;\r\n break;\r\n case this.config.enums.LEG_BODY.ST_LOWER:\r\n data = StLowerData;\r\n break;\r\n }\r\n return data.filter(d => d[0] === _geoid);\r\n }\r\n\r\n ArrayToObj(arr) {\r\n let obj = {}\r\n this.columns.forEach((element, idx) => {\r\n if (arr && arr.length > 0) {\r\n obj[element] = arr[0][idx];\r\n }\r\n });\r\n this.loading = false;\r\n return obj;\r\n }\r\n}","import Columns from './tracts-column-names.json';\r\nimport TractData from './tracts-demographics.json';\r\nimport TractVotingData from './tracts-voting-demographics.json';\r\nimport ColumnsVoting from './tracts-column-names.json';\r\n\r\n\r\n//This is for Tract data ONLY. See DemoArrayManager.js for legislative district (congress,st upper, st lower) data\r\nexport default class TractDemoArrayManager {\r\n constructor(config, type) {\r\n this.loading = true;\r\n this.columns = type === 'vap' ? ColumnsVoting.array : Columns.array;\r\n this.columnObj = type === 'vap' ? ColumnsVoting.obj : Columns.obj;\r\n this.config = config;\r\n this.loading = false;\r\n this.data = type === 'vap' ? TractVotingData : TractData;\r\n }\r\n\r\n ColToIdx(columnName) {\r\n return this.columns.indexOf(columnName);\r\n }\r\n\r\n IdxToCol(idx) {\r\n return this.columns[idx];\r\n }\r\n\r\n GetTractData(_geoid) {\r\n this.loading = true;\r\n if (this.data.length > 0) {\r\n return this.ArrayToObj(this.data.filter(d => d[0] === _geoid));\r\n }\r\n this.loading = false;\r\n return {}\r\n }\r\n\r\n GetTractArr(_geoid) {\r\n return this.data.filter(d => d[0] === _geoid);\r\n }\r\n\r\n ArrayToObj(arr) {\r\n let obj = {}\r\n this.columns.forEach((element, idx) => {\r\n if (arr && arr.length > 0) {\r\n obj[element] = arr[0][idx];\r\n }\r\n });\r\n this.loading = false;\r\n return obj;\r\n }\r\n}","export default class VotingPrecinctChoroplethStyleConfig {\r\n constructor(){\r\n this.config = {\r\n votingPrecincts: {\r\n title: \"Overlay: 2020 presidential election vote share
\",\r\n titleplaintext: \"Overlay: 2020 vote share\",\r\n description: \"2020 presidential election data from the New York Times (Blank areas on the map = data not available)\",\r\n scale:[], //Unlike other choropleth layers, this isn't added via data join so there's nothing here. It's set in ChoroplethLayerConfig.js\r\n getLegendValues: function(scale){\r\n\r\n return [\r\n {\r\n color: \"#b2182b\",\r\n label: 'Trump vote share 80% or more'\r\n },\r\n {\r\n color: \"#ef8a62\",\r\n label: 'Trump vote share 60%-80%'\r\n },\r\n {\r\n color: \"#fddbc7\",\r\n label: 'Trump vote share 50%-60%'\r\n },\r\n {\r\n color: \"#d1e5f0\",\r\n label: 'Biden vote share 50%-60%'\r\n },\r\n {\r\n color: \"#67a9cf\",\r\n label: 'Biden vote share 60%-80%'\r\n },\r\n {\r\n color: \"#2166ac\",\r\n label: 'Biden vote share 80% or more'\r\n }\r\n ]\r\n }\r\n },\r\n \r\n }\r\n }\r\n}","import LayersConfig from './LayersConfig';\r\nimport SourceConfig from './SourceConfig.js';\r\nimport LegislativeChoroplethStyleConfig from './LegislativeChoroplethStyleConfig';\r\nimport TractChoroplethStyleConfig from './TractChoroplethStyleConfig';\r\nimport TractVotingChoroplethStyleConfig from './TractVotingChoroplethStyleConfig';\r\nimport DemoArrayManager from '../DemographicData/DemoArrayManager';\r\nimport TractDemoArrayManager from '../DemographicData/TractDemoArrayManager';\r\n\r\nimport MobileDetect from 'mobile-detect';\r\nimport VotingPrecinctChoroplethStyleConfig from './VotingPrecinctChoroplethStyleConfig';\r\n\r\nclass Config {\r\n constructor() {\r\n\r\n this.experimentalFeatures = {\r\n print: true\r\n }\r\n \r\n //api keys and hostnames\r\n this.api = {\r\n hosts: {\r\n nodeHostAddress: process.env.VUE_APP_GIS_URL || 'https://dev.urbanresearchmaps.org/redistrict-api/v1', //process.env.VUE_APP_GIS_URL can be set from command line\r\n propublica: 'https://api.propublica.org'\r\n },\r\n keys: {\r\n ProPublicaAPIKey: 'QplHFUWxgN7DnRxoKBtlFaPQrDRfQPIn9vw8y9pQ',\r\n WillFMapboxKey: 'pk.eyJ1Ijoid2ZpZWxkLWN1bnkiLCJhIjoiY2p6YTJnN2lzMDB1aDNicm9qbzN6d2F5dCJ9.eOQlPpQf5uyOJANVWurDDA',\r\n CUNYMapBoxKey: 'pk.eyJ1IjoiY3VueWN1ciIsImEiOiJfQmNSMF9NIn0.uRgbcFeJbw2xyTUZY8gYeA',\r\n GoogleKey: 'AIzaSyBJvw79y0rr7YrcojtZOx9P7CtKk1pO1u8'\r\n },\r\n }\r\n\r\n //enums used throughout the app\r\n this.enums = {\r\n //Values must match postgres column names!\r\n LEG_BODY: {\r\n CONGRESS: 'congress',\r\n ST_LOWER: 'stateleglower',\r\n ST_UPPER: 'statelegupper'\r\n },\r\n //Each one corresponds to different api url endpoint. Value does NOT need to match with anything.\r\n DATA_SOURCE: {\r\n PROPUB: 'propublica',\r\n POSTGRES: 'postgres',\r\n POSTGRES_TILES: 'postgres-tiles',\r\n POSTGRES_FIPS_LABELS: 'postgres-fips-labels',\r\n MAPBOX: 'mapbox',\r\n ARCGIS_FEATURE_SERVER: 'arcgis-features'\r\n },\r\n //Values must match postgres column names!\r\n MAP_VARIABLES: {\r\n DEVIATION: 'deviation',\r\n POP: 'pop2020',\r\n POPCHG1020: 'popchg1020',\r\n POPCHGPCT1020: 'popchgpct1020'\r\n //POP: 'pop2019',\r\n //POPCHG1019: 'popchg1019',\r\n //POPCHGPCT1019: 'popchgpct1019'\r\n //,\r\n // CVAP: 'distcvap19pct',\r\n // NOTCVAP: 'distnotcvap19pct',\r\n //DEVIATIONCURRENT: 'deviationcurrent'\r\n },\r\n\r\n SIDE_TABS:{\r\n ONE_PERSON: 0,\r\n DEMOGRAPHICS: 1\r\n }\r\n }\r\n\r\n const md = new MobileDetect(window.navigator.userAgent);\r\n const isMobile = typeof (md.mobile() || md.phone()) === 'string';\r\n\r\n //For initializing the map. See layersConfig.js for individual layers\r\n this.map = {\r\n setup: {\r\n container: 'map',\r\n //style:'mapbox://styles/cunycur/ckost94py10iy17pe7hwntbwd',\r\n style:'mapbox://styles/cunycur/ckovkzv8q238x17pgdweoit7f',\r\n center: [-103, 38.5],\r\n zoom: 3.5,\r\n pitch: 0,\r\n hash: 'map',\r\n logoPosition: 'bottom-right',\r\n attributionControl: true,\r\n preserveDrawingBuffer: true,//this.experimentalFeatures.print && !isMobile,\r\n antialias: true // create the gl context with MSAA antialiasing, so custom layers are antialiased\r\n }\r\n }\r\n\r\n this.layersConfig = new LayersConfig(this); \r\n this.sourceConfig = new SourceConfig(this);\r\n\r\n this.demoArrayManager = new DemoArrayManager(this);\r\n this.tractDemoArrayManager = new TractDemoArrayManager(this, 'cvap');\r\n this.tractVotingDemoArrayManager = new TractDemoArrayManager(this, 'vap');\r\n\r\n this.legislativeChoroplethStyleConfig = new LegislativeChoroplethStyleConfig();\r\n this.tractChoroplethStyleConfig = new TractChoroplethStyleConfig();\r\n this.tractVotingChoroplethStyleConfig = new TractVotingChoroplethStyleConfig();\r\n this.votingPrecinctSyleConfig = new VotingPrecinctChoroplethStyleConfig();\r\n \r\n\r\n //Labels for search fields, titles etc. in Vue templates (not for labels on the map itself)\r\n this.displayLabels = {\r\n bodies: {\r\n [this.enums.LEG_BODY.CONGRESS]: '117th Congress',\r\n [this.enums.LEG_BODY.ST_UPPER]: 'Upper State Legislature',\r\n [this.enums.LEG_BODY.ST_LOWER]: 'Lower State Legislature',\r\n },\r\n data: {\r\n // [this.enums.MAP_VARIABLES.DEVIATION]: this.layersConfig.layers.popDeviation.title, //This takes the label name from the layer title\r\n //[this.enums.MAP_VARIABLES.POP]: 'Population'//this.layersConfig.layers.pop2019.title //Can also be set manually (eg. 'Deviation' or 'Total Population')\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nconst _configInstance = new Config();\r\n\r\nconst Enums = _configInstance.enums;\r\nconst API = _configInstance.api;\r\nconst Map = _configInstance.map;\r\nconst Layers = _configInstance.layersConfig.layers;\r\nconst Sources = _configInstance.sourceConfig;\r\nconst LegislativeChoropleth = _configInstance.legislativeChoroplethStyleConfig;\r\nconst TractChoropleth = _configInstance.tractChoroplethStyleConfig;\r\nconst TractVotingChoropleth = _configInstance.tractVotingChoroplethStyleConfig;\r\nconst VotingChoropleth = _configInstance.votingPrecinctSyleConfig;\r\nexport {\r\n _configInstance as Config, Enums, API, Map, Layers, Sources, LegislativeChoropleth as LegislativeChoropleth, TractChoropleth, TractVotingChoropleth,\r\n VotingChoropleth\r\n};"],"sourceRoot":""}