{"version":3,"sources":["common/Button/Button.tsx","common/Button/LinkButton.tsx","common/Button/index.ts","helpers/cognitoToken.ts","colorPalette/ColorPalette.ts","common/LoadingSpinner/LoadingSpinner.tsx","common/LoadingSpinner/index.ts","images/cities/miami/logo.png","images/cities/atlanta/logo.png","images/mocafi-logo.jpg","../node_modules/@aws-amplify/ui-components/dist/esm-es5 lazy /^/.//.*/.entry/.js$/ include: //.entry/.js$/ exclude: //.system/.entry/.js$/ groupOptions: {} namespace object","theme/theme.ts","common/NavBar/NavBar.styles.tsx","common/NavBar/NavBar.tsx","common/NavBar/index.ts","common/ProtectedRoute/ProtectedRoute.tsx","AppRouter.tsx","App.tsx","serviceWorker.ts","aws-exports.js","index.tsx","assets/functions.js","colorPalette/index.ts","common/Box/Box.tsx","common/Box/index.ts","services/municipalityService.ts","AuthStateProvider.tsx","common/Button/Button.styles.tsx"],"names":["Button","props","backgroundcolor","backgroundColor","textcolor","textColor","bordercolor","borderColor","disabled","onClick","type","children","LinkButton","href","getCognitoToken","a","Auth","currentSession","token","getIdToken","getJwtToken","ColorPalette","DarkGrey","AlabasterWhite","JaffaOrange","White","Red","Green","Pelorous","Silver","RoyalBlue","GrayChateau","Boulder","AlizarinCrimson","SteelBlue","SanMarino","PersianRed","TallPoppy","PelorousAlpha0","LoadingSpinner","Box","height","width","display","flexDirection","justifyContent","alignItems","Spinner","animation","role","className","module","exports","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","keys","Object","navbarColor","theme","honolulu","fontFamily","Wrapper","createGlobalStyle","StyledNavbar","styled","div","StyledNav","Nav","StyledLink","Link","isactive","StyledLogoText","marginLeft","StyledNavDropdown","NavDropdown","validateCityLogo","municipality","window","location","host","split","miami","atlanta","mocafiLogo","history","signOut","push","reload","localStorage","clear","console","log","NavBar","withRouter","useHistory","useState","setRole","setMunicipality","context","useContext","Context","getUserRole","payload","string_to_slug","useEffect","pl","pr","alt","src","userInfo","toLowerCase","style","marginRight","toUpperCase","slice","title","firstName","lastName","isAdmin","Item","currentProject","municipalProgram","Divider","currentNavigationTab","toString","setItem","JSON","stringify","setNavigationTab","as","to","ProtectedRoute","level","path","Component","component","render","rest","some","l","ReportingPage","lazy","FundingRequests","ScheduledJobManagement","ProjectsPage","SMSPage","NewProjectPage","Adjustments","EditProjectPage","NewOrdersPage","SingleOrderFormPage","OrderConfirmationPage","ViewProjectPage","BulkResult","PaymentResult","BulkCSVPage","MassFunding","BulkOrderPage","AccountsPage","ViewAccountPage","Funding","OrderDetailsPage","CardDetailsPage","LoadFundsPage","LoadFundsErrorPage","UserDeactivationPage","AppRouter","fallback","exact","privateRoute","URLRoute","secondLevelLocation","pathname","BaseRoute","pathArray","thirdLevelLocation","Amplify","configure","region","process","userPoolId","userPoolWebClientId","App","mode","Boolean","hostname","match","awsmobile","awsExports","ReactDOM","StrictMode","AuthStateProvider","document","getElementById","navigator","serviceWorker","ready","registration","unregister","catch","error","message","str","replace","from","i","length","RegExp","charAt","color","space","position","top","bottom","left","right","minWidth","maxWidth","fontSize","textAlign","borders","flex","order","alignSelf","minHeight","maxHeight","alignContent","flexWrap","flexBasis","justifySelf","verticalAlign","zIndex","overflow","getDomain","municipalityName","cognitoToken","myInit","headers","city","method","fetch","response","json","createContext","isSignedIn","username","groupId","isApprover","maxAmountAuthCard","maxAmountAuthLifetime","maxAmountAuthOrder","setCurrentProject","undefined","setCurrentAccount","currentAccount","currentSavedBulkCSV","setCurrentSavedBulkCSV","singleOrderResident","setSingleOrderReciever","setCurrentOrder","currentOrder","setCurrentCard","currentCard","setAuthUser","getAttribute","data","attr","attributes","hasOwnProperty","AuthStateApp","storedProject","parse","getItem","storedBulkCSVUpload","storedAccount","storedCard","storedCurrentNavigationTab","storedOrderResident","storedOrder","authUser","openModal","setOpenModal","ModalStyle","Modal","Body","validateURL","user","includes","success","React","onAuthUIStateChange","nextAuthState","authData","AuthState","SignedIn","Provider","value","onError","currentTarget","onerror","show","centered","padding","hideSignUp","slot","headerText","usernameAlias","StyledButton"],"mappings":"sNAoBeA,EAjBA,SAACC,GACd,OACE,oCACE,kBAAC,IAAD,CACEC,gBAAiBD,EAAME,gBACvBC,UAAWH,EAAMI,UACjBC,YAAaL,EAAMM,YACnBC,SAAUP,EAAMO,SAChBC,QAASR,EAAMQ,QACfC,KAAMT,EAAMS,MAEXT,EAAMU,YCOAC,EAlBI,SAACX,GAClB,OACE,oCACE,kBAAC,IAAD,CACEC,gBAAiBD,EAAME,gBACvBC,UAAWH,EAAMI,UACjBC,YAAaL,EAAMM,YACnBC,SAAUP,EAAMO,SAChBC,QAASR,EAAMQ,QACfC,KAAMT,EAAMS,KACZG,KAAMZ,EAAMY,MAEXZ,EAAMU,YCbAX,O,wGCAFc,EAAe,uCAAG,4BAAAC,EAAA,sEACTC,IAAKC,iBADI,cACvBC,EADuB,yBAEtBA,EAAMC,aAAaC,eAFG,2CAAH,sD,iCCkBbC,IApBM,CACnBC,SAAU,UACVC,eAAgB,UAChBC,YAAa,UACbC,MAAO,UACPC,IAAK,UACLC,MAAO,UACPC,SAAU,UACVC,OAAQ,UACRC,UAAW,UACXC,YAAa,UACbC,QAAS,UACTC,gBAAiB,UACjBC,UAAW,UACXC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,eAAgB,wB,sECIHC,EAjBQ,WACrB,OACE,kBAACC,EAAA,EAAD,CACEC,OAAO,QACPC,MAAM,QACNC,QAAQ,OACRC,cAAc,SACdC,eAAe,SACfC,WAAW,UAEX,kBAACC,EAAA,EAAD,CAASC,UAAU,SAASC,KAAK,UAC/B,0BAAMC,UAAU,WAAhB,iBCdOX,O,oBCDfY,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,yC,gFCA3C,IAAIC,EAAM,CACT,qCAAsC,CACrC,IACA,IAED,mCAAoC,CACnC,IACA,IAED,mCAAoC,CACnC,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,uCAAwC,CACvC,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,yCAA0C,CACzC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,kCAAmC,CAClC,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,iCAAkC,CACjC,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,kCAAmC,CAClC,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,oCAAqC,CACpC,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,qCAAsC,CACrC,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,oCAAqC,CACpC,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,qCAAsC,CACrC,IACA,IAED,oCAAqC,CACpC,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,6BAA8B,CAC7B,IACA,KAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,WAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,KAIR,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAOR,EAAoBK,EAAEG,EAAI,IAAIJ,MAAK,WACzC,OAAOJ,EAAoBS,MAG7BX,EAAoBY,KAAO,WAC1B,OAAOC,OAAOD,KAAKb,IAEpBC,EAAoBW,GAAK,IACzBd,EAAOC,QAAUE,G,kfChIV,IAAMc,EAAcC,IAAM,OAAQ,CACvCC,SAAUjD,IAAaC,WAGnBiD,EAAaF,IAAM,OAAQ,CAC/BC,SAAU,uBAGNnE,EAAkBkE,IAAM,OAAQ,CACpCC,SAAUjD,IAAaE,iBAoBViD,EAfCC,YAAH,IAEMF,EACKpE,EAMXkB,IAAaC,U,g5BCtB1B,IAAMoD,EAAeC,IAAOC,IAAV,IACIR,GAKhBS,EAAYF,YAAOG,IAAPH,CAAH,KAKTI,EAAaJ,YAAOG,IAAIE,KAAXL,CAAH,IAELtD,IAAaC,UAEL,SAACrB,GAAD,MACI,SAAnBA,EAAMgF,SAAN,oBACiB5D,IAAaG,aAC1B,QACY,SAACvB,GAAD,MACG,SAAnBA,EAAMgF,SAAsB,MAAQ,SAG3B5D,IAAaC,UAKpB4D,EAAiBP,IAAOC,IAAV,KACH,SAAC3E,GAAD,OAA+BA,EAAMkF,aAC3C9D,IAAaI,OAIlB2D,EAAoBT,YAAOU,IAAPV,CAAH,IAIVtD,IAAaE,eAKbF,IAAaG,a,sFC5BpB8D,G,OAAmB,SAACC,GACZC,OAAOC,SAAS5E,KACf2E,OAAOC,SAASC,KACNC,MAAM,KAAK,GAElC,MAAqB,UAAjBJ,EACKK,IAEY,YAAjBL,EACKM,IAEAC,M,4CAIX,WAAuBC,EAAcR,GAArC,SAAAxE,EAAA,+EAEUC,IAAKgF,UAFf,OAGID,EAAQE,KAAR,WAAiBV,IACjBC,OAAOC,SAASS,SAChBC,aAAaC,QALjB,gDAOIC,QAAQC,IAAI,sBAAZ,MAPJ,0D,sBAWA,IC7CeC,ED8NAC,aAjLA,WAAO,IAAD,IACbT,EAAUU,cADG,EAEKC,mBAAS,QAFd,mBAEZzD,EAFY,KAEN0D,EAFM,OAGqBD,mBAAS,IAH9B,mBAGZnB,EAHY,KAGEqB,EAHF,KAKbC,EAAUC,qBAAWC,KAErBC,EAAW,uCAAG,4BAAAjG,EAAA,sEACAC,IAAKC,iBADL,OACdC,EADc,OAElByF,EAAQzF,EAAMC,aAAa8F,QAAQ,gBACnCL,EACEM,YAAehG,EAAMC,aAAa8F,QAAQ,yBAJ1B,2CAAH,qDAYjB,OAJAE,qBAAU,WACRH,MACC,IAGD,oCACE,kBAACtC,EAAD,KACE,kBAAClC,EAAA,EAAD,CACEG,QAAQ,OACRC,cAAc,MACdE,WAAW,SACXL,OAAO,OACPI,eAAe,gBACfuE,GAAG,QACHC,GAAG,SAEH,kBAAC7E,EAAA,EAAD,CACEG,QAAQ,OACRC,cAAc,MACdE,WAAW,SACXL,OAAO,QAEP,yBACE6E,IAAI,cACJC,IAAKjC,EACHuB,EAAQW,SAASjC,aAAakC,eAEhCC,MAAO,CAAEjF,OAAQ,OAAQkF,YAAa,UAExC,kBAACzC,EAAD,KAEG2B,EAAQW,SAASjC,aAAa,GAAGqC,cAChCf,EAAQW,SAASjC,aAAasC,MAAM,KAG1C,kBAACrF,EAAA,EAAD,CAAKG,QAAQ,OAAOC,cAAc,MAAME,WAAW,UACjD,kBAACsC,EAAD,CACE0C,MACEjB,EAAQW,SAASO,UAAY,IAAMlB,EAAQW,SAASQ,SAEtD/D,GAAG,sBAEF4C,EAAQW,SAASS,QAChB,oCACE,kBAAC5C,EAAA,EAAY6C,KAAb,CACErH,KAAI,WAAMqG,YAAc,UACtBL,EAAQsB,sBADc,iBACtB,EAAwBC,wBADF,aACtB,EAA0C7C,cADxC,cADN,aASF,qCAEF,kBAACF,EAAA,EAAYgD,QAAb,MACA,kBAAChD,EAAA,EAAY6C,KAAb,KACE,4BACEhF,UAAU,gBACVzC,QAAS,kB,6CAAMuF,CAAQD,EAASR,KAFlC,iBAWV,kBAACV,EAAD,KACE,kBAACrC,EAAA,EAAD,CACEG,QAAQ,OACRC,cAAc,MACdE,WAAW,SACXL,OAAO,OACPI,eAAe,gBACfuE,GAAG,QACHC,GAAG,SAEH,kBAACtC,EAAD,CACEE,UACmC,4BAAjC4B,EAAQyB,sBACRC,WACF9H,QAAS,WACP0F,aAAaqC,QACX,uBACAC,KAAKC,UAAU,4BAEjB7B,EAAQ8B,iBAAiB,4BAE3BC,GAAI5D,IACJ6D,GAAE,WAAMtD,EAAN,cAZJ,YAiBU,UAATtC,EACC,kBAAC8B,EAAD,CACEE,UACmC,6BAAjC4B,EAAQyB,sBACRC,WACF9H,QAAS,WACP0F,aAAaqC,QACX,uBACAC,KAAKC,UAAU,eAEjB7B,EAAQ8B,iBAAR,6BAEFC,GAAI5D,IACJ6D,GAAE,WAAMtD,EAAN,eAZJ,aAiBA,8BAGQ,UAATtC,EACC,kBAAC8B,EAAD,CACEE,UAEE,oCADA4B,EAAQyB,sBAERC,WACF9H,QAAS,WACP0F,aAAaqC,QACX,uBACAC,KAAKC,UAAU,sBAEjB7B,EAAQ8B,iBAAiB,oCAE3BC,GAAI5D,IACJ6D,GAAE,WAAMtD,EAAN,sBAbJ,oBAkBA,8BAEF,kBAACR,EAAD,CACEE,UAEE,6CADA4B,EAAQyB,sBAERC,WACF9H,QAAS,WACP0F,aAAaqC,QACX,uBACAC,KAAKC,UAAU,+BAEjB7B,EAAQ8B,iBACN,6CAGJC,GAAI5D,IACJ6D,GAAE,WAAMtD,EAAN,+BAfJ,wB,SEjMGuD,G,OAAiB,SAAC,GAMnB,IALVC,EAKS,EALTA,MACAC,EAIS,EAJTA,KACWC,EAGF,EAHTC,UACAC,EAES,EAFTA,OACGC,EACM,uDACe1C,mBAAS,QADxB,mBACFzD,EADE,KACI0D,EADJ,KAGHK,EAAW,uCAAG,4BAAAjG,EAAA,sEACAC,IAAKC,iBADL,OACdC,EADc,OAElByF,EAAQzF,EAAMC,aAAa8F,QAAQ,gBAFjB,2CAAH,qDASjB,OAJAE,qBAAU,WACRH,MACC,IAEE+B,EAAMM,MAAK,SAACC,GAAD,OAAeA,IAAMrG,KAQjC,kBAAC,IAAD,iBACMmG,EADN,CAEED,OAAQ,SAAClJ,GACP,OAAOgJ,EACL,kBAACA,EAAD,eAAWD,KAAMA,GAAU/I,EAAWmJ,IAEtCD,EAAOlJ,OAZb,yBAAKiD,UAAU,+BACb,gD,iBCNFqG,EAAgBC,gBAAK,kBAAM,6EAC3BC,EAAkBD,gBAAK,kBAAM,6EAC7BE,GAAyBF,gBAC7B,kBAAM,6EAEFG,GAAeH,gBAAK,kBAAM,6EAC1BI,GAAUJ,gBAAK,kBAAM,sEACrBK,GAAiBL,gBAAK,kBAAM,6EAC5BM,GAAcN,gBAAK,kBAAM,6EACzBO,GAAkBP,gBAAK,kBAAM,6EAC7BQ,GAAgBR,gBAAK,kBAAM,sEAC3BS,GAAsBT,gBAAK,kBAAM,6EACjCU,GAAwBV,gBAC5B,kBAAM,wDAEFW,GAAkBX,gBAAK,kBAAM,6EAC7BY,GAAaZ,gBAAK,kBAAM,8EACxBa,GAAgBb,gBAAK,kBAAM,6EAC3Bc,GAAcd,gBAAK,kBAAM,6EACzBe,GAAcf,gBAAK,kBAAM,6EACzBgB,GAAgBhB,gBAAK,kBAAM,6EAC3BiB,GAAejB,gBAAK,kBAAM,sEAC1BkB,GAAkBlB,gBAAK,kBAAM,6EAC7BmB,GAAUnB,gBAAK,kBAAM,6EACrBoB,GAAmBpB,gBAAK,kBAAM,6EAC9BqB,GAAkBrB,gBAAK,kBAAM,sEAC7BsB,GAAgBtB,gBAAK,kBAAM,+DAC3BuB,GAAqBvB,gBAAK,kBAAM,+DAChCwB,GAAuBxB,gBAAK,kBAAM,+DA4IzByB,GA1IG,WAChB,OACE,kBAAC,IAAD,KACE,kBAAC,EAAD,MACA,kBAAC,WAAD,CAAUC,SAAU,kBAAC3I,EAAA,EAAD,OAClB,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAO4I,OAAK,EAACnC,KAAM,IAAKG,OAAQ,kBAAoB,kBAAC,GAAD,SACpD,kBAAC,IAAD,CACEgC,OAAK,EACLnC,KAAM,iBACNG,OAAQ,kBAAoB,kBAAC,GAAD,SAQ9B,kBAAC,GAAD,CACEH,KAAK,0BACLG,OAAQ,kBAAoB,kBAACwB,GAAD,SAE9B,kBAAC,GAAD,CACES,cAAc,EACdpC,KAAK,2BACLD,MAAO,CAAC,SACRG,UAAWK,IAEb,kBAAC,GAAD,CACEP,KAAM,0BACNG,OAAQ,kBAAoB,kBAACQ,GAAD,SAE9B,kBAAC,GAAD,CACEyB,cAAc,EACdpC,KAAK,kCACLD,MAAO,CAAC,SACRG,UAAWO,IAEb,kBAAC,IAAD,CACET,KAAK,2CACLD,MAAO,CAAC,SACRG,UAAWQ,KAEb,kBAAC,GAAD,CACE0B,cAAc,EACdpC,KAAK,sCACLD,MAAO,CAAC,SACRG,UAAWY,KAEb,kBAAC,GAAD,CACEsB,cAAc,EACdpC,KAAK,uCACLD,MAAO,CAAC,SACRG,UAAWY,KAEb,kBAAC,GAAD,CACEd,KAAK,iCACLG,OAAQ,kBAAoB,kBAACS,GAAD,SAE9B,kBAAC,GAAD,CACEZ,KAAK,6BACLG,OAAQ,kBAAoB,kBAACU,GAAD,SAE9B,kBAAC,GAAD,CACEb,KAAK,yCACLG,OAAQ,kBAAoB,kBAACY,GAAD,SAE9B,kBAAC,GAAD,CACEf,KAAK,2BACLG,OAAQ,kBAAoB,kBAACa,GAAD,SAE9B,kBAAC,GAAD,CACEhB,KAAK,mCACLG,OAAQ,kBAAoB,kBAACc,GAAD,SAE9B,kBAAC,GAAD,CACEjB,KAAK,yCACLG,OAAQ,kBAAoB,kBAACgB,GAAD,SAE9B,kBAAC,GAAD,CACEnB,KAAK,oCACLG,OAAQ,kBAAoB,kBAACe,GAAD,SAE9B,kBAAC,GAAD,CACElB,KAAK,0BACLG,OAAQ,kBAAoB,kBAACmB,GAAD,SAE9B,kBAAC,IAAD,CACEa,OAAK,EACLnC,KAAK,4BACLG,OAAQ,kBAAoB,kBAACqB,GAAD,SAE9B,kBAAC,GAAD,CACExB,KAAK,sCACLG,OAAQ,kBAAoB,kBAACiB,GAAD,SAE9B,kBAAC,GAAD,CACEpB,KAAK,yCACLG,OAAQ,kBAAoB,kBAACkB,GAAD,SAE9B,kBAAC,GAAD,CACErB,KAAK,0BACLG,OAAQ,kBAAoB,kBAACsB,GAAD,SAE9B,kBAAC,GAAD,CACEzB,KAAK,8BACLG,OAAQ,kBAAoB,kBAACuB,GAAD,SAE9B,kBAAC,GAAD,CACE1B,KAAK,qDACLG,OAAQ,kBAAoB,kBAACoB,GAAD,SAE9B,kBAAC,GAAD,CACEvB,KAAK,wCACLG,OAAQ,kBAAoB,kBAACyB,GAAD,SAE9B,kBAAC,GAAD,CACE5B,KAAK,8BACLG,OAAQ,kBAAoB,kBAAC0B,GAAD,SAE9B,kBAAC,GAAD,CACE7B,KAAK,4BACLG,OAAQ,kBAAoB,kBAAC2B,GAAD,SAE9B,kBAAC,GAAD,CACE9B,KAAK,kCACLG,OAAQ,kBAAoB,kBAAC4B,GAAD,SAE9B,kBAAC,GAAD,CACE/B,KAAK,mCACLG,OAAQ,kBAAoB,kBAAC6B,GAAD,aAUlCK,GAAW,SAACpL,GAAgB,IAAD,EACSyG,mBAAS,IADlB,mBACxBnB,EADwB,KACVqB,EADU,KAEzBb,EAAUU,cAERuC,EAAiD/I,EAAjD+I,KAAMG,EAA2ClJ,EAA3CkJ,OAAQiC,EAAmCnL,EAAnCmL,aAAcrC,EAAqB9I,EAArB8I,MAAOG,EAAcjJ,EAAdiJ,UAErClC,EAAW,uCAAG,4BAAAjG,EAAA,sEACAC,IAAKC,iBADL,OACdC,EADc,OAElB0F,EAAgB1F,EAAMC,aAAa8F,QAAQ,wBAFzB,2CAAH,qDAMbqE,EADY9F,OAAOC,SAAS8F,SAAS5F,MAAM,KACX,GAapC,OAXAwB,qBAAU,WACRH,MACC,IAGDE,YAAe3B,IACf2B,YAAe3B,KAAkB+F,GAEjCvF,EAAQE,KAAR,WAAiBiB,YAAe3B,GAAhC,cAGE6F,EAEA,kBAAC,EAAD,CACEpC,KAAMA,EACND,MAAOA,EACPG,UAAWA,IAIR,kBAAC,IAAD,CAAOiC,OAAK,EAACnC,KAAMA,EAAMG,OAAQA,KAItCqC,GAAY,SAACvL,GACwCA,EAAjD+I,KAAiD/I,EAA3CkJ,OAA2ClJ,EAAnCmL,aAAmCnL,EAArB8I,MAAqB9I,EAAdiJ,UADV,IAAD,EAEQxC,mBAAS,IAFjB,mBAEzBnB,EAFyB,KAEXqB,EAFW,KAG1Bb,EAAUU,cAEVO,EAAW,uCAAG,4BAAAjG,EAAA,sEACAC,IAAKC,iBADL,OACdC,EADc,OAElB0F,EAAgB1F,EAAMC,aAAa8F,QAAQ,wBAFzB,2CAAH,qDAKbwE,EAAYjG,OAAOC,SAAS8F,SAAS5F,MAAM,KAC3C2F,EAAsBG,EAAU,GAChCC,EAAqBD,EAAU,GAsBnC,OApBAtE,qBAAU,WACRH,MACC,IAGDE,YAAe3B,IACf2B,YAAe3B,KAAkB+F,GAGjCvF,EAAQE,KAAR,WAAiBiB,YAAe3B,GAAhC,cAIA2B,YAAe3B,KACdmG,GAGD3F,EAAQE,KAAR,WAAiBiB,YAAe3B,GAAhC,cAGK,yBAAKrC,UAAU,0B,uBC9PxByI,WAAQC,UAAU,CAChB5K,KAAM,CAEJ6K,OAAQC,YAERC,WAAYD,sBAEZE,oBAAqBF,gCAaVG,OATf,WACE,OACE,kBAAC,IAAD,CAAe5H,MAAO,CAAE6H,KAAM,aAC5B,kBAAC,EAAD,MACA,kBAAC,GAAD,QCXcC,QACW,cAA7B3G,OAAOC,SAAS2G,UAEe,UAA7B5G,OAAOC,SAAS2G,UAEhB5G,OAAOC,SAAS2G,SAASC,MACvB,2DCfN,IAKeC,GALG,CACd,mBAAsB,aCK1BX,WAAQC,UAAUW,IAElBC,IAASrD,OACP,kBAAC,IAAMsD,WAAP,KACE,kBAACC,EAAA,EAAD,KACE,kBAAC,GAAD,QAIJC,SAASC,eAAe,SFsHpB,kBAAmBC,WACrBA,UAAUC,cAAcC,MACrBnJ,MAAK,SAACoJ,GACLA,EAAaC,gBAEdC,OAAM,SAACC,GACN9G,QAAQ8G,MAAMA,EAAMC,a,gCG9I5B,kCACO,IAAMlG,EAAiB,SAACmG,GAC7B,GAAIA,EAAK,CAEPA,GADAA,EAAMA,EAAIC,QAAQ,aAAc,KACtB7F,cAKV,IAFA,IAAI8F,EAAO,oGAEFC,EAAI,EAAGlE,EAAIiE,EAAKE,OAAQD,EAAIlE,EAAGkE,IACtCH,EAAMA,EAAIC,QAAQ,IAAII,OAAOH,EAAKI,OAAOH,GAAI,KAFtC,+BAE+CG,OAAOH,IAQ/D,OALAH,EAAMA,EACHC,QAAQ,eAAgB,IACxBA,QAAQ,OAAQ,KAChBA,QAAQ,MAAO,Q,+BChBtB,aACejM,MAAf,G,mdCkEA,IAqCemB,EArCHmC,YAAO,MAAPA,CAAH,IAILiJ,IACAC,IACAlL,IACAmL,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACA1L,IACA2L,IACA9J,IACA+J,IACAC,IACAC,IACAC,IACAC,IACAjM,IACAkM,IACAC,IACA9L,IACA+L,IACAhM,IACAiM,IACAC,IACAnM,IACAoM,IACAC,IACAC,IACAC,KCpGW3M,O,kKCGT4M,EAAS,uCAAG,WAAOC,EAA0BC,GAAjC,qBAAAvO,EAAA,sEACIC,IAAKC,iBADT,cACVC,EADU,OAEVqE,EAAerE,EAAMC,aAAa8F,QAAQ,uBAE1CsI,EAAS,CAEbC,QAAS,CACP,eAAgB,mBAChB,kBAAmBtO,EAAMC,aAAa8F,QAAQ,oBAC9C/F,MAAM,UAAD,OAAYoO,GACjBG,KAAMlK,EACNA,gBAEFmK,OAAQ,OAbM,SAiBOC,MAAM,GAAD,OAnBf7D,mCAmBe,2CACoBuD,GAC9CE,GAEC3L,MAAK,SAACgM,GAAD,OAAcA,EAASC,UAC5B3C,OAAM,SAAUC,GACf,OAAOA,KAvBK,cAiBVyC,EAjBU,yBAyBTA,GAzBS,2CAAH,wD,2TC6CR,IAAM7I,EAAU+I,wBAA6B,CAClDtI,SAAU,CACRuI,YAAY,EACZC,SAAU,GACV/H,SAAS,EACTgI,SAAU,EACVC,YAAY,EACZC,kBAAmB,EACnBC,sBAAuB,EACvBC,mBAAoB,EACpB9K,aAAc,GACdwC,UAAW,GACXC,SAAU,IAEZsI,kBAAmB,aACnBnI,oBAAgBoI,EAChBC,kBAAmB,aACnBC,oBAAgBF,EAChBjI,qBAAsB,YACtBK,iBAAkB,aAClB+H,yBAAqBH,EACrBI,uBAAwB,aACxBC,qBAAqB,EACrBC,uBAAwB,aACxBC,gBAAiB,aACjBC,kBAAcR,EACdS,eAAgB,aAChBC,iBAAaV,EACbW,YAAa,eAmOTC,EAAe,SAACC,EAAWC,GAC/B,OAAID,GAAQA,EAAKE,YAAcF,EAAKE,WAAWC,eAAeF,GACrDD,EAAKE,WAAWD,GAElB,IAGMG,IAvOM,SAAC,GAAuB,IAArB7Q,EAAoB,EAApBA,SAEhB8Q,EAA+ChJ,KAAKiJ,MACxDvL,aAAawL,QAAQ,mBAAqB,MAEtCC,EAA4DnJ,KAAKiJ,MACrEvL,aAAawL,QAAQ,wBAA0B,MAG3CE,EAA+CpJ,KAAKiJ,MACxDvL,aAAawL,QAAQ,mBAAqB,MAGtCG,EAAmCrJ,KAAKiJ,MAC5CvL,aAAawL,QAAQ,gBAAkB,MAGnCI,EAAqC5N,OAAOD,KAChDuE,KAAKiJ,MAAMvL,aAAawL,QAAQ,yBAA2B,OAC3DlE,OACEhF,KAAKiJ,MAAMvL,aAAawL,QAAQ,yBAA2B,MAC3D,YAEEK,EACkE,SAAtEvJ,KAAKiJ,MAAMvL,aAAawL,QAAQ,wBAA0B,QAKtDM,EAAqCxJ,KAAKiJ,MAC9CvL,aAAawL,QAAQ,iBAAmB,MA9BA,EAiCVjL,qBAjCU,mBAiCnCwL,EAjCmC,KAiCzBhB,EAjCyB,OAkCFxK,mBAAiB,IAlCf,mBAkCnCnB,EAlCmC,KAkCrBqB,EAlCqB,OAmCEF,mBAE1C+K,GArCwC,mBAmCnCtJ,EAnCmC,KAmCnBmI,EAnCmB,OAsCE5J,mBAE1CmL,GAxCwC,mBAsCnCpB,EAtCmC,KAsCnBD,EAtCmB,OAyCO9J,mBAC/CqL,GA1CwC,mBAyCnCzJ,EAzCmC,KAyCbK,EAzCa,OA4CYjC,mBAEpDkL,GA9CwC,mBA4CnClB,EA5CmC,KA4CdC,EA5Cc,OAgDxCjK,mBAAkBsL,GAhDsB,mBA+CnCpB,GA/CmC,KA+CdC,GA/Cc,QAkDJnK,mBACpCoL,GAnDwC,qBAkDnCb,GAlDmC,MAkDtBD,GAlDsB,SAsDFtK,mBACtCuL,GAvDwC,qBAsDnClB,GAtDmC,MAsDrBD,GAtDqB,SAyDRpK,oBAAkB,GAzDV,qBAyDnCyL,GAzDmC,MAyDxBC,GAzDwB,MA0DpCrM,GAAUU,cAEV4L,GAAa1N,YAAO2N,IAAMC,KAAb5N,CAAH,KA5D0B,SAsE3BqB,KAtE2B,8EAsE1C,sBAAAjF,EAAA,+EAEUC,IAAKgF,UAFf,OAGIG,aAAaC,QACbL,GAAQE,KAAK,KAJjB,gDAMII,QAAQC,IAAI,sBAAZ,MANJ,0DAtE0C,sBAgF1C,IAAMkM,GAAW,uCAAG,WAAOC,GAAP,iBAAA1R,EAAA,yDAGd0K,EAAYjG,OAAOC,SAAS8F,SAAS5F,MAAM,KAC3C2F,EAAsBG,EAAU,GAI1B,cAFAjG,OAAOC,SAAS2G,WAGxB5G,OAAOC,SAAS2G,SAASsG,SAAS,aAClCD,EAAKxK,QAVW,gBAYhBiJ,EAAYuB,GAZI,mCAchBrD,EAdgB,KAcNqD,EAAKlN,aAdC,UAcmBzE,cAdnB,wCAeb8C,MAAK,SAACgM,GAGFA,EAAS+C,SACRzL,YAAe0I,EAASwB,KAAK7L,gBAC3B+F,IACHA,GACDmH,EAAK1C,WAELmB,EAAYuB,IAEZL,IAAa,GACbpM,SAGHkH,OAAM,SAACC,GACN9G,QAAQC,IAAI,SAAU6G,MA/BV,4CAAH,sDAoCjByF,IAAMzL,WAAU,WACd,OAAO0L,aAAoB,SAACC,EAA0BC,GAAmB,IAAD,EAChEb,EAAqB,CACzBnC,WAAYiD,IAAUC,WAAaH,EACnC7K,QAAmD,UAA1CkJ,EAAa4B,EAAU,eAChC/C,SAAQ,OAAE+C,QAAF,IAAEA,OAAF,EAAEA,EAAU/C,SACpBC,SAAUkB,EAAa4B,EAAU,mBAAqB,EACtD7C,WAC+D,UAA7D,UAAAiB,EAAa4B,EAAU,0BAAvB,eAA2CtL,eAC7C0I,mBACGgB,EAAa4B,EAAU,0BAA4B,EACtD3C,uBACGe,EAAa4B,EAAU,8BAAgC,EAC1D1C,oBACGc,EAAa4B,EAAU,2BAA6B,EACvDxN,aAAc4L,EAAa4B,EAAU,uBACrChL,UAAWoJ,EAAa4B,EAAU,cAClC/K,SAAUmJ,EAAa4B,EAAU,gBAEnCP,GAAYN,GACZtL,EAAgBrB,EAAakC,eAC7BzG,IAAK4K,iBAEN,IAGH,IAAMtG,GAAmB,WACvB,IAEIC,EAFQC,OAAOC,SAAS5E,KAEL8E,MAAM,KAAK,GAElC,MAAqB,UAAjBJ,EACI,YAAN,OAAmBA,EAAnB,aAEM,WAAN,OAAkBA,EAAlB,SAIJ,OAAe,OAAR2M,QAAQ,IAARA,OAAA,EAAAA,EAAUnC,YACf,yBAAK7M,UAAU,OACb,kBAAC6D,EAAQmM,SAAT,CACEC,MAAO,CACL3L,SAAU0K,EACV/J,iBACAmI,oBACAG,iBACAD,oBACA7H,mBACAL,uBACAqI,yBACAD,sBACAE,uBACAC,0BACAC,mBACAC,gBACAC,kBACAC,eACAC,gBAGDvQ,IAIL,yBAAKuC,UAAU,yBACb,yBACEqE,IAAKjC,KACL8N,QAAS,YAAwB,IAArBC,EAAoB,EAApBA,cACVA,EAAcC,QAAU,KACxBD,EAAc9L,IAAM,6BAGxB,kBAAC+K,EAAA,EAAD,CAAOiB,KAAMpB,GAAWqB,UAAQ,GAC9B,kBAACnB,GAAD,KACE,yBAAKnP,UAAU,uCACb,yBACEqE,IAAKjC,KACL8N,QAAS,YAAwB,IAArBC,EAAoB,EAApBA,cACVA,EAAcC,QAAU,KACxBD,EAAc9L,IAAM,6BAErB,IACH,mDACA,kBAACvH,EAAA,EAAD,CACE0H,MAAO,CAAE+L,QAAS,YAClBtT,gBAAiBkB,IAAaO,SAC9BvB,UAAWgB,IAAaI,MACxBlB,YAAac,IAAaO,SAC1BnB,QAAS,kBAAM2R,IAAa,KAL9B,aAYN,kBAAC,IAAD,KACE,kBAAC,IAAD,CACEsB,YAAY,EACZC,KAAK,UACLC,WAAW,wCACXC,cAAc,UAEhB,kBAAC,IAAD,CAAuBA,cAAc,c,g4BCpS7C,IAAMC,EAAenP,YAAO3E,IAAP2E,CAAH,KAQI,SAAC1E,GAAD,OAAmBA,EAAMC,mBACpC,SAACD,GAAD,OAAmBA,EAAMG,aAElB,SAACH,GAAD,OAAmBA,EAAMK,eAQ1B,qBAAGJ,kBACKmB,IAAaiB,eAAjC,UAAD,SAMoBjB,IAAaQ,OACjBR,IAAaQ,QAGT,gBAAG3B,EAAH,EAAGA,gBAAH,OACjBA,IAAoBmB,IAAaO,UAAYP,IAAaa,WAC1DhC,IAAoBmB,IAAaY,iBAChCZ,IAAae,YACdlC,IAAoBmB,IAAaiB,gBAAjC,wBAEDjB,IAAaO,YACC,gBAAG1B,EAAH,EAAGA,gBAAH,OACbA,IAAoBmB,IAAaO,UAAYP,IAAaa,WAC1DhC,IAAoBmB,IAAaY,iBAChCZ,IAAae,YACff,IAAaO,YACN,qBAAG1B,kBACWmB,IAAaiB,gBAChCjB,IAAaO,UACfP,IAAaI,SAGK,gBAAGvB,EAAH,EAAGA,gBAAH,OACjBA,IAAoBmB,IAAaO,UAAYP,IAAac,WAC1DjC,IAAoBmB,IAAaY,iBAChCZ,IAAagB,WACdnC,IAAoBmB,IAAaiB,gBAAjC,wBAEDjB,IAAaO,YACC,gBAAG1B,EAAH,EAAGA,gBAAH,OACbA,IAAoBmB,IAAaO,UAAYP,IAAac,WAC1DjC,IAAoBmB,IAAaY,iBAChCZ,IAAagB,WACdnC,IAAoBmB,IAAaiB,gBAAjC,wBAEDjB,IAAaO,YACN,qBAAG1B,kBACUmB,IAAaiB,gBAAkBjB,IAAaO,YAG9C,gBAAG1B,EAAH,EAAGA,gBAAH,OACjBA,IAAoBmB,IAAaO,UAAYP,IAAac,WAC1DjC,IAAoBmB,IAAaY,iBAChCZ,IAAagB,WACdnC,IAAoBmB,IAAaiB,gBAAjC,wBAEDjB,IAAaO,YACC,gBAAG1B,EAAH,EAAGA,gBAAH,OACbA,IAAoBmB,IAAaO,UAAYP,IAAac,WAC1DjC,IAAoBmB,IAAaY,iBAChCZ,IAAagB,WACdnC,IAAoBmB,IAAaiB,gBAAjC,wBAEDjB,IAAaO,YACN,qBAAG1B,kBACUmB,IAAaiB,gBAAkBjB,IAAaO,c","file":"static/js/main.1e8620c5.chunk.js","sourcesContent":["import React from \"react\";\nimport { StyledButton } from \"./Button.styles\";\n\nconst Button = (props: any) => {\n return (\n <>\n \n {props.children}\n \n \n );\n};\n\nexport default Button;\n","import React from \"react\";\nimport { StyledButton } from \"./Button.styles\";\n\nconst LinkButton = (props: any) => {\n return (\n <>\n \n {props.children}\n \n \n );\n};\n\nexport default LinkButton;\n","import Button from \"./Button\";\nimport LinkButton from \"./LinkButton\";\nexport default Button;\nexport { LinkButton };\n","import Auth from \"@aws-amplify/auth\";\n\nexport const getCognitoToken = async () => {\n const token = await Auth.currentSession();\n return token.getIdToken().getJwtToken();\n};\n","const ColorPalette = {\n DarkGrey: \"#485259\",\n AlabasterWhite: \"#F7F7F7\",\n JaffaOrange: \"#e67c36\",\n White: \"#ffffff\",\n Red: \"#ff0000\",\n Green: \"#6b8e23\",\n Pelorous: \"#509bc6\",\n Silver: \"#CCCCCC\",\n RoyalBlue: \"#2F80ED\",\n GrayChateau: \"#9da3a9\",\n Boulder: \"#797979\",\n AlizarinCrimson: \"#E12C2C\",\n SteelBlue: \"#488CB2\",\n SanMarino: \"#407C9E\",\n PersianRed: \"#D12929\",\n TallPoppy: \"#C62727\",\n PelorousAlpha0: \"rgba(80,155,198,.0)\",\n};\n\nexport default ColorPalette;\n","import React from \"react\";\nimport { Spinner } from \"react-bootstrap\";\nimport Box from \"common/Box\";\n\nconst LoadingSpinner = () => {\n return (\n \n \n Loading...\n \n \n );\n};\n\nexport default LoadingSpinner;\n","import LoadingSpinner from \"./LoadingSpinner\";\nexport default LoadingSpinner;\n","module.exports = __webpack_public_path__ + \"static/media/logo.820189bf.png\";","module.exports = __webpack_public_path__ + \"static/media/logo.30662491.png\";","module.exports = __webpack_public_path__ + \"static/media/mocafi-logo.95ad34f9.jpg\";","var map = {\n\t\"./amplify-amazon-button_5.entry.js\": [\n\t\t265,\n\t\t51\n\t],\n\t\"./amplify-auth-fields_9.entry.js\": [\n\t\t266,\n\t\t52\n\t],\n\t\"./amplify-authenticator.entry.js\": [\n\t\t267,\n\t\t38\n\t],\n\t\"./amplify-button_3.entry.js\": [\n\t\t268,\n\t\t53\n\t],\n\t\"./amplify-chatbot.entry.js\": [\n\t\t269,\n\t\t35\n\t],\n\t\"./amplify-checkbox.entry.js\": [\n\t\t270,\n\t\t54\n\t],\n\t\"./amplify-confirm-sign-in_7.entry.js\": [\n\t\t271,\n\t\t39\n\t],\n\t\"./amplify-container.entry.js\": [\n\t\t272,\n\t\t55\n\t],\n\t\"./amplify-federated-buttons_2.entry.js\": [\n\t\t273,\n\t\t56\n\t],\n\t\"./amplify-federated-sign-in.entry.js\": [\n\t\t274,\n\t\t57\n\t],\n\t\"./amplify-form-field_4.entry.js\": [\n\t\t275,\n\t\t58\n\t],\n\t\"./amplify-greetings.entry.js\": [\n\t\t276,\n\t\t59\n\t],\n\t\"./amplify-icon-button.entry.js\": [\n\t\t277,\n\t\t60\n\t],\n\t\"./amplify-icon.entry.js\": [\n\t\t278,\n\t\t40\n\t],\n\t\"./amplify-link.entry.js\": [\n\t\t279,\n\t\t61\n\t],\n\t\"./amplify-nav_2.entry.js\": [\n\t\t280,\n\t\t62\n\t],\n\t\"./amplify-photo-picker.entry.js\": [\n\t\t281,\n\t\t63\n\t],\n\t\"./amplify-picker.entry.js\": [\n\t\t282,\n\t\t64\n\t],\n\t\"./amplify-radio-button_2.entry.js\": [\n\t\t283,\n\t\t41\n\t],\n\t\"./amplify-s3-album.entry.js\": [\n\t\t284,\n\t\t42\n\t],\n\t\"./amplify-s3-image-picker.entry.js\": [\n\t\t285,\n\t\t43\n\t],\n\t\"./amplify-s3-image.entry.js\": [\n\t\t286,\n\t\t44\n\t],\n\t\"./amplify-s3-text-picker.entry.js\": [\n\t\t287,\n\t\t45\n\t],\n\t\"./amplify-s3-text.entry.js\": [\n\t\t288,\n\t\t46\n\t],\n\t\"./amplify-select-mfa-type.entry.js\": [\n\t\t289,\n\t\t65\n\t],\n\t\"./amplify-sign-in-button.entry.js\": [\n\t\t290,\n\t\t47\n\t],\n\t\"./amplify-toast.entry.js\": [\n\t\t291,\n\t\t66\n\t],\n\t\"./amplify-tooltip.entry.js\": [\n\t\t292,\n\t\t67\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 227;\nmodule.exports = webpackAsyncContext;","import { createGlobalStyle } from \"styled-components\";\nimport theme from \"styled-theming\";\nimport ColorPalette from \"colorPalette\";\n\nexport const navbarColor = theme(\"mode\", {\n honolulu: ColorPalette.DarkGrey,\n});\n\nconst fontFamily = theme(\"mode\", {\n honolulu: \"Roboto, sans-serif\",\n});\n\nconst backgroundColor = theme(\"mode\", {\n honolulu: ColorPalette.AlabasterWhite,\n});\n\n//TODO: Add logo\n\nconst Wrapper = createGlobalStyle`\n body {\n font-family: ${fontFamily};\n background-color: ${backgroundColor}\n }\n\n h1 {\n font-size: 24px;\n font-weight: 500;\n color: ${ColorPalette.DarkGrey};\n margin-bottom: 0px;\n }\n\n`;\n\nexport default Wrapper;\n","import styled from \"styled-components\";\nimport { Nav, NavDropdown } from \"react-bootstrap\";\nimport { navbarColor } from \"theme\";\nimport ColorPalette from \"colorPalette\";\n\nconst StyledNavbar = styled.div`\n background-color: ${navbarColor};\n height: 64px;\n font-weight: 500;\n`;\n\nconst StyledNav = styled(Nav)`\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);\n background: white;\n`;\n\nconst StyledLink = styled(Nav.Link)<{ isactive: string; onClick: any }>`\n padding: 10px 8px 10px 8px;\n color: ${ColorPalette.DarkGrey};\n font-size: 14px;\n border-bottom: ${(props): any =>\n props.isactive === \"true\"\n ? `2px solid ${ColorPalette.JaffaOrange}`\n : null}};\n padding-bottom: ${(props): any =>\n props.isactive === \"true\" ? \"8px\" : \"10px\"}};\n font-weight: 500;\n &:hover {\n color: ${ColorPalette.DarkGrey};\n text-decoration: none;\n }\n`;\n\nconst StyledLogoText = styled.div<{ marginLeft?: string | undefined }>`\n margin-left: ${(props): string | undefined => props.marginLeft};\n color: ${ColorPalette.White};\n font-weight: 500;\n`;\n\nconst StyledNavDropdown = styled(NavDropdown)`\n a.dropdown-toggle,\n a.dropdown-toggle:focus,\n a.dropdown-toggle:active {\n color: ${ColorPalette.AlabasterWhite};\n text-decoration: none;\n }\n\n a::after {\n color: ${ColorPalette.JaffaOrange};\n }\n`;\n\nexport {\n StyledNavbar,\n StyledNav,\n StyledLink,\n StyledLogoText,\n StyledNavDropdown,\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Link, withRouter } from 'react-router-dom';\nimport {\n StyledNavbar,\n StyledLink,\n StyledNav,\n StyledLogoText,\n StyledNavDropdown,\n} from './NavBar.styles';\nimport Box from 'common/Box';\nimport { Context } from 'AuthStateProvider';\nimport { NavDropdown } from 'react-bootstrap';\nimport { useHistory } from 'react-router-dom';\nimport { Auth } from 'aws-amplify';\nimport miami from '../../images/cities/miami/logo.png';\nimport atlanta from '../../images/cities/atlanta/logo.png';\nimport mocafiLogo from '../../images/mocafi-logo.jpg';\nimport { string_to_slug } from '../../assets/functions';\nimport './NavBar.scss';\n// Function that validates URL municipality and conditionally returns the respective logo\nconst validateCityLogo = (municipality: String) => {\n const url = window.location.href;\n const host = window.location.host;\n const subdomain = host.split('.')[0];\n\n if (municipality === 'miami') {\n return miami;\n }\n if (municipality === 'atlanta') {\n return atlanta;\n } else {\n return mocafiLogo;\n }\n};\n\nasync function signOut(history: any, municipality: string) {\n try {\n await Auth.signOut();\n history.push(`/${municipality}`);\n window.location.reload();\n localStorage.clear();\n } catch (error) {\n console.log('error signing out: ', error);\n }\n}\n\nconst NavBar = () => {\n const history = useHistory();\n const [role, setRole] = useState('User');\n const [municipality, setMunicipality] = useState('');\n\n const context = useContext(Context);\n\n const getUserRole = async () => {\n let token = await Auth.currentSession();\n setRole(token.getIdToken().payload['custom:Role']);\n setMunicipality(\n string_to_slug(token.getIdToken().payload['custom:Municipality'])\n );\n };\n\n useEffect(() => {\n getUserRole();\n }, []);\n\n return (\n <>\n \n \n \n \n \n {/* MoCaFi IRC Portal */}\n {context.userInfo.municipality[0].toUpperCase() +\n context.userInfo.municipality.slice(1)}\n \n \n \n \n {context.userInfo.isAdmin ? (\n <>\n \n Accounts\n \n \n ) : (\n <>\n )}\n \n \n signOut(history, municipality)}\n >\n SIGN OUT\n \n \n \n \n \n \n \n \n {\n localStorage.setItem(\n 'currentNavigationTab',\n JSON.stringify('/:municipality/projects')\n );\n context.setNavigationTab('/:municipality/projects');\n }}\n as={Link}\n to={`/${municipality}/projects`}\n >\n Projects\n \n\n {role === 'Admin' ? (\n {\n localStorage.setItem(\n 'currentNavigationTab',\n JSON.stringify('/reporting')\n );\n context.setNavigationTab(`/:municipality/reporting`);\n }}\n as={Link}\n to={`/${municipality}/reporting`}\n >\n Reporting\n \n ) : (\n
\n )}\n\n {role === 'Admin' ? (\n {\n localStorage.setItem(\n 'currentNavigationTab',\n JSON.stringify('/funding-requests')\n );\n context.setNavigationTab('/:municipality/funding-requests');\n }}\n as={Link}\n to={`/${municipality}/funding-requests`}\n >\n Funding Requests\n \n ) : (\n
\n )}\n {\n localStorage.setItem(\n 'currentNavigationTab',\n JSON.stringify('/scheduled-jobs-management')\n );\n context.setNavigationTab(\n '/:municipality/scheduled-jobs-management'\n );\n }}\n as={Link}\n to={`/${municipality}/scheduled-jobs-management`}\n >\n Scheduled Jobs\n \n \n
\n \n );\n};\n\nexport default withRouter(NavBar);\n","import NavBar from \"./NavBar\";\nexport default NavBar;\n","import React, { useEffect, useState } from 'react';\nimport { Route } from 'react-router-dom';\nimport { Auth } from 'aws-amplify';\nimport './ProtectedRoute.scss';\n\nexport const ProtectedRoute = ({\n level,\n path,\n component: Component,\n render,\n ...rest\n}: any) => {\n const [role, setRole] = useState('User');\n\n const getUserRole = async () => {\n let token = await Auth.currentSession();\n setRole(token.getIdToken().payload['custom:Role']);\n };\n\n useEffect(() => {\n getUserRole();\n }, []);\n\n if (!level.some((l: string) => l === role)) {\n return (\n
\n

