{"version":3,"sources":["webpack:///./app/scripts/utils/utils.js","webpack:///./config/modern-polyfills.js"],"names":["titleCase","require","str","toLowerCase","split","map","word","charAt","toUpperCase","slice","join","formatNumberWithCommas","num","format","formatNumberAnnotation","f","ft","includes","replace","formatNumberPct","p","concat","formatCountiesTitle","county","exceptions","upper","title","e","find","formatYAxisTicks","formatted"],"mappings":"2FAAA,0LAIMA,GAHaC,EAAQ,QAGTC,GACTA,EAAIC,cAAcC,MAAM,KAAKC,IAAIC,GAC9BA,EAAKC,OAAO,GAAGC,cAAgBF,EAAKG,MAAM,IACjDC,KAAK,MASGC,EAAyBC,GAC7BC,YAAO,IAAPA,CAAYD,GAURE,EAAyBF,IACpC,IAAMG,EAAIF,YAAO,OACXG,EAAKH,YAAO,KAElB,OAAGE,EAAEH,GAAKK,SAAS,KACLF,EAAEH,GAAKM,QAAQ,IAAK,YAM3BF,EAAGJ,IAcCO,EAAkBP,IAC7B,IAAMQ,EAAIP,YAAO,QACjB,MAAM,GAANQ,OAAUD,EAAER,GAAI,MAmBLU,EAAsBC,IACjC,IAAMC,EAAa,CACjB,CAACC,MAAO,WAAYC,MAAO,YAC3B,CAACD,MAAO,WAAYC,MAAO,YAC3B,CAACD,MAAO,YAAaC,MAAO,aAC5B,CAACD,MAAO,SAAUC,MAAO,WAE3B,OAAGF,EAAWnB,IAAIsB,GAAKA,EAAEF,OAAOR,SAASM,GACjC,GAANF,OAAUG,EAAWI,KAAKD,GAAKA,EAAEF,OAASF,GAAQG,MAAK,WACrC,SAAVH,EACD,QAED,GAANF,OAAUrB,EAAUuB,GAAO,YAoBlBM,EAAmBjB,IAC9B,GAAIA,GAAO,KAAWA,EAAM,KAAY,EACtC,MAAM,GAANS,OAAUT,EAAM,IAAO,KAGzB,IACIkB,EADMjB,YAAO,MACDE,CAAEH,GAUlB,OARIkB,EAAUb,SAAS,QACrBa,EAAYA,EAAUZ,QAAQ,KAAM,KAGlCY,EAAUb,SAAS,OACrBa,EAAYA,EAAUZ,QAAQ,IAAK,MAG9BY,I,kCCtHT7B,EAAQ,S","file":"3.6fd097b1bc.mjs","sourcesContent":["// Packages\nconst journalize = require('journalize');\nimport { timeFormat, format, precisionPrefix, formatPrefix, precisionFixed } from 'd3';\n\nconst titleCase = str => {\n  return str.toLowerCase().split(' ').map(word => {\n    return (word.charAt(0).toUpperCase() + word.slice(1));\n  }).join(' ');\n}\n\nexport const formatDate = date => {\n  let month = journalize.apmonth(date);\n  let day = timeFormat(\"%e\")(date);\n  return `${month} ${day}`;\n}\n\nexport const formatNumberWithCommas = num => {\n  return format(',')(num);\n}\n\nexport const formatNumberPrefix = num => {\n  // const p = precisionPrefix(1e5, 1.3e6);\n  // const f = formatPrefix(\".\" + p, 1.3e6);\n  const f = format('.2s');\n  return f(num);\n}\n\nexport const formatNumberAnnotation = num => {\n  const f = format('.3s');\n  const ft = format(\",\");\n  let formatted;\n  if(f(num).includes(\"M\")) {\n    formatted = f(num).replace(\"M\", \" million\");\n    return formatted;\n  } \n  // else if(f(num).includes(\"k\")) {\n  //   formatted = f(num).replace(\"k\", \" thousand\")\n  // }\n  return ft(num);\n}\n\nexport const formatNumberPrefixWithoutUnit = num => {\n  const f = format('.2s');\n  let formatted;\n  if(f(num).includes(\"M\")) {\n    formatted = f(num).replace(\"M\", \"\");\n  } else if(f(num).includes(\"k\")) {\n    formatted = f(num).replace(\"k\", \"\")\n  }\n  return formatted;\n}\n\nexport const formatNumberPct = num => {\n  const p = format(\",.1f\");\n  return `${p(num)}%`;\n}\n\nexport const formatCounties = county => {\n  const exceptions = [\n    {upper: \"MCMULLEN\", title: \"McMullen\"},\n    {upper: \"MCLENNAN\", title: \"McLennan\"},\n    {upper: \"MCCULLOCH\", title: \"McCulloch\"},\n    {upper: \"DEWITT\", title: \"DeWitt\"},\n  ]\n  if(exceptions.map(e => e.upper).includes(county)) {\n    return `${exceptions.find(e => e.upper == county).title} County`;\n  } else if(county == \"TOTAL\") {\n    return 'Texas';\n  } else {\n    return `${titleCase(county)} County`\n  }\n}\n\nexport const formatCountiesTitle = county => {\n  const exceptions = [\n    {upper: \"MCMULLEN\", title: \"McMullen\"},\n    {upper: \"MCLENNAN\", title: \"McLennan\"},\n    {upper: \"MCCULLOCH\", title: \"McCulloch\"},\n    {upper: \"DEWITT\", title: \"DeWitt\"},\n  ]\n  if(exceptions.map(e => e.upper).includes(county)) {\n    return `${exceptions.find(e => e.upper == county).title} County`;\n  } else if(county == \"TOTAL\") {\n    return 'Texas';\n  } else {\n    return `${titleCase(county)} County`\n  }\n}\n\nexport const formatCountiesShort = county => {\n  const exceptions = [\n    {upper: \"MCMULLEN\", title: \"McMullen\"},\n    {upper: \"MCLENNAN\", title: \"McLennan\"},\n    {upper: \"MCCULLOCH\", title: \"McCulloch\"},\n    {upper: \"DEWITT\", title: \"DeWitt\"},\n  ]\n  if(exceptions.map(e => e.upper).includes(county)) {\n    return exceptions.find(e => e.upper == county).title;\n  } else if(county == \"TOTAL\") {\n    return 'Texas';\n  } else {\n    return `${titleCase(county)}`\n  }\n}\n\nexport const formatYAxisTicks = num => {\n  if (num >= 1000000 && num % 1000000 === 0) {\n    return `${num / 1000000}M`;\n  }\n\n  const f = format('.2s');\n  let formatted = f(num);\n\n  if (formatted.includes('.0')) {\n    formatted = formatted.replace('.0', '');\n  }\n\n  if (formatted.includes('k')) {\n    formatted = formatted.replace('k', 'K');\n  }\n\n  return formatted;\n}\n","'use strict';\n\n// We depend on intersection-observer enough that it should just be assumed as necessary\nrequire('intersection-observer');\n"],"sourceRoot":""}