{"version":3,"file":"static/js/7246.fb9e538f74d304d41d50.js","mappings":"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","sources":["components/BlogCards/BlogCard2Style.ts","components/BlogCards/BlogCard2.tsx","components/BlogCards/BlogCardStyle.ts","components/BlogCards/CategoryPill.tsx","components/BlogCards/DateAndReadTime.tsx","components/BlogSection/BlogComponents/BlogPage/blogCategoryNavStyle.ts","components/BlogSection/BlogComponents/BlogPage/BlogCategoryNav.tsx","components/BlogSection/BlogComponents/Home/BlogContainer.tsx","components/BlogSection/BlogComponents/Shared/ArticlesWithSubscribe.tsx","components/BlogSection/BlogComponents/Shared/styleObjects/SubscriptionBoxStyles.ts","components/BlogSection/BlogComponents/Shared/SubscribeBlogForm.tsx","components/BlogSection/BlogComponents/Shared/BlogSubscriptionBox.tsx","components/BlogCards/BlogCard3Style.ts","components/BlogCards/BlogCard3.tsx","components/BlogSection/BlogComponents/Shared/FeaturedCategory.tsx","components/PublicDateTime.tsx","helpers/dates.ts","helpers/debounceHelper.ts","../node_modules/@web-for-marketing/react-ui/lib/esm/components/Icons/ForwardIcon.js"],"sourcesContent":["import { v2Colors, breakpoints } from '@web-for-marketing/react-ui';\n\nexport const blogCard2Styles = {\n    cardContainer: {\n        display: 'flex',\n        flexDirection: 'row',\n        width: '100%',\n        '&:focus-within': {\n            outline: `1px solid ${v2Colors.border.activePrimary}`,\n            outlineOffset: '3px',\n            borderRadius: '0.8rem',\n        },\n        '&:hover img': {\n            transform: 'scale(1.05)',\n        },\n    },\n    imageWrapper: {\n        width: '25rem',\n        height: '16rem',\n        borderRadius: '8px',\n        overflow: 'hidden',\n        flexShrink: 0,\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            width: '10rem',\n            height: '10rem',\n        },\n    },\n    cardContent: (hasCategoryPill?: boolean) =>\n        ({\n            padding: '1.6rem 2.4rem',\n            [`@media (max-width: ${breakpoints.sm})`]: {\n                padding: hasCategoryPill ? '0 1.6rem' : '1.6rem',\n            },\n        }) as const,\n    categoryMargins: {\n        margin: '0 0 8px 0',\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            margin: '0 0 4px 0',\n        },\n    },\n    textTruncate: {\n        display: '-webkit-box',\n        WebkitBoxOrient: 'vertical',\n        WebkitLineClamp: 2,\n        overflow: 'hidden',\n        textOverflow: 'ellipsis',\n    },\n    title: {\n        marginBottom: '0.8rem',\n        '&:hover': {\n            color: v2Colors.text.activePrimary,\n        },\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            fontSize: '1.6rem',\n            marginBottom: '0.4rem',\n        },\n    },\n    titleMargin: {\n        marginTop: '1.6rem',\n    },\n} as const;\n","import React from 'react';\nimport { useAtom } from 'jotai';\nimport { LinkOverlay, LinkOverlayContainer, Text } from '@web-for-marketing/react-ui';\nimport { selectedLanguageAtom } from '@atoms/appSettings';\nimport { BlogCardImage } from '@models/blogCards';\nimport { blogCard2Styles as blog2Classes } from './BlogCard2Style';\nimport { blogCardStyle as classes } from './BlogCardStyle';\nimport { isMobileAtom } from '@atoms/appSettings';\nimport { DateAndReadTime } from './DateAndReadTime';\nimport { CategoryPill } from './CategoryPill';\n\nexport interface BlogCard2Props {\n    title: string;\n    linkPath: string;\n    ariaLabel?: string;\n    image: BlogCardImage;\n    category?: string;\n    categoryLink?: string;\n    publishedDateUtc: string | null;\n    readMinutes?: number;\n    className?: string;\n    lazyLoad?: boolean;\n}\n\nexport function BlogCard2({\n    title,\n    linkPath,\n    ariaLabel,\n    image,\n    category,\n    categoryLink,\n    publishedDateUtc,\n    readMinutes,\n    className,\n    lazyLoad = false,\n}: BlogCard2Props): JSX.Element {\n    const [selectedLanguage] = useAtom(selectedLanguageAtom);\n    const [isMobile] = useAtom(isMobileAtom);\n    const hasCategoryPill = category && categoryLink ? true : false;\n\n    return (\n        <LinkOverlayContainer css={blog2Classes.cardContainer} className={className}>\n            <div css={blog2Classes.imageWrapper}>\n                <img\n                    css={classes.image}\n                    src={!lazyLoad ? image.imagePath : undefined}\n                    data-src={lazyLoad ? image.imagePath : undefined}\n                    alt={image.imageAlt}\n                />\n            </div>\n            <div css={blog2Classes.cardContent(hasCategoryPill)}>\n                {category && categoryLink ? (\n                    <CategoryPill category={category} categoryLink={categoryLink} css={blog2Classes.categoryMargins} />\n                ) : null}\n                <Text variant={isMobile ? 'body1' : 'h4'} component='p' weight='bold' css={blog2Classes.title}>\n                    <LinkOverlay href={linkPath} aria-label={ariaLabel} css={blog2Classes.textTruncate}>\n                        {title}\n                    </LinkOverlay>\n                </Text>\n                {publishedDateUtc ? (\n                    <DateAndReadTime\n                        publishedDateUtc={publishedDateUtc}\n                        selectedLanguage={selectedLanguage}\n                        readMinutes={readMinutes}\n                    />\n                ) : null}\n            </div>\n        </LinkOverlayContainer>\n    );\n}\n","import { v2Colors, breakpoints } from '@web-for-marketing/react-ui';\nimport { typographyStyles } from '@web-for-marketing/react-ui';\n\nexport const blogCardStyle = {\n    image: {\n        width: '100%',\n        height: '100%',\n        objectFit: 'cover',\n        transition: 'transform 0.3s ease-in-out',\n    },\n    cardContent: {\n        padding: '0  1.6rem 1.6rem 1.6rem',\n    },\n    category: {\n        display: 'inline-block',\n        borderRadius: '2rem',\n        padding: '4px 8px',\n        border: '1px solid',\n        borderColor: v2Colors.border.primary,\n        backgroundColor: v2Colors.background.white,\n        position: 'relative',\n        outline: 'none',\n        '&:focus-within': {\n            outline: `1px solid ${v2Colors.border.activePrimary}`,\n            outlineOffset: '3px',\n            borderRadius: '2rem',\n        },\n        '& a': {\n            textDecoration: 'none',\n            outline: 'none',\n        },\n        '&:hover': {\n            backgroundColor: v2Colors.action.active,\n        },\n    },\n    description: {\n        marginBottom: '0.8rem',\n    },\n    timeBlock: {\n        display: 'flex',\n        flexDirection: 'row',\n        justifyContent: 'flex-start',\n        width: '100%',\n    },\n    readMinutes: {\n        display: 'flex',\n        alignitems: 'center',\n    },\n    divider: {\n        ...typographyStyles.body2,\n        margin: '0 8px',\n        [`@media (max-width: ${breakpoints.xs})`]: {\n            display: 'none',\n        },\n    },\n} as const;\n","import React from 'react';\nimport { Text } from '@web-for-marketing/react-ui';\nimport { blogCardStyle as classes } from './BlogCardStyle';\n\ninterface PillProps {\n    category: string;\n    categoryLink: string;\n    className?: string;\n}\n\nexport function CategoryPill({ category, categoryLink, className }: PillProps): JSX.Element {\n    return (\n        <div css={classes.category} className={className}>\n            <Text variant='body3' component='a' href={categoryLink} color='secondary'>\n                {category}\n            </Text>\n        </div>\n    );\n}\n","import React from 'react';\nimport { PublicDateTime } from '@components/PublicDateTime';\nimport { getFormattedLocalDateTime } from '@helpers/dates';\nimport { blogCardStyle as classes } from './BlogCardStyle';\nimport { Text } from '@web-for-marketing/react-ui';\nimport { LanguageCode } from '@models/languageCode';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { useTranslation } from '@stateManagement/TranslationContext';\n\ninterface DateAndReadTimeProps {\n    publishedDateUtc: string;\n    selectedLanguage: LanguageCode | undefined;\n    readMinutes?: number;\n}\n\nexport function DateAndReadTime({\n    publishedDateUtc,\n    selectedLanguage,\n    readMinutes,\n}: DateAndReadTimeProps): JSX.Element {\n    const { selectedLanguageTranslation } = useTranslation();\n\n    const readMinuteText = getTranslation(selectedLanguageTranslation, 'blogInfo', 'readMinutes').replace(\n        '5',\n        readMinutes ? readMinutes : '~1'\n    );\n\n    return (\n        <div css={classes.timeBlock}>\n            <PublicDateTime>\n                <Text variant='body2' color='activeSecondary'>\n                    {getFormattedLocalDateTime(publishedDateUtc, 'LL', selectedLanguage)}\n                </Text>\n            </PublicDateTime>\n            <div aria-hidden css={classes.divider}>\n                &#124;\n            </div>\n            {readMinutes ? (\n                <Text variant='body2' color='activeSecondary' css={classes.readMinutes}>\n                    <span>{readMinuteText}</span>\n                </Text>\n            ) : null}\n        </div>\n    );\n}\n","import { v2Colors, breakpoints } from '@web-for-marketing/react-ui';\n\nexport const blogCategoryNavStyle = {\n    navContainer: {\n        display: 'flex',\n        justifyContent: 'start',\n        height: '4.5rem',\n    },\n    categoryContainer: {\n        display: 'flex',\n        justifyContent: 'start',\n        alignItems: 'center',\n        borderBottom: `1px solid ${v2Colors.core.haze}`,\n        flexWrap: 'nowrap',\n        whiteSpace: 'nowrap',\n        overflowX: 'auto',\n        '&::-webkit-scrollbar': {\n            display: 'none',\n        },\n\n        [`@media (max-width: ${breakpoints.md})`]: {\n            flexWrap: 'nowrap',\n            whiteSpace: 'nowrap',\n            overflowX: 'auto',\n            '&::-webkit-scrollbar': {\n                display: 'none',\n            },\n        },\n    },\n    navItem: {\n        display: 'flex',\n        alignItems: 'center',\n        position: 'relative',\n        margin: '0 1.2rem',\n        height: '100%',\n    },\n    navLink: {\n        textDecoration: 'none !important',\n        outline: 'none',\n        borderRadius: '0.4rem',\n        padding: '0.4rem',\n        transition: 'color 300ms ease',\n        '&:hover, &:focus': {\n            color: v2Colors.text.activePrimary,\n        },\n        '&:focus': {\n            boxShadow: `0 0 0 0.1rem ${v2Colors.text.activePrimary}`,\n        },\n        '&::after': {\n            transition: 'border-color 300ms ease',\n            content: '\"\"',\n            position: 'absolute',\n            left: 0,\n            right: 0,\n            bottom: 0,\n            borderBottom: `2px solid ${v2Colors.transparent}`,\n            '&:hover': {\n                borderColor: v2Colors.text.activePrimary,\n            },\n        },\n        '&:hover::after': {\n            borderColor: v2Colors.text.activePrimary,\n        },\n    },\n    separator: {\n        height: '2.4rem',\n        borderRight: `2px solid ${v2Colors.core.smoke}`,\n        [`@media (max-width: ${breakpoints.md})`]: {\n            display: 'none',\n        },\n    },\n    arrowContainer: {\n        margin: '0 0 0 1rem',\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            display: 'none',\n        },\n    },\n    arrowButton: {\n        '&:hover': {\n            backgroundColor: `${v2Colors.core.cloud} !important`,\n            color: v2Colors.text.activeSecondary,\n        },\n    },\n    flipArrow: {\n        transform: 'scaleX(-1)',\n    },\n    arrowIcon: {\n        color: v2Colors.text.activeSecondary,\n    },\n    hiddenAnchor: {\n        width: '100%',\n        height: 1,\n        marginBottom: -1,\n        visibility: 'hidden',\n    },\n} as const;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Grid, Button } from '@mui/material';\nimport { blogCategoryNavStyle as classes } from './blogCategoryNavStyle';\nimport { Text } from '@web-for-marketing/react-ui';\nimport { RightArrowIcon } from '@components/IconComponents/RightArrowIcon';\nimport { getLanguageRouteAndPrefixByCodeAndRouteKey } from '@helpers/languages';\nimport { selectedLanguageAtom } from '@atoms/appSettings';\nimport { useAtom } from 'jotai';\nimport { languageRouteTypes } from '@helpers/languageRoutes';\nimport { debounce } from '@helpers/debounceHelper';\n\nexport interface BlogCategoryData {\n    text: string;\n    link: string;\n}\n\nexport interface BlogCategoryNavProp {\n    categoryLinks: BlogCategoryData[];\n}\n\nexport function BlogCategoryNav({ categoryLinks }: BlogCategoryNavProp): JSX.Element {\n    const [showRightArrow, setShowRightArrow] = useState(false);\n    const [showLeftArrow, setShowLeftArrow] = useState(false);\n    const containerRef = useRef<HTMLDivElement>(null);\n    const [selectedLanguage] = useAtom(selectedLanguageAtom);\n    const blogHomeURL = getLanguageRouteAndPrefixByCodeAndRouteKey(selectedLanguage, languageRouteTypes.BLOG_HOME);\n\n    useEffect(() => {\n        const container = containerRef.current;\n\n        if (!container) return;\n\n        const resizeObserver = new ResizeObserver(() => {\n            updateScrollArrows();\n        });\n\n        resizeObserver.observe(container);\n\n        return () => {\n            resizeObserver.unobserve(container);\n        };\n    }, []);\n\n    const updateScrollArrows = (): void => {\n        const container = containerRef.current;\n        if (!container) return;\n\n        setShowLeftArrow(container.scrollLeft > 0);\n        setShowRightArrow(container.scrollLeft + container.clientWidth < container.scrollWidth);\n    };\n    const handleScroll = (direction: 'left' | 'right'): void => {\n        const container = containerRef.current;\n        const adjustment = direction === 'left' ? -100 : 100;\n        if (container) {\n            container.scrollTo({\n                left: container.scrollLeft + adjustment,\n                behavior: 'smooth',\n            });\n            updateScrollArrows();\n        }\n    };\n\n    const handleScrollDebounced = debounce(updateScrollArrows, 100);\n    return (\n        <div css={classes.navContainer}>\n            {showLeftArrow ? (\n                <div css={classes.arrowContainer}>\n                    <Button\n                        onClick={() => handleScroll('left')}\n                        css={classes.arrowButton}\n                        aria-hidden\n                        data-testid='left-arrow'\n                        tabIndex={-1}\n                    >\n                        <RightArrowIcon css={[classes.flipArrow, classes.arrowIcon]} />\n                    </Button>\n                </div>\n            ) : null}\n            <Grid\n                container\n                css={classes.categoryContainer}\n                ref={containerRef}\n                data-testid='category-container'\n                onScroll={handleScrollDebounced}\n            >\n                <div css={classes.navItem}>\n                    <Text variant='body2' css={classes.navLink} weight='bold' component='a' href={blogHomeURL}>\n                        Geotab Blog\n                    </Text>\n                </div>\n                <div css={classes.separator}></div>\n                {categoryLinks.map((section, index) => (\n                    <div key={index} css={classes.navItem}>\n                        <Text variant='body2' css={classes.navLink} component='a' href={section.link}>\n                            {section.text}\n                        </Text>\n                    </div>\n                ))}\n            </Grid>\n            {showRightArrow ? (\n                <div css={classes.arrowContainer}>\n                    <Button\n                        onClick={() => handleScroll('right')}\n                        css={classes.arrowButton}\n                        data-testid='right-arrow'\n                        aria-hidden\n                        tabIndex={-1}\n                    >\n                        <RightArrowIcon css={classes.arrowIcon} />\n                    </Button>\n                </div>\n            ) : null}\n        </div>\n    );\n}\n","import React from 'react';\nimport { breakpoints, Container } from '@web-for-marketing/react-ui';\n\nconst containerStyle = {\n    paddingTop: '5.6rem',\n    paddingBottom: '5.6rem',\n    [`@media (max-width: ${breakpoints.md})`]: {\n        paddingTop: '2.4rem',\n        paddingBottom: '2.4rem',\n    },\n    [`@media (max-width: ${breakpoints.sm})`]: {\n        paddingTop: '2rem',\n        paddingBottom: '2rem',\n    },\n};\n\nexport function BlogContainer({ children, ...otherProps }: React.ComponentProps<typeof Container>): JSX.Element {\n    return (\n        <Container css={containerStyle} {...otherProps}>\n            {children}\n        </Container>\n    );\n}\n","import React from 'react';\nimport { Grid2 } from '@mui/material';\nimport { BlogArticle } from '@models/blog';\nimport { BlogCard2 } from '@components/BlogCards/BlogCard2';\nimport { BlogSubscriptionBox } from '@components/BlogSection/BlogComponents/Shared/BlogSubscriptionBox';\nimport { useStaticValues } from '@stateManagement/StaticValuesContext';\nimport { LazyLoadContainer } from '@web-for-marketing/react-ui';\n\ninterface ArticlesWithSubscribeProps {\n    articles: BlogArticle[];\n    categoryBlogLink: string;\n    languageBlogLink: string;\n    lazyLoad?: boolean;\n}\n\nexport function ArticlesWithSubscribe({\n    articles,\n    categoryBlogLink,\n    languageBlogLink,\n    lazyLoad = false,\n}: ArticlesWithSubscribeProps): JSX.Element {\n    const displayedCards = articles.slice(0, 3);\n    const { prefixStringWithBaseUrl } = useStaticValues();\n\n    return (\n        <LazyLoadContainer\n            component={Grid2}\n            container\n            flexDirection={{ xs: 'column-reverse', md: 'row' }}\n            spacing={{ xs: 2, sm: 4 }}\n        >\n            <Grid2 container size={{ xs: 12, md: 7 }} rowGap={{ xs: '1.6rem', md: '3.2rem' }}>\n                {displayedCards.map((card) => (\n                    <BlogCard2\n                        key={card.id}\n                        title={card.title}\n                        linkPath={`${languageBlogLink}${card.slug}`}\n                        image={{\n                            imagePath: prefixStringWithBaseUrl(card.cardImageUrl),\n                            imageAlt: card.cardImageAlt,\n                        }}\n                        category={card.category.name}\n                        categoryLink={`${categoryBlogLink}${card.category.slug}`}\n                        publishedDateUtc={card.publishedDateUtc}\n                        readMinutes={card.readMinutes}\n                        ariaLabel={`Read more about ${card.title}`}\n                        lazyLoad={lazyLoad}\n                    />\n                ))}\n            </Grid2>\n            <Grid2 size={{ xs: 12, md: 5 }}>\n                <BlogSubscriptionBox />\n            </Grid2>\n        </LazyLoadContainer>\n    );\n}\n","import { v2Colors, breakpoints, getRgbaColor } from '@web-for-marketing/react-ui';\n\nexport const SubscriptionBoxStyles = {\n    boxContainer: {\n        padding: '4rem',\n        borderRadius: '8px',\n        backgroundColor: v2Colors.action.innovationDark,\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            padding: '2.4rem',\n        },\n    },\n    shortBoxContainer: {\n        padding: '3.2rem',\n        borderRadius: '8px',\n        backgroundColor: v2Colors.action.innovationDark,\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            padding: '2.4rem',\n        },\n    },\n    description: {\n        marginBottom: '1.6rem',\n        color: v2Colors.text.inversePrimary,\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            marginBottom: '1.2rem',\n        },\n    },\n    title: {\n        marginBottom: '1.6rem',\n        color: v2Colors.text.inversePrimary,\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            marginBottom: '1.2rem',\n        },\n    },\n    inputTextboxContainer: {\n        width: '100%',\n        flexGrow: 1,\n    },\n    input: {\n        '& > div': {\n            borderRadius: '6px',\n        },\n    },\n    consentContainer: {\n        width: '100%',\n        padding: '0.8rem 0 2.4rem 1.8rem',\n        flexDirection: 'row',\n        '& span': {\n            padding: 0,\n        },\n        '& svg': {\n            fontSize: '2.2rem !important',\n        },\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            padding: '0.4rem 0 0.8rem 1.8rem',\n        },\n    },\n    label: {\n        color: v2Colors.core.snow,\n        fontSize: '1.4rem',\n        '& a': {\n            color: v2Colors.core.snow,\n        },\n        '& a:hover': {\n            backgroundColor: getRgbaColor(v2Colors.core.snow, 0.02),\n        },\n        '& a:focus': {\n            backgroundColor: `${getRgbaColor(v2Colors.core.snow, 0.05)} !important`,\n        },\n    },\n    linkStyles: {\n        textDecoration: 'underline',\n    },\n} as const;\n","import React, { useState, useContext } from 'react';\nimport { Grid2 } from '@mui/material';\nimport { NotificationContext } from '@contexts/NotificationContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { useAtom } from 'jotai';\nimport { selectedLanguageAtom } from '@atoms/appSettings';\nimport { useStaticValues } from '@stateManagement/StaticValuesContext';\nimport { useTranslation } from '@stateManagement/TranslationContext';\nimport { postMarketingCloudForm } from '@services/marketingCloudPublicService';\nimport { SubscriptionBoxStyles as classes } from './styleObjects/SubscriptionBoxStyles';\nimport { redirectToThankyou } from '@helpers/form';\nimport { getLanguageByCode } from '@helpers/languages';\nimport { useUTMFormValues } from '@hooks/useUTMFormValues';\nimport { Input, Checkbox, Text, V2Button, v2Colors, useRecaptcha } from '@web-for-marketing/react-ui';\nimport { CMSLink } from '@components/CMSLink';\nimport { logError } from '@helpers/errors';\n\n/* eslint-disable camelcase */\nconst initialFormValues = {\n    first_name: '',\n    last_name: '',\n    email: '',\n    opt_in: false,\n};\n/* eslint-enable camelcase */\n\nexport function SubscribeBlogForm(): JSX.Element {\n    const notificationContext = useContext(NotificationContext);\n    const [selectedLanguage] = useAtom(selectedLanguageAtom);\n    const { recaptchaSiteKey } = useStaticValues();\n    const { selectedLanguageTranslation } = useTranslation();\n    const [formValues, setFormValues] = useUTMFormValues(initialFormValues);\n    const [enableRecaptcha, RecaptchaComponent, token, refresh] = useRecaptcha(recaptchaSiteKey);\n    const [disableButton, setDisableButton] = useState(false);\n    const subscribeFormTranslation = getTranslation(selectedLanguageTranslation, 'authorBiography', 'subscribeFormMC');\n    const salesforceFormLanguage = getTranslation(selectedLanguageTranslation, 'salesforce');\n    const language = getLanguageByCode(selectedLanguage);\n    const isEUForm = language ? language.isEuLanguage : false;\n\n    async function handleSubmit(event: React.FormEvent): Promise<void> {\n        event.preventDefault();\n        setDisableButton(true);\n        try {\n            if (isEUForm) {\n                await postMarketingCloudForm(\n                    subscribeFormTranslation.formId,\n                    {\n                        ...formValues,\n                        ['Form_Language_Country__c']: salesforceFormLanguage.formLanguage,\n                        ['language_selection']: selectedLanguage,\n                    },\n                    token\n                );\n            } else {\n                await postMarketingCloudForm(subscribeFormTranslation.formId, formValues, token);\n            }\n            redirectToThankyou('', selectedLanguage, undefined, true);\n        } catch (error) {\n            const errorMessage = error instanceof Error ? error.message : error;\n            notificationContext.show(errorMessage, 'error');\n            refresh();\n            setDisableButton(false);\n        }\n    }\n\n    function toggleOptIn(): void {\n        const currentValue = formValues['opt_in'];\n        updateFieldValue('opt_in', !currentValue);\n    }\n\n    function updateFieldValue(field: string, value: string | boolean): void {\n        setFormValues((currentFormValues) => ({ ...currentFormValues, [field]: value }));\n    }\n\n    return (\n        <Grid2\n            container\n            component='form'\n            onSubmit={(event) => {\n                handleSubmit(event).catch((error) => logError(error, 'submitting become a reseller form'));\n            }}\n            spacing={2}\n        >\n            <Grid2 size={{ xs: 12, sm: 6, md: 12, lg: 6 }}>\n                <Input\n                    required\n                    onFocus={enableRecaptcha}\n                    placeholder={subscribeFormTranslation.firstName}\n                    name='first_name'\n                    id='first_name'\n                    value={formValues['first_name']}\n                    onChange={(event) => updateFieldValue('first_name', event.target.value)}\n                    label={subscribeFormTranslation.firstName}\n                    hiddenLabel\n                    labelColor='transparent'\n                    backgroundColor={v2Colors.core.snow}\n                    css={classes.input}\n                />\n            </Grid2>\n            <Grid2 size={{ xs: 12, sm: 6, md: 12, lg: 6 }}>\n                <Input\n                    onFocus={enableRecaptcha}\n                    placeholder={subscribeFormTranslation.lastName}\n                    name='last_name'\n                    id='last_name'\n                    value={formValues['last_name']}\n                    onChange={(event) => updateFieldValue('last_name', event.target.value)}\n                    required\n                    label={subscribeFormTranslation.lastName}\n                    hiddenLabel\n                    labelColor='transparent'\n                    backgroundColor={v2Colors.core.snow}\n                    css={classes.input}\n                />\n            </Grid2>\n            <Grid2 size={{ xs: 12 }}>\n                <Input\n                    onFocus={enableRecaptcha}\n                    placeholder={subscribeFormTranslation.email}\n                    name='emailAddress'\n                    id='emailAddress'\n                    value={formValues['email']}\n                    onChange={(event) => updateFieldValue('email', event.target.value)}\n                    required\n                    type='email'\n                    label={subscribeFormTranslation.email}\n                    hiddenLabel\n                    labelColor='transparent'\n                    backgroundColor={v2Colors.core.snow}\n                    css={classes.input}\n                />\n            </Grid2>\n            <Checkbox\n                id='subscribe-checkbox'\n                checked={formValues['opt_in']}\n                value={formValues['opt_in']}\n                onFocus={enableRecaptcha}\n                onChange={toggleOptIn}\n                uncheckedColor={v2Colors.core.snow}\n                checkedColor={v2Colors.core.snow}\n                css={classes.consentContainer}\n                labelPlacement='top'\n                label={\n                    <Text variant='body2' css={classes.label}>\n                        {subscribeFormTranslation.consentTextSentences}\n                        <CMSLink\n                            type='link'\n                            rel='noopener noreferrer'\n                            target='_blank'\n                            href={subscribeFormTranslation.consentLink}\n                            css={classes.linkStyles}\n                        >\n                            {subscribeFormTranslation.consentLinkText}\n                        </CMSLink>\n                    </Text>\n                }\n            />\n            <Grid2 size={{ xs: 12, sm: 'auto', md: 12, lg: 'auto' }}>\n                {RecaptchaComponent}\n                <V2Button\n                    type='submit'\n                    fullWidth\n                    variant='tertiary'\n                    size='medium'\n                    disabled={disableButton}\n                    id='blogsubscribebutton'\n                >\n                    {subscribeFormTranslation.subscribe}\n                </V2Button>\n            </Grid2>\n        </Grid2>\n    );\n}\n","import React from 'react';\nimport { SubscribeBlogForm } from './SubscribeBlogForm';\nimport { SubscriptionBoxStyles as classes } from './styleObjects/SubscriptionBoxStyles';\nimport { useTranslation } from '@stateManagement/TranslationContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { Heading } from '@web-for-marketing/react-ui';\n\nexport interface BlogSubscriptionBoxProps {\n    type?: 'full' | 'short';\n}\n\nexport function BlogSubscriptionBox({ type = 'full' }: BlogSubscriptionBoxProps): JSX.Element {\n    const { selectedLanguageTranslation } = useTranslation();\n    const geotabSubscribeTranslation = getTranslation(\n        selectedLanguageTranslation,\n        'authorBiography',\n        'geotabSubscribe'\n    );\n    const isShort = type === 'short';\n\n    return (\n        <div css={isShort ? classes.shortBoxContainer : classes.boxContainer} data-testid='blog-subscribe-box'>\n            <Heading variant={isShort ? 'h3' : 'h2'} weight='bold' component='h2' css={classes.title}>\n                {geotabSubscribeTranslation.subscribeTo}\n            </Heading>\n            <SubscribeBlogForm />\n        </div>\n    );\n}\n","import { v2Colors, breakpoints } from '@web-for-marketing/react-ui';\n\nexport const blogCard3Styles = {\n    cardContainer: {\n        width: '100%',\n        outline: 'none',\n        '&:focus-within': {\n            outline: `1px solid ${v2Colors.border.activePrimary}`,\n            outlineOffset: '3px',\n            borderRadius: '0.8rem',\n        },\n        '&:hover img': {\n            transform: 'scale(1.05)',\n        },\n    },\n    title: {\n        marginBottom: '0.8rem',\n        '&:hover': {\n            color: v2Colors.text.activePrimary,\n        },\n    },\n    picture: {\n        width: '100%',\n        height: '21rem',\n        borderRadius: '0.8rem',\n        overflow: 'hidden',\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            height: '14rem',\n        },\n    },\n    categoryMargins: {\n        margin: '16px 0 8px 0',\n        [`@media (max-width: ${breakpoints.sm})`]: {\n            margin: '8px 0 8px 0',\n        },\n    },\n    textTruncate: {\n        display: '-webkit-box',\n        WebkitBoxOrient: 'vertical',\n        WebkitLineClamp: 3,\n        overflow: 'hidden',\n        textOverflow: 'ellipsis',\n    },\n} as const;\n","import React from 'react';\nimport { useAtom } from 'jotai';\nimport { LinkOverlay, LinkOverlayContainer, Heading } from '@web-for-marketing/react-ui';\nimport { selectedLanguageAtom } from '@atoms/appSettings';\nimport { BlogCardImage } from '@models/blogCards';\nimport { blogCardStyle as classes } from './BlogCardStyle';\nimport { blogCard3Styles as blog3Classes } from './BlogCard3Style';\nimport { isMobileAtom } from '@atoms/appSettings';\nimport { DateAndReadTime } from './DateAndReadTime';\nimport { CategoryPill } from './CategoryPill';\n\nexport interface BlogCard3Props {\n    title: string;\n    linkPath: string;\n    ariaLabel?: string;\n    image: BlogCardImage;\n    category: string;\n    categoryLink: string;\n    publishedDateUtc: string | null;\n    readMinutes?: number;\n    className?: string;\n    lazyLoad?: boolean;\n}\n\nexport function BlogCard3({\n    title,\n    linkPath,\n    ariaLabel,\n    image,\n    category,\n    categoryLink,\n    publishedDateUtc,\n    readMinutes,\n    className,\n    lazyLoad = false,\n}: BlogCard3Props): JSX.Element {\n    const [selectedLanguage] = useAtom(selectedLanguageAtom);\n    const [isMobile] = useAtom(isMobileAtom);\n\n    return (\n        <LinkOverlayContainer>\n            <div css={blog3Classes.cardContainer} className={className}>\n                <div css={blog3Classes.picture}>\n                    <img\n                        css={classes.image}\n                        src={!lazyLoad ? image.imagePath : undefined}\n                        data-src={lazyLoad ? image.imagePath : undefined}\n                        alt={image.imageAlt}\n                    />\n                </div>\n                <div css={classes.cardContent}>\n                    <CategoryPill category={category} categoryLink={categoryLink} css={blog3Classes.categoryMargins} />\n                    <Heading variant={!isMobile ? 'h3' : 'h4'} weight='bold' css={blog3Classes.title}>\n                        <LinkOverlay href={linkPath} aria-label={ariaLabel} css={blog3Classes.textTruncate}>\n                            {title}\n                        </LinkOverlay>\n                    </Heading>\n                    {publishedDateUtc ? (\n                        <DateAndReadTime\n                            publishedDateUtc={publishedDateUtc}\n                            selectedLanguage={selectedLanguage}\n                            readMinutes={readMinutes}\n                        />\n                    ) : null}\n                </div>\n            </div>\n        </LinkOverlayContainer>\n    );\n}\n","import React from 'react';\nimport { Grid2 } from '@mui/material';\nimport { BlogCard3 } from '@components/BlogCards/BlogCard3';\nimport { BlogCard2 } from '@components/BlogCards/BlogCard2';\nimport { BlogArticle } from '@models/blog';\nimport { useStaticValues } from '@stateManagement/StaticValuesContext';\nimport { LazyLoadContainer } from '@web-for-marketing/react-ui';\n\ninterface FeaturedCategoryProps {\n    articles: BlogArticle[];\n    categoryBlogLink: string;\n    languageBlogLink: string;\n    lazyLoad?: boolean;\n}\n\nexport function FeaturedCategory({\n    articles,\n    categoryBlogLink,\n    languageBlogLink,\n    lazyLoad,\n}: FeaturedCategoryProps): JSX.Element {\n    const displayedArticles = articles.slice(0, 3);\n    const firstArticle = displayedArticles[0];\n    const { prefixStringWithBaseUrl } = useStaticValues();\n\n    return (\n        <LazyLoadContainer component={Grid2} container spacing={{ xs: 2, md: 4 }}>\n            <Grid2 size={{ xs: 12, md: 4, lg: 5 }}>\n                <BlogCard3\n                    title={firstArticle.title}\n                    linkPath={`${languageBlogLink}${firstArticle.slug}`}\n                    ariaLabel={`Read more about ${firstArticle.title}`}\n                    image={{\n                        imagePath: prefixStringWithBaseUrl(firstArticle.cardImageUrl),\n                        imageAlt: firstArticle.cardImageAlt,\n                    }}\n                    category={firstArticle.category.name}\n                    categoryLink={`${categoryBlogLink}${firstArticle.category.slug}`}\n                    publishedDateUtc={firstArticle.publishedDateUtc}\n                    readMinutes={firstArticle.readMinutes}\n                    lazyLoad={lazyLoad}\n                />\n            </Grid2>\n            <Grid2 size={{ xs: 12, md: 8, lg: 7 }}>\n                <Grid2 container spacing={{ xs: 2, md: 4 }}>\n                    {displayedArticles.slice(1).map((card, index) => (\n                        <Grid2 size={12} key={index}>\n                            <BlogCard2\n                                title={card.title}\n                                linkPath={`${languageBlogLink}${card.slug}`}\n                                image={{\n                                    imagePath: prefixStringWithBaseUrl(card.cardImageUrl),\n                                    imageAlt: card.cardImageAlt,\n                                }}\n                                category={card.category.name}\n                                categoryLink={`${categoryBlogLink}${card.category.slug}`}\n                                publishedDateUtc={card.publishedDateUtc}\n                                readMinutes={card.readMinutes}\n                                ariaLabel={`Read more about ${card.title}`}\n                                lazyLoad={lazyLoad}\n                            />\n                        </Grid2>\n                    ))}\n                </Grid2>\n            </Grid2>\n        </LazyLoadContainer>\n    );\n}\n","import React from 'react';\nimport { isDateVisibleAtom } from '@atoms/date';\nimport { useAtom } from 'jotai';\nimport { Skeleton } from '@mui/material';\n\nexport function PublicDateTime({ children }: { children: JSX.Element }): JSX.Element {\n    const [isDateVisibile] = useAtom(isDateVisibleAtom);\n\n    if (isDateVisibile) {\n        return children;\n    } else {\n        // we need to know the size of the text to render a skeleton with the correct size.\n        // the datetime text causes hydration warnings, so we supress them while we hide the mismatched text with the skeleton\n        const clonedElement = React.cloneElement(children, { suppressHydrationWarning: true });\n\n        return <Skeleton>{clonedElement}</Skeleton>;\n    }\n}\n","import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/it';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/fr-ca';\nimport 'dayjs/locale/pt-br';\nimport 'dayjs/locale/id';\nimport { getDayJsCodeByLanguageCode } from '@helpers/languages';\nimport isToday from 'dayjs/plugin/isToday';\nimport isYesterday from 'dayjs/plugin/isYesterday';\nimport { LanguageCode } from '@models/languageCode';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(advancedFormat);\ndayjs.extend(localizedFormat);\ndayjs.extend(isToday);\ndayjs.extend(isYesterday);\n\n//the list of dayjs supported locales https://unpkg.com/dayjs@1.11.7/locale.json\n\nexport function getFormattedLocalDateTime(\n    utcDateTime: dayjs.ConfigType,\n    format = 'MM/DD/YYYY hh:mm A',\n    language = LanguageCode.en\n): string {\n    if (language !== LanguageCode.en) {\n        const dayjsCode = getDayJsCodeByLanguageCode(language);\n        return dayjs.utc(utcDateTime).local().locale(dayjsCode).format(format);\n    } else {\n        return dayjs.utc(utcDateTime).local().format(format);\n    }\n}\n\nexport function getFormattedDateTime(utcDateTime: dayjs.ConfigType, format = 'MM/DD/YYYY hh:mm A'): string {\n    const localTime = dayjs.utc(utcDateTime).local();\n\n    if (isTodayDate(localTime)) {\n        return 'Today';\n    } else if (isYesterdayDate(localTime)) {\n        return 'Yesterday';\n    } else {\n        return dayjs(localTime).format(format);\n    }\n}\n\nexport function isTodayDate(dateTime: dayjs.ConfigType): boolean {\n    return dayjs(dateTime).isToday();\n}\n\nexport function isYesterdayDate(dateTime: dayjs.ConfigType): boolean {\n    return dayjs(dateTime).isYesterday();\n}\n\nexport const compareDates = (date1: dayjs.ConfigType, date2: dayjs.ConfigType): number => {\n    const dateJsUtc1 = dayjs(date1).utc();\n    const dateJsUtc2 = dayjs(date2).utc();\n\n    if (dateJsUtc1.isBefore(dateJsUtc2)) {\n        return -1;\n    } else if (dateJsUtc1.isAfter(dateJsUtc2)) {\n        return 1;\n    } else {\n        return 0;\n    }\n};\n","export const debounce = (\n    func: (...args: unknown[]) => void,\n    delay: number\n): ((this: unknown, ...args: unknown[]) => void) => {\n    let timeoutId: ReturnType<typeof setTimeout>;\n    return function (this: unknown, ...args: unknown[]) {\n        clearTimeout(timeoutId);\n        timeoutId = setTimeout(() => func.apply(this, args), delay);\n    };\n};\n","import { jsx as _jsx } from \"@emotion/react/jsx-runtime\";\nexport function ForwardIcon(props) {\n    return (_jsx(\"svg\", Object.assign({ \"aria-hidden\": true, width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, props, { children: _jsx(\"path\", { d: 'M18.5575 10.5017C18.8142 10.2165 18.8142 9.78352 18.5575 9.4983L12.2579 2.4983C11.9808 2.19041 11.5066 2.16544 11.1987 2.44252C10.8908 2.71961 10.8658 3.19382 11.1429 3.50171L16.316 9.25001L2 9.25001C1.58579 9.25001 1.25 9.58579 1.25 10C1.25 10.4142 1.58579 10.75 2 10.75H16.316L11.1429 16.4983C10.8658 16.8062 10.8908 17.2804 11.1987 17.5575C11.5066 17.8346 11.9808 17.8096 12.2579 17.5017L18.5575 10.5017Z', fill: '#3C5164' }) })));\n}\n"],"names":["blogCard2Styles","cardContainer","display","flexDirection","width","outline","v2Colors","border","activePrimary","outlineOffset","borderRadius","transform","imageWrapper","height","overflow","flexShrink","breakpoints","sm","cardContent","hasCategoryPill","padding","categoryMargins","margin","textTruncate","WebkitBoxOrient","WebkitLineClamp","textOverflow","title","marginBottom","color","text","fontSize","titleMargin","marginTop","BlogCard2","linkPath","ariaLabel","image","category","categoryLink","publishedDateUtc","readMinutes","className","lazyLoad","selectedLanguage","useAtom","selectedLanguageAtom","isMobile","isMobileAtom","_jsxs","LinkOverlayContainer","css","blog2Classes","children","_jsx","classes","src","undefined","imagePath","alt","imageAlt","CategoryPill","Text","variant","component","weight","LinkOverlay","href","DateAndReadTime","blogCardStyle","objectFit","transition","borderColor","primary","backgroundColor","background","white","position","textDecoration","action","active","description","timeBlock","justifyContent","alignitems","divider","typographyStyles","body2","xs","selectedLanguageTranslation","useTranslation","readMinuteText","getTranslation","replace","PublicDateTime","getFormattedLocalDateTime","blogCategoryNavStyle","navContainer","categoryContainer","alignItems","borderBottom","core","haze","flexWrap","whiteSpace","overflowX","md","navItem","navLink","boxShadow","content","left","right","bottom","transparent","separator","borderRight","smoke","arrowContainer","arrowButton","cloud","activeSecondary","flipArrow","arrowIcon","hiddenAnchor","visibility","BlogCategoryNav","categoryLinks","showRightArrow","setShowRightArrow","useState","showLeftArrow","setShowLeftArrow","containerRef","useRef","blogHomeURL","getLanguageRouteAndPrefixByCodeAndRouteKey","languageRouteTypes","BLOG_HOME","useEffect","container","current","resizeObserver","ResizeObserver","updateScrollArrows","observe","unobserve","scrollLeft","clientWidth","scrollWidth","handleScroll","direction","adjustment","scrollTo","behavior","handleScrollDebounced","debounce","Button","onClick","tabIndex","RightArrowIcon","Grid","ref","onScroll","map","section","index","link","containerStyle","paddingTop","paddingBottom","BlogContainer","otherProps","Container","ArticlesWithSubscribe","articles","categoryBlogLink","languageBlogLink","displayedCards","slice","prefixStringWithBaseUrl","useStaticValues","LazyLoadContainer","Grid2","spacing","size","rowGap","card","slug","cardImageUrl","cardImageAlt","name","id","BlogSubscriptionBox","SubscriptionBoxStyles","boxContainer","innovationDark","shortBoxContainer","inversePrimary","inputTextboxContainer","flexGrow","input","consentContainer","label","snow","getRgbaColor","linkStyles","initialFormValues","first_name","last_name","email","opt_in","SubscribeBlogForm","notificationContext","useContext","NotificationContext","recaptchaSiteKey","formValues","setFormValues","useUTMFormValues","enableRecaptcha","RecaptchaComponent","token","refresh","useRecaptcha","disableButton","setDisableButton","subscribeFormTranslation","salesforceFormLanguage","language","getLanguageByCode","isEUForm","isEuLanguage","updateFieldValue","field","value","currentFormValues","onSubmit","event","async","preventDefault","postMarketingCloudForm","formId","formLanguage","redirectToThankyou","error","errorMessage","Error","message","show","handleSubmit","catch","logError","lg","Input","required","onFocus","placeholder","firstName","onChange","target","hiddenLabel","labelColor","lastName","type","Checkbox","checked","uncheckedColor","checkedColor","labelPlacement","consentTextSentences","CMSLink","rel","consentLink","consentLinkText","V2Button","fullWidth","disabled","subscribe","geotabSubscribeTranslation","isShort","Heading","subscribeTo","blogCard3Styles","picture","BlogCard3","blog3Classes","FeaturedCategory","displayedArticles","firstArticle","isDateVisibile","isDateVisibleAtom","clonedElement","React","suppressHydrationWarning","Skeleton","utcDateTime","format","LanguageCode","en","dayjsCode","getDayJsCodeByLanguageCode","dayjs","local","locale","getFormattedDateTime","localTime","isTodayDate","isYesterdayDate","dateTime","isToday","isYesterday","utc","timezone","advancedFormat","localizedFormat","compareDates","date1","date2","dateJsUtc1","dateJsUtc2","isBefore","isAfter","func","delay","timeoutId","args","clearTimeout","setTimeout","apply","this","ForwardIcon","props","Object","assign","viewBox","fill","xmlns","d"],"sourceRoot":""}