{"version":3,"sources":["utils/analytics.js","serviceWorker.js","featureFlags.js","components/atoms/ResultSummary.jsx","components/atoms/TopMessage.jsx","components/organisms/FilterNav.jsx","utils/courthouses.js","components/molecules/CourtCard/Image.jsx","components/atoms/PhoneNumber.jsx","components/molecules/CourtCard/Description.jsx","components/molecules/CourtCard/index.jsx","components/organisms/ResultList.jsx","components/organisms/SearchResult.jsx","components/organisms/MattersServedModal.jsx","components/organisms/CourtExceptionsModal.jsx","containers/Search.jsx","components/molecules/ChoseCounty.jsx","services/GoogleSheets.js","services/sheetsMappers.js","services/CourtsService.js","App.jsx","index.js"],"names":["global","__webpack_require__","d","__webpack_exports__","sendAnalyticsClick","startScrollTracking","category","label","gtag","event_category","event_label","percentages","percentageHit","window","addEventListener","requestAnimationFrame","windowHeight","innerHeight","checkY","scrollY","bodyHeight","document","body","offsetHeight","location","search","forEach","percentage","concat","Boolean","hostname","match","featureFlags","covidMode","CourtLink","_ref","link","analyticsCategory","react_default","a","createElement","key","react_fontawesome_index_es","icon","color","title","target","rel","href","onClick","event","CourtLinks","_ref2","court","county","website_url","self_help_url","Fragment","startCase","ResultSummary","_ref4","courts","total","searchText","onCloseCourtExceptionsClick","zipCode","isEmpty","matters","noResults","mattersWithLinks","Autolinker","stripPrefix","className","role","aria-atomic","_ref3","class","CovidAlert","dangerouslySetInnerHTML","__html","TopMessage","FilterNav","options","onChange","onMattersServedClick","dist","field","id","for","getMattersServedOptions","items","allOptions","uniq","flatten","map","filter","item","applyFilters","courthouses","filters","displayCourthouses","matterServed","c","includes","matters_served","filterByMatterServed","selfHelp","has_in_person_help","filterBySelfHelp","getGoogleMapURL","address","encodeURI","getMapImageUrl","courthouse","map_image_filename","Image","mapURL","style","position","width","height","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","aria-label","courthouse_name","text-decoration","tabindex","parseNumber","value","split","length","trim","numberLink","replace","PhoneNumber","DAYS","isValidTime","renderHours","arr","hoursWithIdx","v","idx","hoursGrouped","pickBy","groupBy","Object","slicedToArray","hoursGroupedWithIdx","mapValues","values","textWithLinks","every","num","i","isSequential","join","HoursTable","_ref5","building","hours_building","clerk","hours_clerk_filing","assistance","hours_self_help_resource_center","TagList","_ref6","tags","t","Description","_ref7","courthouseName","courthouse_page_url","parking","transportation","atoms_PhoneNumber","phone_number","Item","CourtCard_Image","CourtCard_Description","resultsFirstRendered","ResultList","CourtCard","SearchResult","onFilterChange","matterServedOptions","courtList","atoms_ResultSummary","atoms_TopMessage","organisms_FilterNav","organisms_ResultList","MattersServedModal","isOpen","onClose","reactstrap_es","size","toggle","CourtExceptionsModal","listStyleType","Search","organisms_SearchResult","SearchContainer","props","_this","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","handleFilterChanged","setState","handleOpenMattersServedModal","isMattersServedModalOpen","handleCloseMattersServedModal","handleOpenCourtExceptionsModal","isCourtExceptionsModalOpen","handleCloseCourtExceptionsModal","state","_this$props","_this$state","organisms_MattersServedModal","organisms_CourtExceptionsModal","Component","countyToId","ChoseCounty","counties","onCountySelect","buildSheetsUrl","sheetId","page","googleSheets","getSheet","_getSheet","asyncToGenerator","regenerator_default","mark","_callee","url","response","jsondata","wrap","_context","prev","next","process","axios","sent","data","abrupt","t0","console","error","alert","stop","_x","_x2","apply","arguments","getTimes","entry","stidx","slice","mapCourthouse","toLower","ms","flow","photo","objectSpread","mapCourts","friendlyEq","v1","v2","courtsService","getAllCourthouses","_getAllCourthouses","val","GoogleSheets","getAllCourts","_getAllCourts","_callee2","_context2","findCourtsByCounty","_findCourtsByCounty","_callee3","countySearch","_context3","findCourthousesByCounty","_findCourthousesByCounty","_callee4","_context4","library","add","faLandmark","faInfoCircle","faInfo","App","loadData","CourtsService","then","selectCounty","query","queryCleaned","cleanQuery","queryString","parse","list","regex","RegExp","entries","city","zip","test","uniqBy","findCounties","cicozip","multipleMatches","containers_Search","molecules_ChoseCounty","ReactDOM","render","src_App_0","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.1d3ada2d.chunk.js","sourcesContent":["export const sendAnalyticsClick = (category, label) => {\n global.gtag('event', 'click', {\n 'event_category': category,\n 'event_label': label\n })\n}\n\nexport const startScrollTracking = () => {\n const percentages = [\n 10,\n 25,\n 50,\n 75\n ] // 100 is handled separately\n\n var percentageHit = {}\n\n window.addEventListener('scroll', () => {\n requestAnimationFrame(() => {\n const windowHeight = window.innerHeight\n const checkY = window.scrollY + (windowHeight / 2)\n const bodyHeight = document.body.offsetHeight\n if (!percentageHit[100] && checkY >= bodyHeight - (windowHeight / 2)) {\n percentageHit[100] = true\n global.gtag('event', '100%', {\n 'event_category': 'Scroll Tracking',\n 'event_label': window.location.search\n })\n } else {\n percentages.forEach(percentage => {\n if (!percentageHit[percentage]) {\n if (checkY > bodyHeight * (percentage / 100)) {\n percentageHit[percentage] = true\n global.gtag('event', `${percentage}%`, {\n 'event_category': 'Scroll Tracking',\n 'event_label': window.location.search\n })\n }\n }\n })\n }\n })\n })\n}","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\nexport function register (config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW (swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker (swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","// Flags for quickly enabling / disabling features\n\nlet featureFlags = {\n covidMode: true\n}\n\nexport { featureFlags }","import React from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { map, capitalize, startCase, isEmpty } from 'lodash'\nimport Autolinker from 'autolinker'\nimport { sendAnalyticsClick } from '../../utils/analytics'\nimport { featureFlags } from '../../featureFlags'\n\nfunction CourtLink({ link, label, analyticsCategory }) {\n return (\n
  • \n sendAnalyticsClick(analyticsCategory, event.target.href)}>{label}\n
  • \n )\n}\n\nfunction CourtLinks({ court }) {\n const { county, website_url, self_help_url } = court\n return (\n \n \n \n \n )\n}\n\nfunction CovidAlert({ court }) {\n return (\n \n
    \n
    \n

    COVID-19 and Court Services

    \n

    Courts have reduced services due to health and safety guidelines.

    \n

    For up-to-date information, go to sendAnalyticsClick(\"Outbound Link - Covid Alert\", event.target.href)}>your court's main website.

    \n
    \n
    \n
    \n
    \n )\n}\n\nfunction ResultSummary({ courts, total, searchText, zipCode, onCloseCourtExceptionsClick }) {\n if (!isEmpty(courts)) {\n const court = courts[0]\n const { county, matters, noResults } = court\n\n const mattersWithLinks = Autolinker.link(matters || \"\", { stripPrefix: false })\n\n if (!noResults) {\n return (\n
    \n { featureFlags.covidMode ? CovidAlert({ court }) : '' }\n

    The jurisdiction for {searchText} is {startCase(county)} County Superior Court

    \n { total > 1 &&

    There are {total} Courthouse Locations.

    }\n

    \n

    When not to go to your county’s court

    \n \n
    \n )\n } else {\n return (\n
    \n

    The jurisdiction for {searchText} is {startCase(county)} County Superior Court

    \n
    \n )\n }\n }\n}\n\nexport default ResultSummary\n","import React from 'react'\nimport { isEmpty } from 'lodash'\n\nfunction TopMessage({ courts }) {\n if (!isEmpty(courts)) {\n return (\n

    Sorry, we currently do not have courthouse data for this jurisdiction. Please try another search.

    \n )\n } else {\n return (\n


    Searching…

    \n )\n }\n}\n\nexport default TopMessage\n","import React from 'react'\nimport { map } from 'lodash'\nimport { Form, Select, Option, Checkbox } from 'informed'\n\nfunction FilterNav({ options, onChange, onMattersServedClick }) {\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n )\n}\n\nexport default FilterNav\n","import {\n filter,\n includes,\n uniq,\n map,\n flow,\n trim,\n capitalize,\n isEmpty,\n flatten,\n toLower,\n uniqBy\n} from 'lodash'\n\nexport const getMattersServedOptions = (items) => {\n const allOptions = uniq(flatten(map(items, 'matters_served')))\n return filter(allOptions, (item) => !isEmpty(item))\n}\n\nexport const filterByMatterServed = (courthouses, matterServed) => {\n return filter(courthouses, (c) => includes(c.matters_served, matterServed))\n}\n\nexport const filterBySelfHelp = (courthouses) => {\n return filter(courthouses, (c) => c.has_in_person_help)\n}\n\nexport const findCounties = (query, list) => {\n if (!query) { return [] }\n\n const regex = new RegExp(`${query}`)\n const entries = filter(list, ({ city, county, zip }) => (\n regex.test(toLower(city)) || regex.test(toLower(county)) || regex.test(zip)\n ))\n\n return uniqBy(entries, ({ county, zip}) => county)\n}\n\nexport const cleanQuery = (query) => {\n let queryCleaned = toLower(trim(query))\n\n const queryCleanup = queryCleaned.match(/[^A-Za-z0-9\\s]/) // letters, numbers, & spaces only\n if (queryCleanup != null) {\n queryCleaned = queryCleaned.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n return queryCleaned\n}\n\nexport const applyFilters = (courthouses, filters) => {\n let displayCourthouses = courthouses\n\n if (filters.matterServed) {\n displayCourthouses = filterByMatterServed(courthouses, filters.matterServed)\n }\n\n if (filters.selfHelp) {\n displayCourthouses = filterBySelfHelp(displayCourthouses)\n }\n\n return displayCourthouses\n}\n\n\nexport const getGoogleMapURL = (address) => {\n return encodeURI(`https://www.google.com/maps/search/?api=1&query=${address}`)\n}\n\nexport const getGoolgeMapImageUrl = ({ center, key, zoom, size, maptype, markers }) => {\n const url = 'https://maps.googleapis.com/maps/api/staticmap'\n\n return encodeURI(`${url}?center=${center}&key=${key}&zoom=${zoom}&size=${size}&maptype=${maptype}&markers=${markers}`)\n}\n\nexport const getGoolgeMapImageUrlForAddress = (address) => {\n const markers = `color:blue|label:C|${address}`\n return getGoolgeMapImageUrl({ center: address, key: process.env.REACT_APP_GOOGLE_API_KEY, zoom: 13, size: '600x300', maptype: 'roadmap', markers: markers })\n}\n\nexport const getMapImageUrl = (courthouse) => {\n let map_image_filename = `placeholder-map.png`;\n\n if (!isEmpty(courthouse.map)) {\n map_image_filename = courthouse.map + '.jpg';\n }\n\n return `maps/` + map_image_filename;\n}\n","import React from 'react'\n\nimport { getGoogleMapURL } from '../../../utils/courthouses'\nimport { getMapImageUrl } from '../../../utils/courthouses'\nimport { sendAnalyticsClick } from '../../../utils/analytics'\n\nfunction Image({ item }) {\n const mapURL = getGoogleMapURL(item.address)\n const style = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n backgroundImage : `url('${getMapImageUrl(item)}')`,\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: '50% 50%'\n }\n return (\n
    \n
    \n sendAnalyticsClick('Outbound Link - Map', mapURL)}>\n
    \n
    \n
    © OpenStreetMap contributors
    \n
    \n { item.has_in_person_help &&\n (\n // This link is the same as the map link above, so it does not need to be reachable via tab\n sendAnalyticsClick('Outbound Link - Map', mapURL)}>\n
    Location has a Self-Help Center
    \n
    \n )\n }\n
    \n )\n}\n\nexport default Image\n","import React from 'react'\nimport { trim } from 'lodash'\n\nconst parseNumber = (value) => {\n const match = value.split('-')\n\n if (match.length === 3) {\n return `(${trim(match[0])}) ${trim(match[1])}-${trim(match[2])}`\n }\n else if (match.length === 2) {\n return `${trim(match[0])}-${trim(match[1])}`\n }\n\n return ''\n}\n\nconst numberLink = (value) => {\n return \"tel:\" + trim(value.replace(/[^0-9a-zA-Z]+/g, ''))\n}\n\nfunction PhoneNumber({ value }) {\n return (\n
    {parseNumber(value)}
    \n )\n}\n\nexport default PhoneNumber\n","import React from 'react'\nimport { groupBy, map, mapValues, filter, pickBy, isEmpty, trim } from 'lodash'\nimport Autolinker from 'autolinker'\nimport PhoneNumber from '../../atoms/PhoneNumber'\nimport { getGoogleMapURL } from '../../../utils/courthouses'\nimport { sendAnalyticsClick } from '../../../utils/analytics'\n\nconst DAYS = ['M', 'Tu', 'W', 'Thu', 'F', 'Sa', 'Su']\n\n// Check every item in the array to see if its a one higher number than the\n// previous item — aka: [0,1,2], [4,5], [2,3,4], etc.\n// [0, 2], [2,3,5], etc. would *not* be considered sequential\nconst isSequential = (arr) => arr.every((num, i) => i === arr.length - 1 || num == arr[i + 1] - 1)\n\n// Renders either M\n// or M-F\n// or M,W,F\n// etc.\nconst idxToDayName = (arr) => {\n if (arr.length === 1)\n return DAYS[arr[0]]\n else if (isSequential(arr))\n return `${DAYS[arr[0]]}-${DAYS[arr[arr.length-1]]}`\n else\n return map(arr, (v) => DAYS[v]).join(', ')\n}\n\nconst isValidTime = (value, key) => key !== 'N/A' && key !== '?' && trim(key) !== ''\n\nconst renderHours = (arr) => {\n const hoursWithIdx = map(arr, (v, idx) => [ idx, v])\n const hoursGrouped = pickBy(groupBy(hoursWithIdx, ([idx, v]) => v), isValidTime)\n const hoursGroupedWithIdx = mapValues(hoursGrouped, (values, key) => {\n return map(values, ([idx, v]) => idx)\n }\n )\n\n if (isEmpty(hoursGroupedWithIdx))\n return null\n\n return (\n
    \n {\n map(hoursGroupedWithIdx, (values, key) => {\n const textWithLinks = Autolinker.link(key)\n return
    {idxToDayName(values)}:
    \n })\n }\n
    \n )\n}\n\nfunction HoursTable({ item }) {\n const building = renderHours(item.hours_building)\n const clerk = renderHours(item.hours_clerk_filing)\n const assistance = renderHours(item.hours_self_help_resource_center)\n return (\n
    \n { !isEmpty(building) && (\n
    \n \n

    \n {building}\n
    \n )}\n { !isEmpty(clerk) && (\n
    \n \n

    \n {clerk}\n
    \n )}\n { !isEmpty(assistance) && (\n
    \n \n

    \n {assistance}\n
    \n )}\n
    \n )\n}\n\nfunction TagList({ tags }) {\n return (\n map(tags, (t,idx) => (\n \n {t}\n \n )))\n}\n\n//{ }\nfunction Description({ item, onMattersServedClick }) {\n const tags = item.matters_served\n let courthouseName = item.courthouse_name\n if (!isEmpty(item.courthouse_page_url)) {\n courthouseName = {courthouseName}\n }\n const address = item.address.split(/\\n/)\n const parking = Autolinker.link(item.parking || \"\")\n const transportation = Autolinker.link(item.transportation || \"\")\n\n return (\n \n
    \n
    \n

    {courthouseName}

    \n
    \n Matters Served\n What does this mean?\n
    \n
    \n {}\n
    \n
    \n
    \n { map(address, (value) =>
    {value}
    )}\n \n \n
    \n
    \n
    \n
    \n
    \n { (!isEmpty(parking) && parking != 'N/A') &&

    Parking:

    }\n { (!isEmpty(transportation) && transportation != 'N/A') &&

    Transportation:

    }\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n )\n}\n\nexport default Description\n","import React from 'react';\n\nimport Image from './Image'\nimport Description from './Description'\n\nfunction Item({ item, onMattersServedClick }) {\n return (\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n )\n}\n\nexport default Item\n","import React from 'react';\nimport { map } from 'lodash'\nimport CourtCard from '../molecules/CourtCard'\nimport { startScrollTracking } from '../../utils/analytics';\n\nvar resultsFirstRendered = false\n\nfunction ResultList({ items, onMattersServedClick }) {\n if (items && items.length > 0 && !resultsFirstRendered) {\n resultsFirstRendered = true\n startScrollTracking()\n }\n\n return (\n \n )\n}\n\nexport default ResultList\n","import React from 'react';\n\nimport ResultSummary from '../atoms/ResultSummary'\nimport TopMessage from '../atoms/TopMessage'\nimport Filter from './FilterNav'\nimport ResultList from './ResultList'\n\nfunction SearchResult({ total, items, onFilterChange, matterServedOptions, onMattersServedClick, onCloseCourtExceptionsClick, courtList, searchText, zipCode }) {\n\n return (\n \n { courtList && }\n { !total && }\n { total > 1 && }\n \n \n )\n}\n\nexport default SearchResult\n","import React from 'react'\nimport { Modal, ModalHeader, ModalBody } from 'reactstrap'\n\nfunction MattersServedModal({ isOpen, onClose}) {\n return (\n \n Matters Served Explained\n \n

    Family Law

    \n

    Divorce, custody, parentage, adoption, domestic violence

    \n\n

    Probate

    \n

    Wills, estates, & trusts; guardianship of a youth; conservatorship of an adult

    \n\n

    Small Claims

    \n

    Suing or being sued for under $10,000

    \n\n

    Criminal

    \n

    Cases relating to a crime

    \n\n

    Civil

    \n

    Eviction & landlord/tenant, name & gender change, harassment, collections or other lawsuits over $10,000

    \n\n

    Traffic

    \n

    Citation or ticket

    \n\n

    Infractions

    \n

    Minor offenses in traffic, fish & wildlife, or other areas

    \n\n

    Juvenile

    \n

    Youths charged with crimes, abuse or neglect of children

    \n\n

    Restraining orders

    \n

    For domestic violence, civil harassment, or other abuses

    \n
    \n
    \n )\n}\n\nexport default MattersServedModal\n","import React from 'react'\nimport { Modal, ModalHeader, ModalBody } from 'reactstrap'\n\nfunction CourtExceptionsModal({ isOpen, onClose}) {\n return (\n \n Can I file where I live?\n \n

    There are rules about where you can file your case. Some rules say you can file where you live, others say you must file where the other person lives or where a dispute happened. A judge may not be able to hear your case if you file in the wrong Court. Here are some general rules:

    \n\n
      \n
    1. Is there an open case about this issue? If yes, then file in the county where that case is active.
    2. \n
    3. If a case hasn’t been started:\n
        \n
      • Divorce - the county where you or your spouse has lived for the last 3 months (you must have lived in California for the last 6 months in order to file).
      • \n
      • Child custody or support (parents not married) - you can usually file where the child lives, with some exceptions
      • \n
      • Guardianship - where the minor lives
      • \n
      • Conservatorship - where the person to be conserved lives
      • \n
      • Small claims - where the defendant lives, where the business is officially located, where an accident or dispute took place.
      • \n
      • Restraining orders - where the person accused of abuse lives or where the abuse took place.
      • \n
      • Eviction - where the property is located.
      • \n
    4. \n
    \n\n

    NOTE! These rules cover common situations. Sometimes there are exceptions or other rules that apply to your case. For cases about minors or small claims, please speak to your local court Self-Help Center staff, or a lawyer referral service for assistance.

    \n\n
    \n
    \n )\n}\n\nexport default CourtExceptionsModal\n","import React, { Component } from 'react'\n\nimport SearchResult from '../components/organisms/SearchResult'\nimport { getMattersServedOptions, applyFilters } from '../utils/courthouses'\nimport MattersServedModal from '../components/organisms/MattersServedModal'\nimport CourtExceptionsModal from '../components/organisms/CourtExceptionsModal'\n\nfunction Search({ total, courthouses, matterServedOptions, onFilterChange, onMattersServedClick, onCloseCourtExceptionsClick, courtList, searchText, zipCode }) {\n return (\n \n { /* */ }\n \n \n )\n}\n\nclass SearchContainer extends Component {\n\n constructor(props) {\n super(props)\n this.state = {\n filters: {},\n isMattersServedModalOpen: false\n }\n }\n\n handleFilterChanged = ({ values }) => {\n this.setState({ filters: values })\n }\n\n handleOpenMattersServedModal = () => {\n this.setState({ isMattersServedModalOpen: true })\n }\n\n handleCloseMattersServedModal = () => {\n this.setState({ isMattersServedModalOpen: false })\n }\n\n handleOpenCourtExceptionsModal = () => {\n this.setState({ isCourtExceptionsModalOpen: true })\n }\n\n handleCloseCourtExceptionsModal = () => {\n this.setState({ isCourtExceptionsModalOpen: false })\n }\n\n render() {\n const { courthouses, courts, county, searchText, zipCode } = this.props\n const { filters, isMattersServedModalOpen, isCourtExceptionsModalOpen } = this.state\n const displayCourthouses = applyFilters(courthouses, filters)\n\n return (\n \n \n \n \n \n )\n }\n}\n\nexport default SearchContainer\n","import React, { Component } from 'react'\nimport { Form, RadioGroup, Radio } from 'informed';\nimport { isEmpty } from 'lodash'\n\nfunction countyToId(county) {\n return county.replace(/\\s/g, '-');\n}\n\nfunction ChoseCounty({ counties, onCountySelect, searchText }) {\n if (!counties)\n return null\n\n return (\n \n
    \n

    \n The search term {searchText} falls into multiple counties. Please select a county.\n

    \n
    \n
    \n \n
      \n {counties.map((v) => (\n
    • onCountySelect(v) } className='chose-county'>\n \n \n
    • \n ))}\n
    \n
    \n
    \n
    \n )\n}\n\nexport default ChoseCounty\n","import axios from 'axios'\n\nconst buildSheetsUrl = (sheetId, page, key) => {\n return `https://sheets.googleapis.com/v4/spreadsheets/${sheetId}/values/${page}?key=${key}`\n}\n\nconst googleSheets = {\n async getSheet(id, page) {\n const url = buildSheetsUrl(id, page, process.env.REACT_APP_GOOGLE_API_KEY)\n try {\n let response = await axios(url)\n let jsondata = response.data\n return jsondata\n } catch(err) {\n // catches errors\n console.error(err)\n console.error(err.response.data.error)\n alert(\"I'm sorry, I'm having trouble connecting to the remote database. Please try again later.\")\n }\n }\n}\n\n\nexport default googleSheets\n","import { map, slice, toLower, trim, capitalize, split, flow, isEmpty, filter } from 'lodash'\n\nconst getTimes = (entry, stidx) => slice(entry, stidx, stidx + 5)\n\nconst parseMattersServed = (ms) => map(split(ms, ','), flow(trim))\n\nconst isValidTime = (value) => value && value !== 'N/A'\n\nconst fortifyCourthouse = (c) => {\n return {\n ...c,\n has_in_person_help: !isEmpty(filter(c.hours_self_help_resource_center, isValidTime))\n }\n}\n\nexport const mapCourthouse = (entry) => {\n return fortifyCourthouse({\n county: trim(toLower(entry[0])),\n courthouse_name: entry[1],\n address: entry[2],\n phone_number: entry[3],\n courthouse_page_url: entry[4],\n matters_served: parseMattersServed(entry[5]),\n hours_building: getTimes(entry, 6),\n hours_clerk_filing: getTimes(entry, 11),\n hours_self_help_resource_center: getTimes(entry, 16),\n parking: entry[21],\n transportation: entry[22],\n map: entry[23],\n photo: entry[24]\n })\n}\n\nexport const mapCourts = (entry) => {\n return {\n county: trim(toLower(entry[0])),\n website_url: entry[1],\n self_help_url: entry[6],\n matters: entry[10]\n }\n}\n","import { map, slice, filter, some, toLower, trim } from 'lodash'\n\nimport GoogleSheets from './GoogleSheets'\nimport { mapCourthouse, mapCourts } from './sheetsMappers'\n\nconst friendlyEq = (v1, v2) => toLower(trim(v1)) === toLower(trim(v2))\n\nconst courtsService = {\n async getAllCourthouses() {\n const val = await GoogleSheets.getSheet(process.env.REACT_APP_GOOGLE_COURTHOUSES_SHEET_ID, process.env.REACT_APP_GOOGLE_COURTHOUSES_SHEET_NAME)\n\n return map(slice(val.values, 2), mapCourthouse)\n },\n\n async getAllCourts() {\n const val = await GoogleSheets.getSheet(process.env.REACT_APP_GOOGLE_COURTS_SHEET_ID, process.env.REACT_APP_GOOGLE_COURTS_SHEET_NAME)\n\n return map(slice(val.values, 2), mapCourts)\n },\n\n async findCourtsByCounty(countySearch) {\n const courts = await this.getAllCourts()\n\n return filter(courts, ({ county }) => friendlyEq(countySearch, county))\n },\n\n async findCourthousesByCounty(countySearch) {\n const courthouses = await this.getAllCourthouses()\n\n return filter(courthouses, ({ county }) => friendlyEq(countySearch, county))\n }\n}\n\nwindow.courtsService = courtsService\n\nexport default courtsService\n","import React, { Component } from 'react'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport queryString from 'query-string'\nimport { faLandmark, faInfoCircle, faInfo } from '@fortawesome/free-solid-svg-icons'\nimport { startCase, isEmpty } from 'lodash'\n\nimport Search from './containers/Search'\nimport ChoseCounty from './components/molecules/ChoseCounty'\nimport CourtsService from './services/CourtsService'\nimport { findCounties, cleanQuery } from './utils/courthouses'\nimport cicozip from './data/cicozip.json'\n\nimport './App.scss'\n\nlibrary.add(faLandmark, faInfoCircle, faInfo)\n\nclass App extends Component {\n state = {}\n\n componentDidMount() {\n const parsedQs = queryString.parse(window.location.search)\n const query = cleanQuery(parsedQs.query)\n const counties = findCounties(query, cicozip)\n let county = null\n\n if (counties.length == 1) {\n county = counties[0]\n }\n\n this.setState({ counties, county, query: startCase(query) })\n\n if (county) {\n this.loadData(county.county)\n }\n }\n\n loadData = (county) => {\n CourtsService.findCourthousesByCounty(county).then((courthouses) => {\n this.setState({ courthouses })\n })\n CourtsService.findCourtsByCounty(county).then((courts) => {\n if (!isEmpty(courts)) {\n this.setState({ courts })\n } else {\n this.setState({courts: [\n {county: county, noResults: true}\n ]})\n }\n })\n }\n\n selectCounty = (county) => {\n this.setState({ county })\n this.loadData(county.county)\n }\n\n render () {\n const { courthouses, courts, counties, county, query } = this.state\n const multipleMatches = counties && counties.length > 1\n\n if (county) {\n // Main interface to show county courthouses\n return (\n
    \n \n
    \n )\n }\n\n if (multipleMatches) {\n // More than one county available to choose from\n return (\n
    \n \n
    \n )\n } else {\n if (isEmpty(query)) {\n // The query was blank, so this is the \"initial\" state\n return (\n
    \n

    \n Please enter a 5-digit California zip code (e.g. 92110) or city name (e.g. Oakland).\n

    \n
    \n )\n } else {\n // Nothing was found in the search\n return (\n
    \n

    \n We’re sorry, this search does not match any California locations in our database.
    Please enter a 5-digit California zip code (e.g. 92110) or city name (e.g. Oakland).\n

    \n
    \n )\n }\n }\n }\n}\n\nexport default App\n","import '@babel/polyfill'\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport * as serviceWorker from './serviceWorker'\n\nimport App from './App'\n\nimport 'bootstrap/dist/css/bootstrap.min.css'\nimport './style.scss'\n\nReactDOM.render(, document.getElementById('root'))\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: http://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""}