{"version":3,"sources":["webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/dedupe/index.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/blog/gatsby-blog-core/src/templates/collection.author.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/blog/gatsby-blog-pages/src/containers/Collection.Author.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/CardList/CardList.Slider.Styles.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/CardList/CardList.Slider.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/CardList/CardList.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/utils/reduceArray.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/PageTitle/PageTitle.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/utils/normalizeSlug.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/Pagination/Pagination.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/Avatar/Avatar.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-widgets/src/AuthorExpanded/AuthorExpanded.jsx"],"names":["module","exports","client","hasher","JSON","stringify","clone","lookup","i","length","elem","hashed","push","data","posts","collectionInfo","props","Seo","title","name","Divider","effectProps","effect","PageTitle","header","totalCount","AuthorExpanded","author","nodes","CardList","variant","columns","Pagination","pageInfo","slide","width","transition","opacity","transform","transformOrigin","left","fade","display","alignItems","controlBottom","top","bottom","ml","textAlign","verticalAlign","controlCenter","right","controlOver","p","bg","Slider","loadable","CardListSlider","React","ref","slidesToScroll","smoothAutoScroll","autoPlay","autoplaySpeed","dots","arrows","centerMode","centerPadding","controlPosition","beforeChange","children","context","useThemeUI","animationSettings","autoplay","cssEase","mobileSettings","swipeToSlide","responsiveSettings","theme","breakpoints","map","breakpoint","index","rSlidesToShow","rSlidesToScroll","parseInt","settings","slidesToShow","speed","infinite","responsive","css","styles","prevArrow","sx","nextArrow","loadableFallback","slice","fallback","defaultProps","rows","withTitleLink","limit","skip","distinct","slider","aside","asNavFor","loading","rest","reducedNodes","array","newArray","dedupe","node","id","reduceArray","titleLink","category","slug","sectionKey","hashCode","join","cardListVariant","buildResponsiveVariant","changeSlide","current","slickPause","slickGoTo","cards","Card","key","onMouseOver","onFocus","undefined","Section","count","fontSize","subheader","fontWeight","color","runninghead","mb","running","as","replace","wrapper","justifyContent","borderRadius","maxWidth","mx","item","number","py","button","minWidth","currentPage","pageCount","hasPreviousPage","hasNextPage","basePath","prefixPath","normalizeSlug","pagingPath","prevLink","nextLink","Link","to","bs","x","position","zIndex","pattern","backgroundSize","circle","height","arc","mt","boxShadow","t","colors","omegaLight","imageWrapper","img","Avatar","avatar","withPattern","patternStyles","size","alt","image","getImageVariant","MemphisPattern","card","flexDirection","avatarColumn","flexBasis","infoColumn","innerBox","flexGrow","px","bio","socialList","a","m","link","gradient","background","contentBg","Subheader","AuthorAvatar","thumbnail","GLink","aria-label","AuthorName","AuthorBio","description","AuthorSkills","skills","skill","AuthorSocialMedia","social","Navigation","items","attachSocialIcons","wrapperStyle","withLink"],"mappings":"mLAoBAA,EAAOC,QAlBP,SAAgBC,EAAQC,GACtBA,EAASA,GAAUC,KAAKC,UAIxB,IAHA,IAAIC,EAAQ,GACRC,EAAS,GAEJC,EAAI,EAAGA,EAAIN,EAAOO,OAAQD,IAAK,CACtC,IAAIE,EAAOR,EAAOM,GACdG,EAASR,EAAOO,GAEfH,EAAOI,KACVL,EAAMM,KAAKF,GACXH,EAAOI,IAAU,GAIrB,OAAOL,I,2MCdT,ECM8B,SAAC,GAAD,QAC5BO,KAAQC,EADoB,EACpBA,MAAOC,EADa,EACbA,eACZC,GAFyB,mBAI5B,QAAC,KAAWA,GACV,QAACC,EAAA,EAAD,CAAKC,MAAOH,EAAeI,QAC3B,QAACC,EAAA,EAAD,OACA,QAAC,KAAD,CAAOC,YAAa,CAAEC,OAAQ,gBAC5B,QAACC,EAAA,EAAD,CAAWC,OAAO,sBAAsBC,WAAYX,EAAMW,eAE5D,QAACL,EAAA,EAAD,OACA,QAAC,KAAD,MACE,QAAC,KAAD,MACE,QAACM,EAAA,EAAD,CAAgBC,OAAQZ,KACxB,QAACK,EAAA,EAAD,MACCN,EAAMc,QACL,QAACC,EAAA,EAAD,CACED,MAAOd,EAAMc,MACbE,QAAS,CAAC,gBAAiB,YAC3BC,QAAS,CAAC,EAAG,EAAG,EAAG,QAK3B,QAACX,EAAA,EAAD,OACA,QAAC,KAAD,MACE,QAACY,EAAA,GAAD,UAAgBlB,EAAMmB,SAAclB,Q,qMCnC1C,GACEmB,MAAO,CACLC,MAAM,OACN,eAAgB,CACdC,WAAW,iBACXC,QAAS,EACTC,UAAW,CAAC,KAAD,YACXC,gBAAgB,QAElB,kDAAmD,CACjDF,QAAS,CAAC,KAAM,GAChBC,UAAW,CAAC,KAAD,eAEb,eAAgB,CACdE,KAAK,iBAGTC,KAAM,CACJN,MAAM,OACN,kCAAmC,CACjCK,KAAK,sBAEP,eAAgB,CACdE,QAAQ,OACRC,WAAW,SACXH,KAAK,iBAGTI,cAAe,CACb,2BAA4B,CAC1BC,IAAI,OACJC,OAAQ,EACRN,KAAK,MACLF,UAAU,uBAEZ,cAAe,CACbS,GAAI,GAEN,cAAe,CACbC,UAAU,SACVb,MAAO,CAAC,OAAD,QACPU,IAAK,CAAC,OAAD,QACLC,OAAQ,GAEV,iBAAkB,CAChBG,cAAc,WAGlBC,cAAe,CACb,2BAA4B,CAC1BL,IAAI,MACJL,KAAK,MACLF,UAAU,0BAEZ,cAAe,CACbS,GAAI,GAEN,cAAe,CACbC,UAAU,SACVb,MAAO,CAAC,OAAD,QACPU,IAAK,CAAC,OAAD,QACLC,OAAQ,EACRK,MAAO,IAGXC,YAAa,CACXjB,MAAM,OACN,2BAA4B,CAC1BU,IAAI,OACJC,OAAQ,EAAE,EAAG,GACbN,KAAM,CAAC,EAAG,IAEZ,cAAe,CACbO,GAAI,GAEN,cAAe,CACbC,UAAU,SACVb,MAAM,OACNU,IAAK,CAAC,OAAQ,GACdC,OAAQ,CAAC,EAAD,QACRN,KAAM,CAAC,EAAG,GACVa,EAAG,EACHN,GAAI,GAEN,iBAAkB,CAChBL,QAAS,CAAC,eAAD,UAEX,qCAAsC,CACpCY,GAAG,W,ulBC/ET,IAAMC,GAASC,SAAS,kBACtB,iCAKIC,EAAiBC,cAAiB,SAAC1C,EAAO2C,GAC9C,IACE5B,EAaEf,EAbFe,QACA6B,EAYE5C,EAZF4C,eACAC,EAWE7C,EAXF6C,iBACAC,EAUE9C,EAVF8C,SACAC,EASE/C,EATF+C,cACAtB,EAQEzB,EARFyB,KACAuB,EAOEhD,EAPFgD,KACAC,EAMEjD,EANFiD,OACAC,EAKElD,EALFkD,WACAC,EAIEnD,EAJFmD,cACAC,EAGEpD,EAHFoD,gBACAC,EAEErD,EAFFqD,aACAC,EACEtD,EADFsD,SAGIC,GAAUC,UAEVC,EAAoB,CACxBb,eAAgB,EAChBc,UAAU,EACVC,QAAS,UAGLC,EAAiB,CACrBV,YAAYzB,EACZ0B,cAAe,OACfU,cAAc,EACdZ,QAAQ,EACRD,QAAMA,IAAQvB,IAGVqC,EAAqBP,EAAQQ,MAAMC,YAAYC,KACnD,SAACC,EAAYC,GACX,IAAMC,EACJrD,EAAQoD,GAASpD,EAAQtB,OAASsB,EAAQtB,OAAS,EAAI0E,GACnDE,EACJzB,EACEuB,GAASvB,EAAenD,OAASmD,EAAenD,OAAS,EAAI0E,GAEjE,MAAO,CACLD,WAAYI,SAASJ,GACrBK,SAAS,EAAD,CACNC,aAAcJ,EACdxB,eAAgByB,GACF,IAAVF,EAAcP,EAAiB,QAKvCW,EAAW,CACb5B,MACAU,eACAmB,aAAczD,EAAQA,EAAQtB,OAAS,GACvCmD,eAAgBA,EAAeA,EAAenD,OAAS,GACvDgF,MAAO,IACPzB,OACAC,SACAC,aACAC,gBACAuB,UAAU,EACVf,QAASlC,EAAO,WAAa,iCAC7BA,OACAkD,WAAYb,EACZc,KAAKA,OAAI,EAAD,SACFnD,EAAOoD,OAAcA,SACD,WAApBzB,GAAgCyB,iBACZ,WAApBzB,GAAgCyB,iBACZ,SAApBzB,GAA8ByB,gBAEpCC,WACE,QAAC,KAAD,CAAYC,GAAIF,cACd,QAAC,MAAD,OAGJG,WACE,QAAC,KAAD,CAAYD,GAAIF,cACd,QAAC,MAAD,QAKFhC,IACF0B,EAAQ,SACHA,GACAd,GAFG,IAGNgB,MAAO,IACP1B,cAAe,EACfE,QAAQ,EACRD,MAAM,MAILH,GAAoBC,IACvByB,EAAQ,SACHA,GACAd,GAFG,IAGNgB,MAAO,IACP1B,mBAIJ,IAAMkC,EAAmB3B,EAAS4B,MAAM,EAAGnE,EAAQA,EAAQtB,OAAS,IAEpE,OACE,QAAC8C,GAAD,UAAYgC,EAAZ,CAAsBY,SAAUF,IAC7B3B,MAKP,IAEAb,EAAe2C,aAAe,CAC5B3D,MAAM,EACNuB,MAAM,EACNC,QAAQ,EACRC,YAAY,EACZC,cAAe,OACfL,UAAU,EACVC,cAAe,IACfF,kBAAkB,EAClBD,eAAgB,CAAC,GACjByC,KAAM,EACNjC,gBAAiB,S,4HC/HbvC,EAAW6B,cAAiB,SAAC1C,EAAO2C,GACxC,IACE/B,EAYEZ,EAZFY,MACAE,EAWEd,EAXFc,QACAZ,EAUEF,EAVFE,MACAoF,EASEtF,EATFsF,cACAC,EAQEvF,EARFuF,MACAC,EAOExF,EAPFwF,KACAC,EAMEzF,EANFyF,SACAC,EAKE1F,EALF0F,OACAC,EAIE3F,EAJF2F,MACAC,EAGE5F,EAHF4F,SACAC,EAEE7F,EAFF6F,QACGC,GAZL,OAaI9F,EAbJ,GAeM+F,EC3BR,SAAgBC,EAAD,GAAuC,IAA7BT,EAA4B,EAA5BA,MAAOC,EAAqB,EAArBA,KAAMC,EAAe,EAAfA,SACpC,IAAKO,EAAO,OAAO,KAEnB,IAAKT,IAAUC,IAASC,EAAU,OAAOO,EAEzC,IAAIC,EAAWD,EAiBf,OAdIP,IACFQ,EAAWC,IAAOD,GAAU,SAAAE,GAAI,OAAIA,EAAKC,OAIvCZ,IACFS,EAAWA,EAASf,MAAMM,IAIxBD,IACFU,EAAWA,EAASf,MAAM,EAAGK,IAGxBU,EDKcI,CAAYzF,EAAO,CAAE6E,WAAUF,QAAOC,SAC3D,IAAKO,IAAiBA,EAAatG,OAAQ,OAAO,KAGlD,IAAM6G,EAAYhB,EACdS,EAAa,GAAGQ,UAAYR,EAAa,GAAGQ,SAASC,KACrD,GAGEC,EACJvG,GAAK,IAAOwG,OAASX,EAAa9B,KAAI,SAAAkC,GAAI,OAAIA,EAAKC,MAAIO,QAGnDC,GAAkBC,OACtBnB,EAjCyB,qBACD,oBAiCxB5E,GAGIgG,EAAc,SAAA3C,GACdyB,GAAYA,EAASmB,UACvBnB,EAASmB,QAAQC,aACjBpB,EAASmB,QAAQE,UAAU9C,KAKzB+C,EAAQnB,EAAa9B,KAAI,SAACkC,EAAMhC,GAAP,OAC7B,QAACgD,EAAA,GAAD,QACEC,IAAKjB,EAAKC,GACVtF,QAASA,EACTuG,YAAa,kBAAMP,EAAY3C,IAC/BmD,QAAS,kBAAMR,EAAY3C,IAE3B0B,QAAS7F,EAAMyB,KAAkB,IAAV0C,EAAc0B,OAAU0B,EAAa1B,GACxDM,EACAL,OAKFjF,EAAW,kBACf,QAAC,KAAD,CAAKkE,GAAI,CAAEjE,QAAS8F,IACjBlB,GACC,QAAC,GAAD,QACE/C,IAAKA,GAEDmD,GAEHoB,GAGHA,IAKN,OAAOhH,GACL,QAACsH,EAAA,EAAD,CAAStH,MAAOA,EAAOoG,UAAWA,EAAWc,IAAKX,EAAYd,MAAOA,IACnE,QAAC9E,EAAD,QAGF,QAACA,EAAD,SAIJ,IAEAA,EAASuE,aAAe,CACtBtE,QAAS,WACTC,QAAS,CAAC,GACV4E,OAAO,I,kGE/FHd,EAAS,CACb4C,MAAO,CACLC,SAAU,GAEZC,UAAW,CACTC,WAAW,OACXC,MAAM,aAERC,YAAa,CACXF,WAAW,OACXC,MAAM,YACNE,GAAI,IA8BR,EA1BkB,SAAC,GAAgD,IAA9CvH,EAA6C,EAA7CA,OAAQmH,EAAqC,EAArCA,UAAWK,EAA0B,EAA1BA,QAASvH,EAAiB,EAAjBA,WAC/C,OACE,oBACE,QAAC,KAAD,CAASK,QAAQ,KAAKmH,GAAG,MACtBzH,EAAQ,IACRC,IACC,QAAC,KAAD,CAAOK,QAAQ,YAAYiE,GAAIF,EAAO4C,OACnC,IACAhH,IAINkH,IACC,QAAC,KAAD,CAAM7G,QAAQ,KAAKiE,GAAIF,EAAO8C,WAC3BA,GAGJK,IACC,QAAC,KAAD,CAAMlH,QAAQ,KAAKiE,GAAIF,EAAOiD,aAC3BE,M,wHCrCX,WAAexB,GAAI,OAAIA,EAAK0B,QAAQ,OAAb,M,+kBCMvB,IAEMrD,EAAS,CACbsD,QAAS,CACPC,eAAe,gBACfzG,WAAW,SACXK,UAAU,SACVqG,aAAa,OACb/F,GAAG,YACHgG,SAAU,CAAC,OAAQ,KACnBC,GAAG,OACHlG,EAAG,GAELmG,KAAM,CACJrH,MAAM,OAERsH,OAAQ,CACNC,GAAI,GAENC,OAAQ,CACNC,SAAS,SA6Cb,EAzCmB,SAAC,GAOb,IANLC,EAMI,EANJA,YACAC,EAKI,EALJA,UACAC,EAII,EAJJA,gBACAC,EAGI,EAHJA,YAGI,IAFJC,gBAEI,MAFO,GAEP,MADJzC,KAEA,IAAKwC,IAAgBD,EAAiB,MAAO,GAC7C,IAAIG,EAAaC,EAAcF,QAF3B,MADG,GACH,IAGAG,EAAaD,EAAcD,EAlCb,QAoCZG,EACJR,GAAe,EAAf,GAAsBO,GAAaP,EAAc,GAAMK,EACnDI,EAAQ,GAAMF,GAAaP,EAAc,GAE/C,OACE,QAAC,KAAD,CAAM9D,GAAIF,EAAOsD,UACf,QAAC,KAAD,CAAKpD,GAAIF,EAAO2D,MACbO,IACC,QAAC,KAAD,CAAQjI,QAAQ,OAAOmH,GAAIsB,OAAMC,GAAIH,EAAUtE,GAAIF,EAAO8D,SACxD,QAAC,MAAD,MADF,cAMJ,QAAC,KAAD,CAAK5D,GAAE,OAAOF,EAAO2D,MAAS3D,EAAO4D,SAArC,SACO,sBAASI,GADhB,QACyC,sBAASC,KAElD,QAAC,KAAD,CAAK/D,GAAIF,EAAO2D,MACbQ,IACC,QAAC,KAAD,CAAQlI,QAAQ,OAAOmH,GAAIsB,OAAMC,GAAIF,EAAUvE,GAAIF,EAAO8D,QAA1D,QAEE,QAAC,MAAD,W,kuBCxDZ,IAAMc,EAAK,SAAAC,GAAC,MAAW,IAAJA,EAAP,OAEN7E,EAAS,CACbsD,QAAS,CACPwB,SAAS,WACTC,OAAQ,EACR5H,UAAU,SACV+F,GAAI0B,EAAG,IAETI,QAAS,CACPC,eAAe,OACfzI,QAAS,KAEX0I,OAAQ,gBAAG5I,EAAH,EAAGA,MAAH,MAAgB,CACtBA,MAAO,CAACsI,EAAG,IAAJ,QACPO,OAAO,OACP1B,SAAUnH,EACVkH,aAAa,OACbsB,SAAS,WACTrI,UAAU,+BACVE,KAAK,MACLK,IAAK4H,EAAG,GACRnH,GAAG,UAEL2H,IAAK,gBAAG9I,EAAH,EAAGA,MAAH,MAAgB,CACnBA,MAAO,CAACsI,EAAG,IAAJ,QACPO,OAAO,OACP1B,SAAUnH,EACVkH,aAAa,OACbsB,SAAS,WACTC,OAAQ,EACRpI,KAAK,MACLF,UAAU,kBACV4I,GAAIT,GAAI,GACR1H,GAAI0H,GAAI,GACRU,UAAW,SAAAC,GAAC,iBACXX,EAAG,GADQ,WAEXA,EAAG,GAFQ,WAGXW,EAAEC,OAAOC,WAHE,YAMdC,aAAc,CACZhC,GAAG,OACHiC,IAAK,CACHnC,aAAa,iCAKboC,EAAS,SAAC,GAQT,IAPLC,EAOI,EAPJA,OACAC,EAMI,EANJA,YAMI,IALJC,qBAKI,MALY,GAKZ,EAJJC,EAII,EAJJA,KACA1J,EAGI,EAHJA,MACA0E,EAEI,EAFJA,QACAiF,EACI,EADJA,IAEMC,EAAQL,IAAUM,OAAgBN,EAAQG,GAEhD,OAAKE,GAEL5J,EAAQA,GAAS4J,EAAM5J,OAGrB,QAAC,KAAD,CAAK4D,GAAIF,EAAOsD,UACd,QAAC,KAAD,KACGwC,IACC,QAACM,EAAA,EAAD,CAAgBlG,GAAE,OAAOF,EAAOgF,SAAYe,MAE9C,QAAC,IAAD,CACEG,MAAOA,EACPD,IAAKA,EACLjF,QAASA,EACTjB,KAAKA,OAAIC,EAAO0F,mBAdL,MAqBrB,IAEAE,EAAOrF,aAAe,CACpByF,KAAM,UACNF,aAAa,G,wBCrFT9F,EAAS,CACbqG,KAAM,CACJvB,SAAS,YAEXxB,QAAS,CACPgD,cAAe,CAAC,SAAD,OACfxB,SAAS,WACTC,OAAQ,GAEVwB,aAAc,CACZC,UAAU,OAEZC,WAAY,CACVD,UAAU,OAEZE,SAAU,CACRF,UAAU,MACVG,SAAU,EACVC,GAAI,CAAC,EAAG,GACRvB,GAAI,CAAC,EAAG,IAEVvC,UAAW,CACTE,MAAM,aAER1H,KAAM,CACJ6B,UAAW,CAAC,SAAD,QACXkI,GAAI,CAAC,EAAG,GACRuB,GAAI,GAENC,IAAK,CACH1J,UAAW,CAAC,SAAD,SAEb2J,WAAY,CACVC,EAAG,CACDC,EAAG,IAGPC,KAAM,CACJnC,SAAS,WACT9H,IAAK,GACLM,MAAO,GACPyH,OAAQ,GAEVC,QAAS,CACPxB,aAAa,MAEf0D,SAAU,CACRlB,KAAK,OACLxC,aAAa,KACbsB,SAAS,WACTnI,KAAM,EACNK,IAAK,EACL+H,OAAQ,EACRoC,WAAY,CACV,SAAA5B,GAAC,+BAC0BA,EAAEC,OAAO4B,UADnC,qCAED,SAAA7B,GAAC,iCAC4BA,EAAEC,OAAO4B,UADrC,yCAMDC,EAAY,SAAC,GAAD,IAAG5I,EAAH,EAAGA,SAAH,OAChB,QAAC,KAAD,CAASxC,QAAQ,KAAKiE,GAAIF,EAAO8C,WAC9BrE,IAIC6I,EAAe,SAAC,GAAD,IAAGhM,EAAH,EAAGA,KAAMiM,EAAT,EAASA,UAAW5F,EAApB,EAAoBA,KAApB,OACnB4F,GACE,QAAC,KAAD,MACE,QAAC,KAAD,CAAMnE,GAAIoE,OAAO7C,GAAIhD,EAAM8F,aAAYnM,IACrC,QAAC,EAAD,CAAQuK,OAAQ0B,EAAWtB,IAAK3K,MAGlC,MAEAoM,EAAa,SAAC,GAAD,IAAGpM,EAAH,EAAGA,KAAMqG,EAAT,EAASA,KAAT,OACjB,QAAC,KAAD,CAAKzB,GAAIF,EAAO1E,OACd,QAAC,KAAD,CAASW,QAAQ,OACf,QAAC,KAAD,CAAMmH,GAAIoE,OAAO7C,GAAIhD,GAClBrG,MAMHqM,EAAY,SAAC,GAAD,IAAGtM,EAAH,EAAGA,MAAOuM,EAAV,EAAUA,YAAV,OAChB,QAAC,KAAD,CAAK1H,GAAIF,EAAO6G,MACd,QAACQ,EAAD,KAAYhM,IACZ,QAAC,KAAD,KAAOuM,KAILC,EAAe,SAAC,GAAD,IAAGC,EAAH,EAAGA,OAAH,OACnBA,GACE,QAAC,KAAD,CAAK5H,GAAIF,EAAO0G,WACd,QAACW,EAAD,kBACCS,EAAO1I,KAAI,SAAA2I,GAAK,OACf,QAAC,KAAD,CAAMxF,IAAG,SAAWwF,GAAUA,OAGhC,MAEAC,EAAoB,SAAC,GAAD,IAAGC,EAAH,EAAGA,OAAH,OACxBA,GACE,QAAC,KAAD,CAAK/H,GAAIF,EAAO0G,WACd,QAACW,EAAD,sBACA,QAACa,EAAA,EAAD,CACEjM,QAAQ,WACRkM,OAAOC,OAAkBH,GACzBI,aAAcrI,EAAO8G,cAGvB,MAyCN,EAvCuB,SAAC,GAA0B,IAAxBhL,EAAuB,EAAvBA,OAAQwM,EAAe,EAAfA,SAChC,IAAKxM,EAAQ,OAAO,KAEpB,IAAQgM,EAAmBhM,EAAnBgM,OAAQG,EAAWnM,EAAXmM,OAEhB,OACE,QAAC,KAAD,CAAMhM,QAAQ,QAAQiE,GAAIF,EAAOqG,OAC/B,QAAC,KAAD,CAAMnG,GAAIF,EAAOsD,UACf,QAAC,KAAD,CAAKpD,GAAIF,EAAOuG,eACd,QAACe,EAAiBxL,KAEpB,QAAC,KAAD,CAAKoE,GAAIF,EAAOyG,aACd,QAACiB,EAAe5L,IAChB,QAAC,KAAD,CAAMoE,GAAIF,EAAOsD,UACf,QAAC,KAAD,CAAKpD,GAAIF,EAAO0G,WACd,QAACiB,EAAc7L,KAEfmM,GAAUH,KACV,QAAC,KAAD,CAAK5H,GAAIF,EAAO0G,WACd,QAAC,KAAD,MACE,QAACmB,EAAiB/L,IAClB,QAACkM,EAAsBlM,QAOlCwM,IACC,QAAC,KAAD,CAAOrM,QAAQ,MAAMmH,GAAIoE,OAAO7C,GAAI7I,EAAO6F,KAAMzB,GAAIF,EAAOiH,MAA5D,eAIF,QAAC,KAAD,CAAK/G,GAAIF,EAAOkH,YAChB,QAACd,EAAA,EAAD,CAAgBlG,GAAIF,EAAOgF","file":"component---packages-blog-gatsby-blog-core-src-templates-collection-author-js-500174b4b5b3507bf75a.js","sourcesContent":["'use strict';\n\nfunction dedupe(client, hasher) {\n hasher = hasher || JSON.stringify;\n var clone = [];\n var lookup = {};\n\n for (var i = 0; i < client.length; i++) {\n var elem = client[i];\n var hashed = hasher(elem);\n\n if (!lookup[hashed]) {\n clone.push(elem);\n lookup[hashed] = true;\n }\n }\n\n return clone;\n}\n\nmodule.exports = dedupe;","import { graphql } from 'gatsby'\nimport Collection from '../containers/Collection.Author'\n\nexport default Collection\n\nexport const pageQuery = graphql`\n query allArticleByAuthorQuery($skip: Int!, $limit: Int!, $slug: String!) {\n collectionInfo: articleAuthor(slug: { eq: $slug }) {\n ...ArticleAuthor\n }\n\n posts: allArticle(\n filter: {\n private: { ne: true }\n draft: {ne: true}\n author: { slug: { eq: $slug } }\n }\n sort: { fields: [date], order: DESC }\n limit: $limit\n skip: $skip\n ) {\n nodes {\n ...ArticlePreview\n ...ArticleThumbnailRegular\n }\n ...ArticlePagination\n }\n }\n`\n","import React from 'react'\nimport { Layout, Stack, Main, PreFooter } from '@layout'\nimport PageTitle from '@components/PageTitle'\nimport Pagination from '@components/Pagination'\nimport CardList from '@components/CardList'\nimport Divider from '@components/Divider'\nimport Seo from '@widgets/Seo'\nimport AuthorExpanded from '@widgets/AuthorExpanded'\n\nconst PageCollectionAuthors = ({\n data: { posts, collectionInfo },\n ...props\n}) => (\n \n \n \n \n \n \n \n \n
\n \n \n {posts.nodes && (\n \n )}\n
\n
\n \n \n \n \n
\n)\n\nexport default PageCollectionAuthors\n","export default {\n slide: {\n width: `full`,\n '.slick-slide': {\n transition: `all 600ms ease`,\n opacity: 1,\n transform: [null, `scale(1)`],\n transformOrigin: `left`\n },\n '.slick-slide.slick-active + :not(.slick-active)': {\n opacity: [null, 0],\n transform: [null, `scale(0.7)`]\n },\n '.slick-track': {\n left: `0 !important`\n }\n },\n fade: {\n width: `full`,\n '.slick-slide:not(.slick-active)': {\n left: `-9999px !important` //fix overlapping slides in fade mode\n },\n '.slick-track': {\n display: `flex`,\n alignItems: `center`,\n left: `0 !important`\n }\n },\n controlBottom: {\n '.slick-prev, .slick-next': {\n top: `auto`,\n bottom: 3,\n left: `50%`,\n transform: `translate(-125%, 0)`\n },\n '.slick-next': {\n ml: 5\n },\n '.slick-dots': {\n textAlign: `center`,\n width: [`full`, `auto`],\n top: [`100%`, `auto`],\n bottom: 0\n },\n '.slick-dots li': {\n verticalAlign: `middle`\n }\n },\n controlCenter: {\n '.slick-prev, .slick-next': {\n top: `50%`,\n left: `50%`,\n transform: `translate(-125%, -50%)`\n },\n '.slick-next': {\n ml: 5\n },\n '.slick-dots': {\n textAlign: `center`,\n width: [`full`, `auto`],\n top: [`100%`, `auto`],\n bottom: 4,\n right: 4\n }\n },\n controlOver: {\n width: `full`,\n '.slick-prev, .slick-next': {\n top: `auto`,\n bottom: [-2, 3],\n left: [4, 6]\n },\n '.slick-next': {\n ml: 5\n },\n '.slick-dots': {\n textAlign: `center`,\n width: `auto`,\n top: [`auto`, 5],\n bottom: [3, `auto`],\n left: [2, 4],\n p: 0,\n ml: 3\n },\n '.slick-dots li': {\n display: [`inline-block`, `block`]\n },\n '.slick-dots li.slick-active button': {\n bg: `alpha`\n }\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { IconButton, css, useThemeUI } from 'theme-ui'\nimport { FaChevronLeft, FaChevronRight } from 'react-icons/fa'\nimport 'slick-carousel/slick/slick.css'\nimport './CardList.Slider.css'\nimport styles from './CardList.Slider.Styles'\n\nimport loadable from '@loadable/component'\nconst Slider = loadable(() =>\n import(\n /* webpackChunkName: 'react-slick' */ /* webpackPrefetch: true */ 'react-slick'\n )\n)\n\nconst CardListSlider = React.forwardRef((props, ref) => {\n const {\n columns,\n slidesToScroll,\n smoothAutoScroll,\n autoPlay,\n autoplaySpeed,\n fade,\n dots,\n arrows,\n centerMode,\n centerPadding,\n controlPosition,\n beforeChange,\n children\n } = props\n\n const context = useThemeUI()\n\n const animationSettings = {\n slidesToScroll: 1,\n autoplay: true,\n cssEase: 'linear'\n }\n\n const mobileSettings = {\n centerMode: fade ? false : true,\n centerPadding: '40px',\n swipeToSlide: true,\n arrows: false,\n dots: dots && fade ? true : false\n }\n\n const responsiveSettings = context.theme.breakpoints.map(\n (breakpoint, index) => {\n const rSlidesToShow =\n columns[index >= columns.length ? columns.length - 1 : index]\n const rSlidesToScroll =\n slidesToScroll[\n index >= slidesToScroll.length ? slidesToScroll.length - 1 : index\n ]\n return {\n breakpoint: parseInt(breakpoint),\n settings: {\n slidesToShow: rSlidesToShow,\n slidesToScroll: rSlidesToScroll,\n ...(index === 0 ? mobileSettings : {})\n }\n }\n }\n )\n let settings = {\n ref,\n beforeChange,\n slidesToShow: columns[columns.length - 1],\n slidesToScroll: slidesToScroll[slidesToScroll.length - 1],\n speed: 800,\n dots,\n arrows,\n centerMode,\n centerPadding,\n infinite: true,\n cssEase: fade ? 'ease-out' : 'cubic-bezier(0.23, 1, 0.32, 1)',\n fade,\n responsive: responsiveSettings,\n css: css({\n ...(fade ? styles.fade : styles.slide),\n ...(controlPosition === 'bottom' && styles.controlBottom),\n ...(controlPosition === 'center' && styles.controlCenter),\n ...(controlPosition === 'over' && styles.controlOver)\n }),\n prevArrow: (\n \n \n \n ),\n nextArrow: (\n \n \n \n )\n }\n\n if (smoothAutoScroll) {\n settings = {\n ...settings,\n ...animationSettings,\n speed: 10000,\n autoplaySpeed: 0,\n arrows: false,\n dots: false\n }\n }\n\n if (!smoothAutoScroll && autoPlay) {\n settings = {\n ...settings,\n ...animationSettings,\n speed: 300,\n autoplaySpeed\n }\n }\n\n const loadableFallback = children.slice(0, columns[columns.length - 1])\n\n return (\n \n {children}\n \n )\n})\n\nexport default CardListSlider\n\nCardListSlider.defaultProps = {\n fade: false,\n dots: true,\n arrows: true,\n centerMode: false,\n centerPadding: '50px',\n autoPlay: false,\n autoplaySpeed: 3000,\n smoothAutoScroll: false,\n slidesToScroll: [1],\n rows: 1,\n controlPosition: 'sides'\n}\n\nCardListSlider.propTypes = {\n fade: PropTypes.bool,\n dots: PropTypes.bool,\n arrows: PropTypes.bool,\n centerMode: PropTypes.bool,\n centerPadding: PropTypes.string,\n autoPlay: PropTypes.bool,\n autoplaySpeed: PropTypes.number,\n smoothAutoScroll: PropTypes.bool,\n columns: PropTypes.arrayOf(PropTypes.number),\n slidesToScroll: PropTypes.arrayOf(PropTypes.number),\n controlPosition: PropTypes.oneOf(['bottom', 'over', 'sides', 'center'])\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Box } from 'theme-ui'\nimport buildResponsiveVariant from '@components/utils/buildResponsiveVariant'\nimport hashCode from '@components/utils/hashCode'\nimport reduceArray from '@components/utils/reduceArray'\nimport Section from '@components/Section'\nimport CardListSlider from './CardList.Slider'\nimport Card from '@components/Card'\n\nconst SLIDER_VARIANT_GROUP = 'lists.cards.slider'\nconst FIXED_VARIANT_GROUP = 'lists.cards.fixed'\n\nconst CardList = React.forwardRef((props, ref) => {\n const {\n nodes,\n variant,\n title,\n withTitleLink,\n limit,\n skip,\n distinct,\n slider,\n aside,\n asNavFor,\n loading,\n ...rest\n } = props\n\n const reducedNodes = reduceArray(nodes, { distinct, limit, skip })\n if (!reducedNodes || !reducedNodes.length) return null\n\n //Section title link for viewing more posts from same category\n const titleLink = withTitleLink\n ? reducedNodes[0].category && reducedNodes[0].category.slug\n : ''\n\n //Unique key for section\n const sectionKey =\n title && `${hashCode(reducedNodes.map(node => node.id).join())}`\n\n //Build responsive variant for card list\n const cardListVariant = buildResponsiveVariant(\n slider ? SLIDER_VARIANT_GROUP : FIXED_VARIANT_GROUP,\n variant\n )\n\n const changeSlide = index => {\n if (asNavFor && asNavFor.current) {\n asNavFor.current.slickPause()\n asNavFor.current.slickGoTo(index)\n }\n }\n\n //Array of cards\n const cards = reducedNodes.map((node, index) => (\n changeSlide(index)}\n onFocus={() => changeSlide(index)}\n //In sliders with fade effect apply loading to the first card only\n loading={props.fade ? (index === 0 ? loading : undefined) : loading}\n {...node}\n {...rest}\n />\n ))\n\n //Cards List (Fixed or Slider)\n const CardList = () => (\n \n {slider ? (\n changeSlide(index)}\n {...rest}\n >\n {cards}\n \n ) : (\n cards\n )}\n \n )\n\n return title ? (\n
\n \n
\n ) : (\n \n )\n})\n\nexport default CardList\n\nCardList.defaultProps = {\n variant: 'vertical',\n columns: [1],\n aside: false\n}\n\nCardList.propTypes = {\n variant: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.oneOf([\n 'horizontal',\n 'horizontal-aside',\n 'horizontal-md',\n 'horizontal-lg',\n 'horizontal-cover',\n 'horizontal-cover-hero',\n 'horizontal-cover-wide',\n 'horizontal-hero',\n 'vertical-cover',\n 'vertical',\n 'search'\n ])\n ]),\n loading: PropTypes.oneOf(['lazy', 'auto', 'eager']),\n columns: PropTypes.array,\n title: PropTypes.string,\n withTitleLink: PropTypes.bool,\n nodes: PropTypes.array,\n distinct: PropTypes.bool,\n limit: PropTypes.number,\n skip: PropTypes.number,\n aside: PropTypes.bool\n}\n","import dedupe from 'dedupe'\n\nexport default (array, { limit, skip, distinct }) => {\n if (!array) return null\n\n if (!limit && !skip && !distinct) return array\n\n let newArray = array\n\n //Remove duplicate array\n if (distinct) {\n newArray = dedupe(newArray, node => node.id)\n }\n\n // Skip specified number of first elements\n if (skip) {\n newArray = newArray.slice(skip)\n }\n\n //Limit total number of array\n if (limit) {\n newArray = newArray.slice(0, limit)\n }\n\n return newArray\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Heading, Text, Badge } from 'theme-ui'\n\nconst styles = {\n count: {\n fontSize: 4\n },\n subheader: {\n fontWeight: `body`,\n color: `omegaDark`\n },\n runninghead: {\n fontWeight: `body`,\n color: `omegaDark`,\n mb: 0\n }\n}\n\nconst PageTitle = ({ header, subheader, running, totalCount }) => {\n return (\n
\n \n {header}{' '}\n {totalCount && (\n \n {' '}\n {totalCount}\n \n )}\n \n {subheader && (\n \n {subheader}\n \n )}\n {running && (\n \n {running}\n \n )}\n
\n )\n}\n\nexport default PageTitle\n\nPageTitle.propTypes = {\n title: PropTypes.string,\n subheader: PropTypes.string,\n running: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n totalCount: PropTypes.number\n}\n","// normalize use of trailing slash\nexport default slug => slug.replace(/\\/*$/, `/`)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'gatsby'\nimport { Button, Flex, Box } from 'theme-ui'\nimport { FaChevronLeft, FaChevronRight } from 'react-icons/fa'\nimport normalizeSlug from '@components/utils/normalizeSlug'\n\nconst pagingParam = 'page'\n\nconst styles = {\n wrapper: {\n justifyContent: `space-between`,\n alignItems: `center`,\n textAlign: `center`,\n borderRadius: `full`,\n bg: `contentBg`,\n maxWidth: [`none`, 500],\n mx: `auto`,\n p: 1\n },\n item: {\n width: `1/3`\n },\n number: {\n py: 2\n },\n button: {\n minWidth: `full`\n }\n}\n\nconst Pagination = ({\n currentPage,\n pageCount,\n hasPreviousPage,\n hasNextPage,\n basePath = '',\n slug = ''\n}) => {\n if (!hasNextPage && !hasPreviousPage) return ''\n let prefixPath = normalizeSlug(basePath + slug)\n let pagingPath = normalizeSlug(prefixPath + pagingParam)\n\n const prevLink =\n currentPage >= 3 ? `${pagingPath}${currentPage - 1}` : prefixPath\n const nextLink = `${pagingPath}${currentPage + 1}`\n\n return (\n \n \n {hasPreviousPage && (\n \n )}\n \n \n Page {currentPage} of {pageCount}\n \n \n {hasNextPage && (\n \n )}\n \n \n )\n}\n\nexport default Pagination\n\nPagination.propTypes = {\n currentPage: PropTypes.number,\n pageCount: PropTypes.number,\n hasPreviousPage: PropTypes.bool,\n hasNextPage: PropTypes.bool,\n slug: PropTypes.string,\n pagingParam: PropTypes.string\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { GatsbyImage as Img } from 'gatsby-plugin-image'\nimport { Box, css } from 'theme-ui'\nimport MemphisPattern from '@components/MemphisPattern'\nimport getImageVariant from '@components/utils/getImageVariant'\n\n//Base size to keep all layers aligned easier\nconst bs = x => `${x * 0.35}rem`\n\nconst styles = {\n wrapper: {\n position: `relative`,\n zIndex: 2,\n textAlign: `center`,\n mb: bs(3)\n },\n pattern: {\n backgroundSize: `8rem`,\n opacity: 0.15\n },\n circle: ({ width }) => ({\n width: [bs(30), `full`],\n height: `full`,\n maxWidth: width,\n borderRadius: `full`,\n position: `absolute`,\n transform: `translate(-50%) scale(0.98)`,\n left: `50%`,\n top: bs(3),\n bg: `alpha`\n }),\n arc: ({ width }) => ({\n width: [bs(30), `full`],\n height: `full`,\n maxWidth: width,\n borderRadius: `full`,\n position: `absolute`,\n zIndex: 2,\n left: `50%`,\n transform: `translate(-50%)`,\n mt: bs(-1),\n ml: bs(-2),\n boxShadow: t => `\n\t\t\t${bs(2)}\n\t\t\t${bs(4)}\n\t\t\t${t.colors.omegaLight}\n\t\t`\n }),\n imageWrapper: {\n mx: `auto`,\n img: {\n borderRadius: `9999px 9999px 9999px 9999px`\n }\n }\n}\n\nconst Avatar = ({\n avatar,\n withPattern,\n patternStyles = {},\n size,\n width,\n loading,\n alt\n}) => {\n const image = avatar && getImageVariant(avatar, size)\n\n if (!image) return null\n\n width = width || image.width\n\n return (\n \n \n {withPattern && (\n \n )}\n \n \n \n )\n}\n\nexport default Avatar\n\nAvatar.defaultProps = {\n size: 'regular',\n withPattern: false\n}\n\nAvatar.propTypes = {\n size: PropTypes.oneOf([false, 'small', 'regular']),\n width: PropTypes.number,\n withPattern: PropTypes.bool,\n patternStyles: PropTypes.object,\n loading: PropTypes.string,\n alt: PropTypes.string\n}\n","import React from 'react'\nimport { Link as GLink } from 'gatsby'\nimport { Flex, Box, Text, Heading, Card, Badge, Link } from 'theme-ui'\nimport MemphisPattern from '@components/MemphisPattern'\nimport Avatar from '@components/Avatar'\nimport Navigation from '@components/Navigation'\nimport attachSocialIcons from '@helpers/attachSocialIcons'\n\nconst styles = {\n card: {\n position: `relative`\n },\n wrapper: {\n flexDirection: [`column`, `row`],\n position: `relative`,\n zIndex: 3\n },\n avatarColumn: {\n flexBasis: `1/3`\n },\n infoColumn: {\n flexBasis: `2/3`\n },\n innerBox: {\n flexBasis: `1/2`,\n flexGrow: 1,\n px: [0, 3],\n mt: [3, 0]\n },\n subheader: {\n color: `omegaDark`\n },\n name: {\n textAlign: [`center`, `left`],\n mt: [3, 0],\n px: 3\n },\n bio: {\n textAlign: [`center`, `left`]\n },\n socialList: {\n a: {\n m: 0\n }\n },\n link: {\n position: `absolute`,\n top: 10,\n right: 10,\n zIndex: 3\n },\n pattern: {\n borderRadius: `lg`\n },\n gradient: {\n size: `full`,\n borderRadius: `lg`,\n position: `absolute`,\n left: 0,\n top: 0,\n zIndex: 2,\n background: [\n t =>\n `linear-gradient(0deg, ${t.colors.contentBg} 20%, rgba(255, 255, 255, 0) 80%)`,\n t =>\n `linear-gradient(270deg, ${t.colors.contentBg} 20%, rgba(255, 255, 255, 0) 100%)`\n ]\n }\n}\n\nconst Subheader = ({ children }) => (\n \n {children}\n \n)\n\nconst AuthorAvatar = ({ name, thumbnail, slug }) =>\n thumbnail ? (\n \n \n \n \n \n ) : null\n\nconst AuthorName = ({ name, slug }) => (\n \n \n \n {name}\n \n \n \n)\n\nconst AuthorBio = ({ title, description }) => (\n \n {title}\n {description}\n \n)\n\nconst AuthorSkills = ({ skills }) =>\n skills ? (\n \n Expertise\n {skills.map(skill => (\n {skill}\n ))}\n \n ) : null\n\nconst AuthorSocialMedia = ({ social }) =>\n social ? (\n \n Social Media\n \n \n ) : null\n\nconst AuthorExpanded = ({ author, withLink }) => {\n if (!author) return null\n\n const { skills, social } = author\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {(social || skills) && (\n \n \n \n \n \n \n )}\n \n \n \n {withLink && (\n \n View Posts\n \n )}\n \n \n \n )\n}\n\nexport default AuthorExpanded\n"],"sourceRoot":""}