{"version":3,"file":"static/js/1888.7d7bbc2fae450c011b62.js","mappings":"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","sources":["components/Articles/RenderedCKEditorArticle.tsx","components/Articles/RenderedArticle.tsx","components/IconComponents/SocialIcons/XIcon.tsx","components/Articles/ShareSocialMediaButtons.tsx","components/Articles/styleObjects/ckEditorHTMLStyles.ts","components/BlogCards/BlogCard2Style.ts","components/BlogCards/BlogCard2.tsx","components/BlogCards/BlogCardStyle.ts","components/BlogCards/CategoryPill.tsx","components/BlogCards/DateAndReadTime.tsx","components/BlogSection/BlogComponents/Shared/ArticleFAQAccordionList.tsx","components/IconComponents/LightBulbIcon.tsx","components/Glossary/KeyTakeaways.tsx","components/IconComponents/DropdownIcon.tsx","components/IconComponents/SocialIcons/FacebookIcon.tsx","components/IconComponents/SocialIcons/LinkedInIcon.tsx","components/ParseAbbreviations.jsx","components/Picture.tsx","components/PublicDateTime.tsx","components/Redirect.jsx","components/RichTextContent.tsx","components/SectionComponents/helpers/DangerouslySetInnerHTML.tsx","components/SectionComponents/helpers/DangerouslySetInnerHTMLHelper.ts","components/SectionComponents/styleObjects/richTextHtmlStyles.ts","components/TableOfContents/TableOfContentsMobileItems.tsx","components/TableOfContents/TableOfContentsMobileV2.tsx","components/TableOfContents/TableOfContentsItems.tsx","components/TableOfContents/TableOfContentsV2.tsx","components/TableOfContents/TableOfContentsV2Styles.ts","components/TableOfContents/helperTableOfContents.ts","components/styleObjects/ArticleContentArea.ts","helpers/dates.ts","helpers/editorHelpers.ts","hooks/useTableOfContents.ts"],"sourcesContent":["import React from 'react';\nimport { DangerouslySetInnerHTML } from '../SectionComponents/helpers/DangerouslySetInnerHTML';\nimport { tryDecodeURI } from '../../helpers/string';\nimport { replaceWithEditorSafeImageUrls } from '@helpers/editorHelpers';\nimport { ckEditorHTMLStyles as classes } from './styleObjects/ckEditorHTMLStyles';\n\ninterface RenderedCKEditorArticleProps {\n content: string;\n mediaUrlPrefix: string;\n}\n\nexport default function RenderedCKEditorArticle({\n content,\n mediaUrlPrefix,\n}: RenderedCKEditorArticleProps): JSX.Element {\n return (\n \n );\n}\n","import React from 'react';\nimport { LazyLoadContainer } from '@web-for-marketing/react-ui';\nimport RenderedCKEditorArticle from './RenderedCKEditorArticle';\nimport { Grid } from '@mui/material';\n\ninterface RenderedArticleProps {\n content: string;\n mediaUrlPrefix: string;\n}\n\nexport function RenderedArticle({ content, mediaUrlPrefix }: RenderedArticleProps): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport function XIcon(props: React.SVGProps): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\nimport { FacebookIcon } from '@components/IconComponents/SocialIcons/FacebookIcon';\nimport { LinkedInIcon } from '@components/IconComponents/SocialIcons/LinkedInIcon';\nimport { MailIcon, v2Colors } from '@web-for-marketing/react-ui';\nimport { XIcon } from '@components/IconComponents/SocialIcons/XIcon';\nimport { useStaticValues } from '@stateManagement/StaticValuesContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { useTranslation } from '@stateManagement/TranslationContext';\n\nconst classes = {\n mailIcon: {\n '& path': {\n fill: 'currentColor',\n },\n },\n roundedShareBorder: {\n margin: '0 0.5rem',\n position: 'relative',\n border: `1px solid ${v2Colors.border.activePrimary}`,\n width: '4rem',\n height: '4rem',\n borderRadius: '50%',\n background: v2Colors.core.snow,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n textDecoration: 'none',\n cursor: 'pointer',\n overflow: 'hidden',\n color: v2Colors.border.activePrimary,\n '& svg': {\n color: v2Colors.border.activePrimary,\n },\n '&:hover': {\n cursor: 'pointer',\n border: `1px solid ${v2Colors.core.snow}`,\n color: v2Colors.core.snow,\n backgroundColor: v2Colors.border.activePrimary,\n '& svg': {\n strokeWidth: 1.1,\n color: `${v2Colors.core.snow} !important`,\n backgroundColor: `${v2Colors.border.activePrimary} !important`,\n },\n },\n '&:focus-visible': {\n backgroundColor: `${v2Colors.border.activePrimary} !important`,\n color: v2Colors.core.snow,\n outline: 'none',\n '& svg': {\n strokeWidth: 1.1,\n color: `${v2Colors.core.snow} !important`,\n backgroundColor: `${v2Colors.border.activePrimary} !important`,\n },\n },\n '&:active': {\n backgroundColor: `${v2Colors.border.activePrimary} !important`,\n color: v2Colors.core.snow,\n outline: 'none',\n '& svg': {\n strokeWidth: 1.1,\n color: `${v2Colors.core.snow} !important`,\n backgroundColor: `${v2Colors.border.activePrimary} !important`,\n },\n },\n },\n} as const;\n\nfunction socialPopUpWindow(link: string | URL, socialType: string): void {\n const featureStyle = 'width=550,height=600,left=150,top=200,toolbar=0,status=0,';\n window.open(link, socialType, featureStyle);\n}\n\ninterface ShareSocialMediaButtonsProps {\n className?: string;\n}\n\nexport function ShareSocialMediaButtons({ className }: ShareSocialMediaButtonsProps): JSX.Element {\n const { fullUrl } = useStaticValues();\n const { selectedLanguageTranslation } = useTranslation();\n\n const socialPlatforms = [\n {\n socialType: 'facebook',\n link: `https://www.facebook.com/sharer/sharer.php?u=${fullUrl}&src=sdkpreparse`,\n icon: ,\n },\n {\n socialType: 'twitter',\n link: `https://twitter.com/intent/tweet?url=${fullUrl}`,\n icon: ,\n },\n {\n socialType: 'linkedIn',\n link: `https://www.linkedin.com/sharing/share-offsite/?url=${fullUrl}`,\n icon: ,\n },\n {\n socialType: 'mail',\n link: `mailto:?to=&subject=Sharing an article from Geotab&body=${fullUrl}`,\n icon: ,\n },\n ];\n\n return (\n
\n {socialPlatforms.map(({ socialType, link, icon }, index) => (\n socialPopUpWindow(link, socialType)}\n aria-label={`${getTranslation(selectedLanguageTranslation, 'blogPost', 'shareWith')} ${socialType}`}\n >\n {icon}\n \n ))}\n
\n );\n}\n","import { colors, getRgbaColor, breakpoints, v2Colors, v2ButtonStyles } from '@web-for-marketing/react-ui';\nimport { typographyStyles } from '@web-for-marketing/react-ui';\nimport externalLinkWithBg from '@images/Blog/ExternalLinkWithBackground.svg';\nimport openInNewTab from '@images/Blog/OpenInNewTab.svg';\n\nexport const ckEditorHTMLStyles = {\n container: {\n marginBottom: '4rem',\n width: '100%',\n },\n articleStyles: {\n color: v2Colors.text.secondary,\n '& a[data-button]': {\n '&[data-variant=\"primary\"]': v2ButtonStyles({ variant: 'primary' }),\n '&[data-variant=\"secondary\"]': v2ButtonStyles({ variant: 'secondary' }),\n '&[data-variant=\"tertiary\"]': v2ButtonStyles({ variant: 'tertiary' }),\n '&[data-variant=\"link\"]': v2ButtonStyles({ variant: 'link' }),\n '&[data-variant=\"floating\"]': v2ButtonStyles({ variant: 'floating' }),\n '&[data-variant=\"ghost\"]': v2ButtonStyles({ variant: 'ghost' }),\n },\n '& a:not([data-button])': {\n transition: '200ms background-color ease',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n lineHeight: 'inherit',\n textDecoration: 'underline',\n color: v2Colors.core.innovation,\n wordBreak: 'break-word',\n padding: '0.5rem 0.2rem',\n '&:hover': {\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.03)} !important`,\n },\n '&:focus': {\n outlineColor: v2Colors.core.innovation,\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.06)} !important`,\n },\n '&:active': {\n outline: 'none',\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.05)} !important`,\n },\n '&[target=\"_blank\"]:not(figure *)::after': {\n content: '\"\"',\n height: '0.8em',\n width: '0.8em',\n marginLeft: '0.6rem',\n verticalAlign: 'baseline',\n display: 'inline-block',\n backgroundImage: `url(${openInNewTab})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n },\n '&:not([href*=\"www.geotab.com\"]):not([href^=\"/\"]):not(figure *)::after': {\n content: '\"\"',\n height: '0.8em',\n width: '0.8em',\n marginLeft: '0.6rem',\n verticalAlign: 'baseline',\n display: 'inline-block',\n backgroundImage: `url(${openInNewTab})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n },\n },\n '& quote': {\n fontSize: '3.2rem',\n color: v2Colors.text.secondary,\n fontStyle: 'oblique',\n margin: '0 1rem 2rem',\n [`@media (max-width: ${breakpoints.xl})`]: {\n fontSize: '2.8rem',\n },\n [`@media (max-width: ${breakpoints.lg})`]: {\n fontSize: '2.6rem',\n },\n [`@media (max-width: ${breakpoints.md})`]: {\n fontSize: '2.4rem',\n },\n },\n '& ul': {\n margin: '2rem 0 2.2rem',\n '& li::marker': {\n color: v2Colors.text.activePrimary,\n },\n '&:last-child': {\n marginBottom: 0,\n },\n },\n '& ol': {\n margin: '2rem 0 2.2rem',\n '&:last-child': {\n marginBottom: 0,\n },\n },\n '& li': {\n ...typographyStyles.body1,\n color: 'inherit',\n wordBreak: 'break-word',\n '&:not(:last-of-type)': {\n marginBottom: '1em',\n },\n '& ul,ol': {\n marginTop: '1em',\n marginBottom: 0,\n },\n },\n '& pre': {\n ...typographyStyles.body1,\n whiteSpace: 'pre-wrap',\n backgroundColor: v2Colors.core.cloud,\n fontFamily: '\"Inconsolata\", \"Menlo\", \"Consolas\", monospace',\n color: v2Colors.text.secondary,\n },\n '& code': {\n ...typographyStyles.body1,\n padding: '2rem',\n color: v2Colors.text.secondary,\n wordBreak: 'break-word',\n fontFamily: '\"source-code-pro\", \"Menlo\", \"Monaco\", \"Consolas\", \"Courier New\", \"monospace\"',\n },\n '& table, td': {\n ...typographyStyles.body1,\n color: v2Colors.text.secondary,\n border: `1px solid ${colors.core.mineral.main}`,\n borderCollapse: 'collapse',\n },\n '& table': {\n display: 'table',\n margin: 'auto',\n '& td': {\n padding: '0.72rem',\n },\n },\n '& img': {\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n },\n '& figure': {\n display: 'block',\n width: 'auto',\n margin: 0,\n maxWidth: '100%',\n position: 'relative',\n },\n '& figure.media': {\n margin: 'auto',\n width: '100%',\n clear: 'both',\n '& > div > div': {\n paddingBottom: '56.25% !important',\n },\n },\n\n '& figure.image': {\n margin: '2rem 2rem 2rem 0',\n boxSizing: 'content-box !important' as 'content-box',\n '& a': {\n padding: 0,\n },\n '& a[target=\"_blank\"]::after': {\n content: `url(${externalLinkWithBg})`,\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n '& a[target=\"_blank\"]:hover::after': {\n content: `url(${externalLinkWithBg})`,\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n '& a[target=\"_blank\"]:focus::after': {\n content: `url(${externalLinkWithBg})`,\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n '& a[target=\"_blank\"]:hover::before': {\n content: 'linear-gradient(140deg, rgba(0, 120, 211, 0) 0%, rgba(0, 120, 211, 0.3) 100%)',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: '0.5rem',\n top: 0,\n },\n '& a[target=\"_blank\"]:focus::before': {\n content: 'linear-gradient(140deg, rgba(0, 120, 211, 0) 0%, rgba(0, 120, 211, 0.5) 100%)',\n position: 'absolute',\n left: 0,\n right: 0,\n },\n },\n '& figure.image-style-align-left': {\n float: 'left',\n margin: '2rem 2rem 2rem 0',\n },\n '& figure.image-style-align-center': {\n display: 'block',\n margin: '2rem auto',\n },\n '& figure.image-style-align-right': {\n float: 'right',\n margin: '2rem 0 2rem 2rem',\n },\n '& h1': {\n ...typographyStyles.header1,\n marginBottom: '0.3em',\n },\n '& h2': {\n ...typographyStyles.header3,\n marginBottom: '1.6rem',\n marginTop: '0.8em',\n },\n '& h3': {\n ...typographyStyles.header4,\n color: v2Colors.text.activePrimary,\n marginBottom: '1.6rem',\n marginTop: '1em',\n },\n '& h4, h6': {\n ...typographyStyles.body1,\n color: v2Colors.text.secondary,\n },\n '& h5': {\n ...typographyStyles.body2,\n color: v2Colors.text.secondary,\n },\n '& p': {\n ...typographyStyles.body1,\n color: v2Colors.text.secondary,\n wordBreak: 'break-word',\n },\n },\n} as const;\n","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 \n
\n \n
\n
\n {category && categoryLink ? (\n \n ) : null}\n \n \n {title}\n \n \n {publishedDateUtc ? (\n \n ) : null}\n
\n
\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
\n \n {category}\n \n
\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
\n \n \n {getFormattedLocalDateTime(publishedDateUtc, 'LL', selectedLanguage)}\n \n \n
\n |\n
\n {readMinutes ? (\n \n {readMinuteText}\n \n ) : null}\n
\n );\n}\n","import React from 'react';\nimport { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, Heading } from '@web-for-marketing/react-ui';\nimport { RichTextContent } from '@components/RichTextContent';\nimport { breakpoints } from '@web-for-marketing/react-ui';\nimport { ArticleFAQType } from '@models/article';\n\ninterface ArticleFAQAccordionListProps {\n lists: ArticleFAQType[];\n title: string;\n className?: string;\n}\n\nconst classes = {\n title: {\n marginBottom: '3.2rem',\n [`@media (max-width: ${breakpoints.sm})`]: {\n marginBottom: '1.6rem',\n },\n },\n accordion: {\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n },\n} as const;\n\nexport function ArticleFAQAccordionList({ lists, title, className }: ArticleFAQAccordionListProps): JSX.Element {\n return (\n
\n {title ? (\n \n {title}\n \n ) : null}\n \n {lists.map(({ question, answer }) => (\n \n {question}\n \n \n \n \n ))}\n \n
\n );\n}\n","import React from 'react';\n\nexport function LightBulbIcon(props: React.SVGProps): JSX.Element {\n return (\n \n \n \n \n \n \n \n \n );\n}\n","import React, { useMemo } from 'react';\nimport { useTranslation } from '@stateManagement/TranslationContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { Grid2 } from '@mui/material';\nimport { breakpoints, space, Text } from '@web-for-marketing/react-ui';\nimport { RichTextContent } from '@components/RichTextContent';\nimport { ParseAbbreviations } from '@components/ParseAbbreviations';\nimport { LightBulbIcon } from '@components/IconComponents/LightBulbIcon';\nimport { v2Colors } from '@web-for-marketing/react-ui';\nimport { isMobileAtom } from '@atoms/appSettings';\nimport { useAtom } from 'jotai';\n\ninterface KeyTakeawaysProps {\n content: string;\n id?: string;\n mobileOffSetMargin?: string;\n}\n\nconst classes = {\n keyTakeAwayContainer: (mobileOffSetMargin?: string) => ({\n backgroundColor: v2Colors.background.light,\n padding: '3.2rem 3.2rem',\n borderRadius: '0.4rem',\n [`@media (max-width: ${breakpoints.sm})`]: {\n margin: mobileOffSetMargin ? `0 -${mobileOffSetMargin}` : `0 -${space.containerOuterPadding}`,\n padding: mobileOffSetMargin ? `2.4rem ${mobileOffSetMargin}` : `2.4rem ${space.containerOuterPadding}`,\n borderRadius: '0',\n width: 'unset',\n },\n }),\n iconContainer: {\n marginRight: '2.4rem',\n },\n};\n\nexport const KeyTakeaways = ({ content, id, mobileOffSetMargin }: KeyTakeawaysProps): JSX.Element | null => {\n const { selectedLanguageTranslation } = useTranslation();\n const glossaryKeyTakeawayTranslation = useMemo(() => {\n return getTranslation(selectedLanguageTranslation, 'glossary', 'articleCard');\n }, [selectedLanguageTranslation]);\n const [isMobile] = useAtom(isMobileAtom);\n\n return (\n \n {!isMobile ? (\n
\n \n
\n ) : null}\n
\n \n {glossaryKeyTakeawayTranslation.keyTakeaways}\n \n \n
\n
\n );\n};\n","import React from 'react';\n\nexport function DropdownIcon(props: React.SVGProps): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport function FacebookIcon(props: React.SVGProps): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport function LinkedInIcon(props: React.SVGProps): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\n\nfunction checkAbbreviations(content, stringFormat) {\n let currentContent = null;\n\n if (content && content.length) {\n let abbreviations = content.split(/~!(.*?)!~/gm);\n currentContent = content;\n\n if (abbreviations.length > 1) {\n if (stringFormat) {\n currentContent = abbreviations\n .map((element) => {\n let newAbbrElement;\n\n if (element.indexOf('{') > -1 && element.indexOf('}') > -1) {\n let abbreviationContent = element.split(/{(.*?)}/gm);\n\n newAbbrElement = abbreviationContent.length\n ? `${addBreaks(\n abbreviationContent[1],\n stringFormat\n )}`\n : '';\n } else {\n newAbbrElement = addBreaks(element, stringFormat);\n }\n\n return newAbbrElement;\n })\n .join('');\n } else {\n currentContent = (\n <>\n {abbreviations.map((element, index) => {\n let newAbbrElement;\n if (element.indexOf('{') > -1 && element.indexOf('}') > -1) {\n let abbreviationContent = element.split(/{(.*?)}/gm);\n\n newAbbrElement = abbreviationContent.length ? (\n \n {addBreaks(abbreviationContent[1], stringFormat)}\n \n ) : null;\n } else {\n newAbbrElement = addBreaks(element, stringFormat, index);\n }\n return newAbbrElement;\n })}\n \n );\n }\n } else {\n currentContent = addBreaks(currentContent, stringFormat);\n }\n }\n return currentContent;\n}\n\nfunction addBreaks(content, stringFormat, index = 0) {\n const contentWithNewline = content.replace(/
|
/gm, '\\n');\n let splitContent = contentWithNewline.split('\\n');\n let contentWithBreaks = [];\n\n if (splitContent.length > 1) {\n if (stringFormat) {\n for (let i = 0; i < splitContent.length - 1; i++) {\n contentWithBreaks.push(`${splitContent[i]}
`);\n }\n contentWithBreaks.push(splitContent[splitContent.length - 1]);\n splitContent = contentWithBreaks;\n } else {\n for (let i = 0; i < splitContent.length - 1; i++) {\n contentWithBreaks.push(\n \n {splitContent[i]}\n
\n
\n );\n }\n contentWithBreaks.push(\n {splitContent[splitContent.length - 1]}\n );\n splitContent = {contentWithBreaks};\n }\n } else {\n if (!stringFormat) {\n splitContent = splitContent[0];\n }\n }\n\n return stringFormat ? splitContent.join('') : splitContent;\n}\n\nexport function ParseAbbreviations({ content, stringFormat }) {\n return checkAbbreviations(content, stringFormat);\n}\n\nParseAbbreviations.defaultProps = {\n content: '',\n};\n\nParseAbbreviations.propTypes = {\n content: PropTypes.string,\n stringFormat: PropTypes.bool,\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useStaticValues } from '@stateManagement/StaticValuesContext';\nimport { breakpoints } from '@web-for-marketing/react-ui';\nimport { AspectRatio } from '@models/images';\nimport { Interpolation, Theme } from '@emotion/react';\nimport { PageHelmetPreloadLink } from '@components/PageHelmetPreloadLink';\n\ninterface BaseProps {\n imagePath?: string;\n lazyLoad?: boolean;\n mobilePath?: string;\n pictureProps?: React.HTMLAttributes & { css?: Interpolation };\n alt: string | undefined;\n mobileAlt?: string;\n fullWidth?: boolean;\n mobileQuery?: `${number}px`;\n aspectRatio?: AspectRatio | null;\n mobileAspectRatio?: AspectRatio | null;\n preload?: boolean;\n}\n\ninterface PictureStyleProps {\n aspectRatio: AspectRatio | undefined;\n mobileAspectRatio: AspectRatio | undefined;\n mobileQuery: string;\n imagePath?: string;\n mobilePath?: string;\n}\n\nexport type PictureProps = BaseProps & Omit, keyof BaseProps>;\n\nconst classes = {\n picture: {\n width: '100%',\n display: 'inline',\n height: '100%',\n },\n fullWidth: {\n width: '100%',\n },\n image: {\n objectFit: 'cover',\n },\n aspectRatio: ({ aspectRatio, mobileAspectRatio, mobileQuery, imagePath, mobilePath }: PictureStyleProps) => ({\n aspectRatio: imagePath ? aspectRatio : mobilePath ? mobileAspectRatio : undefined,\n [`@media (max-width: ${mobileQuery})`]: {\n aspectRatio: mobilePath ? mobileAspectRatio : imagePath ? aspectRatio : undefined,\n },\n }),\n} as const;\n\nexport function Picture({\n imagePath,\n mobilePath,\n alt,\n lazyLoad = false,\n mobileQuery = breakpoints.sm,\n fullWidth = true,\n className = '',\n pictureProps = {},\n aspectRatio,\n mobileAspectRatio,\n preload = false,\n mobileAlt,\n ...other\n}: PictureProps): JSX.Element {\n const [altText, setAltText] = useState(alt || '');\n const { prefixStringWithBaseUrl } = useStaticValues();\n const resolvedDesktopPath = useMemo(() => {\n return prefixStringWithBaseUrl(imagePath || mobilePath);\n }, [prefixStringWithBaseUrl, imagePath, mobilePath]);\n\n const resolvedMobilePath = useMemo(() => {\n return prefixStringWithBaseUrl(mobilePath || imagePath);\n }, [prefixStringWithBaseUrl, imagePath, mobilePath]);\n\n useEffect(() => {\n function updateAltText(): void {\n const isMobileWidth = window.innerWidth < parseInt(mobileQuery);\n const hasMobileImage = !!mobilePath;\n\n if (isMobileWidth && hasMobileImage) {\n setAltText(mobileAlt || '');\n } else {\n setAltText(alt || '');\n }\n }\n\n window.addEventListener('resize', updateAltText);\n\n // Initial call to set alt text on component mount\n updateAltText();\n\n return () => {\n window.removeEventListener('resize', updateAltText);\n };\n }, [mobileQuery, alt, mobileAlt, mobilePath]);\n\n return (\n <>\n {resolvedDesktopPath && preload ? : null}\n {resolvedMobilePath && preload ? : null}\n \n \n \n \n \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 {clonedElement};\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Navigate } from 'react-router-dom';\n\nexport function Redirect({ redirectUrl, statusCode }) {\n if (statusCode === 200 && typeof window !== 'undefined') {\n window.location.href = redirectUrl;\n }\n\n return ;\n}\n\nRedirect.propTypes = {\n redirectUrl: PropTypes.string.isRequired,\n statusCode: PropTypes.number.isRequired,\n};\n","import React from 'react';\nimport { DangerouslySetInnerHTML } from './SectionComponents/helpers/DangerouslySetInnerHTML';\nimport { DefaultTextProps } from '@web-for-marketing/react-ui';\nimport { richTextHtmlStyles } from './SectionComponents/styleObjects/richTextHtmlStyles';\nimport { RichTextListStyle } from '@models/richTextEditor';\n\ninterface RichTextContentProps extends DefaultTextProps {\n content: string;\n hideLinks?: boolean;\n listStyle?: RichTextListStyle;\n}\n\nexport function RichTextContent({ content, listStyle = 'default', ...other }: RichTextContentProps): JSX.Element {\n return (\n \n );\n}\n","import React, { useEffect } from 'react';\nimport { useStaticValues } from '@stateManagement/StaticValuesContext';\nimport { OverrideTextProps, Text } from '@web-for-marketing/react-ui';\nimport { getDangerouslySetInnerHTML, addScriptsToDOM, removeScriptTags } from './DangerouslySetInnerHTMLHelper';\n\ninterface BaseProps {\n html: string;\n parseLinks?: boolean;\n hideLinks?: boolean;\n}\n\ntype DangerouslySetInnerHTMLProps = BaseProps & OverrideTextProps;\n\nexport function DangerouslySetInnerHTML({\n html,\n parseLinks,\n hideLinks,\n ...other\n}: DangerouslySetInnerHTMLProps): JSX.Element {\n const { baseUrl } = useStaticValues();\n const { sanitizedHtml, scriptTags } = removeScriptTags(html);\n\n useEffect(() => {\n if (scriptTags) {\n addScriptsToDOM(scriptTags);\n }\n }, [scriptTags]);\n\n return (\n \n );\n}\n","import { isInternalOrBaseLink } from '@helpers/string';\n\nexport const getDangerouslySetInnerHTML = (\n html: string,\n baseUrl: string,\n parseLinks?: boolean,\n hideLinks?: boolean\n): string => {\n if (parseLinks) {\n const spliHtml = html.split(' {\n if (index === 0) {\n return str;\n }\n const match = str.match(/href=\"(.*?)\"/);\n if (match) {\n let linkAttributes = '';\n if (hideLinks) {\n linkAttributes += ' tabIndex=\"-1\"';\n }\n if (match[1] && !isInternalOrBaseLink(match[1], baseUrl)) {\n linkAttributes += ' target=\"_blank\" rel=\"noopener noreferrer\"';\n }\n return ` {\n const domParser = new DOMParser();\n const parsedScriptTags = domParser.parseFromString(scriptTags, 'text/html').querySelectorAll('script');\n\n parsedScriptTags.forEach((scriptTag) => {\n const newScriptTag = document.createElement('script');\n newScriptTag.innerHTML = scriptTag.innerHTML;\n const attributes = scriptTag.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const { name, value } = attributes[i];\n newScriptTag.setAttribute(name, value);\n }\n document.body.appendChild(newScriptTag);\n });\n};\n\nexport const addLinksToDOM = (linkTags: string): void => {\n const domParser = new DOMParser();\n const parsedLinkTags = domParser.parseFromString(linkTags, 'text/html').querySelectorAll('link');\n\n parsedLinkTags.forEach((linkTag) => {\n const newLinkTag = document.createElement('link');\n newLinkTag.innerHTML = linkTag.innerHTML;\n const attributes = linkTag.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const { name, value } = attributes[i];\n newLinkTag.setAttribute(name, value);\n }\n document.head.appendChild(newLinkTag);\n });\n};\n\nexport const removeScriptTags = (html: string): { sanitizedHtml: string; scriptTags: string } => {\n const scriptTags: string[] = [];\n\n const sanitizedHtml = html.replace(\n /]*<\\/script>)(?:(?!\\/\\/)(?!\\/\\*)[^'\"]|\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\/\\/.*(?:\\n)|\\/\\*(?:(?:.|\\s))*?\\*\\/)*?<\\/script>/gi,\n (match) => {\n scriptTags.push(match);\n return '';\n }\n );\n\n return { sanitizedHtml, scriptTags: scriptTags.join('') };\n};\n\nexport const removeLinkTags = (html: string): { sanitizedHtml: string; linkTags: string } => {\n const linkTags: string[] = [];\n\n const sanitizedHtml = html.replace(/]*?(?:\\/>|>)/gi, (match) => {\n linkTags.push(match);\n return '';\n });\n\n return { sanitizedHtml, linkTags: linkTags.join('') };\n};\n","import openInNewTab from '@images/Blog/OpenInNewTab.svg';\nimport checkmark from '@images/round-checkmark.svg';\nimport { RichTextListStyle } from '@models/richTextEditor';\nimport { getRgbaColor, v2Colors } from '@web-for-marketing/react-ui';\n\nexport const richTextHtmlStyles = {\n rawHTML: (listSyle?: RichTextListStyle) =>\n ({\n width: '100%',\n '& p': {\n margin: 0,\n wordBreak: 'break-word',\n },\n '& ul': {\n margin: '2rem 0 2.2rem',\n listStyleImage: listSyle === 'checkmark' ? `url(${checkmark})` : undefined,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n '& ol': {\n margin: '2rem 0 2.2rem',\n '&:last-child': {\n marginBottom: 0,\n },\n },\n '& li': {\n wordBreak: 'break-word',\n '&:not(:last-of-type)': {\n marginBottom: '1.2rem',\n },\n '& ul,ol': {\n marginTop: '1.2rem',\n marginBottom: 0,\n },\n },\n '& a': {\n padding: '0.5rem 0.2rem',\n transition: '200ms background-color ease',\n textDecoration: 'underline',\n wordBreak: 'break-word',\n color: v2Colors.text.activeSecondary,\n '&:hover': {\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.03)} !important`,\n },\n '&:focus': {\n outlineColor: v2Colors.core.innovation,\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.06)} !important`,\n },\n '&:active': {\n outline: 'none',\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.05)} !important`,\n },\n '&[target=\"_blank\"]::after': {\n content: '\"\"',\n height: '0.8em',\n width: '0.8em',\n marginLeft: '0.6rem',\n verticalAlign: 'baseline',\n display: 'inline-block',\n backgroundImage: `url(${openInNewTab})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n },\n '&:not([href*=\"www.geotab.com\"]):not([href^=\"/\"])::after': {\n content: '\"\"',\n height: '0.8em',\n width: '0.8em',\n marginLeft: '0.6rem',\n verticalAlign: 'baseline',\n display: 'inline-block',\n backgroundImage: `url(${openInNewTab})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n },\n },\n }) as const,\n};\n","import React from 'react';\nimport { Text } from '@web-for-marketing/react-ui';\nimport { TableOfContentV2Styles as classes } from './TableOfContentsV2Styles';\nimport { TableOfContentsHeading } from '@models/tableOfContents';\n\ninterface TableOfContentsMobileItemsProps {\n items: TableOfContentsHeading[];\n onSelectItem: (id: string, event: React.MouseEvent) => void;\n activeHeader: string | null;\n}\n\nexport function TableOfContentsMobileItems({\n items,\n onSelectItem,\n activeHeader,\n}: TableOfContentsMobileItemsProps): JSX.Element {\n const renderTableItem = (elem: TableOfContentsHeading): JSX.Element => {\n const isActive = activeHeader === elem.id;\n\n return (\n
  • \n ) => onSelectItem(elem.id, event)}\n dangerouslySetInnerHTML={{ __html: elem.title || '' }}\n >\n {elem.items && elem.items.length > 0 ? (\n
      {elem.items.map((child) => renderTableItem(child))}
    \n ) : null}\n
  • \n );\n };\n\n return <>{items.map((elem) => renderTableItem(elem))};\n}\n","import React, { useState, useMemo, useRef } from 'react';\nimport { TableOfContentV2Styles as classes } from './TableOfContentsV2Styles';\nimport { useTranslation } from '@stateManagement/TranslationContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { Grid } from '@mui/material';\nimport { DropdownIcon } from '@components/IconComponents/DropdownIcon';\nimport { getHeadingsFromContent } from './helperTableOfContents';\nimport { Heading, v2Colors, useAccessiblePopout, HeadingVariant } from '@web-for-marketing/react-ui';\nimport { useTableOfContents } from '@hooks/useTableOfContents';\nimport { TableOfContentsMobileItems } from './TableOfContentsMobileItems';\n\ninterface TableOfContentsProps {\n content: string;\n id?: string;\n headingLevel?: HeadingVariant;\n className?: string;\n}\n\nexport const TableOfContentsMobile = ({\n content,\n id,\n headingLevel = 'h2',\n className,\n}: TableOfContentsProps): JSX.Element | null => {\n const { nestedHeadingsH2H3, nestedHeadingsH3 } = useMemo(() => getHeadingsFromContent(content), [content]);\n const { selectedLanguageTranslation } = useTranslation();\n const tableOfContentTranslation = useMemo(() => {\n return getTranslation(selectedLanguageTranslation, 'blogTableContent');\n }, [selectedLanguageTranslation]);\n const { activeHeader } = useTableOfContents(content);\n const [open, setOpen] = useState(false);\n const close = (): void => setOpen(false);\n const popover = useRef(null);\n\n useAccessiblePopout(popover, open, close, {\n disableScroll: false,\n });\n\n const removeFocusAfterScroll = (): void => {\n document.addEventListener('scroll', () => {\n (document?.activeElement as HTMLElement)?.blur();\n });\n };\n\n const scrollToElement = (id: string, event: React.MouseEvent): void => {\n event.preventDefault();\n const element = document.querySelector(`#${id}`);\n if (element) {\n const elementPosition = element.getBoundingClientRect().top;\n const offsetPosition = elementPosition + window.scrollY - 50;\n\n window.scrollTo({\n top: offsetPosition,\n behavior: 'smooth',\n });\n }\n };\n\n function handleItemSelect(id: string, event: React.MouseEvent): void {\n scrollToElement(id, event);\n removeFocusAfterScroll();\n close();\n }\n\n if (nestedHeadingsH2H3.length > 0 || nestedHeadingsH3.length > 0) {\n return (\n
    \n \n setOpen((open) => !open)}\n aria-label={open ? 'Click to close table of contents' : 'Click to open table of contents'}\n >\n \n {tableOfContentTranslation.title}\n \n \n \n \n \n
      \n 0 ? nestedHeadingsH2H3 : nestedHeadingsH3}\n activeHeader={activeHeader}\n onSelectItem={handleItemSelect}\n />\n
    \n
    \n \n \n {open ?
    : null}\n
    \n );\n } else {\n return null;\n }\n};\n","import React from 'react';\nimport { Text } from '@web-for-marketing/react-ui';\nimport { TableOfContentV2Styles as classes } from './TableOfContentsV2Styles';\nimport { TableOfContentsHeading } from '@models/tableOfContents';\n\ninterface TableOfContentsItemsProps {\n items: TableOfContentsHeading[];\n onSelectItem: (id: string, event: React.MouseEvent) => void;\n activeHeader: string | null;\n}\n\nexport function TableOfContentsItems({ items, onSelectItem, activeHeader }: TableOfContentsItemsProps): JSX.Element {\n const renderTableItem = (elem: TableOfContentsHeading): JSX.Element => {\n const isActive = activeHeader === elem.id;\n\n return (\n
  • \n ) => onSelectItem(elem.id, event)}\n dangerouslySetInnerHTML={{ __html: elem.title || '' }}\n >\n {elem.items && elem.items.length > 0 ? (\n
      {elem.items.map((child) => renderTableItem(child))}
    \n ) : null}\n
  • \n );\n };\n\n return <>{items.map((elem) => renderTableItem(elem))};\n}\n","import React, { useMemo } from 'react';\nimport { TableOfContentV2Styles as classes } from './TableOfContentsV2Styles';\nimport { useTranslation } from '@stateManagement/TranslationContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { getHeadingsFromContent } from './helperTableOfContents';\nimport { Heading, Container, HeadingVariant } from '@web-for-marketing/react-ui';\nimport { useTableOfContents } from '@hooks/useTableOfContents';\nimport { TableOfContentsItems } from './TableOfContentsItems';\nimport { useAtom } from 'jotai';\nimport { navHeightAtom } from '@atoms/appSettings';\n\ninterface TableOfContentsProps {\n content: string;\n id?: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const TableOfContents = ({ content, id, headingLevel = 'h3' }: TableOfContentsProps): JSX.Element | null => {\n const { nestedHeadingsH2H3, nestedHeadingsH3 } = useMemo(() => getHeadingsFromContent(content), [content]);\n const { selectedLanguageTranslation } = useTranslation();\n const [navHeight] = useAtom(navHeightAtom);\n const tableOfContentTranslation = useMemo(() => {\n return getTranslation(selectedLanguageTranslation, 'blogTableContent');\n }, [selectedLanguageTranslation]);\n const { activeHeader } = useTableOfContents(content);\n\n const removeFocusAfterScroll = (): void => {\n document.addEventListener('scroll', () => {\n (document?.activeElement as HTMLElement)?.blur();\n });\n };\n\n const scrollToElement = (id: string, event: React.MouseEvent): void => {\n event.preventDefault();\n const element = document.querySelector(`#${id}`);\n if (element) {\n const elementPosition = element.getBoundingClientRect().top;\n const offsetPosition = elementPosition + window.scrollY - navHeight;\n\n window.scrollTo({\n top: offsetPosition,\n behavior: 'smooth',\n });\n }\n };\n\n function handleItemSelect(id: string, event: React.MouseEvent): void {\n scrollToElement(id, event);\n removeFocusAfterScroll();\n }\n\n if (nestedHeadingsH2H3.length > 0 || nestedHeadingsH3.length > 0) {\n return (\n \n \n {tableOfContentTranslation.title}\n \n
      \n 0 ? nestedHeadingsH2H3 : nestedHeadingsH3}\n activeHeader={activeHeader}\n onSelectItem={handleItemSelect}\n />\n
    \n
    \n );\n } else {\n return null;\n }\n};\n","import { space, v2Colors } from '@web-for-marketing/react-ui';\n\nexport const TableOfContentV2Styles = {\n containerToC: {\n padding: '1.6rem 2rem 0 1.6rem',\n marginBottom: '2.4rem',\n '& li::marker': {\n color: v2Colors.text.secondary,\n fontSize: '1.4rem',\n },\n '& ul': {\n listStyle: 'none',\n padding: 0,\n marginLeft: '1.6rem',\n },\n '& li': {\n marginBottom: '1rem',\n position: 'relative',\n },\n },\n title: {\n marginBottom: '2.4rem',\n },\n listUl: {\n listStyleType: 'none',\n '& li': {\n marginBottom: '0.6rem',\n },\n '& ul': {\n marginTop: '0.6rem',\n paddingLeft: '1.6rem',\n '& li': {\n marginBottom: '0.6rem',\n },\n },\n },\n linkStyles: (isActive: boolean) =>\n ({\n padding: '0.4rem 0.8rem',\n textDecoration: 'none',\n paddingLeft: '0',\n display: 'block',\n position: 'relative',\n '&:hover': {\n color: v2Colors.text.activePrimary,\n },\n '&:focus-visible': {\n color: v2Colors.text.activePrimary,\n border: '1px solid',\n borderColor: v2Colors.text.activePrimary,\n borderRadius: '0.4rem',\n outlineColor: v2Colors.text.activePrimary,\n },\n '&:active': {\n outline: 'none',\n },\n '&::before': isActive\n ? {\n content: '\"\"',\n position: 'absolute' as const,\n left: '-1.6rem',\n top: '50%',\n transform: 'translateY(-50%)',\n height: '2.5rem',\n width: '3px',\n backgroundColor: v2Colors.border.activePrimary,\n borderRadius: '0.4rem',\n }\n : undefined,\n }) as const,\n mobileContainer: {\n width: '100%',\n boxSizing: 'border-box',\n backgroundColor: v2Colors.background.white,\n position: 'sticky',\n top: 0,\n zIndex: 2,\n },\n mobileTitleButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n backgroundColor: v2Colors.background.white,\n padding: `10px ${space.containerOuterPadding}`,\n border: 'none',\n borderTop: `1px solid ${v2Colors.border.primary}`,\n borderBottom: `1px solid ${v2Colors.border.primary}`,\n '&:focus-visible': {\n backgroundColor: v2Colors.action.active,\n border: '1px solid',\n borderColor: v2Colors.border.activePrimary,\n outlineColor: v2Colors.text.activePrimary,\n },\n },\n rotate: {\n transform: 'rotate(180deg)',\n },\n listUlMobile: {\n width: '100%',\n padding: 0,\n margin: 0,\n listStyleType: 'none',\n },\n linkStylesMobile: {\n display: 'block',\n boxSizing: 'border-box',\n width: '100%',\n padding: `10px ${space.containerOuterPadding}`,\n textDecoration: 'none',\n lineHeight: '2.2 !important',\n borderBottom: `1px solid ${v2Colors.border.primary}`,\n transition: 'color 0.3s ease',\n '&:hover': {\n color: v2Colors.text.activePrimary,\n },\n '&:focus-visible': {\n color: v2Colors.text.activePrimary,\n outline: 'none',\n },\n },\n popover: {\n position: 'absolute',\n width: '100%',\n backgroundColor: v2Colors.background.white,\n visibility: 'hidden',\n zIndex: 1001,\n transform: 'translateY(-2%) scale(0.95)',\n transition: 'transform ease 100ms',\n },\n showOpen: {\n opacity: 1,\n visibility: 'visible',\n height: 'auto',\n transform: 'none',\n transition: 'transform ease 300ms',\n },\n background: {\n position: 'fixed',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 999,\n pointerEvents: 'auto',\n },\n} as const;\n","import { TableOfContentsHeading } from '@models/tableOfContents';\n\ntype returnType = {\n nestedHeadingsH2H3: TableOfContentsHeading[];\n nestedHeadingsH3: TableOfContentsHeading[];\n};\n\nexport function removeHTMLTagsFromText(text: string): string {\n const removeHeadersFromText = text.replace(/(?!<\\/?a( |>))(<([^>]+)>)/gi, '');\n const removeHTMLSymbols = removeHeadersFromText.replace(/ /gi, ' ');\n\n return removeHTMLSymbols.trim();\n}\n\nexport function getIdFromHTMLTagText(text: string): string {\n const tagId = text.match('id=\"(.*)\"');\n const id = tagId ? tagId[1] : '';\n\n return id;\n}\n\nexport const getHeadingsFromContent = (content: string): returnType => {\n const headingsH2H3 = content.match(/.*?<\\/h\\1>/g);\n const nestedHeadingsH2H3: TableOfContentsHeading[] = [];\n const nestedHeadingsH3: TableOfContentsHeading[] = [];\n\n if (headingsH2H3) {\n //if an article has h2 tags, create an array with a nested array\n if (headingsH2H3[0].includes('h2')) {\n headingsH2H3.map((header) => {\n if (header.includes('h2')) {\n const textContent = removeHTMLTagsFromText(header);\n const id = getIdFromHTMLTagText(header);\n nestedHeadingsH2H3.push({ id: id, title: textContent, items: [] });\n } else if (header.includes('h3')) {\n const textContent = removeHTMLTagsFromText(header);\n const id = getIdFromHTMLTagText(header);\n nestedHeadingsH2H3[nestedHeadingsH2H3.length - 1]?.items?.push({\n id: id,\n title: textContent,\n });\n }\n });\n } else {\n // if no h2 tags, create an array only with h3\n headingsH2H3.map((header) => {\n const textContent = removeHTMLTagsFromText(header);\n const id = getIdFromHTMLTagText(header);\n nestedHeadingsH3.push({ id: id, title: textContent });\n });\n }\n }\n\n return { nestedHeadingsH2H3, nestedHeadingsH3 };\n};\n","import { colors, breakpoints, v2Colors } from '@web-for-marketing/react-ui';\n\nexport const articleContentAreaStyles = {\n container: {\n margin: '0',\n padding: '5rem',\n boxShadow: '0px 15px 15px rgba(102, 120, 140, .41)',\n background: '#FFFFFF 0% 0% no-repeat padding-box',\n [`@media (max-width: ${breakpoints.sm})`]: {\n margin: '0 -9.6vw -3rem',\n padding: '3rem 9.6vw 4rem',\n },\n },\n mainContainer: {\n margin: '0',\n padding: '5rem',\n boxShadow: '0 1.5rem 1.5rem rgb(102 120 140 / 40%)',\n background: '#FFFFFF',\n [`@media (max-width: ${breakpoints.md})`]: {\n padding: 0,\n boxShadow: 'none',\n },\n },\n title: {\n marginBottom: '1rem',\n width: '100%',\n [`@media (max-width: ${breakpoints.sm})`]: {\n fontSize: '3.6rem',\n },\n },\n blogDescription: {\n fontWeight: 400,\n marginBottom: '3rem',\n },\n subHeading: {\n fontSize: '3.2rem',\n fontWeight: 400,\n color: v2Colors.core.innovation,\n marginBottom: 0,\n [`@media (max-width: ${breakpoints.md})`]: {\n fontSize: '2rem',\n marginBottom: '0',\n },\n },\n content: {\n marginTop: '2.5rem',\n [`@media (max-width: ${breakpoints.sm})`]: {\n marginTop: '1.5rem',\n },\n },\n publishedDate: {\n marginTop: '0.6em',\n [`@media (max-width: ${breakpoints.sm})`]: {\n fontSize: '1.8rem',\n fontWeight: 'bold',\n },\n },\n publishedContainer: {\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n [`@media (max-width: ${breakpoints.sm})`]: {\n flexWrap: 'wrap',\n },\n },\n dividerTop: {\n margin: '3rem 0',\n width: '100%',\n [`@media (max-width: ${breakpoints.md})`]: {\n margin: '2rem 0',\n },\n },\n dividerBottom: {\n margin: '5rem 0 6rem',\n width: '100%',\n [`@media (max-width: ${breakpoints.md})`]: {\n margin: '4rem 0',\n },\n },\n media: {\n display: 'none',\n [`@media (max-width: ${breakpoints.md})`]: {\n display: 'block',\n marginTop: '2rem',\n marginBottom: '2rem',\n },\n },\n tags: {\n marginTop: '2rem',\n [`@media (max-width: ${breakpoints.md})`]: {\n margin: '3rem 0 0',\n },\n },\n downloadButton: {\n marginTop: '4rem',\n },\n downloadContainer: {\n [`@media (max-width: ${breakpoints.sm})`]: {\n marginTop: '1rem',\n },\n },\n downloadBtnWrapper: {\n marginLeft: 'auto',\n [`@media (max-width: ${breakpoints.sm})`]: {\n margin: '1rem auto 0',\n },\n },\n bodyText: {\n fontSize: '1.6rem',\n },\n bodySubtitle: {\n marginBottom: '1rem',\n },\n displayContainer: {\n marginBottom: '0',\n },\n shareAndLikeIcons: {\n display: 'flex',\n },\n roundShareIcon: {\n padding: '0 !important',\n margin: '12px',\n },\n fixMargin: {\n outline: 'none',\n [`@media (max-width: ${breakpoints.md})`]: {\n margin: '2.5rem 0 1rem 0',\n },\n },\n authorLink: {\n display: 'block',\n\n '&:focus': {\n outline: 'none',\n },\n '&:active': {\n outline: 'none',\n },\n\n '&:focus div:first-child': {\n backgroundColor: colors.core.innovation.lightest,\n },\n '&:hover div:first-child': {\n backgroundColor: colors.core.innovation.lightest,\n },\n '&:active div:first-child': {\n backgroundColor: colors.core.innovation.lightest,\n },\n },\n iframeMedia: {\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n paddingTop: '56.25%',\n margin: '2rem 0',\n },\n videoMedia: {\n width: '100%',\n margin: '2rem 0',\n '& > iframe': {\n height: '100%',\n position: 'absolute',\n width: '100%',\n top: 0,\n left: 0,\n },\n },\n responsiveIframe: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: '100%',\n height: '100%',\n },\n} as const;\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","import { ValidatorMessage } from '@web-for-marketing/react-ui';\nimport { mediaUrlPrefixToken, resolveImagePath } from './gallery';\n\nexport function replaceWithEditorSafeImageUrls(content: string, mediaUrlPrefix: string): string {\n return replaceStringInImageSource(content, mediaUrlPrefixToken, mediaUrlPrefix);\n}\n\nexport function replaceWithDbSafeImageUrls(content: string, mediaUrlPrefix: string): string {\n return replaceStringInImageSource(content, mediaUrlPrefix, mediaUrlPrefixToken);\n}\n\nexport function replaceStringInImageSource(content: string, lookupString: string, replacementString: string): string {\n const updatedContent = content;\n const replaceRegex = new RegExp(lookupString, 'gi');\n\n return updatedContent.replace(replaceRegex, replacementString);\n}\n\nexport function wrapImageContentWithFigure(content: string): string {\n const doc = new DOMParser().parseFromString(content, 'text/html');\n const images = doc.querySelectorAll('img');\n const imagesWithoutFigure = Array.from(images).filter((img) => !img.closest('figure'));\n\n function wrapElement(el: ParentNode, wrapper: HTMLElement): void {\n el.parentNode?.insertBefore(wrapper, el);\n wrapper.appendChild(el);\n }\n\n imagesWithoutFigure.forEach((img) => {\n const classAttributeValue = img.getAttribute('class');\n const styleAttributeValue = img.getAttribute('style');\n\n img.removeAttribute('class');\n img.removeAttribute('style');\n\n const figure = document.createElement('figure');\n\n figure.setAttribute('class', `image ${classAttributeValue ? classAttributeValue : ''}`);\n styleAttributeValue && figure.setAttribute('style', styleAttributeValue);\n\n const wrappedWithAnchor = img.parentNode?.nodeName === 'A';\n const elementToWrap = wrappedWithAnchor ? img.parentNode : img;\n\n wrapElement(elementToWrap, figure);\n });\n\n const bodyTag = doc.childNodes[0].childNodes[1];\n\n return (bodyTag as HTMLElement).innerHTML;\n}\n\nexport function removeImages(html: string): string {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n const images = doc.querySelectorAll('img');\n\n images.forEach((img) => {\n let prevElement = img as HTMLElement;\n let currentElement = img.parentElement;\n\n while (currentElement?.parentElement != null && currentElement.childElementCount == 1) {\n prevElement = currentElement;\n currentElement = currentElement.parentElement;\n }\n\n currentElement?.removeChild(prevElement);\n });\n\n const strHtml = new XMLSerializer().serializeToString(doc);\n\n return strHtml;\n}\n\nexport function updateImageSrc(html: string, urls: { [key: string]: string }, mediaUrlPrefix: string): string {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n const images = doc.querySelectorAll('img');\n\n images.forEach((img) => {\n img.src = resolveImagePath(mediaUrlPrefix, urls[img.src]);\n });\n\n const strHtml = new XMLSerializer().serializeToString(doc);\n\n return strHtml;\n}\n\nexport function validateImages(content: string): ValidatorMessage {\n const doc = new DOMParser().parseFromString(content, 'text/html');\n const images = doc.querySelectorAll('img');\n\n const noAlt = Array.from(images).some((img) => !img.getAttribute('alt'));\n\n return noAlt ? 'All images must have an alt attribute' : null;\n}\n\nexport function validateHeadersOrder(content: string, metadata: { headingLevel: number }): ValidatorMessage {\n const doc = new DOMParser().parseFromString(content, 'text/html');\n let expectedLevel = metadata.headingLevel;\n const allHeaders = doc.querySelectorAll('h1, h2, h3, h4');\n\n if (allHeaders.length === 0) {\n return null;\n }\n\n for (const header of allHeaders) {\n const level = parseInt(header.tagName.substring(1));\n\n if (level < expectedLevel) {\n expectedLevel = level;\n }\n\n if (level > expectedLevel) {\n return 'All headers must have the right order: h1, h2, h3, h4. Heading levels should only increase by one.';\n }\n\n expectedLevel = level + 1;\n }\n\n return null;\n}\n","import { useEffect, useRef, useState } from 'react';\n\ninterface UseTableOfContentsReturn {\n activeHeader: string | null;\n}\n\nexport const useTableOfContents = (content: string): UseTableOfContentsReturn => {\n const [activeHeader, setActiveHeader] = useState(null);\n const observerRef = useRef();\n\n useEffect(() => {\n if (observerRef.current) observerRef.current.disconnect();\n\n if ('IntersectionObserver' in window) {\n const observerOptions = {\n root: null,\n rootMargin: '0px 0px -80% 0px',\n threshold: 0,\n };\n\n const observerCallback = (entries: IntersectionObserverEntry[]): void => {\n entries.forEach((entry) => {\n const targetId = entry.target.getAttribute('id');\n if (entry.isIntersecting && targetId) {\n setActiveHeader(targetId);\n }\n });\n };\n\n observerRef.current = new IntersectionObserver(observerCallback, observerOptions);\n\n const headers = document.querySelectorAll('h2, h3');\n\n headers.forEach((header) => {\n if (header) {\n if (observerRef.current) observerRef.current.observe(header);\n }\n });\n }\n\n return () => {\n if (observerRef.current) observerRef.current.disconnect();\n };\n }, [content]);\n\n return { activeHeader };\n};\n"],"names":["RenderedCKEditorArticle","content","mediaUrlPrefix","_jsx","DangerouslySetInnerHTML","parseLinks","css","classes","container","articleStyles","html","tryDecodeURI","replaceWithEditorSafeImageUrls","RenderedArticle","LazyLoadContainer","component","Grid","children","XIcon","props","width","height","viewBox","fill","xmlns","id","d","mailIcon","roundedShareBorder","margin","position","border","v2Colors","activePrimary","borderRadius","background","core","snow","display","justifyContent","alignItems","textDecoration","cursor","overflow","color","backgroundColor","strokeWidth","outline","_ref","name","styles","ShareSocialMediaButtons","className","fullUrl","useStaticValues","selectedLanguageTranslation","useTranslation","socialPlatforms","socialType","link","icon","FacebookIcon","LinkedInIcon","MailIcon","map","index","tabIndex","onClick","window","open","socialPopUpWindow","getTranslation","ckEditorHTMLStyles","marginBottom","text","secondary","v2ButtonStyles","variant","transition","fontSize","fontWeight","lineHeight","innovation","wordBreak","padding","getRgbaColor","deepSpace","outlineColor","marginLeft","verticalAlign","backgroundImage","openInNewTab","backgroundSize","backgroundRepeat","fontStyle","breakpoints","xl","lg","md","typographyStyles","body1","marginTop","whiteSpace","cloud","fontFamily","colors","mineral","main","borderCollapse","maxWidth","clear","paddingBottom","boxSizing","externalLinkWithBg","left","bottom","right","top","float","header1","header3","header4","body2","blogCard2Styles","cardContainer","flexDirection","outlineOffset","transform","imageWrapper","flexShrink","sm","cardContent","hasCategoryPill","categoryMargins","textTruncate","WebkitBoxOrient","WebkitLineClamp","textOverflow","title","titleMargin","BlogCard2","linkPath","ariaLabel","image","category","categoryLink","publishedDateUtc","readMinutes","lazyLoad","selectedLanguage","useAtom","selectedLanguageAtom","isMobile","isMobileAtom","_jsxs","LinkOverlayContainer","blog2Classes","src","undefined","imagePath","alt","imageAlt","CategoryPill","Text","weight","LinkOverlay","href","DateAndReadTime","blogCardStyle","objectFit","borderColor","primary","white","action","active","description","timeBlock","alignitems","divider","xs","readMinuteText","replace","PublicDateTime","getFormattedLocalDateTime","accordion","gap","ArticleFAQAccordionList","lists","Heading","Accordion","question","answer","AccordionItem","AccordionTrigger","headingLevel","AccordionPanel","RichTextContent","LightBulbIcon","stroke","strokeLinecap","strokeLinejoin","keyTakeAwayContainer","mobileOffSetMargin","light","space","containerOuterPadding","iconContainer","marginRight","KeyTakeaways","glossaryKeyTakeawayTranslation","useMemo","Grid2","wrap","keyTakeaways","ParseAbbreviations","stringFormat","DropdownIcon","addBreaks","splitContent","split","contentWithBreaks","length","i","push","React","join","currentContent","abbreviations","element","newAbbrElement","indexOf","abbreviationContent","_Fragment","checkAbbreviations","defaultProps","propTypes","PropTypes","string","bool","picture","fullWidth","aspectRatio","mobileAspectRatio","mobileQuery","mobilePath","Picture","pictureProps","preload","mobileAlt","other","altText","setAltText","useState","prefixStringWithBaseUrl","resolvedDesktopPath","resolvedMobilePath","useEffect","updateAltText","isMobileWidth","innerWidth","parseInt","addEventListener","removeEventListener","PageHelmetPreloadLink","as","srcSet","media","isDateVisibile","isDateVisibleAtom","clonedElement","suppressHydrationWarning","Skeleton","Redirect","redirectUrl","statusCode","location","Navigate","to","isRequired","listStyle","richTextHtmlStyles","rawHTML","hideLinks","baseUrl","sanitizedHtml","scriptTags","removeScriptTags","addScriptsToDOM","dangerouslySetInnerHTML","__html","getDangerouslySetInnerHTML","str","match","linkAttributes","isInternalOrBaseLink","DOMParser","parseFromString","querySelectorAll","forEach","scriptTag","newScriptTag","document","createElement","innerHTML","attributes","value","setAttribute","body","appendChild","addLinksToDOM","linkTags","linkTag","newLinkTag","head","removeLinkTags","listSyle","listStyleImage","checkmark","activeSecondary","TableOfContentsMobileItems","items","onSelectItem","activeHeader","renderTableItem","elem","isActive","linkStylesMobile","event","listUlMobile","child","TableOfContentsMobile","nestedHeadingsH2H3","nestedHeadingsH3","getHeadingsFromContent","tableOfContentTranslation","useTableOfContents","setOpen","close","popover","useRef","useAccessiblePopout","disableScroll","mobileContainer","ref","mobileTitleButton","rotate","showOpen","role","scrollToElement","preventDefault","querySelector","offsetPosition","getBoundingClientRect","scrollY","scrollTo","behavior","activeElement","blur","TableOfContentsItems","linkStyles","listUl","TableOfContents","navHeight","navHeightAtom","Container","containerToC","TableOfContentV2Styles","listStyleType","paddingLeft","zIndex","borderTop","borderBottom","visibility","opacity","pointerEvents","removeHTMLTagsFromText","trim","getIdFromHTMLTagText","tagId","headingsH2H3","includes","header","textContent","articleContentAreaStyles","boxShadow","mainContainer","blogDescription","subHeading","publishedDate","publishedContainer","flexWrap","dividerTop","dividerBottom","tags","downloadButton","downloadContainer","downloadBtnWrapper","bodyText","bodySubtitle","displayContainer","shareAndLikeIcons","roundShareIcon","fixMargin","authorLink","lightest","iframeMedia","paddingTop","videoMedia","responsiveIframe","utcDateTime","format","language","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","replaceStringInImageSource","mediaUrlPrefixToken","replaceWithDbSafeImageUrls","lookupString","replacementString","updatedContent","replaceRegex","RegExp","wrapImageContentWithFigure","doc","images","Array","from","filter","img","closest","classAttributeValue","getAttribute","styleAttributeValue","removeAttribute","figure","elementToWrap","parentNode","nodeName","el","wrapper","insertBefore","childNodes","updateImageSrc","urls","resolveImagePath","XMLSerializer","serializeToString","validateImages","some","validateHeadersOrder","metadata","expectedLevel","allHeaders","level","tagName","substring","setActiveHeader","observerRef","current","disconnect","observerOptions","root","rootMargin","threshold","observerCallback","entries","entry","targetId","target","isIntersecting","IntersectionObserver","observe"],"sourceRoot":""}