{"version":3,"sources":["webpack:///./node_modules/react-swipeable/dist/react-swipeable.umd.js","webpack:///./src/utils/order.js","webpack:///./src/components/InstagramSimpleImage.js","webpack:///./src/components/InstagramShowcase.js","webpack:///./src/components/product/ProductCategoryCards.js","webpack:///./src/components/home/Press.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./src/components/home/HeroContent.js","webpack:///./src/components/home/Introduction.js","webpack:///./src/templates/routes/index.js","webpack:///./src/utils/talkable.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.array.fill.js"],"names":["exports","React","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","defaultProps","delta","preventDefaultTouchmoveEvent","rotationAngle","trackMouse","trackTouch","initialState","first","initial","start","swiping","xy","rotateXYByAngle","pos","angle","angleInRadians","Math","PI","cos","sin","DOWN","LEFT","RIGHT","UP","useSwipeable","options","transientState","useRef","transientProps","current","_React$useMemo","useMemo","set","handlerProps","onStart","event","touches","state","props","document","addEventListener","onMove","onUp","_ref","clientX","clientY","concat","timeStamp","_ref2","_rotateXYByAngle","x","y","deltaX","deltaY","absX","abs","absY","time","velocity","sqrt","vxvy","dir","getDirection","eventData","onSwiping","cancelablePageSwipe","onSwiped","cancelable","preventDefault","onEnd","onSwipedDir","onTap","cleanUpMouse","removeEventListener","e","attachTouch","el","passive","cleanup","tls","forEach","_ref3","h","_ref4","output","ref","addState","cleanUpTouch","undefined","onMouseDown","getHandlers","stateSetter","handlers","updateTransientState","factory","orderArray","array","order","property","sort","a","b","aIndex","indexOf","bIndex","InstagramImageLink","styled","responsive","sm","ImageWrapper","div","md","lg","InstagramImage","render","image","className","href","aria-label","rel","fixed","loading","alt","description","style","userSelect","userDrag","pointerEvents","touchCallout","Component","OuterWrapper","section","noTopMargin","backgroundColor","StyledContainer","Container","CommunityArea","Anchor","FeedTitle","h2","Font","circular","Color","ritualBlue","rem","FeedSubtitle","dutch","media","tablet","SimpleImageContainer","InstagramShowcase","children","images","hrefLang","Text","id","defaultMessage","values","link","map","index","Wrapper","CategoryCardsContainer","p","scrollable","Slide","MagicLink","GridSlide","mobile","ImageContainer","ritualYellow","RibbonStyle","css","OrderedCardShortNames","ProductCategoryCards","categories","intl","cf","data","allContentfulProductCategory","nodes","orderedCategoryNodes","_getOrderedCategories","handleClick","name","metrics","track","title","location","nonInteraction","allCategoryNodes","renderSlides","slides","SlideComponent","slide","to","url","onClick","bind","fluid","img","altText","imgStyle","objectPosition","flag","contentStyle","white","bundleImage","bundleImages","discountData","getDiscountData","node","shortName","shopLandingReference","slug","cardImage","push","t","titleCopy","bleedLeft","bleedRight","ProductCategoryCardsQuery","query","componentQuery","PressWrapper","attrs","background","PressContainer","PressColumn","PressIcon","Press","quotes","quote","Icon","PressLogos","icon","ariaLabel","author","toObject","toAbsoluteIndex","toLength","module","value","O","argumentsLength","end","endPos","requireObjectCoercible","quot","string","tag","attribute","S","String","p1","replace","HeaderTitle","h1","notDesktop","ButtonsWrapper","ShopButtonWrapper","ShopButton","RitualButton","Buttons","shortTitle","BundleBuilderButtons","HeroContent","isBundleBuilderHero","componentDidMount","variation","setState","heroTitle","allContentfulHomePage","cleanHtml","childMarkdownRemark","html","buttons","dangerouslySetInnerHTML","__html","button","HeroContentComponentQuery","IntroContainer","IntroColumn","IntroHeader","IntroductionComponent","Row","introText","ValueProps","valueProps","formsLabels","icons","formsIcons","removePadding","IntroductionComponentQuery","ContentWrapper","CircleContainer","StyledRow","StyledMagicLink","ProductsLinks","text","NewRibbonWrapper","Ribbon","MagicLinkRow","navigate","marginLeft","Index","edges","pageTitle","pageDescription","socialImage","talkableHooksArray","seo","pagePath","file","width","details","height","updatePageData","label","_setNavColor","window","_talkableq","talkable","talkableHooks","talkableHook","console","log","subscribe","setupTalkableHooks","updateLayoutState","navColor","banner","trackCTAClick","contentfulData","clickableFeaturedData","Page","PageContent","featuredArea1","featuredArea1Image","featuredArea1BackgroundColor","featuredArea2","featuredArea2Image","featuredArea2BackgroundColor","featuredArea3","featuredArea3List","featuredArea3Image","featuredArea3BackgroundColor","pressQuotes","instagramImages","heroImage","heroImageMobile","heroBackgroundColor","PageHero","imageMobile","imageDesktop","indexId","align","markdown","list","Testimonials","paddingBottom","$","createHTML","proto","forced","forcedStringHTMLMethod","fails","METHOD_NAME","test","toLowerCase","split","fill","addToUnscopables"],"mappings":"kFAES,SAAUA,EAASC,GAC1B,SAASC,IAeP,OAdAA,EAAWC,OAAOC,QAAU,SAAUC,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAII,KAAOD,EACVN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAC/CL,EAAOK,GAAOD,EAAOC,IAK3B,OAAOL,IAGOS,MAAMC,KAAMR,WAG9B,IAIIS,EAAe,CACjBC,MAAO,GACPC,8BAA8B,EAC9BC,cAAe,EACfC,YAAY,EACZC,YAAY,GAEVC,EAAe,CACjBC,OAAO,EACPC,QAAS,CAAC,EAAG,GACbC,MAAO,EACPC,SAAS,EACTC,GAAI,CAAC,EAAG,IAsBV,SAASC,EAAgBC,EAAKC,GAC5B,GAAc,IAAVA,EAAa,OAAOD,EACxB,IAAIE,EAAiBC,KAAKC,GAAK,IAAMH,EAGrC,MAAO,CAFCD,EAAI,GAAKG,KAAKE,IAAIH,GAAkBF,EAAI,GAAKG,KAAKG,IAAIJ,GACtDF,EAAI,GAAKG,KAAKE,IAAIH,GAAkBF,EAAI,GAAKG,KAAKG,IAAIJ,IAuOhE/B,EAAQoC,KA9QG,OA+QXpC,EAAQqC,KAlRG,OAmRXrC,EAAQsC,MAlRI,QAmRZtC,EAAQuC,GAlRC,KAmRTvC,EAAQwC,aAxBR,SAAsBC,GACpB,IAAIrB,EAAaqB,EAAQrB,WACrBsB,EAAiBzC,EAAM0C,OAAOzC,EAAS,GAAIoB,IAC3CsB,EAAiB3C,EAAM0C,OAAOzC,EAAS,GAAIc,IAC/C4B,EAAeC,QAAU3C,EAAS,GAAIc,EAAcyB,GAEpD,IAAIK,EAAiB7C,EAAM8C,SAAQ,WACjC,OAtNJ,SAAqBC,EAAKC,GACxB,IAAIC,EAAU,SAAiBC,GAEzBA,GAAS,YAAaA,GAASA,EAAMC,QAAQ5C,OAAS,GAC1DwC,GAAI,SAAUK,EAAOC,GAEfA,EAAMlC,aACRmC,SAASC,iBAnCD,YAmC6BC,GACrCF,SAASC,iBAnCH,UAmC6BE,IAGrC,IAAIC,EAAO,YAAaR,EAAQA,EAAMC,QAAQ,GAAKD,EAI/CxB,EAAKC,EAAgB,CAHX+B,EAAKC,QACLD,EAAKE,SAE0BP,EAAMnC,eACnD,OAAOjB,EAAS,GAAImD,EAAO/B,EAAc,CACvCE,QAAS,GAAGsC,OAAOnC,GACnBA,GAAIA,EACJF,MAAO0B,EAAMY,WAAa,QAK5BN,EAAS,SAAgBN,GAC3BH,GAAI,SAAUK,EAAOC,GAGnB,GAAI,YAAaH,GAASA,EAAMC,QAAQ5C,OAAS,EAC/C,OAAO6C,EAGT,IAAIW,EAAQ,YAAab,EAAQA,EAAMC,QAAQ,GAAKD,EAIhDc,EAAmBrC,EAAgB,CAHzBoC,EAAMJ,QACNI,EAAMH,SAEuCP,EAAMnC,eAC7D+C,EAAID,EAAiB,GACrBE,EAAIF,EAAiB,GAErBG,EAASF,EAAIb,EAAM1B,GAAG,GACtB0C,EAASF,EAAId,EAAM1B,GAAG,GACtB2C,EAAOtC,KAAKuC,IAAIH,GAChBI,EAAOxC,KAAKuC,IAAIF,GAChBI,GAAQtB,EAAMY,WAAa,GAAKV,EAAM5B,MACtCiD,EAAW1C,KAAK2C,KAAKL,EAAOA,EAAOE,EAAOA,IAASC,GAAQ,GAC3DG,EAAO,CAACR,GAAUK,GAAQ,GAAIJ,GAAUI,GAAQ,IAEpD,GAAIH,EAAOhB,EAAMrC,OAASuD,EAAOlB,EAAMrC,QAAUoC,EAAM3B,QAAS,OAAO2B,EACvE,IAAIwB,EAvEV,SAAsBP,EAAME,EAAMJ,EAAQC,GACxC,OAAIC,EAAOE,EACLJ,EAAS,EAzBL,QADD,OA+BEC,EAAS,EA5BX,OADF,KA6FOS,CAAaR,EAAME,EAAMJ,EAAQC,GACvCU,EAAY,CACdT,KAAMA,EACNE,KAAMA,EACNJ,OAAQA,EACRC,OAAQA,EACRQ,IAAKA,EACL1B,MAAOA,EACP5B,MAAO8B,EAAM9B,MACbC,QAAS6B,EAAM7B,QACfkD,SAAUA,EACVE,KAAMA,GAERtB,EAAM0B,WAAa1B,EAAM0B,UAAUD,GAGnC,IAAIE,GAAsB,EAO1B,OALI3B,EAAM0B,WAAa1B,EAAM4B,UAAY,WAAaL,KAAOvB,KAC3D2B,GAAsB,GAGpBA,GAAuB3B,EAAMpC,8BAAgCoC,EAAMjC,YAAc8B,EAAMgC,YAAYhC,EAAMiC,iBACtGlF,EAAS,GAAImD,EAAO,CAEzB9B,OAAO,EACPwD,UAAWA,EACXrD,SAAS,QAKX2D,EAAQ,SAAelC,GACzBH,GAAI,SAAUK,EAAOC,GACnB,IAAIyB,EAEJ,GAAI1B,EAAM3B,SAAW2B,EAAM0B,UAAW,CACpCA,EAAY7E,EAAS,GAAImD,EAAM0B,UAAW,CACxC5B,MAAOA,IAETG,EAAM4B,UAAY5B,EAAM4B,SAASH,GACjC,IAAIO,EAAc,WAAaP,EAAUF,IAErCS,KAAehC,GACjBA,EAAMgC,GAAaP,QAGrBzB,EAAMiC,OAASjC,EAAMiC,MAAM,CACzBpC,MAAOA,IAIX,OAAOjD,EAAS,GAAImD,EAAO/B,EAAc,CACvCyD,UAAWA,QAKbS,EAAe,WAEjBjC,SAASkC,oBAzIG,YAyI4BhC,GACxCF,SAASkC,oBAzIC,UAyI4B/B,IAGpCA,EAAO,SAAcgC,GACvBF,IACAH,EAAMK,IAYJC,EAAc,SAAqBC,EAAIC,GACzC,IAAIC,EAAU,aAEd,GAAIF,GAAMA,EAAGpC,iBAAkB,CAE7B,IAAIuC,EAAM,CAAC,CA5JA,aA4Ja7C,GAAU,CA7JxB,YA6JoCO,GAAS,CA9J9C,WA8JyD4B,IAClEU,EAAIC,SAAQ,SAAUC,GACpB,IAAIP,EAAIO,EAAM,GACVC,EAAID,EAAM,GACd,OAAOL,EAAGpC,iBAAiBkC,EAAGQ,EAAG,CAC/BL,QAASA,OAIbC,EAAU,WACR,OAAOC,EAAIC,SAAQ,SAAUG,GAC3B,IAAIT,EAAIS,EAAM,GACVD,EAAIC,EAAM,GACd,OAAOP,EAAGH,oBAAoBC,EAAGQ,OAKvC,OAAOJ,GA8BLM,EAAS,CACXC,IA5BU,SAAeT,GAGd,OAAPA,GACJ5C,GAAI,SAAUK,EAAOC,GAEnB,GAAID,EAAMuC,KAAOA,EAAI,OAAOvC,EAC5B,IAAIiD,EAAW,GAaf,OAXIjD,EAAMuC,IAAMvC,EAAMuC,KAAOA,GAAMvC,EAAMkD,eACvClD,EAAMkD,eACND,EAASC,kBAAeC,GAItBlD,EAAMjC,YAAcuE,IACtBU,EAASC,aAAeZ,EAAYC,GAAKtC,EAAMpC,+BAI1ChB,EAAS,GAAImD,EAAO,CACzBuC,GAAIA,GACHU,QAaP,OAJIrD,EAAa7B,aACfgF,EAAOK,YAAcvD,GAGhB,CAACkD,EAAQT,GA0BPe,EAAY,SAAUC,GAC3B,OAAOjE,EAAeG,QAAU8D,EAAYjE,EAAeG,QAASD,EAAeC,WAClF,CACDzB,WAAYA,MAEb,CAACA,IACAwF,EAAW9D,EAAe,GAC1B6C,EAAc7C,EAAe,GAGjC,OADAJ,EAAeG,QAhCjB,SAA8BQ,EAAOC,EAAOqC,GAC1C,IAAIW,EAAW,GAYf,OAVKhD,EAAMjC,YAAcgC,EAAMkD,cAC7BlD,EAAMkD,eACND,EAASC,kBAAeC,GACflD,EAAMjC,aAAegC,EAAMkD,cAEhClD,EAAMuC,KACRU,EAASC,aAAeZ,EAAYtC,EAAMuC,IAAKtC,EAAMpC,+BAIlDhB,EAAS,GAAImD,EAAOiD,GAmBFO,CAAqBnE,EAAeG,QAASD,EAAeC,QAAS8C,GACvFiB,GAlSsDE,CAAQ9G,EAAS,EAAQ,U,uGCDnF,SAAS+G,EAAWC,EAAOC,EAAOC,GAIvC,OAFAF,EAAK,IAAOA,IAECG,MAAK,SAACC,EAAGC,GACpB,IAAMC,EAASL,EAAMM,QAAQH,EAAEF,IACzBM,EAASP,EAAMM,QAAQF,EAAEH,IAE/B,OAAII,EAAS,GAAKE,EAAS,EAAU,EACjCF,EAAS,EAAU,EACnBE,EAAS,GAAW,EAEjBF,EAASE,O,wvBCPpB,IAAMC,EAAqBC,IAAON,EAAV,+FAAGM,CAAH,kGAIpBC,IAAWC,GAJS,MAWlBC,EAAeH,IAAOI,IAAV,yFAAGJ,CAAH,wHASZC,IAAWC,GATC,KAcZD,IAAWI,GAdC,KAmBZJ,IAAWK,GAnBC,MA0BGC,E,YACnB,WAAY3E,GAAQ,OAClB,YAAMA,IADW,K,4BAInB4E,OAAA,WAAU,IACFC,EAAUpH,KAAKuC,MAAf6E,MAEN,OACE,kBAACV,EAAD,CACEW,UAAU,gBACVC,KAAK,oCACLhI,OAAO,QACPiI,aAAW,mBACXC,IAAI,uBAEJ,kBAACV,EAAD,KACE,kBAAC,IAAD,CACEO,UAAU,kBACVI,MAAOL,EAAMK,MACbC,QAAQ,QACRC,IAAKP,EAAMQ,YACXC,MAAO,CACLC,WAAY,OACZC,SAAU,OACVC,cAAe,OACfC,aAAc,a,GA1BgB/I,IAAMgJ,W,soBCnClD,IAAMC,EAAexB,IAAOyB,QAAV,kFAAGzB,CAAH,4EAGL,SAAApE,GAAK,OAAKA,EAAM8F,YAAc,WAAa,YAClC,SAAA9F,GAAK,OACvBA,EAAM+F,gBACF/F,EAAM+F,gBACN,8BAEJ1B,IAAWI,GATG,MAcZuB,EAAkB5B,YAAO6B,KAAV,qFAAG7B,CAAH,yGAUf8B,EAAgB9B,IAAOI,IAAV,mFAAGJ,CAAH,oCAKb+B,EAAS/B,IAAON,EAAV,4EAAGM,CAAH,4DAONgC,EAAYhC,IAAOiC,GAAV,+EAAGjC,CAAH,kIACXkC,IAAKC,SACEC,IAAMC,WAGFC,YAAI,IAGfrC,IAAWC,GARA,IASEoC,YAAI,KAEjBrC,IAAWI,GAXA,IAYEiC,YAAI,KAEjBrC,IAAWK,GAdA,IAeAgC,YAAI,MAIbC,EAAevC,IAAOI,IAAV,kFAAGJ,CAAH,mNACdkC,IAAKM,MACEJ,IAAMC,WAEFC,YAAI,IAEfG,IAAMC,OANQ,IAODJ,YAAI,IAEFA,YAAI,KAeHF,IAAMC,YAKpBM,EAAuB3C,IAAOI,IAAV,0FAAGJ,CAAH,yIAQtBC,IAAWC,GARW,MAcL0C,E,YACnB,WAAYhH,GAAQ,OAClB,YAAMA,IADW,K,4BAInB4E,OAAA,WAAU,IAAD,EACoDnH,KAAKuC,MAAxDiH,EADD,EACCA,SAAUC,EADX,EACWA,OAAQpB,EADnB,EACmBA,YAAaC,EADhC,EACgCA,gBAEvC,OACE,kBAACH,EAAD,CAAcG,gBAAiBA,EAAiBD,YAAaA,GAC3D,kBAACE,EAAD,KAAkBiB,GAClB,kBAAChB,EAAA,EAAD,KACE,kBAACC,EAAD,CAAepB,UAAU,OACvB,yBAAKA,UAAU,UACb,kBAACqB,EAAD,CACEpB,KAAK,mCACLoC,SAAS,YACTlC,IAAI,sBACJlI,OAAO,UAEP,kBAACqJ,EAAD,KACE,kBAACgB,EAAA,EAAD,CACEC,GAAG,uBACHC,eAAe,oBAGnB,kBAACX,EAAD,KACE,kBAACS,EAAA,EAAD,CACEC,GAAG,0BACHC,eAAe,kDACfC,OAAQ,CAAEC,KAAM,2CAItB,kBAACT,EAAD,KACGG,EAAOO,KAAI,SAAC5C,EAAO6C,GAClB,OAAO,kBAAC,EAAD,CAAsBtK,IAAKsK,EAAO7C,MAAOA,a,GApCnBlI,IAAMgJ,Y,i1DCrFrD,IAAMgC,EAAUvD,IAAOyB,QAAV,mFAAGzB,CAAH,MAEPwD,EAAyBxD,YAAO6B,KAAV,kGAAG7B,CAAH,sEAKb,SAAAyD,GAAC,OAAKA,EAAEC,WAAa,SAAW,SAE3CzD,IAAWC,GAPa,MAYtByD,EAAQ3D,YAAO4D,KAAV,iFAAG5D,CAAH,kUAaLkC,IAAKC,SACEC,IAAMC,WACFC,YAAI,IACFA,YAAI,IAQnBrC,IAAWC,GAxBJ,KA2CPD,IAAWI,GA3CJ,IAgDQiC,YAAI,IACFA,YAAI,KAKrBrC,IAAWK,GAtDJ,MA4DLuD,EAAY7D,YAAO2D,GAAV,qFAAG3D,CAAH,QACXyC,IAAMqB,OADK,MAiBTC,EAAiB/D,IAAOI,IAAV,0FAAGJ,CAAH,uJAMIoC,IAAM4B,aAW1B/D,IAAWC,GAjBK,KA0BhBD,IAAWI,GA1BK,KAmChBJ,IAAWK,GAnCK,MAwCd2D,EAAcC,YAAH,kIAGF5B,YAAI,GACFA,YAAI,IAQjBrC,IAAWI,GAZE,IAeAiC,YAAI,MAUf6B,EAAwB,CAC5B,yBACA,yBACA,0BAGWC,EAAb,YACE,WAAYxI,GAAQ,IAAD,EACjB,cAAMA,IAAN,KAEA,IAAMyI,EAAaC,IAAKC,GAAG3I,EAAM4I,KAAKC,6BAA6BC,OAHlD,OAIjB,EAAKC,qBAAuB,EAAKC,sBAAsBP,GAJtC,EADrB,oCAQEQ,YAAA,SAAYC,GACVC,IAAQC,MAAM,cAAe,CAC3BC,MAAOH,EACPI,SAAU,wBACVC,gBAAgB,KAZtB,EAgBEP,sBAAA,SAAsBQ,GACpB,OAAO/F,YAAW+F,EAAkBjB,EAAuB,kBAjB/D,EAoBEkB,aAAA,SAAaC,EAAQ5B,GAAa,IAAD,OACzB6B,EAAiB7B,EAAaC,EAAQE,EAE5C,OACE,oCACGyB,EAAOjC,KAAI,SAACmC,EAAO5M,GAClB,OACE,kBAAC2M,EAAD,CACEE,GAAID,EAAME,IACVC,QAAS,EAAKd,YAAYe,KAAK,EAAMJ,EAAMP,OAC3CjM,IAAKJ,GAEL,kBAACmL,EAAD,KACE,kBAAC,IAAD,CACE8B,MAAOL,EAAMM,IAAID,MACjB9E,QAAQ,QACRY,gBAAiBS,IAAM4B,aACvBhD,IAAKwE,EAAMO,QACX7E,MAAO,CACLC,WAAY,OACZC,SAAU,OACVC,cAAe,OACfC,aAAc,QAEhB0E,SAAU,CACRC,eAAgB,gBAGnBT,EAAMU,MACL,kBAAC,IAAD,CAAQC,aAAclC,EAAamC,OAAO,GACvCZ,EAAMU,OAIb,2BAAIV,EAAMP,aAtDxB,EA8DEzE,OAAA,WAAU,IAAD,EACyCnH,KAAKuC,MAA7C4I,EADD,EACCA,KAAM9D,EADP,EACOA,UADP,IACkBgD,kBADlB,SAGD2C,EAAc/B,IAAKC,GAAGC,EAAK8B,aAAa5B,OAAO,GAC/C6B,EAAeC,cAEflB,EAASjM,KAAKsL,qBAAqBtB,KAAI,SAAAoD,GAC3C,IAAMP,EAA0B,SAAnBO,EAAKC,UAAuB,MAAQ,GACjD,MAAO,CACLzB,MAAOwB,EAAKC,UACZhB,IAAI,IAAKe,EAAKE,qBAAqBC,KACnCb,QAAQ,QAASU,EAAKC,UACtBZ,IAAKW,EAAKI,UACVX,WAYJ,OARAZ,EAAOwB,KAAK,CACV7B,MAAOX,IAAKyC,EAAE,uCAAwC,WACtDrB,IAAK,gBACLK,QAAS,eACTD,IAAKO,EACLH,KAAMK,EAAaS,YAInB,kBAACzD,EAAD,CAAS7C,UAAWA,GAClB,kBAAC8C,EAAD,CAAwBE,WAAYA,GACjCA,GACC,kBAAC,IAAD,CAAoBuD,WAAW,EAAMC,YAAY,GAC9C7N,KAAKgM,aAAaC,EAAQ5B,KAG7BA,GAAc,oCAAGrK,KAAKgM,aAAaC,EAAQ5B,OA/FvD,GAA0CnL,IAAMgJ,WA6GjC4F,IAP0B,SAAAvL,GAAK,OAC5C,kBAAC,cAAD,CACEwL,MAAOC,EACP7G,OAAQ,SAAAgE,GAAI,OAAI,kBAACJ,EAAD,iBAA0BxI,EAA1B,CAAiC4I,KAAMA,SAM3D,IAAM6C,EAAc,a,wqBC7RpB,IAAMC,EAAetH,IAAOI,IAAImH,MAAM,CAAEtE,GAAI,UAA1B,0EAAGjD,CAAH,6CAEI,SAAAyD,GAAC,OAAKA,EAAE+D,WAAa/D,EAAE+D,WAAa,iBAGpDC,EAAiBzH,YAAO6B,KAAW0F,MAAM,CAC7CtE,GAAI,oBADc,4EAAGjD,CAAH,oDAOd4B,EAAkB5B,YAAO6B,KAAW0F,MAAM,CAC9CtE,GAAI,2BADe,6EAAGjD,CAAH,iKAef0H,EAAc1H,IAAOI,IAAImH,MAAM,CACnCtE,GAAI,6BACJvC,UAAW,gCAFI,yEAAGV,CAAH,8PAoBOoC,IAAMC,WAExBI,IAAMqB,OAtBK,KA4BbrB,IAAMC,OA5BO,KA8BVD,IAAMqB,OA9BI,MAsCX6D,EAAY3H,IAAOI,IAAImH,OAAM,SAAA9D,GAAC,MAAK,CACvCR,GAAG,mCAAoCQ,EAAEH,UAD5B,uEAAGtD,CAAH,iNAUXyC,IAAMqB,OAVK,KAcF1B,IAAMC,YAaEuF,E,0FACnBpH,OAAA,WAAU,IAAD,EACgCnH,KAAKuC,MAAtCiM,EADC,EACDA,OAAQhF,EADP,EACOA,SAAU2E,EADjB,EACiBA,WAExB,OACE,kBAACF,EAAD,CAAcE,WAAYA,GACxB,kBAACC,EAAD,KACE,kBAAC,IAAD,CAAKxE,GAAG,uBACN,kBAACyE,EAAD,KACGG,EAAOxE,KAAI,SAACyE,EAAOlP,GAClB,IAAImP,EAAOC,IAAWF,EAAMG,MAC5B,OAAIH,EAAM1E,KAEN,kBAACuE,EAAD,CAAWrE,MAAO1K,EAAGI,IAAKJ,GACxB,kBAAC,IAAD,CACEqK,GAAE,mCAAqCrK,EAArC,QACF8H,UAAS,gBAAkBoH,EAAMG,KACjCtH,KAAMmH,EAAM1E,KACZ8E,UAAWJ,EAAMK,OACjBtH,IAAI,uBAEJ,kBAACkH,EAAD,CACE9E,GAAE,mCAAqCrK,EAArC,gBAOV,kBAAC+O,EAAD,CAAWrE,MAAO1K,EAAGI,IAAKJ,GACxB,kBAACmP,EAAD,CACE9E,GAAE,mCAAqCrK,EAArC,qBAQhB,kBAACgJ,EAAD,KAAkBiB,K,GAvCStK,IAAMgJ,Y,kCCnGzC,IAAI6G,EAAW,EAAQ,QACnBC,EAAkB,EAAQ,QAC1BC,EAAW,EAAQ,QAIvBC,EAAOjQ,QAAU,SAAckQ,GAO7B,IANA,IAAIC,EAAIL,EAAS/O,MACbP,EAASwP,EAASG,EAAE3P,QACpB4P,EAAkB7P,UAAUC,OAC5BwK,EAAQ+E,EAAgBK,EAAkB,EAAI7P,UAAU,QAAKiG,EAAWhG,GACxE6P,EAAMD,EAAkB,EAAI7P,UAAU,QAAKiG,EAC3C8J,OAAiB9J,IAAR6J,EAAoB7P,EAASuP,EAAgBM,EAAK7P,GACxD8P,EAAStF,GAAOmF,EAAEnF,KAAWkF,EACpC,OAAOC,I,qBCfT,IAAII,EAAyB,EAAQ,QAEjCC,EAAO,KAIXP,EAAOjQ,QAAU,SAAUyQ,EAAQC,EAAKC,EAAWT,GACjD,IAAIU,EAAIC,OAAON,EAAuBE,IAClCK,EAAK,IAAMJ,EAEf,MADkB,KAAdC,IAAkBG,GAAM,IAAMH,EAAY,KAAOE,OAAOX,GAAOa,QAAQP,EAAM,UAAY,KACtFM,EAAK,IAAMF,EAAI,KAAOF,EAAM,M,mpDCMrC,IAiBMzF,EAAUvD,IAAOI,IAAV,uEAAGJ,CAAH,0GASPsJ,EAActJ,IAAOuJ,GAAV,2EAAGvJ,CAAH,qRACbkC,IAAKC,SAEMG,YAAI,IACFA,YAAI,IAEVF,IAAMC,WAKXH,IAAKM,MAOPC,IAAM+G,WAlBO,IAmBAlH,YAAI,KAIjBG,IAAMqB,OAvBO,IAwBAxB,YAAI,IAEFA,YAAI,KAKNA,YAAI,IAEFA,YAAI,IAKnBrC,IAAWI,GAtCE,MA2CXoJ,EAAiBzJ,IAAOI,IAAV,8EAAGJ,CAAH,mBAId0J,EAAoB1J,IAAOI,IAAV,iFAAGJ,CAAH,yDAOnBC,IAAWC,GAPQ,MAYjByJ,EAAa3J,YAAO4J,KAAV,0EAAG5J,CAAH,iBAIV6J,EAAU,CACd,CACE5E,MAAOX,IAAKyC,EAAE,eAAgB,YAC9B+C,WAAYxF,IAAKyC,EAAE,eAAgB,YACnCtB,GAAI,mBAIFsE,EAAuB,CAC3B,CACE9E,MAAOX,IAAKyC,EAAE,oBAAqB,0BACnC+C,WAAYxF,IAAKyC,EAAE,oBAAqB,0BACxCtB,GAAI,oBAIKuE,EAAb,YACE,aAAe,IAAD,SACZ,sBAEKrO,MAAQ,CACXsO,qBAAqB,GAJX,EADhB,oCASEC,kBAAA,WACE,IAAMD,EAAsBE,YAAU,uBAEtC9Q,KAAK+Q,SAAS,CACZH,yBAbN,EAiBEpF,YAAA,SAAYI,GACVF,IAAQC,MAAM,cAAe,CAC3BE,SAAU,OACVD,QACAE,gBAAgB,KArBtB,EAyBE3E,OAAA,WAAU,IAAD,OACC6J,EAAc/F,IAAKC,GACzBlL,KAAKuC,MAAM4I,KAAK8F,sBAAsB5F,OACtC,GAFM2F,UAIAJ,EAAwB5Q,KAAKsC,MAA7BsO,oBAEFM,EAAYF,EAAUG,oBAAoBC,KAC7CpB,QAAQ,MAAO,IACfA,QAAQ,OAAQ,IAEbqB,EAAUT,EAAsBF,EAAuBF,EAE7D,OACE,kBAACtG,EAAD,KACE,kBAAC+F,EAAD,CACEqB,wBAAyB,CACvBC,OAAQL,KAKZ,kBAACd,EAAD,KACGiB,EAAQrH,KAAI,SAACwH,EAAQvH,GAAT,OACX,kBAACoG,EAAD,CAAmB1Q,IAAKsK,EAAO5C,UAAU,qBACvC,kBAACiJ,EAAD,CACElE,GAAIoF,EAAOpF,GACXE,QAAS,EAAKd,YAAYe,KAAK,EAAMiF,EAAOf,YAC5C7E,MAAO4F,EAAOf,WACdpJ,UAAU,mBAETmK,EAAOf,iBAOhB,kBAACL,EAAD,KACGiB,EAAQrH,KAAI,SAACwH,EAAQvH,GAAT,OACX,kBAACoG,EAAD,CAAmB1Q,IAAKsK,EAAO5C,UAAU,qBACvC,kBAACiJ,EAAD,CACElE,GAAIoF,EAAOpF,GACXE,QAAS,EAAKd,YAAYe,KAAK,EAAMiF,EAAO5F,OAC5CA,MAAO4F,EAAO5F,MACdvE,UAAU,aAETmK,EAAO5F,cAxExB,GAAiC1M,IAAMgJ,WAyFxBuJ,EAP0B,SAAAlP,GAAK,OAC5C,kBAAC,cAAD,CACEwL,MA7LgB,aA8LhB5G,OAAQ,SAAAgE,GAAI,OAAI,kBAAC,EAAD,iBAAiB5I,EAAjB,CAAwB4I,KAAMA,S,ueCnMlD,IAiBMuG,EAAiB/K,YAAO6B,KAAW0F,MAAM,CAC7CtE,GAAI,2BADc,mFAAGjD,CAAH,gFAQhByC,IAAMqB,OARU,KAYhB7D,IAAWC,GAZK,KAiBhBD,IAAWI,GAjBK,MAuBd2K,EAAchL,IAAOI,IAAImH,MAAM,CACnCtE,GAAI,oDACJvC,UAAW,sDAFI,gFAAGV,CAAH,qDASXiL,EAAcjL,IAAOiC,GAAGsF,MAAM,CAClCtE,GAAI,4DADW,gFAAGjD,CAAH,qIAMFsC,YAAI,IACFA,YAAI,IAIjBG,IAAMqB,OAXO,MAgBJoH,EAAqB,0FAChC1K,OAAA,WACE,IAAMgE,EAAOF,IAAKC,GAAGlL,KAAKuC,MAAM4I,KAAK8F,sBAAsB5F,OAAO,GAElE,OACE,kBAACqG,EAAD,KACE,kBAACI,EAAA,EAAD,CAAKlI,GAAG,8BACN,kBAAC+H,EAAD,KACE,kBAACC,EAAD,CACEN,wBAAyB,CACvBC,OAAQpG,EAAK4G,UAAUZ,oBAAoBC,KACxCpB,QAAQ,MAAO,IACfA,QAAQ,OAAQ,QAIzB,kBAACgC,EAAA,EAAD,CACEC,WAAY9G,EAAK+G,YACjBC,MAAOhH,EAAKiH,WACZ/K,UAAU,6CACVgL,eAAe,OApBO,GAA8BnT,IAAMgJ,WAmCvDoK,EAP2B,SAAA/P,GAAK,OAC7C,kBAAC,cAAD,CACEwL,MA/FgB,aAgGhB5G,OAAQ,SAAAgE,GAAI,OAAI,kBAAC0G,EAAD,iBAA2BtP,EAA3B,CAAkC4I,KAAMA,S,qKCpE5D,IAAMoH,GAAiB5L,IAAOI,IAAV,4EAAGJ,CAAH,wCAKd6L,GAAkB7L,IAAOI,IAAImH,MAAM,CACvC7G,UAAW,cADQ,6EAAGV,CAAH,yEAQf8L,GAAY9L,IAAOI,IAAV,uEAAGJ,CAAH,yFAUT+L,GAAkB/L,YAAO4D,KAAV,6EAAG5D,CAAH,mCAIfgM,GAAgB,CACpB,CACE5I,KAAM,6CACN6I,KAAM,6BACNhE,MAAM,GAER,CACE7E,KAAM,4CACN6I,KAAM,4BACNhE,MAAM,GAER,CACE7E,KAAM,2CACN6I,KAAM,2BACNhE,MAAM,GAER,CACE7E,KAAM,4CACN6I,KAAM,2BACNhE,MAAM,EACN/B,MAAM,IAIJgG,GAAmBlM,YAAOmM,KAAV,8EAAGnM,CAAH,uBAIhBsH,GAAetH,IAAOI,IAAV,0EAAGJ,CAAH,0CAGdC,IAAWI,GAHG,OAQlB,SAAS+L,GAAT,GAA6D,IAArChJ,EAAoC,EAApCA,KAAM6I,EAA8B,EAA9BA,KAAMhE,EAAwB,EAAxBA,KAAMoE,EAAkB,EAAlBA,SAAUnG,EAAQ,EAARA,KAClD,OACE,kBAAC4F,GAAD,KACE,kBAACC,GAAD,CAAiBrL,UAAU,aAAa+E,GAAIrC,GACzC6I,GAEF/F,GAAQ,kBAACgG,GAAD,YACRjE,GACC,kBAAC,IAAD,CACEtC,QAAS,kBAAM0G,EAASjJ,IACxBlC,MAAO,CAAEoL,WAAY,W,IAOVC,G,YACnB,WAAY3Q,GAAQ,IAAD,EACjB,cAAMA,IAAN,KADiB,MAMbA,EAAM4I,KAAK8F,sBAAsBkC,MAAM,GAAG/F,KAH5CgG,EAHe,EAGfA,UACAC,EAJe,EAIfA,gBACAC,EALe,EAKfA,YALe,OAOjB,EAAKhR,MAAQ,CACXiR,mBAAoB,CAClB,gBACA,kBACA,sBACA,sBACA,eACA,mBAEFC,IAAK,CACHC,SAAU,GACV7H,MAAOwH,EACPxL,YAAayL,EACbjM,MAAO,CACLiF,IAAKiH,EAAYI,KAAKrH,IACtBsH,MAAOL,EAAYI,KAAKE,QAAQxM,MAAMuM,MACtCE,OAAQP,EAAYI,KAAKE,QAAQxM,MAAMyM,UAvB5B,E,oCA6BnBhD,kBAAA,WACE7Q,KAAKuC,MAAMuR,eAAe,CACxBC,MAAO,SAGT/T,KAAKgU,eAELC,OAAOC,WAAWzG,KAAK,CAAC,qBAAsB,UACK,IAApBwG,OAAOE,UC3JnC,SAA4BC,GACjC,IADiD,IACjD,EADgD,iBACvCC,EADuC,QAE9CC,QAAQC,IAAI,wBAAyBF,GACrCJ,OAAOE,SAASK,UAAUH,EAAc,kBAAkB,WACxDC,QAAQC,IAAI,wBAAyBF,GACrC3I,IAAQC,MAAM,kBAAmB,CAC/BF,KAAM4I,QALZ,IAAyBD,KAAzB,aAAyC,ID6JrCK,CAAmBzU,KAAKsC,MAAMiR,qB,EAIlCS,aAAA,WACEhU,KAAKuC,MAAMmS,kBAAkB,CAC3BC,SAAU,UACVC,QAAQ,K,EAIZC,cAAA,SAAcjJ,EAAOC,EAAUQ,EAAK1H,GAClCA,EAAEN,iBACFqH,IAAQC,MAAM,cAAe,CAC3BC,MAAOA,EACPE,gBAAgB,EAChBD,SAAUA,IAEZmH,mBAAS3G,I,EAGXlF,OAAA,WAAU,IACAqM,EAAQxT,KAAKsC,MAAbkR,IACAR,EAAahT,KAAKuC,MAAlByQ,SACF8B,EAAiB9U,KAAKuC,MAAM4I,KAC5B4J,EAAwBpC,GAE9B,OACE,oCACE,kBAACqC,EAAA,EAAYxB,GACb,kBAACyB,GAAD,CACEH,eAAgBA,EAChB9B,SAAUA,EACV+B,sBAAuBA,M,GA1EE7V,IAAMgJ,WAiFzC,SAAS+M,GAAT,GAA2E,IAApDH,EAAmD,EAAnDA,eAAgB9B,EAAmC,EAAnCA,SAAU+B,EAAyB,EAAzBA,sBAAyB,EAiBpED,EAAe7D,sBAAsBkC,MAAM,GAAG/F,KAfhD8H,EAFsE,EAEtEA,cACAC,EAHsE,EAGtEA,mBACAC,EAJsE,EAItEA,6BACAC,EALsE,EAKtEA,cACAC,EANsE,EAMtEA,mBACAC,EAPsE,EAOtEA,6BACAC,EARsE,EAQtEA,cACAC,EATsE,EAStEA,kBACAC,EAVsE,EAUtEA,mBACAC,EAXsE,EAWtEA,6BACAC,EAZsE,EAYtEA,YACAC,EAbsE,EAatEA,gBACAC,EAdsE,EActEA,UACAC,EAfsE,EAetEA,gBACAC,EAhBsE,EAgBtEA,oBAGF,OACE,oCACE,kBAACC,EAAA,EAAD,CACE3N,gBAAiB0N,EACjBE,YAAaH,EACbI,aAAcL,GAEd,kBAAC,EAAD,OAEF,kBAAC/K,GAAA,EAAD,CACE1D,UAAU,6BACVgD,YAAY,IAEd,kBAACkI,GAAD,KACE,kBAAC,EAAD,MACA,kBAACC,GAAD,KACE,kBAAC,IAAD,CAAWnL,UAAU,iBACrB,kBAAC,IAAD,CACE+O,QAAQ,IACRC,MAAM,QACNjP,MAAO+N,EACPhH,WAAYiH,EACZkB,SAAUpB,EAAc/D,oBAAoBC,MAE3C2D,EAAsB/K,KAAI,SAACrK,EAAKsK,GAC/B,OACE,kBAAC8I,GAAD,CACEC,SAAUA,EACVrT,IAAKsK,EACLF,KAAMpK,EAAIoK,KACV6I,KAAMjT,EAAIiT,KACVhE,KAAMjP,EAAIiP,KACV/B,KAAMlN,EAAIkN,YAMpB,kBAAC,IAAD,CACEwJ,MAAM,OACND,QAAQ,IACRhP,MAAOkO,EACPnH,WAAYoH,EACZe,SAAUjB,EAAclE,oBAAoBC,MAE5C,kBAAC7G,EAAA,EAAD,CAAWlD,UAAU,aAAa+E,GAAG,aACnC,kBAACzC,GAAA,EAAD,CAAMC,GAAG,qBAAqBC,eAAe,gBAE/C,kBAACU,EAAA,EAAD,CAAWlD,UAAU,aAAa+E,GAAG,gBACnC,kBAACzC,GAAA,EAAD,CACEC,GAAG,6BACHC,eAAe,0BAGnB,kBAACU,EAAA,EAAD,CAAWlD,UAAU,aAAa+E,GAAG,mBACnC,kBAACzC,GAAA,EAAD,CACEC,GAAG,2BACHC,eAAe,yBAIrB,kBAAC,IAAD,CACEuM,QAAQ,IACRG,KAAMd,EACNtD,MAAO,CAAC,UAAW,YAAa,SAAU,cAC1CkE,MAAM,QACNjP,MAAOsO,EACPvH,WAAYwH,EACZW,SAAUd,EAAcrE,oBAAoBC,OAE9C,kBAACoF,EAAA,EAAD,CAAcC,cAAe,IAC7B,kBAACxI,GAAD,KACE,kBAACM,EAAA,EAAD,CAAOC,OAAQoH,GACb,kBAAC,IAAD,CAAWvO,UAAW,6BAI5B,kBAACkC,EAAA,EAAD,CAAmBE,OAAQoM,EAAiBvN,gBAAiBS,IAAMgE,OACjE,kBAAC,IAAD,CAAW1F,UAAW,kB,kCExS9B,IAAIqP,EAAI,EAAQ,QACZC,EAAa,EAAQ,QAKzBD,EAAE,CAAEpX,OAAQ,SAAUsX,OAAO,EAAMC,OAJN,EAAQ,OAIMC,CAAuB,SAAW,CAC3E/M,KAAM,SAAcsC,GAClB,OAAOsK,EAAW3W,KAAM,IAAK,OAAQqM,O,qBCTzC,IAAI0K,EAAQ,EAAQ,QAIpB7H,EAAOjQ,QAAU,SAAU+X,GACzB,OAAOD,GAAM,WACX,IAAIE,EAAO,GAAGD,GAAa,KAC3B,OAAOC,IAASA,EAAKC,eAAiBD,EAAKE,MAAM,KAAK1X,OAAS,O,kCCNnE,IAAIiX,EAAI,EAAQ,QACZC,EAAa,EAAQ,QAKzBD,EAAE,CAAEpX,OAAQ,SAAUsX,OAAO,EAAMC,OAJN,EAAQ,OAIMC,CAAuB,UAAY,CAC5ErP,MAAO,WACL,OAAOkP,EAAW3W,KAAM,KAAM,GAAI,Q,qBCTtC,IAAI0W,EAAI,EAAQ,QACZU,EAAO,EAAQ,QACfC,EAAmB,EAAQ,QAI/BX,EAAE,CAAEpX,OAAQ,QAASsX,OAAO,GAAQ,CAClCQ,KAAMA,IAIRC,EAAiB","file":"component---src-templates-routes-index-js-5f7f10bbfbcba16080d0.js","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : (global = global || self, factory(global.swipeable = {}, global.react));\n})(this, function (exports, React) {\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n var LEFT = \"Left\";\n var RIGHT = \"Right\";\n var UP = \"Up\";\n var DOWN = \"Down\";\n var defaultProps = {\n delta: 10,\n preventDefaultTouchmoveEvent: false,\n rotationAngle: 0,\n trackMouse: false,\n trackTouch: true\n };\n var initialState = {\n first: true,\n initial: [0, 0],\n start: 0,\n swiping: false,\n xy: [0, 0]\n };\n var mouseMove = \"mousemove\";\n var mouseUp = \"mouseup\";\n var touchEnd = \"touchend\";\n var touchMove = \"touchmove\";\n var touchStart = \"touchstart\";\n\n function getDirection(absX, absY, deltaX, deltaY) {\n if (absX > absY) {\n if (deltaX > 0) {\n return RIGHT;\n }\n\n return LEFT;\n } else if (deltaY > 0) {\n return DOWN;\n }\n\n return UP;\n }\n\n function rotateXYByAngle(pos, angle) {\n if (angle === 0) return pos;\n var angleInRadians = Math.PI / 180 * angle;\n var x = pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n var y = pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n return [x, y];\n }\n\n function getHandlers(set, handlerProps) {\n var onStart = function onStart(event) {\n // if more than a single touch don't track, for now...\n if (event && \"touches\" in event && event.touches.length > 1) return;\n set(function (state, props) {\n // setup mouse listeners on document to track swipe since swipe can leave container\n if (props.trackMouse) {\n document.addEventListener(mouseMove, onMove);\n document.addEventListener(mouseUp, onUp);\n }\n\n var _ref = \"touches\" in event ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n var xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n return _extends({}, state, initialState, {\n initial: [].concat(xy),\n xy: xy,\n start: event.timeStamp || 0\n });\n });\n };\n\n var onMove = function onMove(event) {\n set(function (state, props) {\n // Discount a swipe if additional touches are present after\n // a swipe has started.\n if (\"touches\" in event && event.touches.length > 1) {\n return state;\n }\n\n var _ref2 = \"touches\" in event ? event.touches[0] : event,\n clientX = _ref2.clientX,\n clientY = _ref2.clientY;\n\n var _rotateXYByAngle = rotateXYByAngle([clientX, clientY], props.rotationAngle),\n x = _rotateXYByAngle[0],\n y = _rotateXYByAngle[1];\n\n var deltaX = x - state.xy[0];\n var deltaY = y - state.xy[1];\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n var time = (event.timeStamp || 0) - state.start;\n var velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1);\n var vxvy = [deltaX / (time || 1), deltaY / (time || 1)]; // if swipe is under delta and we have not started to track a swipe: skip update\n\n if (absX < props.delta && absY < props.delta && !state.swiping) return state;\n var dir = getDirection(absX, absY, deltaX, deltaY);\n var eventData = {\n absX: absX,\n absY: absY,\n deltaX: deltaX,\n deltaY: deltaY,\n dir: dir,\n event: event,\n first: state.first,\n initial: state.initial,\n velocity: velocity,\n vxvy: vxvy\n };\n props.onSwiping && props.onSwiping(eventData); // track if a swipe is cancelable(handler for swiping or swiped(dir) exists)\n // so we can call preventDefault if needed\n\n var cancelablePageSwipe = false;\n\n if (props.onSwiping || props.onSwiped || \"onSwiped\" + dir in props) {\n cancelablePageSwipe = true;\n }\n\n if (cancelablePageSwipe && props.preventDefaultTouchmoveEvent && props.trackTouch && event.cancelable) event.preventDefault();\n return _extends({}, state, {\n // first is now always false\n first: false,\n eventData: eventData,\n swiping: true\n });\n });\n };\n\n var onEnd = function onEnd(event) {\n set(function (state, props) {\n var eventData;\n\n if (state.swiping && state.eventData) {\n eventData = _extends({}, state.eventData, {\n event: event\n });\n props.onSwiped && props.onSwiped(eventData);\n var onSwipedDir = \"onSwiped\" + eventData.dir;\n\n if (onSwipedDir in props) {\n props[onSwipedDir](eventData);\n }\n } else {\n props.onTap && props.onTap({\n event: event\n });\n }\n\n return _extends({}, state, initialState, {\n eventData: eventData\n });\n });\n };\n\n var cleanUpMouse = function cleanUpMouse() {\n // safe to just call removeEventListener\n document.removeEventListener(mouseMove, onMove);\n document.removeEventListener(mouseUp, onUp);\n };\n\n var onUp = function onUp(e) {\n cleanUpMouse();\n onEnd(e);\n };\n /**\r\n * Switch of \"passive\" property for now.\r\n * When `preventDefaultTouchmoveEvent` is:\r\n * - true => { passive: false }\r\n * - false => { passive: true }\r\n *\r\n * Could take entire `addEventListener` options object as a param later?\r\n */\n\n\n var attachTouch = function attachTouch(el, passive) {\n var cleanup = function cleanup() {};\n\n if (el && el.addEventListener) {\n // attach touch event listeners and handlers\n var tls = [[touchStart, onStart], [touchMove, onMove], [touchEnd, onEnd]];\n tls.forEach(function (_ref3) {\n var e = _ref3[0],\n h = _ref3[1];\n return el.addEventListener(e, h, {\n passive: passive\n });\n }); // return properly scoped cleanup method for removing listeners, options not required\n\n cleanup = function cleanup() {\n return tls.forEach(function (_ref4) {\n var e = _ref4[0],\n h = _ref4[1];\n return el.removeEventListener(e, h);\n });\n };\n }\n\n return cleanup;\n };\n\n var onRef = function onRef(el) {\n // \"inline\" ref functions are called twice on render, once with null then again with DOM element\n // ignore null here\n if (el === null) return;\n set(function (state, props) {\n // if the same DOM el as previous just return state\n if (state.el === el) return state;\n var addState = {}; // if new DOM el clean up old DOM and reset cleanUpTouch\n\n if (state.el && state.el !== el && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = undefined;\n } // only attach if we want to track touch\n\n\n if (props.trackTouch && el) {\n addState.cleanUpTouch = attachTouch(el, !props.preventDefaultTouchmoveEvent);\n } // store event attached DOM el for comparison, clean up, and re-attachment\n\n\n return _extends({}, state, {\n el: el\n }, addState);\n });\n }; // set ref callback to attach touch event listeners\n\n\n var output = {\n ref: onRef\n }; // if track mouse attach mouse down listener\n\n if (handlerProps.trackMouse) {\n output.onMouseDown = onStart;\n }\n\n return [output, attachTouch];\n }\n\n function updateTransientState(state, props, attachTouch) {\n var addState = {}; // clean up touch handlers if no longer tracking touches\n\n if (!props.trackTouch && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = undefined;\n } else if (props.trackTouch && !state.cleanUpTouch) {\n // attach/re-attach touch handlers\n if (state.el) {\n addState.cleanUpTouch = attachTouch(state.el, !props.preventDefaultTouchmoveEvent);\n }\n }\n\n return _extends({}, state, addState);\n }\n\n function useSwipeable(options) {\n var trackMouse = options.trackMouse;\n var transientState = React.useRef(_extends({}, initialState));\n var transientProps = React.useRef(_extends({}, defaultProps));\n transientProps.current = _extends({}, defaultProps, options);\n\n var _React$useMemo = React.useMemo(function () {\n return getHandlers(function (stateSetter) {\n return transientState.current = stateSetter(transientState.current, transientProps.current);\n }, {\n trackMouse: trackMouse\n });\n }, [trackMouse]),\n handlers = _React$useMemo[0],\n attachTouch = _React$useMemo[1];\n\n transientState.current = updateTransientState(transientState.current, transientProps.current, attachTouch);\n return handlers;\n }\n\n exports.DOWN = DOWN;\n exports.LEFT = LEFT;\n exports.RIGHT = RIGHT;\n exports.UP = UP;\n exports.useSwipeable = useSwipeable;\n});","export function orderArray(array, order, property) {\n // Make a copy to ensure we're not modifying the original data.\n array = [...array];\n\n return array.sort((a, b) => {\n const aIndex = order.indexOf(a[property]);\n const bIndex = order.indexOf(b[property]);\n\n if (aIndex < 0 && bIndex < 0) return 0;\n if (aIndex < 0) return 1;\n if (bIndex < 0) return -1;\n\n return aIndex - bIndex;\n });\n}\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { responsive } from \"../utils/style\";\nimport Img from \"gatsby-image\";\n\nconst InstagramImageLink = styled.a`\n width: calc(50vw - 30px) !important;\n height: calc(50vw - 30px) !important;\n margin-bottom: 20px;\n ${responsive.sm`\n width: calc(25% - 20px ) !important;\n height: calc(25% - 20px )!important;\n margin-bottom: 0;\n `}\n`;\n\nconst ImageWrapper = styled.div`\n width: 100%;\n height: 100%;\n position: relative;\n\n .instagram-image {\n width: 100% !important;\n height: 100% !important;\n\n ${responsive.sm`\n width: 160px !important;\n height: 160px !important;\n `}\n\n ${responsive.md`\n width: 213px !important;\n height: 213px !important;\n `}\n\n ${responsive.lg`\n width: 270px !important;\n height: 270px !important;\n `}\n }\n`;\n\nexport default class InstagramImage extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n let { image } = this.props;\n\n return (\n \n \n \n \n \n );\n }\n}\n","import React from \"react\";\nimport InstagramSimpleImage from \"./InstagramSimpleImage\";\nimport Container from \"./Container\";\nimport Text from \"./Text\";\nimport { Color, rem, media, Font, responsive } from \"../utils/style\";\nimport styled from \"styled-components\";\n\nconst OuterWrapper = styled.section`\n position: relative;\n overflow: hidden;\n padding: ${props => (props.noTopMargin ? \"0 0 80px\" : \"80px 0\")};\n background-color: ${props =>\n props.backgroundColor\n ? props.backgroundColor\n : \"rgba(242, 241, 245, 0.56)\"};\n\n ${responsive.md`\n padding: 120px 0;\n `}\n`;\n\nconst StyledContainer = styled(Container)`\n overflow: visible !important;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 0 !important;\n margin: 0 !important;\n`;\n\nconst CommunityArea = styled.div`\n position: relative;\n z-index: 100;\n`;\n\nconst Anchor = styled.a`\n display: block;\n width: 100%;\n margin: 0 auto;\n padding: 0 20px;\n`;\n\nconst FeedTitle = styled.h2`\n ${Font.circular}\n color: ${Color.ritualBlue};\n text-align: center !important;\n margin-bottom: 24px;\n font-size: ${rem(24)};\n font-weight: 500;\n letter-spacing: -1.4px;\n ${responsive.sm`\n font-size: ${rem(30)};\n `}\n ${responsive.md`\n font-size: ${rem(48)};\n `}\n ${responsive.lg`\n font-size: ${rem(40)};\n`}\n`;\n\nconst FeedSubtitle = styled.div`\n ${Font.dutch}\n color: ${Color.ritualBlue};\n margin-bottom: 56px;\n font-size: ${rem(18)};\n text-align: center;\n ${media.tablet`\n font-size: ${rem(16)};\n letter-spacing: -0.4px;\n line-height: ${rem(26)};\n margin-bottom: 40px;\n `}\n\n u {\n position: relative;\n text-decoration: none;\n\n &::after {\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n bottom: -3px;\n background: ${Color.ritualBlue};\n }\n }\n`;\n\nconst SimpleImageContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-left: 5px;\n margin-right: 5px;\n ${responsive.sm`\n margin-left: -15px;\n margin-right: -15px;\n `}\n`;\n\nexport default class InstagramShowcase extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const { children, images, noTopMargin, backgroundColor } = this.props;\n\n return (\n \n {children}\n \n \n
\n \n \n \n \n \n @Ritual }}\n />\n \n \n \n {images.map((image, index) => {\n return ;\n })}\n \n
\n
\n
\n
\n );\n }\n}\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { graphql, StaticQuery } from \"gatsby\";\n\n// Services\nimport intl from \"../../services/intl\";\n\n// Utils\nimport { Font, Color, media, rem, responsive } from \"../../utils/style\";\nimport metrics from \"../../utils/metrics\";\nimport { getDiscountData } from \"../../utils/bundle\";\nimport { orderArray } from \"../../utils/order\";\n\n// Components\nimport Container from \"../Container\";\nimport Img from \"gatsby-image\";\nimport Ribbon from \"../global/Ribbon\";\nimport ScrollableOverflow from \"../ScrollableOverflow\";\nimport MagicLink from \"../MagicLink\";\n\nconst Wrapper = styled.section``;\n\nconst CategoryCardsContainer = styled(Container)`\n padding: 0 20px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: ${p => (p.scrollable ? \"nowrap\" : \"wrap\")};\n\n ${responsive.sm`\n padding: 0px;\n `}\n`;\n\nconst Slide = styled(MagicLink)`\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n width: calc(100vw * (84/320));\n margin-right: calc(100vw * (8/320));\n background-color: rgba(242, 241, 245, 0.56);\n\n :last-of-type {\n margin-right: 0;\n }\n\n p {\n ${Font.circular};\n color: ${Color.ritualBlue};\n font-size: ${rem(14)};\n line-height: ${rem(20)};\n font-weight: 300;\n letter-spacing: 0px;\n text-align: center;\n margin: 0;\n padding: 6px 0;\n }\n\n ${responsive.sm`\n width: 160px;\n margin-right: 20px;\n\n p:before {\n content: \"Shop \";\n }\n\n img {\n transition: transform 0.2s ease-in !important;\n }\n\n &:hover {\n img {\n transform: scale(1.1);\n }\n }\n `}\n\n ${responsive.md`\n width: 214px;\n margin-right: 26px;\n\n p {\n font-size: ${rem(18)};\n line-height: ${rem(24)};\n padding: 12px 0;\n }\n `}\n\n ${responsive.lg`\n width: 270px;\n margin-right: 30px;\n `}\n`;\n\nconst GridSlide = styled(Slide)`\n ${media.mobile`\n width: calc(50% - 7px);\n margin-right: 14px;\n margin-bottom: 16px;\n\n &:nth-of-type(2n) {\n margin-right: 0;\n }\n\n &:nth-last-of-type(2):nth-of-type(odd),\n &:last-of-type {\n margin-bottom: 0;\n }\n `}\n`;\n\nconst ImageContainer = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n\n img {\n background-color: ${Color.ritualYellow};\n height: 52px;\n }\n\n span {\n position: absolute;\n bottom: 4px;\n left: 4px;\n }\n\n\n ${responsive.sm`\n height: 82px;\n\n span {\n bottom: 8px;\n left: 8px;\n }\n `}\n\n ${responsive.md`\n height: 110px;\n\n span {\n bottom: 12px;\n left: 12px;\n }\n `}\n\n ${responsive.lg`\n height: 140px;\n `}\n`;\n\nconst RibbonStyle = css`\n height: 20px;\n padding: 0px 8px;\n font-size: ${rem(8)};\n line-height: ${rem(16)};\n letter-spacing: 0.53px;\n\n &::before,\n &::after {\n border-width: 10px 4px;\n }\n\n ${responsive.md`\n height: 30px;\n padding: 0 14px;\n font-size: ${rem(10)};\n letter-spacing: 0.67px;\n\n &::before,\n &::after {\n border-width: 15px 8px;\n }\n `}\n`;\n\nconst OrderedCardShortNames = [\n \"44TmdusDzEH95uGu0URjIr\", // Women\n \"71526baqpQqVsScHBZpIEl\", // Men\n \"16dqMm2vfVsgy539guPkkE\", // Kids & Teens\n];\n\nexport class ProductCategoryCards extends React.Component {\n constructor(props) {\n super(props);\n\n const categories = intl.cf(props.data.allContentfulProductCategory.nodes);\n this.orderedCategoryNodes = this._getOrderedCategories(categories);\n }\n\n handleClick(name) {\n metrics.track(\"CTA Clicked\", {\n title: name,\n location: \"Product Category Card\",\n nonInteraction: false,\n });\n }\n\n _getOrderedCategories(allCategoryNodes) {\n return orderArray(allCategoryNodes, OrderedCardShortNames, \"contentful_id\");\n }\n\n renderSlides(slides, scrollable) {\n const SlideComponent = scrollable ? Slide : GridSlide;\n\n return (\n <>\n {slides.map((slide, i) => {\n return (\n \n \n \n {slide.flag && (\n \n {slide.flag}\n \n )}\n \n

