{ version: 3, file: "component---gatsby-theme-husky-src-templates-article-article-tsx-dcaba0923bcf9c6304bc.js", mappings: "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", sources: [ "webpack://husky-site/../gatsby-theme-husky/src/components/TagEventTracker/TagEventTracker.tsx", "webpack://husky-site/../gatsby-theme-husky/src/templates/Article/Article.tsx", "webpack://husky-site/../gatsby-theme-husky/src/utils/functions.ts" ], sourcesContent: [ "import React, { FC, useEffect } from 'react'; import { EventDataProps, TagEventTrackerProps } from './models'; const TagEventTracker: FC = ({ children, eventType, data: { value, userId, itemListId, itemListName, currency, ecommerce, pageTemplate }, }) => { useEffect(() => { if (typeof window !== undefined) { switch (eventType) { case 'view_item': window.dataLayer.push({ event: eventType, userId, currency, value, ecommerce, }); break; case 'view_item_list': window.dataLayer.push({ event: eventType, userId, itemListId, itemListName, ecommerce, }); break; case 'page_view': window.dataLayer.push({ pageTemplate, userId, }); break; default: console.error('No dataLayer event found'); break; } } }, [ecommerce, value, eventType, currency, itemListId, itemListName, pageTemplate, userId]); return <>{children}; }; const handleDataLayerClick = ( { retailerName, userId, ecommerce }: EventDataProps, eventType: string, url?: string ) => { window.dataLayer.push({ event: eventType, retailerName, userId, ecommerce, }); if (eventType === 'retailer_link_click') { window.open(url, '_blank'); } }; export { handleDataLayerClick, TagEventTracker }; ", "import React, { FC } from 'react'; import { graphql, Link } from 'gatsby'; import { useLocation } from '@reach/router'; import DangerouslySetInnerHtml from 'layout/DangerouslySetInnerHtml'; import Layout from 'layout/Layout'; import Image from 'common/Image'; import PageSchema from 'common/PageSchema'; import Seo from 'common/Seo'; import { TagEventTracker } from 'components/TagEventTracker'; import { filterByTagId } from '../../utils/functions'; import { ArticleProps } from './models'; import './Article.scss'; const Article: FC<{ data: ArticleProps }> = ({ data: { article: { urls, seo, title, body, imageDesktop, imageMobile, tags, headband }, allArticle: { nodes: items }, global: { read }, }, }) => { const { title: seoTitle, keywords: seoKeywords, description: seoDescription } = seo; const location = useLocation(); const articles = filterByTagId(items, tags.id, 4); return (
{imageDesktop.altText} {imageMobile.altText}

{title}

{articles.map(({ id, url, thumbnail, title: name }) => (
{thumbnail.altText}

{name}

{read}
))}
); }; export const query = graphql` query ($url: String) { article(url: { eq: $url }) { urls { lang href } headband { cta { url name } imageDesktop { name childImageSharp { gatsbyImageData } } imageMobile { name childImageSharp { gatsbyImageData } } } seo { ...SEOStructureFragment } title body tags { id name } imageDesktop { altText fallbackUrl desktop { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 1920) } } mobile { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 1920) } } tablet { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 1920) } } } imageMobile { altText fallbackUrl desktop { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 700) } } mobile { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 700) } } tablet { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 700) } } } } global { read } allArticle { nodes { id title url tags { id name } thumbnail { altText fallbackUrl desktop { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 220) } } mobile { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 220) } } tablet { childImageSharp { gatsbyImageData(placeholder: BLURRED, width: 220) } } } } } } `; export default Article; ", "export const isEmpty = (obj): boolean => { if (obj === undefined || obj === null) { return true; } if (Array.isArray(obj)) { return !obj.length; } if (typeof obj === 'object') { return !Object.keys(obj).length; } return !obj; }; export const getYoutubeId = (value) => { const SRC_REGEX = /src="(.*?)"/im; const url = SRC_REGEX.test(value) ? value.match(SRC_REGEX)[1] : value; const { searchParams, pathname } = new URL(url); return searchParams.get('v') || pathname.replace('/embed', '').replace('/', ''); }; export const nl2br = (str: string = '', isXhtml: boolean = false): string => { if (typeof str === 'undefined' || str === null) { return ''; } const breakTag = isXhtml || typeof isXhtml === 'undefined' ? '
' : '
'; return `${str}`.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, `$1${breakTag}$2`); }; export const filterByTagId = (items, tid: string, limit: number = 0) => { let filtered; if (tid === '') { filtered = items; } else { filtered = items.filter((item) => item.tags.id === tid); } return limit === 0 ? filtered : filtered.slice(0, limit); }; export default isEmpty; " ], names: [ "TagEventTracker", "children", "eventType", "data", "value", "userId", "itemListId", "itemListName", "currency", "ecommerce", "pageTemplate", "useEffect", "undefined", "window", "dataLayer", "push", "event", "console", "error", "handleDataLayerClick", "url", "retailerName", "open", "article", "urls", "seo", "title", "body", "imageDesktop", "imageMobile", "tags", "headband", "items", "allArticle", "nodes", "read", "global", "seoTitle", "seoKeywords", "keywords", "seoDescription", "description", "location", "useLocation", "articles", "filterByTagId", "id", "headerTransparent", "type", "name", "metaTitle", "metaDescription", "metaKeywords", "pathname", "className", "imageData", "alt", "altText", "html", "element", "map", "thumbnail", "key", "Link", "to", "getYoutubeId", "SRC_REGEX", "test", "match", "URL", "searchParams", "get", "replace", "nl2br", "str", "isXhtml", "tid", "limit", "filtered", "filter", "item", "slice" ], sourceRoot: "" }