{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/data/EventBus.js","webpack:///./src/data/RequestManager.js","webpack:///./src/data/LayerManager.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","EventBus","Vue","store","Store","mounted","methods","updateQueryObj","_keyValArr","this","$store","commit","Requests","_body","_tableSuffix","_column","Config","api","hosts","nodeHostAddress","_lng","_lat","_age","_geoid","state","district","_state","StateList","filter","abbrev","propublica","keys","ProPublicaAPIKey","_stateFips","_field","LayerManager","_map","self","map","getSource","districtType","isSourceLoaded","getLayer","layersConfig","labelLayerArray","forEach","layer","id","includes","setLayoutProperty","on","setLabels","e","getters","getDistrictType","off","layers","layerArray","existingLayers","getStyle","indexOf","params","beforeId","addLayer","console","warn","choroplethLayerArray","idx","mapMethods","setChoroplethStyle","val","getDistrictFIPS","getgeoTypeVisible","SetChoroplethFillVisibility","SetChoroplethOutlineVisiblity","toVisible","layout","choroLayerId","geoTypeVisible","isVap","CountyLayerIds","mixOpacity","getZoom","maxWide","minClose","isStyleLoaded","paint","setPaintProperty","validate","_districtType","setFilter","Enums","LEG_BODY","b","ClearOldHighlight","bounded","dataUrl","sourceDataURL","replace","getMapBoundsString","fetch","resp","json","setData","scale","belowThreshold","step","color","isBetween","_val","a","minInclusive","maxInclusive","min","Math","max","aReq","bReq"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrB,eAAgB,GAGbK,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU6B,QAGnC,IAAIC,EAASF,EAAiB5B,GAAY,CACzCK,EAAGL,EACH+B,GAAG,EACHF,QAAS,IAUV,OANAf,EAAQd,GAAUW,KAAKmB,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG/DI,EAAOC,GAAI,EAGJD,EAAOD,QAKfH,EAAoBM,EAAIlB,EAGxBY,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,SAASL,EAASM,EAAMC,GAC3CV,EAAoBW,EAAER,EAASM,IAClC3B,OAAO8B,eAAeT,EAASM,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhEV,EAAoBe,EAAI,SAASZ,GACX,qBAAXa,QAA0BA,OAAOC,aAC1CnC,OAAO8B,eAAeT,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DpC,OAAO8B,eAAeT,EAAS,aAAc,CAAEe,OAAO,KAQvDlB,EAAoBmB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQlB,EAAoBkB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKxC,OAAOyC,OAAO,MAGvB,GAFAvB,EAAoBe,EAAEO,GACtBxC,OAAO8B,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOlB,EAAoBQ,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRtB,EAAoB0B,EAAI,SAAStB,GAChC,IAAIM,EAASN,GAAUA,EAAOiB,WAC7B,WAAwB,OAAOjB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAJ,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASgB,EAAQC,GAAY,OAAO9C,OAAOC,UAAUC,eAAeC,KAAK0C,EAAQC,IAGzG5B,EAAoB6B,EAAI,GAExB,IAAIC,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAW3C,KAAKsC,KAAKK,GAC5CA,EAAW3C,KAAOf,EAClB0D,EAAaA,EAAWG,QACxB,IAAI,IAAItD,EAAI,EAAGA,EAAImD,EAAWjD,OAAQF,IAAKP,EAAqB0D,EAAWnD,IAC3E,IAAIU,EAAsB2C,EAI1BzC,EAAgBJ,KAAK,CAAC,EAAE,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,eAAe,eAAe,eAAe,eAAe,eAAe,eAAe,eAAe,eAAe,iBAEhgBM,K,sCCvJT,8DAEayC,EAAW,IAAIC,OAAI,CAC5BC,MAAMC,OACNC,QAAS,aAGTC,QAAQ,CACJC,eADI,SACWC,GACXC,KAAKC,OAAOC,OAAO,cAAcH,Q,kKCNxBI,E,WACjB,aAAa,uB,sEAEYC,EAAOC,EAAcC,GAC5C,gBAAUC,OAAOC,IAAIC,MAAMC,gBAA3B,gBAAkDN,EAAlD,YAA2DC,EAA3D,iDAAgHC,K,6CAIpFK,EAAKC,EAAKR,EAAOS,GAE3C,gBAAUN,OAAOC,IAAIC,MAAMC,gBAA3B,6BAA+DN,EAA/D,YAAwES,EAAxE,aAAiFF,EAAjF,YAAyFC,EAAzF,qD,6CAG4BR,EAAOC,EAAaS,GAEhD,gBAAUP,OAAOC,IAAIC,MAAMC,gBAA3B,kBAAoDN,EAApD,YAA6DC,EAA7D,uDAAuHS,EAAvH,O,wCAGyBC,EAAMC,GAEjC,IAAMC,EAASC,OAAUC,QAAO,SAAC5D,GAAD,OAAKA,EAAEiB,QAAUuC,KAC3CK,EAASH,EAAO,GAAGG,OAEzB,OAAGJ,EACD,UAAUT,OAAOC,IAAIC,MAAMY,WAA3B,sCAAmED,EAAnE,YAA6EJ,EAA7E,iBAEA,UAAUT,OAAOC,IAAIC,MAAMY,WAA3B,oCAAiED,EAAjE,mB,6CAIF,MAAO,CACL,YAAab,OAAOC,IAAIc,KAAKC,oB,mCAIbC,EAAYpB,EAAOS,GAAuB,IAAjBY,EAAiB,uDAAR,QAIpD,OAAGD,EACD,UAAUjB,OAAOC,IAAIC,MAAMC,gBAA3B,oBAAsDN,EAAtD,YAA+DS,EAA/D,wDAAkHW,EAAlH,kCAAsJC,EAAtJ,0BAEF,UAAUlB,OAAOC,IAAIC,MAAMC,gBAA3B,oBAAsDN,EAAtD,YAA+DS,EAA/D,wDAAmHY,EAAnH,8B,0RCnCeC,E,WACjB,WAAYC,GAAM,uBACd3B,KAAK2B,KAAOA,E,uEAIZ,IAAMC,EAAO5B,KACT6B,EAAM7B,KAAK2B,KAAKE,IAEhBA,EAAIC,UAAJ,sBAA6BF,EAAKD,KAAKI,aAAvC,aACAF,EAAIG,eAAJ,sBAAkCJ,EAAKD,KAAKI,aAA5C,aAEA,qBADOF,EAAII,SAAJ,sBAA4BL,EAAKD,KAAKI,eAI7CxB,OAAO2B,aAAaC,gBAAgBC,SAAQ,SAAAC,GACpCA,EAAMC,GAAGC,SAASX,EAAKD,KAAKI,cAC5BF,EAAIW,kBAAkBH,EAAMC,GAAI,aAAc,WAE9CT,EAAIW,kBAAkBH,EAAMC,GAAI,aAAc,WAKtDV,EAAKD,KAAKE,IAAIY,GAAG,aAAczC,KAAK0C,a,gCAIlCC,GAEN,IAAMf,EAAO5B,KACP+B,EAAepC,OAAMiD,QAAQC,gBAE/B7C,KAAK8B,UAAL,sBAA8BC,EAA9B,aACA/B,KAAKgC,eAAL,sBAAmCD,EAAnC,aAEA,qBADO/B,KAAKiC,SAAL,sBAA6BF,KAGpCxB,OAAO2B,aAAaC,gBAAgBC,SAAQ,SAAAC,GACpCA,EAAMC,GAAGC,SAASR,GAElBH,EAAKY,kBAAkBH,EAAMC,GAAI,aAAc,WAE/CV,EAAKY,kBAAkBH,EAAMC,GAAI,aAAc,WAI3DV,EAAKkB,IAAI,aAAc9C,KAAK0C,a,wCAQ5B,IALc,WACVb,EAAM7B,KAAK2B,KAAKE,IACdkB,EAASxC,OAAO2B,aAAac,WAC7BC,EAAiBpB,EAAIqB,WAAWH,OAAOlB,KAAI,SAAAlE,GAAC,OAAIA,EAAE2E,MAE/C3E,EAAI,EAAGA,EAAIoF,EAAO5G,OAAQwB,IAC1BkE,EAAII,SAASc,EAAOpF,GAAG2E,MACpBW,EAAeE,QAAQJ,EAAOpF,GAAGyF,OAAOC,WAAa,EACrDxB,EAAIyB,SAASP,EAAOpF,GAAIoF,EAAOpF,GAAGyF,OAAOC,WAEzCE,QAAQC,KAAR,uCAA6CT,EAAOpF,GAAG2E,KACvDT,EAAIyB,SAASP,EAAOpF,MAMhC4C,OAAO2B,aAAauB,qBAAqBrB,SAAQ,SAACzE,EAAG+F,GACjD,EAAK/B,KAAKgC,WAAWC,mBAAmBjG,EAAE2E,S,sDAIlBuB,GAC5B,IACM9B,EAAepC,OAAMiD,QAAQC,gBACVlD,OAAMiD,QAAQkB,gBAEC,WAApCnE,OAAMiD,QAAQmB,mBAAsE,qBAApCpE,OAAMiD,QAAQmB,kBAE9D/D,KAAKgE,4BAA4BjC,GAAc,GAE/C/B,KAAKgE,4BAA4BjC,GAAc,GAGnD/B,KAAKiE,8BAA8BlC,K,kDAIX8B,EAAKK,GAC7B,IAAMtC,EAAO5B,KACQL,OAAMiD,QAAQC,gBACVlD,OAAMiD,QAAQkB,gBAEnCI,EACA3D,OAAO2B,aAAauB,qBAAqBrB,SAAQ,SAACC,GAE1CA,EAAMC,KAAOuB,EACbjC,EAAKD,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,YAEpDD,EAAM8B,QAAW9B,EAAMC,GAAGC,SAAS,UAAaF,EAAMC,GAAGC,SAAS,qBAAwBF,EAAMC,GAAGC,SAAS,YAAeF,EAAMC,GAAGC,SAAS,WAC7IX,EAAKD,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,WAKpE/B,OAAO2B,aAAauB,qBAAqBrB,SAAQ,SAACC,GACzCA,EAAMC,GAAGC,SAAS,UAAaF,EAAMC,GAAGC,SAAS,YAAeF,EAAMC,GAAGC,SAAS,qBACnFX,EAAKD,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,a,oDAS1CuB,GAC1B,IAAMjC,EAAO5B,KACP+B,EAAepC,OAAMiD,QAAQC,gBACVlD,OAAMiD,QAAQkB,gBAGvCvD,OAAO2B,aAAauB,qBAAqBrB,SAAQ,SAACC,GAC1CA,EAAMC,GAAGC,SAASsB,KAASxB,EAAMC,GAAGC,SAAS,YACzCF,EAAMC,GAAGC,SAAS,cAEtBX,EAAKD,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,YAEnDD,EAAM8B,QAAW9B,EAAMC,GAAGC,SAAS,UAAaF,EAAMC,GAAGC,SAAS,qBAAwBF,EAAMC,KAAOP,GAExGH,EAAKD,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,a,8CAUhD4B,GAAwC,WAA7BE,EAA6B,uDAAd,aAE9C7D,OAAO2B,aAAauB,qBAAqBrB,SAAQ,SAACC,GAC1C6B,EACI7B,EAAMC,KAAO8B,GAGT/B,EAAMC,GAAGC,SAAS,YAAcF,EAAMC,GAAGC,SAAS5C,OAAMiD,QAAQC,iBAFpE,EAAKlB,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,WAKpD,EAAKX,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,QAK5DD,EAAMC,GAAGC,SAAS5C,OAAMiD,QAAQC,iBAChC,EAAKlB,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,WAExD,EAAKX,KAAKE,IAAIW,kBAAkBH,EAAMC,GAAI,aAAc,WAKpE,IAAI+B,EAAiB,eACjBH,IACAG,EAAiBD,EAAa7B,SAAS,SAAW,SAAW,oBAK5C,cAAjB6B,GAEA5E,OAASM,eAAe,CAAC,gBAAiB,SAC1CN,OAASM,eAAe,CAAC,cAAe,KAExCN,OAASM,eAAe,CAAC,iBAAkB,IAG/C,IAAMwE,EAA0B,cAAjBF,EAGfzE,OAAMO,OAAO,oBAAqB,CAAC2D,IAAIQ,EAAgBC,Y,+CAGlCJ,GAAW,WAC1BK,EAAiB,CAAC,iBAAkB,yBAC1CA,EAAenC,SAAQ,SAACE,GACpB,EAAKX,KAAKE,IAAIW,kBAAkBF,EAAI,aAAc4B,EAAY,UAAY,a,2CAK7DL,GACjB,IAAMjC,EAAO5B,KAKPwE,GAJO5C,EAAKD,KAAKE,IAAI4C,UACXlE,OAAO2B,aAAawC,QACnBnE,OAAO2B,aAAayC,SAElB,IACf/C,EAAKD,KAAKE,IAAI+C,iBACdrE,OAAO2B,aAAauB,qBAAqBrB,SAAQ,SAACC,GAC1CA,EAAMwC,MAAM,iBACZjD,EAAKD,KAAKE,IAAIiD,iBAAiBzC,EAAMC,GAAI,gBAAiBuB,EAAMW,EAAY,CACxEO,UAAU,S,wCAOZC,GAEdhF,KAAK2B,KAAKE,IAAIoD,UAAd,UAA2BD,EAA3B,sBAA8D,CAC1D,KACA,CAAC,MAAO,SACR,S,2CAKa,WACjB5I,OAAOkF,KAAK4D,OAAMC,UAAU/C,SAAQ,SAACgD,GACjC,EAAKC,kBAAkBH,OAAMC,SAASC,S,sMAMtCrC,EAASxC,OAAO2B,aAAac,WAAW7B,QAAO,SAAAxD,GAAC,OAAIA,EAAE2H,WAEjD3H,EAAI,E,YAAGA,EAAIoF,EAAO5G,Q,wBACjBoJ,EAAUxC,EAAOpF,GAAG6H,cAAcC,QAAQ,WAAY9F,OAAMiD,QAAQ8C,oB,SACvDC,MAAMJ,G,cAAnBK,E,gBACaA,EAAKC,O,OAAlBlK,E,OAENqE,KAAK2B,KAAKE,IAAIC,UAAUiB,EAAOpF,GAAG2E,IAAIwD,QAAQnK,G,QALfgC,I,wJAU9BkG,EAAKkC,GAA+B,IAAxBC,EAAwB,wDAEzC,GAAIA,EAAgB,MAAO,gBAE3B,IAAK,IAAIzI,EAAI,EAAGA,EAAIwI,EAAM5J,OAAQoB,IAC9B,GAA6B,IAAzBwI,EAAMxI,GAAG0I,KAAK9J,QACd,GAAU,IAANoB,GACA,IAC0B,IAArBwI,EAAMxI,GAAG0I,KAAK,KAAiBpC,GAAOkC,EAAMxI,GAAG0I,KAAK,KAA6B,IAArBF,EAAMxI,GAAG0I,KAAK,KAAgBpC,IAAQkC,EAAMxI,GAAG0I,KAAK,GACjH,OAAOF,EAAMxI,GAAG2I,WAIpB,IAC0B,IAArBH,EAAMxI,GAAG0I,KAAK,KAAiBpC,GAAOkC,EAAMxI,GAAG0I,KAAK,KAA6B,IAArBF,EAAMxI,GAAG0I,KAAK,KAAgBpC,IAAQkC,EAAMxI,GAAG0I,KAAK,GACjH,OAAOF,EAAMxI,GAAG2I,WAIrB,GAAIlG,KAAKmG,UAAUtC,EAAKkC,EAAMxI,GAAG0I,MACpC,OAAOF,EAAMxI,GAAG2I,MAIxB,MAAO,kB,gCAGDE,EAAMH,GACZ,IAAMI,EAAIJ,EAAK,GACTb,EAAIa,EAAK,GACTK,EAAeL,EAAK,GACpBM,EAAeN,EAAK,GAEtBO,EAAMC,KAAKD,IAAI1J,MAAM2J,KAAM,CAACJ,EAAGjB,IAC/BsB,EAAMD,KAAKC,IAAI5J,MAAM2J,KAAM,CAACJ,EAAGjB,IAE7BuB,EAAOL,EAAeF,GAAQI,EAAMJ,EAAOI,EAC3CI,EAAOL,EAAeH,GAAQM,EAAMN,EAAOM,EAEjD,OAAQC,GAAQC,M","file":"js/app~d7837c60.a704b658.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app~d7837c60\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors~0f485567\",\"chunk-vendors~987e6011\",\"chunk-vendors~c616263e\",\"chunk-vendors~73914085\",\"chunk-vendors~f63129db\",\"chunk-vendors~c1dd23ef\",\"chunk-vendors~ec8c427e\",\"chunk-vendors~fdc6512a\",\"chunk-vendors~d2305125\",\"chunk-vendors~4a7e9e0b\",\"chunk-vendors~793fb972\",\"chunk-vendors~85da75cb\",\"chunk-vendors~ce053847\",\"chunk-vendors~11c2601a\",\"chunk-vendors~b9701886\",\"app~d0ae3f07\",\"app~85f37a35\",\"app~9b7c0466\",\"app~a97bfcba\",\"app~f6586248\",\"app~bcdd6051\",\"app~336be08d\",\"app~454ccc04\",\"app~70708b28\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Vue from 'vue';\r\nimport Store from './Store/Store';\r\nexport const EventBus = new Vue({\r\n store:Store,\r\n mounted: function(){\r\n\r\n },\r\n methods:{\r\n updateQueryObj(_keyValArr){\r\n this.$store.commit('setQueryObj',_keyValArr);\r\n }\r\n }\r\n});","import {Config} from './Config/Config';\r\nimport StateList from './StateList';\r\n\r\nexport default class Requests {\r\n constructor(){}\r\n \r\n static getMVTQueryString(_body, _tableSuffix, _column){\r\n return `${Config.api.hosts.nodeHostAddress}/mvt/${_body}_${_tableSuffix}/{z}/{x}/{y}?geom_column=geom&columns=${_column}`\r\n }\r\n\r\n \r\n static getDistrictsFromLatLng(_lng,_lat,_body, _age){\r\n //Example: http://localhost:3001/intersect_point/public.%22stateAssembly_new%22/-76.1175%2C42.9677%2C4326?geom_column=geom&columns=geoid&distance=0\r\n return `${Config.api.hosts.nodeHostAddress}/intersect_point/\"${_body}_${_age}\"/${_lng},${_lat},4326?geom_column=geom&columns=geoid&distance=0`\r\n }\r\n\r\n static getDistrictBoundingBox(_body, _tableSuffix,_geoid){\r\n //Example: http://localhost:3001/bbox/%22congress_new%22?geom_column=geom&srid=4326&filter=geoid%3D'3625'\r\n return `${Config.api.hosts.nodeHostAddress}/bbox/\"${_body}_${_tableSuffix}\"?geom_column=geom&srid=4326&filter=geoid='${_geoid}'`\r\n }\r\n\r\n static getProPublicaData(state,district){\r\n //Example: https://api.propublica.org/congress/members/house/OR/4/current.json (API Key in Header!)\r\n const _state = StateList.filter((s)=>s.value === state);\r\n const abbrev = _state[0].abbrev;\r\n \r\n if(district){\r\n return `${Config.api.hosts.propublica}/congress/v1/members/house/${abbrev}/${district}/current.json`\r\n }\r\n return `${Config.api.hosts.propublica}/congress/members/senate/${abbrev}/current.json`\r\n }\r\n\r\n static getProPublicaHeaders(){\r\n return {\r\n 'X-API-Key': Config.api.keys.ProPublicaAPIKey\r\n }\r\n }\r\n\r\n static getCentroids(_stateFips, _body, _age, _field = 'geoid'){\r\n //Example: http://localhost:3001/labels/%22stateSenate_old%22?geom_column=geom&filter=statefips%3D'36'&srid=4326&force_on_surface=true\r\n\r\n //https://dev-api.districting2021.com/labels/congress_demographics?labelfield=distlabel&geom_column=geom&srid=4326&force_on_surface=true\r\n if(_stateFips){\r\n return `${Config.api.hosts.nodeHostAddress}/labels/\"${_body}_${_age}\".json?geom_column=geom&filter=statefips%3D'${_stateFips}'&srid=4326&labelfield=${_field}&force_on_surface=true`\r\n }\r\n return `${Config.api.hosts.nodeHostAddress}/labels/\"${_body}_${_age}\".json?geom_column=geom&srid=4326&labelfield=${_field}&force_on_surface=true`\r\n\r\n }\r\n\r\n }","import {\r\n compose\r\n} from 'underscore';\r\nimport {\r\n Config,\r\n Enums\r\n} from './Config/Config';\r\nimport Store from './Store/Store';\r\nimport {EventBus} from './EventBus';\r\n\r\nexport default class LayerManager {\r\n constructor(_map) {\r\n this._map = _map;\r\n }\r\n //https://docs.mapbox.com/mapbox-gl-js/example/variable-label-placement/\r\n UpdateLabelVisibility() {\r\n const self = this;\r\n let map = this._map.map;\r\n if (\r\n map.getSource(`fips-labels-${self._map.districtType}-source`) &&\r\n map.isSourceLoaded(`fips-labels-${self._map.districtType}-source`) &&\r\n typeof map.getLayer(`fips-labels-${self._map.districtType}`) !==\r\n \"undefined\"\r\n ) {\r\n //If everything is loaded already, go for it: change the visibility\r\n Config.layersConfig.labelLayerArray.forEach(layer => {\r\n if (layer.id.includes(self._map.districtType)) {\r\n map.setLayoutProperty(layer.id, \"visibility\", \"visible\");\r\n } else {\r\n map.setLayoutProperty(layer.id, \"visibility\", \"none\");\r\n }\r\n });\r\n } else {\r\n //Otherwise attach an event handler to the sourcedata event to make the changes after things are loaded\r\n self._map.map.on(\"sourcedata\", this.setLabels);\r\n }\r\n }\r\n //The event handler for when source data is loaded\r\n setLabels(e) {\r\n\r\n const self = this;\r\n const districtType = Store.getters.getDistrictType;\r\n if (\r\n this.getSource(`fips-labels-${districtType}-source`) &&\r\n this.isSourceLoaded(`fips-labels-${districtType}-source`) &&\r\n typeof this.getLayer(`fips-labels-${districtType}`) !==\r\n \"undefined\"\r\n ) {\r\n Config.layersConfig.labelLayerArray.forEach(layer => {\r\n if (layer.id.includes(districtType)) {\r\n // console.log(layer.id+ ' visible')\r\n self.setLayoutProperty(layer.id, \"visibility\", \"visible\");\r\n } else {\r\n self.setLayoutProperty(layer.id, \"visibility\", \"none\");\r\n }\r\n });\r\n }\r\n self.off(\"sourcedata\", this.setLabels); //Remove the handler!\r\n }\r\n\r\n addCustomLayers() {\r\n let map = this._map.map;\r\n const layers = Config.layersConfig.layerArray;\r\n const existingLayers = map.getStyle().layers.map(l => l.id);\r\n\r\n for (let l = 0; l < layers.length; l++) {\r\n if (!map.getLayer(layers[l].id)) {\r\n if (existingLayers.indexOf(layers[l].params.beforeId) > -1) {\r\n map.addLayer(layers[l], layers[l].params.beforeId);\r\n } else {\r\n console.warn(`didn't find before layer for ${layers[l].id}`)\r\n map.addLayer(layers[l]);\r\n }\r\n\r\n }\r\n }\r\n\r\n Config.layersConfig.choroplethLayerArray.forEach((l, idx) => {\r\n this._map.mapMethods.setChoroplethStyle(l.id);\r\n })\r\n }\r\n //Same idea as labels. Do everything if it's ready. Otherwise attach an event handler\r\n UpdateChoroplethLayerVisibility(val) {\r\n const self = this;\r\n const districtType = Store.getters.getDistrictType;\r\n const selectedDistrict = Store.getters.getDistrictFIPS;\r\n //console.log(Store.getters.getgeoTypeVisible)\r\n if (Store.getters.getgeoTypeVisible === 'tracts' || Store.getters.getgeoTypeVisible === 'voting-precincts') {\r\n\r\n this.SetChoroplethFillVisibility(districtType, false);\r\n } else {\r\n this.SetChoroplethFillVisibility(districtType, true);\r\n }\r\n\r\n this.SetChoroplethOutlineVisiblity(districtType)\r\n\r\n }\r\n\r\n SetChoroplethFillVisibility(val, toVisible) {\r\n const self = this;\r\n const districtType = Store.getters.getDistrictType;\r\n const selectedDistrict = Store.getters.getDistrictFIPS;\r\n\r\n if (toVisible) {\r\n Config.layersConfig.choroplethLayerArray.forEach((layer) => {\r\n\r\n if (layer.id === val) {\r\n self._map.map.setLayoutProperty(layer.id, \"visibility\", \"visible\");\r\n } else {\r\n if (layer.layout && !layer.id.includes('tract') && !layer.id.includes('voting-precincts') && !layer.id.includes('outline') && !layer.id.includes('voting')) {\r\n self._map.map.setLayoutProperty(layer.id, \"visibility\", \"none\");\r\n }\r\n }\r\n });\r\n } else {\r\n Config.layersConfig.choroplethLayerArray.forEach((layer) => {\r\n if (!layer.id.includes('tract') && !layer.id.includes('outline') && !layer.id.includes('voting-precincts')) {\r\n self._map.map.setLayoutProperty(layer.id, \"visibility\", \"none\");\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n SetChoroplethOutlineVisiblity(val) {\r\n const self = this;\r\n const districtType = Store.getters.getDistrictType;\r\n const selectedDistrict = Store.getters.getDistrictFIPS;\r\n\r\n\r\n Config.layersConfig.choroplethLayerArray.forEach((layer) => {\r\n if (layer.id.includes(val) && (layer.id.includes('outline') ||\r\n layer.id.includes('highlight'))) {\r\n //console.log(layer.id + 'visible')\r\n self._map.map.setLayoutProperty(layer.id, \"visibility\", \"visible\");\r\n } else {\r\n if ((layer.layout && !layer.id.includes('tract') && !layer.id.includes('voting-precincts')) && layer.id !== districtType) {\r\n //.log(layer.id + ' hidden')\r\n self._map.map.setLayoutProperty(layer.id, \"visibility\", \"none\");\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n //Turn on tract layer, turn off choropleth fill, keep on choropleth outline for district type\r\n //OR turn off all layers except active district type fill and outline\r\n SetChoroLayerVisibility(toVisible, choroLayerId = 'tract-cvap') {\r\n\r\n Config.layersConfig.choroplethLayerArray.forEach((layer) => {\r\n if (toVisible) {\r\n if (layer.id === choroLayerId) {\r\n this._map.map.setLayoutProperty(layer.id, \"visibility\", \"visible\");\r\n } else {\r\n if (layer.id.includes('outline') && layer.id.includes(Store.getters.getDistrictType)) {\r\n this._map.map.setLayoutProperty(layer.id, \"visibility\", \"visible\");\r\n } else {\r\n this._map.map.setLayoutProperty(layer.id, \"visibility\", \"none\");\r\n }\r\n\r\n }\r\n } else {\r\n if (layer.id.includes(Store.getters.getDistrictType)) {\r\n this._map.map.setLayoutProperty(layer.id, \"visibility\", \"visible\");\r\n } else {\r\n this._map.map.setLayoutProperty(layer.id, \"visibility\", \"none\");\r\n }\r\n }\r\n\r\n });\r\n let geoTypeVisible = 'jurisdiction';\r\n if (toVisible) {\r\n geoTypeVisible = choroLayerId.includes('tract') ? 'tracts' : 'voting-precincts';\r\n\r\n }\r\n //console.log(geoTypeVisible)\r\n // if(){\r\n if (choroLayerId === 'tract-vap') {\r\n \r\n EventBus.updateQueryObj(['tractVAPLayer', 'true']);\r\n EventBus.updateQueryObj(['tractLayer', -1]);\r\n } else {\r\n EventBus.updateQueryObj(['tractVAPLayer', -1]);\r\n }\r\n \r\n const isVap = (choroLayerId === 'tract-vap');\r\n //console.log(isVap)\r\n //}console\r\n Store.commit(\"setgeoTypeVisible\", {val:geoTypeVisible, isVap})\r\n }\r\n\r\n SetCountyLayerVisibility(toVisible) {\r\n const CountyLayerIds = ['county-outline', 'county-outline-labels'];\r\n CountyLayerIds.forEach((id) => {\r\n this._map.map.setLayoutProperty(id, \"visibility\", toVisible ? \"visible\" : \"none\");\r\n })\r\n\r\n }\r\n\r\n SetChoroplethOpacity(val) {\r\n const self = this;\r\n const zoom = self._map.map.getZoom();\r\n const maxWide = Config.layersConfig.maxWide;\r\n const minClose = Config.layersConfig.minClose;\r\n\r\n const mixOpacity = .8; //(zoom < maxWide && zoom > minClose) ? .8 : 1;\r\n if (self._map.map.isStyleLoaded()) {\r\n Config.layersConfig.choroplethLayerArray.forEach((layer) => {\r\n if (layer.paint['fill-opacity']) {\r\n self._map.map.setPaintProperty(layer.id, \"fill-opacity\", +val * mixOpacity, {\r\n validate: false\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n ClearOldHighlight(_districtType) {\r\n\r\n this._map.map.setFilter(`${_districtType}-highlight-outline`, [\r\n \"==\",\r\n [\"get\", \"geoid\"],\r\n \"-1\",\r\n ]);\r\n\r\n }\r\n\r\n ClearAllHighlights() {\r\n Object.keys(Enums.LEG_BODY).forEach((b) => {\r\n this.ClearOldHighlight(Enums.LEG_BODY[b]);\r\n })\r\n }\r\n\r\n //Depricated but may be useful if we need geojson data later\r\n async updateBoundedLayers() {\r\n let layers = Config.layersConfig.layerArray.filter(l => l.bounded);\r\n\r\n for (let l = 0; l < layers.length; l++) {\r\n const dataUrl = layers[l].sourceDataURL.replace('%%BBOX%%', Store.getters.getMapBoundsString);\r\n const resp = await fetch(dataUrl);\r\n const data = await resp.json();\r\n\r\n this._map.map.getSource(layers[l].id).setData(data);\r\n }\r\n\r\n }\r\n\r\n GetColor(val, scale, belowThreshold = false) {\r\n //TODO: If pop is less than threshold then return clear\r\n if (belowThreshold) return 'rgba(0,0,0,0)';\r\n\r\n for (let s = 0; s < scale.length; s++) {\r\n if (scale[s].step.length === 2) {\r\n if (s === 0) {\r\n if (\r\n (scale[s].step[1] === false && +val < +scale[s].step[0]) || (scale[s].step[1] === true && +val <= +scale[s].step[0])) {\r\n return scale[s].color;\r\n }\r\n\r\n } else {\r\n if (\r\n (scale[s].step[1] === false && +val > +scale[s].step[0]) || (scale[s].step[1] === true && +val >= +scale[s].step[0])) {\r\n return scale[s].color;\r\n }\r\n }\r\n\r\n } else if (this.isBetween(val, scale[s].step)) {\r\n return scale[s].color;\r\n }\r\n }\r\n\r\n return 'rgba(0,0,0,0)'\r\n }\r\n\r\n isBetween(_val, step) {\r\n const a = step[0];\r\n const b = step[2];\r\n const minInclusive = step[1];\r\n const maxInclusive = step[3];\r\n\r\n var min = Math.min.apply(Math, [a, b]),\r\n max = Math.max.apply(Math, [a, b]);\r\n\r\n const aReq = minInclusive ? _val >= min : _val > min;\r\n const bReq = maxInclusive ? _val <= max : _val < max;\r\n\r\n return (aReq && bReq);\r\n }\r\n\r\n}"],"sourceRoot":""}