{"version":3,"sources":["webpack://elevations-credit-union/./src/components/modules/TitleModule/TitleModule.module.scss","webpack://elevations-credit-union/./src/components/modules/TitleModule/TitleModule.js","webpack://elevations-credit-union/./src/components/tag/Tag.js","webpack://elevations-credit-union/./src/components/tag/Tag.module.scss","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/components/JobListing.js","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/components/JobListing.module.scss","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/components/DepartmentSection.js","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/components/DepartmentSection.module.scss","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/components/JobBoard.js","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/components/JobBoard.module.scss","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/components/FeaturedBoard.js","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/components/FeaturedBoard.module.scss","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/GreenhouseModule.module.scss","webpack://elevations-credit-union/./src/components/modules/GreenhouseModule/GreenhouseModule.js","webpack://elevations-credit-union/./src/containers/careers/open-positions.js","webpack://elevations-credit-union/./src/containers/careers/constants.js","webpack://elevations-credit-union/./src/templates/staticTemplate.js"],"names":["Business","Personal","heading","body","tagline","linkText","ctaContainer","white","lightBlue","iceBlue","black","TitleModule","selectedFontColor","richHeadline","richSubHeadline","richTagline","backgroundColor","backgroundImage","buttonUrl","buttonCta","buttonAlt","linkTextCta","linkTextUrl","linkTextAlt","fontColor","customBackgroundColor","taglineClasses","classNames","styles","headingClasses","bodyClasses","linkTextClasses","style","topStyle","url","className","data-qa","overrides","paragraph","node","children","Eyebrow","isEmpty","Heading","element","size","variant","alt","href","aria-label","Tag","additionalClassName","JobListing","index","roleTitle","location","type","link","department","parsedLocation","replace","UnstyledLink","to","DepartmentSection","jobs","i","length","filteredJobs","map","job","role","roleType","absoluteURL","JobBoard","numberOfJobs","sortedJobs","reduce","finalArray","item","jobsItem","absolute_url","title","employment_type","jobsList","find","push","sortedLength","sort","a","b","localeCompare","aria-live","scope","FeaturedBoard","featuredJobs","updated_at","Date","getTime","featuredLength","filerContainer","locationFilter","departmentFilter","roleFilter","clearFilterButton","GreenhouseModule","t","useTranslation","useState","setJobs","allJobs","setAlljobs","locations","setLocations","departments","setDepartment","roleTypes","setRoleTypes","isLoading","setIsLoading","locationFilterValue","setLocationFilterValue","roleFilterValue","setRoleFilterValue","departmentFilterValue","setDepartmentFilterValue","setFeaturedJobs","requestJobs","axios","method","result","status","data","Error","ecuJobs","forEach","tmpLocation","name","tmpJob","metadata","value","j","organization","k","featured","l","newJobs","setFilters","cleanedLocationMap","Set","departmentMap","roleTypeMap","getFeaturedJobs","newFeaturedJobs","filter","useEffect","fetchData","handleOtherFilters","changed","currentLocation","currentRole","currentDep","jobsToBeFiltered","filteringLocation","concat","locationTmpJobs","depTmpJobs","roleTmpJobs","label","defaultValue","id","onChange","event","selectedLocation","target","aria-controls","selectedDepartment","selectedType","onClick","OpenPositions","pageContext","culturePage","urlPath","partiallyActive","lifeAtECUPage","DEIPage","openPositionsPage","careersPage","usePages","headline","OpenPositionsPage","nodeType","content","marks","elevatedTitleHeadline","subHeadlineLineOne","subHeadline","elevatedTitleBody","navMenus","pathname","menu","subnav","showSubnav","language","langKey","ElevatedTitleCentered","richBody","StaticTemplate","i18n","useStaticQuery","allContentfulNavigationMenu","edges","acc","edge","node_locale","navigationItems","internal","JSON","parse","items","propTypes","PropTypes"],"mappings":"ilBACW,EAAc,yCACdA,EAAW,sCACXC,EAAW,sCACXC,EAAU,qCACVC,EAAO,kCACPC,EAAU,qCACVC,EAAW,sCACXC,EAAe,0CACfC,EAAQ,mCACRC,EAAY,uCACZC,EAAU,qCACVC,EAAQ,mC,iECAbC,EAAc,SAAC,GAcd,IACDC,EAdJC,EAaI,EAbJA,aACAC,EAYI,EAZJA,gBACAC,EAWI,EAXJA,YACAC,EAUI,EAVJA,gBACAC,EASI,EATJA,gBACAC,EAQI,EARJA,UACAC,EAOI,EAPJA,UACAC,EAMI,EANJA,UACAC,EAKI,EALJA,YACAC,EAII,EAJJA,YACAC,EAGI,EAHJA,YACAC,EAEI,EAFJA,UACAC,EACI,EADJA,sBAGA,OAAQD,GACN,IAAK,aACHZ,EAAoB,YACpB,MACF,IAAK,WACHA,EAAoB,UACpB,MACF,IAAK,QACHA,EAAoB,QACpB,MACF,IAAK,QACL,QACEA,EAAoB,QAGxB,IAAMc,EAAiBC,IAAWC,EAAgBA,EAAOhB,IACnDiB,EAAiBF,IAAWC,EAAgBA,EAAOhB,IACnDkB,EAAcH,IAAWC,EAAaA,EAAOhB,IAC7CmB,EAAkBJ,IAAWC,EAAiBA,EAAOhB,IAErDoB,EAAQ,GAEVC,EAAWL,EAiBf,OAfIZ,IACFiB,EACsB,aAApBjB,EACIW,IAAWC,EAAoBA,GAC/BD,IAAWC,EAAoBA,IAGf,UAApBZ,IACFgB,EAAMhB,gBAAkBS,GAAyB,WAG/CR,IACFe,EAAMf,gBAAN,OAA+BA,EAAgBiB,IAA/C,kBAIA,gBAAKC,UAAWF,EAAUD,MAAOA,EAAOI,UAAQ,yBAAhD,UACE,UAAC,KAAD,WACGrB,IACC,SAAC,IAAD,CACEsB,UAAW,CACTC,UAAW,SAACC,EAAMC,GAAP,OACTA,IAAY,SAACC,EAAA,EAAD,CAASN,UAAWT,EAApB,SAAqCc,MAHvD,SAMGzB,KAGL,SAAC,IAAD,CACEsB,UAAW,CACTC,UAAW,SAACC,EAAMC,GAAP,OACRE,IAAQF,KACP,SAACG,EAAA,EAAD,CACEC,QAAQ,KACRC,KAAM,EACNV,UAAWN,EACXO,UAAQ,wBAJV,SAMGI,MAVX,SAeG3B,IAGFC,IACC,SAAC,IAAD,CACEuB,UAAW,CACTC,UAAW,SAACC,EAAMC,GAAP,OACRE,IAAQF,KACP,SAACG,EAAA,EAAD,CAASC,QAAQ,IAAIC,KAAM,EAAGV,UAAWL,EAAaM,UAAQ,oBAA9D,SACGI,MALX,SAUG1B,IAIJK,GAAaD,IACZ,iBAAKiB,UAAWP,EAAqBQ,UAAQ,6BAA7C,WACE,SAAC,IAAD,CAAQF,IAAKhB,EAAW4B,QAAQ,QAAQC,IAAK3B,EAA7C,SACGD,IAGFE,GAAeC,IACd,cAAG0B,KAAM1B,EAAaa,UAAWJ,EAAiBkB,aAAY1B,EAA9D,SACGF,c,sGCrHX6B,EAAM,SAAC,GAAkD,IAAhDV,EAA+C,EAA/CA,SAAqBW,EAA0B,EAArChB,UACjBA,EAAYR,ICJH,yBDI0BwB,GAEzC,OACE,iBAAMhB,UAAWA,EAAWC,UAAQ,MAApC,SACGI,M,2aECDY,EAAa,SAAC,GAA2D,EAAzDC,MAA0D,IAAnDC,EAAkD,EAAlDA,UAAWC,EAAuC,EAAvCA,SAAUC,EAA6B,EAA7BA,KAAkBC,GAAW,EAAvBC,WAAuB,EAAXD,MAC5DE,EAAiBJ,EAASK,QAAQ,kBAAmB,IAC3D,OACE,gBAAIzB,UCZsB,6CDY1B,WACE,eAAIA,UCViB,0CDUgBC,UAAA,cAAuBkB,EAA5D,UACE,SAACO,EAAA,EAAD,CACEC,GAAIL,EACJrB,UAAYkB,EAAZ,aACAP,IAAQO,EAAL,aACHL,aAAA,WAAuBK,EAAvB,iBAJF,SAMGA,OAGL,eAAInB,UCtBqB,8CDsBzB,UACE,uBAAIwB,OAEN,eAAIxB,UCxBqB,8CDwBzB,UACE,uBAAIqB,OAEN,eAAIrB,UCzBkB,2CDyBtB,UACE,SAAC,IAAD,CAAQD,IAAKuB,EAAMV,IAAG,wBAA0BO,EAAhD,6BEtBFS,EAAoB,SAAC,GAAqC,IAAnCL,EAAkC,EAAlCA,WAAYM,EAAsB,EAAtBA,KAAMC,EAAgB,EAAhBA,EAAGC,EAAa,EAAbA,OAC1CC,EAAeH,EAAKA,KAC1B,OACE,iBAAK7B,UAAW8B,IAAMC,EAAS,ECTE,2DADJ,uDDU7B,WACE,eAAI/B,UCZkB,kDDYtB,UACE,uBAAIuB,OAEN,gBAAKvB,UCXoB,qDDWzB,SAEGgC,EAAaC,KAAI,SAAAC,GAChB,OACE,SAACjB,EAAD,CACEC,MAAM,IACNC,UAAWe,EAAIC,KACff,SAAUc,EAAId,SACdC,KAAMa,EAAIE,SACVd,KAAMY,EAAIG,uBEhBlBC,EAAW,SAAC,GAAc,IAAZT,EAAW,EAAXA,KAEZU,EAAeV,EAAKE,OACpBS,EAAaX,EAAKY,QAAO,SAACC,EAAYC,GAC1C,IAAMC,EAAW,CACfP,YAAaM,EAAKE,aAClBV,KAAMQ,EAAKG,MACX1B,SAAUuB,EAAKvB,SACfgB,SAAUO,EAAKI,iBAGXC,EAAWN,EAAWO,MAAK,SAAAnB,GAAC,OAAIA,EAAEP,aAAeoB,EAAKpB,cAU5D,OARIyB,EACFA,EAASnB,KAAKqB,KAAKN,GAEnBF,EAAWQ,KAAK,CACd3B,WAAYoB,EAAKpB,WACjBM,KAAM,CAACe,KAGJF,IACN,IACGS,EAAeX,EAAWT,OAIhC,OAHAS,EAAWY,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9B,WAAWgC,cAAcD,EAAE/B,gBAIrD,iBAAKvB,UChCa,mCDgClB,WACE,iBAAKA,UClCoB,4CDkCiBwD,YAAU,YAApD,UACoB,IAAjBjB,IAAsB,yBAAIA,EAAJ,oBACL,IAAjBA,IAAsB,yBAAIA,EAAJ,yBAEzB,gBAAKvC,UCzCoB,4CDyCzB,UACE,8BACE,gBAAIA,UCzCU,qCDyCd,WACE,eAAIA,UCtCQ,qCDsCsBc,aAAW,aAAa2C,MAAM,MAAhE,UACE,yCAEF,eAAIzD,UCxCE,+BDwCsBc,aAAW,OAAO2C,MAAM,MAApD,UACE,mCAEF,eAAIzD,UC1CM,mCD0CsBc,aAAW,WAAW2C,MAAM,MAA5D,UACE,uCAEF,eAAIzD,UC5CM,mCD4CsBc,aAAW,YAAY2C,MAAM,MAA7D,UACE,2CAGJ,iBAAKzD,UCpDY,wCDoDjB,UAEoB,IAAjBuC,IACC,gBAAKvC,UC3DO,uCD2DyBwD,YAAU,YAA/C,UACE,+JAMHhB,EAAWP,KAAI,SAACC,EAAKJ,GACpB,OACE,SAACF,EAAD,CACEL,WAAYW,EAAIX,WAChBM,KAAMK,EACNJ,EAAGA,EACHC,OAAQoB,mBEjEpBO,EAAgB,SAAC,GAAc,IAE7B1B,EAF4B,EAAXH,KAGvBG,EAAaD,OAAS,EAEtB,IAAM4B,EAAe3B,EAAaS,QAAO,SAACC,EAAYC,GACpD,IAAMC,EAAW,CACfP,YAAaM,EAAKE,aAClBV,KAAMQ,EAAKG,MACX1B,SAAUuB,EAAKvB,SACfgB,SAAUO,EAAKI,gBACfa,WAAY,IAAIC,KAAKlB,EAAKiB,YAAYE,WAcxC,OANApB,EAAWQ,KAAK,CACd3B,WAAYoB,EAAKpB,WACjBqC,WAAY,IAAIC,KAAKlB,EAAKiB,YAAYE,UACtCjC,KAAM,CAACe,KAGFF,IACN,IAEHiB,EAAaP,MADW,SAACC,EAAGC,GAAJ,OAAUA,EAAEM,WAAaP,EAAEO,cAEnD,IAAMG,EAAiBJ,EAAa5B,OAEpC,OACE,iBAAK/B,UCpCa,wCDoClB,WACE,gBAAKA,UCtCe,4CDsCpB,UACE,4CAEF,kBAAOA,UC5CkB,iDD4CzB,UACE,gBAAKA,UCxCc,6CDwCnB,SACG2D,EAAa1B,KAAI,SAACC,EAAKJ,GACtB,OACE,SAACF,EAAD,CACEL,WAAYW,EAAIX,WAChBM,KAAMK,EACNJ,EAAGA,EACHC,OAAQgC,eEpDbC,EAAiB,iDACjBC,EAAiB,iDACjBC,EAAmB,mDACnBC,EAAa,6CACbC,EAAoB,oDCGzBC,EAAmB,WACvB,IAAOC,GAAKC,SAAZ,GACA,GAAwBC,cAAS,IAA1B3C,EAAP,KAAa4C,EAAb,KACA,GAA8BD,cAAS,IAAhCE,EAAP,KAAgBC,EAAhB,KACA,GAAkCH,cAAS,IAApCI,EAAP,KAAkBC,EAAlB,KACA,GAAqCL,cAAS,IAAvCM,EAAP,KAAoBC,EAApB,KACA,GAAkCP,cAAS,IAApCQ,EAAP,KAAkBC,EAAlB,KACA,GAAkCT,eAAS,GAApCU,EAAP,KAAkBC,EAAlB,KACA,GAAsDX,cAAS,iBAAxDY,EAAP,KAA4BC,EAA5B,KACA,GAA8Cb,cAAS,kBAAhDc,EAAP,KAAwBC,EAAxB,KACA,GAA0Df,cAAS,mBAA5DgB,EAAP,KAA8BC,EAA9B,KACA,GAAwCjB,cAAS,IAA1Cb,EAAP,KAAqB+B,EAArB,KAX6B,SAadC,IAbc,uEAa7B,wGACuBC,IAAM,CACzBC,OAAQ,MACR9F,IAAK,0EAHT,UAKwB,OAJhB+F,EADR,QAKaC,QAAmBD,EAAOE,MAASF,EAAOE,KAAKnE,KAL5D,sBAMU,IAAIoE,MAAM,uBANpB,cAQQC,EAAU,GAChBJ,EAAOE,KAAKnE,KAAKsE,SAAQ,SAAAjE,GACvB,IAAIkE,EAEFA,EADwB,WAAtBlE,EAAId,SAASiF,KACD,kCAEAnE,EAAId,SAASiF,KAE7B,IAAMC,EAAS,GACfA,EAAOzD,aAAeX,EAAIW,aAC1ByD,EAAOlF,SAAWgF,EAClBE,EAAOxD,MAAQZ,EAAIY,MACnB,IAAK,IAAIhB,EAAI,EAAGA,GAAK,EAAGA,GAAK,EACE,oBAAzBI,EAAIqE,SAASzE,GAAGuE,OAClBC,EAAOvD,gBAAkBb,EAAIqE,SAASzE,GAAG0E,OAG7C,IAAK,IAAIC,EAAI,EAAGA,GAAK,EAAGA,GAAK,EACE,iBAAzBvE,EAAIqE,SAASE,GAAGJ,OAClBC,EAAOI,aAAexE,EAAIqE,SAASE,GAAGD,OAG1C,IAAK,IAAIG,EAAI,EAAGA,GAAK,EAAGA,GAAK,EACE,aAAzBzE,EAAIqE,SAASI,GAAGN,OAClBC,EAAOM,SAAW1E,EAAIqE,SAASI,GAAGH,OAGtC,IAAK,IAAIK,EAAI,EAAGA,GAAK,EAAGA,GAAK,EACE,yBAAzB3E,EAAIqE,SAASM,GAAGR,OAClBC,EAAO/E,WAAaW,EAAIqE,SAASM,GAAGL,OAGxCN,EAAQhD,KAAKoD,MAETQ,EAAUZ,EAAQjE,KAAI,SAAAC,GAC1B,IAAMoE,EAASpE,EAOf,OANwB,OAApBoE,EAAOlF,WACTkF,EAAOlF,SAAW,iBAEM,OAAtBkF,EAAO/E,aACT+E,EAAO/E,WAAa,iBAEf+E,KAlDX,kBAqDSQ,GArDT,4CAb6B,sBAqE7B,IAAMC,EAAa,SAAAf,GACjB,IACMgB,GADW,OAAO,IAAIC,IAAIjB,EAAK/D,KAAI,SAAAU,GAAI,OAAIA,EAAKvB,cACfa,KAAI,SAAAb,GAAQ,OAAIA,EAASK,QAAQ,kBAAmB,OAC3FoD,EAAamC,GACb,IAAME,GAAa,OAAO,IAAID,IAAIjB,EAAK/D,KAAI,SAAAU,GAAI,OAAIA,EAAKpB,gBACxD2F,EAAc9D,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEE,cAAcD,MAC7CyB,EAAcmC,GACd,IAAMC,GAAW,OAAO,IAAIF,IAAIjB,EAAK/D,KAAI,SAAAU,GAAI,OAAIA,EAAKI,qBACtDkC,EAAakC,GACbhC,GAAa,IAGTiC,EAAkB,SAAApB,GACtB,IAAMqB,EAAkBrB,EAAKsB,QAAO,SAAApF,GAAG,OAAqB,IAAjBA,EAAI0E,YAC/ClB,EAAgB2B,KAGlBE,gBAAU,YACO,mCAAG,2FAChBpC,GAAa,GADG,SAEGQ,IAFH,OAEVK,EAFU,OAGhBvB,EAAQuB,GACRrB,EAAWqB,GACXe,EAAWf,GACXoB,EAAgBpB,GANA,2CAAH,qDAQfwB,KACC,IAEH,IAAMC,EAAqB,SAACH,EAAQI,GAClC,IAAMC,EAAkBvC,EAClBwC,EAActC,EACduC,EAAarC,EACfsC,EAAmBpD,EACvB,IAAKgD,EAAS,CACZ,GAAwB,kBAApBC,GAAkD,aAAXL,EAAuB,CAChE,IAAMS,EAAoBJ,EAAgBK,OAAO,mBAC3CC,EAAkBH,EAAiBR,QACvC,SAAApF,GAAG,OAAIA,EAAId,SAASiF,OAAS0B,KAE/BD,EAAmBG,EAErB,GAAmB,oBAAfJ,GAA+C,eAAXP,EAAyB,CAC/D,IAAMY,EAAaJ,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAIX,aAAesG,KACrEC,EAAmBI,EAErB,GAAoB,mBAAhBN,GAA+C,SAAXN,EAAmB,CACzD,IAAMa,EAAcL,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAIa,kBAAoB6E,KAC3EE,EAAmBK,GAGvB,GAAIT,EAAS,CACX,GAAe,aAAXJ,EAAuB,CACzB,GAAgB,kBAAZI,EACFI,EAAmBpD,MACd,CACL,IAAMqD,EAAoBL,EAAQM,OAAO,mBACnCC,EAAkBH,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAId,WAAa2G,KACxED,EAAmBG,EAErB,GAAmB,oBAAfJ,EAAkC,CACpC,IAAMK,EAAaJ,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAIX,aAAesG,KACrEC,EAAmBI,EAErB,GAAoB,mBAAhBN,EAAkC,CACpC,IAAMO,EAAcL,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAIa,kBAAoB6E,KAC3EE,EAAmBK,GAGvB,GAAe,eAAXb,EAAyB,CAC3B,GAAgB,oBAAZI,EACFI,EAAmBpD,MACd,CACL,IAAMwD,EAAaJ,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAIX,aAAemG,KACrEI,EAAmBI,EAErB,GAAwB,kBAApBP,EAAqC,CACvC,IAAMI,EAAoBJ,EAAgBK,OAAO,mBAC3CC,EAAkBH,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAId,WAAa2G,KACxED,EAAmBG,EAErB,GAAoB,mBAAhBL,EAAkC,CACpC,IAAMO,EAAcL,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAIa,kBAAoB6E,KAC3EE,EAAmBK,GAGvB,GAAe,SAAXb,EAAmB,CACrB,GAAgB,mBAAZI,EACFI,EAAmBpD,MACd,CACL,IAAMyD,EAAcL,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAIa,kBAAoB2E,KAC3EI,EAAmBK,EAErB,GAAwB,kBAApBR,EAAqC,CACvC,IAAMI,EAAoBJ,EAAgBK,OAAO,mBAC3CC,EAAkBH,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAId,WAAa2G,KACxED,EAAmBG,EAErB,GAAmB,oBAAfJ,EAAkC,CACpC,IAAMK,EAAaJ,EAAiBR,QAAO,SAAApF,GAAG,OAAIA,EAAIX,aAAesG,KACrEC,EAAmBI,IAIzBzD,EAAQqD,GACR3C,GAAa,IAiCf,OACE,iBAAKnF,UAAWP,gBAAhB,WACIyF,GAAavB,EAAa5B,OAAS,IAAK,SAAC2B,EAAD,CAAe7B,KAAM8B,KAC/D,iBAAK3D,UAAWP,EAAhB,WACE,gBAAKO,UAAWP,EAAhB,UACIyF,GAAaN,EAAU7C,OAAS,IAChC,UAAC,IAAD,CACEqG,MAAK,GAAK9D,EAAE,+BAAgC,CAC1C+D,aAAc,uBAEhBC,GAAG,mBACHjC,KAAK,mBACLkC,SA1Ca,SAAAC,GACvBrD,GAAa,GACb,IAAMsD,EAAmBD,EAAME,OAAOlC,MACtCnB,EAAuBoD,GACvBhB,EAAmB,WAAYgB,IAuCrBjC,MAAOpB,EACPuD,gBAAc,YARhB,WAUE,SAAC,WAAD,CAAenC,MAAM,gBAArB,2BACC5B,EAAU3C,KAAI,SAAAb,GACb,OACE,SAAC,WAAD,CAA8BoF,MAAOpF,EAAUkH,GAAG,YAAlD,SACGlH,GADiBA,YAQ9B,gBAAKpB,UAAWP,EAAhB,UACIyF,GAAaJ,EAAY/C,OAAS,IAClC,UAAC,IAAD,CACEqG,MAAK,GAAK9D,EAAE,iCAAkC,CAC5C+D,aAAc,yBAEhBC,GAAG,qBACHjC,KAAK,qBACLkC,SAjDe,SAAAC,GACzBrD,GAAa,GACb,IAAMyD,EAAqBJ,EAAME,OAAOlC,MACxCf,EAAyBmD,GACzBnB,EAAmB,aAAcmB,IA8CvBpC,MAAOhB,EACPmD,gBAAc,aARhB,WAUE,SAAC,WAAD,CAAenC,MAAM,kBAArB,6BACC1B,EAAY7C,KAAI,SAAAV,GACf,OACE,SAAC,WAAD,CAAgCiF,MAAOjF,EAAY+G,GAAG,aAAtD,SACG/G,GADiBA,YAQ9B,gBAAKvB,UAAWP,EAAhB,UACIyF,GAAaF,IACb,UAAC,IAAD,CACEoD,MAAK,GAAK9D,EAAE,2BAA4B,CACtC+D,aAAc,mBAEhBC,GAAG,eACHjC,KAAK,eACLkC,SAjES,SAAAC,GACnBrD,GAAa,GACb,IAAM0D,EAAeL,EAAME,OAAOlC,MAClCjB,EAAmBsD,GACnBpB,EAAmB,OAAQoB,IA8DjBrC,MAAOlB,EACPqD,gBAAc,WARhB,WAUE,SAAC,WAAD,CAAenC,MAAM,iBAArB,4BACCxB,EAAU/C,KAAI,SAAAG,GACb,OACE,SAAC,WAAD,CAA8BoE,MAAOpE,EAAUkG,GAAG,WAAlD,SACGlG,GADiBA,YAQ9B,mBAAQf,KAAK,SAASrB,UAAWP,EAA0BqJ,QAhG1C,SAAAN,GACrBrD,GAAa,GACbV,EAAQC,GACRW,EAAuB,iBACvBI,EAAyB,mBACzBF,EAAmB,kBACnBJ,GAAa,IA0FT,mCAIF,SAAC7C,EAAD,CAAUT,KAAMA,Q,qBCtRhBkH,EAAgB,SAAC,GAA+B,IAA7B3H,EAA4B,EAA5BA,SAAU4H,EAAkB,EAAlBA,YAC1B1E,GAAKC,SAAZ,GACA,ECdsB,WACtB,IAAOD,GAAKC,SAAZ,GACM0E,EAAc,CAClBnG,MAAOwB,EAAE,qCAAsC,CAAE+D,aAAc,uBAC/Da,QAAS,8BACTC,iBAAiB,GAEbC,EAAgB,CACpBtG,MAAOwB,EAAE,uCAAwC,CAAE+D,aAAc,uBACjEa,QAAS,8BACTC,iBAAiB,GAEbE,EAAU,CACdvG,MAAOwB,EAAE,iCAAkC,CAAE+D,aAAc,kCAC3Da,QAAS,0CACTC,iBAAiB,GAEbG,EAAoB,CACxBxG,MAAO,iBACPoG,QAAS,0BACTC,iBAAiB,GAOnB,MAAO,CACLF,cACAG,gBACAC,UACAC,oBACAC,YAVkB,CAClBzG,MAAOwB,EAAE,mCAAoC,CAAE+D,aAAc,YAC7Da,QAAS,WACT7I,SAAU,CAAC4I,EAAaG,EAAeC,EAASC,KDXPE,GAAnCD,EAAR,EAAQA,YAEFE,GAFN,EAAqBC,kBAEJ,CACfC,SAAU,WACV3D,KAAM,GACN4D,QAAS,CACP,CACED,SAAU,YACVC,QAAS,CACP,CACED,SAAU,OACVE,MAAO,GACPrD,MAAO,iBACPR,KAAM,KAGVA,KAAM,OAKN8D,EAAwB,CAC5BH,SAAU,WACV3D,KAAM,GACN4D,QAAS,CACP,CACED,SAAU,YACVC,QAAS,CACP,CACED,SAAU,OACVE,MAAO,GACPrD,MAAO,+BACPR,KAAM,KAGVA,KAAM,MAKN+D,EAAqBzF,EAAE,+BAAgC,CAC3D+D,aAAa,4GAWT2B,GARqB1F,EAAE,+BAAgC,CAC3D+D,aAAa,+DAGQ/D,EAAE,gCAAiC,CACxD+D,aAAa,iDAGK,CAClBsB,SAAU,WACV3D,KAAM,GACN4D,QAAS,CACP,CACED,SAAU,YACVC,QAAS,CACP,CACED,SAAU,OACVE,MAAO,GACPrD,MAAOuD,EACP/D,KAAM,IAER,CACEA,KAAM,GACN6D,MAAO,GACPrD,MAAO,OACPmD,SAAU,SAGd3D,KAAM,OAKNiE,EAAoB,CACxBN,SAAU,WACV3D,KAAM,GACN4D,QAAS,CACP,CACED,SAAU,YACVC,QAAS,CACP,CACED,SAAU,OACVE,MAAO,GACPrD,MACE,8SACFR,KAAM,KAGVA,KAAM,MAKZ,OACE,SAAC,IAAD,CAAgBgD,YAAaA,EAA7B,SACG,gBAAGkB,EAAH,EAAGA,SAAH,OACC,UAAC,IAAD,CACE9I,SAAUA,EACV4H,YAAW,iBAAOA,EAAP,CAAoBmB,SAAU,4BACzCC,KAAI,iBAAOF,EAAP,CAAiBG,OAAQ,CAACd,KAC9Be,YAAU,EAJZ,WAME,SAAC,IAAD,CACEC,SAAUvB,EAAYwB,QACtB1H,MAAOwB,EAAE,0BAA2B,CAAE+D,aAAc,mBACpD8B,SAAS,6BAEX,SAAC3L,EAAA,EAAD,CACEE,aAAc+K,EACd9K,gBAAiBqL,EACjBnL,gBAAgB,UAChBQ,UAAU,WAEZ,SAACgF,EAAD,KACA,SAACoG,EAAA,EAAD,CACE/L,aAAcoL,EACdY,SAAUT,EACVjL,UAAU,qCACVD,UAAU,sHACVE,UAAU,+C,iHErHhB0L,EAAiB,SAAC,GAAkB,IAAhBtK,EAAe,EAAfA,SACxB,GAAmBkE,SAARqG,GAAX,WA2BA,OAAOvK,EAAS,CAAE6J,UA1BDW,QApBR,cAuBPC,4BAA+BC,MAGVtI,QAAO,SAACuI,EAAKC,GAClC,MASIA,EARF7K,KACEiB,EAFJ,EAEIA,KAEA6J,EAJJ,EAIIA,YAEctB,EANlB,EAKIuB,gBACEC,SAAYxB,QAMZQ,EAAOiB,KAAKC,MAAM1B,GAIxB,OAHAoB,EAAIE,GAAeF,EAAIE,IAAgB,GACvCF,EAAIE,GAAa7J,GAAQ+I,EAAKmB,MAEvBP,IACN,IAEkCJ,EAAKL,aAG5CI,EAAea,UAAY,CACzBnL,SAAUoL,SACVrK,SAAUqK","file":"2a60208d1aa80b4605f125705a05a5e026aa30ed-e4627bdc63659c3a36d1.js","sourcesContent":["// extracted by mini-css-extract-plugin\nexport var TitleModule = \"TitleModule-module--TitleModule--2W-dC\";\nexport var Business = \"TitleModule-module--Business--3zPhd\";\nexport var Personal = \"TitleModule-module--Personal--2Ahw3\";\nexport var heading = \"TitleModule-module--heading--2fCay\";\nexport var body = \"TitleModule-module--body--CTZcs\";\nexport var tagline = \"TitleModule-module--tagline--Q8PE9\";\nexport var linkText = \"TitleModule-module--linkText--wUXR7\";\nexport var ctaContainer = \"TitleModule-module--ctaContainer--2w0aS\";\nexport var white = \"TitleModule-module--white--EhIio\";\nexport var lightBlue = \"TitleModule-module--lightBlue--39PvV\";\nexport var iceBlue = \"TitleModule-module--iceBlue--1TvOk\";\nexport var black = \"TitleModule-module--black--2DNMb\";","/* eslint-disable react/no-danger */\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport isEmpty from 'lodash/isEmpty'\nimport * as styles from './TitleModule.module.scss'\nimport { Container } from '../../grid'\n\nimport { RichText } from '../../rich-text'\nimport { Heading } from '../../typography/Heading'\nimport { Button } from '../../button'\nimport { Eyebrow } from '../../typography/Eyebrow'\n\nconst TitleModule = ({\n richHeadline,\n richSubHeadline,\n richTagline,\n backgroundColor,\n backgroundImage,\n buttonUrl,\n buttonCta,\n buttonAlt,\n linkTextCta,\n linkTextUrl,\n linkTextAlt,\n fontColor,\n customBackgroundColor,\n}) => {\n let selectedFontColor\n switch (fontColor) {\n case 'light-blue':\n selectedFontColor = 'lightBlue'\n break\n case 'ice-blue':\n selectedFontColor = 'iceBlue'\n break\n case 'white':\n selectedFontColor = 'white'\n break\n case 'black':\n default:\n selectedFontColor = 'black'\n }\n\n const taglineClasses = classNames(styles.tagline, styles[selectedFontColor])\n const headingClasses = classNames(styles.heading, styles[selectedFontColor])\n const bodyClasses = classNames(styles.body, styles[selectedFontColor])\n const linkTextClasses = classNames(styles.linkText, styles[selectedFontColor])\n\n const style = {}\n\n let topStyle = styles.TitleModule\n\n if (backgroundColor) {\n topStyle =\n backgroundColor === 'personal'\n ? classNames(styles.TitleModule, styles.Personal)\n : classNames(styles.TitleModule, styles.Business)\n }\n\n if (backgroundColor === 'other') {\n style.backgroundColor = customBackgroundColor || '#00587c'\n }\n\n if (backgroundImage) {\n style.backgroundImage = `url(${backgroundImage.url}?q=80&w=1400)`\n }\n\n return (\n
\n \n {richTagline && (\n \n children && {children},\n }}\n >\n {richTagline}\n \n )}\n \n !isEmpty(children) && (\n \n {children}\n \n ),\n }}\n >\n {richHeadline}\n \n\n {richSubHeadline && (\n \n !isEmpty(children) && (\n \n {children}\n \n ),\n }}\n >\n {richSubHeadline}\n \n )}\n\n {buttonCta && buttonUrl && (\n
\n \n\n {linkTextCta && linkTextUrl && (\n \n {linkTextCta}\n \n )}\n
\n )}\n
\n
\n )\n}\n\nTitleModule.propTypes = {\n richHeadline: PropTypes.object.isRequired,\n richSubHeadline: PropTypes.object,\n richTagline: PropTypes.object,\n backgroundColor: PropTypes.string,\n backgroundImage: PropTypes.object,\n buttonUrl: PropTypes.string,\n buttonAlt: PropTypes.string,\n buttonCta: PropTypes.string,\n linkTextCta: PropTypes.string,\n linkTextUrl: PropTypes.string,\n linkTextAlt: PropTypes.string,\n fontColor: PropTypes.string.isRequired,\n customBackgroundColor: PropTypes.string,\n}\n\nexport { TitleModule }\nexport default TitleModule\n","import PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport * as styles from './Tag.module.scss'\n\nconst Tag = ({ children, className: additionalClassName }) => {\n const className = classNames(styles.Tag, additionalClassName)\n\n return (\n \n {children}\n \n )\n}\n\nTag.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n}\n\nexport { Tag }\nexport default Tag\n","// extracted by mini-css-extract-plugin\nexport var Tag = \"Tag-module--Tag--2Trfp\";","import PropTypes from 'prop-types'\n\nimport classNames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { Button } from 'components/button'\nimport { UnstyledLink } from '../../../typography/UnstyledLink'\nimport { Link } from '../../../typography/Link'\nimport { Tag } from '../../../tag'\nimport * as styles from './JobListing.module.scss'\n\nconst JobListing = ({ index, roleTitle, location, type, department, link }) => {\n const parsedLocation = location.replace(', United States', '')\n return (\n \n \n \n {roleTitle}\n \n \n \n

