{"version":3,"sources":["state/index.js","utils/tools.js","components/IndicatorPanel/index.js","components/StatesPanel/index.js","components/DataPanel/Overal.js","components/DataPanel/Indicator.js","components/DataPanel/index.js","components/Map/MapOptions.js","components/Map/index.js","components/SelectRegion/index.js","utils/useWindowSize.js","components/Modal/index.js","components/Indicators.js","components/Overall.js","components/Reports.js","components/StatePolicyReportInfo/index.js","components/StatePolicyReports.js","components/AAOption/index.js","components/BarChart/index.js","components/CompositeOption/index.js","components/SortData/index.js","BarChart.js","App.js","index.js"],"names":["initialState","selectedState","selectedIndicator","selectedIndicatorParent","selectedRegion","selectedSort","panelState","selectOpen","aaOption","compositeType","reducer","state","action","type","payload","AppContext","React","createContext","AppProvider","props","useReducer","appState","dispatch","actions","appStateChanged","Provider","value","appActions","children","CapitalCase","val","charAt","toUpperCase","slice","IndiceCapitalCase","cap","replace","match","ConvertToSentenceCase","theString","toLowerCase","c","formatReportUrl","abbr","pr","Intl","PluralRules","suffixes","Map","formatOrdinals","n","rule","select","suffix","get","SelectIndicatorPanel","issues","useContext","length","Object","keys","reduce","a","b","refs","useRef","Array","map","createRef","useEffect","newSortedIssues","entries","sort","Math","min","item","parseInt","number","acc","key","className","filter","metric","ind","i","id","onClick","setSelectedIndicator","ref","current","name","StateSelectPanel","statesData","indicator","st","stateAbbreviations","focus","setTimeout","obj","Overal","stateData","panelPosition","chartIndice","yearData","appDataUrl","div","initial","opacity","x","animate","exit","transition","duration","delay","bounce","percentage","score","class","href","toFixed","ranking","national","higher","tied","count","lower","regional","region","v1","indices_score","attorney_metadata","TA","V","NAAC","NG","SS","ratios_regional","BT","NAPS","BS","state_policy_score","Indicator","clipboard","useClipboard","copiedTimeout","issue","selectedIndicatorName","question","selectedIndicatorResponse","citation","target","readOnly","rows","isSupported","copy","copied","DataPanel","toolTip","headerFormat","pointFormat","valueDecimals","colorAxis","stops","labels","step","align","dataClasses","to","color","data","mapOptions","title","text","plotOptions","allAreas","joinBy","borderColor","dataLabels","style","fontSize","legend","enabled","padding","chart","mapDataUS","animation","height","spacingTop","spacingBottom","spacingLeft","spacingRight","exporting","responsive","rules","condition","maxWidth","colors","tooltip","series","point","events","click","setSelectedState","this","unselect","nullColor","allowPointSelect","states","hover","borderWidth","brightness","cursor","format","useHTML","skipKeyboardNavigation","credits","useState","highchartsData","setHighchartsData","isLoaded","setIsLoaded","myRef","tempChartData","index","undefined","row","options","constructorType","highcharts","Highcharts","require","SelectRegion","setSelectedRegion","backgroundColor","useWindowSize","width","windowSize","setWindowSize","handleResize","window","innerWidth","innerHeight","addEventListener","removeEventListener","Modal","isToggled","setIsToggled","useModal","position","top","left","bottom","right","background","overflow","zIndex","button","y","variants","mobile","MapIndicators","size","setUseModal","backDataButton","backStateButton","chartIndiceName","split","join","filteredIssues","innerval","indices","flat","curr","push","event","keyCode","selectedIndicatorObject","indice","weight","year","selectedIndicatorStateMetrics","subgroup_partial","abbreviation","selectedIndicatorPartial","selectedIndicatorPartialVal","subgroup_value","Number","filteredOveralData","onClickBack","panel","fill","xmlns","d","MapOverall","buttonResetRef","overall","composite","statesList","filtered","filteredStatesData","Reports","defaultState","url","selected","setSelected","reportList","localeCompare","onChange","e","find","handlePrint","print","StatePolicyReportsInfo","viewLinkText","state_code","state_name","selectedStateData","setSelectedStateData","sortedStatesList","stateNameA","stateNameB","SelectedStateDataList","scoreValue","answer","description","SelectedDataGroupedByIssueArea","groupedData","indicators","result","existingCategory","category","info","selectedStateTemp","report_score","report_rank","top_recommendation_title1","top_rec_why_1","top_rec_how_1","top_recommendation_title2","top_rec_why_2","top_rec_how_2","top_recommendation_title3","top_rec_why_3","top_rec_how_3","StatePolicyReports","reportsResource","resource","useQuery","fetch","then","res","json","isLoading","error","message","AAOption","aaOptionVal","setAaOptionVal","checked","htmlFor","BarChart","dataYear","avg","aaBenchMarkScore","chartDataYear","regionalColor","easeFromTo","pos","pow","chartData","chartDataNames","marginRight","scrollablePlotArea","minHeight","allowHTML","chartOptions","bar","fontFamily","yAxis","max","plotLines","dashStyle","label","rotation","fontWeight","sourceHeight","buttons","contextButton","menuItems","subtitle","xAxis","categories","formatter","position3d","display","custom","maxHeight","CompositeOption","compositeFinesAndFeesVal","setcompositeFinesAndFeesVal","compositeConsumerDebtVal","setCompositeConsumerDebtVal","SortData","setSelectedSort","USBarChart","values","attorney_access","totalStates","prev","averageScore","HC_exporting","queryClient","QueryClient","DataProvider","chartComponent","contents","App","client","initialIsOpen","rootIds","rootId","rootElement","document","getElementById","root","getAttribute","chartApp","ReactDOM","render"],"mappings":"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","file":"static/js/main.cc768a0b.chunk.js","sourcesContent":["import React, { useReducer } from \"react\";\n\nconst initialState = {\n selectedState: null,\n selectedIndicator: null,\n selectedIndicatorParent: null,\n selectedRegion: \"all\",\n selectedSort: \"highToLow\",\n panelState: null,\n selectOpen: false,\n aaOption: false,\n compositeType: \"composite\",\n};\n\nexport const APP_STATE_CHANGED = \"APP_STATE_CHANGED\";\nexport const APP_INDICATOR_CHANGED = \"APP_INDICATOR_CHANGED\";\nexport const APP_INDICATOR_PARENT_CHANGED = \"APP_INDICATOR_PARENT_CHANGED\";\nexport const APP_REGION_CHANGED = \"APP_REGION_CHANGED\";\nexport const APP_SORT_CHANGED = \"APP_SORT_CHANGED\";\nexport const APP_PANEL_CHANGED = \"APP_PANEL_CHANGED\";\nexport const APP_SELECT_CHANGED = \"APP_SELECT_CHANGED\";\nexport const APP_AAOPTION_CHANGED = \"APP_AAOPTION_CHANGED\";\nexport const APP_COMPOSITETYPE_CHANGED = \"APP_COMPOSITETYPE_CHANGED\";\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case APP_STATE_CHANGED:\n return {\n ...state,\n selectedState: action.payload,\n };\n case APP_INDICATOR_CHANGED:\n return {\n ...state,\n selectedIndicator: action.payload,\n };\n case APP_INDICATOR_PARENT_CHANGED:\n return {\n ...state,\n selectedIndicatorParent: action.payload,\n };\n case APP_REGION_CHANGED:\n return {\n ...state,\n selectedRegion: action.payload,\n };\n case APP_SORT_CHANGED:\n return {\n ...state,\n selectedSort: action.payload,\n };\n case APP_PANEL_CHANGED:\n return {\n ...state,\n panelState: action.payload,\n };\n case APP_SELECT_CHANGED:\n return {\n ...state,\n selectOpen: action.payload,\n };\n case APP_AAOPTION_CHANGED:\n return {\n ...state,\n aaOption: action.payload,\n };\n case APP_COMPOSITETYPE_CHANGED:\n return {\n ...state,\n compositeType: action.payload,\n };\n default:\n return state;\n }\n // return state;\n};\n\nconst AppContext = React.createContext();\n\nconst AppProvider = (props) => {\n const [appState, dispatch] = useReducer(reducer, initialState);\n\n const actions = {\n appStateChanged: ({\n selectedState,\n selectedIndicator,\n selectedIndicatorParent,\n selectedRegion,\n selectedSort,\n panelState,\n selectOpen,\n aaOption,\n compositeType\n }) => {\n if (selectedState) {\n dispatch({ type: APP_STATE_CHANGED, payload: selectedState });\n } else if (selectedState === null) {\n dispatch({ type: APP_STATE_CHANGED, payload: null });\n }\n\n if (selectedIndicator) {\n dispatch({ type: APP_INDICATOR_CHANGED, payload: selectedIndicator });\n } else if (selectedIndicator === null) {\n dispatch({ type: APP_INDICATOR_CHANGED, payload: null });\n }\n\n if (selectedIndicatorParent) {\n dispatch({\n type: APP_INDICATOR_PARENT_CHANGED,\n payload: selectedIndicatorParent,\n });\n } else if (selectedIndicatorParent === null) {\n dispatch({ type: APP_INDICATOR_PARENT_CHANGED, payload: null });\n }\n\n if (selectedRegion) {\n dispatch({ type: APP_REGION_CHANGED, payload: selectedRegion });\n } else if (selectedRegion === null) {\n dispatch({ type: APP_REGION_CHANGED, payload: null });\n }\n\n if (selectedSort) {\n dispatch({ type: APP_SORT_CHANGED, payload: selectedSort });\n } else if (selectedSort === null) {\n dispatch({ type: APP_SORT_CHANGED, payload: null });\n }\n\n if (panelState) {\n dispatch({ type: APP_PANEL_CHANGED, payload: panelState });\n } else if (panelState === null) {\n dispatch({ type: APP_PANEL_CHANGED, payload: null });\n }\n\n if (selectOpen) {\n dispatch({ type: APP_SELECT_CHANGED, payload: selectOpen });\n } else if (selectOpen === null || selectOpen === false) {\n dispatch({ type: APP_SELECT_CHANGED, payload: false });\n }\n\n if (aaOption) {\n dispatch({ type: APP_AAOPTION_CHANGED, payload: aaOption });\n } else if (aaOption === null || aaOption === false) {\n dispatch({ type: APP_AAOPTION_CHANGED, payload: false });\n }\n\n if (compositeType) {\n dispatch({ type: APP_COMPOSITETYPE_CHANGED, payload: compositeType });\n } else if (compositeType === null || compositeType === false) {\n dispatch({ type: APP_COMPOSITETYPE_CHANGED, payload: false });\n }\n\n },\n };\n\n return (\n \n {props.children}\n \n );\n};\n\nexport { AppProvider, AppContext };\n","export function CapitalCase(val) {\n return val && val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nexport function IndiceCapitalCase(val) {\n const cap = val.replace(\"_\", \" \").replace(/(?:^|\\s)\\S/g, (match) => {\n return match.toUpperCase();\n });\n if (cap === \"Self Representation\") {\n return \"Self-Representation\";\n } else {\n return cap;\n }\n}\n\nexport function ConvertToSentenceCase(theString) {\n const newString = theString\n .toLowerCase()\n .replace(/(^\\s*\\w|[.!?]\\s*\\w)/g, function (c) {\n return c.toUpperCase();\n });\n return newString;\n}\n\nexport const formatReportUrl = (abbr) => (`/state-policy-report/${abbr}`);\n\n\nconst pr = new Intl.PluralRules(\"en-US\", { type: \"ordinal\" });\n\nconst suffixes = new Map([\n [\"one\", \"st\"],\n [\"two\", \"nd\"],\n [\"few\", \"rd\"],\n [\"other\", \"th\"],\n]);\n\nexport const formatOrdinals = (n) => {\n const rule = pr.select(n);\n const suffix = suffixes.get(rule);\n return `${n}${suffix}`;\n};\n","import React, { useContext, useEffect, /* createRef, */ useRef } from \"react\";\nimport { AppContext } from \"../../state\";\nimport { ConvertToSentenceCase } from \"../../utils/tools\";\n\nexport const SelectIndicatorPanel = ({ issues }) => {\n const { appState, appActions } = useContext(AppContext);\n const selectedIndicator = appState.selectedIndicator;\n const panelState = appState.panelState;\n const selectedIndicatorParent = appState.selectedIndicatorParent;\n const length = Object.keys(issues).reduce((a, b) => issues[b].length + a, 0);\n const refs = useRef([...new Array(length)].map(() => React.createRef()));\n useEffect(() => {\n if (issues && selectedIndicator && panelState === \"indicator\") {\n // refs.current[0].current.focus();\n // refs.current[2].current.focus();\n // refs.current[0].current.focus();\n // refs[\"228\"].focus();\n // refs.current[\"228\"].current.focus();\n }\n }, [issues, length, panelState, selectedIndicator, selectedIndicatorParent]);\n\n const setSelectedIndicator = (id, i) => {\n appActions.appStateChanged({\n selectedIndicator: id,\n selectedIndicatorParent: i,\n selectedState: null,\n panelState: \"state\",\n });\n };\n\n // Sorting the issues based on the comparison of all the indicators numbers\n const sortedIssues = Object.entries(issues).sort(([, a], [, b]) => {\n const numberA = Math.min(...a.map((item) => parseInt(item.number)));\n const numberB = Math.min(...b.map((item) => parseInt(item.number)));\n return numberA - numberB;\n });\n\n // Creating the new sorted object\n const newSortedIssues = sortedIssues.reduce((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n\n return (\n
\n \n
\n );\n};\n","import React, { useContext, useEffect, useRef } from \"react\";\nimport { AppContext } from \"../../state\";\nimport { CapitalCase } from \"../../utils/tools\";\n\nexport function StateSelectPanel({ statesData, indicator }) {\n const { appState, appActions } = useContext(AppContext);\n const selectedState = appState.selectedState;\n const panelState = appState.panelState;\n const refs = useRef(\n [...new Array(statesData.length)].map(() => React.createRef())\n );\n\n useEffect(() => {\n const st =\n statesData &&\n selectedState &&\n Object.entries(statesData).filter(\n ([key, val]) => val.stateAbbreviations === selectedState\n )[0][0];\n if (statesData && selectedState && st && panelState === \"state\") {\n refs.current[st].current.focus();\n }\n if (statesData && !selectedState && indicator && panelState === \"state\") {\n setTimeout(function () {\n refs.current[0].current.focus();\n }, 100);\n }\n }, [refs, panelState, selectedState, statesData, indicator]);\n\n const setSelectedState = (state) => {\n appActions.appStateChanged({\n selectedState: state,\n selectOpen: false,\n panelState: \"data\",\n });\n };\n\n return (\n
\n \n
\n );\n}\n","import React from \"react\";\nimport { CapitalCase, IndiceCapitalCase, formatReportUrl } from \"../../utils/tools\";\nimport { motion, AnimatePresence } from \"framer-motion\";\n\nexport function Overal({ stateData, panelPosition, chartIndice, yearData }) {\n const appDataUrl = formatReportUrl(stateData.abbr);\n return (\n \n {panelPosition === \"data\" && (\n \n {(stateData?.percentage || stateData?.score) && (\n <>\n {chartIndice === 'fines_and_fees' && (\n
\n