Access Denied

\n
\n );\n } else {\n return (\n {\n return Component ? (\n \n ) : (\n render(props)\n );\n }}\n />\n );\n }\n};\n","import React, {\n lazy,\n ReactElement,\n Suspense,\n useEffect,\n useState,\n} from 'react';\nimport NavBar from 'common/NavBar';\nimport {\n BrowserRouter,\n Switch,\n Route,\n Redirect,\n useHistory,\n} from 'react-router-dom';\nimport { ProtectedRoute } from './common/ProtectedRoute/ProtectedRoute';\nimport LoadingSpinner from 'common/LoadingSpinner';\nimport { string_to_slug } from './assets/functions';\nimport Auth from '@aws-amplify/auth';\n\nconst ReportingPage = lazy(() => import('containers/Reporting'));\nconst FundingRequests = lazy(() => import('containers/FundingRequests'));\nconst ScheduledJobManagement = lazy(\n () => import('containers/ScheduledJobManagement')\n);\nconst ProjectsPage = lazy(() => import('containers/Projects'));\nconst SMSPage = lazy(() => import('containers/SMSPage'));\nconst NewProjectPage = lazy(() => import('containers/NewProject'));\nconst Adjustments = lazy(() => import('containers/Adjustments'));\nconst EditProjectPage = lazy(() => import('containers/EditProject'));\nconst NewOrdersPage = lazy(() => import('containers/NewOrder'));\nconst SingleOrderFormPage = lazy(() => import('containers/SingleOrderForm'));\nconst OrderConfirmationPage = lazy(\n () => import('containers/OrderConfirmation')\n);\nconst ViewProjectPage = lazy(() => import('containers/ViewProject'));\nconst BulkResult = lazy(() => import('containers/BulkResult'));\nconst PaymentResult = lazy(() => import('containers/PaymentResult'));\nconst BulkCSVPage = lazy(() => import('containers/BulkCSV'));\nconst MassFunding = lazy(() => import('containers/Funding/MassFunding'));\nconst BulkOrderPage = lazy(() => import('containers/BulkCardOrder'));\nconst AccountsPage = lazy(() => import('containers/Accounts'));\nconst ViewAccountPage = lazy(() => import('containers/ViewAccount'));\nconst Funding = lazy(() => import('containers/Funding'));\nconst OrderDetailsPage = lazy(() => import('containers/OrderDetails'));\nconst CardDetailsPage = lazy(() => import('containers/CardDetails'));\nconst LoadFundsPage = lazy(() => import('containers/LoadFunds'));\nconst LoadFundsErrorPage = lazy(() => import('containers/LoadFundsError'));\nconst UserDeactivationPage = lazy(() => import('containers/UserDeactivation'));\n\nconst AppRouter = () => {\n return (\n \n \n }>\n \n } />\n }\n />\n {/* */}\n {/* */}\n }\n />\n \n }\n />\n \n \n \n \n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n \n \n \n );\n};\n\nexport default AppRouter;\n\nconst URLRoute = (props: any) => {\n const [municipality, setMunicipality] = useState('');\n const history = useHistory();\n\n const { path, render, privateRoute, level, component } = props;\n\n const getUserRole = async () => {\n let token = await Auth.currentSession();\n setMunicipality(token.getIdToken().payload['custom:Municipality']);\n };\n\n let pathArray = window.location.pathname.split('/');\n let secondLevelLocation = pathArray[1];\n\n useEffect(() => {\n getUserRole();\n }, []);\n\n if (\n string_to_slug(municipality) &&\n string_to_slug(municipality) !== secondLevelLocation\n ) {\n history.push(`/${string_to_slug(municipality)}/projects`);\n }\n\n if (privateRoute) {\n return (\n \n );\n } else {\n return ;\n }\n};\n\nconst BaseRoute = (props: any) => {\n const { path, render, privateRoute, level, component } = props;\n const [municipality, setMunicipality] = useState('');\n const history = useHistory();\n\n const getUserRole = async () => {\n let token = await Auth.currentSession();\n setMunicipality(token.getIdToken().payload['custom:Municipality']);\n };\n\n let pathArray = window.location.pathname.split('/');\n let secondLevelLocation = pathArray[1];\n let thirdLevelLocation = pathArray[2];\n\n useEffect(() => {\n getUserRole();\n }, []);\n\n if (\n string_to_slug(municipality) &&\n string_to_slug(municipality) !== secondLevelLocation\n // ||!thirdLevelLocation\n ) {\n history.push(`/${string_to_slug(municipality)}/projects`);\n }\n\n if (\n string_to_slug(municipality) &&\n !thirdLevelLocation\n // ||!thirdLevelLocation\n ) {\n history.push(`/${string_to_slug(municipality)}/projects`);\n }\n\n return
;\n};\n","import React from 'react';\nimport AppRouter from './AppRouter';\nimport Amplify from 'aws-amplify';\nimport { ThemeProvider } from 'styled-components';\nimport Wrapper from 'theme/theme';\nimport 'react-toastify/dist/ReactToastify.css';\nimport './index.css';\n\nAmplify.configure({\n Auth: {\n // REQUIRED - Amazon Cognito Region\n region: process.env.REACT_APP_COGNITO_REGION,\n // OPTIONAL - Amazon Cognito User Pool ID\n userPoolId: process.env.REACT_APP_COGNITO_USER_POOL_ID,\n // OPTIONAL - Amazon Cognito Web Client ID (26-char alphanumeric string)\n userPoolWebClientId: process.env.REACT_APP_COGNITO_CLIENT_ID,\n },\n});\n\nfunction App() {\n return (\n \n \n \n \n );\n}\n\nexport default App;\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 https://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.0/8 are 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\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: 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 https://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: string, config?: 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 https://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: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\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\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"us-east-1\"\n};\n\n\nexport default awsmobile;\n","import \"bootstrap/dist/css/bootstrap.min.css\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport Amplify from \"aws-amplify\";\nimport awsExports from \"./aws-exports\";\nimport AuthStateProvider from \"./AuthStateProvider\";\n\nAmplify.configure(awsExports);\n\nReactDOM.render(\n \n \n \n \n ,\n\n document.getElementById(\"root\")\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\nserviceWorker.unregister();\n","// Function that takes any string and turns it into a slug expresion\nexport const string_to_slug = (str) => {\n if (str) {\n str = str.replace(/^\\s+|\\s+$/g, ''); // trim\n str = str.toLowerCase();\n\n // remove accents, swap ñ for n, etc\n var from = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;';\n var to = 'aaaaeeeeiiiioooouuuunc------';\n for (var i = 0, l = from.length; i < l; i++) {\n str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));\n }\n\n str = str\n .replace(/[^a-z0-9 -]/g, '') // remove invalid chars\n .replace(/\\s+/g, '-') // collapse whitespace and replace by -\n .replace(/-+/g, '-'); // collapse dashes\n\n return str;\n }\n};\n","import ColorPalette from \"./ColorPalette\";\nexport default ColorPalette;\n","import styled from \"styled-components\";\nimport {\n alignContent,\n alignItems,\n alignSelf,\n AlignSelfProps,\n borders,\n bottom,\n color,\n ColorProps,\n display,\n DisplayProps,\n flex,\n flexBasis,\n FlexboxProps,\n flexDirection,\n FlexProps,\n flexWrap,\n fontFamily,\n fontSize,\n FontSizeProps,\n height,\n HeightProps,\n justifyContent,\n justifySelf,\n left,\n maxHeight,\n maxWidth,\n MaxWidthProps,\n minHeight,\n minWidth,\n order,\n overflow,\n position,\n right,\n space,\n SpaceProps,\n textAlign,\n TextAlignProps,\n top,\n verticalAlign,\n width,\n WidthProps,\n zIndex,\n} from \"styled-system\";\nimport { ReactElement } from \"react\";\n\ntype OwnProps = {\n children?: ReactElement | Array | undefined;\n};\n\ntype Props = OwnProps &\n SpaceProps &\n MaxWidthProps &\n WidthProps &\n HeightProps &\n FlexProps &\n AlignSelfProps &\n TextAlignProps &\n FontSizeProps &\n DisplayProps &\n ColorProps &\n FlexboxProps;\n\n/**\n * A div that has props for styling.\n */\nconst Box = styled(\"div\")`\n \"boxSizing\":border-box ;\n overflow: visible;\n -webkit-overflow-scrolling: touch;\n ${color};\n ${space};\n ${display};\n ${position};\n ${top};\n ${bottom};\n ${left};\n ${right};\n ${minWidth};\n ${maxWidth};\n ${width};\n ${fontSize};\n ${fontFamily};\n ${textAlign};\n ${borders};\n ${flex};\n ${order};\n ${alignSelf};\n ${height};\n ${minHeight};\n ${maxHeight};\n ${alignItems};\n ${alignContent};\n ${justifyContent};\n ${flexWrap};\n ${flexBasis};\n ${flexDirection};\n ${justifySelf};\n ${verticalAlign};\n ${zIndex};\n ${overflow};\n`;\n\nexport default Box;\n","import Box from \"./Box\";\nexport default Box;\n","import { Auth } from 'aws-amplify';\n\nlet urlRoute = process.env.REACT_APP_MOCAFI_API_ROUTE;\n\nconst getDomain = async (municipalityName: string, cognitoToken: string) => {\n const token = await Auth.currentSession();\n const municipality = token.getIdToken().payload['custom:Municipality'];\n\n const myInit = {\n // OPTIONAL\n headers: {\n 'Content-type': 'application/json',\n 'mocafi-username': token.getIdToken().payload['cognito:username'],\n token: `Bearer ${cognitoToken}`,\n city: municipality,\n municipality,\n },\n method: 'GET',\n // response: true, // OPTIONAL (return the entire Axios response object instead of only response.data)\n };\n\n const response = await fetch(\n `${urlRoute}irc/irc-products/municipalities/${municipalityName}`,\n myInit\n )\n .then((response) => response.json())\n .catch(function (error) {\n return error;\n });\n return response;\n};\n\nexport { getDomain };\n","import React, { createContext, useState } from 'react';\nimport './App.css';\nimport {\n AmplifyAuthenticator,\n AmplifyForgotPassword,\n AmplifySignIn,\n} from '@aws-amplify/ui-react';\nimport { AuthState, onAuthUIStateChange } from '@aws-amplify/ui-components';\nimport AuthUser from 'types/AuthUser';\nimport ProjectAttributes from 'types/ProjectAttributes';\nimport BulkOrderCSVAttributes from 'types/BulkOrderCSVAttributes';\nimport AccountAttributes from 'types/AccountAttributes';\nimport { OrderInfo } from 'types/OrderInfo';\nimport { Auth } from 'aws-amplify';\nimport CardInfo from 'types/CardInfo';\nimport { getDomain } from './services/municipalityService';\nimport { getCognitoToken } from './helpers/cognitoToken';\nimport { useHistory } from 'react-router-dom';\nimport Modal from 'react-bootstrap/Modal';\nimport styled from 'styled-components';\nimport ColorPalette from 'colorPalette';\nimport Button from 'common/Button';\nimport { string_to_slug } from './assets/functions';\n\ninterface GlobalContext {\n userInfo: AuthUser;\n setCurrentProject: React.Dispatch<\n React.SetStateAction\n >;\n currentProject: ProjectAttributes | undefined;\n currentSavedBulkCSV: BulkOrderCSVAttributes[] | undefined;\n setCurrentSavedBulkCSV: React.Dispatch<\n React.SetStateAction\n >;\n setCurrentAccount: React.Dispatch<\n React.SetStateAction\n >;\n currentAccount: AccountAttributes | undefined;\n currentNavigationTab: string;\n setNavigationTab: React.Dispatch>;\n singleOrderResident: boolean;\n setSingleOrderReciever: React.Dispatch>;\n setCurrentOrder: React.Dispatch>;\n currentOrder: OrderInfo | undefined;\n currentCard: CardInfo | undefined;\n setCurrentCard: React.Dispatch>;\n setAuthUser: React.Dispatch>;\n}\n\nexport const Context = createContext({\n userInfo: {\n isSignedIn: false,\n username: '',\n isAdmin: false,\n groupId: -1,\n isApprover: false,\n maxAmountAuthCard: 0,\n maxAmountAuthLifetime: 0,\n maxAmountAuthOrder: 0,\n municipality: '',\n firstName: '',\n lastName: '',\n },\n setCurrentProject: () => {},\n currentProject: undefined,\n setCurrentAccount: () => {},\n currentAccount: undefined,\n currentNavigationTab: '/projects',\n setNavigationTab: () => {},\n currentSavedBulkCSV: undefined,\n setCurrentSavedBulkCSV: () => {},\n singleOrderResident: true,\n setSingleOrderReciever: () => {},\n setCurrentOrder: () => {},\n currentOrder: undefined,\n setCurrentCard: () => {},\n currentCard: undefined,\n setAuthUser: () => {},\n});\n\nconst AuthStateApp = ({ children }: any) => {\n // Retrieving Values from local storage to populate on refresh\n const storedProject: ProjectAttributes | undefined = JSON.parse(\n localStorage.getItem('currentProject') || '{}'\n );\n const storedBulkCSVUpload: BulkOrderCSVAttributes[] | undefined = JSON.parse(\n localStorage.getItem('currentSavedBulkCSV') || '{}'\n );\n\n const storedAccount: AccountAttributes | undefined = JSON.parse(\n localStorage.getItem('currentAccount') || '{}'\n );\n\n const storedCard: CardInfo | undefined = JSON.parse(\n localStorage.getItem('currentCard') || '{}'\n );\n\n const storedCurrentNavigationTab: string = Object.keys(\n JSON.parse(localStorage.getItem('currentNavigationTab') || '{}')\n ).length\n ? JSON.parse(localStorage.getItem('currentNavigationTab') || '{}')\n : '/projects';\n\n const storedOrderResident: boolean =\n JSON.parse(localStorage.getItem('currentSavedBulkCSV') || 'true') === 'true'\n ? true\n : false;\n\n // Setting Global Context State Values\n const storedOrder: OrderInfo | undefined = JSON.parse(\n localStorage.getItem('currentOrder') || '{}'\n );\n\n const [authUser, setAuthUser] = useState();\n const [municipality, setMunicipality] = useState('');\n const [currentProject, setCurrentProject] = useState<\n ProjectAttributes | undefined\n >(storedProject);\n const [currentAccount, setCurrentAccount] = useState<\n AccountAttributes | undefined\n >(storedAccount);\n const [currentNavigationTab, setNavigationTab] = useState(\n storedCurrentNavigationTab\n );\n const [currentSavedBulkCSV, setCurrentSavedBulkCSV] = useState<\n BulkOrderCSVAttributes[] | undefined\n >(storedBulkCSVUpload);\n const [singleOrderResident, setSingleOrderReciever] =\n useState(storedOrderResident);\n\n const [currentCard, setCurrentCard] = useState(\n storedCard\n );\n\n const [currentOrder, setCurrentOrder] = useState(\n storedOrder\n );\n const [openModal, setOpenModal] = useState(false);\n const history = useHistory();\n\n const ModalStyle = styled(Modal.Body)`\n border-radius: 6px;\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\n background-color: #ffffff;\n padding: 24px;\n width: 500px;\n margin: auto;\n height: auto;\n `;\n\n async function signOut() {\n try {\n await Auth.signOut();\n localStorage.clear();\n history.push('/');\n } catch (error) {\n console.log('error signing out: ', error);\n }\n }\n\n const validateURL = async (user: any) => {\n // setAuthUser(user);\n\n let pathArray = window.location.pathname.split('/');\n let secondLevelLocation = pathArray[1];\n\n let url = window.location.hostname;\n if (\n url === 'localhost' ||\n window.location.hostname.includes('develop') ||\n user.isAdmin\n ) {\n setAuthUser(user);\n } else {\n getDomain(user.municipality, await getCognitoToken())\n .then((response) => {\n // Validate URL\n if (\n (response.success &&\n string_to_slug(response.data.municipality) ===\n secondLevelLocation) ||\n !secondLevelLocation ||\n user.isSignedIn\n ) {\n setAuthUser(user);\n } else {\n setOpenModal(true);\n signOut();\n }\n })\n .catch((error) => {\n console.log('error:', error);\n });\n }\n };\n\n React.useEffect(() => {\n return onAuthUIStateChange((nextAuthState: AuthState, authData: any) => {\n const authUser: AuthUser = {\n isSignedIn: AuthState.SignedIn === nextAuthState,\n isAdmin: getAttribute(authData, 'custom:Role') === 'Admin',\n username: authData?.username,\n groupId: +getAttribute(authData, 'custom:GroupID') || 0,\n isApprover:\n getAttribute(authData, 'custom:Approver')?.toLowerCase() === 'true',\n maxAmountAuthCard:\n +getAttribute(authData, 'custom:MaxAmtAuthCard') || 0,\n maxAmountAuthLifetime:\n +getAttribute(authData, 'custom:MaxAmtAuthLifetime') || 0,\n maxAmountAuthOrder:\n +getAttribute(authData, 'custom:MaxAmtAuthOrder') || 0,\n municipality: getAttribute(authData, 'custom:Municipality'),\n firstName: getAttribute(authData, 'given_name'),\n lastName: getAttribute(authData, 'family_name'),\n };\n validateURL(authUser);\n setMunicipality(municipality.toLowerCase());\n Auth.configure();\n });\n }, []);\n\n // Function that validates URL municipality and conditionally returns the respective logo\n const validateCityLogo = () => {\n const url = window.location.href;\n\n let municipality = url.split('/')[3];\n\n if (municipality === 'miami') {\n return `./cities/${municipality}/logo.png`;\n } else {\n return `./cards/${municipality}.png`;\n }\n };\n\n return authUser?.isSignedIn ? (\n
\n \n {children}\n \n
\n ) : (\n
\n {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = './cards/mocafi-logo.jpg';\n }}\n />\n \n \n
\n {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = './cards/mocafi-logo.jpg';\n }}\n />{' '}\n

Unauthorized Access

\n setOpenModal(false)}\n >\n Accept\n \n
\n
\n
\n \n \n \n \n
\n );\n};\n\nconst getAttribute = (data: any, attr: string): string => {\n if (data && data.attributes && data.attributes.hasOwnProperty(attr)) {\n return data.attributes[attr];\n }\n return '';\n};\n\nexport default AuthStateApp;\n","import styled from \"styled-components\";\nimport ColorPalette from \"colorPalette\";\nimport { Button } from \"react-bootstrap\";\nimport { ButtonType } from \"react-bootstrap/esm/Button\";\nimport React, { useState } from \"react\";\n\nconst StyledButton = styled(Button)<{\n backgroundcolor: string;\n textcolor: string;\n bordercolor: string;\n as?: string;\n type?: ButtonType;\n href?: string;\n}>`\n background-color: ${(props): string => props.backgroundcolor};\n color: ${(props): string => props.textcolor};\n border-radius: 4px;\n border-color: ${(props): string => props.bordercolor};\n padding-left: 16px;\n padding-right: 16px;\n padding-top: 8px;\n padding-bottom: 8px;\n width: fit-content;\n height: 32px;\n font-size: 14px;\n font-weight: ${({ backgroundcolor }) =>\n (backgroundcolor === ColorPalette.PelorousAlpha0 && `regular`) || `bold`};\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n &:disabled {\n background-color: ${ColorPalette.Silver};\n border-color: ${ColorPalette.Silver};\n }\n &:hover {\n background-color: ${({ backgroundcolor }) =>\n (backgroundcolor === ColorPalette.Pelorous && ColorPalette.SteelBlue) ||\n (backgroundcolor === ColorPalette.AlizarinCrimson &&\n ColorPalette.PersianRed) ||\n (backgroundcolor === ColorPalette.PelorousAlpha0 &&\n `rgba(80,155,198,.05)`) ||\n ColorPalette.Pelorous};\n border-color: ${({ backgroundcolor }) =>\n (backgroundcolor === ColorPalette.Pelorous && ColorPalette.SteelBlue) ||\n (backgroundcolor === ColorPalette.AlizarinCrimson &&\n ColorPalette.PersianRed) ||\n ColorPalette.Pelorous};\n color: ${({ backgroundcolor }) =>\n (backgroundcolor === ColorPalette.PelorousAlpha0 &&\n ColorPalette.Pelorous) ||\n ColorPalette.White};\n }\n &:not(:disabled):not(.disabled):active {\n background-color: ${({ backgroundcolor }) =>\n (backgroundcolor === ColorPalette.Pelorous && ColorPalette.SanMarino) ||\n (backgroundcolor === ColorPalette.AlizarinCrimson &&\n ColorPalette.TallPoppy) ||\n (backgroundcolor === ColorPalette.PelorousAlpha0 &&\n `rgba(80,155,198,.15)`) ||\n ColorPalette.Pelorous};\n border-color: ${({ backgroundcolor }) =>\n (backgroundcolor === ColorPalette.Pelorous && ColorPalette.SanMarino) ||\n (backgroundcolor === ColorPalette.AlizarinCrimson &&\n ColorPalette.TallPoppy) ||\n (backgroundcolor === ColorPalette.PelorousAlpha0 &&\n `rgba(80,155,198,.15)`) ||\n ColorPalette.Pelorous};\n color: ${({ backgroundcolor }) =>\n backgroundcolor === ColorPalette.PelorousAlpha0 && ColorPalette.Pelorous};\n }\n &:focus {\n background-color: ${({ backgroundcolor }) =>\n (backgroundcolor === ColorPalette.Pelorous && ColorPalette.SanMarino) ||\n (backgroundcolor === ColorPalette.AlizarinCrimson &&\n ColorPalette.TallPoppy) ||\n (backgroundcolor === ColorPalette.PelorousAlpha0 &&\n `rgba(80,155,198,.15)`) ||\n ColorPalette.Pelorous};\n border-color: ${({ backgroundcolor }) =>\n (backgroundcolor === ColorPalette.Pelorous && ColorPalette.SanMarino) ||\n (backgroundcolor === ColorPalette.AlizarinCrimson &&\n ColorPalette.TallPoppy) ||\n (backgroundcolor === ColorPalette.PelorousAlpha0 &&\n `rgba(80,155,198,.15)`) ||\n ColorPalette.Pelorous};\n color: ${({ backgroundcolor }) =>\n backgroundcolor === ColorPalette.PelorousAlpha0 && ColorPalette.Pelorous};\n }\n`;\n\nexport { StyledButton };\n"],"sourceRoot":""}