{parsedLocation}

\n \n \n

{type}

\n \n \n \n \n \n )\n}\n\nexport { JobListing }\nexport default JobListing\n","// extracted by mini-css-extract-plugin\nexport var listingContainer = \"JobListing-module--listingContainer--_15El\";\nexport var locationContainer = \"JobListing-module--locationContainer--3HxCt\";\nexport var roleTypeContainer = \"JobListing-module--roleTypeContainer--1f2dH\";\nexport var roleContainer = \"JobListing-module--roleContainer--U0NUS\";\nexport var applyContainer = \"JobListing-module--applyContainer--1ujiR\";","import PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { UnstyledLink } from '../../../typography/UnstyledLink'\nimport { Link } from '../../../typography/Link'\nimport { Tag } from '../../../tag'\nimport { JobListing } from './JobListing'\nimport * as styles from './DepartmentSection.module.scss'\n\nconst DepartmentSection = ({ department, jobs, i, length }) => {\n const filteredJobs = jobs.jobs\n return (\n
\n \n

{department}

\n \n
\n {/* This div will show all of the jobs in the department. Planning to map the jobs array onto the job listing component */}\n {filteredJobs.map(job => {\n return (\n \n )\n })}\n
\n
\n )\n}\n\nDepartmentSection.propTypes = {\n department: PropTypes.string,\n // jobs: PropTypes.array,\n}\n\nexport { DepartmentSection }\nexport default DepartmentSection\n","// extracted by mini-css-extract-plugin\nexport var titleContainer = \"DepartmentSection-module--titleContainer--N0A7L\";\nexport var departmentContainer = \"DepartmentSection-module--departmentContainer--l52hu\";\nexport var lastDepartmentContainer = \"DepartmentSection-module--lastDepartmentContainer--3R_-3\";\nexport var featuredDepartmentContainer = \"DepartmentSection-module--featuredDepartmentContainer--2IzcM\";\nexport var listingsContainer = \"DepartmentSection-module--listingsContainer--r3f2F\";","import PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { UnstyledLink } from '../../../typography/UnstyledLink'\nimport { Link } from '../../../typography/Link'\nimport { Tag } from '../../../tag'\nimport { DepartmentSection } from './DepartmentSection'\nimport * as styles from './JobBoard.module.scss'\n\nconst JobBoard = ({ jobs }) => {\n // Need to add the logic to break the jobs into the appropriate departments\n const numberOfJobs = jobs.length\n const sortedJobs = jobs.reduce((finalArray, item) => {\n const jobsItem = {\n absoluteURL: item.absolute_url,\n role: item.title,\n location: item.location,\n roleType: item.employment_type,\n }\n\n const jobsList = finalArray.find(i => i.department === item.department)\n\n if (jobsList) {\n jobsList.jobs.push(jobsItem)\n } else {\n finalArray.push({\n department: item.department,\n jobs: [jobsItem],\n })\n }\n return finalArray\n }, [])\n const sortedLength = sortedJobs.length\n sortedJobs.sort((a, b) => a.department.localeCompare(b.department))\n\n // Get the departments that are present in the listed jobs\n return (\n
\n
\n {numberOfJobs === 1 &&

{numberOfJobs} OPEN POSITION

}\n {numberOfJobs !== 1 &&

{numberOfJobs} OPEN POSITIONS

}\n
\n
\n \n \n \n \n \n \n \n
\n {/* This div will contain all of the rows (1 row per department) and that row will contain all of the listings inside that department */}\n {numberOfJobs === 0 && (\n
\n

\n Sorry, we couldn’t find any results matching your request. Please try a different\n combination or clear all filters to start over.\n

\n
\n )}\n {sortedJobs.map((job, i) => {\n return (\n \n )\n })}\n
\n
\n

Department

\n
\n

Role

\n
\n

Location

\n
\n

Role Type

\n
\n
\n
\n )\n}\n\nexport { JobBoard }\nexport default JobBoard\n","// extracted by mini-css-extract-plugin\nexport var jobBoardContainer = \"JobBoard-module--jobBoardContainer--1nYzk\";\nexport var noResultText = \"JobBoard-module--noResultText--2sfFo\";\nexport var headingRow = \"JobBoard-module--headingRow--kKz9T\";\nexport var openPositionCount = \"JobBoard-module--openPositionCount--1aTVy\";\nexport var jobBoard = \"JobBoard-module--jobBoard--2tSmh\";\nexport var departmentRow = \"JobBoard-module--departmentRow--6pn6a\";\nexport var department = \"JobBoard-module--department--1P2Sp\";\nexport var role = \"JobBoard-module--role--3F8SH\";\nexport var location = \"JobBoard-module--location--3HdMN\";\nexport var roleType = \"JobBoard-module--roleType--1EOup\";","import PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { UnstyledLink } from '../../../typography/UnstyledLink'\nimport { Link } from '../../../typography/Link'\nimport { Tag } from '../../../tag'\nimport { DepartmentSection } from './DepartmentSection'\nimport * as styles from './FeaturedBoard.module.scss'\n\nconst FeaturedBoard = ({ jobs }) => {\n // Need to add the logic to break the jobs into the appropriate departments\n const filteredJobs = jobs\n filteredJobs.length = 5\n\n const featuredJobs = filteredJobs.reduce((finalArray, item) => {\n const jobsItem = {\n absoluteURL: item.absolute_url,\n role: item.title,\n location: item.location,\n roleType: item.employment_type,\n updated_at: new Date(item.updated_at).getTime(),\n }\n // This logic sorts into departments. Will leave here in case we choose to reimplement\n // const jobsList = finalArray.find(i => i.department === item.metadata[2].value)\n // if (jobsList) {\n // // jobsList.jobs.push(jobsItem)\n // finalArray.push(jobsItem)\n // } else {\n finalArray.push({\n department: item.department,\n updated_at: new Date(item.updated_at).getTime(),\n jobs: [jobsItem],\n })\n // }\n return finalArray\n }, [])\n const updatedDateSort = (a, b) => b.updated_at - a.updated_at\n featuredJobs.sort(updatedDateSort)\n const featuredLength = featuredJobs.length\n // Get the departments that are present in the listed jobs\n return (\n
\n
\n

