{"version":3,"sources":["webpack:///./presentation/utils/rgba.js","webpack:///./presentation/hooks/withUrlComponent.ts","webpack:///./presentation/components/common/Layer/Parallax.tsx","webpack:///./presentation/components/common/Layer/Parallax.stylesheet.ts","webpack:///./presentation/components/common/Layer/Static.tsx","webpack:///./presentation/components/common/Layer/Layer.tsx","webpack:///./presentation/components/common/Layer/Layer.stylesheet.ts","webpack:///./presentation/components/common/Layer/index.ts","webpack:///../node_modules/ulid/dist/index.esm.js","webpack:///./presentation/components/ribbons/billboard/CornerEmbellishments.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/CornerEmbellishments.tsx","webpack:///./presentation/components/ribbons/billboard/Wash.tsx","webpack:///./presentation/components/ribbons/billboard/Wash.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Background.tsx","webpack:///./presentation/components/ribbons/billboard/Background.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Body.tsx","webpack:///./presentation/components/ribbons/billboard/Body.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Scroll.tsx","webpack:///./presentation/components/ribbons/billboard/Scroll.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/styles.ts","webpack:///./presentation/components/ribbons/billboard/layouts/Generic.tsx","webpack:///./presentation/components/ribbons/billboard/layouts/Generic.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/layouts/Duo.tsx","webpack:///./presentation/components/ribbons/billboard/layouts/Duo.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/constants.ts","webpack:///./presentation/components/ribbons/billboard/Tile.tsx","webpack:///./presentation/components/ribbons/billboard/Tile.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Tiles.tsx","webpack:///./presentation/components/ribbons/billboard/Tiles.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/layouts/WithTiles.tsx","webpack:///./presentation/components/ribbons/billboard/layouts/WithTiles.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Billboard.tsx","webpack:///./presentation/components/ribbons/billboard/index.ts"],"names":["c","a","color","alpha","string","withUrlComponent","withProps","props","r","Component","isInternalUrl","url","NavLink","to","isHashUrl","href","getParallaxData","layer","start","duration","properties","startValue","fx","type","endValue","property","enhance","pureEnhance","hocs","withLanguage","hooks","data","currentLanguage","useStyles","default","image","width","percentage","height","backgroundImage","urlLanguageParse","imageUrl","backgroundRepeat","backgroundSize","backgroundPosition","styles","parallaxData","style","test","navigator","userAgent","vendor","webpUrl","focus","role","isParallax","root","position","top","overflow","plx","aria-label","createImageAlt","Parallax","Static","LayerComponent","createError","message","err","Error","source","ENCODING","ENCODING_LEN","length","TIME_MAX","Math","pow","randomChar","prng","rand","floor","charAt","encodeTime","now","len","isNaN","Number","isInteger","mod","str","encodeRandom","detectPrng","allowInsecure","arguments","undefined","window","browserCrypto","crypto","msCrypto","buffer","Uint8Array","getRandomValues","nodeCrypto","randomBytes","readUInt8","e","console","error","random","ulid","currPrng","seedTime","Date","factory","cornerToPosition","gu2CornerSize","gu","spacing","gu2px","cornerSize","theme","cornerArrayToCssProperty","prop","cornerImages","withBreakpointsHook","corner","size","repeat","cornerEmbellishments","generateCornerImages","pointerEvents","bottom","left","right","longhand","colorway","palette","wash","clr","Colorway","LIGHT","rgba","generateBackground","Alignment","CENTER","gradient","modifier","background","NEUTRAL","grey10","DARK","PRIMARY","primary","PRIMARY_GRADIENT","HIGHLIGHT","highlight","ownerProps","findResponsiveItem","getBreakpoints","activeBackground","backgroundType","Array","isArray","videoWrapper","video","objectFit","objectPosition","fallbackVideoImage","minHeight","minWidth","layout","duoLayout","hasTiles","loop","muted","autoPlay","playsInline","poster","fallback","src","mp4","webm","loading","alt","Layer","key","i","Wash","defaultProps","hBaseline","hasBodyText","isNotNilOrEmpty","hasCta","hasPrecursor","hasTitle","hasFooterText","typography","alignment","isMinSm","precursor","getTitleColor","title","subtitle","getBodyColor","marginTop","ctas","display","flexDirection","cta","footerText","smallprint","opacity","cssSides","Side","X","marginBottom","textAlign","justifyContent","text","additionalText","ribbonId","depth","Shortcode","against","code","component","body","CallToAction","getAgainst","block","ButtonSize","LG","index","side","scrollAgainst","scroller","paddingTop","onScrollClick","onClick","kind","Kind","TERTIARY","glyph","id","halfContainerWidth","getActiveAnchor","anchor","breakpoints","from","getActive","flexAnchors","Anchor","TOP","justify","Justify","breakpointProps","activeAnchor","content","flex","flexBasis","showScroll","Background","vblock","xs","md","lg","Body","Scroll","isMinMd","isMinLg","isMinXl","startDuoLayout","maxWidth","sm","isDuoLayoutMd","marginLeft","isDuoLayoutLg","isDuoLayoutXl","xl","marginRight","Layout","callToAction","branch","withHover","hover","leftTile","rightTile","tilesSide","backgroundColor","getBackgroundColor","textDecoration","ribbonPadding","shrinkLeading","shrinkTrailing","container","paddingRight","box","wrapperText","wrapperIcon","icon","animation","animationTimingFunction","animationDirection","animationFillMode","leftTileMedium","rightTileMedium","leftTileLarge","tilesStartLarge","TilesSide","START","action","linkAttribution","tile","WebkitFlexBasis","tiles","tileAnimation","Tile","direction","END","Direction","ROW","ROW_REVERSE","webkitFlexBasis","row","lgStartTile","gutters","Tiles","hasTwoTiles","shouldShowScroll","fit","Fit","FULLSCREEN","FILL","BillboardLayout","errorBoundary","visibilitySet","duo","withState","withHandlers","bottomScrollName","scrollTo","delay","smooth","name","Ribbon","flush","CornerEmbellishments","Billboard"],"mappings":"6EAAA,qBAEe,KAACA,EAAGC,IACjBC,IAAMF,GACHG,MAAMF,GACNG,U,oBCLL,sFAeA,MAAMC,EAAmBC,oBAAWC,GAAoBC,IACtDA,IACEA,IAAO,OACPA,IAAO,CAAE,SAAU,SAErBA,IAAO,CACL,CACEA,IACA,KAAM,CACJC,UAAW,SAGf,CACEC,IACCC,IAAD,CACEF,UAAWG,IACXC,GAAIF,KAGR,CACEG,IACCH,IAAD,CACEF,UAAWG,IACXC,GAAIF,KAGR,CACEH,IACCG,IAAD,CACEF,UAAW,IACXM,KAAMJ,OA9B0CH,CAmCtDD,IAEaF,O,2ICtBf,MAAMW,EAAkB,EACtBC,WAEO,CAAC,CACNC,MAAO,OASPC,SAAU,QACVC,WAAY,CACV,CACEC,WAAYb,IACVA,IAAS,YACTA,IAASA,IAAS,MAClBA,IAAS,GAHCA,CAIVS,EAAMK,GAAGC,MACXC,SAAU,EACVC,SAAU,iBA+BHC,MAfQC,YACrB,WACA,CACEC,KAAM,CACJC,KAEFC,MAAO,CACLxB,oBAAWC,IAAD,CACRwB,KAAMf,EAAgBT,MAExBD,oBCrES,EACbW,QACAe,qBAGOC,YAAU,CACfC,QAAS,CACPC,MAAO,CACLC,MAAOC,qBAAW,KAClBC,OAAQD,qBAAW,KACnBE,gBAAiB,OAAF,OAASC,YAAiBvB,EAAMwB,SAAUT,GAA1C,KACfU,iBAAkB,YAClBC,eAAgB,QAChBC,mBAAoB,mBAGvB,OD0DUlB,CAzBa,EAC1BmB,SACAd,UAEA,kBAAC,IAAD,CACEe,aAAcf,EACdgB,MAAOF,EAAOV,SEYHT,MAzBQC,YACrB,SACA,CACEC,KAAM,CACJC,KAEFC,MAAO,CACLxB,oBAAU,EACRW,QACAe,sBAEA,MACMG,GAAsB,KADX,SAASa,KAAKC,UAAUC,YAAc,aAAaF,KAAKC,UAAUE,UAC9B,MAAjBlC,EAAMmC,QAAmBnC,EAAMmC,QAAUnC,EAAMwB,SAGnF,MAAO,CACLA,SAHeD,YAAiBL,EAAOH,MAM3C1B,oBA/Ca,EACjBW,QACAwB,cAGOR,YAAU,CACfC,QAAS,CACPC,MAAO,CACLC,MAAOC,qBAAW,KAClBC,OAAQD,qBAAW,KACnBM,eAAgB,QAChBC,mBAAoB3B,EAAMoC,OAAS,gBACnCd,gBAAiB,OAAF,OAASE,EAAT,KACfC,iBAAkB,mBAwCXhB,CAlCW,EACxBmB,YAEA,yBACES,KAAK,eACLP,MAAOF,EAAOV,S,kBCiBHT,MAZQC,YACrB,QACA,CACEG,MAAO,CACLxB,oBAAWC,IAAD,CACRgD,WAAY/C,IAAS,CAAE,QAAS,KAAM,QAAU,WAAYD,MAE9DD,oBClDS,IAAM2B,YAAU,CAC7BC,QAAS,CAIPsB,KAAM,CACJC,SAAU,WACVC,IAAK,EACLtB,MAAOC,qBAAW,KAClBC,OAAQD,qBAAW,KACnBsB,SAAU,UAEZC,IAAK,CAGHtB,OAAQ,QAAF,OAAUD,qBAAW,KAArB,aACNoB,SAAU,WACVC,IAAK,EACLtB,MAAOC,qBAAW,YDqCTX,CArCU,EACvBmB,SACA5B,QACAsC,gBAEA,yBACER,MAAOF,EAAOW,KACdF,KAAK,MACLO,aAAYC,YAAe7C,IAGRsC,EACf,yBAAKR,MAAOF,EAAOe,KACjB,kBAACG,EAAD,CACE9C,MAAOA,KAKX,kBAAC+C,EAAD,CAAQ/C,MAAOA,ME1CRgD,O,iMCJf,SAASC,EAAYC,GACjB,IAAIC,EAAM,IAAIC,MAAMF,GAEpB,OADAC,EAAIE,OAAS,OACNF,EAIX,IAAIG,EAAW,mCACXC,EAAeD,EAASE,OACxBC,EAAWC,KAAKC,IAAI,EAAG,IAAM,EAgCjC,SAASC,EAAWC,GAChB,IAAIC,EAAOJ,KAAKK,MAAMF,IAASN,GAI/B,OAHIO,IAASP,IACTO,EAAOP,EAAe,GAEnBD,EAASU,OAAOF,GAE3B,SAASG,EAAWC,EAAKC,GACrB,GAAIC,MAAMF,GACN,MAAM,IAAId,MAAMc,EAAM,qBAE1B,GAAIA,EAAMT,EACN,MAAMR,EAAY,mCAAqCQ,GAE3D,GAAIS,EAAM,EACN,MAAMjB,EAAY,yBAEtB,IAA8B,IAA1BoB,OAAOC,UAAUJ,GACjB,MAAMjB,EAAY,2BAItB,IAFA,IAAIsB,OAAM,EACNC,EAAM,GACHL,EAAM,EAAGA,IAEZK,EAAMlB,EAASU,OADfO,EAAML,EAAMX,GACiBiB,EAC7BN,GAAOA,EAAMK,GAAOhB,EAExB,OAAOiB,EAEX,SAASC,EAAaN,EAAKN,GAEvB,IADA,IAAIW,EAAM,GACHL,EAAM,EAAGA,IACZK,EAAMZ,EAAWC,GAAQW,EAE7B,OAAOA,EAkBX,SAASE,IACL,IAAIC,EAAgBC,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,IAAmBA,UAAU,GAC/ErC,EAAOqC,UAAU,GAEhBrC,IACDA,EAAyB,oBAAXuC,OAAyBA,OAAS,MAEpD,IAAIC,EAAgBxC,IAASA,EAAKyC,QAAUzC,EAAK0C,UACjD,GAAIF,EACA,OAAO,WACH,IAAIG,EAAS,IAAIC,WAAW,GAE5B,OADAJ,EAAcK,gBAAgBF,GACvBA,EAAO,GAAK,KAGvB,IACI,IAAIG,EAAa,EAAQ,KACzB,OAAO,WACH,OAAOA,EAAWC,YAAY,GAAGC,YAAc,KAErD,MAAOC,IAEb,GAAIb,EAAe,CACf,IACIc,QAAQC,MAAM,mEAChB,MAAOF,IACT,OAAO,WACH,OAAO9B,KAAKiC,UAGpB,MAAM1C,EAAY,4DAgCtB,IAAI2C,EA9BJ,SAAiBC,GAIb,OAHKA,IACDA,EAAWnB,KAER,SAAcoB,GAIjB,OAHI1B,MAAM0B,KACNA,EAAWC,KAAK7B,OAEbD,EAAW6B,EA3HX,IA2HiCrB,EA1H/B,GA0HwDoB,IAsB9DG,G,2JChJX,MAAMC,EAAmB1G,IAAO,CAC9B,CAAEA,IAAS,WAAYA,IAAS,QAChC,CAAEA,IAAS,YAAaA,IAAS,YACjC,CAAEA,IAAS,cAAeA,IAAS,aACnC,CAAEA,IAAS,eAAgBA,IAAS,mBAGhC2G,EAAgB,CAACC,EAAYC,IAAb,UAAqCC,YAAMF,EAAIC,GAA/C,cAA6DC,YAAMF,EAAIC,GAAvE,MAEhBE,EAAchH,GAAsBC,IAAO,CAC/C,CACEA,IAAS,WAAW,GACpBA,IAAS2G,EAAc,EAAG5G,EAAMiH,MAAMH,WAExC,CACE7G,IAAS,WAAW,GACpBA,IAAS2G,EAAc,EAAG5G,EAAMiH,MAAMH,WAExC,CACE7G,IACAA,IAAS2G,EAAc,MAXe3G,CAavCD,GAmBGkH,EAA2B,CAC/BC,EACAC,IAQGnH,IAAO,IAAKA,IAAQkH,EAAMC,ICvBhBjG,MAVCC,YAAY,uBAAwB,CAClDC,KAAM,CACJC,KAEFC,MAAO,CACL8F,IACAtH,oBD6BYC,IACd,MAAMoH,EA9BsBpH,IAAsBC,IAClDA,IAAY,IACZA,IAASA,KACTA,IACAA,IAAM,EAAGqH,EAAQlH,MAAX,CACJwB,MAAO,OAAF,OAASK,YAAiB7B,EAAKJ,EAAMyB,iBAArC,KACL8F,KAAMP,EAAWhH,GACjBkD,SAAUyD,EAAiBW,GAC3BE,OAAQ,eARwCvH,CAUlDD,EAAMyH,sBAoBeC,CAAqB1H,GAE1C,OAAO0B,YAAU,CACfC,QAAS,CACPsB,KAAM,CACJC,SAAU,WACVyE,cAAe,OACfxE,IAAK,EACLyE,OAAQ,EACRC,KAAM,EACNC,MAAO,KACJC,YAAS,aAAc,CACxBR,KAAML,EAAyB,OAAQE,GACvCxF,MAAOsF,EAAyB,QAASE,GACzClE,SAAUgE,EAAyB,WAAYE,GAC/CI,OAAQN,EAAyB,SAAUE,QAIhD,QC7CUjG,CAhBkB,EAC/BmB,YAEA,yBAAKE,MAAOF,EAAOW,Q,8ECYN9B,OAVQC,YACrB,OACA,CACEG,MAAO,CACL8F,IACAtH,oBCjBUC,IACd,MAAM,MACJiH,EADI,SAEJe,GACEhI,GAEE,QACJiI,GACEhB,EAEEiB,EAAQC,GAAsBlI,IAClCA,IAAS,WAAYmI,IAASC,OAC9BpI,IAASqI,YAAKH,EAAK,KACnBlI,IAASqI,YAAKH,EAAK,MAHelI,CAIlCD,GAiBIuI,EAAqBtI,IACxBkI,GAAsBlI,IAAO,CAE5B,CAAEA,IAAS,CAAE,SAAU,aAAeuI,IAAUC,QAAS,IAAMP,EAAKC,IACpE,CAAElI,IAAS,aAAa,GAAO,IAAMiI,EAAKC,IAC1C,CAAElI,KACAA,IAAS,YAAY,GACrBA,IAAS,YACR,IAAMiI,EAAKC,IACd,CAAElI,IAAS,WAAW,GAAO,IAxBfkI,IAAD,yDAGXG,YAAKH,EAAK,IAHC,wBAIXG,YAAKH,EAAK,IAJC,wBAKXG,YAAKH,EAAK,GALC,eAwBsBO,CAASP,IAC5C,CAAElI,IAAK,IAAMiI,EAAKC,KATGlI,CAUpBD,IAGL,OAAO0B,YAAU,CACfC,QAAS,CACPsB,KAAM,CACJC,SAAU,WACVC,IAAK,EACLtB,MAAOC,qBAAW,KAClBC,OAAQD,qBAAW,OAIvB,CAAC6G,mBAAS,WAAYP,IAASC,QAAS,CACtCpF,KAAM,CACJ2F,WAAYL,EAAmB,aAInC,CAACI,mBAAS,WAAYP,IAASS,UAAW,CACxC5F,KAAM,CACJ2F,WAAYL,EAAmBN,EAAQa,UAI3C,CAACH,mBAAS,WAAYP,IAASW,OAAQ,CACrC9F,KAAM,CACJ2F,WAAYL,EAAmB,aAInC,CAACI,mBAAS,WAAYP,IAASY,UAAW,CACxC/F,KAAM,CACJ2F,WAAYL,EAAmBN,EAAQgB,WAI3C,CAACN,mBAAS,WAAYP,IAASc,mBAAoB,CACjDjG,KAAM,CACJ2F,WAAYL,EAAmBN,EAAQgB,WAI3C,CAACN,mBAAS,WAAYP,IAASe,YAAa,CAC1ClG,KAAM,CACJ2F,WAAYL,EAAmBN,EAAQmB,cAI1C,CACDpB,iBDtEW7G,CAhBS,EACtBmB,YAEA,yBAAKE,MAAOF,EAAOW,QEoHN9B,OA9BQC,YACrB,aACA,CACEC,KAAM,CACJC,KAEFC,MAAO,CACL8F,IACAtH,oBAAWsJ,IAAD,IACLpJ,IACAoJ,GAA4BC,YAC3BC,YAAeF,GACfA,EAAWT,YACV3I,IAAY,IACduJ,IAAD,CACEA,mBACAC,eAAgBxJ,IACdyJ,MAAMC,QACN1J,IAAS,SACTA,IAAS,SAHKA,CAIduJ,KAXHvJ,CAaDoJ,MAEJtJ,oBC7HS,IACN2B,YAAU,CACfC,QAAS,CACPiI,aAAc,CACZ1G,SAAU,WACVC,IAAK,EACL0E,KAAM,EACNC,MAAO,EACPF,OAAQ,EACRxE,SAAU,UAEZyG,MAAO,CACLC,UAAW,QACXC,eAAgB,gBAChBlI,MAAOC,qBAAW,KAClBC,OAAQD,qBAAW,MAErBkI,mBAAoB,CAClBC,UAAWnI,qBAAW,KACtBoI,SAAUpI,qBAAW,KACrBoB,SAAU,WACVC,IAAK,KAGR,OD2GUhC,CA/Fe,EAC5BmB,SACAkH,mBACAC,iBACAU,SACAC,YACAC,WACArC,WACAf,QACAxF,qBAGE,kBAAC,WAAD,KACoC,UAAnBgI,EACb,yBAAKjH,MAAOF,EAAOsH,cACjB,2BACEU,MAAM,EACNC,OAAO,EACPC,UAAU,EACVC,aAAa,EACbjI,MAAOF,EAAOuH,MACda,OAAQzI,YAAiBuH,EAAiBmB,SAASvK,IAAKqB,IAExD,4BACEmJ,IAAKpB,EAAiBqB,IACtB7J,KAAK,cAEP,4BACE4J,IAAKpB,EAAiBsB,KACtB9J,KAAK,eAEP,yBACE+J,QAAQ,OACRH,IAAK3I,YAAiBuH,EAAiBmB,SAASvK,IAAKqB,GACrDuJ,IAAI,WACJxI,MAAOF,EAAO0H,uBAvBxB,KA4BoC,UAAnBP,EAGPD,EA/BV,0BAkCM,kBAACyB,EAAA,EAAD,CACEC,IAAKC,EACLzK,MAAOA,WApCf,QAwCE,kBAAC0K,GAAD,CACEnE,MAAOA,EACPe,SAAUA,EACVmC,OAAQA,EACRC,UAAWA,EACXC,SAAUA,M,oUEmGHlJ,OAnCCC,YAAY,gBAAiB,CAC3CG,MAAO,CACL8J,uBAAa,CACXC,UAAW,IAEbvL,oBAAWsJ,IAAD,CACRkC,YAAatL,KACXuL,mBACA,CAAE,OAAQ,QACVnC,GAEFoC,OAAQxL,KACNuL,mBACA,OAFMvL,CAGNoJ,GACFqC,aAAczL,KACZuL,mBACA,CAAE,OAAQ,aACVnC,GAEFsC,SAAU1L,KACRuL,mBACA,CAAE,OAAQ,SACVnC,GAEFuC,cAAe3L,KACbuL,mBACA,aAFavL,CAGboJ,MAEJhC,IACAtH,oBCjLW,EACbkH,QACAe,WACAf,OACEH,UACA+E,cAEF1B,QACE2B,aAEFC,aACgBrK,YAAU,CAC1BC,QAAS,CACPsB,KAAM,CACJC,SAAU,YAEZ8I,UAAW,CACTrM,MAAOsM,aAAchF,EAAOe,IAE9BkE,MAAO,CACLvM,MAAOsM,aAAchF,EAAOe,IAE9BmE,SAAU,CACRxM,MAAOyM,aAAanF,EAAOe,GAC3BqE,UAAWtF,YAAM,EAAGD,IAEtBwF,KAAM,CACJC,QAAS,OACTC,cAAe,SACfH,UAAWtF,YAAM,EAAGD,GACpB1D,SAAU,UAEZqJ,IAAK,CACHJ,UAAWtF,YAAM,EAAGD,IAEtB4F,WAAY,CACVL,UAAWtF,YAAM,EAAGD,MACjB6F,sBAAWd,GACdlM,MAAOyM,aAAanF,EAAOe,GAC3B4E,QAAS,KAIbb,QAAS,CACPO,KAAM,CACJE,cAAe,SACZK,aAAS,SAAUC,KAAKC,EAAG9M,KAAS8G,YAAM,GAAKD,MAEpD2F,IAAK,CACHO,aAAc,KACXH,aAAS,SAAUC,KAAKC,EAAGhG,YAAM,GAAKD,MAI7C,CAAC6B,mBAAS,YAAaH,IAAUC,SAAU,CACzCxF,KAAM,CACJgK,UAAW,UAEbP,WAAY,CACVO,UAAW,UAEbX,KAAM,CACJY,eAAgB,YAGnB,CACD,CAAEnB,WACF,CAAED,kBDkHW3K,CAzJE,EACf8F,QACA3E,SACAgJ,YACAI,eACAC,WACAJ,cACAE,SACAG,gBACAuB,OACAC,iBACAV,aACAJ,OACAtE,WACAmC,SACAkD,WACAtB,aAEA,kBAAC,WAAD,KACE,kBAAC,KAAD,CACE9E,MAAOA,EACPzE,MAAOF,EAAOW,MAGKyI,EALrB,CAMM,kBAAC,KAAD,CACEzE,MAAOA,EACPzE,MAAOF,EAAO0J,UACdsB,MAAOhC,EAHT,SAKE,kBAACiC,GAAA,EAAD,CACEtG,MAAOA,EACPuG,QAASxF,EACTyF,KAAMN,EAAKnB,aAGAL,EACb,kBAAC,KAAD,CACE1E,MAAOA,EACPqG,MAAOhC,EAAY,EACnB9I,MAAOF,EAAO4J,MAHhB,SAKE,kBAACqB,GAAA,EAAD,CACEtG,MAAOA,EACPuG,QAASxF,EACTyF,KAAMN,EAAKjB,SA1BvB,MAgCqBP,EACb,kBAAC,KAAD,CACE1E,MAAOA,EACPqG,MAAOhC,EACP9I,MAAOF,EAAO4J,OAEd,kBAACqB,GAAA,EAAD,CACEtG,MAAOA,EACPuG,QAASxF,EACTyF,KAAMN,EAAKjB,SAzCvB,KA+CiBX,EACb,kBAAC,KAAD,CACEtE,MAAOA,EACPyG,UAAU,IACVlL,MAAOF,EAAO6J,UAEd,kBAACoB,GAAA,EAAD,CACEtG,MAAOA,EACPuG,QAASxF,EACTmC,OAAQA,EACRsD,KAAMN,EAAKQ,QAzDnB,KA6DGP,EACc3B,EACb,yBAAKjJ,MAAOF,EAAOgK,MAIXA,EAJR,0BAMI,0BACE9J,MAAOF,EAAOmK,IACdvB,IAAKC,GAEL,kBAACyC,GAAA,EAAD,IACE3G,MAAOA,EACPuG,QAASK,aAAW7F,GACpB8F,OAAS/B,EACTxE,KAAMwG,KAAWC,GACjBX,SAAUA,EACVY,MAAO9C,GACHsB,YAjBZ,IA/DJ,MAuFeb,EACb,kBAAC,KAAD,CACE3E,MAAOA,EACPiH,KAAMpB,KAAKC,EACXvK,MAAOF,EAAOoK,YAEbA,GA9FP,O,mBERavL,OAfCC,YACd,kBACA,CACEG,MAAO,CACLxB,oBAAWsJ,IAAD,CACR8E,cAAelO,KACbA,IAASmI,IAASc,kBAClBjJ,IAASmI,IAASY,SAFL/I,CAGboJ,EAAWrB,aAEfjI,oBC5CS,EACbkH,OACEH,WAEFqD,QACE2B,gBAEcpK,YAAU,CAC1BC,QAAS,CACPyM,SAAU,CACRC,WAAYtH,YAAM,EAAGD,KAGzB,CAAC6B,mBAAS,YAAaH,IAAUC,SAAU,CACzC2F,SAAU,CACRnB,UAAW,YAId,CACD,CAAEnB,kBD6BW3K,CArCoB,EACjC8F,QACAqH,gBACAH,gBACA7L,YAEA,kBAAC,KAAD,CACE2E,MAAOA,EACPzE,MAAOF,EAAO8L,UAEd,kBAAC,KAAD,CACEpN,KAAK,SACLuN,QAASD,EACTd,QAASW,EACTK,KAAMC,KAAKC,SACXC,MAAM,eAEN,kBAAC,KAAD,CAASC,GAAG,oC,2DE1BX,MAAMC,GAAqB,CAAChN,EAAeiF,IAAoB7G,IAEpEA,KAAM8G,YAAM,EAAGD,IAEf7G,KAASA,KAAM,GAEfA,KAAWA,KAAM8G,YAAM,EAAGD,IAN0C7G,CAOpE4B,GAGWiN,GAAkB,CAACC,EAAqBC,IAEhCC,IAAsB3F,YACvC0F,EACAC,GAGmBC,CACnBC,aAAY,CAAEC,KAAOC,IAAK,KAAM,MAAQN,ICkE7B5N,OAZCC,YAAoC,mBAAoB,CACtEiG,IACAtH,oBAAWsJ,IAAD,CACRiG,QAASrP,IACPA,IAAS,CAAE,SAAU,aAAeuI,IAAUC,QAC9CxI,IAASsP,IAAQ9G,QACjBxI,IAAS,MAHFA,CAIPoJ,MAEJtJ,oBCpFcC,IACd,MAAM,OACJmK,GACEnK,GAEE,OACJ+O,GACE5E,EAGEqF,EAAkBjG,YAAevJ,GACjCyP,EAAeX,GAAgBC,EAAQS,GAE7C,OAAO9N,YAAU,CACfC,QAAS,CACP+N,QAAS,CACPC,KAAM,EACNC,UAAW,OACX1C,eAAgBuC,EAChBlD,QAAS,OACTC,cAAe,YAGlB,ODgEUrL,CA1EqB,EAClCmB,SACA2E,QACAkD,SACAnC,WACAsD,YACAgB,OACAa,OACAC,iBACAV,aACA4C,UACAhB,gBACAuB,aACAxC,WACAzE,gBAEA,kBAAC,WAAD,KACE,kBAACkH,GAAD,CACE7I,MAAOA,EACP2B,WAAYA,EACZuB,OAAQA,EACRnC,SAAUA,IAEZ,yBAAKxF,MAAOF,EAAOoN,SACjB,kBAAC,IAAD,KACE,kBAAC,IAAD,CACEK,QAAQ,EACRT,QAASA,GAET,kBAAC,IAAD,CACEU,GAAI,GACJC,GAAI,EACJC,GAAI,GAEJ,kBAACC,GAAD,CACElJ,MAAOA,EACPe,SAAUA,EACVqF,SAAUA,EACVF,KAAMA,EACNC,eAAgBA,EAChBV,WAAYA,EACZJ,KAAMA,EACNnC,OAAQA,EACRmB,UAAWA,QAMNuE,EACb,kBAAC,IAAD,KACE,kBAACO,GAAD,CACEnJ,MAAOA,EACPqH,cAAeA,EACfnE,OAAQA,EACRnC,SAAUA,KAvClB,O,SE+Ca7G,OALCC,YAAoC,eAAgB,CAClEiG,IACAtH,oBCpEcC,IACd,MAAM,QACJ+L,EADI,QAEJsE,EAFI,QAGJC,EAHI,QAIJC,EAJI,OAKJpG,EALI,UAMJC,EANI,MAOJnD,GACEjH,GAEE,OACJ+O,GACE5E,EAEEqG,EAAiBvQ,MAAS,EAAO,CAAE,SAAU,kBAAoBD,GAIjEwP,EAAkBjG,YAAevJ,GACjCyP,EAAeX,GAAgBC,EAAQS,GAE7C,OAAO9N,YAAU,CACfC,QAAS,CACP+N,QAAS,CACPC,KAAM,EACNC,UAAW,OACX1C,eAAgBuC,EAChBlD,QAAS,OACTC,cAAe,UAEjBpC,UAAW,IACNyC,aAAS,UAAWC,KAAKC,EAAGhG,YAAM,EAAGE,EAAMH,aAC3C+F,aAAS,SAAUC,KAAKC,EAAG,QAC9BlL,MAAOC,qBAAW,KAClB2O,SAAU3O,qBAAW,OAIzBiK,QAAS,CACP3B,UAAW,CACTqG,SAAUzB,IAAY0B,GAAK3J,YAAM,EAAGE,EAAMH,WAI9C6J,cAAe,CACbvG,UAAW,CACTqG,SAAU5B,GAAmBG,IAAYiB,GAAIhJ,EAAMH,SACnD8J,WAAY,IAGhBC,cAAe,CACbzG,UAAW,CACTqG,SAAU5B,GAAmBG,IAAYkB,GAAIjJ,EAAMH,WAGvDgK,cAAe,CACb1G,UAAW,CACTqG,SAAU5B,GAAmBG,IAAY+B,GAAI9J,EAAMH,WAGvD0J,eAAgB,CACdpG,UAAW,CACT4G,YAAa,EACbJ,WAAY,UAGf,CACD,CAAE7B,UACF,CAAEhD,WACF,CAAE4E,cAAevG,GAAaiG,GAC9B,CAAEQ,cAAezG,GAAakG,GAC9B,CAAEQ,cAAe1G,GAAamG,GAC9B,CAAEC,uBDFSrP,CA1DiB,EAC9BmB,SACA2E,QACAkD,SACAnC,WACAsD,YACAgB,OACAa,OACAC,iBACAV,aACA4B,gBACAuB,aACAxC,WACAzE,gBAEA,kBAAC,WAAD,KACE,kBAACkH,GAAD,CACE7I,MAAOA,EACP2B,WAAYA,EACZuB,OAAQA,EACRnC,SAAUA,EACVoC,WAAW,IAEb,yBAAK5H,MAAOF,EAAOoN,SACjB,yBAAKlN,MAAOF,EAAO8H,WACjB,kBAAC+F,GAAD,CACElJ,MAAOA,EACPe,SAAUA,EACVqF,SAAUA,EACVF,KAAMA,EACNT,WAAYA,EACZU,eAAgBA,EAChBd,KAAMA,EACNnC,OAAQA,EACRmB,UAAWA,MAIFuE,EACb,kBAAC,IAAD,KACE,yBAAKrN,MAAOF,EAAO8H,WACjB,kBAACgG,GAAD,CACEnJ,MAAOA,EACPqH,cAAeA,EACfnE,OAAQA,EACRnC,SAAUA,MA9BpB,O,QE3CK,IAAK8E,GAKAmE,I,SALAnE,K,cAAAA,E,WAAAA,Q,cAKAmE,K,UAAAA,E,eAAAA,Q,KAKG,I,iDCuHA9P,OAhBQC,YAAoC,OAAQ,CACjEC,KAAM,CACJ6P,KACAC,kBACElR,KAAO,CAAE,SAAU,QAEnBmR,MAGJ7P,MAAO,CACL8F,IACAvH,KACAC,oBCtGW,EACbkH,QACAe,WACAqJ,QACAlH,SACA4B,UACAsE,UACAC,UACAC,UACAe,WACAC,gBAEA,MAAM,UACJzF,EADI,UAEJ0F,GACErH,GAEE,QACJrD,GACEG,EAEJ,OAAOvF,YAAU,CACfC,QAAS,CACPsB,KAAM,CACJ0M,KAAM,EACNC,UAAW,OACXrD,QAAS,OACTC,cAAe,SACfU,eAAgBoD,EAAU,SAAW,aACrCmB,gBAAiBC,aAAmBzK,EAAOe,GAC3CiF,UAAW,OACX0E,eAAgB,OAChB5P,OAAQD,qBAAW,QAChB8P,aAAc,CACf9K,UACAiF,UACAuE,UACAnG,OAAQ,CACN0H,cAAevB,GAAWiB,EAC1BO,eAAgBxB,GAAWgB,MAIjCS,UAAW,IACNlF,aAAS,UAAWC,KAAKC,EAAGhG,YAAM,EAAGD,OACrC+F,aAAS,SAAUC,KAAKC,EAAG,QAC9B7J,SAAU,WACVrB,MAAOC,qBAAW,KAClB2O,SAAU3O,qBAAW,MAEvBoK,MAAO,CACLvM,MAAOsM,aAAchF,EAAOe,GAC5BgK,aAAcjL,YAAM,EAAGD,IAEzBqF,SAAU,CACRxM,MAAOyM,aAAanF,EAAOe,GAC3BqE,UAAWtF,YAAM,EAAGD,IAEtBmL,IAAK,CACH1F,QAAS,QAEX2F,YAAa,CACXvC,KAAM,EACNC,UAAW,OACXoC,aAAcjL,YAAM,EAAGD,IAEzBqL,YAAa,CACXjI,SAAUnD,YAAM,EAAGD,GACnB5D,SAAU,WACVmL,WAAYtH,YAAM,GAAKD,IAEzBsL,KAAM,CACJzS,MAAOsM,aAAchF,EAAOe,GAC5B4E,QAAS,EACT/K,MAAOkF,YAAM,EAAGD,GAChB5D,SAAU,WACV4E,MAAO,IAGXuJ,MAAO,CACLpO,KAAM,CACJ0O,eAAgB,QAElBS,KAAM,CACJxF,QAAS,EACToE,YAAa,EACbqB,UAAW,sBACXC,wBAAyB,cACzBC,mBAAoB,SACpBC,kBAAmB,aAIvB,CAAC7J,mBAAS,YAAaH,IAAUC,SAAU,CACzCxF,KAAM,CACJgK,UAAW,WAIflB,QAAS,CACPgG,UAAW,CACTtB,SAAUzB,IAAY0B,GAAK3J,YAAM,EAAGD,KAIxCuJ,QAAS,CACP0B,UAAW,CAETtB,SAAU5B,GAAmBG,IAAYiB,GAAInJ,KAIjDwJ,QAAS,CACPyB,UAAW,CACTtB,SAAU5B,GAAmBG,IAAYkB,GAAIpJ,KAGjDyJ,QAAS,CACPwB,UAAW,CACTtB,SAAU5B,GAAmBG,IAAY+B,GAAIjK,KAGjD2L,eAAgB,CACdV,UAAW,CACTf,YAAa,IAGjB0B,gBAAiB,CACfX,UAAW,CACTnB,WAAY,IAGhB+B,cAAe,CACbZ,UAAW,CACTf,YAAa,OACbJ,WAAY,IAIhBgC,gBAAiB,CACfb,UAAW,CACTnB,WAAY,OACZI,YAAa,KAGhB,CACD,CAAElF,aACF,CAAEuF,SACF,CAAEvF,aACF,CAAEC,WACF,CAAEsE,WACF,CAAEC,WACF,CAAEC,WACF,CAAEkC,eAAgBnB,GAAYjB,GAC9B,CAAEqC,gBAAiBnB,GAAalB,GAChC,CAAEsC,cAAerB,GAAYhB,GAC7B,CAAEsC,gBAAiBtC,GAAWkB,IAAcqB,GAAUC,aDlD3C3R,CAjFS,EACtBmB,SACA2E,QACAe,WACAmF,OACA7B,YACAyH,SACA7S,gBAEA,MAAM,MACJgM,EADI,KAEJyB,GACER,EAEJ,OACE,kBAACjN,EAAD,CACEsC,MAAOF,EAAOW,KACdzC,KAAMuS,EAAO3S,IACbE,GAAIyS,EAAO3S,IACXwO,GAAImE,EAAOC,gBAAkBD,EAAOC,gBAAkB,MAEtD,yBAAKxQ,MAAOF,EAAOyP,WACjB,kBAAC,KAAD,CACE9K,MAAOA,EACPzE,MAAOF,EAAO2P,KAEd,yBAAKzP,MAAOF,EAAO4P,aACjB,kBAAC,KAAD,CACEjL,MAAOA,EACPzE,MAAOF,EAAO4J,MACdoB,MAAOhC,EAAY,GAEnB,kBAACiC,GAAA,EAAD,CACEtG,MAAOA,EACPuG,QAASxF,EACTyF,KAAMvB,KAGV,kBAAC,KAAD,CACEjF,MAAOA,EACPyG,UAAU,IACVlL,MAAOF,EAAO6J,UAEd,kBAACoB,GAAA,EAAD,CACEtG,MAAOA,EACPuG,QAASxF,EACTyF,KAAME,MAIZ,yBAAKnL,MAAOF,EAAO6P,aACjB,0BAAM3P,MAAOF,EAAO8P,MAClB,kBAAC,KAAD,CACEA,KAAK,aACL7K,KAAMR,YAAM,EAAGE,EAAMH,SACrBnH,MAAO2C,EAAO8P,KAAKzS,e,iNEvBpBwB,OAXQC,YACrB,QACA,CACEG,MAAO,CACL8F,IACAtH,oBCjES,EACbsQ,UACAC,aAEO5O,YAAU,CACfC,QAAS,CACPsR,KAAM,CACJtD,KAAM,EACNC,UAAW,OAGXsD,gBAAiB,EACjBhQ,SAAU,aAIdmN,QAAS,CACPpN,KAAM,CACJuJ,cAAe,MACfD,QAAS,QAEX0G,KAAM,CACJpR,MAAOC,qBAAW,MAGtBwO,QAAS,CACPrN,KAAM,CACJuJ,cAAe,SACfzK,OAAQD,qBAAW,MAErBmR,KAAM,CACJpR,MAAOC,qBAAW,QAGrB,CACD,CAAEuO,WACF,CAAEC,gBDmCSnP,CA9CU,EACvB8F,QACAkM,QACA7Q,SACAgJ,YACAnB,YAEA,yBAAK3H,MAAOF,EAAOW,MACjB,+BAtBmB6D,IAAD,4DAETC,YAAM,EAAGD,GAFA,2DAMTC,YAAM,EAAGD,GANA,gCAuBfsM,CAAcnM,EAAMH,UAIjBqM,EANR,0BASI,yBACE3Q,MAAOF,EAAO2Q,KACd/H,IAAKC,GAEL,kBAACkI,GAAD,IACEpM,MAAOA,EACPiE,IAAKC,EACLG,UAAWA,EACXnB,OAAQA,EACRmH,SAAgB,IAANnG,EACVoG,UAAiB,IAANpG,GACP8H,YApBZ,K,UE6Ha9R,OAhBCC,YAAoC,iBAAkB,CACpEiG,IACAtH,oBAAWsJ,IAAD,CACRiK,UAAWrT,IACTA,IAAS,CAAE,SAAU,aAAe4S,GAAUU,KAC9CtT,IAASuT,IAAUC,KACnBxT,IAASuT,IAAUE,aAHVzT,CAIToJ,GACFuC,cAAe3L,KACbuL,KACA,aAFavL,CAGboJ,MAEJtJ,oBCjJa,EACboK,SACAlD,QACA8E,UACAsE,UACAC,UACAC,cAEA,MAAM,QACJzJ,GACEG,GAEE,OACJ8H,EADI,UAEJyC,GACErH,EAEEsF,EAAeX,GAAgBC,EAAQ,CAC3ChD,UACAsE,UACAC,UACAC,YAGF,OAAO7O,YAAU,CACfC,QAAS,CACP+N,QAAS,CACPC,KAAM,EACNC,UAAW,OACX1C,eAAgBuC,EAChBlD,QAAS,OACTC,cAAe,YACZoF,aAAc,CACf9K,UACAiF,UACAuE,aAGJ3C,KAAM,CACJgC,KAAM,EACNC,UAAW,SAIfU,QAAS,CACPyB,UAAW,IACNlF,aAAS,UAAWC,KAAKC,EAAGhG,YAAM,EAAGD,IACxCyF,QAAS,OACToD,KAAM,EACNC,UAAW,OAGX+D,gBAAiB,EACjB9R,MAAOC,qBAAW,KAClB2O,SAAU3O,qBAAW,MAEvB8R,IAAK,CACH/R,MAAOC,qBAAW,MAEpB4N,QAAS,CACPkB,WAAY,OACZH,SAAU5B,GAAmBG,IAAYkB,GAAIpJ,GAC7C/E,OAAQD,qBAAW,OAIvByO,QAAS,CACPb,QAAS,CACPe,SAAU5B,GAAmBG,IAAY+B,GAAIjK,KAIjD+M,YAAa,CACXnE,QAAS,CACPkB,WAAY,EACZI,YAAa,UAGhB,CACD,CAAEjF,WACF,CAAEuE,WACF,CAAEC,WACF,CAAEsD,YAAarC,IAAcqB,GAAUC,OAASxC,QDkErCnP,CA1ImB,EAChCmB,SACA2E,QACAkD,SACAnC,WACAsD,YACAgB,OACAa,OACAC,iBACAV,aACAyG,QACA7E,gBACAgB,UACAO,aACAxC,WACAzB,gBACAhD,aACA0K,YACAhD,aAEA,kBAAC,WAAD,KACE,kBAACR,GAAD,CACE7I,MAAOA,EACP2B,WAAYA,EACZuB,OAAQA,EACRnC,SAAUA,EACVqC,UAAU,IAGOiG,EACf,yBAAK9N,MAAOF,EAAOyP,WACjB,yBAAKvP,MAAOF,EAAOsR,KACjB,kBAAC,IAAD,CACE7D,QAAQ,EACRT,QAASA,EACTgE,UAAWA,GAEX,kBAAC,IAAD,CACEpD,GAAI,EACJ4D,SAAS,GAET,yBAAKtR,MAAOF,EAAOoN,SACjB,kBAAC,IAAD,KACE,kBAACS,GAAD,CACElJ,MAAOA,EACPe,SAAUA,EACVqF,SAAUA,EACVF,KAAMA,EACNC,eAAgBA,EAChBV,WAAYA,EACZJ,KAAMA,EACNnC,OAAQA,EACRmB,UAAWA,IAEEuE,EACb,kBAACO,GAAD,CACEnJ,MAAOA,EACPqH,cAAeA,EACfnE,OAAQA,EACRnC,SAAUA,IAjBhB,QAuBJ,kBAAC,IAAD,CACEkI,GAAI,EACJ4D,SAAS,GAET,kBAACC,GAAD,CACE9M,MAAOA,EACPkD,OAAQA,EACRgJ,MAAOA,EACP7H,UAAWA,QArD3B,CA6DM,yBAAK9I,MAAOF,EAAOoN,QAAnB,SACE,kBAAC,IAAD,KACE,kBAACS,GAAD,CACElJ,MAAOA,EACPe,SAAUA,EACVqF,SAAUA,EACVF,KAAMA,EACNC,eAAgBA,EAChBd,KAAMA,EACNnC,OAAQA,EACRmB,UAAWA,IAEEM,EACb,kBAAC,KAAD,CACE3E,MAAOA,EACPiH,KAAMpB,KAAKC,GAEVL,GAhBP,KAmBiBmD,EACb,kBAACO,GAAD,CACEnJ,MAAOA,EACPqH,cAAeA,EACfnE,OAAQA,EACRnC,SAAUA,IAxBhB,OA6BF,kBAAC+L,GAAD,CACE9M,MAAOA,EACPkD,OAAQA,EACRgJ,MAAOA,EACP7H,UAAWA,EAJb,a,wPElGR,MAAM0I,GAAc/T,IAAOA,KAAUA,IAAS,IAExCgU,GAAoBjU,GAAuBC,IAC/CA,IAAS,WAAW,GACpBA,IACEA,KAAO,CAAE,SAAU,QAClBiU,GAAQ5K,YACPC,YAAevJ,GACfkU,GAEFjU,KACEA,IAASkU,IAAIC,YACbnU,IAASkU,IAAIE,QAGjBpU,KAAS,GAbsCA,CAc/CD,GAGIsU,GAAkBrU,IAAO,CAC7B,CAAEA,KAAO,YAAcD,GAAU,kBAAC,GAAmBA,IACrD,CAAEC,KAAO,aAAeD,GAAU,kBAAC,GAAiBA,IACpD,CAAEC,IAAMD,GAAU,kBAAC,GAAqBA,MAqF3BmB,OAtCQC,YACrB,YACA,CACEC,KAAM,CACJkT,KACAC,KAEFjT,MAAO,CACL8J,uBAAa,CACXiB,KAAM,GACNc,eAAgB,KAChBV,WAAY,KACZ+H,KAAK,IAEPC,oBAAU,mBAAoB,sBAAuB,IAC5CpO,KAETqO,uBAAa,CACXrG,cAAe,EAAGsG,sBAAqD,KACrExG,WAASyG,SAASD,EAAkB,CAClChU,SAAU,IACVkU,MAAO,IACPC,QAAQ,OAId1N,IACAtH,oBAAWsJ,IAAD,CACRwG,WAAYoE,GAAiB5K,GAC7BgB,SAAUpK,KACRA,KAAgB+T,GAAa,SAC7B/T,IAAS,OAAO,GAFRA,CAGRoJ,QAMKlI,CAlFc,EAC3ByN,KACA3H,QACAkD,SACAY,UACA/C,WACAgN,OACAJ,mBACAvK,WACAD,YACA3C,0BACGzH,KAEH,kBAAC,WAAD,KACE,kBAACiV,EAAA,EAAD,CACErG,GAAIA,EACJ3H,MAAOA,EACPe,SAAUA,EACVmC,OAAQA,EACRY,QAASA,EACTiK,KAAMA,EACNhU,KAAK,YACLkU,MAAO7K,EACPD,UAAWA,GAEX,kBAACkK,GAAD,IACErN,MAAOA,EACPe,SAAUA,EACVmC,OAAQA,EACRkD,SAAUuB,EACVvE,SAAUA,EACVD,UAAWA,GACPpK,IAEN,kBAACmV,EAAD,CACElO,MAAOA,EACPQ,qBAAsBA,KAG1B,kBAAC,UAAD,CAASuN,KAAMJ,MClGJQ,c","file":"pex-static/5.9436e1eb741204513695.chunk.js","sourcesContent":["import color from 'color';\n\nexport default (c, a) =>\n color(c)\n .alpha(a)\n .string();\n","import * as r from 'ramda';\nimport { withProps } from '@team-griffin/rehook';\nimport { isInternalUrl, isHashUrl } from 'domain/url';\nimport { NavLink } from 'react-router-dom';\n\ninterface AnyProps {\n url?: string,\n action?: {\n url?: string,\n [key: string]: any,\n }\n [key: string]: any,\n}\n\nexport type UrlComponentType = typeof NavLink | 'a' | 'div';\nconst withUrlComponent = withProps((props: AnyProps) => r.pipe(\n r.either(\n r.prop('url'),\n r.path([ 'action', 'url' ]),\n ),\n r.cond([\n [\n r.isNil,\n () => ({\n Component: 'div',\n }),\n ],\n [\n isInternalUrl,\n (url) => ({\n Component: NavLink,\n to: url,\n }),\n ],\n [\n isHashUrl,\n (url) => ({\n Component: NavLink,\n to: url,\n }),\n ],\n [\n r.T,\n (url) => ({\n Component: 'a',\n href: url,\n }),\n ],\n ]),\n//@ts-ignore\n)(props));\n\nexport default withUrlComponent;","import React from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport stylesheet, { Styles } from './Parallax.stylesheet';\nimport Plx from 'react-plx';\nimport * as r from 'ramda';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport { Layer } from './Layer';\nimport pureEnhance from '@ux/pure-enhance';\n\ninterface OuterProps {\n layer: Layer,\n}\n\nexport interface InnerProps extends OuterProps {\n currentLanguage: string,\n styles: Styles,\n data: {\n start: string,\n duration: string,\n properties: [\n {\n startValue: number,\n endValue: number,\n property: string,\n },\n ],\n }\n}\nconst getParallaxData = ({\n layer,\n}: OuterProps) => {\n return [{\n start: 'self',\n // @TODO: this value will have to be determined by the ribbon's height.\n // We might have to use react-height here to help us.\n // ---\n // It is double the value of the viewheight to ensure that\n // it keeps performing the parallax scrolling past.\n // 200vh was an arbitary number. This will have to be tweaked with Matt's\n // consent.Make sure that when you tweak this number you also tweak\n // the height calc in the stylesheet\n duration: '200vh',\n properties: [\n {\n startValue: r.ifElse(\n r.equals('parallax'),\n r.always(r.negate(400)),\n r.always(0)\n )(layer.fx.type),\n endValue: 0,\n property: 'translateY',\n },\n ],\n }];\n};\n\nexport const PureParallax = ({\n styles,\n data,\n}: InnerProps) => (\n \n);\n\nexport const enhance = pureEnhance(\n 'Parallax',\n {\n hocs: [\n withLanguage,\n ],\n hooks: [\n withProps((props: OuterProps) => ({\n data: getParallaxData(props),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\nexport default enhance(PureParallax);\n","import { CSSProperties } from 'react';\nimport { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport { InnerProps } from './Parallax';\n\nexport interface Styles {\n image: CSSProperties,\n}\nexport default ({\n layer,\n currentLanguage,\n}: InnerProps) => {\n\n return useStyles({\n default: {\n image: {\n width: percentage(100),\n height: percentage(100),\n backgroundImage: `url(${urlLanguageParse(layer.imageUrl, currentLanguage)})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'center center',\n },\n },\n }, []);\n};\n","import React, { CSSProperties } from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport { percentage } from '@ux/style-utils';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport { useStyles } from '@team-griffin/stylr';\nimport pureEnhance from '@ux/pure-enhance';\nimport { Layer } from './Layer';\n\ninterface OuterProps {\n layer: Layer,\n}\n\ninterface InnerProps extends OuterProps {\n currentLanguage: string,\n imageUrl: string,\n styles: {\n image: CSSProperties,\n },\n}\n\nconst stylesheet = ({\n layer,\n imageUrl,\n}: InnerProps) => {\n\n return useStyles({\n default: {\n image: {\n width: percentage(100),\n height: percentage(100),\n backgroundSize: 'cover',\n backgroundPosition: layer.focus || 'center center',\n backgroundImage: `url(${imageUrl})`,\n backgroundRepeat: 'no-repeat',\n },\n },\n });\n};\n\nexport const PureStatic = ({\n styles,\n}: InnerProps) => (\n \n);\n\nexport const enhance = pureEnhance(\n 'Static',\n {\n hocs: [\n withLanguage,\n ],\n hooks: [\n withProps(({\n layer,\n currentLanguage,\n }: InnerProps) => {\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n const image = (isChrome === true && layer.webpUrl != null) ? layer.webpUrl : layer.imageUrl;\n const imageUrl = urlLanguageParse(image, currentLanguage);\n\n return {\n imageUrl,\n };\n }),\n withProps(stylesheet),\n ],\n },\n\n);\n\nexport default enhance(PureStatic);\n","import React from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport Parallax from './Parallax';\nimport Static from './Static';\nimport createImageAlt from 'presentation/utils/createImageAlt';\nimport stylesheet, { Styles } from './Layer.stylesheet';\nimport * as r from 'ramda';\n\nexport interface Layer {\n imageUrl?: string,\n focus: string,\n webpUrl?: string,\n fx: {\n type: string\n },\n}\n\ninterface OuterProps {\n layer: Layer,\n}\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n isParallax: boolean,\n}\nexport const PureLayer = ({\n styles,\n layer,\n isParallax,\n}: InnerProps) => (\n \n \n \n
\n \n
\n
\n \n \n \n
\n \n);\n\nexport const enhance = pureEnhance(\n 'Layer',\n {\n hooks: [\n withProps((props: OuterProps) => ({\n isParallax: r.pathEq([ 'layer', 'fx', 'type' ], 'parallax', props),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\nexport default enhance(PureLayer);\n","import { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n plx: CSSProperties,\n}\n\nexport default () => useStyles({\n default: {\n // We wrap the actual parallax element in another\n // element as parallax uses `transform` and we can\n // not specify 2 of those one a single element.\n root: {\n position: 'absolute',\n top: 0,\n width: percentage(100),\n height: percentage(100),\n overflow: 'hidden',\n },\n plx: {\n // We add on 400px here as a buffer space to work with parallaxing.\n // Whatever the amount to parallax is set to * 2.\n height: `calc(${percentage(100)} + 400px)`,\n position: 'absolute',\n top: 0,\n width: percentage(100),\n },\n },\n});\n","import LayerComponent, { Layer } from './Layer';\nexport {\n Layer,\n};\nexport default LayerComponent;\n","function createError(message) {\n var err = new Error(message);\n err.source = \"ulid\";\n return err;\n}\n// These values should NEVER change. If\n// they do, we're no longer making ulids!\nvar ENCODING = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"; // Crockford's Base32\nvar ENCODING_LEN = ENCODING.length;\nvar TIME_MAX = Math.pow(2, 48) - 1;\nvar TIME_LEN = 10;\nvar RANDOM_LEN = 16;\nfunction replaceCharAt(str, index, char) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\nfunction incrementBase32(str) {\n var done = undefined;\n var index = str.length;\n var char = void 0;\n var charIndex = void 0;\n var maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = str[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw createError(\"incorrectly encoded string\");\n }\n if (charIndex === maxCharIndex) {\n str = replaceCharAt(str, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(str, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === \"string\") {\n return done;\n }\n throw createError(\"cannot increment this string\");\n}\nfunction randomChar(prng) {\n var rand = Math.floor(prng() * ENCODING_LEN);\n if (rand === ENCODING_LEN) {\n rand = ENCODING_LEN - 1;\n }\n return ENCODING.charAt(rand);\n}\nfunction encodeTime(now, len) {\n if (isNaN(now)) {\n throw new Error(now + \" must be a number\");\n }\n if (now > TIME_MAX) {\n throw createError(\"cannot encode time greater than \" + TIME_MAX);\n }\n if (now < 0) {\n throw createError(\"time must be positive\");\n }\n if (Number.isInteger(now) === false) {\n throw createError(\"time must be an integer\");\n }\n var mod = void 0;\n var str = \"\";\n for (; len > 0; len--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\nfunction encodeRandom(len, prng) {\n var str = \"\";\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\nfunction decodeTime(id) {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw createError(\"malformed ulid\");\n }\n var time = id.substr(0, TIME_LEN).split(\"\").reverse().reduce(function (carry, char, index) {\n var encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw createError(\"invalid character found: \" + char);\n }\n return carry += encodingIndex * Math.pow(ENCODING_LEN, index);\n }, 0);\n if (time > TIME_MAX) {\n throw createError(\"malformed ulid, timestamp too large\");\n }\n return time;\n}\nfunction detectPrng() {\n var allowInsecure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var root = arguments[1];\n\n if (!root) {\n root = typeof window !== \"undefined\" ? window : null;\n }\n var browserCrypto = root && (root.crypto || root.msCrypto);\n if (browserCrypto) {\n return function () {\n var buffer = new Uint8Array(1);\n browserCrypto.getRandomValues(buffer);\n return buffer[0] / 0xff;\n };\n } else {\n try {\n var nodeCrypto = require(\"crypto\");\n return function () {\n return nodeCrypto.randomBytes(1).readUInt8() / 0xff;\n };\n } catch (e) {}\n }\n if (allowInsecure) {\n try {\n console.error(\"secure crypto unusable, falling back to insecure Math.random()!\");\n } catch (e) {}\n return function () {\n return Math.random();\n };\n }\n throw createError(\"secure crypto unusable, insecure Math.random not allowed\");\n}\nfunction factory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, currPrng);\n };\n}\nfunction monotonicFactory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n var lastTime = 0;\n var lastRandom = void 0;\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n if (seedTime <= lastTime) {\n var incrementedRandom = lastRandom = incrementBase32(lastRandom);\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seedTime;\n var newRandom = lastRandom = encodeRandom(RANDOM_LEN, currPrng);\n return encodeTime(seedTime, TIME_LEN) + newRandom;\n };\n}\nvar ulid = factory();\n\nexport { replaceCharAt, incrementBase32, randomChar, encodeTime, encodeRandom, decodeTime, detectPrng, factory, monotonicFactory, ulid };\n","import { useStyles } from '@team-griffin/stylr';\nimport longhand from '@team-griffin/css-longhand';\nimport { gu2px } from '@ux/theme-utils';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport * as r from 'ramda';\nimport { InnerProps } from './CornerEmbellishments';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n}\nconst cornerToPosition = r.cond([\n [ r.equals('topLeft'), r.always('0 0') ],\n [ r.equals('topRight'), r.always('right 0') ],\n [ r.equals('bottomLeft'), r.always('0 bottom') ],\n [ r.equals('bottomRight'), r.always('right bottom') ],\n]) as (str: string) => string;\n\nconst gu2CornerSize = (gu: number, spacing?: number) => `${gu2px(gu, spacing)}px ${gu2px(gu, spacing)}px`;\n\nconst cornerSize = (props: InnerProps) => r.cond([\n [\n r.propEq('isMinMd', true),\n r.always(gu2CornerSize(6, props.theme.spacing)),\n ],\n [\n r.propEq('isMinSm', true),\n r.always(gu2CornerSize(5, props.theme.spacing)),\n ],\n [\n r.T,\n r.always(gu2CornerSize(4)),\n ],\n])(props) as string;\n\nconst generateCornerImages = (props: InnerProps) => r.pipe(\n r.defaultTo({}),\n r.reject(r.isNil),\n r.toPairs,\n r.map(([ corner, url ]) => ({\n image: `url(${urlLanguageParse(url, props.currentLanguage)})`,\n size: cornerSize(props),\n position: cornerToPosition(corner),\n repeat: 'no-repeat',\n })),\n)(props.cornerEmbellishments) as unknown as {\n image: string,\n size: string,\n position: string,\n repeat: string,\n}[];\n\nconst cornerArrayToCssProperty = (\n prop: string,\n cornerImages: {\n image: string,\n size: string,\n position: string,\n repeat: string,\n }[],\n//r.pluck wants (never, unknown) as props. I'm more speciifc\n//@ts-ignore\n) => r.join(',', r.pluck(prop, cornerImages));\n\nexport default (props: InnerProps) => {\n const cornerImages = generateCornerImages(props);\n\n return useStyles({\n default: {\n root: {\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n ...longhand('background', {\n size: cornerArrayToCssProperty('size', cornerImages),\n image: cornerArrayToCssProperty('image', cornerImages),\n position: cornerArrayToCssProperty('position', cornerImages),\n repeat: cornerArrayToCssProperty('repeat', cornerImages),\n }),\n },\n },\n }, []);\n};","import React from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withProps } from '@team-griffin/rehook';\nimport { withBreakpointsHook } from '@ux/responsive';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport stylesheet, { Styles } from './CornerEmbellishments.stylesheet';\nimport { Theme } from '@ux/theme-utils';\n\nexport type cornerEmbellishments = {\n topRight?: string,\n bottomRight?: string,\n bottomLeft?: string,\n topLeft?: string\n};\ninterface OuterProps {\n theme: Theme,\n cornerEmbellishments?: cornerEmbellishments,\n}\n\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n currentLanguage: string,\n}\nconst PureCornerEmbellishments = ({\n styles,\n}: InnerProps) => (\n
\n);\n\nconst enhance = pureEnhance('CornerEmbellishments', {\n hocs: [\n withLanguage,\n ],\n hooks: [\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n});\n\nexport default enhance(PureCornerEmbellishments);","import React from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport stylesheet, { Styles } from './Wash.stylesheet';\nimport pureEnhance from '@ux/pure-enhance';\nimport { Theme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\n\ninterface OuterProps {\n theme: Theme,\n colorway: Colorway,\n layout: Layout,\n hasTiles: boolean,\n duoLayout: boolean,\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n}\n\nexport const PureWash = ({\n styles,\n}: InnerProps) => (\n
\n);\n\nexport const enhance = pureEnhance(\n 'Wash',\n {\n hooks: [\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n },\n);\n\nexport default enhance(PureWash);\n","import { useStyles } from '@team-griffin/stylr';\nimport { UnsafeColorway as Colorway } from 'domain/constants/colorway';\nimport {\n modifier,\n percentage,\n} from '@ux/style-utils';\nimport rgba from 'presentation/utils/rgba';\nimport { Alignment } from 'domain/constants/alignment';\nimport * as r from 'ramda';\nimport { InnerProps } from './Wash';\nimport { Color } from '@ux/theme-utils';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n}\nexport default (props: InnerProps) => {\n const {\n theme,\n colorway,\n } = props;\n\n const {\n palette,\n } = theme;\n\n const wash = (clr: Color|string) => r.ifElse(\n r.propEq('colorway', Colorway.LIGHT),\n r.always(rgba(clr, 0.9)),\n r.always(rgba(clr, 0.75)),\n )(props);\n\n const gradient = (clr: Color|string) => `\n linear-gradient(\n to right,\n ${rgba(clr, 0.9)} 40%,\n ${rgba(clr, 0.8)} 50%,\n ${rgba(clr, 0)} 65%\n )`;\n\n /*\n Creates a gradient or semi opaque wash\n Use the wash on mobile, and gradient on tablet and above, unless:\n - we're center aligned text\n - we're a duo layout\n - we have tiles and are on desktop view\n */\n const generateBackground = r.pipe(\n (clr: Color|string) => r.cond([\n // eslint-disable-next-line max-len\n [ r.pathEq([ 'layout', 'alignment' ], Alignment.CENTER), () => wash(clr) ],\n [ r.propEq('duoLayout', true), () => wash(clr) ],\n [ r.both(\n r.propEq('hasTiles', true),\n r.propEq('isMinLg'),\n ), () => wash(clr) ],\n [ r.propEq('isMinMd', true), () => gradient(clr) ],\n [ r.T, () => wash(clr) ],\n ])(props),\n );\n\n return useStyles({\n default: {\n root: {\n position: 'absolute',\n top: 0,\n width: percentage(100),\n height: percentage(100),\n },\n },\n\n [modifier('colorway', Colorway.LIGHT)]: {\n root: {\n background: generateBackground('#ffffff'),\n },\n },\n\n [modifier('colorway', Colorway.NEUTRAL)]: {\n root: {\n background: generateBackground(palette.grey10),\n },\n },\n\n [modifier('colorway', Colorway.DARK)]: {\n root: {\n background: generateBackground('#000000'),\n },\n },\n\n [modifier('colorway', Colorway.PRIMARY)]: {\n root: {\n background: generateBackground(palette.primary),\n },\n },\n\n [modifier('colorway', Colorway.PRIMARY_GRADIENT)]: {\n root: {\n background: generateBackground(palette.primary),\n },\n },\n\n [modifier('colorway', Colorway.HIGHLIGHT)]: {\n root: {\n background: generateBackground(palette.highlight),\n },\n },\n\n }, {\n colorway,\n });\n\n};\n","import React, { Fragment } from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport stylesheet, { Styles } from './Background.stylesheet';\nimport Layer, { Layer as ImageLayer } from 'presentation/components/common/Layer';\nimport Wash from './Wash';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport * as r from 'ramda';\nimport pureEnhance from '@ux/pure-enhance';\nimport { Layout } from 'domain/constants/layout';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Theme } from '@ux/theme-utils';\nimport { ResponsiveSet } from 'core/ribbons/primitives';\n\ninterface Background {\n fallback: {\n url: string,\n },\n mp4?: string,\n webm?: string,\n}\nexport type BackgroundArray = ResponsiveSet;\n\ninterface OuterProps {\n layout: Layout,\n background: BackgroundArray,\n duoLayout?: boolean,\n hasTiles?: boolean,\n colorway: Colorway,\n theme: Theme,\n}\ninterface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n activeBackground: Background,\n backgroundType: string,\n currentLanguage: string,\n}\n\ndeclare const layer: ImageLayer;\ndeclare const i: number;\n\nexport const PureBackground = ({\n styles,\n activeBackground,\n backgroundType,\n layout,\n duoLayout,\n hasTiles,\n colorway,\n theme,\n currentLanguage,\n}: InnerProps) => {\n return (\n \n \n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n );\n};\n\n//we need this because of the withProps that uses findResponsiveItem\ninterface MiddleProps extends OuterProps, BreakpointProps {}\nexport const enhance = pureEnhance(\n 'Background',\n {\n hocs: [\n withLanguage,\n ],\n hooks: [\n withBreakpointsHook,\n withProps((ownerProps: MiddleProps) => ({\n ...r.pipe(\n (ownerProps: MiddleProps) => findResponsiveItem(\n getBreakpoints(ownerProps),\n ownerProps.background\n ), r.defaultTo({}),\n (activeBackground) => ({\n activeBackground,\n backgroundType: r.ifElse(\n Array.isArray,\n r.always('image'),\n r.always('video'),\n )(activeBackground),\n })\n )(ownerProps),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\n\nexport default enhance(PureBackground);\n","import { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n videoWrapper: CSSProperties,\n video: CSSProperties,\n fallbackVideoImage: CSSProperties,\n}\n\nexport default () => {\n return useStyles({\n default: {\n videoWrapper: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden',\n },\n video: {\n objectFit: 'cover',\n objectPosition: 'center center',\n width: percentage(100),\n height: percentage(100),\n },\n fallbackVideoImage: {\n minHeight: percentage(100),\n minWidth: percentage(100),\n position: 'absolute',\n top: 0,\n },\n },\n }, []);\n};\n","import React, { Fragment, ReactNode } from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withProps, defaultProps } from '@team-griffin/rehook';\nimport { PreHeading01, Heading01, SubHeading01 } from '@ux/typography';\nimport PaddingBox, { Side } from '@ux/padding-box';\nimport CallToAction from 'components/common/CallToAction';\nimport { Size as ButtonSize } from '@ux/button';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport { getAgainst } from 'presentation/utils/colorway';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport stylesheet, { Styles } from './Body.stylesheet';\nimport { isNotNilOrEmpty } from '@team-griffin/capra';\nimport * as r from 'ramda';\nimport { Theme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\nimport { Colorway } from 'domain/constants/colorway';\nimport { CTA } from 'core/ribbons/cta';\n\n\nexport interface OuterProps {\n theme: Theme,\n hBaseline?: number,\n text: {\n precursor?: ShortcodeProps,\n title?: ShortcodeProps,\n body?: ShortcodeProps,\n },\n additionalText?: string|ReactNode,\n footerText?: string|ReactNode,\n ctas: CTA[],\n colorway: Colorway,\n layout: Layout,\n ribbonId: string,\n}\nexport interface DefaultProps extends OuterProps {\n hBaseline: number,\n}\nexport interface InnerProps extends DefaultProps, BreakpointProps {\n styles: Styles,\n hasPrecursor: boolean,\n hasTitle: boolean,\n hasBodyText: boolean,\n hasCta: boolean,\n hasFooterText: boolean,\n}\n\ndeclare const cta: CTA;\ndeclare const i: number;\n\nconst PureBody = ({\n theme,\n styles,\n hBaseline,\n hasPrecursor,\n hasTitle,\n hasBodyText,\n hasCta,\n hasFooterText,\n text,\n additionalText,\n footerText,\n ctas,\n colorway,\n layout,\n ribbonId,\n isMinSm,\n}: InnerProps) => (\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 {additionalText}\n \n
\n \n \n \n \n \n
\n
\n \n \n \n {footerText}\n \n \n
\n);\n\nconst enhance = pureEnhance('BillboardBody', {\n hooks: [\n defaultProps({\n hBaseline: 1,\n }),\n withProps((ownerProps: DefaultProps) => ({\n hasBodyText: r.pathSatisfies(\n isNotNilOrEmpty,\n [ 'text', 'body' ],\n ownerProps,\n ),\n hasCta: r.propSatisfies(\n isNotNilOrEmpty,\n 'ctas',\n )(ownerProps),\n hasPrecursor: r.pathSatisfies(\n isNotNilOrEmpty,\n [ 'text', 'precursor' ],\n ownerProps,\n ),\n hasTitle: r.pathSatisfies(\n isNotNilOrEmpty,\n [ 'text', 'title' ],\n ownerProps,\n ),\n hasFooterText: r.propSatisfies(\n isNotNilOrEmpty,\n 'footerText',\n )(ownerProps),\n })),\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n});\n\nexport default enhance(PureBody);","import { useStyles } from '@team-griffin/stylr';\nimport { getTitleColor, getBodyColor } from 'presentation/utils/colorway';\nimport { gu2px } from '@ux/theme-utils';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { modifier } from '@ux/style-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport { smallprint } from '@ux/type-size';\nimport * as r from 'ramda';\nimport { InnerProps } from './Body';\nimport { CSSProperties } from 'react';\n\n\nexport interface Styles {\n root: CSSProperties,\n precursor: CSSProperties,\n title: CSSProperties,\n subtitle: CSSProperties,\n ctas: CSSProperties,\n cta: CSSProperties,\n footerText: CSSProperties,\n}\nexport default ({\n theme,\n colorway,\n theme: {\n spacing,\n typography,\n },\n layout: {\n alignment,\n },\n isMinSm,\n}: InnerProps) => useStyles({\n default: {\n root: {\n position: 'relative',\n },\n precursor: {\n color: getTitleColor(theme, colorway),\n },\n title: {\n color: getTitleColor(theme, colorway),\n },\n subtitle: {\n color: getBodyColor(theme, colorway),\n marginTop: gu2px(2, spacing),\n },\n ctas: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: gu2px(2, spacing),\n overflow: 'hidden',\n },\n cta: {\n marginTop: gu2px(1, spacing),\n },\n footerText: {\n marginTop: gu2px(1, spacing),\n ...smallprint(typography),\n color: getBodyColor(theme, colorway),\n opacity: 0.9,\n },\n },\n\n isMinSm: {\n ctas: {\n flexDirection: 'row',\n ...cssSides('margin', Side.X, r.negate(gu2px(0.5, spacing))),\n },\n cta: {\n marginBottom: 0,\n ...cssSides('margin', Side.X, gu2px(0.5, spacing)),\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n root: {\n textAlign: 'center',\n },\n footerText: {\n textAlign: 'center',\n },\n ctas: {\n justifyContent: 'center',\n },\n },\n}, [\n { isMinSm },\n { alignment },\n]);","import React from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport PaddingBox from '@ux/padding-box';\nimport { Button, Kind, Against } from '@ux/button';\nimport Message from '@ux/message';\nimport { Colorway } from 'domain/constants/colorway';\nimport { withProps } from '@team-griffin/rehook';\nimport stylesheet, { Styles } from './Scroll.stylesheet';\nimport * as r from 'ramda';\nimport { Theme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\n\ninterface OuterProps {\n theme: Theme,\n colorway: Colorway,\n onScrollClick: (evt: any) => any,\n layout: Layout,\n}\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n scrollAgainst: Against,\n}\nexport const PureBillboardScroll = ({\n theme,\n onScrollClick,\n scrollAgainst,\n styles,\n}: InnerProps) => (\n \n \n \n \n \n);\n\nconst enhance = pureEnhance(\n 'BillboardScroll',\n {\n hooks: [\n withProps((ownerProps: OuterProps) => ({\n scrollAgainst: r.when(\n r.equals(Colorway.PRIMARY_GRADIENT),\n r.always(Colorway.PRIMARY),\n )(ownerProps.colorway),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\nexport default enhance(PureBillboardScroll);\n","import { useStyles } from '@team-griffin/stylr';\nimport { gu2px } from '@ux/theme-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport { modifier } from '@ux/style-utils';\nimport { InnerProps } from './Scroll';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n scroller: CSSProperties,\n}\nexport default ({\n theme: {\n spacing,\n },\n layout: {\n alignment,\n },\n}: InnerProps) => useStyles({\n default: {\n scroller: {\n paddingTop: gu2px(2, spacing),\n },\n },\n [modifier('alignment', Alignment.CENTER)]: {\n scroller: {\n textAlign: 'center',\n },\n },\n\n}, [\n { alignment },\n]);\n","import * as r from 'ramda';\nimport { gu2px } from '@ux/theme-utils';\nimport flexAnchors, { AnchorArray } from 'presentation/utils/flexAnchors';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport { Anchor } from 'domain/constants/anchor';\nimport { BreakpointProps } from '@ux/responsive';\n\n/**\n * Two layouts: Tiles and Duo, require separate containers to site\n * next to each other, bleed to the far edge, but still maintain the\n * site width rules of a single container. This function returns half\n * the width of the container size\n */\nexport const halfContainerWidth = (width: number, spacing: number) => r.pipe(\n // add the extra gu of spacing between the two items\n r.add(gu2px(1, spacing)),\n // account for the additional padding at either side\n r.divide(r.__, 2),\n // remove the accounted for spacing\n r.subtract(r.__, gu2px(1, spacing)),\n)(width);\n\n\nexport const getActiveAnchor = (anchor: AnchorArray, breakpoints: BreakpointProps) => {\n\n const getActive = (from: AnchorArray) => findResponsiveItem(\n breakpoints,\n from,\n );\n\n const activeAnchor = getActive(\n flexAnchors([ Anchor.TOP, null, null ], anchor),\n );\n\n return activeAnchor;\n};\n\nexport default null;","import React, { Fragment } from 'react';\nimport { withProps } from '@team-griffin/rehook';\nimport { Container, Row, Column, Justify } from '@ux/grid';\nimport pureEnhance from '@ux/pure-enhance';\nimport Background, { BackgroundArray } from '../Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport { Alignment } from 'domain/constants/alignment';\nimport stylesheet, { Styles } from './Generic.stylesheet';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean,\n background: BackgroundArray,\n onScrollClick: (evt: any) => any,\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n justify: Justify,\n}\n\nimport * as r from 'ramda';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\n\nexport const PureBillboardGeneric = ({\n styles,\n theme,\n layout,\n colorway,\n hBaseline,\n ctas,\n text,\n additionalText,\n footerText,\n justify,\n onScrollClick,\n showScroll,\n ribbonId,\n background,\n}: InnerProps) => (\n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n);\n\nconst enhance = pureEnhance('BillboardGeneric', [\n withBreakpointsHook,\n withProps((ownerProps: OuterProps) => ({\n justify: r.ifElse(\n r.pathEq([ 'layout', 'alignment' ], Alignment.CENTER),\n r.always(Justify.CENTER),\n r.always(null),\n )(ownerProps),\n })),\n withProps(stylesheet),\n]);\n\nexport default enhance(PureBillboardGeneric);\n","import { useStyles } from '@team-griffin/stylr';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport { getActiveAnchor } from '../styles';\nimport { InnerProps } from './Generic';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n content: CSSProperties,\n}\n\nexport default (props: InnerProps) => {\n const {\n layout,\n } = props;\n\n const {\n anchor,\n } = layout;\n\n\n const breakpointProps = getBreakpoints(props);\n const activeAnchor = getActiveAnchor(anchor, breakpointProps);\n\n return useStyles({\n default: {\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n },\n },\n }, []);\n};\n","import React, { Fragment } from 'react';\nimport { Container } from '@ux/grid';\nimport pureEnhance from '@ux/pure-enhance';\nimport Background, { BackgroundArray } from '../Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport stylesheet, { Styles } from './Duo.stylesheet';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport { withProps } from '@team-griffin/rehook';\nimport { Theme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\n\ninterface OuterProps extends BodyProps {\n theme: Theme,\n layout: Layout,\n colorway: Colorway,\n hBaseline: number,\n showScroll: boolean,\n duoLayout: boolean,\n background: BackgroundArray,\n onScrollClick: (evt: any) => any,\n}\n\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n}\n\nexport const PureBillboardDuo = ({\n styles,\n theme,\n layout,\n colorway,\n hBaseline,\n ctas,\n text,\n additionalText,\n footerText,\n onScrollClick,\n showScroll,\n ribbonId,\n background,\n}: InnerProps) => (\n \n \n
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n);\n\nconst enhance = pureEnhance('BillboardDuo', [\n withBreakpointsHook,\n withProps(stylesheet),\n]);\n\nexport default enhance(PureBillboardDuo);\n","import { useStyles } from '@team-griffin/stylr';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport { getActiveAnchor, halfContainerWidth } from '../styles';\nimport { breakpoints } from '@ux/responsive';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px } from '@ux/theme-utils';\nimport * as r from 'ramda';\nimport { percentage } from '@ux/style-utils';\nimport { InnerProps } from './Duo';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n content: CSSProperties,\n duoLayout: CSSProperties,\n}\nexport default (props: InnerProps) => {\n const {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n layout,\n duoLayout,\n theme,\n } = props;\n\n const {\n anchor,\n } = layout;\n\n const startDuoLayout = r.pathOr(false, [ 'layout', 'startDuoLayout' ], props);\n // @todo this prop isn't set properly due to how ribbon raid loops and creates duo\n // const endDuoLayout = r.pathOr(false, [ 'layout', 'endDuoLayout' ], props);\n\n const breakpointProps = getBreakpoints(props);\n const activeAnchor = getActiveAnchor(anchor, breakpointProps);\n\n return useStyles({\n default: {\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n },\n duoLayout: {\n ...cssSides('padding', Side.X, gu2px(1, theme.spacing)),\n ...cssSides('margin', Side.X, 'auto'),\n width: percentage(100),\n maxWidth: percentage(100),\n },\n },\n\n isMinSm: {\n duoLayout: {\n maxWidth: breakpoints.sm - gu2px(1, theme.spacing),\n },\n },\n\n isDuoLayoutMd: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.md, theme.spacing),\n marginLeft: 0,\n },\n },\n isDuoLayoutLg: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.lg, theme.spacing),\n },\n },\n isDuoLayoutXl: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.xl, theme.spacing),\n },\n },\n startDuoLayout: {\n duoLayout: {\n marginRight: 0,\n marginLeft: 'auto',\n },\n },\n }, [\n { anchor },\n { isMinSm },\n { isDuoLayoutMd: duoLayout && isMinMd },\n { isDuoLayoutLg: duoLayout && isMinLg },\n { isDuoLayoutXl: duoLayout && isMinXl },\n { startDuoLayout },\n ]);\n};\n","export enum Side {\n START = 'START',\n END = 'END',\n}\n\nexport enum Layout {\n DUO = 'DUO',\n TILES = 'TILES',\n}\n\nexport default null;","import React from 'react';\nimport {\n branch,\n} from 'recompose';\nimport PaddingBox from '@ux/padding-box';\nimport {\n Heading02,\n BodyCopy01,\n} from '@ux/typography';\nimport { withProps } from '@team-griffin/rehook';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport stylesheet, { Styles } from './Tile.stylesheet';\nimport Glyph from '@ux/glyphs';\nimport { gu2px, Theme } from '@ux/theme-utils';\nimport callToAction from 'presentation/hocs/callToAction';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport * as r from 'ramda';\nimport withUrlComponent, { UrlComponentType } from 'presentation/hooks/withUrlComponent';\nimport { withHover } from '@team-griffin/stylr';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\n\nexport interface TileProps {\n colorway: Colorway,\n type: string,\n text: {\n body?: ShortcodeProps,\n title?: ShortcodeProps,\n },\n action: {\n url: string,\n linkAttribution?: string,\n },\n}\ninterface OuterProps extends TileProps {\n theme: Theme,\n hBaseline: number,\n layout: Layout,\n leftTile: boolean,\n rightTile: boolean,\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n hover: boolean,\n Component: UrlComponentType,\n}\n\nexport const PureTile = ({\n styles,\n theme,\n colorway,\n text,\n hBaseline,\n action,\n Component,\n}: InnerProps) => {\n const {\n title,\n body,\n } = text;\n\n return (\n \n
\n \n
\n \n \n \n \n \n \n
\n
\n \n \n \n
\n \n
\n \n );\n};\n\nexport const enhance = pureEnhance('Tile', {\n hocs: [\n callToAction,\n branch(\n r.path([ 'action', 'url' ]),\n //@ts-ignore\n withHover\n ),\n ],\n hooks: [\n withBreakpointsHook,\n withUrlComponent,\n withProps(stylesheet),\n ],\n});\n\nexport default enhance(PureTile);","import { useStyles } from '@team-griffin/stylr';\nimport { gu2px } from '@ux/theme-utils';\nimport { getTitleColor, getBodyColor, getBackgroundColor } from 'presentation/utils/colorway';\nimport { modifier, percentage } from '@ux/style-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { breakpoints } from '@ux/responsive';\nimport { Side as TilesSide } from './constants';\nimport { halfContainerWidth } from './styles';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { InnerProps } from './Tile';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n container: CSSProperties,\n title: CSSProperties,\n subtitle: CSSProperties,\n box: CSSProperties,\n wrapperText: CSSProperties,\n wrapperIcon: CSSProperties,\n icon: CSSProperties,\n}\nexport default ({\n theme,\n colorway,\n hover,\n layout,\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n leftTile,\n rightTile,\n}: InnerProps) => {\n const {\n alignment,\n tilesSide,\n } = layout;\n\n const {\n spacing,\n } = theme;\n\n return useStyles({\n default: {\n root: {\n flex: 1,\n flexBasis: 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: isMinLg ? 'center' : 'flex-start',\n backgroundColor: getBackgroundColor(theme, colorway),\n textAlign: 'left',\n textDecoration: 'none',\n height: percentage(100),\n ...ribbonPadding({\n spacing,\n isMinSm,\n isMinLg,\n layout: {\n shrinkLeading: isMinLg && rightTile,\n shrinkTrailing: isMinLg && leftTile,\n },\n }),\n },\n container: {\n ...cssSides('padding', Side.X, gu2px(1, spacing)),\n ...cssSides('margin', Side.X, 'auto'),\n position: 'relative',\n width: percentage(100),\n maxWidth: percentage(100),\n },\n title: {\n color: getTitleColor(theme, colorway),\n paddingRight: gu2px(3, spacing),\n },\n subtitle: {\n color: getBodyColor(theme, colorway),\n marginTop: gu2px(2, spacing),\n },\n box: {\n display: 'flex',\n },\n wrapperText: {\n flex: 1,\n flexBasis: 'auto',\n paddingRight: gu2px(2, spacing),\n },\n wrapperIcon: {\n minWidth: gu2px(3, spacing),\n position: 'relative',\n paddingTop: gu2px(0.5, spacing),\n },\n icon: {\n color: getTitleColor(theme, colorway),\n opacity: 1,\n width: gu2px(3, spacing),\n position: 'absolute',\n right: 0,\n },\n },\n hover: {\n root: {\n textDecoration: 'none',\n },\n icon: {\n opacity: 1,\n marginRight: 0,\n animation: 'arrowAnimation 0.3s',\n animationTimingFunction: 'ease-in-out',\n animationDirection: 'normal',\n animationFillMode: 'forwards',\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n root: {\n textAlign: 'center',\n },\n },\n\n isMinSm: {\n container: {\n maxWidth: breakpoints.sm - gu2px(1, spacing),\n },\n },\n\n isMinMd: {\n container: {\n // theu're side by side so need an additional 1GU removing\n maxWidth: halfContainerWidth(breakpoints.md, spacing),\n },\n },\n\n isMinLg: {\n container: {\n maxWidth: halfContainerWidth(breakpoints.lg, spacing),\n },\n },\n isMinXl: {\n container: {\n maxWidth: halfContainerWidth(breakpoints.xl, spacing),\n },\n },\n leftTileMedium: {\n container: {\n marginRight: 0,\n },\n },\n rightTileMedium: {\n container: {\n marginLeft: 0,\n },\n },\n leftTileLarge: {\n container: {\n marginRight: 'auto',\n marginLeft: 0,\n },\n },\n\n tilesStartLarge: {\n container: {\n marginLeft: 'auto',\n marginRight: 0,\n },\n },\n }, [\n { alignment },\n { hover },\n { alignment },\n { isMinSm },\n { isMinMd },\n { isMinLg },\n { isMinXl },\n { leftTileMedium: leftTile && isMinMd },\n { rightTileMedium: rightTile && isMinMd },\n { leftTileLarge: leftTile && isMinLg },\n { tilesStartLarge: isMinLg && tilesSide === TilesSide.START },\n ]);\n};\n","import React from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport Tile, { TileProps } from './Tile';\nimport stylesheet, { Styles } from './Tiles.stylesheet';\nimport { gu2px, Theme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\nimport pureEnhance from '@ux/pure-enhance';\n\ninterface OuterProps {\n theme: Theme,\n tiles: TileProps[],\n hBaseline: number,\n layout: Layout,\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n}\nconst tileAnimation = (spacing: number) => `@keyframes arrowAnimation {\n from {\n right: ${gu2px(3, spacing)}px;\n opacity: 0.1;\n }\n to {\n right: ${gu2px(0, spacing)}px;\n opacity: 1;\n }\n}`;\n\ndeclare const i: number;\ndeclare const tile: TileProps;\n\nexport const PureTiles = ({\n theme,\n tiles,\n styles,\n hBaseline,\n layout,\n}: InnerProps) => (\n
\n \n \n \n \n
\n \n
\n);\n\n\nexport const enhance = pureEnhance(\n 'Tiles',\n {\n hooks: [\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n },\n\n);\n\nexport default enhance(PureTiles);\n","import { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport { InnerProps } from './Tiles';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n tile: CSSProperties,\n}\nexport default ({\n isMinMd,\n isMinLg,\n}: InnerProps) => {\n return useStyles({\n default: {\n tile: {\n flex: 1,\n flexBasis: 'auto',\n // Safari is not filling 100% height of flex parent\n // in nested flex containers\n WebkitFlexBasis: 0,\n position: 'relative',\n },\n },\n\n isMinMd: {\n root: {\n flexDirection: 'row',\n display: 'flex',\n },\n tile: {\n width: percentage(50),\n },\n },\n isMinLg: {\n root: {\n flexDirection: 'column',\n height: percentage(100),\n },\n tile: {\n width: percentage(100),\n },\n },\n }, [\n { isMinMd },\n { isMinLg },\n ]);\n};\n","import React, { Fragment } from 'react';\nimport { Container, Row, Column, Direction, Justify } from '@ux/grid';\nimport pureEnhance from '@ux/pure-enhance';\nimport Background, { BackgroundArray } from '../Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport Tiles from '../Tiles';\nimport PaddingBox, { Side } from '@ux/padding-box';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport { withProps } from '@team-griffin/rehook';\nimport { Side as TilesSide } from '../constants';\nimport stylesheet, { Styles } from './WithTiles.stylesheet';\nimport * as r from 'ramda';\nimport { TileProps } from '../Tile';\nimport { isNotNilOrEmpty } from 'crosscutting/ramda';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean,\n background: BackgroundArray,\n onScrollClick: (evt: any) => any,\n justify: Justify,\n tiles: TileProps[],\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n direction: Direction,\n hasFooterText: boolean,\n}\nexport const PureBillboardTiles = ({\n styles,\n theme,\n layout,\n colorway,\n hBaseline,\n ctas,\n text,\n additionalText,\n footerText,\n tiles,\n onScrollClick,\n justify,\n showScroll,\n ribbonId,\n hasFooterText,\n background,\n direction,\n isMinLg,\n}: InnerProps) => (\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 {footerText}\n \n \n \n \n \n \n
\n \n
\n
\n
\n);\n\nconst enhance = pureEnhance('BillboardTiles', [\n withBreakpointsHook,\n withProps((ownerProps: OuterProps) => ({\n direction: r.ifElse(\n r.pathEq([ 'layout', 'tilesSide' ], TilesSide.END),\n r.always(Direction.ROW),\n r.always(Direction.ROW_REVERSE),\n )(ownerProps),\n hasFooterText: r.propSatisfies(\n isNotNilOrEmpty,\n 'footerText',\n )(ownerProps),\n })),\n withProps(stylesheet),\n]);\n\nexport default enhance(PureBillboardTiles);\n","import { useStyles } from '@team-griffin/stylr';\nimport { getActiveAnchor, halfContainerWidth } from '../styles';\nimport { breakpoints } from '@ux/responsive';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px } from '@ux/theme-utils';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { Side as TilesSide } from '../constants';\nimport { percentage } from '@ux/style-utils';\nimport { InnerProps } from './WithTiles';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n content: CSSProperties,\n body: CSSProperties,\n container: CSSProperties,\n row: CSSProperties,\n}\n\nexport default ({\n layout,\n theme,\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n}: InnerProps) => {\n const {\n spacing,\n } = theme;\n\n const {\n anchor,\n tilesSide,\n } = layout;\n\n const activeAnchor = getActiveAnchor(anchor, {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n });\n\n return useStyles({\n default: {\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n ...ribbonPadding({\n spacing,\n isMinSm,\n isMinLg,\n }),\n },\n body: {\n flex: 1,\n flexBasis: 'auto',\n },\n },\n\n isMinLg: {\n container: {\n ...cssSides('padding', Side.X, gu2px(1, spacing)),\n display: 'flex',\n flex: 1,\n flexBasis: 'auto',\n // Safari is not filling 100% height of flex parent\n // in nested flex containers\n webkitFlexBasis: 0,\n width: percentage(100),\n maxWidth: percentage(100),\n },\n row: {\n width: percentage(100),\n },\n content: {\n marginLeft: 'auto',\n maxWidth: halfContainerWidth(breakpoints.lg, spacing),\n height: percentage(100),\n },\n },\n\n isMinXl: {\n content: {\n maxWidth: halfContainerWidth(breakpoints.xl, spacing),\n },\n },\n\n lgStartTile: {\n content: {\n marginLeft: 0,\n marginRight: 'auto',\n },\n },\n }, [\n { isMinSm },\n { isMinLg },\n { isMinXl },\n { lgStartTile: tilesSide === TilesSide.START && isMinLg },\n ]);\n};\n","import React, { Fragment, ReactNode } from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport {\n withProps,\n defaultProps,\n withHandlers,\n withState,\n} from '@team-griffin/rehook';\nimport Ribbon from '../Ribbon';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport { Fit, RibbonProps } from 'domain/constants/ribbons';\nimport { scroller, Element } from 'react-scroll';\nimport { ulid } from 'ulid';\nimport CornerEmbellishments, { cornerEmbellishments } from './CornerEmbellishments';\nimport BillboardGeneric from './layouts/Generic';\nimport BillboardDuo from './layouts/Duo';\nimport BillboardTiles from './layouts/WithTiles';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\nimport { OuterProps as BodyProps } from './Body';\nimport * as r from 'ramda';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport { CTA } from 'core/ribbons/cta';\n\nexport interface OuterProps extends BodyProps, RibbonProps {\n cornerEmbellishments?: cornerEmbellishments,\n}\ninterface DefaultProps extends OuterProps {\n ctas: CTA[],\n additionalText: string|ReactNode,\n footerText: string|ReactNode,\n duo: boolean,\n duoLayout: boolean,\n}\ninterface MiddleProps extends DefaultProps, BreakpointProps {}\ninterface InnerProps extends MiddleProps {\n bottomScrollName: string,\n hasTiles: boolean,\n}\n\nconst hasTwoTiles = r.pipe(r.length, r.equals(2));\n\nconst shouldShowScroll = (props: MiddleProps) => r.ifElse(\n r.propEq('isMinSm', true),\n r.pipe(\n r.path([ 'layout', 'fit' ]),\n (fit) => findResponsiveItem(\n getBreakpoints(props),\n fit,\n ),\n r.either(\n r.equals(Fit.FULLSCREEN),\n r.equals(Fit.FILL),\n ),\n ),\n r.always(false),\n)(props);\n\n\nconst BillboardLayout = r.cond([\n [ r.prop('hasTiles'), (props) => ],\n [ r.prop('duoLayout'), (props) => ],\n [ r.T, (props) => ],\n]);\n\nexport const PureBillboard = ({\n id,\n theme,\n layout,\n loading,\n colorway,\n name,\n bottomScrollName,\n hasTiles,\n duoLayout,\n cornerEmbellishments,\n ...props\n}: InnerProps) => (\n \n \n \n \n \n \n \n);\n\n\nexport const enhance = pureEnhance(\n 'Billboard',\n {\n hocs: [\n errorBoundary,\n visibilitySet,\n ],\n hooks: [\n defaultProps({\n ctas: [],\n additionalText: null,\n footerText: null,\n duo: false,\n }),\n withState('bottomScrollName', 'setBottomScrollName', () => {\n return ulid();\n }),\n withHandlers({\n onScrollClick: ({ bottomScrollName }: { bottomScrollName: string }) => () => {\n scroller.scrollTo(bottomScrollName, {\n duration: 500,\n delay: 100,\n smooth: true,\n });\n },\n }),\n withBreakpointsHook,\n withProps((ownerProps: MiddleProps) => ({\n showScroll: shouldShowScroll(ownerProps),\n hasTiles: r.both(\n r.propSatisfies(hasTwoTiles, 'tiles'),\n r.propEq('duo', false),\n )(ownerProps),\n })),\n ],\n },\n);\n\nexport default enhance(PureBillboard);\n","import Billboard, { OuterProps } from './Billboard';\nimport { Side } from './constants';\n\nexport {\n Side,\n OuterProps as BillboardProps,\n};\nexport default Billboard;"],"sourceRoot":""}