{"version":3,"sources":["webpack://switch-website/./src/helpers/constants/learn.js","webpack://switch-website/./src/components/learn/BlogFilters.js","webpack://switch-website/./src/components/learn/cards/BaseCard.js","webpack://switch-website/./src/components/learn/cards/BlogNewsletterCard.js","webpack://switch-website/./src/components/learn/cards/BlogPostCard.js","webpack://switch-website/./src/components/learn/BlogPostsList.js","webpack://switch-website/./src/components/learn/cards/BlogPostHeroCard.js","webpack://switch-website/./src/components/learn/FeaturedPosts.js","webpack://switch-website/./src/pages/learn.js","webpack://switch-website/./src/images/learn/shapes.png","webpack://switch-website/./src/images/learn/filters/article.svg","webpack://switch-website/./src/images/learn/filters/blog.svg","webpack://switch-website/./src/images/learn/filters/case-study.svg","webpack://switch-website/./src/images/learn/filters/latest.svg","webpack://switch-website/./src/images/learn/filters/podcast.svg","webpack://switch-website/./src/images/learn/filters/report.svg","webpack://switch-website/./src/images/learn/filters/webinar.svg","webpack://switch-website/./src/images/learn/filters/whitepaper.svg","webpack://switch-website/./src/images/product/analytics/noise.png"],"names":["newsletterPost","articlePostTypeFilter","blogPostTypeFilter","caseStudyPostTypeFilter","podcastPostTypeFilter","webinarPostTypeFilter","postTypeFilters","name","Trans","icon","orderedFilters","blogFiltersSchema","type","operator","xlBreakpoint","parseInt","breakpoints","smBreakpoint","Spacer","StyledDesktopFilterItem","LinkDark","PMono","colors","DesktopFilterItem","active","filterData","setFilter","onClick","className","StyledDesktopFilters","FlexBreak","DesktopFilters","filter","screenSize","useContext","ScreenSizeContext","_setFilter","f","sendGoogleAnalyticsEvent","filters","key","width","splice","Math","ceil","StyledMobileFilterItem","MobileFilterItem","StyledMobileFilters","dropdownAnimationTime","MobileFilters","useState","opened","setOpened","toggleDropdown","setTimeout","selectedFilter","hiddenFilters","getHiddenFilters","map","arrowClasses","dropdownClasses","setFilters","filtersSchema","searchBar","SearchBar","ignore","allowText","gaCategory","StyledBaseCard","fonts","cardBackgroundImageFilteredCss","css","BaseCard","children","BaseBlogPostCard","image","onMouseEnter","onMouseLeave","backgroundImageWithColorOverlay","getImage","hexToRgba","reverse","defaultProps","StyledBlogNewsletterCard","NoiseBackgroundImage","StyledBlogNewsletterForm","DefaultForm","SecondaryButton","BlogNewsletterForm","schema","formData","setFormData","formErrors","setFormErrors","isSubmitting","setIsSubmitting","isSubmitted","setIsSubmitted","formElements","input","id","errorMessages","fields","errorClass","length","htmlFor","label","element","value","onChange","event","message","getValue","target","disabled","attributes","messages","submitForm","preventDefault","frontendErrors","validateFormData","formPostToHubspot","newslistHubspotFormId","P","t","useTranslation","blogNewslistFormSchema","getBlogNewslistFormSchema","StyledBlogPostCardContent","fontWeights","StyledClickableOverlay","Link","ClickableOverlay","url","to","BlogPostCardContent","post","showButton","blog_tags","tag","publish_date","title","sub_title","hovered","setHovered","overlayButton","preview_image","localFile","feature_image","StyledPostsList","formattedPosts","posts","idx","skewedClass","PostElement","BlogPostCard","BlogNewsletterCard","push","StyledCardContent","StyledFeaturedPosts","HideKeepMounted","isVisible","hasBeenMounted","setHasBeenMounted","style","display","height","selectedPostIndex","setSelectedPostIndex","blogFeaturedPosts","useStaticQuery","featuredPosts","learn","index","numberOfElements","currentIndex","setIndex","rotationTimeout","HeroContainer","HeroContentContainer","ContentContainer","HeroContent","HeroFiltersContainer","LearnContentContainer","data","location","ContrastContext","setContrast","normalizedPosts","allStrapiBlogPost","edges","node","allowedPostsFilters","Object","keys","useFiltersFromQueryParameters","queryParamsFilters","setQueryParams","selectedFilters","setSelectedFilters","currentPage","setCurrentPage","filteredPosts","postsList","numberOfPosts","values","val","idxToInsert","elementsPerPage","random","toString","substring","addNewsletterPost","useFilters","paginatedPosts","usePagination","learnPaginationTopRef","useRef","SEO","ogTitle","description","AnimatedBackground","entries","forEach","ref","Pagination","scrollToRef","React","Article","props","createElement","module","exports","default","Blog","CaseStudy","Latest","Podcast","Report","Webinar","Whitepaper"],"mappings":"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","file":"component---src-pages-learn-js-e35795db3c21ba4b114a.js","sourcesContent":["import React from 'react';\n\nimport {Trans} from 'gatsby-plugin-react-i18next';\n\nimport Latest from '../../images/learn/filters/latest.svg';\nimport Article from '../../images/learn/filters/article.svg';\nimport Blog from '../../images/learn/filters/blog.svg';\nimport CaseStudy from '../../images/learn/filters/case-study.svg';\nimport Podcast from '../../images/learn/filters/podcast.svg';\nimport Report from '../../images/learn/filters/report.svg';\nimport Webinar from '../../images/learn/filters/webinar.svg';\nimport WhitePaper from '../../images/learn/filters/whitepaper.svg';\n\n\n/*\n * Public Elements\n */\nconst newsletterPost = 'NEWSLETTER_POST';\nconst latestPostTypeFilter = '';\nconst articlePostTypeFilter = 'ARTICLE';\nconst blogPostTypeFilter = 'BLOG';\nconst caseStudyPostTypeFilter = 'CASE_STUDY';\nconst podcastPostTypeFilter = 'PODCAST';\nconst reportPostTypeFilter = 'REPORT';\nconst webinarPostTypeFilter = 'WEBINAR';\nconst whitepaperPostTypeFilter = 'WHITEPAPER';\nconst postTypeFilters = {\n [latestPostTypeFilter]: {name: Latest, icon: },\n [articlePostTypeFilter]: {name: Article, icon:
},\n [blogPostTypeFilter]: {name: Blog, icon: },\n [caseStudyPostTypeFilter]: {name: Case Study, icon: },\n [podcastPostTypeFilter]: {name: Podcast, icon: },\n [reportPostTypeFilter]: {name: Report, icon: },\n [webinarPostTypeFilter]: {name: Webinar, icon: },\n [whitepaperPostTypeFilter]: {name: Whitepaper, icon: },\n};\nconst orderedFilters = [\n latestPostTypeFilter,\n articlePostTypeFilter,\n blogPostTypeFilter,\n caseStudyPostTypeFilter,\n\n // TODO: enable these filters when there are posts of this type\n // podcastPostTypeFilter,\n // reportPostTypeFilter,\n // webinarPostTypeFilter,\n // whitepaperPostTypeFilter,\n];\n\nconst blogFiltersSchema = {\n /* eslint-disable i18next/no-literal-string */\n type: {\n type: 'string',\n operator: 'equals',\n name: Type,\n },\n /* eslint-enable i18next/no-literal-string */\n};\n\n\n/*\n * Exports\n */\nexport {\n blogFiltersSchema,\n newsletterPost,\n latestPostTypeFilter,\n articlePostTypeFilter,\n blogPostTypeFilter,\n caseStudyPostTypeFilter,\n podcastPostTypeFilter,\n reportPostTypeFilter,\n webinarPostTypeFilter,\n whitepaperPostTypeFilter,\n postTypeFilters,\n orderedFilters,\n};\n","import React, {useContext, useState} from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from '@emotion/styled';\n\nimport SearchBar from '../common/filters/SearchBar';\nimport {LinkDark, PMono} from '../common/Typography';\nimport ArrowDown from '../../images/clickables/arrow_down.svg';\nimport {ScreenSizeContext} from '../../helpers/context';\nimport {breakpoints, colors} from '../../styles/theme';\nimport {orderedFilters, postTypeFilters} from '../../helpers/constants/learn';\nimport sendGoogleAnalyticsEvent from '../../helpers/utils/google-analytics';\n\n\n/*\n * Constants\n */\nconst xlBreakpoint = parseInt(breakpoints.xl.replace('px', ''), 10);\nconst dropdownAnimationTime = 500; // milliseconds\nconst smBreakpoint = parseInt(breakpoints.sm.replace('px', ''), 10);\n\n\n/*\n * Helpers\n */\n/**\n * All the filters to display on the dropdown (by removing the currently selected filter from the filters list)\n *\n * @param {string} selectedFilter - The currently selected filter\n * @returns {(string)[]}\n */\nfunction getHiddenFilters(selectedFilter) {\n return orderedFilters.filter(filter => filter !== selectedFilter);\n}\n\n\n/*\n * Private Elements\n */\nconst Spacer = styled.span`\n width: 10px;\n display: inline-block;\n`;\n\n// Desktop Filters\nconst StyledDesktopFilterItem = styled.div`\n margin-bottom: 5px;\n\n ${LinkDark} {\n ${PMono} {\n display: inline;\n }\n\n &.active,\n &:hover {\n color: ${colors.darkPurple};\n\n svg {\n * {\n stroke: ${colors.darkPurple};\n }\n }\n }\n }\n`;\n\nconst DesktopFilterItem = ({active, filterData, setFilter}) => (\n \n \n {filterData.icon}\n \n {filterData.name}\n \n \n);\n\nDesktopFilterItem.propTypes = {\n active: PropTypes.bool.isRequired,\n filterData: PropTypes.object.isRequired,\n setFilter: PropTypes.func.isRequired,\n};\n\nconst StyledDesktopFilters = styled.div`\n width: 100%;\n justify-content: space-between;\n`;\n\nconst FlexBreak = styled.div`\n flex-basis: 100%;\n height: 5px;\n`;\n\nconst DesktopFilters = ({filter, setFilter}) => {\n const screenSize = useContext(ScreenSizeContext);\n\n const _setFilter = f => () => {\n setFilter(f);\n\n // Send custom event to Google Analytics\n if (f) {\n /* eslint-disable-next-line i18next/no-literal-string */\n sendGoogleAnalyticsEvent('posts', 'filter-postType', f);\n }\n };\n const filters = orderedFilters.map(f => (\n \n ));\n\n // If the screen width is not extra large, divide the filters into 2 rows\n if (screenSize.width < xlBreakpoint && orderedFilters.length >= 6) {\n filters.splice(Math.ceil(orderedFilters.length), 0, );\n }\n\n return (\n \n {filters}\n \n );\n};\n\nDesktopFilters.propTypes = {\n filter: PropTypes.string.isRequired,\n setFilter: PropTypes.func.isRequired,\n};\n\n// Mobile Filters\nconst StyledMobileFilterItem = styled.div`\n width: 100%;\n padding-top: 10px;\n padding-bottom: 5px;\n padding-left: 28px;\n\n &:first-of-type {\n padding-top: 20px;\n }\n\n &:last-of-type {\n padding-bottom: 20px;\n }\n\n ${LinkDark} {\n color: ${colors.black};\n\n svg {\n * {\n stroke: ${colors.black};\n }\n }\n\n ${Spacer} {\n margin-right: 30px;\n }\n\n ${PMono} {\n display: inline;\n }\n\n &:hover {\n color: ${colors.darkPurple};\n\n svg {\n * {\n stroke: ${colors.darkPurple};\n }\n }\n }\n }\n`;\n\nconst MobileFilterItem = ({filterData, setFilter}) => (\n \n \n {filterData.icon}\n {filterData.name}\n \n \n);\n\nMobileFilterItem.propTypes = {\n filterData: PropTypes.object.isRequired,\n setFilter: PropTypes.func.isRequired,\n};\n\nconst StyledMobileFilters = styled.div`\n position: relative;\n width: 100%;\n\n .inverted {\n transform: scaleY(-1);\n }\n \n .selected-element {\n width: 100%;\n display: flex;\n justify-content: space-between;\n\n // Do not change color on hover/active/etc\n color: ${colors.white} !important;\n\n ${PMono} {\n display: inline;\n }\n\n svg {\n margin-top: auto;\n margin-bottom: auto;\n\n * {\n // Do not change color on hover/active/etc\n stroke: ${colors.white} !important;\n }\n }\n }\n\n .dropdown {\n position: absolute;\n top: 40px;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 230px;\n max-height: 0;\n z-index: 1;\n background-color: ${colors.white};\n border-radius: 5px;\n overflow: hidden;\n transition: max-height ${dropdownAnimationTime / 1000}s ease-out;\n box-shadow: 1px 3px 25px rgb(0, 0, 0, 0.3);\n\n &.open {\n max-height: 145px;\n }\n }\n`;\n\nconst MobileFilters = ({filter, setFilter}) => {\n const [opened, setOpened] = useState(false);\n\n const toggleDropdown = () => setOpened(!opened);\n const _setFilter = f => () => {\n toggleDropdown();\n\n // Wait until the animation ends to switch the filters\n setTimeout(() => {\n setFilter(f);\n\n // Send custom event to Google Analytics\n if (f) {\n /* eslint-disable-next-line i18next/no-literal-string */\n sendGoogleAnalyticsEvent('posts', 'filter-postType', f);\n }\n }, dropdownAnimationTime);\n };\n\n // Define the selected and hidden filters\n const selectedFilter = postTypeFilters[filter];\n const hiddenFilters = getHiddenFilters(filter).map(f => (\n \n ));\n\n /* eslint-disable-next-line i18next/no-literal-string */\n const arrowClasses = opened ? 'inverted' : '';\n /* eslint-disable-next-line i18next/no-literal-string */\n const dropdownClasses = opened ? 'open' : '';\n return (\n \n \n \n {selectedFilter.icon}\n \n {selectedFilter.name}\n \n \n \n\n
\n {hiddenFilters}\n
\n
\n );\n};\n\nMobileFilters.propTypes = {\n filter: PropTypes.string.isRequired,\n setFilter: PropTypes.func.isRequired,\n};\n\n\n/*\n * Public Elements\n */\nconst BlogFilters = ({filters, setFilters, filtersSchema}) => {\n const screenSize = useContext(ScreenSizeContext);\n\n // Do not spend time and resources rendering an inexistent element when the page first loads\n if (screenSize.width === 0) {\n return <>;\n }\n\n // The search bar is the same on desktop and mobile\n const searchBar = (\n \n );\n\n // If mobile, render for it\n if (screenSize.width < smBreakpoint) {\n return (\n <>\n setFilters({...filters, type})}\n />\n {searchBar}\n \n );\n }\n\n // Otherwise, render for desktop\n return (\n <>\n setFilters({...filters, type})}\n />\n {searchBar}\n \n );\n};\n\nBlogFilters.propTypes = {\n filters: PropTypes.object.isRequired,\n setFilters: PropTypes.func.isRequired,\n filtersSchema: PropTypes.object.isRequired,\n};\n\n\n/*\n * Exports\n */\nexport default BlogFilters;\n","/** @jsx jsx */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {css, jsx} from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {getImage} from 'gatsby-plugin-image';\nimport {BgImage} from 'gbimage-bridge';\n\nimport {hexToRgba} from '../../../helpers/utils';\nimport {breakpoints, colors, fonts} from '../../../styles/theme';\n\n\n/*\n * Private Elements\n */\nconst StyledBaseCard = styled.div`\n padding: 1rem;\n height: clamp(500px, 50vw, 600px);\n width: 100%;\n font-family: ${fonts.sansSerif};\n color: ${colors.white};\n border-radius: 5px;\n\n .content {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n\n @media (min-width: ${breakpoints.md}) {\n padding: 2rem;\n }\n`;\n\n// Base Blog Post Card\nconst cardBackgroundImageFilteredCss = css`\n position: relative;\n width: 100%;\n\n &:before,\n &:after {\n border-radius: 5px;\n overflow: hidden;\n filter: grayscale(100%);\n }\n\n &:hover,\n &:focus-within {\n &:before,\n &:after {\n filter: none;\n }\n }\n\n &:focus-within {\n &:before,\n &:after {\n outline: 3px solid ${colors.darkPurple};\n }\n }\n`;\n\n\n/*\n * Public Elements\n */\nconst BaseCard = ({children}) => (\n \n {children}\n \n);\n\nBaseCard.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nconst BaseBlogPostCard = ({image, onMouseEnter = () => {}, onMouseLeave = () => {}, children}) => {\n // Semi-transparent color gradient on top of the background image.\n // This helps the bottom text be (more) readable.\n const backgroundImageWithColorOverlay = [\n getImage(image),\n 'linear-gradient(to bottom, rgba(255, 255, 255, 0.5) 10%, rgba(255, 255, 255, 0) 40%)',\n `linear-gradient(to top, ${colors.darkPurple} 5%, ${hexToRgba(colors.darkPurple, 0)} 65%)`,\n ].reverse();\n\n return (\n \n \n {children}\n \n \n );\n};\n\nBaseBlogPostCard.propTypes = {\n image: PropTypes.object.isRequired,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n children: PropTypes.node.isRequired,\n};\n\nBaseBlogPostCard.defaultProps = {\n onMouseEnter: () => {},\n onMouseLeave: () => {},\n};\n\n\n/*\n * Exports\n */\nexport default BaseCard;\nexport {\n BaseBlogPostCard,\n};\n","/** @jsx jsx */\nimport React, {useState} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {jsx} from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {Trans, useTranslation} from 'gatsby-plugin-react-i18next';\n\nimport {colors} from '../../../styles/theme';\nimport {H3Mono, P} from '../../common/Typography';\nimport NoiseBackgroundImage from '../../../images/product/analytics/noise.png';\nimport {DefaultForm, FormError} from '../../common/Forms';\nimport {SecondaryButton} from '../../common/Clickables';\nimport BaseCard from './BaseCard';\nimport {getBlogNewslistFormSchema, newslistHubspotFormId} from '../../../helpers/constants/forms';\nimport {formPostToHubspot, validateFormData} from '../../../helpers/utils/forms';\n\n\n/*\n * Private Elements\n */\nconst StyledBlogNewsletterCard = styled.div`\n border-radius: 5px;\n background: repeat url(${NoiseBackgroundImage}),\n linear-gradient(45deg, ${colors.purple} 0%, ${colors.darkPurple} 60%, #000000 120%);\n\n span {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n height: 100%;\n }\n`;\n\nconst StyledBlogNewsletterForm = styled(DefaultForm)`\n ${SecondaryButton} {\n float: right;\n margin-top: 10px;\n }\n`;\n\nconst BlogNewsletterForm = ({schema}) => {\n const [formData, setFormData] = useState({});\n const [formErrors, setFormErrors] = useState({});\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isSubmitted, setIsSubmitted] = useState(false);\n\n const formElements = schema.map(input => {\n const id = `blogNewsletterForm-${input.name}`;\n\n const onChange = event => {\n // Clean error message when the form values changes\n if (formErrors?.message) {\n formErrors.message = null;\n }\n\n setFormErrors({...formErrors, fields: {...formErrors?.fields, [input.name]: null}});\n setFormData({...formData, [input.name]: input.getValue ? input.getValue(event) : event.target.value});\n };\n\n const errorMessages = formErrors.fields?.[input.name];\n // eslint-disable-next-line i18next/no-literal-string\n const errorClass = errorMessages && errorMessages.length ? 'error' : '';\n\n return (\n
\n \n\n \n\n \n
\n );\n });\n\n const submitForm = async event => {\n event.preventDefault();\n setIsSubmitting(true);\n setFormErrors({});\n\n try {\n const frontendErrors = validateFormData(formData, schema);\n if (frontendErrors) {\n setFormErrors(frontendErrors);\n return false;\n }\n\n const formPostResult = await formPostToHubspot(newslistHubspotFormId, formData);\n if (!formPostResult) {\n setFormErrors({\n message: [Couldn't submit response. Please, try again later.],\n });\n return false;\n }\n setIsSubmitted(true);\n } finally {\n setIsSubmitting(false);\n }\n return true;\n };\n\n // If the form is submitted, simply show the thank you message...\n if (isSubmitted) {\n return (\n \n Thanks for joining!\n

You will receive notifications about upcoming events in your email address.

\n
\n );\n }\n\n return (\n <>\n Join our list and be the first to learn about upcoming events.\n \n {formElements}\n\n \n Submit\n \n \n \n );\n};\n\nBlogNewsletterForm.propTypes = {\n schema: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n};\n\n\n/*\n * Public Elements\n */\nconst BlogNewsletterCard = () => {\n const {t} = useTranslation();\n const blogNewslistFormSchema = getBlogNewslistFormSchema(t);\n\n return (\n \n \n \n \n \n );\n};\n\n\n/*\n * Exports\n */\nexport default BlogNewsletterCard;\n","/** @jsx jsx */\nimport React, {useState} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {jsx} from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {Trans} from 'gatsby-plugin-react-i18next';\n\nimport {BaseBlogPostCard} from './BaseCard';\nimport {breakpoints, colors, fonts, fontWeights} from '../../../styles/theme';\nimport {postTypeFilters} from '../../../helpers/constants/learn';\nimport {ArrowCircleButton, LinkAsPrimaryButton} from '../../common/Clickables';\nimport {Link} from '../../common/Typography';\n\n\n/*\n * Private Elements\n */\nconst StyledBlogPostCardContent = styled.div`\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n font-family: ${fonts.sansSerif};\n color: ${colors.white};\n\n p {\n margin: 0;\n }\n\n .top {\n display: flex;\n justify-content: space-between;\n margin-bottom: auto;\n\n color: ${colors.darkPurple};\n font-family: ${fonts.monospace};\n font-weight: ${fontWeights.semiBold};\n font-size: 10px;\n line-height: 19px;\n\n .category {\n svg {\n margin-right: 5px;\n\n * {\n stroke: ${colors.darkPurple};\n }\n }\n\n p {\n font-size: 12px;\n line-height: 22px;\n }\n }\n }\n\n .bottom {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-end;\n\n .left {\n flex-basis: 60ch;\n flex-grow: 1;\n padding-right: 1rem;\n \n .date {\n font-size: 10px;\n line-height: 13px;\n margin-bottom: 30px;\n }\n\n .title {\n font-size: 20px;\n font-weight: ${fontWeights.semiBold};\n line-height: 27px;\n margin-bottom: 20px;\n }\n\n .text {\n font-size: 12px;\n line-height: 19px;\n }\n }\n\n .right {\n margin-top: 1rem;\n }\n }\n\n @media (min-width: ${breakpoints.md}) {\n .top {\n font-size: clamp(10px, 1.5vw, 12px);\n line-height: clamp(19px, 2vw, 22px);\n }\n\n .bottom {\n .left {\n .date {\n font-size: clamp(10px, 2vw, 12px);\n line-height: clamp(13px, 2vw, 15px);\n }\n\n .title {\n font-size: clamp(20px, 2vw, 24px);\n line-height: clamp(27px, 2vw, 32px);\n }\n\n .text {\n font-size: clamp(12px, 1.5vw, 14px);\n line-height: clamp(19px, 1.5vw, 22px);\n }\n }\n }\n }\n`;\n\nconst StyledClickableOverlay = styled(Link)`\n position: absolute;\n left: 50%;\n bottom: 50%;\n\n .arrow-circle-button {\n position: relative;\n transform: translateX(-50%) translateY(50%);\n }\n`;\n\nconst ClickableOverlay = ({url}) => (\n \n \n \n);\n\nClickableOverlay.propTypes = {\n url: PropTypes.string.isRequired,\n};\n\n\n/*\n * Public Elements\n */\nconst BlogPostCardContent = ({post, showButton = false}) => (\n \n
\n
\n {postTypeFilters[post.type].icon}\n

{postTypeFilters[post.type].name}

\n
\n
{post.blog_tags[0]?.tag}
\n
\n
\n
\n
{post.publish_date}
\n

{post.title}

\n

{post.sub_title}

\n
\n {showButton && (\n
\n \n View this article\n \n
\n )}\n
\n
\n);\n\nBlogPostCardContent.propTypes = {\n post: PropTypes.object.isRequired,\n showButton: PropTypes.bool,\n};\n\nBlogPostCardContent.defaultProps = {\n showButton: false,\n};\n\nconst BlogPostCard = ({post}) => {\n const [hovered, setHovered] = useState(false);\n const overlayButton = hovered ? : null;\n const onMouseEnter = () => setHovered(true);\n const onMouseLeave = () => setHovered(false);\n\n // Use the post preview image on the card if exists, else use the post image (hero image)\n return (\n \n {overlayButton}\n \n \n );\n};\n\nBlogPostCard.propTypes = {\n post: PropTypes.object.isRequired,\n};\n\n\n/*\n * Exports\n */\nexport default BlogPostCard;\nexport {\n BlogPostCardContent,\n};\n","/** @jsx jsx */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Trans} from 'gatsby-plugin-react-i18next';\nimport styled from '@emotion/styled';\nimport {jsx} from '@emotion/react';\n\nimport BlogNewsletterCard from './cards/BlogNewsletterCard';\nimport BlogPostCard from './cards/BlogPostCard';\nimport {PMono} from '../common/Typography';\nimport {newsletterPost} from '../../helpers/constants/learn';\nimport {breakpoints} from '../../styles/theme';\n\n\n/*\n * Public Elements\n */\nconst StyledPostsList = styled.div`\n .blog-post {\n padding: 15px 0;\n\n &.empty {\n margin: auto;\n text-align: center;\n }\n }\n\n @media (min-width: ${breakpoints.md}) {\n .blog-post {\n padding-left: 15px;\n padding-right: 15px;\n }\n }\n\n @media (min-width: ${breakpoints.lg}) {\n padding-top: 105px;\n\n .blog-post {\n &.skewed {\n margin-top: -120px;\n }\n }\n }\n`;\n\nconst BlogPostsList = ({posts}) => {\n const formattedPosts = posts.map((post, idx) => {\n // eslint-disable-next-line i18next/no-literal-string\n const skewedClass = (idx - 1) % 3 ? 'skewed' : '';\n const PostElement = post.type !== newsletterPost ? BlogPostCard : BlogNewsletterCard;\n return (\n
\n \n
\n );\n });\n\n // Add an empty message row if there are no posts\n if (!formattedPosts.length) {\n formattedPosts.push(\n
\n No blog posts match the selected filters.\n
,\n );\n }\n\n return (\n \n {formattedPosts}\n \n );\n};\n\nBlogPostsList.propTypes = {\n posts: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n};\n\n\n/*\n * Exports\n */\nexport default BlogPostsList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from '@emotion/styled';\n\nimport {BaseBlogPostCard} from './BaseCard';\nimport {BlogPostCardContent} from './BlogPostCard';\n\n\n/*\n * Private Elements\n */\nconst StyledCardContent = styled.div`\n height: 100%;\n width: 100%;\n`;\n\n\n/*\n * Public Elements\n */\nconst BlogPostHeroCard = ({post}) => (\n // Use the post preview image on the card if exists, else use the post image (hero image)\n \n \n \n \n \n);\n\nBlogPostHeroCard.propTypes = {\n post: PropTypes.object.isRequired,\n};\n\n\n/*\n * Exports\n */\nexport default BlogPostHeroCard;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {graphql, useStaticQuery} from 'gatsby';\n\nimport styled from '@emotion/styled';\n\nimport BlogPostHeroCard from './cards/BlogPostHeroCard';\nimport {SliderPagination} from '../common/Pagination';\nimport {breakpoints} from '../../styles/theme';\n\n\n/*\n * Constants\n */\nconst sliderInterval = 5000; // ms\nconst query = graphql`\n query {\n featuredPosts: strapiFeaturedPosts {\n learn {\n id\n title\n sub_title\n type\n publish_date(formatString: \"DD MMMM YYYY\")\n blog_tags {\n tag\n }\n ...FeaturedBlogPostCardImagesFragment\n }\n }\n }\n`;\n\n\n/*\n * Private Elements\n */\nconst StyledFeaturedPosts = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 30px;\n\n @media (min-width: ${breakpoints.md}) {\n margin-top: 0;\n align-items: flex-end;\n }\n`;\n\n\n// Hides children component without unmounting it\nconst HideKeepMounted = ({isVisible, children}) => {\n const [hasBeenMounted, setHasBeenMounted] = useState(false);\n\n if (isVisible && !hasBeenMounted) {\n setHasBeenMounted(true);\n }\n\n return (\n
\n {hasBeenMounted ? children : null}\n
\n );\n};\n\nHideKeepMounted.propTypes = {\n isVisible: PropTypes.bool.isRequired,\n children: PropTypes.node.isRequired,\n};\n\n\n/*\n * Public Elements\n */\nconst FeaturedPosts = () => {\n const [selectedPostIndex, setSelectedPostIndex] = useState(0);\n const {featuredPosts: {learn: blogFeaturedPosts}} = useStaticQuery(query);\n\n return (\n \n {blogFeaturedPosts.map((post, index) => (\n \n \n \n ))}\n \n \n );\n};\n\n\n/*\n * Exports\n */\nexport default FeaturedPosts;\n","import React, {useContext, useRef, useState} from 'react';\nimport {graphql} from 'gatsby';\nimport PropTypes from 'prop-types';\n\nimport styled from '@emotion/styled';\nimport {Trans, useTranslation} from 'gatsby-plugin-react-i18next';\n\nimport Pagination from '../components/common/Pagination';\nimport AnimatedBackground from '../components/common/AnimatedBackground';\nimport SEO from '../components/common/SEO';\nimport {CTALink} from '../components/common/Typography';\nimport BlogFilters from '../components/learn/BlogFilters';\nimport BlogPostsList from '../components/learn/BlogPostsList';\nimport FeaturedPosts from '../components/learn/FeaturedPosts';\nimport {blogFiltersSchema, newsletterPost} from '../helpers/constants/learn';\nimport useFilters from '../helpers/hooks/useFilters';\nimport usePagination from '../helpers/hooks/usePagination';\nimport useFiltersFromQueryParameters from '../helpers/hooks/useFiltersFromQueryParameters';\nimport BlogShapesBackground from '../images/learn/shapes.png';\nimport {breakpoints, colors, ContentContainer} from '../styles/theme';\nimport {ContrastContext} from '../helpers/context';\n\n\n/*\n * Constants\n */\nconst elementsPerPage = 9;\n\n\n/*\n * Helpers\n */\n/**\n * Add the custom newsletter post to the blog entries, so that it always appears before the last item in the first page\n * of results (if, and only if, no filters are applied).\n *\n * @param {Object[]} postsList - the list of posts to process\n * @param {Object} filters - the currently applied filters\n * @returns {Object[]}\n */\nconst addNewsletterPost = (postsList, filters) => {\n const numberOfPosts = postsList.length;\n\n if (!numberOfPosts || Object.values(filters).filter(val => !!val).length) return postsList;\n\n const idxToInsert = numberOfPosts < elementsPerPage ? numberOfPosts - 1 : elementsPerPage - 2;\n // eslint-disable-next-line i18next/no-literal-string\n postsList.splice(idxToInsert, 0, {type: newsletterPost, id: Math.random().toString(36).substring(2)});\n\n return postsList;\n};\n\n\n/*\n * Private Elements\n */\nconst HeroContainer = styled.div`\n position: relative;\n`;\n\nconst HeroContentContainer = styled(ContentContainer)`\n min-height: 100vh;\n width: 100%;\n padding-top: 120px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n @media (min-width: ${breakpoints.md}) {\n padding-left: 65px;\n padding-right: 65px;\n }\n`;\n\nconst HeroContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n .feature-articles {\n position: relative;\n\n .feature-articles-shapes {\n position: absolute;\n width: calc(100% + 65px);\n height: 100%;\n bottom: 40px;\n right: 0;\n background: url(${BlogShapesBackground}) no-repeat bottom;\n background-size: contain;\n }\n }\n\n @media (min-width: ${breakpoints.md}) {\n flex-direction: row;\n }\n`;\n\nconst HeroFiltersContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst LearnContentContainer = styled.div`\n background-color: ${colors.lightGrey};\n padding: 0 20px 60px;\n\n @media (min-width: 885px) {\n padding: 0 60px 70px;\n }\n`;\n\n\n/*\n * Public Elements\n */\nconst LearnPage = ({data, location}) => {\n const setContrast = useContext(ContrastContext);\n setContrast(false);\n const {t} = useTranslation();\n\n // Get the blog data\n const normalizedPosts = data.allStrapiBlogPost.edges.map(post => post.node);\n\n // Get the list of allowed filters for Posts\n const allowedPostsFilters = Object.keys(blogFiltersSchema);\n\n const [queryParamsFilters, setQueryParams] = useFiltersFromQueryParameters(location, allowedPostsFilters);\n\n // Set the selected filters and current page\n const [selectedFilters, setSelectedFilters] = useState(queryParamsFilters);\n const [currentPage, setCurrentPage] = useState(1);\n\n // Filter and paginate Posts\n const _filteredPosts = useFilters(normalizedPosts, selectedFilters, blogFiltersSchema);\n const filteredPosts = addNewsletterPost(_filteredPosts, selectedFilters);\n const paginatedPosts = usePagination(filteredPosts, currentPage, elementsPerPage);\n\n // Set the defined filters/page in the URL\n if (currentPage === 1) {\n setQueryParams({...selectedFilters});\n } else {\n setQueryParams({...selectedFilters, currentPage});\n }\n\n const setFilters = filters => {\n const f = {};\n Object.entries(filters).forEach(([key, value]) => {\n if (value) {\n f[key] = value;\n }\n });\n setSelectedFilters(f);\n\n // Changing filters MUST also change the pagination to the first page\n setCurrentPage(1);\n };\n\n const learnPaginationTopRef = useRef();\n\n return (\n <>\n \n\n \n \n \n \n
\n
\n Feature Articles\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\nLearnPage.propTypes = {\n data: PropTypes.object.isRequired,\n location: PropTypes.object.isRequired,\n};\n\n\n/*\n * Exports\n */\nexport default LearnPage;\nexport const query = graphql`\n query($language: String!) {\n allStrapiBlogPost(\n filter: {language: {eq: $language}, status: {eq: \"published\"}}\n sort: {fields: publish_date, order: DESC},\n ) {\n edges {\n node {\n id: strapiId\n title\n sub_title\n publish_date(formatString: \"DD MMMM YYYY\")\n type\n blog_tags {\n tag\n }\n ...BlogPostCardImagesFragment\n }\n }\n }\n }\n`;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAK8CAMAAAA6ZJxxAAAAVFBMVEX///////////////////9HcEz///////////////////////////////////////////////////////////////////////////////////////9T8+pWAAAAHHRSTlM7eGl/VgCjUXOXCEtvFF1XD8EyAxtDnpAiKWOHwcjvcgAAE1RJREFUeAHs2AeSm1oQhtEGgcJT8OSy978358iYUUDBaQHPCVk9Ot8SqFN/NbeIooh+UuHb9lpR1MUu+kiDr3i76C+V07qvNJvXiZou6lyVUUVPabodRJ6GwzZyVYb0rXJVzDLilcryorxPiVfsjpp9pMQrdtsIeMUuvGK3B7xiF16x2ytesQuv2IVX7MKrYVa78LK7z2kXXpU/bxdeuRnglZsBXnbhFbvwit2frwqdpd0qq13La3dXccwsr+wuvOz+7+7CK3bhFbt+2HQxzWkXXg2LZVK78NrdpHbhZTfz7sLLLrxiF16xC68S2IVX7MLL7mPBK3bhFbvwil142d1ntQsvu58CXrELr9iFVydlF16xC6+6pHbh1cXdMe3CK7sLr7qT2114xS687MIrduGVdwZ41ZU57cKrbrhOahde9+6ijZTBa3fT3gzw2t2kduG1u2VSu/Cye/Uu4BW78IpdeMUuvOzCq5NqntUuvOx+/km78IpdeMUuvOzCK3bhTRi78IpdeMUuvOzCK3bhFbvwsnud1S687L4NeMUuvGIXXrELL7vwil149Re6YRfepM3fsQvvUbO78LJrd+FNGrvwsguv2IVX7MLLLrxiF16xCy+7M3bhzWr3PgQvu/CKXXjFLrzswit24RW78J5x1+zCm9Xue3bhZRfexxu78IpdeMUuvOzCK3bhFbvwsguv2IVX7MLL7oZdeLParUPwsguv2IVX7MLLLrw6qZ6wC29Wuw278LILr9iFVz9ht2QX3qx2X7MLb067zenZhVduBnjdDIKXXXjFLrzsHtiFN6vdjyF42YVX7MIrduFlV/CyC6/YhZddHQmv2IVXY3aT4tWTCbvw2l14dVS7P7W7gpddeMUuvOy27MKb1e4mdM542YVX7MIrduFlV/CyC6/YhZfdLbvwZt3dkl147a7gPapduwsvuzomXk3ZhTer3TW78Ga1u2cX3qx2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\"","var React = require('react');\n\nfunction Article (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"style\":{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"stroke\":\"#fff\",\"strokeWidth\":\"1.5\"}},[React.createElement(\"path\",{\"d\":\"m7.5 7.25h10\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m8 11.25h5\",\"key\":1}),React.createElement(\"path\",{\"d\":\"m5 2h15v20h-15z\",\"transform\":\"matrix(1 0 0 -1 0 24)\",\"key\":2})]));\n}\n\nArticle.defaultProps = {\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"width\":\"24\"};\n\nmodule.exports = Article;\n\nArticle.default = Article;\n","var React = require('react');\n\nfunction Blog (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"style\":{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"stroke\":\"#fff\",\"strokeWidth\":\"1.5\"}},[React.createElement(\"path\",{\"d\":\"m3 2h18v11h-18z\",\"transform\":\"matrix(1 0 0 -1 0 15)\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m3.409091 22h11\",\"key\":1}),React.createElement(\"path\",{\"d\":\"m3.136364 17.5h14.545454\",\"key\":2})]));\n}\n\nBlog.defaultProps = {\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"width\":\"24\"};\n\nmodule.exports = Blog;\n\nBlog.default = Blog;\n","var React = require('react');\n\nfunction CaseStudy (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"style\":{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"stroke\":\"#fff\",\"strokeWidth\":\"1.5\"}},[React.createElement(\"path\",{\"d\":\"m16 10.8952v6h-11v-14.8952h5.9054286\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m16.141274 16.595722 4.499513 5.362311\",\"key\":1}),React.createElement(\"circle\",{\"cx\":\"13.408564\",\"cy\":\"12.408564\",\"r\":\"5\",\"transform\":\"matrix(.93969262 .34202014 -.34202014 .93969262 5.052614 -3.837671)\",\"key\":2})]));\n}\n\nCaseStudy.defaultProps = {\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"width\":\"24\"};\n\nmodule.exports = CaseStudy;\n\nCaseStudy.default = CaseStudy;\n","var React = require('react');\n\nfunction Latest (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"style\":{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"stroke\":\"#fff\",\"strokeWidth\":\"1.5\"}},[React.createElement(\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m11.5 13.5v-7.5\",\"key\":1}),React.createElement(\"path\",{\"d\":\"m12 13.5 4.583333-1.5\",\"key\":2})]));\n}\n\nLatest.defaultProps = {\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"width\":\"24\"};\n\nmodule.exports = Latest;\n\nLatest.default = Latest;\n","var React = require('react');\n\nfunction Podcast (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"style\":{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"stroke\":\"#fff\",\"strokeWidth\":\"1.5\"}},[React.createElement(\"path\",{\"d\":\"m2 5h20v14h-20z\",\"transform\":\"matrix(-1 0 0 1 24 0)\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m12.5 9 2.5 5h-5z\",\"transform\":\"matrix(0 1 -1 0 24 -1)\",\"key\":1})]));\n}\n\nPodcast.defaultProps = {\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"width\":\"24\"};\n\nmodule.exports = Podcast;\n\nPodcast.default = Podcast;\n","var React = require('react');\n\nfunction Report (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"style\":{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"stroke\":\"#fff\",\"strokeWidth\":\"1.5\"}},[React.createElement(\"path\",{\"d\":\"m2.5 4.5h16v11h-16z\",\"transform\":\"matrix(0 1 1 0 .5 -.5)\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m9 22h11v-16h-4m-7 16v-4\",\"key\":1})]));\n}\n\nReport.defaultProps = {\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"width\":\"24\"};\n\nmodule.exports = Report;\n\nReport.default = Report;\n","var React = require('react');\n\nfunction Webinar (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"style\":{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"stroke\":\"#fff\",\"strokeWidth\":\"1.5\"}},[React.createElement(\"path\",{\"d\":\"m2 5h20v11h-20z\",\"transform\":\"matrix(-1 0 0 1 24 0)\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m4.5 19.5h15\",\"key\":1})]));\n}\n\nWebinar.defaultProps = {\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"width\":\"24\"};\n\nmodule.exports = Webinar;\n\nWebinar.default = Webinar;\n","var React = require('react');\n\nfunction Whitepaper (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"style\":{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"stroke\":\"#fff\",\"strokeWidth\":\"1.5\"}},[React.createElement(\"path\",{\"d\":\"m5 2h15v13.3844222l-7 6.6155778h-8z\",\"transform\":\"matrix(1 0 0 -1 0 24)\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m12 2v7.07472868h7.3739088\",\"key\":1})]));\n}\n\nWhitepaper.defaultProps = {\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"width\":\"24\"};\n\nmodule.exports = Whitepaper;\n\nWhitepaper.default = Whitepaper;\n","export default \"data:image/png;base64,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\""],"sourceRoot":""}