{"version":3,"file":"static/js/1888.23c223168b933754d59e.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 } 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': {\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, AccordionPanel, AccordionTrigger, Heading } from '@web-for-marketing/react-ui';\nimport { Stack } from '@mui/material';\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} 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 }, index) => (\n \n \n {question}\n \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 ? `0 ${mobileOffSetMargin}` : `0 ${space.containerOuterPadding}`,\n paddingTop: '2.4rem',\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;\n mobileAspectRatio?: AspectRatio;\n preload?: boolean;\n}\n\ninterface PictureStyleProps {\n aspectRatio?: AspectRatio;\n mobileAspectRatio?: AspectRatio;\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","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","variant","weight","LinkOverlay","href","DateAndReadTime","blogCardStyle","objectFit","borderColor","primary","white","action","active","description","timeBlock","alignitems","divider","xs","readMinuteText","replace","PublicDateTime","getFormattedLocalDateTime","ArticleFAQAccordionList","lists","Heading","Stack","spacing","question","answer","Accordion","headingLevel","AccordionTrigger","AccordionPanel","RichTextContent","LightBulbIcon","stroke","strokeLinecap","strokeLinejoin","keyTakeAwayContainer","mobileOffSetMargin","light","space","containerOuterPadding","paddingTop","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","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":""}