{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/helpers/media.ts","webpack:///./src/helpers/ssr.ts","webpack:///./src/stories/Components/Misc/DotPagination/DotPagination.styles.ts","webpack:///./src/hooks/useMedia.ts","webpack:///./src/helpers/to-base-64.ts","webpack:///./src/hoc/withMotionMax.tsx","webpack:///./src/hoc/withWidget.ts","webpack:///./src/stories/Widgets/Meta/Breadcrumbs/Breadcrumbs.widget.tsx","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.styles.ts","webpack:///./src/stories/Components/Global/Typography/Paragraph.styles.ts","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.tsx","webpack:///./src/helpers/grid.ts","webpack:///./src/stories/Components/Misc/DotPagination/DotPagination.tsx","webpack:///./src/helpers/ReactPropsHelper.ts","webpack:///./src/helpers/brand.ts","webpack:///./src/stories/Components/Media/Image/Image.styles.ts","webpack:///./src/stories/Widgets/Media/HomepageCarousel/HomepageCarousel.styles.ts","webpack:///./src/stories/Widgets/Media/HomepageCarousel/HomepageCarouselItem/HomepageCarouselItem.styles.tsx","webpack:///./src/stories/Widgets/Media/HomepageCarousel/HomepageCarouselItem/HomepageCarouselItem.tsx","webpack:///./src/stories/Widgets/Media/HomepageCarousel/HomepageCarousel.widget.tsx","webpack:///./src/hooks/useAutoplay.ts","webpack:///./src/stories/Components/Media/Image/Image.tsx","webpack:///./src/stories/Widgets/Meta/Breadcrumbs/Breadcrumbs.styles.ts","webpack:///./src/hooks/useIntersectionObserver.ts","webpack:///./src/hooks/useInView.ts","webpack:///./src/helpers/cloudinary.ts","webpack:///./src/core/enums.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","53","86","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice","Device","from","size","until","between","min","max","isSSR","window","document","DotPaginationStyles","Container","styled","nav","brand","white","Tablet","Item","button","ActiveIndicator","span","SvgIndicator","svg","Circle","circle","SvgBox","div","SvgOutline","SvgPath","path","useMedia","queries","values","defaultValue","mediaQueryLists","map","query","matchMedia","getValue","index","findIndex","mql","matches","useState","setValue","useEffect","handler","forEach","addListener","removeListener","toBase64","str","Buffer","toString","btoa","withMotionMax","WrappedComponent","displayName","ComponentWithMotionMax","props","React","createElement","LazyMotion","features","domMax","strict","component","componentName","options","hydrate","HydrateOption","Never","configs","ReactPropsHelper","filter","x","toLowerCase","config","container","querySelector","id","classList","add","requestIdleCallback","element","withWidget","items","BreadcrumbsStyles","Wrapper","Grid","Default","Inner","href","url","Desktop","isThin","css","DesktopSmall","LargeStyles","fonts","DaxPro","Regular","RegularStyles","SmallStyles","Paragraph","isLatestNewsWidget","align","SiteWide","forwardRef","ref","children","className","baseGrid","MobileLarge","TabletLarge","DesktopLarge","DefaultBreakout","DefaultPseudo","CardGridSpans","autoplay","count","paused","customLayoutId","onChange","onHover","S","Array","_","onClick","event","preventDefault","onMouseEnter","onMouseLeave","isActiveAnimating","viewBox","xmlns","initial","pathLength","animate","transition","duration","ease","strokeWidth","strokeDasharray","stroke","fill","layoutId","renderActiveIndicator","reactPropsNode","JSON","parse","innerHTML","black","primary","base","dark","light","alt","accent","orange","divisionTags","mrCropper","sandhurst","default","grey","grey89","hsl","grey96","grey76","grey75","grey55","grey44","grey40","grey35","grey20","red","ysp","input","water","ground","excavation","tpa","Image","img","objectFit","undefined","objectPosition","Intrinsic","Responsive","width","height","fullPaddingTop","quotient","isNaN","ImageStyles","Fixed","Fill","section","HomepageCarouselStyles","BreadcrumbWrapper","ItemList","ul","li","PaginationWrapper","SiteWideStyles","attrs","exit","variants","hidden","zIndex","visible","ImageWrapper","opacity","ContentWrapper","Overlay","ContentWrapperInner","staggerChildren","Title","h1","horizontalFadeIn","Bold","Description","ParagraphStyles","HomepageCarouselItemStyles","CtaWrapper","HomepageCarouselItem","forceInitialActive","cta","image","title","description","loading","preload","style","transformOrigin","as","h2","LinkButton","branding","target","breadcrumb","isMobile","initialRender","setInitialRender","useInView","refContainer","inView","params","refInterval","activeIndex","setActiveIndex","setPaused","activeItemDuration","enabled","current","setTimeout","newIndex","onSlideChange","clearInterval","useAutoplay","swipeHandlers","useSwipeable","onSwipedLeft","Math","onSwipedRight","Fragment","Breadcrumbs","item","AnimatePresence","DotPagination","hover","Always","hasErrored","setHasErrored","deviceWidths","MobileSmall","MobileMedium","Mobile","ActualDesktop","sort","a","b","srcSetUrls","imageUrl","src","join","sizes","handleError","e","currentTarget","fallbackSrc","components","layout","role","decoding","draggable","srcSet","onError","fetchPriority","sizerSvg","useIntersectionObserver","callback","observerRef","useRef","rootRef","elementRef","IntersectionObserver","root","observe","disconnect","reverse","isEditMode","setInView","entries","isIntersecting","cl","Cloudinary","cloud","cloudName","secure","publicId","rawTransformation","transformation","addTransformation","FormatRegEx","test","toURL","delivery","format","fAuto","quality","qAuto","extractPublicId","split","pop","Error","MediaType","HireViewType","OrderStepProgress"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrBiB,GAAI,EACJC,GAAI,GAGDb,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU+B,QAGnC,IAAIC,EAASJ,EAAiB5B,GAAY,CACzCK,EAAGL,EACHiC,GAAG,EACHF,QAAS,IAUV,OANAjB,EAAQd,GAAUW,KAAKqB,EAAOD,QAASC,EAAQA,EAAOD,QAASL,GAG/DM,EAAOC,GAAI,EAGJD,EAAOD,QAKfL,EAAoBQ,EAAIpB,EAGxBY,EAAoBS,EAAIP,EAGxBF,EAAoBU,EAAI,SAASL,EAASM,EAAMC,GAC3CZ,EAAoBa,EAAER,EAASM,IAClC7B,OAAOgC,eAAeT,EAASM,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhEZ,EAAoBiB,EAAI,SAASZ,GACX,oBAAXa,QAA0BA,OAAOC,aAC1CrC,OAAOgC,eAAeT,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DtC,OAAOgC,eAAeT,EAAS,aAAc,CAAEe,OAAO,KAQvDpB,EAAoBqB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQpB,EAAoBoB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK1C,OAAO2C,OAAO,MAGvB,GAFAzB,EAAoBiB,EAAEO,GACtB1C,OAAOgC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOpB,EAAoBU,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRxB,EAAoB4B,EAAI,SAAStB,GAChC,IAAIM,EAASN,GAAUA,EAAOiB,WAC7B,WAAwB,OAAOjB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAN,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASgB,EAAQC,GAAY,OAAOhD,OAAOC,UAAUC,eAAeC,KAAK4C,EAAQC,IAGzG9B,EAAoB+B,EAAI,4BAExB,IAAIC,EAAaC,KAA2B,qBAAIA,KAA2B,sBAAK,GAC5EC,EAAmBF,EAAW7C,KAAKwC,KAAKK,GAC5CA,EAAW7C,KAAOf,EAClB4D,EAAaA,EAAWG,QACxB,IAAI,IAAIxD,EAAI,EAAGA,EAAIqD,EAAWnD,OAAQF,IAAKP,EAAqB4D,EAAWrD,IAC3E,IAAIU,EAAsB6C,EAI1B3C,EAAgBJ,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,KAErCM,I,iCCxJF,IAAI2C,EAeJ,SAASC,EAAKC,GACjB,4BAAsBA,EAAtB,OAEG,SAASC,EAAMD,GAClB,4BAAsBA,EAAO,EAA7B,OAEG,SAASE,EAAQC,EAAKC,GACzB,gBAAUL,EAAKI,GAAf,gBAA2BF,EAAMG,IAtBrC,wIACA,SAAWN,GACPA,EAAOA,EAAM,YAAkB,KAAO,cACtCA,EAAOA,EAAM,aAAmB,KAAO,eACvCA,EAAOA,EAAM,OAAa,KAAO,SACjCA,EAAOA,EAAM,YAAkB,KAAO,cACtCA,EAAOA,EAAM,YAAkB,KAAO,cACtCA,EAAOA,EAAM,OAAa,KAAO,SACjCA,EAAOA,EAAM,YAAkB,MAAQ,cACvCA,EAAOA,EAAM,aAAmB,MAAQ,eACxCA,EAAOA,EAAM,QAAc,MAAQ,UACnCA,EAAOA,EAAM,aAAmB,MAAQ,eACxCA,EAAOA,EAAM,cAAoB,MAAQ,gBACzCA,EAAOA,EAAM,UAAgB,MAAQ,YAZzC,CAaGA,IAAWA,EAAS,M,gCCdvB,kCAAO,IAAMO,EAAQ,WAEjB,QADuC,oBAAVC,QAAyBA,OAAOC,Y,iCCDjE,iCAsJMC,EAAsB,CACxBC,UAnJcC,IAAOC,IAAV,qFAAGD,CAAH,8TACFE,IAAMC,MAiBRd,YAAKD,IAAOgB,SAkInBC,KA5HSL,IAAOM,OAAV,gFAAGN,CAAH,+0BA6HNO,gBA5CoBP,YAAOxC,IAAEgD,MAAZ,2FAAGR,CAAH,sJA6CjBS,aAnCiBT,YAAOxC,IAAEkD,KAAZ,wFAAGV,CAAH,0EAoCdW,OA5BWX,YAAOxC,IAAEoD,QAAZ,kFAAGZ,CAAH,qDA6BRa,OAxBWb,IAAOc,IAAV,kFAAGd,CAAH,oKAyBRe,WAbef,YAAOxC,IAAEkD,KAAZ,sFAAGV,CAAH,gEAcZgB,QATYhB,YAAOxC,IAAEyD,MAAZ,mFAAGjB,CAAH,OAWEF,O,ogCC5HAoB,IA5Bf,SAAkBC,EAASC,EAAQC,GAE/B,GAAI1B,cACA,OAAO0B,EAGX,IAAMC,EAAkBH,EAAQI,KAAI,SAACC,GAAD,OAAW5B,OAAO6B,WAAWD,MAE3DE,EAAW,WAEb,IAAMC,EAAQL,EAAgBM,WAAU,SAACC,GAAD,OAASA,EAAIC,WAErD,YAAgC,IAAlBV,EAAOO,GAAyBP,EAAOO,GAASN,GAGlE,IAA0BU,mBAASL,GAAnC,GAAOtD,EAAP,KAAc4D,EAAd,KAWA,OAVAC,qBAAU,WAIN,IAAMC,EAAU,kBAAMF,EAASN,IAI/B,OAFAJ,EAAgBa,SAAQ,SAACN,GAAD,OAASA,EAAIO,YAAYF,MAE1C,kBAAMZ,EAAgBa,SAAQ,SAACN,GAAD,OAASA,EAAIQ,eAAeH,SAClE,IACI9D,I,kCClCX,YAGO,SAASkE,EAASC,GACrB,MAAsB,oBAAX3C,OACA4C,EAAOnD,KAAKkD,GAAKE,SAAS,UAG1B7C,OAAO8C,KAAKH,GAR3B,oC,ydCEO,SAASI,EAAcC,GAC1B,IAAMC,EAAcD,EAAiBC,aAAeD,EAAiBjF,MAAQ,YACvEmF,EAAyB,SAACC,GAC5B,OAAQC,IAAMC,cAAcC,IAAY,CAAEC,SAAUC,IAAQC,QAAQ,GAChEL,IAAMC,cAAcL,E,+VAApB,IAA2CG,MAGnD,OADAD,EAAuBD,YAAvB,wBAAsDA,EAAtD,KACOC,I,gCCTX,gDAMe,aAAUQ,EAAWC,EAAeC,GAC/C,GAAI7D,eAAW6D,EAAQC,UAAYC,IAAcC,MAC7C,OAAOL,EAEX,IAAMM,EAAUC,IAAiBd,MAAMe,QAAO,SAACC,GAAD,OAAOA,EAAEpG,KAAKqG,gBAAP,qBAAuCT,EAAcS,kBAC1G,IAAKJ,GAA8B,IAAnBA,EAAQ/H,OACpB,OAAOyH,EAEX,IARwD,iBASpD,IAAMW,EAASL,EAAQjC,GACjBuC,EAAYrE,SAASsE,cAAT,WAA2BF,EAAOG,GAAlC,oBAClB,IAAKF,EAAW,iBAGhBA,EAAUG,UAAUC,IAAI,YAEpB1E,OAAO2E,oBACP3E,OAAO2E,qBAAoB,WACvB,IAAMC,EAAUvB,wBAAcK,EAAWW,EAAOlB,OAEhDU,kBAAQe,EAASN,MAMrBT,kBAAQR,wBAAcK,EAAWW,EAAOlB,OAAQmB,IAlB/CvC,EAAQ,EAAGA,EAAQiC,EAAQ/H,OAAQ8F,IAA5C,IAqBA,OAAO2B,I,iCCnCX,0DAcemB,uBATK,SAAC1B,GACjB,OAAKA,EAAM2B,OAAgC,IAAvB3B,EAAM2B,MAAM7I,OAGxBmH,IAAMC,cAAc0B,IAAkBC,QAAS,KACnD5B,IAAMC,cAAc4B,IAAKC,QAAS,KAC9B9B,IAAMC,cAAc0B,IAAkBI,MAAO,KAAMhC,EAAM2B,MAAMnD,KAAI,SAACwC,GAAD,OAAQf,IAAMC,cAAc,KAAM,CAAEvE,IAAKqF,EAAEpG,MAC1GqF,IAAMC,cAAc,IAAK,CAAE+B,KAAMjB,EAAEkB,KAAOlB,EAAEpG,aAL7C,OAOwB,cAAe,CAAE8F,QAASC,IAAcC,S,iCCd/E,kBAKM5D,EAAYC,IAAOc,IAAV,+EAAGd,CAAH,gSAFkB,GAatBX,YAAKD,IAAO8F,SAZW,GAFH,MAoB3B,qBAAGC,QACHC,YADsB,gGAEX/F,YAAKD,IAAOiG,kBAMZ,KACXtF,c,gCC/BJ,kBAKauF,EAAcF,YAAH,kFACpBG,IAAMC,OAAOC,SASJC,EAAgBN,YAAH,kFACtBG,IAAMC,OAAOC,SASJE,EAAcP,YAAH,kFACpBG,IAAMC,OAAOC,SAMXG,EAAY5F,IAAOjB,EAAV,iFAAGiB,CAAH,iBACX,qBAAG6F,mBACDT,YAD4C,uBAI5C,QAEF,gBAAGU,EAAH,EAAGA,MAAH,OAAeA,EACbV,YADkB,oBAEAU,GAElB,QAEF,YACA,OADc,EAAXxG,MAEC,IAAK,QACD,OAAOgG,EACX,IAAK,UACD,OAAOI,EACX,IAAK,QACD,OAAOC,MAMJ,KACXC,YACAD,cACAD,gBACAJ,gB,iCC9DJ,6BAEMS,EAAW/C,IAAMgD,YAAW,SAACjD,EAAOkD,GACtC,IAAQC,EAAgCnD,EAAhCmD,SAAUC,EAAsBpD,EAAtBoD,UAAWhB,EAAWpC,EAAXoC,OAC7B,OAAQnC,IAAMC,cAAchG,IAAE8C,UAAW,CAAEkG,IAAKA,EAAKE,UAAWA,EAAWhB,OAAQA,GAAUe,MAEjGH,EAASlD,YAAc,WACRkD,O,gCCPf,oDAEaK,EAAWhB,YAAH,8QAWV/F,YAAKD,IAAOiH,aAIZhH,YAAKD,IAAOgB,QAIZf,YAAKD,IAAOkH,aAIZjH,YAAKD,IAAOiG,eAiKVR,EAAO,CAChBC,QA9JY9E,IAAOc,IAAV,mEAAGd,CAAH,uRACToG,EAKO/G,YAAKD,IAAOiH,aAIZhH,YAAKD,IAAOgB,QAIZf,YAAKD,IAAOkH,aAIZjH,YAAKD,IAAOiG,cAIZhG,YAAKD,IAAO8F,SAIZ7F,YAAKD,IAAOmH,eAqInBC,gBA/HoBpB,YAAH,4OAMV/F,YAAKD,IAAOiH,aAIZhH,YAAKD,IAAOgB,QAIZf,YAAKD,IAAOkH,aAIZjH,YAAKD,IAAOiG,cAIZhG,YAAKD,IAAO8F,SAIZ7F,YAAKD,IAAOmH,eAsGnBE,cAlGkBrB,YAAH,kkBAeN/F,YAAKD,IAAOiH,aAKZhH,YAAKD,IAAOgB,QAKZf,YAAKD,IAAOkH,aAKZjH,YAAKD,IAAOiG,cAKZhG,YAAKD,IAAO8F,SAKZ7F,YAAKD,IAAOmH,cAUZlH,YAAKD,IAAOiH,aAKZhH,YAAKD,IAAOgB,QAKZf,YAAKD,IAAOkH,aAKZjH,YAAKD,IAAOiG,cAKZhG,YAAKD,IAAO8F,SAKZ7F,YAAKD,IAAOmH,eAwBrBxB,MAlBU/E,IAAOc,IAAV,iEAAGd,CAAH,SACPoG,GAkBAM,cAhBkBtB,YAAH,sFAGR/F,YAAKD,IAAOkH,aAIZjH,YAAKD,IAAOmH,iB,iCCtLvB,6BA0Be5D,iBAvBO,SAAC,GAAqG,QAAnGgE,gBAAmG,MAAxF,EAAwF,EAArFC,EAAqF,EAArFA,MAAqF,IAA9EC,cAA8E,SAA9DzI,EAA8D,EAA9DA,MAA8D,IAAvD0I,sBAAuD,MAAtC,YAAsC,EAAzBC,EAAyB,EAAzBA,SAAUC,EAAe,EAAfA,QACzG,OAAQhE,gBAAoBiE,IAAElH,UAAW,CAAE,aAAc,qBAAuBmH,MAAM7H,KAAK6H,MAAMN,IAAQrF,KAAI,SAAC4F,EAAGxF,GAAJ,OAAeqB,gBAAoBiE,IAAE5G,KAAM,CAAE3B,IAAK,qBAAF,OAAuBiD,GAAS,eAAgBA,IAAUvD,EAAO,6BAAuBuD,EAAQ,GAAKyF,QAAS,SAACC,GACpQA,EAAMC,iBACNP,EAASpF,IACV4F,aAAc,kBAAOP,GAAWL,EAAW,EAAKK,GAAQ,GAAQ,MAAMQ,aAAc,kBAAOR,GAAWL,EAAW,EAAKK,GAAQ,GAAS,OAAQrF,IAAUvD,GAChK,WACI,IAAMqJ,EAAoBd,EAAW,IAAME,EAC3C,GAAIY,EACA,OAAQzE,gBAAoBiE,IAAEpG,OAAQ,KAClCmC,gBAAoBiE,IAAElG,WAAY,CAAE2G,QAAS,cAAeC,MAAO,8BAC/D3E,gBAAoBiE,IAAEjG,QAAS,CAAE4G,QAAS,CAAEC,WAAYJ,EAAoB,EAAI,GAAKK,QAAS,CAAED,WAAY,GAAKE,WAAY,CACrHC,SAAUrB,EAAW,IACrBsB,KAAM,UACPC,YAAa,GAAIC,gBAAiB,MAAOC,OAAQ,eAAgBC,KAAM,OAAQ3K,EAAG,6BAErG,OAAQsF,gBAAoBiE,IAAE1G,gBAAiB,CAAE,eAAe,EAE5D+H,SAAUxB,EAAgBiB,WAAY,CAClCC,SAAU,GACVC,KAAM,aAfuJM,Y,+QCNvK1E,E,GAEF,a,UACI,G,4FADU,S,EADN,I,EACM,W,EAAA,M,uFACNlE,cAAJ,CAGA,IAAM6I,EAAiB3I,SAASsE,cAAc,gBACzCqE,IAGLvJ,KAAK8D,MAAQ0F,KAAKC,MAAMF,EAAeG,gBAGhC,QAAI9E,G,+BCdnB,WACe,KAEX+E,MAAO,UAEPzI,MAAO,OACP0I,QAAS,CAELC,KAAM,UAENC,KAAM,UAENC,MAAO,UAEPC,IAAK,WAETC,OAAQ,CAEJC,OAAQ,WAEZC,aAAc,CACVC,UAAW,UACXC,UAAW,UACXC,QAAS,WAEbC,KAAM,CAEFC,OAAQC,YAAI,EAAG,EAAG,KAElBC,OAAQD,YAAI,EAAG,EAAG,KAElBE,OAAQF,YAAI,EAAG,EAAG,KAClBG,OAAQH,YAAI,EAAG,EAAG,KAElBI,OAAQJ,YAAI,EAAG,EAAG,KAElBK,OAAQL,YAAI,EAAG,EAAG,KAElBM,OAAQN,YAAI,EAAG,EAAG,IAElBO,OAAQP,YAAI,EAAG,EAAG,KAElBQ,OAAQR,YAAI,EAAG,EAAG,KAEtBS,IAAK,CAAErB,KAAM,OACbsB,IAAK,CACDC,MAAO,UACPC,MAAO,UACPC,OAAQ,UACRC,WAAY,WAEhBC,IAAK,CACD3B,KAAM,UACNE,MAAO,a,gCCrDf,oDAEM0B,EAAQ1K,IAAO2K,IAAV,yEAAG3K,CAAH,sOAWK,gBAAG4K,EAAH,EAAGA,UAAH,YAAkCC,IAAdD,EAA0BA,EAAY,aACrD,gBAAGE,EAAH,EAAGA,eAAH,YAA2CD,IAAnBC,EAA+BA,OAAiBD,IAElFxL,YAAKD,IAAOiG,eAKjB0F,EAAY/K,IAAOc,IAAV,6EAAGd,CAAH,iLAeTgL,EAAahL,IAAOc,IAAV,8EAAGd,CAAH,mOAWG,YAAuC,IAApCiL,EAAoC,EAApCA,MAAOC,EAA6B,EAA7BA,OACzB,GADsD,EAArBC,iBACVD,IAAWD,EAC9B,MAAO,OAEX,IAAMG,EAAWF,EAASD,EAC1B,OAAOI,MAAMD,GAAY,OAAlB,UAAyC,IAAXA,EAA9B,QAgCEE,EAAc,CACvBZ,QACAK,YACAQ,MAtBUvL,IAAOc,IAAV,yEAAGd,CAAH,4GAKA,qBAAGiL,SACF,qBAAGC,UAiBXF,aACAQ,KAhBSxL,IAAOc,IAAV,wEAAGd,CAAH,qH,8KClEJD,EAAYC,YAAOxC,IAAEiO,SAAZ,wFAAGzL,CAAH,wBAmEF0L,EAAyB,CAClCC,kBAjEsB3L,IAAOc,IAAV,gGAAGd,CAAH,6EAKnB2E,IAAkBI,MAAeJ,IAAkBI,MAC1C7E,IAAMC,OA4DfJ,YACA6L,SA1Da5L,IAAO6L,GAAV,uFAAG7L,CAAH,+CA2DVK,KAtDSL,IAAO8L,GAAV,mFAAG9L,CAAH,qFAuDN+L,kBA/CsB/L,IAAOc,IAAV,gGAAGd,CAAH,sWAInBF,IAAoBC,UAKbR,YAAMH,IAAOkH,aAMlB0F,IAAejM,UAKfD,IAAoBC,UAKfV,YAAKD,IAAOkH,aAOjB0F,IAAejM,UAKfD,IAAoBC,Y,gDC5DpBA,EAAYC,YAAOxC,IAAEiO,SAASQ,OAAM,SAAClJ,GAAD,MAAY,CAClD6E,QAAS7E,EAAM,8BAAgC,UAAY,SAC3D+E,QAAS,UACToE,KAAM,SACNC,SAAU,CACNC,OAAQ,CACJC,OAAQ,GAEZC,QAAS,CACLD,OAAQ,QATL,2FAAGrM,CAAH,6HAkBJX,YAAKD,IAAOiG,eAKjBkH,EAAevM,YAAOxC,IAAEsD,KAAKmL,OAAM,iBAAO,CAC5CE,SAAU,CACNC,OAAQ,CACJI,QAAS,EACTzE,WAAY,CACRC,SAAU,KAGlBsE,QAAS,CACLE,QAAS,EACTzE,WAAY,CACRC,SAAU,UAXR,8FAAGhI,CAAH,wFAqBdsL,IAAYE,MAMViB,EAAiBzM,IAAOc,IAAV,gGAAGd,CAAH,oQAQhBgM,IAAejM,UAKNP,YAAQJ,IAAOkH,YAAalH,IAAOiG,cAKnC9F,YAAMH,IAAOkH,cAMpBoG,EAAU1M,YAAOxC,IAAEsD,KAAKmL,OAAM,iBAAO,CACvCE,SAAU,CACNC,OAAQ,CACJI,QAAS,GAEbF,QAAS,CACLE,QAAS,QANR,yFAAGxM,CAAH,6GAmBP2M,EAAsB3M,YAAOxC,IAAEsD,KAAKmL,OAAM,iBAAO,CACnDE,SAAU,CACNG,QAAS,CACLvE,WAAY,CACR6E,gBAAiB,MAGzBV,KAAM,CACFnE,WAAY,CACR6E,gBAAiB,WATR,qGAAG5M,CAAH,yEAiBdX,YAAKD,IAAOkH,cAIjBuG,EAAQ7M,YAAOxC,IAAEsP,IAAIb,OAAM,iBAAO,CACpCE,SAAUY,aAAkB,QADrB,uFAAG/M,CAAH,8IAIAE,IAAMC,MACboF,IAAMC,OAAOwH,MAMXC,EAAcjN,YAAOxC,IAAEuB,GAAGkN,OAAM,iBAAO,CACzCE,SAAUY,aAAkB,QADf,6FAAG/M,CAAH,qDAGbkN,IAAgBxH,cACTxF,IAAMC,OAQJgN,EAA6B,CACtCpN,YACA0M,iBACAE,sBACAS,WATepN,YAAOxC,IAAEsD,KAAKmL,OAAM,iBAAO,CAC1CE,SAAUY,aAAkB,QADhB,4FAAG/M,CAAH,sBAUZuM,eACAG,UACAG,QACAI,e,urBCpJJ,IAaeI,EAbc,SAAC,GAAmE,IAAjEC,EAAiE,EAAjEA,mBAAoBC,EAA6C,EAA7CA,IAAKC,EAAwC,EAAxCA,MAAO7L,EAAiC,EAAjCA,MAAO8L,EAA0B,EAA1BA,MAAOC,EAAmB,EAAnBA,YAC1E,OAAQ1K,IAAMC,cAAcgE,EAAElH,UAAW,CAAE,6BAA8BuN,GACrEtK,IAAMC,cAAcgE,EAAEsF,aAAc,KAChCvJ,IAAMC,cAAcyH,IAApB,OAAgC8C,GAAhC,IAAuCvE,IAAKwE,GAASC,GAAe,GAAI9C,UAAW,QAAS+C,QAAmB,IAAVhM,EAAc,QAAU,OAAQiM,QAAmB,IAAVjM,MAClJqB,IAAMC,cAAcgE,EAAEyF,QAAS,CAAEmB,MAAO,CAAEC,gBAAiB,gBAC3D9K,IAAMC,cAAcgE,EAAEwF,eAAgB,KAClCzJ,IAAMC,cAAc8C,IAAU,KAC1B/C,IAAMC,cAAcgE,EAAE0F,oBAAqB,KACvC3J,IAAMC,cAAcgE,EAAE4F,MAAO,CAAEkB,GAAc,IAAVpM,EAAcnE,IAAEsP,GAAKtP,IAAEwQ,IAAMP,GAChEC,GAAe1K,IAAMC,cAAcgE,EAAEgG,YAAa,KAAMS,GACxDH,GAAQvK,IAAMC,cAAcgE,EAAEmG,WAAY,KACtCpK,IAAMC,cAAcgL,IAAY,CAAEC,SAAU,QAASlJ,KAAMuI,EAAItI,IAAKkJ,OAAQZ,EAAIY,OAAQV,MAAOF,EAAIE,c,8nFC+C5GhJ,sBAAW9B,aAhDD,SAAC,GAAyC,IAAvC+B,EAAuC,EAAvCA,MAAO0J,EAAgC,EAAhCA,WAAgC,IAApBzH,gBAAoB,MAAT,EAAS,EACzD0H,EAAWnN,YAAS,CAAC3B,YAAMH,IAAOgB,SAAU,EAAC,IAAO,GAC1D,IAA0C4C,IAAMjB,UAAS,GAAzD,GAAOuM,EAAP,KAAsBC,EAAtB,KACA,IAA+BC,YAAU,IAAI,GAA7C,GAAOC,EAAP,KAAqBC,EAArB,KACA,ECnBG,SAAqBC,GAAQ,MAC1BC,EAAc5L,WACpB,IAAsCA,WAAe,GAArD,GAAO6L,EAAP,KAAoBC,EAApB,KACA,IAA4B9L,WAAmC,IAApB2L,EAAO3G,UAAlD,GAAOnB,EAAP,KAAekI,EAAf,KAEMC,EAAkB,UADLL,EAAOjK,MAAMmK,GACM7G,gBAAd,QAA0B2G,EAAO3G,SAyBzD,OAxBAhF,aAAgB,WAIZ,OAHI2L,EAAOM,UAAYpI,IACnB+H,EAAYM,QAAUtP,OAAOuP,YAGjC,WACI,GAAItI,EACA,OAEJ,IAAIuI,EAAWP,EAAc,EACzBO,IAAaT,EAAOjK,MAAM7I,SAC1BuT,EAAW,GAEXT,EAAOU,eACPV,EAAOU,cAAcD,GAEzBN,EAAeM,KAdiCJ,IAgBpD,WACQJ,EAAYM,SACZtP,OAAO0P,cAAcV,EAAYM,YAG1C,CAACL,EAAaG,EAAoBnI,EAAQ8H,EAAOM,UAC7C,CACHJ,cACA7G,SAAUgH,EACVF,iBACAjI,SACAkI,aDhBiEQ,CAAY,CAC7EN,QAAStI,EAAW,EACpBqB,SAAUrB,EACVjC,QACA2K,cAAe,WACXd,GAAiB,MALjBM,EAAR,EAAQA,YAAa7G,EAArB,EAAqBA,SAAUnB,EAA/B,EAA+BA,OAAQiI,EAAvC,EAAuCA,eAAgBC,EAAvD,EAAuDA,UAQvD/L,IAAMf,WAAU,WACZ8M,GAAWL,KACZ,CAACA,IACJ,IAAMc,EAAgBC,YAAa,CAC/BC,aAAc,WACVZ,EAAea,KAAKlQ,IAAIoP,EAAc,EAAGnK,EAAM7I,OAAS,IACxD0S,GAAiB,IAErBqB,cAAe,WACXd,EAAea,KAAKjQ,IAAImP,EAAc,EAAG,IACzCN,GAAiB,MAGzB,OAAQvL,IAAMC,cAAcD,IAAM6M,SAAU,KACxC7M,IAAMC,cAAc,MAApB,OAAgCuM,GAAhC,IAA+CvJ,IAAK,SAAChI,GAC7CwQ,EAAaS,QAAUjR,EACvBuR,EAAcvJ,IAAIhI,MAEtB+E,IAAMC,cAAcgE,EAAElH,UAAW,KAC7BqO,GAAepL,IAAMC,cAAcgE,EAAE0E,kBAAmB,KACpD3I,IAAMC,cAAc6M,UAAa,CAAEpL,MAAO0J,KAC9CpL,IAAMC,cAAcgE,EAAE2E,SAAU,MAC3ByC,IACI1O,eACD+E,EAAMnD,KAAI,SAACwO,EAAMpO,GAAP,OAAkBqB,IAAMC,cAAcgE,EAAE5G,KAAM,CAAE3B,IAAKqR,EAAK3L,GAAI,eAAgByK,IAAgBlN,GACpGqB,IAAMC,cAAc+M,IAAiB,KAAMnB,IAAgBlN,GAAUqB,IAAMC,cAAcoK,EAApB,KAA4C3O,IAAK,wBAAF,OAA0BqR,EAAK3L,KAAS2L,GAAvF,IAA6FzC,mBAAoBuB,IAAgBlN,GAAS2M,EAAe3M,MAAOA,UAC7O0M,GAAa1O,eAAW+E,EAAM7I,OAAS,EAAMmH,IAAMC,cAAcgE,EAAE5G,KAAM,CAAE3B,IAAKgG,EAAM,GAAGN,GAAI,gBAAgB,GACzGpB,IAAMC,cAAcoK,EAApB,OAA+C3I,EAAM,IAArD,IAAyD4I,oBAAoB,EAAM3L,MAAO,MAAS,MAC3G+C,EAAM7I,OAAS,IAAMwS,IAAa1O,eAAYqD,IAAMC,cAAcgE,EAAE8E,kBAAmB,KACnF/I,IAAMC,cAAc8C,IAAU,KAC1B/C,IAAMC,cAAcgN,IAAe,CAAEtJ,SAAUqB,EAAUpB,MAAOlC,EAAM7I,OAAQgL,OAAQA,EAAQzI,MAAOyQ,EAAa9H,SAAU,SAACpF,GACrH4M,GAAiB,GACjBO,EAAenN,GACfoN,GAAU,IACX/H,QAAS,SAACkJ,GAAD,OAAWnB,EAAUmB,cAEF,mBAAoB,CAC3EzM,QAASC,IAAcyM,U,oiCEwBZzF,IApFD,SAAC3H,GACX,QAAoChB,oBAAS,GAA7C,GAAOqO,EAAP,KAAmBC,EAAnB,KACMC,EAAe,CACjBvN,EAAMkI,MAAQlI,EAAMkI,OAAS,EAC7B7L,IAAOmR,YACc,EAArBnR,IAAOmR,YACc,EAArBnR,IAAOmR,YACPnR,IAAOoR,aACe,EAAtBpR,IAAOoR,aACe,EAAtBpR,IAAOoR,aACPpR,IAAOqR,OACS,EAAhBrR,IAAOqR,OACS,EAAhBrR,IAAOqR,OACPrR,IAAOiH,YACc,EAArBjH,IAAOiH,YACc,EAArBjH,IAAOiH,YACPjH,IAAOgB,OACS,EAAhBhB,IAAOgB,OACS,EAAhBhB,IAAOgB,OACPhB,IAAOkH,YACc,EAArBlH,IAAOkH,YACc,EAArBlH,IAAOkH,YACPlH,IAAOiG,aACe,EAAtBjG,IAAOiG,aACe,EAAtBjG,IAAOiG,aACPjG,IAAO8F,QACU,EAAjB9F,IAAO8F,QACU,EAAjB9F,IAAO8F,QACP9F,IAAOsR,cACgB,EAAvBtR,IAAOsR,cACgB,EAAvBtR,IAAOsR,eAEN5M,QAAO,SAACC,GAAD,OAAOA,EAAI,KAClB4M,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAIC,GAAK,EAAI,KAC5BC,EAAaR,EACd/O,KAAI,SAACwC,GAAD,gBAAUgN,YAAShO,EAAMiO,IAAP,mBAAwBjN,IAA1C,YAAkDA,EAAlD,QACJkN,KAAK,MACJD,EAAMD,YAAShO,EAAMiO,IAAP,mBAAwBV,EAAaA,EAAazU,OAAS,KACzEqV,EAAQnO,EAAMmO,MAAQnO,EAAMmO,MAAQ,QACpCC,EAAc,SAACC,GACbhB,IAGJC,GAAc,GACde,EAAEC,cAAcL,IAAMjO,EAAMuO,YAAcvO,EAAMuO,YAAc,KAE9DC,EAAa,KACjB,OAAQxO,EAAMyO,QACV,QACA,IAAK,aACDD,EAAcvO,IAAMC,cAAcqI,IAAYN,WAAY,CAAEC,MAAOlI,EAAMkI,MAAOC,OAAQnI,EAAMmI,OAAQC,eAAgBpI,EAAMoI,gBACxHnI,IAAMC,cAAc,MAAO,MAC3BD,IAAMC,cAAcqI,IAAYZ,MAAO,CAAE+G,KAAM1O,EAAM0O,KAAMxI,IAAKlG,EAAMkG,IAAKyI,SAAU3O,EAAM6K,QAAU,OAAS,QAASD,QAAS5K,EAAM4K,QAAU5K,EAAM4K,QAAU,OAAQ/C,UAAW7H,EAAM6H,UAAWE,eAAgB/H,EAAM+H,eAAgB6G,UAAW5O,EAAM4O,UAAWT,MAAOA,EAAOU,OAAQd,EAAYE,IAAKA,EAAKa,QAASV,EAEvTW,cAAe/O,EAAM6K,QAAU,OAAS,UAChD,MAEJ,IAAK,YACD,IAAMmE,EAAW,eAAH,OAAkBhP,EAAMkI,MAAxB,qBAA0ClI,EAAMmI,OAAhD,wDACdqG,EAAcvO,IAAMC,cAAcqI,IAAYP,UAAW,KACrD/H,IAAMC,cAAc,MAAO,KACvBD,IAAMC,cAAc,MAAO,CAAE,eAAe,EAAMwO,KAAM,eAAgBT,IAAK,6BAAF,OAA+B1O,YAASyP,OACvH/O,IAAMC,cAAcqI,IAAYZ,MAAO,CAAE+G,KAAM1O,EAAM0O,KAAMxI,IAAKlG,EAAMkG,IAAKyI,SAAU3O,EAAM6K,QAAU,OAAS,QAASD,QAAS5K,EAAM4K,QAAU5K,EAAM4K,QAAU,OAAQ/C,UAAW7H,EAAM6H,UAAWE,eAAgB/H,EAAM+H,eAAgB6G,UAAW5O,EAAM4O,UAAWT,MAAOA,EAAOU,OAAQd,EAAYE,IAAKA,EAAKa,QAASV,EAEvTW,cAAe/O,EAAM6K,QAAU,OAAS,UAChD,MAEJ,IAAK,QACD2D,EAAcvO,IAAMC,cAAcqI,IAAYC,MAAO,CAAEN,MAAOlI,EAAMkI,MAAOC,OAAQnI,EAAMmI,QACrFlI,IAAMC,cAAcqI,IAAYZ,MAAO,CAAE+G,KAAM1O,EAAM0O,KAAMxI,IAAKlG,EAAMkG,IAAKyI,SAAU3O,EAAM6K,QAAU,OAAS,QAASD,QAAS5K,EAAM4K,QAAU5K,EAAM4K,QAAU,OAAQ/C,UAAW7H,EAAM6H,UAAWE,eAAgB/H,EAAM+H,eAAgB6G,UAAW5O,EAAM4O,UAAWT,MAAOA,EAAOU,OAAQd,EAAYE,IAAKA,EAAKa,QAASV,EAEvTW,cAAe/O,EAAM6K,QAAU,OAAS,UAChD,MAEJ,IAAK,OACD2D,EAAcvO,IAAMC,cAAcqI,IAAYE,KAAM,KAChDxI,IAAMC,cAAcqI,IAAYZ,MAAO,CAAE+G,KAAM1O,EAAM0O,KAAMxI,IAAKlG,EAAMkG,IAAKyI,SAAU3O,EAAM6K,QAAU,OAAS,QAASD,QAAS5K,EAAM4K,QAAU5K,EAAM4K,QAAU,OAAQgE,UAAW5O,EAAM4O,UAAW/G,UAAW7H,EAAM6H,UAAWE,eAAgB/H,EAAM+H,eAAgBoG,MAAOA,EAAOU,OAAQd,EAAYE,IAAKA,EAAKa,QAASV,EAEvTW,cAAe/O,EAAM6K,QAAU,OAAS,UAIxD,OAAO5K,IAAMC,cAAcD,IAAM6M,SAAU,KAAM0B,K,gCCvFrD,kEAwCa5M,EAAoB,CAAEC,QApCnB5E,IAAOc,IAAV,iFAAGd,CAAH,sBAoC+B+E,MAjC9B/E,IAAO6L,GAAV,+EAAG7L,CAAH,qSAuBIE,IAAMsJ,KAAKU,OAClB3E,IAAMC,OAAOC,QAGNpG,YAAKD,IAAOkH,gB,owBCLZ0L,MAtBf,SAAiCC,GAAwB,IAAdzO,EAAc,uDAAJ,GAC3C0O,EAAcC,iBAAO,MACrBC,EAAUD,iBAAO,MACjBE,EAAaF,iBAAO,MAiB1B,OAhBAlQ,qBAAU,WACN,GAAKoQ,EAAWnD,QAQhB,OALAgD,EAAYhD,QAAU,IAAIoD,qBAAqBL,EAAzB,GAClBM,KAAMH,EAAQlD,SACX1L,IAEP0O,EAAYhD,QAAQsD,QAAQH,EAAWnD,SAChC,WACyB,OAAxBgD,EAAYhD,SAGhBgD,EAAYhD,QAAQuD,gBAEzB,CAACR,EAAUzO,IACP,CAAE6O,aAAYH,cAAaE,Y,g9BCzB/B,SAAS5D,EAAUhL,GAA8C,IAArCkP,EAAqC,wDAApBC,EAAoB,wDACpE,EAA4B5Q,oBAAS,GAArC,SAAO2M,EAAP,KAAekE,EAAf,KACA,EAAuBZ,GAAwB,SAACa,GACxCA,EAAQ,GAAGC,eACXF,GAAU,IAEO,IAAZF,GACLE,GAAU,KAEfpP,GAPK6O,EAAR,EAAQA,WAQR,MAAO,CAACA,IAAYM,GAAoBjE,K,gCCZ5C,2HAMMqE,EAAK,IAAIC,IAAW,CACtBC,MAAO,CACHC,UAAW,kBAEfjO,IAAK,CACDkO,QAAQ,KAGT,SAASpC,EAASqC,EAAUC,GAC/B,IAAKD,EACD,MAAO,GAEX,IAwCkCE,EAxC5B9F,EAAQuF,EAAGvF,MAAM4F,GAMvB,OAJIC,GACA7F,EAAM+F,kBAAkBF,IAqCMC,EAlCDD,IAmCNG,EAAYC,KAAKH,GAlCjC9F,EAAMkG,QAGVlG,EAAMmG,SAASC,YAAOC,gBAAUF,SAASG,YAAQC,gBAAUL,QA6BtE,IAAMF,EAAc,wBAIb,SAASQ,EAAgB/O,GAC5B,IAAMmO,EAAWnO,EAAIgP,MAAM,gBAAgBC,MAC3C,IAAKd,EACD,MAAM,IAAIe,MAAM,wCAEpB,4BAAsBf,K,+BClEnB,IAAIgB,EAKAC,EAKAC,EAMA5Q,EAhBX,wIACA,SAAW0Q,GACPA,EAAUA,EAAS,MAAY,GAAK,QACpCA,EAAUA,EAAS,QAAc,GAAK,UAF1C,CAGGA,IAAcA,EAAY,KAE7B,SAAWC,GACPA,EAAaA,EAAY,SAAe,GAAK,WAC7CA,EAAaA,EAAY,SAAe,GAAK,WAFjD,CAGGA,IAAiBA,EAAe,KAEnC,SAAWC,GACPA,EAAkBA,EAAiB,SAAe,GAAK,WACvDA,EAAkBA,EAAiB,SAAe,GAAK,WACvDA,EAAkBA,EAAiB,QAAc,GAAK,UAH1D,CAIGA,IAAsBA,EAAoB,KAE7C,SAAW5Q,GACPA,EAAcA,EAAa,OAAa,GAAK,SAC7CA,EAAcA,EAAa,OAAa,GAAK,SAC7CA,EAAcA,EAAa,MAAY,GAAK,QAHhD,CAIGA,IAAkBA,EAAgB","file":"HomepageCarousel-eee32d8780199301cae5.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t53: 0,\n \t\t86: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/sitefiles/next-gen/dist/\";\n\n \tvar jsonpArray = this[\"nextGenJsonpFunction\"] = this[\"nextGenJsonpFunction\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([580,0,1,2,3,4,6,12,91,13]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"MobileMedium\"] = 360] = \"MobileMedium\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"TabletSmall\"] = 568] = \"TabletSmall\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\r\n}\r\nexport function between(min, max) {\r\n return `${from(min)} and ${until(max)}`;\r\n}\r\n","export const isSSR = () => {\r\n const returnValue = !(typeof window != 'undefined' && window.document);\r\n return returnValue;\r\n};\r\n","import brand from '@helpers/brand';\r\nimport { Device, from } from '@helpers/media';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled.nav `\r\n --color: ${brand.white};\r\n --gap: 4px;\r\n --height: 16px;\r\n --opacityInactive: 1;\r\n --opacityActive: 0.65;\r\n --tapSize: 48px;\r\n --width: 16px;\r\n\r\n --tapPadding: calc((var(--tapSize) - var(--width)) / 2);\r\n\r\n display: flex;\r\n flex-direction: row;\r\n gap: var(--gap);\r\n place-content: center;\r\n place-items: center;\r\n user-select: none;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --gap: 8px;\r\n --height: 16px;\r\n --width: 16px;\r\n }\r\n`;\r\nconst Item = styled.button `\r\n position: relative;\r\n display: flex;\r\n background: none;\r\n border: 0;\r\n color: var(--color);\r\n margin: 0;\r\n\r\n padding: var(--tapPadding);\r\n place-content: center;\r\n place-items: center;\r\n\r\n &::before {\r\n content: '';\r\n display: block;\r\n background: currentColor;\r\n border: 0;\r\n color: currentColor;\r\n height: var(--height);\r\n width: var(--width);\r\n transform: scale(1);\r\n transition: transform 0.15s ease-out;\r\n will-change: transform;\r\n }\r\n\r\n /* Enable focus styles for Safari */\r\n &:focus {\r\n background: none;\r\n outline: none;\r\n\r\n &::before {\r\n outline: auto;\r\n outline-color: currentColor;\r\n outline-offset: 5px;\r\n outline-width: thin;\r\n }\r\n }\r\n\r\n /* Enable hover styles for Safari */\r\n &:hover {\r\n background: none;\r\n &::before {\r\n transform: scale(0.6);\r\n }\r\n }\r\n\r\n /* Disable focus styles if focus visible is supported */\r\n &:not(:focus-visible):focus {\r\n outline: none;\r\n\r\n &::before {\r\n outline: none;\r\n }\r\n }\r\n\r\n /* Reapply focus styles for focus-visible browsers */\r\n &:focus-visible {\r\n outline: none;\r\n\r\n &::before {\r\n outline: auto;\r\n outline-color: currentColor;\r\n outline-offset: 5px;\r\n outline-width: thin;\r\n }\r\n }\r\n\r\n /* Apply hover styles for focus-visible browsers */\r\n &:not(:focus-visible):hover {\r\n &::before {\r\n transform: scale(0.6);\r\n }\r\n }\r\n\r\n /* Apply active styles */\r\n &[aria-current='true'] {\r\n &::before {\r\n transform: scale(0.6);\r\n }\r\n }\r\n`;\r\nconst ActiveIndicator = styled(m.span) `\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n display: block;\r\n border: 2px solid var(--color);\r\n height: 20px;\r\n width: 20px;\r\n transform: translate(-50%, -50%) !important;\r\n`;\r\nconst SvgIndicator = styled(m.svg) `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n height: 100%;\r\n width: 100%;\r\n`;\r\nconst Circle = styled(m.circle) `\r\n fill: none;\r\n stroke: var(--color);\r\n stroke-width: 2px;\r\n`;\r\nconst SvgBox = styled.div `\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n margin-left: auto;\r\n margin-right: auto;\r\n stroke: var(--color);\r\n border: 'none';\r\n transform: translate(-50%, -50%);\r\n width: 20px;\r\n height: 20px;\r\n`;\r\nconst SvgOutline = styled(m.svg) `\r\n width: 100%;\r\n height: 100%;\r\n transform: scaleX(-1) rotate(90deg);\r\n`;\r\nconst SvgPath = styled(m.path) ``;\r\nconst DotPaginationStyles = {\r\n Container,\r\n Item,\r\n ActiveIndicator,\r\n SvgIndicator,\r\n Circle,\r\n SvgBox,\r\n SvgOutline,\r\n SvgPath,\r\n};\r\nexport default DotPaginationStyles;\r\n","import { isSSR } from '@helpers/ssr';\r\nimport { useEffect, useState } from 'react';\r\n/**\r\n * Store a value in state based on the specified media queries.\r\n * @param {Array} queries\r\n * @param {Array} values\r\n * @param {T} defaultValue\r\n */\r\nfunction useMedia(queries, values, defaultValue) {\r\n // Avoid error with SSR.\r\n if (isSSR()) {\r\n return defaultValue;\r\n }\r\n // Array containing a media query list for each query\r\n const mediaQueryLists = queries.map((query) => window.matchMedia(query));\r\n // Function that gets value based on matching media query\r\n const getValue = () => {\r\n // Get index of first media query that matches\r\n const index = mediaQueryLists.findIndex((mql) => mql.matches);\r\n // Return related value or defaultValue if none\r\n return typeof values[index] !== 'undefined' ? values[index] : defaultValue;\r\n };\r\n // State and setter for matched value\r\n const [value, setValue] = useState(getValue);\r\n useEffect(() => {\r\n // Event listener callback\r\n // Note: By defining getValue outside of useEffect we ensure that it has ...\r\n // ... current values of hook args (as this hook callback is created once on mount).\r\n const handler = () => setValue(getValue);\r\n // Set a listener for each media query with above handler as callback.\r\n mediaQueryLists.forEach((mql) => mql.addListener(handler));\r\n // Remove listeners on cleanup\r\n return () => mediaQueryLists.forEach((mql) => mql.removeListener(handler));\r\n }, []); // Empty array ensures effect is only run on mount and unmount\r\n return value;\r\n}\r\nexport default useMedia;\r\n","/**\r\n * Isomorphic base64 that works on the server and client\r\n */\r\nexport function toBase64(str) {\r\n if (typeof window === 'undefined') {\r\n return Buffer.from(str).toString('base64');\r\n }\r\n else {\r\n return window.btoa(str);\r\n }\r\n}\r\n","import { domMax, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotionMax(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotionMax = (props) => {\r\n return (React.createElement(LazyMotion, { features: domMax, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotionMax.displayName = `withMotionMax(${displayName})`;\r\n return ComponentWithMotionMax;\r\n}\r\n","import { HydrateOption } from '@core/enums';\r\nimport ReactPropsHelper from '@helpers/ReactPropsHelper';\r\nimport { isSSR } from '@helpers/ssr';\r\nimport { createElement } from 'react';\r\nimport { hydrate } from 'react-dom';\r\nimport 'regenerator-runtime/runtime';\r\nexport default function (component, componentName, options) {\r\n if (isSSR() || options.hydrate === HydrateOption.Never) {\r\n return component;\r\n }\r\n const configs = ReactPropsHelper.props.filter((x) => x.name.toLowerCase() === `components.${componentName.toLowerCase()}`);\r\n if (!configs || configs.length === 0) {\r\n return component;\r\n }\r\n for (let index = 0; index < configs.length; index++) {\r\n const config = configs[index];\r\n const container = document.querySelector(`#${config.id}:not(.hydrated)`);\r\n if (!container) {\r\n continue;\r\n }\r\n container.classList.add('hydrated');\r\n // Not supported in Safari iOS\r\n if (window.requestIdleCallback) {\r\n window.requestIdleCallback(() => {\r\n const element = createElement(component, config.props);\r\n // const t0 = performance.now();\r\n hydrate(element, container);\r\n // const t1 = performance.now();\r\n // console.log(`${componentName} hydrate took ${t1 - t0} milliseconds.`);\r\n });\r\n }\r\n else {\r\n hydrate(createElement(component, config.props), container);\r\n }\r\n }\r\n return component;\r\n}\r\n","import { HydrateOption } from '@core/enums';\r\nimport { Grid } from '@helpers/grid';\r\nimport withWidget from '@hoc/withWidget';\r\nimport React from 'react';\r\nimport { BreadcrumbsStyles } from './Breadcrumbs.styles';\r\nconst Breadcrumbs = (props) => {\r\n if (!props.items || props.items.length === 0) {\r\n return null;\r\n }\r\n return (React.createElement(BreadcrumbsStyles.Wrapper, null,\r\n React.createElement(Grid.Default, null,\r\n React.createElement(BreadcrumbsStyles.Inner, null, props.items.map((x) => (React.createElement(\"li\", { key: x.name },\r\n React.createElement(\"a\", { href: x.url }, x.name))))))));\r\n};\r\nexport default withWidget(Breadcrumbs, 'Breadcrumbs', { hydrate: HydrateOption.Never });\r\n","import { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nexport const SiteWideDesktop = 1757;\r\nexport const SitePaddingMobile = 18;\r\nexport const SitePaddingDesktop = 24;\r\nconst Container = styled.div `\r\n --site-wide: 100%;\r\n --site-padding: ${SitePaddingMobile}px;\r\n\r\n margin-left: auto;\r\n margin-right: auto;\r\n overflow: visible;\r\n padding-left: var(--site-padding);\r\n padding-right: var(--site-padding);\r\n width: 100%;\r\n\r\n @media ${from(Device.Desktop)} {\r\n --site-padding: ${SitePaddingDesktop}px;\r\n --site-wide: ${SiteWideDesktop}px;\r\n max-width: calc(var(--site-wide) + (var(--site-padding) * 2));\r\n }\r\n\r\n ${({ isThin }) => isThin &&\r\n css `\r\n @media ${from(Device.DesktopSmall)} {\r\n --site-wide: 863px;\r\n max-width: calc(var(--site-wide) + (var(--site-padding) * 2));\r\n }\r\n `}\r\n`;\r\nexport default {\r\n Container,\r\n};\r\n","import { fonts } from '@helpers/fonts';\r\nimport styled, { css } from 'styled-components';\r\n/**\r\n * 20px / 28px\r\n */\r\nexport const LargeStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 20px;\r\n letter-spacing: normal;\r\n line-height: 28px;\r\n margin-bottom: 16px;\r\n`;\r\n/**\r\n * 18px / 28px\r\n */\r\nexport const RegularStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 18px;\r\n letter-spacing: normal;\r\n line-height: 28px;\r\n margin-bottom: 16px;\r\n`;\r\n/**\r\n * 16px / 26px\r\n */\r\nexport const SmallStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 16px;\r\n letter-spacing: normal;\r\n line-height: 26px;\r\n margin-bottom: 16px;\r\n`;\r\nconst Paragraph = styled.p `\r\n ${({ isLatestNewsWidget }) => isLatestNewsWidget\r\n ? css `\r\n min-height: 104px;\r\n `\r\n : null}\r\n \r\n ${({ align }) => align\r\n ? css `\r\n text-align: ${align};\r\n `\r\n : null}\r\n\r\n ${({ size }) => {\r\n switch (size) {\r\n case 'large':\r\n return LargeStyles;\r\n case 'regular':\r\n return RegularStyles;\r\n case 'small':\r\n return SmallStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n`;\r\nexport default {\r\n Paragraph,\r\n SmallStyles,\r\n RegularStyles,\r\n LargeStyles,\r\n};\r\n","import React from 'react';\r\nimport s from './SiteWide.styles';\r\nconst SiteWide = React.forwardRef((props, ref) => {\r\n const { children, className, isThin } = props;\r\n return (React.createElement(s.Container, { ref: ref, className: className, isThin: isThin }, children));\r\n});\r\nSiteWide.displayName = 'SiteWide';\r\nexport default SiteWide;\r\n","import styled, { css } from 'styled-components';\r\nimport { Device, from } from './media';\r\nexport const baseGrid = css `\r\n --grid-gap: 10px;\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n grid-gap: var(--grid-gap);\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n --grid-gap: 12px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n --grid-gap: 15px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --grid-gap: 20px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n --grid-gap: 30px;\r\n }\r\n`;\r\nconst Default = styled.div `\r\n ${baseGrid};\r\n --gridPadding: 13px;\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n --gridPadding: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n --gridPadding: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --gridPadding: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n --gridPadding: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n --gridPadding: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n --gridPadding: 140px;\r\n }\r\n\r\n padding: 0px var(--gridPadding);\r\n`;\r\nconst DefaultBreakout = css `\r\n position: relative;\r\n left: 0px;\r\n right: 0px;\r\n margin: 0px -13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n margin: 0px -40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin: 0px -60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin: 0px -80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n margin: 0px -100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n margin: 0px -120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n margin: 0px -140px;\r\n }\r\n`;\r\nconst DefaultPseudo = css `\r\n position: relative;\r\n\r\n &:before,\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n }\r\n\r\n &:before {\r\n left: -13px;\r\n width: 13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n left: -40px;\r\n width: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n left: -60px;\r\n width: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n left: -80px;\r\n width: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n left: -100px;\r\n width: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n left: -120px;\r\n width: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n left: -140px;\r\n width: 140px;\r\n }\r\n }\r\n\r\n &:after {\r\n right: -13px;\r\n width: 13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n right: -40px;\r\n width: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n right: -60px;\r\n width: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n right: -80px;\r\n width: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n right: -100px;\r\n width: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n right: -120px;\r\n width: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n right: -140px;\r\n width: 140px;\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${baseGrid};\r\n`;\r\nconst CardGridSpans = css `\r\n grid-column: span 6;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: span 4;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n grid-column: span 3;\r\n }\r\n`;\r\nexport const Grid = {\r\n Default,\r\n DefaultBreakout,\r\n DefaultPseudo,\r\n Inner,\r\n CardGridSpans,\r\n};\r\n","import * as React from 'react';\r\nimport S from './DotPagination.styles';\r\nimport { withMotionMax } from '@hoc/withMotionMax';\r\nconst DotPagination = ({ autoplay = 0, count, paused = false, value, customLayoutId = 'indicator', onChange, onHover, }) => {\r\n return (React.createElement(S.Container, { \"aria-label\": \"Slider Pagination\" }, Array.from(Array(count)).map((_, index) => (React.createElement(S.Item, { key: `DotPaginationItem_${index}`, \"aria-current\": index === value, \"aria-label\": `Go to ${index + 1}`, onClick: (event) => {\r\n event.preventDefault();\r\n onChange(index);\r\n }, onMouseEnter: () => (onHover && autoplay > 0) ? onHover(true) : null, onMouseLeave: () => (onHover && autoplay > 0) ? onHover(false) : null }, index === value && renderActiveIndicator())))));\r\n function renderActiveIndicator() {\r\n const isActiveAnimating = autoplay > 0 && !paused;\r\n if (isActiveAnimating) {\r\n return (React.createElement(S.SvgBox, null,\r\n React.createElement(S.SvgOutline, { viewBox: \"0 0 204 204\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(S.SvgPath, { initial: { pathLength: isActiveAnimating ? 0 : 1 }, animate: { pathLength: 1 }, transition: {\r\n duration: autoplay / 1000,\r\n ease: \"linear\",\r\n }, strokeWidth: 40, strokeDasharray: \"0 1\", stroke: \"currentColor\", fill: \"none\", d: \"M2.7.7v200h200V.7H2.7Z\" }))));\r\n }\r\n return (React.createElement(S.ActiveIndicator, { \"aria-hidden\": true, \r\n // \"layoutId\" handles animating between positions automatically.\r\n layoutId: customLayoutId, transition: {\r\n duration: 0.3,\r\n ease: 'easeOut',\r\n } }));\r\n }\r\n};\r\nexport default withMotionMax(DotPagination);\r\n","import { isSSR } from './ssr';\r\nclass ReactPropsHelper {\r\n props = [];\r\n constructor() {\r\n if (isSSR()) {\r\n return;\r\n }\r\n const reactPropsNode = document.querySelector('#react_props');\r\n if (!reactPropsNode) {\r\n return;\r\n }\r\n this.props = JSON.parse(reactPropsNode.innerHTML);\r\n }\r\n}\r\nexport default new ReactPropsHelper();\r\n","import { hsl } from 'polished';\r\nexport default {\r\n /** Hex: #1f1f1f */\r\n black: '#1f1f1f',\r\n /** Hex: #fff */\r\n white: '#fff',\r\n primary: {\r\n /** Hex: #859a3e */\r\n base: '#859a3e',\r\n /** Hex: #558000 */\r\n dark: '#558000',\r\n /** Hex: #84bb26 */\r\n light: '#84bb26',\r\n /** Hex: #669900 */\r\n alt: '#669900',\r\n },\r\n accent: {\r\n /** Hex: #FF6600 */\r\n orange: '#FF6600',\r\n },\r\n divisionTags: {\r\n mrCropper: '#CC0000',\r\n sandhurst: '#FF6600',\r\n default: '#669900',\r\n },\r\n grey: {\r\n /** Hex: #E5E5E5 */\r\n grey89: hsl(0, 0, 0.89),\r\n /** Hex: #F6F6F6 */\r\n grey96: hsl(0, 0, 0.96),\r\n /** Hex: #C1C1C1 */\r\n grey76: hsl(0, 0, 0.76),\r\n grey75: hsl(0, 0, 0.75),\r\n /** Hex: #8D8C8C*/\r\n grey55: hsl(0, 0, 0.55),\r\n /** Hex: #707070*/\r\n grey44: hsl(0, 0, 0.44),\r\n /** Hex: #666666*/\r\n grey40: hsl(0, 0, 0.4),\r\n /** Hex: #5A5A5A */\r\n grey35: hsl(0, 0, 0.35),\r\n /** Hex: #333333*/\r\n grey20: hsl(0, 0, 0.2),\r\n },\r\n red: { base: 'red' },\r\n ysp: {\r\n input: '#DBE6C7',\r\n water: '#0097a9',\r\n ground: '#ab0216',\r\n excavation: '#93545c',\r\n },\r\n tpa: {\r\n base: '#26358c',\r\n light: '#009dff',\r\n },\r\n};\r\n","import { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Image = styled.img `\r\n position: absolute;\r\n height: 100%;\r\n inset: 0px;\r\n box-sizing: border-box;\r\n padding: 0px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n border: none;\r\n display: block;\r\n text-indent: -999px;\r\n object-fit: ${({ objectFit }) => (objectFit !== undefined ? objectFit : 'initial')};\r\n object-position: ${({ objectPosition }) => objectPosition !== undefined ? objectPosition : undefined};\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n width: 100%;\r\n height: auto;\r\n }\r\n`;\r\nconst Intrinsic = styled.div `\r\n height: 100%;\r\n display: inline-block;\r\n max-width: 100%;\r\n overflow: hidden;\r\n position: relative;\r\n box-sizing: border-box;\r\n margin: 0;\r\n\r\n > div {\r\n box-sizing: border-box;\r\n display: block;\r\n max-width: 100%;\r\n }\r\n`;\r\nconst Responsive = styled.div `\r\n display: block;\r\n overflow: hidden;\r\n position: relative;\r\n box-sizing: border-box;\r\n margin: 0;\r\n\r\n > div {\r\n display: block;\r\n box-sizing: border-box;\r\n \r\n padding-top: ${({ width, height, fullPaddingTop }) => {\r\n if (fullPaddingTop || !height || !width) {\r\n return '100%';\r\n }\r\n const quotient = height / width;\r\n return isNaN(quotient) ? '100%' : `${quotient * 100}%`;\r\n}};\r\n\r\n [data-featured='true'] & {\r\n padding-top: unset;\r\n }\r\n\r\n }\r\n\r\n [data-featured='true'] & {\r\n height: 400px; //set specific height of image style\r\n }\r\n`;\r\nconst Fixed = styled.div `\r\n overflow: hidden;\r\n box-sizing: border-box;\r\n display: inline-block;\r\n position: relative;\r\n width: ${({ width }) => width}px;\r\n height: ${({ height }) => height}px;\r\n`;\r\nconst Fill = styled.div `\r\n display: block;\r\n overflow: hidden;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n box-sizing: border-box;\r\n margin: 0;\r\n`;\r\nexport const ImageStyles = {\r\n Image,\r\n Intrinsic,\r\n Fixed,\r\n Responsive,\r\n Fill,\r\n};\r\n","import brand from '@helpers/brand';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport SiteWideStyles from '@stories/Components/Global/SiteWide/SiteWide.styles';\r\nimport DotPaginationStyles from '@stories/Components/Misc/DotPagination/DotPagination.styles';\r\nimport { BreadcrumbsStyles } from '@stories/Widgets/Meta/Breadcrumbs/Breadcrumbs.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled(m.section) `\r\n position: relative;\r\n`;\r\nconst BreadcrumbWrapper = styled.div `\r\n position: absolute;\r\n width: 100%;\r\n z-index: 2;\r\n\r\n ${BreadcrumbsStyles.Inner} li a, ${BreadcrumbsStyles.Inner} li:after {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst ItemList = styled.ul `\r\n position: relative;\r\n display: grid;\r\n z-index: 0;\r\n`;\r\nconst Item = styled.li `\r\n grid-area: 1 / 1;\r\n pointer-events: none;\r\n\r\n &[aria-current='true'] {\r\n pointer-events: all;\r\n }\r\n`;\r\nconst PaginationWrapper = styled.div `\r\n pointer-events: none;\r\n z-index: 1;\r\n\r\n ${DotPaginationStyles.Container} {\r\n pointer-events: all;\r\n --direction: column;\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n position: absolute;\r\n bottom: 10px;\r\n left: 0;\r\n width: 100%;\r\n\r\n ${SiteWideStyles.Container} {\r\n display: flex;\r\n justify-content: center;\r\n }\r\n\r\n ${DotPaginationStyles.Container} {\r\n flex-direction: row;\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: absolute;\r\n top: 50%;\r\n left: 0;\r\n transform: translateY(-50%);\r\n width: 100%;\r\n\r\n ${SiteWideStyles.Container} {\r\n display: flex;\r\n justify-content: flex-start;\r\n }\r\n\r\n ${DotPaginationStyles.Container} {\r\n flex-direction: column;\r\n }\r\n }\r\n`;\r\nexport const HomepageCarouselStyles = {\r\n BreadcrumbWrapper,\r\n Container,\r\n ItemList,\r\n Item,\r\n PaginationWrapper,\r\n};\r\n","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { between, Device, from, until } from '@helpers/media';\r\nimport { horizontalFadeIn } from '@helpers/variants';\r\nimport SiteWideStyles from '@stories/Components/Global/SiteWide/SiteWide.styles';\r\nimport ParagraphStyles from '@stories/Components/Global/Typography/Paragraph.styles';\r\nimport { ImageStyles } from '@stories/Components/Media/Image/Image.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled(m.section).attrs((props) => ({\r\n initial: props['data-forced-initial-active'] ? 'visible' : 'hidden',\r\n animate: 'visible',\r\n exit: 'hidden',\r\n variants: {\r\n hidden: {\r\n zIndex: 0,\r\n },\r\n visible: {\r\n zIndex: 1,\r\n },\r\n },\r\n})) `\r\n position: relative;\r\n display: grid;\r\n height: 100%;\r\n min-height: 296px;\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n height: 90vh;\r\n max-height: min(100vh - 185px, 786px);\r\n }\r\n`;\r\nconst ImageWrapper = styled(m.div).attrs(() => ({\r\n variants: {\r\n hidden: {\r\n opacity: 0,\r\n transition: {\r\n duration: 0.5,\r\n },\r\n },\r\n visible: {\r\n opacity: 1,\r\n transition: {\r\n duration: 0.5,\r\n },\r\n },\r\n },\r\n})) `\r\n position: relative;\r\n grid-area: 1 / 1;\r\n\r\n overflow: hidden;\r\n\r\n ${ImageStyles.Fill} {\r\n img {\r\n height: 100% !important;\r\n }\r\n }\r\n`;\r\nconst ContentWrapper = styled.div `\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n grid-area: 1 / 1;\r\n height: 100%;\r\n justify-content: flex-start;\r\n\r\n ${SiteWideStyles.Container} {\r\n display: flex;\r\n align-items: center;\r\n height: 100%;\r\n\r\n @media ${between(Device.TabletLarge, Device.DesktopSmall)} {\r\n padding-top: 40px;\r\n padding-bottom: 40px;\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n padding-top: 75px;\r\n padding-bottom: 75px;\r\n }\r\n }\r\n`;\r\nconst Overlay = styled(m.div).attrs(() => ({\r\n variants: {\r\n hidden: {\r\n opacity: 0,\r\n },\r\n visible: {\r\n opacity: 1,\r\n },\r\n },\r\n})) `\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n background: rgba(0, 0, 0, 0.43);\r\n height: 100%;\r\n width: 100%;\r\n z-index: 1;\r\n`;\r\nconst ContentWrapperInner = styled(m.div).attrs(() => ({\r\n variants: {\r\n visible: {\r\n transition: {\r\n staggerChildren: 0.15,\r\n },\r\n },\r\n exit: {\r\n transition: {\r\n staggerChildren: 0.15,\r\n },\r\n },\r\n },\r\n})) `\r\n position: relative;\r\n z-index: 2;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding-left: max(10vw, 64px);\r\n }\r\n`;\r\nconst Title = styled(m.h1).attrs(() => ({\r\n variants: horizontalFadeIn(-15),\r\n})) `\r\n display: block;\r\n color: ${brand.white};\r\n ${fonts.DaxPro.Bold};\r\n font-size: clamp(30px, 20px + 2.5vw, 50px);\r\n line-height: 1.2;\r\n max-width: clamp(350px, 70vw, 526px);\r\n margin-bottom: 20px;\r\n`;\r\nconst Description = styled(m.p).attrs(() => ({\r\n variants: horizontalFadeIn(-15),\r\n})) `\r\n ${ParagraphStyles.RegularStyles};\r\n color: ${brand.white};\r\n max-width: clamp(350px, 70vw, 800px);\r\n`;\r\nconst CtaWrapper = styled(m.div).attrs(() => ({\r\n variants: horizontalFadeIn(-15),\r\n})) `\r\n margin-top: 25px;\r\n`;\r\nexport const HomepageCarouselItemStyles = {\r\n Container,\r\n ContentWrapper,\r\n ContentWrapperInner,\r\n CtaWrapper,\r\n ImageWrapper,\r\n Overlay,\r\n Title,\r\n Description,\r\n};\r\n","import { LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport Image from '@stories/Components/Media/Image/Image';\r\nimport { m } from 'framer-motion';\r\nimport React from 'react';\r\nimport { HomepageCarouselItemStyles as S } from './HomepageCarouselItem.styles';\r\nconst HomepageCarouselItem = ({ forceInitialActive, cta, image, index, title, description, }) => {\r\n return (React.createElement(S.Container, { \"data-forced-initial-active\": forceInitialActive },\r\n React.createElement(S.ImageWrapper, null,\r\n React.createElement(Image, { ...image, alt: title || description || '', objectFit: \"cover\", loading: index === 0 ? 'eager' : 'lazy', preload: index === 0 })),\r\n React.createElement(S.Overlay, { style: { transformOrigin: 'top center' } }),\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(SiteWide, null,\r\n React.createElement(S.ContentWrapperInner, null,\r\n React.createElement(S.Title, { as: index === 0 ? m.h1 : m.h2 }, title),\r\n description && React.createElement(S.Description, null, description),\r\n cta && (React.createElement(S.CtaWrapper, null,\r\n React.createElement(LinkButton, { branding: \"white\", href: cta.url, target: cta.target, title: cta.title }))))))));\r\n};\r\nexport default HomepageCarouselItem;\r\n","import { HydrateOption } from '@core/enums';\r\nimport { Device, until } from '@helpers/media';\r\nimport { isSSR } from '@helpers/ssr';\r\nimport withWidget from '@hoc/withWidget';\r\nimport useMedia from '@hooks/useMedia';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport Breadcrumbs from '@stories/Widgets/Meta/Breadcrumbs/Breadcrumbs.widget';\r\nimport React from 'react';\r\nimport { useSwipeable } from 'react-swipeable';\r\nimport { HomepageCarouselStyles as S } from './HomepageCarousel.styles';\r\nimport HomepageCarouselItem from './HomepageCarouselItem/HomepageCarouselItem';\r\nimport { useAutoplay } from '@hooks/useAutoplay';\r\nimport { useInView } from '@hooks/useInView';\r\nimport { withMotionMax } from '@hoc/withMotionMax';\r\nimport DotPagination from '@stories/Components/Misc/DotPagination/DotPagination';\r\nimport { AnimatePresence } from 'framer-motion';\r\nconst HomepageCarousel = ({ items, breadcrumb, autoplay = 0, }) => {\r\n const isMobile = useMedia([until(Device.Tablet)], [true], false);\r\n const [initialRender, setInitialRender] = React.useState(true);\r\n const [refContainer, inView] = useInView({}, true);\r\n const { activeIndex, duration, paused, setActiveIndex, setPaused } = useAutoplay({\r\n enabled: autoplay > 0,\r\n duration: autoplay,\r\n items,\r\n onSlideChange: () => {\r\n setInitialRender(false);\r\n },\r\n });\r\n React.useEffect(() => {\r\n setPaused(!inView);\r\n }, [inView]);\r\n const swipeHandlers = useSwipeable({\r\n onSwipedLeft: () => {\r\n setActiveIndex(Math.min(activeIndex + 1, items.length - 1));\r\n setInitialRender(false);\r\n },\r\n onSwipedRight: () => {\r\n setActiveIndex(Math.max(activeIndex - 1, 0));\r\n setInitialRender(false);\r\n },\r\n });\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { ...swipeHandlers, ref: (r) => {\r\n refContainer.current = r;\r\n swipeHandlers.ref(r);\r\n } },\r\n React.createElement(S.Container, null,\r\n breadcrumb && (React.createElement(S.BreadcrumbWrapper, null,\r\n React.createElement(Breadcrumbs, { items: breadcrumb }))),\r\n React.createElement(S.ItemList, null,\r\n !isMobile &&\r\n !isSSR() &&\r\n items.map((item, index) => (React.createElement(S.Item, { key: item.id, \"aria-current\": activeIndex === index },\r\n React.createElement(AnimatePresence, null, activeIndex === index && (React.createElement(HomepageCarouselItem, { key: `HomepageCarouselItem_${item.id}`, ...item, forceInitialActive: activeIndex === index && initialRender, index: index })))))),\r\n isMobile || (isSSR() && items.length > 0) ? (React.createElement(S.Item, { key: items[0].id, \"aria-current\": true },\r\n React.createElement(HomepageCarouselItem, { ...items[0], forceInitialActive: true, index: 0 }))) : null),\r\n items.length > 1 && !isMobile && !isSSR() && (React.createElement(S.PaginationWrapper, null,\r\n React.createElement(SiteWide, null,\r\n React.createElement(DotPagination, { autoplay: duration, count: items.length, paused: paused, value: activeIndex, onChange: (index) => {\r\n setInitialRender(false);\r\n setActiveIndex(index);\r\n setPaused(true);\r\n }, onHover: (hover) => setPaused(hover) }))))))));\r\n};\r\nexport default withWidget(withMotionMax(HomepageCarousel), 'HomepageCarousel', {\r\n hydrate: HydrateOption.Always,\r\n});\r\n","import * as React from 'react';\r\nexport function useAutoplay(params) {\r\n const refInterval = React.useRef();\r\n const [activeIndex, setActiveIndex] = React.useState(0);\r\n const [paused, setPaused] = React.useState(params.duration === 0);\r\n const activeItem = params.items[activeIndex];\r\n const activeItemDuration = activeItem.duration ?? params.duration;\r\n React.useEffect(() => {\r\n if (params.enabled && !paused) {\r\n refInterval.current = window.setTimeout(update, activeItemDuration);\r\n }\r\n return cleanup;\r\n function update() {\r\n if (paused) {\r\n return;\r\n }\r\n let newIndex = activeIndex + 1;\r\n if (newIndex === params.items.length) {\r\n newIndex = 0;\r\n }\r\n if (params.onSlideChange) {\r\n params.onSlideChange(newIndex);\r\n }\r\n setActiveIndex(newIndex);\r\n }\r\n function cleanup() {\r\n if (refInterval.current) {\r\n window.clearInterval(refInterval.current);\r\n }\r\n }\r\n }, [activeIndex, activeItemDuration, paused, params.enabled]);\r\n return {\r\n activeIndex,\r\n duration: activeItemDuration,\r\n setActiveIndex,\r\n paused,\r\n setPaused,\r\n };\r\n}\r\n","import { imageUrl } from '@helpers/cloudinary';\r\nimport { Device } from '@helpers/media';\r\nimport { toBase64 } from '@helpers/to-base-64';\r\nimport React, { useState } from 'react';\r\nimport { ImageStyles } from './Image.styles';\r\nconst Image = (props) => {\r\n const [hasErrored, setHasErrored] = useState(false);\r\n const deviceWidths = [\r\n props.width ? props.width : -1,\r\n Device.MobileSmall,\r\n Device.MobileSmall * 2,\r\n Device.MobileSmall * 3,\r\n Device.MobileMedium,\r\n Device.MobileMedium * 2,\r\n Device.MobileMedium * 3,\r\n Device.Mobile,\r\n Device.Mobile * 2,\r\n Device.Mobile * 3,\r\n Device.MobileLarge,\r\n Device.MobileLarge * 2,\r\n Device.MobileLarge * 3,\r\n Device.Tablet,\r\n Device.Tablet * 2,\r\n Device.Tablet * 3,\r\n Device.TabletLarge,\r\n Device.TabletLarge * 2,\r\n Device.TabletLarge * 3,\r\n Device.DesktopSmall,\r\n Device.DesktopSmall * 2,\r\n Device.DesktopSmall * 3,\r\n Device.Desktop,\r\n Device.Desktop * 2,\r\n Device.Desktop * 3,\r\n Device.ActualDesktop,\r\n Device.ActualDesktop * 2,\r\n Device.ActualDesktop * 3,\r\n ]\r\n .filter((x) => x > 0)\r\n .sort((a, b) => (a < b ? -1 : 1));\r\n const srcSetUrls = deviceWidths\r\n .map((x) => `${imageUrl(props.src, `c_fill,w_${x}`)} ${x}w`)\r\n .join(', ');\r\n const src = imageUrl(props.src, `c_fill,w_${deviceWidths[deviceWidths.length - 1]}`);\r\n const sizes = props.sizes ? props.sizes : '100vw';\r\n const handleError = (e) => {\r\n if (hasErrored) {\r\n return;\r\n }\r\n setHasErrored(true);\r\n e.currentTarget.src = props.fallbackSrc ? props.fallbackSrc : '';\r\n };\r\n let components = null;\r\n switch (props.layout) {\r\n default:\r\n case 'responsive': {\r\n components = (React.createElement(ImageStyles.Responsive, { width: props.width, height: props.height, fullPaddingTop: props.fullPaddingTop },\r\n React.createElement(\"div\", null),\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'intrinsic': {\r\n const sizerSvg = ``;\r\n components = (React.createElement(ImageStyles.Intrinsic, null,\r\n React.createElement(\"div\", null,\r\n React.createElement(\"img\", { \"aria-hidden\": true, role: \"presentation\", src: `data:image/svg+xml;base64,${toBase64(sizerSvg)}` })),\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'fixed': {\r\n components = (React.createElement(ImageStyles.Fixed, { width: props.width, height: props.height },\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'fill': {\r\n components = (React.createElement(ImageStyles.Fill, null,\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', draggable: props.draggable, objectFit: props.objectFit, objectPosition: props.objectPosition, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n }\r\n return React.createElement(React.Fragment, null, components);\r\n};\r\nexport default Image;\r\n","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { from, Device } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Wrapper = styled.div `\r\n margin: 25px 0px;\r\n`;\r\nconst Inner = styled.ul `\r\n grid-column: span 12;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: nowrap;\r\n margin-bottom: 0px;\r\n height: 16px;\r\n white-space: nowrap;\r\n\r\n li {\r\n position: relative;\r\n white-space: nowrap;\r\n\r\n &:after {\r\n content: '|';\r\n padding: 0px 5px;\r\n }\r\n\r\n &:last-child:after {\r\n display: none;\r\n }\r\n\r\n a {\r\n color: ${brand.grey.grey20};\r\n ${fonts.DaxPro.Regular};\r\n font-size: 14px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 16px;\r\n }\r\n }\r\n }\r\n`;\r\nexport const BreadcrumbsStyles = { Wrapper, Inner };\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","import { Cloudinary } from '@cloudinary/base';\r\nimport { format, quality } from '@cloudinary/base/actions/delivery';\r\nimport { fit } from '@cloudinary/base/actions/resize';\r\nimport { audioCodec } from '@cloudinary/base/actions/transcode';\r\nimport { auto as fAuto } from '@cloudinary/base/qualifiers/format';\r\nimport { auto as qAuto } from '@cloudinary/base/qualifiers/quality';\r\nconst cl = new Cloudinary({\r\n cloud: {\r\n cloudName: 'vp-groundforce',\r\n },\r\n url: {\r\n secure: true,\r\n },\r\n});\r\nexport function imageUrl(publicId, rawTransformation) {\r\n if (!publicId) {\r\n return '';\r\n }\r\n const image = cl.image(publicId);\r\n // Apply raw transformation.\r\n if (rawTransformation) {\r\n image.addTransformation(rawTransformation);\r\n }\r\n // Ensure we're specifying a format...\r\n if (containsFormatTransformation(rawTransformation)) {\r\n return image.toURL();\r\n }\r\n // ...otherwise serve with \"f_auto\" for WebP support.\r\n return image.delivery(format(fAuto())).delivery(quality(qAuto())).toURL();\r\n}\r\nexport function videoUrl(publicId, options = {}) {\r\n if (!publicId) {\r\n return '';\r\n }\r\n let video = cl.video(publicId);\r\n // Apply resize.\r\n if (options.aspectRatio || options.width) {\r\n let resize = fit();\r\n if (options.aspectRatio) {\r\n resize = resize.aspectRatio(options.aspectRatio);\r\n }\r\n if (options.width) {\r\n resize = resize.width(options.width);\r\n }\r\n video = video.resize(resize);\r\n }\r\n // Apply transcale (remove audio).\r\n if (options.audioCodec) {\r\n video = video.transcode(audioCodec(options.audioCodec));\r\n }\r\n // Apply format.\r\n if (options.format) {\r\n video = video.delivery(format(options.format));\r\n }\r\n return video.toURL();\r\n}\r\n// eslint-disable-next-line no-useless-escape\r\nconst FormatRegEx = /(\\/|\\,)(f_.*?)(\\/|\\,)/;\r\nfunction containsFormatTransformation(transformation) {\r\n return !!transformation && FormatRegEx.test(transformation);\r\n}\r\nexport function extractPublicId(url) {\r\n const publicId = url.split('/groundforce').pop();\r\n if (!publicId) {\r\n throw new Error('Failed to extract public ID from URL');\r\n }\r\n return `/groundforce${publicId}`;\r\n}\r\n","export var MediaType;\r\n(function (MediaType) {\r\n MediaType[MediaType[\"Image\"] = 0] = \"Image\";\r\n MediaType[MediaType[\"YouTube\"] = 1] = \"YouTube\";\r\n})(MediaType || (MediaType = {}));\r\nexport var HireViewType;\r\n(function (HireViewType) {\r\n HireViewType[HireViewType[\"ReadOnly\"] = 0] = \"ReadOnly\";\r\n HireViewType[HireViewType[\"Editable\"] = 1] = \"Editable\";\r\n})(HireViewType || (HireViewType = {}));\r\nexport var OrderStepProgress;\r\n(function (OrderStepProgress) {\r\n OrderStepProgress[OrderStepProgress[\"Inactive\"] = 0] = \"Inactive\";\r\n OrderStepProgress[OrderStepProgress[\"Complete\"] = 1] = \"Complete\";\r\n OrderStepProgress[OrderStepProgress[\"Current\"] = 2] = \"Current\";\r\n})(OrderStepProgress || (OrderStepProgress = {}));\r\nexport var HydrateOption;\r\n(function (HydrateOption) {\r\n HydrateOption[HydrateOption[\"Always\"] = 0] = \"Always\";\r\n HydrateOption[HydrateOption[\"InView\"] = 1] = \"InView\";\r\n HydrateOption[HydrateOption[\"Never\"] = 2] = \"Never\";\r\n})(HydrateOption || (HydrateOption = {}));\r\n"],"sourceRoot":""}