{stateData.state} Policy Report

\n

Download Report

\n
\n )}\n

Overall Score

\n

\n {stateData?.percentage?.toFixed(2) ||\n stateData?.score?.toFixed(2)}{\" \"}\n out of 100\n

\n \n )}\n {stateData?.ranking?.national?.higher ? (\n <>\n

National Ranking

\n
\n

\n {stateData?.ranking?.national?.higher}\n

\n

states scored higher

\n
\n \n ) : (\n \"\"\n )}\n {stateData?.ranking?.national?.tied?.count > 0 && (\n
\n

\n {\" \"}\n {stateData?.ranking?.national?.tied?.count}\n

\n

states tied

\n
\n )}\n {(stateData?.ranking?.national?.lower ||\n stateData?.ranking?.national?.lower === 0) && (\n <>\n
\n

\n {\" \"}\n {stateData?.ranking?.national?.lower}\n

\n

states scored lower

\n
\n\n

\n *Includes District of Columbia and Puerto Rico\n

\n \n )}\n {(stateData?.ranking?.regional ||\n stateData?.ranking?.regional === 0) && (\n <>\n

\n {CapitalCase(stateData?.region)} Region Ranking\n

\n

Out of 100

\n \n )}\n {stateData?.ranking?.regional && (\n
    \n {Object.entries(stateData[\"ranking\"][\"regional\"])\n .sort(([, v1], [, v2]) => +v2 - +v1)\n .map(([key, val]) => (\n
  • \n
    \n

    {key}

    \n

    {val.toFixed(2)}

    \n
    \n
  • \n ))}\n
\n )}\n {stateData?.indices_score && (\n <>\n

\n Scores in Specific Research Areas\n

\n
    \n {Object.entries(stateData[\"indices_score\"])\n .sort(([, v1], [, v2]) => +v2 - +v1)\n .map(([key, val]) => (\n
  • \n
    \n

    \n {IndiceCapitalCase(key)}\n

    \n

    {val.toFixed(2)}

    \n
    \n
  • \n ))}\n
\n \n )}\n\n {/* Attorney Access 2016 & 2020 */}\n {chartIndice === \"attorney_access\" && (\n <>\n

\n Key Civil Legal Aid Attorney Access Count Findings\n

\n {(stateData?.attorney_metadata?.TA ||\n stateData?.attorney_metadata?.TA === 0) && (\n

\n {stateData?.state} count -{\" \"}\n {stateData?.attorney_metadata?.TA} total\n legal aid attorneys\n

\n )}\n\n {(stateData?.attorney_metadata?.V ||\n stateData?.attorney_metadata?.V === 0) && (\n

\n {stateData?.state} score, count -{\" \"}\n {stateData?.attorney_metadata?.V} civil legal\n aid attorneys per 10,000 poor\n

\n )}\n\n {(stateData?.attorney_metadata?.NAAC ||\n stateData?.attorney_metadata?.NAAC === 0) && (\n

\n National average score, count -{\" \"}\n {stateData?.attorney_metadata?.NAAC} civil\n legal aid attorneys per 10,000 poor\n

\n )}\n\n {(stateData?.attorney_metadata?.NG ||\n stateData?.attorney_metadata?.NG === 0) && (\n

\n National benchmark, count -{\" \"}\n {stateData?.attorney_metadata?.NG} civil\n legal aid attorneys per 10,000 poor\n

\n )}\n\n {(stateData?.attorney_metadata?.SS ||\n stateData?.attorney_metadata?.SS === 0) && (\n

\n {stateData?.state} civil legal aid attorney count score, on\n 100 pt scale (10 attorney per 10,000 poor earns 100%) -{\" \"}\n {stateData?.attorney_metadata?.SS.toFixed(2)}\n

\n )}\n\n {/*[populate with data from other states in the same region]*/}\n {stateData?.ratios_regional && stateData?.attorney_metadata?.V && (\n <>\n

\n {CapitalCase(stateData?.region)} Region, Legal Aid Attorneys Per 10,000 Poor\n

\n
    \n {Object.entries(stateData[\"ratios_regional\"])\n .sort(([, v1], [, v2]) => +v2 - +v1)\n .map(([key, val]) => (\n
  • \n
    \n

    {key}

    \n

    {val}

    \n
    \n
  • \n ))}\n
\n \n )}\n\n {/* Attorney Access - JUST 2020 */}\n {((stateData?.attorney_metadata?.BT ||\n stateData?.attorney_metadata?.NAPS ||\n stateData?.attorney_metadata?.BS) && yearData !== \"2016\") && (\n

\n Key Civil Legal Aid Attorney Access Policy Findings\n

\n )}\n\n {((stateData?.attorney_metadata?.BT ||\n stateData?.attorney_metadata?.BT === 0) && yearData !== \"2016\") && (\n

\n {stateData?.state} policy score -{\" \"}\n {stateData?.attorney_metadata?.BT}\n

\n )}\n\n {((stateData?.attorney_metadata?.NAPS ||\n stateData?.attorney_metadata?.NAPS === 0) && yearData !== \"2016\") && (\n

\n National average score, policy -{\" \"}\n {stateData?.attorney_metadata?.NAPS}\n

\n )}\n\n {yearData !== \"2016\" && (\n

\n National goal score, policy 100% = 141 points\n

)}\n\n {((stateData?.attorney_metadata?.BS ||\n stateData?.attorney_metadata?.BS === 0) && yearData !== \"2016\") && (\n

\n {stateData?.state} score, policy, on 100 pt scale -{\" \"}\n {stateData?.attorney_metadata?.BS.toFixed(2)}\n

\n )}\n\n\n\n\n {stateData?.state_policy_score && (\n <>\n

\n {CapitalCase(stateData?.region)} Region, Civil Legal Aid\n Attorney Access Policy Scores\n

\n
    \n {Object.entries(stateData[\"state_policy_score\"])\n .sort(([, v1], [, v2]) => +v2 - +v1)\n .map(([key, val]) => (\n
  • \n
    \n

    {key}

    \n

    {val}

    \n
    \n
  • \n ))}\n
\n \n )}\n \n )}\n \n )}\n
\n );\n}\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"../../state\";\nimport { ConvertToSentenceCase } from \"../../utils/tools\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { useClipboard } from \"use-clipboard-copy\";\n\nexport function Indicator({ stateData, chartIndice, panelPosition }) {\n const { appState } = useContext(AppContext);\n const panelState = appState.panelState;\n\n const clipboard = useClipboard({\n copiedTimeout: 1000,\n });\n\n return (\n \n {panelState === \"data\" && (\n \n

{stateData?.issue}

\n\n

\n {ConvertToSentenceCase(stateData?.selectedIndicatorName)}\n

\n\n {stateData?.question && (\n

\n {chartIndice !== \"fines_and_fees\" && \n chartIndice !== \"consumer_debt\" && (\n Does the state:\n )}\n {chartIndice === \"consumer_debt\" && (\n Question:\n )}\n {\" \"}\n {stateData?.question}\n

\n )}\n\n

\n Finding: {stateData?.selectedIndicatorResponse}\n {\n chartIndice !== \"fines_and_fees\" && \n chartIndice !== \"consumer_debt\" &&\n stateData?.selectedIndicatorResponse === \"No\" &&\n stateData.citation && <> *}\n

\n\n {stateData?.citation && (\n
\n

Citations:

\n \n {clipboard.isSupported() && (\n \n {clipboard.copied ? \"Copied\" : \"Copy to the clipboard\"}\n \n )}\n
\n )}\n \n )}\n
\n );\n}\n","import React from \"react\";\n\nimport { Overal } from \"./Overal\";\nimport { Indicator } from \"./Indicator\";\nexport const DataPanel = ({ statesData, type, panelPosition, chartIndice, yearData }) => {\n\n return (\n
\n {type === \"overall\" && statesData && (\n \n )}\n {type === \"indicator\" && (\n \n )}\n
\n );\n};\n","export const mapTitle = (type) => {\n if (type === \"indicator\") {\n return \"\"; // Indicator by State\n } else if (type === \"overall\") {\n return \"\"; // Access for People Without Lawers Map\n } else {\n return \"\";\n }\n};\n\nexport const toolTip = (type) =>\n type === \"overall\"\n ? {\n headerFormat: \"\",\n pointFormat: \"{point.name}
{point.value} out of 100\",\n valueDecimals: 2,\n }\n : {};\n\nexport const colorAxis = (type) =>\n type === \"overall\"\n ? [\n {\n stops: [\n [0, \"#F4E7D4\"],\n [0.125, \"#EBD3B0\"],\n [0.25, \"#E1BF8D\"],\n [0.375, \"#D5A35A\"],\n [0.5, \"#C8882A\"],\n [0.625, \"#A86E18\"],\n [0.75, \"#945D0E\"],\n [1, \"#794B08\"],\n // [0, \"#EEE7DE\"],\n // [0.125, \"#D5CFC7\"],\n // [0.25, \"#BCB6B0\"],\n // [0.375, \"#9B9791\"],\n // [0.5, \"#64615E\"],\n // [0.625, \"#4B4946\"],\n // [0.75, \"#32312F\"],\n // [1, \"#000000\"],\n ],\n labels: {\n step: 4,\n align: \"center\",\n // formatter: function () {\n // return this.value <= 0 ? \"Low\" : \"High\";\n // },\n },\n },\n ]\n : [\n {\n dataClasses: [\n {\n to: \"Yes\",\n color: \"#C8882A\",\n name: \"Yes\",\n },\n {\n to: \"Partial\",\n color: \"#C3A983\",\n name: \"Partial\",\n },\n {\n to: \"No\",\n color: \"#BFBFBF\",\n name: \"No\",\n },\n ],\n },\n ];\n","import React, { useEffect, useState, useContext } from \"react\";\nimport { AppContext } from \"../../state\";\nimport mapDataUS from \"../../api/us-all-territories.geo.json\";\nimport { mapTitle, toolTip, colorAxis } from \"./MapOptions\";\nimport Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\n\nrequire(\"highcharts/modules/map\")(Highcharts);\n\nexport function Map({ data, type }) {\n const statesData = data;\n const { appActions } = useContext(AppContext);\n\n let mapOptions = {\n title: { text: mapTitle(type) },\n plotOptions: {\n map: {\n allAreas: true,\n joinBy: [\"postal-code\", \"code\"],\n // borderColor: \"#817E79\",\n borderColor: \"#e0e0e0\",\n dataLabels: {\n style: { fontSize: \"10px\" },\n },\n },\n },\n legend: {\n enabled: true,\n padding: 20,\n },\n chart: {\n map: mapDataUS,\n // backgroundColor: \"#fff\",\n animation: true,\n height: 600,\n spacingTop: 0,\n spacingBottom: 0,\n spacingLeft: 0,\n spacingRight: 0,\n exporting: {\n enabled: false\n }\n },\n exporting: {\n enabled: false\n },\n responsive: {\n rules: [\n {\n condition: {\n maxWidth: 600,\n },\n },\n ],\n },\n colorAxis: colorAxis(type),\n colors: [\n \"#000000\",\n \"#32312F\",\n \"#4B4946\",\n \"#64615E\",\n \"#9B9791\",\n \"#BCB6B0\",\n \"#D5CFC7\",\n \"#EEE7DE\",\n ],\n tooltip: toolTip(type),\n series: [\n {\n point: {\n events: {\n select: function () {},\n click: function () {\n setSelectedState(this[\"postal-code\"]);\n },\n unselect: function () {},\n },\n },\n nullColor: \"#fff\",\n allowPointSelect: true,\n states: {\n hover: {\n // borderColor: \"#C8882A\",\n borderColor: \"#000\",\n borderWidth: 1,\n brightness: 0,\n },\n select: {\n // borderColor: \"#C8882A\",\n borderColor: \"#000\",\n borderWidth: 1,\n enabled: true,\n brightness: 0,\n },\n },\n name: mapTitle(type),\n joinBy: \"postal-code\",\n cursor: \"pointer\",\n dataLabels: {\n enabled: false,\n color: \"#FFFFFF\",\n format: \"{point.name}\",\n useHTML: true,\n },\n skipKeyboardNavigation: true,\n data: [],\n },\n ],\n credits: { enabled: false },\n };\n const [highchartsData, setHighchartsData] = useState(mapOptions);\n const [isLoaded, setIsLoaded] = useState(false);\n\n const setSelectedState = (state) => {\n appActions.appStateChanged({ selectedState: state, panelState: \"data\" });\n };\n const myRef = React.useRef(this?.current?.chart);\n\n const overallScore = (percentage, score) => {\n if (percentage !== undefined) {\n return percentage;\n } else {\n return score;\n }\n };\n\n useEffect(() => {\n const tempChartData = { ...highchartsData };\n tempChartData[\"series\"][0][\"data\"] = Object.keys(statesData).map(\n (key, index) => {\n return {\n value:\n type === \"overall\"\n ? overallScore(statesData[key].percentage, statesData[key].score)\n : statesData[key].selectedIndicatorResponse,\n name: statesData[key].state,\n \"postal-code\":\n type === \"overall\" ? key : statesData[key].stateAbbreviations,\n row: index,\n type:\n type === \"overall\"\n ? statesData[key].percentage || 0 // statesData[key].score\n : statesData[key].selectedIndicatorResponse,\n };\n }\n );\n setHighchartsData(tempChartData);\n setIsLoaded(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [statesData]);\n return (\n <>\n {data && highchartsData && isLoaded ? (\n \n ) : (\n
\n

To begin, choose a benchmark

\n
\n )}\n \n );\n}\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"../../state\";\n\nexport const SelectRegion = () => {\n const { appState, appActions } = useContext(AppContext);\n const selectedRegion = appState.selectedRegion;\n const selectedSort = appState.selectedSort;\n const aaOption = appState.aaOption;\n\n const setSelectedRegion = (region) => {\n appActions.appStateChanged({\n selectedState: null,\n // selectedIndicator: null,\n selectedIndicatorParent: null,\n selectedRegion: region || \"all\",\n selectedSort: selectedSort || \"highToLow\",\n panelState: 'state',\n selectOpen: false,\n aaOption: aaOption || false\n });\n };\n const regions = [\n { name: \"All Regions\", value: \"all\", color: \"#000000\" },\n { name: \"Midwest\", value: \"midwest\", color: \"#794B08\" },\n { name: \"Northeast\", value: \"northeast\", color: \"#A86E18\" },\n { name: \"South\", value: \"south\", color: \"#D29C4E\" },\n { name: \"West\", value: \"west\", color: \"#E8CDA5\" },\n ];\n\n return (\n
\n {regions.map((region) => (\n setSelectedRegion(region.value)}\n className={`select-a-state-panel--btn buttonReset ${\n selectedRegion === region.value && \"active\"\n }`}\n >\n {region.name}\n \n \n ))}\n
\n );\n};\n","import { useState, useEffect } from \"react\";\n\nexport function useWindowSize() {\n // Initialize state with undefined width/height so server and client renders match\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\n const [windowSize, setWindowSize] = useState({\n width: undefined,\n height: undefined,\n });\n\n useEffect(() => {\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n // Add event listener\n window.addEventListener(\"resize\", handleResize);\n\n // Call handler right away so state gets updated with initial window size\n handleResize();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []); // Empty array ensures that effect is only run on mount\n\n return windowSize;\n}\n","import React, { useContext } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { AppContext } from \"../../state\";\n\nexport function Modal({ isToggled, setIsToggled, children, useModal }) {\n const { appActions } = useContext(AppContext);\n function closeBtn() {\n appActions.appStateChanged({\n selectedState: null,\n selectedIndicator: null,\n selectedIndicatorParent: null,\n selectedRegion: \"all\",\n panelState: null,\n selectOpen: false,\n });\n setIsToggled(false);\n }\n\n return (\n <>\n {useModal ? (\n \n {isToggled && (\n \n closeBtn()}\n >\n Close\n \n <>{children}\n \n )}\n \n ) : (\n <> {children} \n )}\n \n );\n}\n","import React, { useState, useContext, useEffect, createRef } from \"react\";\nimport { IndiceCapitalCase } from \"../utils/tools\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { AppContext } from \"../state\";\nimport { SelectIndicatorPanel } from \"./IndicatorPanel\";\nimport { StateSelectPanel } from \"./StatesPanel\";\nimport { DataPanel } from \"./DataPanel\";\nimport { Map } from \"./Map\";\nimport { SelectRegion } from \"./SelectRegion\";\nimport { useWindowSize } from \"../utils/useWindowSize\";\nimport { Modal } from \"./Modal\";\n\nconst variants = {\n indicator: {\n x: 0,\n y: 0,\n opacity: 1,\n },\n state: {\n x: \"-440px\",\n y: 0,\n opacity: 1,\n },\n data: {\n x: \"-880px\",\n y: 0,\n opacity: 1,\n },\n};\n\nconst mobile = {\n indicator: {\n x: 0,\n y: 0,\n opacity: 1,\n },\n state: {\n x: \"-100%\",\n y: 0,\n opacity: 1,\n },\n data: {\n x: \"-200%\",\n y: 0,\n opacity: 1,\n },\n};\n\nexport default function MapIndicators({ data, chartIndice }) {\n const size = useWindowSize();\n const [isToggled, setIsToggled] = useState(false);\n const [useModal, setUseModal] = useState(true);\n const backDataButton = createRef();\n const backStateButton = createRef();\n const { appState, appActions } = useContext(AppContext);\n const selectedIndicator = appState.selectedIndicator;\n const panelState = appState.panelState;\n const selectedRegion = appState.selectedRegion;\n const selectedState = appState.selectedState;\n const issues = data?.issues;\n const chartIndiceName = IndiceCapitalCase(\n chartIndice.split(\"_\").join(\" \")\n ).replace(\"And\", \"and\");\n const indicatorResponseFilter = (val, subgroup_partial) => {\n if (subgroup_partial === true) {\n return \"Partial\";\n } else if (val === 1) {\n return \"Yes\";\n } else if (val === 0) {\n return \"No\";\n } else {\n return null;\n }\n };\n const filteredIssues = Object.entries(issues)\n .map(([key, val]) =>\n val.filter((innerval) => innerval.indices.name === chartIndiceName)\n )\n .flat(2)\n .reduce((issue, curr) => {\n if (!issue[curr.issues.name]) issue[curr.issues.name] = [];\n issue[curr.issues.name].push(curr);\n return issue;\n }, {});\n\n useEffect(() => {\n if (panelState === null) {\n appActions.appStateChanged({ panelState: \"indicator\" });\n }\n if (panelState === \"state\") {\n backStateButton?.current && backStateButton.current.focus();\n }\n if (panelState === \"data\") {\n backDataButton?.current && backDataButton.current.focus();\n }\n const handleEsc = (event) => {\n if (event.keyCode === 27) {\n if (panelState === \"state\") {\n appActions.appStateChanged({ panelState: \"indicator\" });\n }\n if (panelState === \"data\") {\n appActions.appStateChanged({ panelState: \"state\" });\n }\n }\n };\n window.addEventListener(\"keydown\", handleEsc);\n size.width <= 991 ? setUseModal(true) : setUseModal(false);\n }, [appActions, backDataButton, backStateButton, panelState, size]);\n const selectedIndicatorObject = Object.keys(data.indicator)\n .filter((key) => key === selectedIndicator)\n .reduce((obj, key) => {\n obj[key] = data.indicator[key];\n return {\n id: obj[selectedIndicator][\"id\"],\n indice: obj[selectedIndicator][\"indices\"][\"name\"],\n issue: obj[selectedIndicator][\"issues\"][\"name\"],\n name: obj[selectedIndicator][\"name\"],\n question: obj[selectedIndicator][\"question\"],\n number: parseInt(obj[selectedIndicator][\"number\"]),\n weight: parseInt(obj[selectedIndicator][\"weight\"]),\n year: parseInt(obj[selectedIndicator][\"year\"]),\n metric: obj[selectedIndicator][\"metric\"],\n };\n }, {});\n\n const selectedIndicatorStateMetrics =\n selectedIndicatorObject?.metric?.length > 1 &&\n selectedIndicatorObject.metric\n .map((metric) => ({\n stateAbbreviations: metric.state?.abbreviation,\n state: metric.state?.name,\n region: metric.state?.region,\n selectedIndicatorResponse: indicatorResponseFilter(\n parseInt(metric.value),\n metric.subgroup_partial\n ),\n selectedIndicatorPartial: metric.subgroup_partial,\n selectedIndicatorPartialVal: metric.subgroup_value,\n number: parseInt(selectedIndicatorObject.number),\n question: selectedIndicatorObject.question,\n selectedIndicatorName: selectedIndicatorObject.name,\n issue: selectedIndicatorObject.issue,\n citation: metric.citation,\n })).sort((a, b) => a.state < b.state ? - 1 : Number(a.state > b.state))\n .filter((value) => {\n if (selectedRegion !== \"all\") {\n return value.region === selectedRegion;\n } else {\n return value;\n }\n });\n\n const filteredOveralData = Object.entries(selectedIndicatorStateMetrics)\n .filter(([key, val]) => val.stateAbbreviations === selectedState)\n .flat(1)[1];\n\n function onClickBack(panel) {\n appActions.appStateChanged({ panelState: panel });\n }\n return (\n <>\n
\n setIsToggled(true)}\n >\n Choose A Benchmark\n \n
\n
\n \n
\n \n 992 ? variants : mobile}\n animate={panelState}\n transition={{\n type: \"spring\",\n duration: 0.3,\n bounce: 0.25,\n delay: 0,\n }}\n initial={{\n opacity: 0,\n }}\n >\n {/* Indicators Panel */}\n
\n
\n

Choose A Benchmark

\n
\n
\n
\n \n
\n
\n
\n\n {/* States Panel */}\n
\n
\n onClickBack(\"indicator\")}\n >\n \n \n \n {\" \"} back\n \n

Choose a State

\n
\n
\n
\n {selectedIndicatorStateMetrics && (\n \n )}\n
\n
\n
\n\n {/* Data Panel */}\n
\n
\n onClickBack(\"state\")}\n ref={backDataButton}\n >\n \n \n \n {\" \"} back\n \n \n {panelState === \"data\" && (\n \n {filteredOveralData && (\n

\n {filteredOveralData && filteredOveralData.state}\n

\n )}\n \n )}\n
\n
\n
\n
\n {filteredOveralData && (\n \n )}\n
\n
\n
\n \n
\n
\n \n
\n {selectedIndicatorStateMetrics && selectedIndicator && (\n \n )}\n \n
\n
\n \n );\n}\n","import React, { useState, useContext, useEffect, useRef } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { AppContext } from \"../state\";\nimport { StateSelectPanel } from \"./StatesPanel\";\nimport { DataPanel } from \"./DataPanel\";\nimport { Map } from \"./Map\";\nimport { SelectRegion } from \"./SelectRegion\";\nimport { useWindowSize } from \"../utils/useWindowSize\";\nimport { Modal } from \"./Modal\";\n\nconst variants = {\n indicator: {\n x: 0,\n y: 0,\n opacity: 1,\n },\n state: {\n x: \"-440px\",\n y: 0,\n opacity: 1,\n },\n data: {\n x: \"-880px\",\n y: 0,\n opacity: 1,\n },\n};\n\nconst mobile = {\n indicator: {\n x: 0,\n y: 0,\n opacity: 1,\n },\n state: {\n x: \"-100%\",\n y: 0,\n opacity: 1,\n },\n data: {\n x: \"-200%\",\n y: 0,\n opacity: 1,\n },\n};\n\nexport default function MapOverall({ data, chartIndice }) {\n\n const size = useWindowSize();\n const [isToggled, setIsToggled] = useState(false);\n const [useModal, setUseModal] = useState(true);\n\n const buttonResetRef = useRef();\n const yearData = data?.overall?.year;\n const statesData =\n chartIndice === \"justice_index\"\n ? data.overall?.composite\n : data.overall?.states?.[`${chartIndice}`];\n const { appState, appActions } = useContext(AppContext);\n const selectedRegion = appState.selectedRegion;\n const selectedState = appState.selectedState;\n const panelState = appState.panelState;\n\n const statesList = Object.entries(statesData)\n .map(([key, val]) => {\n return {\n stateAbbreviations: key,\n state: val.state,\n percentage: val.percentage,\n region: val.region,\n selectedIndicatorResponse: val.value,\n };\n }).sort((a, b) => a.state < b.state ? - 1 : Number(a.state > b.state))\n .filter((value) => {\n if (selectedRegion !== \"all\") {\n return value.region === selectedRegion;\n } else {\n return value;\n }\n });\n const filtered =\n statesData &&\n Object.entries(statesData).reduce((filteredStatesData, value) => {\n const [key, val] = value;\n if (selectedRegion === \"all\" || val.region === selectedRegion) {\n filteredStatesData[key] = val;\n }\n return filteredStatesData;\n }, {});\n const filteredOveralData = Object.keys(statesData)\n .filter((key) => key === selectedState)\n .reduce((obj, key) => {\n obj[key] = statesData[key];\n obj[key].abbr = key;\n return obj;\n }, {});\n useEffect(() => {\n if (panelState === null) {\n appActions.appStateChanged({ panelState: \"state\" });\n }\n if (panelState === \"state\") {\n // setInput1Focus()\n // input1Ref.current.focus();\n }\n if (panelState === \"data\") {\n buttonResetRef?.current && buttonResetRef.current.focus();\n }\n\n size.width <= 991 ? setUseModal(true) : setUseModal(false);\n }, [appActions, panelState, size]);\n\n function onClickBack(panel) {\n appActions.appStateChanged({ panelState: panel });\n }\n\n return (\n <>\n
\n setIsToggled(true)}\n >\n Choose a State\n \n
\n
\n \n
\n \n 992 ? variants : mobile}\n animate={panelState}\n transition={{\n type: \"spring\",\n duration: 0.3,\n bounce: 0.25,\n delay: 0,\n }}\n initial={{\n opacity: 0,\n }}\n >\n {/* States Panel */}\n
\n
\n

Choose a State

\n
\n
\n
\n {statesData && (\n \n )}\n
\n
\n
\n\n {/* Data Panel */}\n
\n
\n onClickBack(\"state\")}\n ref={buttonResetRef}\n >\n \n \n \n {\" \"} back\n \n \n {panelState === \"data\" && (\n \n {filteredOveralData &&\n filteredOveralData[selectedState] && (\n

\n {filteredOveralData[selectedState].state}\n

\n )}\n \n )}\n
\n
\n
\n
\n {filteredOveralData &&\n filteredOveralData[selectedState] && (\n \n )}\n
\n
\n
\n \n
\n
\n \n\n
\n \n \n
\n
\n \n );\n}\n","import React, { useState } from 'react';\nimport { formatReportUrl } from '../utils/tools';\n\nconst Reports = ({ data, chartIndice }) => {\n\n const defaultState = { abbr: '', state: '', url: '' };\n const [selected, setSelected] = useState(defaultState);\n const states = data?.overall?.states?.[chartIndice];\n if (!states) {\n return

State data not loaded

\n }\n const reportList = Object.entries(states).map(([abbr, stateData]) => {\n const { state, region } = stateData;\n return { abbr, region, state, url: formatReportUrl(abbr) };\n }).sort((a, b) => a.state.localeCompare(b.state));\n\n const handleSelected = (e) => {\n const selectedState = reportList.find((stateData) => stateData.abbr === e.target.value) || defaultState;\n setSelected(selectedState);\n }\n return (\n
\n
\n \n {selected.url\n ? Download\n : Download\n }\n
\n
    \n {reportList.map(({ region, state, url}) => (\n
  • \n {state}\n
  • \n ))}\n
\n
\n )\n}\n\nexport default Reports;\n","import React, { useState } from 'react';\nimport { formatOrdinals } from '../../utils/tools';\n\nfunction handlePrint() {\n window.print()\n}\n\nexport function StatePolicyReportsInfo({ data, viewLinkText }) {\n const defaultState = { state_code: '', state_name: '' };\n const [selectedState, setSelectedState] = useState(defaultState);\n const [selectedStateData, setSelectedStateData] = useState({});\n\n if (!data) {\n return

State policy reports not loaded

\n }\n\n const statesList = Object.entries(data).map(([state_code, stateData]) => {\n const { state_name } = stateData;\n return { state_code, state_name };\n });\n\n // Sorting the array by the state_name property\n const sortedStatesList = statesList && statesList.sort((a, b) => {\n // Convert state_name to lowercase for case-insensitive sorting\n const stateNameA = a.state_name.toLowerCase();\n const stateNameB = b.state_name.toLowerCase();\n\n if (stateNameA < stateNameB) {\n return -1;\n }\n if (stateNameA > stateNameB) {\n return 1;\n }\n // stateNameA must be equal to stateNameB\n return 0;\n });\n\n const handleSelected = (e) => {\n if (e.target.value) {\n const selectedStateTemp = statesList.find((stateData) => stateData.state_code === e.target.value);\n setSelectedStateData(data[e.target.value]);\n setSelectedState(selectedStateTemp);\n } else {\n setSelectedStateData({});\n setSelectedState(defaultState);\n }\n }\n\n const SelectedStateDataList = ({ item }) => {\n const { name, description, weight, value, number, citation } = item;\n let scoreValue;\n let answer;\n\n if (!value) {\n scoreValue = `0/${weight}`;\n answer = \"No\";\n } else {\n scoreValue = `${weight}/${weight}`;\n answer = \"Yes\";\n }\n\n return (\n
  • \n
    \n
    \n

    {number} - {name}

    \n
    \n
    \n

    Score: {scoreValue}

    \n
    \n
    \n
    \n
    \n

    {description}

    \n

    {citation}

    \n
    \n
    \n

    {answer}

    \n
    \n
    \n
  • \n );\n };\n\n const SelectedDataGroupedByIssueArea = ({ indicators }) => {\n const sortedData = indicators.sort((a, b) => ( a.number - b.number));\n\n const groupedData = sortedData.reduce((result, current) => {\n const existingCategory = result.find((item) => item.category === current.category);\n\n if (existingCategory) {\n existingCategory.info.push({ name: current.name, description: current.description, weight: current.weight, value: current.value, number: current.number, citation: current.citation });\n } else {\n result.push({\n category: current.category,\n info: [{ name: current.name, description: current.description, weight: current.weight, value: current.value, number: current.number, citation: current.citation }],\n });\n }\n return result;\n }, []);\n\n return (\n \n );\n };\n\n return (\n
    \n
    \n \n
    \n {Object.keys(selectedStateData).length ?\n
    \n
    \n
    \n

    Top Recommendations for Reform in {selectedState.state_name}

    \n \n
    \n
    \n
    \n {selectedState.state_name}'s Score:\n {selectedStateData.report_score}\n
    \n
    \n {selectedState.state_name}'s National Rank:\n {formatOrdinals(selectedStateData.report_rank)}\n
    \n
    \n
    \n

    Consumer debt lawsuits dominate civil court dockets across the country. In an overwhelming number of cases—more than 70% in many places—the people sued do not respond or defend themselves. As a result, courts often enter default judgments without determining whether the defendant even knows about it, it is timely, or has merit. In turn, people face high fees and interest, onerous payment plans, seizure of wages and possessions, and potential imprisonment. States across the country have established laws and practices aimed at reducing unjust lawsuits and producing fairer outcomes. To support states in their respective efforts, the National Center for Access to Justice in 2024 created the Consumer Debt Litigation Index in consultation with a panel of experts. The Index ranks the states on their progress in adopting 24 best policies (“benchmarks”) for fairness. See our Top Recommendations and Complete Findings, below.

    \n
    \n
    \n
    \n {selectedStateData.top_recommendation_title1}\n
    \n
    {selectedStateData.top_rec_why_1}
    \n
    {selectedStateData.top_rec_how_1}
    \n
    \n
    \n
    \n {selectedStateData.top_recommendation_title2}\n
    \n
    {selectedStateData.top_rec_why_2}
    \n
    {selectedStateData.top_rec_how_2}
    \n
    \n
    \n
    \n {selectedStateData.top_recommendation_title3}\n
    \n
    {selectedStateData.top_rec_why_3}
    \n
    {selectedStateData.top_rec_how_3}
    \n
    \n
    \n
    \n
    \n
    What Would Happen if {selectedState.state_name} were to Implement these Recommendations?
    \n

    These three recommendations, if adopted by the state, would substantially increase {selectedState.state_name}'s score and ranking. For more on how {selectedState.state_name} can do better, see the complete findings below and visit NCAJ's Consumer Debt Litigation Index at https://ncaj.org/state-rankings/consumer-debt or reach out to NCAJ at NCAJ@fordham.edu.

    \n
    \n
    \n

    Complete Consumer Debt Litigation Index Findings for {selectedState.state_name}

    \n {}\n {viewLinkText ? (\n

    {viewLinkText}

    \n ) : '' }\n

    To learn more about the Consumer Debt Litigation Index, including how other states fared, visit https://ncaj.org/state-rankings/consumer-debt.

    \n \n
    \n :\n ''\n }\n
    \n );\n}\n","import React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { StatePolicyReportsInfo } from './StatePolicyReportInfo';\n\nfunction StatePolicyReports({ reportsResource, viewLinkText }) {\n let resource = null;\n if (process.env.NODE_ENV !== \"development\") {\n resource = reportsResource;\n } else {\n // local development fallback\n resource = `https://ncaj.lndo.site${reportsResource}`;\n }\n\n const { isLoading, error, data } = useQuery([], () =>\n fetch(`${resource}`).then((res) => res.json())\n );\n\n if (isLoading)\n return (\n
    \n
    \n
    \n );\n\n if (error)\n return (\n
    \n An error has occurred: {error.message}\n
    \n );\n\n return (\n <>\n \n \n );\n}\n\nexport default StatePolicyReports;\n","import React, { useContext, useState } from \"react\";\nimport { AppContext } from \"../../state\";\n\nexport function AAOption() {\n const { appState, appActions } = useContext(AppContext);\n const selectedSort = appState.selectedSort;\n const selectedRegion = appState.selectedRegion;\n const aaOption = appState.aaOption;\n const compositeType = appState.compositeType;\n const [aaOptionVal, setAaOptionVal] = useState(aaOption);\n\n const setSelectedAAOption = (val) => {\n appActions.appStateChanged({\n selectedState: null,\n selectedIndicator: null,\n selectedIndicatorParent: null,\n selectedRegion: selectedRegion || \"all\",\n selectedSort: selectedSort || \"highToLow\",\n panelState: null,\n selectOpen: false,\n aaOption: val || false,\n compositeType: compositeType,\n });\n setAaOptionVal(val);\n };\n\n return (\n
    \n
    \n {\n setSelectedAAOption(e.target.checked);\n }}\n />\n \n
    \n
    \n );\n}\n","import React, { useContext } from \"react\";\nimport Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport HC_exporting from \"highcharts/modules/exporting\";\nimport { AppContext } from \"../../state\";\nimport { IndiceCapitalCase, formatOrdinals } from \"../../utils/tools\";\n\nHC_exporting(Highcharts);\n\nexport function BarChart({\n data,\n chartIndice,\n dataYear,\n avg,\n aaOption,\n aaBenchMarkScore,\n}) {\n const { appState } = useContext(AppContext);\n const selectedRegion = appState.selectedRegion;\n const chartDataYear = chartIndice === 'consumer_debt' ? '2024' : dataYear;\n\n const chartWrapperHeight = () => {\n if (selectedRegion === \"all\") {\n return \"580px\";\n } else if (selectedRegion === \"northeast\") {\n return \"580px\";\n } else if (selectedRegion === \"northeast\") {\n return \"580px\";\n } else if (selectedRegion === \"south\") {\n return \"580px\";\n } else if (selectedRegion === \"west\") {\n return \"580px\";\n } else {\n return \"580px\";\n }\n };\n\n const regionalColor = (region) => {\n if (region === \"midwest\") {\n return \"#794B08\";\n } else if (region === \"northeast\") {\n return \"#A86E18\";\n } else if (region === \"south\") {\n return \"#D29C4E\";\n } else if (region === \"west\") {\n return \"#E8CDA5\";\n } else {\n return \"#F8F2EB\";\n }\n };\n\n // https://github.com/danro/easing-js/blob/master/easing.js\n const easeFromTo = function (pos) {\n if ((pos /= 0.5) < 1) return 0.5 * Math.pow(pos, 4);\n return -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2);\n };\n Math.easeFromTo = easeFromTo;\n\n const chartIndiceName = IndiceCapitalCase(\n chartIndice.split(\"_\").join(\" \")\n ).replace(\"And\", \"and\");\n\n const chartData = data;\n\n const chartDataValues = () => {\n if (chartIndice === \"justice_index\") {\n return Object.entries(chartData).map((val) => ({\n y: val[1].score,\n color: regionalColor(val[1].region),\n }));\n } else if (chartIndice === 'consumer_debt') {\n return Object.entries(chartData).map((val) => ({\n y: val[1].percentage,\n color: regionalColor(val[1].region),\n custom: {\n ranking: val[1].ranking.national,\n percentage: val[1].percentage\n },\n }));\n } else {\n return Object.entries(chartData).map((val) => ({\n y: aaOption === true ? val[1].attorney_metadata.V : val[1].percentage,\n color: regionalColor(val[1].region),\n }));\n }\n };\n\n const chartDataNames = Object.entries(chartData).map((val) => val[1].state);\n\n const stateFormatter = (state) => {\n if (state === \"District of Columbia\") {\n return \"D.C.\";\n } else {\n return state;\n }\n };\n\n const tooltipMessage = (xAxis, yAxis, custom) => {\n if (chartIndice === 'consumer_debt') {\n return (\n `` +\n `${xAxis} Score:
    ` +\n `${yAxis.toFixed()} out of 100` +\n `
    ` +\n `National Rank:
    ` +\n // If it has other states with higher ranking (i.e., they socred better\n // than this state itself), it means the state rank should the amount of\n // higher states + 1 (the +1 is to represent the current state\n // position).\n (custom.ranking.higher ? formatOrdinals(custom.ranking.higher + 1) : `1st`)\n );\n } else {\n return (\n \"The score for \" +\n xAxis +\n \" is \" +\n yAxis.toFixed(2) +\n \"\"\n );\n }\n };\n\n const options = {\n chart: {\n type: \"bar\",\n marginRight: 40,\n animation: false,\n scrollablePlotArea: {\n minHeight: selectedRegion === 'all' ? 950 : 580,\n },\n },\n exporting: {\n allowHTML: true,\n chartOptions: {\n plotOptions: {\n bar: {\n dataLabels: {\n enabled: true,\n style: {\n fontSize: \"9px\",\n fontFamily: '\"Calibre\",serif',\n color: \"#000\",\n },\n },\n },\n },\n yAxis: {\n max: 100,\n plotLines: [\n {\n color: \"red\",\n dashStyle: \"dash\",\n width: 1,\n label: {\n text: aaOption\n ? `Benchmark Score - ${aaBenchMarkScore}`\n : `Average - ${avg.toFixed(1)}`,\n y: 3,\n rotation: 0,\n style: {\n fontSize: \"10px\",\n fontFamily: '\"Calibre\",serif',\n fontWeight: \"bold\",\n color: \"#000\",\n },\n },\n value: aaOption ? aaBenchMarkScore : avg,\n zIndex: 4,\n },\n ],\n },\n },\n sourceHeight: \"780px\",\n buttons: {\n contextButton: {\n menuItems: [\n \"downloadPNG\",\n \"downloadJPEG\",\n \"downloadPDF\",\n \"downloadSVG\",\n ],\n },\n },\n },\n title: {\n text: \"\",\n },\n subtitle: {\n text: \"\",\n },\n // left\n xAxis: {\n categories: chartDataNames,\n title: {\n text: null,\n },\n labels: {\n formatter: function () {\n return stateFormatter(this.value);\n },\n style: {\n fontSize: \"10px\",\n fontFamily: '\"Calibre\",serif',\n color: \"#000\",\n },\n },\n },\n // bottom\n yAxis: {\n max: aaOption ? null : 100,\n min: 0,\n title: {\n text: \"Score\",\n },\n position3d: 'offset',\n labels: {\n style: {\n fontSize: \"10px\",\n fontFamily: '\"Calibre\",serif',\n color: \"#000\",\n },\n },\n plotLines: [\n {\n color: \"red\",\n dashStyle: \"dash\",\n width: aaOption ? 1 : 0,\n label: {\n text: aaOption && `Benchmark Score - ${aaBenchMarkScore}`,\n y: 3,\n rotation: 0,\n style: {\n fontSize: \"16px\",\n fontFamily: '\"Calibre\",serif',\n fontWeight: \"bold\",\n color: \"#000\",\n display: aaOption ? 'block' : 'none',\n },\n },\n value: aaOption && aaBenchMarkScore,\n zIndex: 4,\n },\n ],\n },\n tooltip: {\n formatter: function () {\n return tooltipMessage(this.x, this.y, this.point.custom)\n },\n },\n plotOptions: {\n bar: {\n dataLabels: {\n enabled: true,\n formatter: function () {\n return this.y.toFixed(2);\n },\n style: {\n fontSize: \"12px\",\n fontFamily: '\"Calibre\",serif',\n color: \"#000\",\n },\n },\n },\n },\n legend: {\n enabled: false,\n },\n credits: {\n enabled: true,\n text: `NCAJ ${chartIndiceName} ${chartDataYear}`,\n },\n series: [\n {\n name: `${chartIndiceName} score`,\n data: chartDataValues(),\n color: \"#9B9791\",\n },\n ],\n };\n\n return (\n \n
    \n \n
    \n
    \n );\n}\n","\nimport React, { useContext, useState, useEffect } from \"react\";\nimport { AppContext } from \"../../state\";\n\nexport function CompositeOption() {\n const { appState, appActions } = useContext(AppContext);\n const selectedSort = appState.selectedSort;\n const selectedRegion = appState.selectedRegion;\n const aaOption = appState.aaOption;\n const [compositeFinesAndFeesVal, setcompositeFinesAndFeesVal] = useState(false);\n const [compositeConsumerDebtVal, setCompositeConsumerDebtVal] = useState(false);\n\n const setCompositeType = (val) => {\n appActions.appStateChanged({\n selectedState: null,\n selectedIndicator: null,\n selectedIndicatorParent: null,\n selectedRegion: selectedRegion || \"all\",\n selectedSort: selectedSort || \"highToLow\",\n panelState: null,\n selectOpen: false,\n aaOption: aaOption,\n compositeType: val || \"composite\",\n });\n };\n\n useEffect(() => {\n let compositeTypeTempValue = \"composite\";\n if (compositeFinesAndFeesVal && compositeConsumerDebtVal) {\n compositeTypeTempValue = \"composite_all\";\n } else if (compositeFinesAndFeesVal && !compositeConsumerDebtVal) {\n compositeTypeTempValue = \"composite_fines_and_fees\";\n } else if (!compositeFinesAndFeesVal && compositeConsumerDebtVal) {\n compositeTypeTempValue = \"composite_consumer_debt\";\n } else {\n compositeTypeTempValue = \"composite\";\n }\n setCompositeType(compositeTypeTempValue);\n }, [compositeConsumerDebtVal, compositeFinesAndFeesVal]);\n\n return (\n
    \n
    \n {\n setcompositeFinesAndFeesVal(e.target.checked);\n }}\n />\n \n {\n setCompositeConsumerDebtVal(e.target.checked);\n }}\n />\n \n
    \n
    \n );\n}\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"../../state\";\n\n\nexport function SortData() {\n const { appState, appActions } = useContext(AppContext);\n const selectedSort = appState.selectedSort;\n const selectedRegion = appState.selectedRegion;\n const aaOption = appState.aaOption;\n const compositeType = appState.compositeType;\n\n const setSelectedSort = (sort) => {\n appActions.appStateChanged({\n selectedState: null,\n selectedIndicator: null,\n selectedIndicatorParent: null,\n selectedRegion: selectedRegion || \"all\",\n selectedSort: sort || \"highToLow\",\n panelState: null,\n selectOpen: false,\n aaOption: aaOption || false,\n compositeType: compositeType,\n });\n };\n\n\n return (\n
    \n setSelectedSort(\"highToLow\")}\n className={`select-a-state-panel--btn buttonReset ${\n selectedSort === 'highToLow' && \"active\"\n }`}\n >\n Sort High to Low\n \n\n setSelectedSort(\"lowToHigh\")}\n className={`select-a-state-panel--btn buttonReset ${\n selectedSort === 'lowToHigh' && \"active\"\n }`}\n >\n Sort Low to High\n \n
    \n );\n}\n","import React, { useContext } from \"react\";\nimport { AAOption } from \"./components/AAOption\";\nimport { BarChart as Chart } from \"./components/BarChart\";\nimport { CompositeOption } from \"./components/CompositeOption\";\nimport { SelectRegion } from \"./components/SelectRegion\";\nimport { SortData } from \"./components/SortData\";\nimport { AppContext } from \"./state\";\n\nexport default function USBarChart({ data, chartIndice }) {\n const { appState } = useContext(AppContext);\n const selectedRegion = appState.selectedRegion;\n const selectedSort = appState.selectedSort;\n const aaOption = appState.aaOption;\n const compositeType = appState.compositeType;\n const dataYear = data.overall.year || null;\n\n const objectLocation = () => {\n if (chartIndice === \"justice_index\") {\n return Object.entries(data.overall[compositeType]);\n } else {\n return Object.entries(data.overall.states[chartIndice]);\n }\n };\n\n const filtered = objectLocation().reduce((filteredStatesData, value) => {\n const [key, val] = value;\n\n if (selectedRegion === \"all\" || val.region === selectedRegion) {\n filteredStatesData[key] = val;\n }\n if (selectedSort === \"lowToHigh\") {\n if (aaOption === true) {\n return Object.values(filteredStatesData).sort(\n (a, b) => a.attorney_metadata.V - b.attorney_metadata.V\n );\n } else if (chartIndice === \"justice_index\") {\n return Object.values(filteredStatesData).sort(\n (a, b) => a.score - b.score\n );\n } else {\n return Object.values(filteredStatesData).sort(\n (a, b) => a.percentage - b.percentage\n );\n }\n } else {\n if (aaOption === true) {\n return Object.values(filteredStatesData).sort(\n (a, b) => b.attorney_metadata.V - a.attorney_metadata.V\n );\n } else if (chartIndice === \"justice_index\") {\n return Object.values(filteredStatesData).sort(\n (a, b) => b.score - a.score\n );\n } else {\n return Object.values(filteredStatesData).sort(\n (a, b) => b.percentage - a.percentage\n );\n }\n }\n }, {});\n\n const averageScore = () => {\n const totalStates = filtered.length;\n if (chartIndice === \"justice_index\") {\n const sum = filtered\n .map((item) => item.score)\n .reduce((prev, curr) => prev + curr, 0);\n return sum / totalStates;\n } else {\n const sum = filtered\n .map((item) => item.percentage)\n .reduce((prev, curr) => prev + curr, 0);\n return sum / totalStates;\n }\n };\n\n const aaBenchMarkScore =\n Object.values(data?.overall?.states?.attorney_access)[0].attorney_metadata\n ?.NG || 10;\n\n return (\n
    \n
    \n \n \n {chartIndice === \"attorney_access\" && }\n {chartIndice === \"justice_index\" && dataYear !== \"2016\" && (\n \n )}\n
    \n \n
    \n );\n}\n","import React from \"react\";\nimport { QueryClient, QueryClientProvider, useQuery } from \"react-query\";\nimport { ReactQueryDevtools } from \"react-query/devtools\";\n\nimport MapIndicators from \"./components/Indicators.js\";\nimport MapOverall from \"./components/Overall.js\";\nimport Reports from'./components/Reports.js';\nimport StatePolicyReports from './components/StatePolicyReports.js';\nimport BarChart from \"./BarChart\";\n\nimport \"./App.css\";\n\nconst queryClient = new QueryClient();\n\nfunction DataProvider({ props }) {\n const chartComponent = props.chartComponent;\n const chartIndice = props.chartIndice;\n let resource = null;\n if (process.env.NODE_ENV !== \"development\") {\n resource = props.resource;\n } else {\n // local development fallback\n resource = `https://ncaj.lndo.site${props.resource}`;\n }\n\n const { isLoading, error, data } = useQuery(\"contents\", () =>\n fetch(`${resource}`).then((res) => res.json())\n );\n\n if (isLoading)\n return (\n
    \n
    \n
    \n );\n\n if (error)\n return (\n
    \n An error has occurred: {error.message}\n
    \n );\n\n return (\n <>\n {chartComponent === \"us_map_overall\" && data && (\n \n )}\n {chartComponent === \"us_state_report\" && data && (\n \n )}\n {chartComponent === \"us_map_indicator\" && data && (\n \n )}\n {chartComponent === \"us_bar_chart\" && data && (\n \n )}\n \n );\n}\n\nfunction App(props) {\n return (\n \n {props.chartComponent === \"us_state_report_inline\" ?\n \n :\n \n }\n \n \n );\n}\n\nexport default App;\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\nimport \"proxy-polyfill\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { AppProvider } from \"./state\";\nimport App from \"./App\";\n\n// import * as serviceWorker from './serviceWorker';\n\nconst rootIds = [\"us-map-overall\", \"us-state-report\", \"us-map-indicator\", \"us-bar-chart\", \"us-state-report-inline\"];\n\nfor (let i = 0; i < rootIds.length; i++) {\n const rootId = rootIds[i];\n const rootElement = document.getElementById(rootId);\n\n if (!rootElement) {\n continue;\n }\n const root = document.getElementById(rootId);\n\n const resource = root.getAttribute(\"data-resource\")\n ? `/data-provider/api/resource/${root.getAttribute(\"data-resource\")}`\n : `/data-provider/api/resource/justice_index_2020`;\n // : `/data-provider/api/resource/fines_and_fees_2020`;\n\n const chartComponent = root.getAttribute(\"data-component\")\n ? root.getAttribute(\"data-component\")\n : `us_bar_chart`; // options: us_map_indicator, us_map_overall, us_bar_chart or us_state_report_inline\n\n const chartIndice = root.getAttribute(\"data-indice\")\n ? root.getAttribute(\"data-indice\")\n : `justice_index`;\n // disability_access, language_access, attorney_access, self_representation, fines_and_fees, consumer_data or justice_index\n\n const reportsResource = root.getAttribute(\"data-indicator_group\") && root.getAttribute(\"data-year\")\n ? `/api/state-report/${root.getAttribute(\"data-indicator_group\")}/${root.getAttribute(\"data-year\")}`\n : `/api/state-report/283/2024`;\n\n const viewLinkText = root.getAttribute(\"data-view_link_text\") ? root.getAttribute(\"data-view_link_text\") : '';\n\n const chartApp = (\n \n \n \n );\n ReactDOM.render(chartApp, rootElement);\n}\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\n// serviceWorker.unregister();\n"],"sourceRoot":""}