{ version: 3, file: "component---gatsby-theme-husky-src-templates-product-page-product-page-tsx-b75374efc828959beffe.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/ProductPage/ProductPage.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 } from 'gatsby'; 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 YouTubeLazyLoaded from 'components/YouTubeLazyLoaded'; import { getYoutubeId, nl2br } from '../../utils/functions'; import { ProductPageProps } from './models'; import './ProductPage.scss'; const Product: FC<{ data: ProductPageProps }> = ({ data: { product: { title, banner, bannerMobile, bannerText, formulaTitle, formula, preparationTitle, preparation, video, nutrimentalTitle, nutrimental, nutrimentalMobile, ingredientsTitle, ingredients, cierre, headband, seo, urls, }, }, }) => { const { title: seoTitle, keywords: seoKeywords, description: seoDescription } = seo; return ( {urls ? : null}
{banner.name} {bannerMobile.name}

{preparationTitle}

{video ? (
) : null}

{nutrimentalTitle}

{nutrimental.name} {nutrimentalMobile.name}

{ingredientsTitle}

); }; export const query = graphql` { product { title bannerText formulaTitle formula preparationTitle preparation video nutrimentalTitle ingredientsTitle ingredients cierre url headband { cta { url name } imageDesktop { name childImageSharp { gatsbyImageData } } imageMobile { name childImageSharp { gatsbyImageData } } } seo { ...SEOStructureFragment } banner { name childImageSharp { gatsbyImageData } } bannerMobile { name childImageSharp { gatsbyImageData } } nutrimental { name childImageSharp { gatsbyImageData(quality: 100) } } nutrimentalMobile { name childImageSharp { gatsbyImageData(quality: 100) } } } } `; export default Product; ", "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", "product", "title", "banner", "bannerMobile", "bannerText", "formulaTitle", "formula", "preparationTitle", "preparation", "video", "nutrimentalTitle", "nutrimental", "nutrimentalMobile", "ingredientsTitle", "ingredients", "cierre", "headband", "seo", "urls", "seoTitle", "seoKeywords", "keywords", "seoDescription", "description", "headerTransparent", "type", "name", "metaTitle", "metaDescription", "metaKeywords", "className", "imageData", "alt", "html", "nl2br", "element", "videoId", "getYoutubeId", "videoName", "SRC_REGEX", "test", "match", "URL", "searchParams", "pathname", "get", "replace", "str", "isXhtml", "filterByTagId", "items", "tid", "limit", "filtered", "filter", "item", "tags", "id", "slice" ], sourceRoot: "" }