FEATURED JOBS

\n
\n \n
\n {featuredJobs.map((job, i) => {\n return (\n \n )\n })}\n
\n
\n
\n )\n}\n\nexport { FeaturedBoard }\nexport default FeaturedBoard\n","// extracted by mini-css-extract-plugin\nexport var jobBoardContainer = \"FeaturedBoard-module--jobBoardContainer--3hkqD\";\nexport var noResultText = \"FeaturedBoard-module--noResultText--1x18q\";\nexport var openPositionCount = \"FeaturedBoard-module--openPositionCount--MPuIO\";\nexport var featuredJobs = \"FeaturedBoard-module--featuredJobs--TJZ4g\";\nexport var jobBoard = \"FeaturedBoard-module--jobBoard--EhT0J\";\nexport var departmentRow = \"FeaturedBoard-module--departmentRow--2FFlu\";","// extracted by mini-css-extract-plugin\nexport var filerContainer = \"GreenhouseModule-module--filerContainer--2Fevd\";\nexport var locationFilter = \"GreenhouseModule-module--locationFilter--2MXMg\";\nexport var departmentFilter = \"GreenhouseModule-module--departmentFilter--3KY8r\";\nexport var roleFilter = \"GreenhouseModule-module--roleFilter--2iBPO\";\nexport var clearFilterButton = \"GreenhouseModule-module--clearFilterButton--2iY_K\";","import { useCallback, useState, useEffect } from 'react'\nimport axios from 'axios'\nimport { useTranslation } from 'react-i18next'\nimport { Select } from '../../select'\nimport { JobBoard, FeaturedBoard } from './components'\n\nimport * as styles from './GreenhouseModule.module.scss'\n\nconst GreenhouseModule = () => {\n const [t] = useTranslation()\n const [jobs, setJobs] = useState([])\n const [allJobs, setAlljobs] = useState([])\n const [locations, setLocations] = useState([])\n const [departments, setDepartment] = useState([])\n const [roleTypes, setRoleTypes] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n const [locationFilterValue, setLocationFilterValue] = useState('All Locations')\n const [roleFilterValue, setRoleFilterValue] = useState('All Role Types')\n const [departmentFilterValue, setDepartmentFilterValue] = useState('All Departments')\n const [featuredJobs, setFeaturedJobs] = useState([])\n\n async function requestJobs() {\n const result = await axios({\n method: 'get',\n url: 'https://boards-api.greenhouse.io/v1/boards/elevationscreditunion/jobs',\n })\n if (result.status !== 200 || !result.data || !result.data.jobs) {\n throw new Error('Unexpected response')\n }\n const ecuJobs = []\n result.data.jobs.forEach(job => {\n let tmpLocation\n if (job.location.name === 'Remote') {\n tmpLocation = 'Remote, Colorado, United States'\n } else {\n tmpLocation = job.location.name\n }\n const tmpJob = {}\n tmpJob.absolute_url = job.absolute_url\n tmpJob.location = tmpLocation\n tmpJob.title = job.title\n for (let i = 0; i <= 3; i += 1) {\n if (job.metadata[i].name === 'Employment Type') {\n tmpJob.employment_type = job.metadata[i].value\n }\n }\n for (let j = 0; j <= 3; j += 1) {\n if (job.metadata[j].name === 'Organization') {\n tmpJob.organization = job.metadata[j].value\n }\n }\n for (let k = 0; k <= 3; k += 1) {\n if (job.metadata[k].name === 'Featured') {\n tmpJob.featured = job.metadata[k].value\n }\n }\n for (let l = 0; l <= 3; l += 1) {\n if (job.metadata[l].name === 'Job Board Department') {\n tmpJob.department = job.metadata[l].value\n }\n }\n ecuJobs.push(tmpJob)\n })\n const newJobs = ecuJobs.map(job => {\n const tmpJob = job\n if (tmpJob.location === null) {\n tmpJob.location = 'Not Specified'\n }\n if (tmpJob.department === null) {\n tmpJob.department = 'Not Specified'\n }\n return tmpJob\n })\n\n return newJobs\n }\n\n const setFilters = data => {\n const locationMap = [...new Set(data.map(item => item.location))]\n const cleanedLocationMap = locationMap.map(location => location.replace(', United States', ''))\n setLocations(cleanedLocationMap)\n const departmentMap = [...new Set(data.map(item => item.department))]\n departmentMap.sort((a, b) => a.localeCompare(b))\n setDepartment(departmentMap)\n const roleTypeMap = [...new Set(data.map(item => item.employment_type))]\n setRoleTypes(roleTypeMap)\n setIsLoading(false)\n }\n\n const getFeaturedJobs = data => {\n const newFeaturedJobs = data.filter(job => job.featured === true)\n setFeaturedJobs(newFeaturedJobs)\n }\n\n useEffect(() => {\n const fetchData = async () => {\n setIsLoading(true)\n const data = await requestJobs()\n setJobs(data)\n setAlljobs(data)\n setFilters(data)\n getFeaturedJobs(data)\n }\n fetchData()\n }, [])\n\n const handleOtherFilters = (filter, changed) => {\n const currentLocation = locationFilterValue\n const currentRole = roleFilterValue\n const currentDep = departmentFilterValue\n let jobsToBeFiltered = allJobs\n if (!changed) {\n if (currentLocation !== 'All Locations' && filter !== 'location') {\n const filteringLocation = currentLocation.concat(', United States')\n const locationTmpJobs = jobsToBeFiltered.filter(\n job => job.location.name === filteringLocation\n )\n jobsToBeFiltered = locationTmpJobs\n }\n if (currentDep !== 'All Departments' && filter !== 'department') {\n const depTmpJobs = jobsToBeFiltered.filter(job => job.department === currentDep)\n jobsToBeFiltered = depTmpJobs\n }\n if (currentRole !== 'All Role Types' && filter !== 'role') {\n const roleTmpJobs = jobsToBeFiltered.filter(job => job.employment_type === currentRole)\n jobsToBeFiltered = roleTmpJobs\n }\n }\n if (changed) {\n if (filter === 'location') {\n if (changed === 'All Locations') {\n jobsToBeFiltered = allJobs\n } else {\n const filteringLocation = changed.concat(', United States')\n const locationTmpJobs = jobsToBeFiltered.filter(job => job.location === filteringLocation)\n jobsToBeFiltered = locationTmpJobs\n }\n if (currentDep !== 'All Departments') {\n const depTmpJobs = jobsToBeFiltered.filter(job => job.department === currentDep)\n jobsToBeFiltered = depTmpJobs\n }\n if (currentRole !== 'All Role Types') {\n const roleTmpJobs = jobsToBeFiltered.filter(job => job.employment_type === currentRole)\n jobsToBeFiltered = roleTmpJobs\n }\n }\n if (filter === 'department') {\n if (changed === 'All Departments') {\n jobsToBeFiltered = allJobs\n } else {\n const depTmpJobs = jobsToBeFiltered.filter(job => job.department === changed)\n jobsToBeFiltered = depTmpJobs\n }\n if (currentLocation !== 'All Locations') {\n const filteringLocation = currentLocation.concat(', United States')\n const locationTmpJobs = jobsToBeFiltered.filter(job => job.location === filteringLocation)\n jobsToBeFiltered = locationTmpJobs\n }\n if (currentRole !== 'All Role Types') {\n const roleTmpJobs = jobsToBeFiltered.filter(job => job.employment_type === currentRole)\n jobsToBeFiltered = roleTmpJobs\n }\n }\n if (filter === 'role') {\n if (changed === 'All Role Types') {\n jobsToBeFiltered = allJobs\n } else {\n const roleTmpJobs = jobsToBeFiltered.filter(job => job.employment_type === changed)\n jobsToBeFiltered = roleTmpJobs\n }\n if (currentLocation !== 'All Locations') {\n const filteringLocation = currentLocation.concat(', United States')\n const locationTmpJobs = jobsToBeFiltered.filter(job => job.location === filteringLocation)\n jobsToBeFiltered = locationTmpJobs\n }\n if (currentDep !== 'All Departments') {\n const depTmpJobs = jobsToBeFiltered.filter(job => job.department === currentDep)\n jobsToBeFiltered = depTmpJobs\n }\n }\n }\n setJobs(jobsToBeFiltered)\n setIsLoading(false)\n }\n\n const onLocationChange = event => {\n setIsLoading(true)\n const selectedLocation = event.target.value\n setLocationFilterValue(selectedLocation)\n handleOtherFilters('location', selectedLocation)\n }\n\n const onClearFilters = event => {\n setIsLoading(true)\n setJobs(allJobs)\n setLocationFilterValue('All Locations')\n setDepartmentFilterValue('All Departments')\n setRoleFilterValue('All Role Types')\n setIsLoading(false)\n }\n\n const onDepartmentChange = event => {\n setIsLoading(true)\n const selectedDepartment = event.target.value\n setDepartmentFilterValue(selectedDepartment)\n handleOtherFilters('department', selectedDepartment)\n }\n\n const onTypeChange = event => {\n setIsLoading(true)\n const selectedType = event.target.value\n setRoleFilterValue(selectedType)\n handleOtherFilters('role', selectedType)\n }\n\n return (\n
\n {!isLoading && featuredJobs.length > 0 && }\n
\n
\n {!isLoading && locations.length > 0 && (\n \n All Locations\n {locations.map(location => {\n return (\n \n {location}\n \n )\n })}\n \n )}\n
\n
\n {!isLoading && departments.length > 0 && (\n \n All Departments\n {departments.map(department => {\n return (\n \n {department}\n \n )\n })}\n \n )}\n
\n
\n {!isLoading && roleTypes && (\n \n All Role Types\n {roleTypes.map(roleType => {\n return (\n \n {roleType}\n \n )\n })}\n \n )}\n
\n \n
\n \n
\n )\n}\nexport { GreenhouseModule }\nexport default GreenhouseModule\n","import PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { Container, Row, Col } from '../../components/grid'\nimport { Layout } from '../../components/layouts/layout'\nimport { PageMeta } from '../../components/page-meta'\nimport { StaticTemplate } from '../../templates/staticTemplate'\nimport { Heading } from '../../components/typography/Heading'\nimport { GreenhouseModule } from '../../components/modules/GreenhouseModule'\nimport { TitleModule } from '../../components/modules/TitleModule'\nimport { ElevatedTitleCentered } from '../../components/modules/ElevatedTitleCentered'\nimport * as styles from './open-positions.module.scss'\nimport { usePages } from './constants'\n\nconst OpenPositions = ({ location, pageContext }) => {\n const [t] = useTranslation()\n const { careersPage, OpenPositionsPage } = usePages()\n\n const headline = {\n nodeType: 'document',\n data: {},\n content: [\n {\n nodeType: 'paragraph',\n content: [\n {\n nodeType: 'text',\n marks: [],\n value: 'Open Positions',\n data: {},\n },\n ],\n data: {},\n },\n ],\n }\n\n const elevatedTitleHeadline = {\n nodeType: 'document',\n data: {},\n content: [\n {\n nodeType: 'paragraph',\n content: [\n {\n nodeType: 'text',\n marks: [],\n value: 'Are you an agency recruiter?',\n data: {},\n },\n ],\n data: {},\n },\n ],\n }\n\n const subHeadlineLineOne = t('greenhousePage.headerLineOne', {\n defaultValue: `Are you ready to make Elevations the best place you've ever worked? Check out our open positions below!`,\n })\n\n const subHeadlineLineTwo = t('greenhousePage.headerLineTwo', {\n defaultValue: `Don't see what you're looking for? Email us your resume at`,\n })\n\n const headerPostLink = t('greenhousePage.headerPostLink', {\n defaultValue: `, and we’ll add you to our talent community.`,\n })\n\n const subHeadline = {\n nodeType: 'document',\n data: {},\n content: [\n {\n nodeType: 'paragraph',\n content: [\n {\n nodeType: 'text',\n marks: [],\n value: subHeadlineLineOne,\n data: {},\n },\n {\n data: {},\n marks: [],\n value: '\\n\\n',\n nodeType: 'text',\n },\n ],\n data: {},\n },\n ],\n }\n\n const elevatedTitleBody = {\n nodeType: 'document',\n data: {},\n content: [\n {\n nodeType: 'paragraph',\n content: [\n {\n nodeType: 'text',\n marks: [],\n value:\n 'Elevations Credit Union does not accept unsolicited resumes or outreach from third-party recruiters. Our team partners with a smart vendor management system, RecruitiFi, to streamline and enhance our agency recruitment process. To join our agency community, please create an account with RecruitiFi.',\n data: {},\n },\n ],\n data: {},\n },\n ],\n }\n\n return (\n \n {({ navMenus }) => (\n \n \n \n \n \n \n )}\n \n )\n}\n\nOpenPositions.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object,\n pageContext: PropTypes.object,\n}\n\nexport { OpenPositions }\nexport default OpenPositions\n","import { useTranslation } from 'react-i18next'\n\nexport const usePages = () => {\n const [t] = useTranslation()\n const culturePage = {\n title: t('OpenPositionsPageCulture.pageTitle', { defaultValue: 'Culture and Values' }),\n urlPath: '/careers/culture-and-values',\n partiallyActive: true,\n }\n const lifeAtECUPage = {\n title: t('OpenPositionsPageLifeAtECU.pageTitle', { defaultValue: 'Life at Elevations' }),\n urlPath: '/careers/life-at-elevations',\n partiallyActive: true,\n }\n const DEIPage = {\n title: t('OpenPositionsPageDEI.pageTitle', { defaultValue: 'Diversity, Equity & Inclusion' }),\n urlPath: '/careers/diversity-equity-and-inclusion',\n partiallyActive: true,\n }\n const openPositionsPage = {\n title: 'Open Positions',\n urlPath: '/careers/open-positions',\n partiallyActive: true,\n }\n const careersPage = {\n title: t('OpenPositionsPageIndex.pageTitle', { defaultValue: 'Careers' }),\n urlPath: '/careers',\n children: [culturePage, lifeAtECUPage, DEIPage, openPositionsPage],\n }\n return {\n culturePage,\n lifeAtECUPage,\n DEIPage,\n openPositionsPage,\n careersPage,\n }\n}\n","import PropTypes from 'prop-types'\nimport { useTranslation } from 'react-i18next'\nimport { useStaticQuery, graphql } from 'gatsby'\n\nconst query = graphql`\n query StaticTemplateQuery {\n allContentfulNavigationMenu {\n edges {\n node {\n type\n node_locale\n navigationItems {\n internal {\n content\n }\n }\n }\n }\n }\n }\n`\n\nconst StaticTemplate = ({ children }) => {\n const [_t, i18n] = useTranslation()\n const allMenus = useStaticQuery(query)\n\n const {\n allContentfulNavigationMenu: { edges },\n } = allMenus\n\n const navMenus = edges.reduce((acc, edge) => {\n const {\n node: {\n type,\n // eslint-disable-next-line camelcase\n node_locale,\n navigationItems: {\n internal: { content },\n },\n },\n } = edge\n\n // Since the content is received as a json string, we need to parse it\n const menu = JSON.parse(content)\n acc[node_locale] = acc[node_locale] || {}\n acc[node_locale][type] = menu.items\n\n return acc\n }, {})\n\n return children({ navMenus: navMenus[i18n.language] })\n}\n\nStaticTemplate.propTypes = {\n children: PropTypes.func,\n location: PropTypes.object,\n}\n\nexport { StaticTemplate }\nexport default StaticTemplate\n"],"sourceRoot":""}