{slide.title}

\n \n );\n })}\n \n );\n }\n\n render() {\n const { data, className, scrollable = false } = this.props;\n\n const bundleImage = intl.cf(data.bundleImages.nodes, true);\n const discountData = getDiscountData();\n\n const slides = this.orderedCategoryNodes.map(node => {\n const flag = node.shortName === \"Kids\" ? \"New\" : \"\";\n return {\n title: node.shortName,\n url: `/${node.shopLandingReference.slug}`,\n altText: `Shop ${node.shortName}`,\n img: node.cardImage,\n flag,\n };\n });\n\n slides.push({\n title: intl.t(\"product.category-cards.slide-bundles\", \"Bundles\"),\n url: \"/shop-bundles\",\n altText: \"Shop Bundles\",\n img: bundleImage,\n flag: discountData.titleCopy,\n });\n\n return (\n \n \n {scrollable && (\n \n {this.renderSlides(slides, scrollable)}\n \n )}\n {!scrollable && <>{this.renderSlides(slides, scrollable)}}\n \n \n );\n }\n}\n\nexport const ProductCategoryCardsQuery = props => (\n }\n />\n);\n\nexport default ProductCategoryCardsQuery;\n\nconst componentQuery = graphql`\n query ProductCategoryCardsQuery {\n bundleImages: allContentfulAsset(\n filter: { contentful_id: { eq: \"2RQ7pdzdW9JmLk0z0shhzM\" } }\n ) {\n nodes {\n node_locale\n title\n description\n fluid(maxWidth: 580, quality: 90) {\n ...GatsbyContentfulFluid_withWebp_noBase64\n }\n }\n }\n allContentfulProductCategory {\n nodes {\n node_locale\n shortName\n contentful_id\n cardImage {\n title\n description\n fluid(maxWidth: 580, quality: 90) {\n ...GatsbyContentfulFluid_withWebp_noBase64\n }\n }\n backgroundColor\n shopLandingReference {\n slug\n header {\n childMarkdownRemark {\n rawMarkdownBody\n }\n }\n }\n }\n }\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { media, Color } from \"../../utils/style\";\nimport { PressLogos } from \"../../utils/svg\";\nimport Container from \"../Container\";\nimport Row from \"../Row\";\nimport MagicLink from \"../MagicLink\";\n\nconst PressWrapper = styled.div.attrs({ id: \"press\" })`\n position: relative;\n background-color: ${p => (p.background ? p.background : \"transparent\")};\n`;\n\nconst PressContainer = styled(Container).attrs({\n id: \"press_container\",\n})`\n position: relative;\n overflow: visible !important;\n`;\n\nconst StyledContainer = styled(Container).attrs({\n id: \"press_styled-container\",\n})`\n position: absolute;\n overflow: visible !important;\n height: 100%;\n max-width: none !important;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n margin: 0 !important;\n padding: 0 !important;\n`;\n\nconst PressColumn = styled.div.attrs({\n id: \"press_container_row_column\",\n className: \"col-12 col-md-8 offset-md-2\",\n})`\n position: relative;\n z-index: 100;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding-top: 56px;\n padding-bottom: 120px;\n\n &:before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n height: 4px;\n background-color: ${Color.ritualBlue};\n\n ${media.mobile`\n right: 16px;\n left: 16px;\n `};\n }\n\n ${media.tablet`\n padding-bottom: 80px;\n `} ${media.mobile`\n flex-direction: column;\n align-items: flex-start;\n padding-bottom: 80px;\n padding-top: 40px;\n `};\n`;\n\nconst PressIcon = styled.div.attrs(p => ({\n id: `press_container_row_column_icon-${p.index}`,\n}))`\n position: relative;\n margin: 0;\n flex: 0 1 auto;\n height: 40px;\n &:last-of-type {\n margin: 0;\n }\n ${media.mobile`\n margin: 0 0 40px 0;\n `} svg {\n height: 40px;\n color: ${Color.ritualBlue};\n opacity: 1;\n transition: opacity 200ms ease-in-out;\n &:hover {\n opacity: 0.56;\n }\n path,\n g {\n fill: currentColor;\n }\n }\n`;\n\nexport default class Press extends React.Component {\n render() {\n let { quotes, children, background } = this.props;\n\n return (\n \n \n \n \n {quotes.map((quote, i) => {\n let Icon = PressLogos[quote.icon];\n if (quote.link) {\n return (\n \n \n \n \n \n );\n }\n return (\n \n \n \n );\n })}\n \n \n \n {children}\n \n );\n }\n}\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { graphql, StaticQuery } from \"gatsby\";\n\n// Services\nimport intl from \"../../services/intl\";\n\n// Utils\nimport { rem, Font, media, Color, responsive } from \"../../utils/style\";\nimport metrics from \"../../utils/metrics\";\nimport { variation } from \"../../utils/launchDarkly\";\n\n// Components\nimport RitualButton from \"../global/RitualButton\";\n\n// Component Query\nconst componentQuery = graphql`\n query MensHeroContent {\n allContentfulHomePage {\n nodes {\n node_locale\n heroTitle {\n heroTitle\n childMarkdownRemark {\n html\n }\n }\n }\n }\n }\n`;\n\n// Styled Elements\nconst Wrapper = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n`;\n\nconst HeaderTitle = styled.h1`\n ${Font.circular};\n text-align: center !important;\n font-size: ${rem(76)};\n line-height: ${rem(72)};\n letter-spacing: -2.3px;\n color: ${Color.ritualBlue};\n margin: 0 auto 16px;\n max-width: 620px;\n\n em {\n ${Font.dutch};\n }\n\n p {\n margin: 0;\n }\n\n ${media.notDesktop`\n font-size: ${rem(66)};\n max-width: 613px;\n `};\n\n ${media.mobile`\n font-size: ${rem(48)};\n letter-spacing: -1.4px;\n line-height: ${rem(48)};\n max-width: 250px;\n `};\n\n @media (max-width: 373px) {\n font-size: ${rem(39)};\n font-weight: 500;\n line-height: ${rem(43)};\n letter-spacing: -0.57px;\n max-width: 200px;\n }\n\n ${responsive.md`\n margin-bottom: 40px;\n `}\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n`;\n\nconst ShopButtonWrapper = styled.div`\n margin-right: 24px;\n\n &:last-of-type {\n margin-right: 0;\n }\n\n ${responsive.sm`\n margin-right: 40px;\n `}\n`;\n\nconst ShopButton = styled(RitualButton)`\n width: 100%;\n`;\n\nconst Buttons = [\n {\n title: intl.t(\"hero.shopall\", \"Shop All\"),\n shortTitle: intl.t(\"hero.shopall\", \"Shop All\"),\n to: \"/shop-vitamins\",\n },\n];\n\nconst BundleBuilderButtons = [\n {\n title: intl.t(\"hero.build-bundle\", \"Find Your Multivitamin\"),\n shortTitle: intl.t(\"hero.build-bundle\", \"Find Your Multivitamin\"),\n to: \"/build-a-bundle\",\n },\n];\n\nexport class HeroContent extends React.Component {\n constructor() {\n super();\n\n this.state = {\n isBundleBuilderHero: false,\n };\n }\n\n componentDidMount() {\n const isBundleBuilderHero = variation(\"bundle-builder-hero\");\n\n this.setState({\n isBundleBuilderHero,\n });\n }\n\n handleClick(title) {\n metrics.track(\"CTA Clicked\", {\n location: \"Hero\",\n title,\n nonInteraction: false,\n });\n }\n\n render() {\n const { heroTitle } = intl.cf(\n this.props.data.allContentfulHomePage.nodes,\n true,\n );\n const { isBundleBuilderHero } = this.state;\n\n const cleanHtml = heroTitle.childMarkdownRemark.html\n .replace(\"

\", \"\")\n .replace(\"

\", \"\");\n\n const buttons = isBundleBuilderHero ? BundleBuilderButtons : Buttons;\n\n return (\n \n \n\n {/* Rendered on XS breakpoints */}\n \n {buttons.map((button, index) => (\n \n \n {button.shortTitle}\n \n \n ))}\n \n\n {/* Rendered on S, M and L breakpoints */}\n \n {buttons.map((button, index) => (\n \n \n {button.title}\n \n \n ))}\n \n \n );\n }\n}\n\nexport const HeroContentComponentQuery = props => (\n }\n />\n);\n\nexport default HeroContentComponentQuery;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { rem, media, responsive } from \"../../utils/style\";\nimport Container from \"../Container\";\nimport Row from \"../Row\";\nimport { graphql, StaticQuery } from \"gatsby\";\nimport ValueProps from \"../../components/product/ValueProps\";\n\n// Services\nimport intl from \"../../services/intl\";\n\nconst componentQuery = graphql`\n query IntroductionComponentQuery {\n allContentfulHomePage {\n nodes {\n node_locale\n formsIcons\n formsLabels\n introText {\n childMarkdownRemark {\n html\n }\n }\n }\n }\n }\n`;\n\nconst IntroContainer = styled(Container).attrs({\n id: \"introduction-container\",\n})`\n position: relative;\n z-index: 2;\n margin-top: 40px;\n margin-bottom: 80px;\n\n ${media.mobile`\n padding: 0 20px;\n `}\n\n ${responsive.sm`\n margin-top: 48px;\n margin-bottom: 80px;\n `};\n\n ${responsive.md`\n margin-top: 80px;\n margin-bottom: 120px;\n `};\n`;\n\nconst IntroColumn = styled.div.attrs({\n id: \"introduction-container_row_container_intro-column\",\n className: \"col-12 col-sm-8 offset-sm-2 col-lg-10 offset-lg-1\",\n})`\n position: relative;\n z-index: 1;\n margin-bottom: 40px;\n`;\n\nconst IntroHeader = styled.h2.attrs({\n id: \"introduction-container_row_container_intro-column_title\",\n})`\n position: relative;\n text-align: center !important;\n margin: 0;\n font-size: ${rem(22)};\n line-height: ${rem(32)};\n font-weight: 500;\n letter-spacing: -0.2px;\n\n ${media.mobile`\n text-align: left !important;\n `};\n`;\n\nexport const IntroductionComponent = class Introduction extends React.Component {\n render() {\n const data = intl.cf(this.props.data.allContentfulHomePage.nodes, true);\n\n return (\n \n \n \n \", \"\")\n .replace(\"

\", \"\"),\n }}\n />\n
\n \n
\n
\n );\n }\n};\n\nexport const IntroductionComponentQuery = props => (\n }\n />\n);\n\nexport default IntroductionComponentQuery;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { graphql, navigate } from \"gatsby\";\n\n// Utils\nimport { setupTalkableHooks } from \"../../utils/talkable\";\nimport { rem, responsive, Color } from \"../../utils/style\";\nimport metrics from \"../../utils/metrics\";\n\n// Components\nimport RightArrow from \"../../../static/svg/arrow-rounded-right.svg\";\nimport Ribbon from \"../../components/global/Ribbon\";\n\n// Hero Component\nimport PageHero from \"../../components/PageHero\";\nimport HeroContent from \"../../components/home/HeroContent\";\n\n// Press Component\nimport Press from \"../../components/home/Press\";\n\n// Testimonials Component\nimport Testimonials from \"../../components/testimonials/Testimonials\";\n\n// Instagram Component\nimport InstagramShowcase from \"../../components/InstagramShowcase\";\n\n// Introduction Component\nimport Introduction from \"../../components/home/Introduction\";\n\n// Featured Area Component\nimport FeaturedArea from \"../../components/home/FeaturedArea.New\";\n\n// Other Components\nimport PageSEO from \"../../components/seo/Page\";\nimport CircleNew from \"../../components/home/Circle.New\";\nimport MagicLink from \"../../components/MagicLink\";\nimport ProductCategoryCards from \"../../components/product/ProductCategoryCards\";\nimport Text from \"../../components/Text\";\n\nconst ContentWrapper = styled.div`\n position: relative;\n overflow: hidden;\n`;\n\nconst CircleContainer = styled.div.attrs({\n className: \"container\",\n})`\n position: relative;\n overflow: visible !important;\n padding: 0 !important;\n`;\n\nconst StyledRow = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 24px;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`;\n\nconst StyledMagicLink = styled(MagicLink)`\n margin-bottom: 0px !important;\n`;\n\nconst ProductsLinks = [\n {\n link: \"/products/essential-for-women-multivitamin\",\n text: \"Multivitamin for Women 18+\",\n icon: false,\n },\n {\n link: \"/products/essential-prenatal-multivitamin\",\n text: \"The Prenatal Multivitamin\",\n icon: false,\n },\n {\n link: \"/products/essential-multivitamin-for-men\",\n text: \"Multivitamin for Men 18+\",\n icon: false,\n },\n {\n link: \"/products/essential-multivitamin-for-kids\",\n text: \"Multivitamin for Kids 4+\",\n icon: false,\n flag: true,\n },\n];\n\nconst NewRibbonWrapper = styled(Ribbon)`\n margin-left: 15px;\n`;\n\nconst PressWrapper = styled.div`\n background: rgba(242, 241, 245, 0.56);\n\n ${responsive.md`\n padding-top: 80px;\n `}\n`;\n\nfunction MagicLinkRow({ link, text, icon, navigate, flag }) {\n return (\n \n \n {text}\n \n {flag && New}\n {icon && (\n navigate(link)}\n style={{ marginLeft: \".5em\" }}\n />\n )}\n \n );\n}\n\nexport default class Index extends React.Component {\n constructor(props) {\n super(props);\n let {\n pageTitle,\n pageDescription,\n socialImage,\n } = props.data.allContentfulHomePage.edges[0].node;\n this.state = {\n talkableHooksArray: [\n \"coupon_issued\",\n \"share_succeeded\",\n \"email_gating_passed\",\n \"email_gating_failed\",\n \"offer_loaded\",\n \"offer_triggered\",\n ],\n seo: {\n pagePath: \"\",\n title: pageTitle,\n description: pageDescription,\n image: {\n url: socialImage.file.url,\n width: socialImage.file.details.image.width,\n height: socialImage.file.details.image.height,\n },\n },\n };\n }\n\n componentDidMount() {\n this.props.updatePageData({\n label: \"Home\",\n });\n\n this._setNavColor();\n\n window._talkableq.push([\"register_affiliate\", {}]);\n const talkablePresent = typeof window.talkable !== \"undefined\";\n\n if (talkablePresent) {\n setupTalkableHooks(this.state.talkableHooksArray);\n }\n }\n\n _setNavColor() {\n this.props.updateLayoutState({\n navColor: \"#FFFFFF\",\n banner: true,\n });\n }\n\n trackCTAClick(title, location, url, e) {\n e.preventDefault();\n metrics.track(\"CTA Clicked\", {\n title: title,\n nonInteraction: false,\n location: location,\n });\n navigate(url);\n }\n\n render() {\n const { seo } = this.state;\n const { navigate } = this.props;\n const contentfulData = this.props.data;\n const clickableFeaturedData = ProductsLinks;\n\n return (\n <>\n \n \n \n );\n }\n}\n\nfunction PageContent({ contentfulData, navigate, clickableFeaturedData }) {\n const {\n featuredArea1,\n featuredArea1Image,\n featuredArea1BackgroundColor,\n featuredArea2,\n featuredArea2Image,\n featuredArea2BackgroundColor,\n featuredArea3,\n featuredArea3List,\n featuredArea3Image,\n featuredArea3BackgroundColor,\n pressQuotes,\n instagramImages,\n heroImage,\n heroImageMobile,\n heroBackgroundColor,\n } = contentfulData.allContentfulHomePage.edges[0].node;\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n {clickableFeaturedData.map((key, index) => {\n return (\n \n );\n })}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport const pageQuery = graphql`\n query HomePageQuery($locale: String!) {\n allContentfulHomePage(\n filter: {\n node_locale: { eq: $locale }\n contentful_id: { eq: \"6jLz5EhYUoiwGqKUmQgAms\" }\n }\n ) {\n edges {\n node {\n pageTitle\n pageDescription\n socialImage {\n file {\n details {\n image {\n width\n height\n }\n }\n url\n }\n }\n featuredArea1 {\n childMarkdownRemark {\n html\n }\n }\n featuredArea1Image {\n file {\n url\n }\n fluid(maxWidth: 570, quality: 90) {\n ...GatsbyContentfulFluid_withWebp_noBase64\n }\n description\n }\n featuredArea1BackgroundColor\n featuredArea2 {\n childMarkdownRemark {\n html\n }\n }\n featuredArea2Image {\n file {\n url\n }\n fluid(maxWidth: 570, quality: 90) {\n ...GatsbyContentfulFluid_withWebp_noBase64\n }\n description\n }\n featuredArea2BackgroundColor\n featuredArea3 {\n childMarkdownRemark {\n html\n }\n }\n featuredArea3List\n featuredArea3Image {\n file {\n url\n }\n fluid(maxWidth: 570, quality: 90) {\n ...GatsbyContentfulFluid_withWebp_noBase64\n }\n description\n }\n featuredArea3BackgroundColor\n products {\n ...ProductCardFragment\n }\n instagramImages {\n title\n description\n fixed(width: 270, height: 270, quality: 90) {\n ...GatsbyContentfulFixed_withWebp_noBase64\n }\n }\n pressQuotes {\n author\n icon\n link\n }\n heroImage {\n file {\n url\n }\n fluid(maxWidth: 1920, quality: 90) {\n ...GatsbyContentfulFluid_withWebp_noBase64\n }\n }\n heroImageMobile {\n file {\n url\n }\n fluid(maxWidth: 912, quality: 90) {\n ...GatsbyContentfulFluid_withWebp_noBase64\n }\n }\n heroBackgroundColor\n }\n }\n }\n }\n`;\n","import metrics from \"./metrics\";\n\nexport function setupTalkableHooks(talkableHooks) {\n for (let talkableHook of talkableHooks) {\n console.log(\"Talkable Hook setup: \", talkableHook);\n window.talkable.subscribe(talkableHook, \"talkable-offer\", () => {\n console.log(\"Talkable Hook fired: \", talkableHook);\n metrics.track(\"Talkable iFrame\", {\n name: talkableHook,\n });\n });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n"],"sourceRoot":""}