{"version":3,"file":"static/js/6809.ff019fc080dff1340225.js","mappings":"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","sources":["components/Articles/styleObjects/downloadButtonStyles.ts","components/Articles/DownloadButton.tsx","components/IconComponents/DownloadArticleIcon.tsx","components/IconComponents/DropdownIcon.tsx","components/TableOfContents/TableOfContents.tsx","components/TableOfContents/TableOfContentsMobile.tsx","components/TableOfContents/helperTableOfContents.ts","components/TableOfContents/tableOfContentsStyles.ts","../node_modules/@web-for-marketing/react-ui/lib/esm/shared/utils/keyPressEvent/keyPressEvent.js","../node_modules/@web-for-marketing/react-ui/lib/esm/hooks/useFocusTrap/useFocusTrap.js","../node_modules/@web-for-marketing/react-ui/lib/esm/hooks/useAccessiblePopout/useAccessiblePopout.js","../node_modules/@web-for-marketing/react-ui/lib/esm/hooks/useDisableScroll/useDisableScroll.js","../node_modules/@web-for-marketing/react-ui/lib/esm/hooks/useEventListener/useEventListener.js"],"sourcesContent":["import { colors, v2Colors } from '@web-for-marketing/react-ui';\n\nexport const downloadButtonStyles = {\n downloadButton: {\n fontWeight: 700,\n fontSize: '1.5rem',\n maxHeight: '3.5rem',\n padding: '1.6rem 2rem !important',\n border: `0.1rem solid ${colors.interactive.primary} !important`,\n color: `${colors.interactive.primary} !important`,\n '&:hover': {\n color: `${v2Colors.core.snow} !important`,\n backgroundColor: `${colors.interactive.primary} !important`,\n '& > *': {\n color: `${v2Colors.core.snow} !important`,\n '& svg': {\n strokeWidth: 1.1,\n },\n },\n },\n },\n downloadIconSpacing: {\n marginRight: '1rem',\n },\n} as const;\n","import React from 'react';\nimport { DownloadArticleIcon } from '@components/IconComponents/DownloadArticleIcon';\nimport { downloadButtonStyles as classes } from './styleObjects/downloadButtonStyles';\nimport { useStaticValues } from '@stateManagement/StaticValuesContext';\nimport { Button } from '@mui/material';\n\ninterface DownloadButtonProps {\n link: string;\n text?: string;\n ariaLabel?: string;\n id?: string;\n}\n\nexport function DownloadButton({ link, text, ariaLabel, id }: DownloadButtonProps): JSX.Element {\n const { prefixStringWithBaseUrl } = useStaticValues();\n\n return (\n \n );\n}\n","import React from 'react';\n\nexport function DownloadArticleIcon(props: React.SVGProps): JSX.Element {\n return (\n \n );\n}\n","import React from 'react';\n\nexport function DropdownIcon(props: React.SVGProps): JSX.Element {\n return (\n \n );\n}\n","import React, { useEffect, useMemo } from 'react';\nimport { tableOfContentStyles } from './tableOfContentsStyles';\nimport { useTranslation } from '@stateManagement/TranslationContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { Grid } from '@mui/material';\nimport { getHeadingsFromContent } from './helperTableOfContents';\nimport { Text } from '@web-for-marketing/react-ui';\nimport { navHeightAtom } from '@atoms/appSettings';\nimport { useAtom } from 'jotai';\n\nconst classes = tableOfContentStyles;\n\ninterface TableOfContentsProps {\n content: string;\n id?: string;\n}\n\nexport const TableOfContents = ({ content, id }: TableOfContentsProps): JSX.Element | null => {\n const [navHeight] = useAtom(navHeightAtom);\n const { nestedHeadingsH2H3, nestedHeadingsH3 } = useMemo(() => getHeadingsFromContent(content), [content]);\n const { selectedLanguageTranslation } = useTranslation();\n const tableOfContentTranslation = useMemo(() => {\n return getTranslation(selectedLanguageTranslation, 'blogTableContent');\n }, [selectedLanguageTranslation]);\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 document?.querySelector(`#${id}`)?.scrollIntoView({\n behavior: 'smooth',\n });\n };\n\n useEffect(() => {\n document.documentElement.style.scrollPaddingTop = `${navHeight}px`;\n }, [navHeight]);\n\n if (nestedHeadingsH2H3.length > 0 || nestedHeadingsH3.length > 0) {\n return (\n \n \n {tableOfContentTranslation.title}\n \n {nestedHeadingsH2H3 && nestedHeadingsH2H3.length > 0 ? (\n \n {nestedHeadingsH2H3.map((elem) => {\n return (\n - \n ) => {\n scrollToElement(elem.id, event);\n removeFocusAfterScroll();\n }}\n >\n {elem.title}\n \n {elem.items && elem.items.length > 0 ? (\n
\n {elem.items.map((child) => (\n - \n ) => {\n scrollToElement(child.id, event);\n removeFocusAfterScroll();\n }}\n >\n {child.title}\n \n
\n ))}\n
\n ) : null}\n \n );\n })}\n
\n ) : (\n \n {nestedHeadingsH3?.map((elem) => {\n return (\n - \n ) => {\n scrollToElement(elem.id, event);\n removeFocusAfterScroll();\n }}\n >\n {elem.title}\n \n
\n );\n })}\n
\n )}\n \n );\n } else {\n return null;\n }\n};\n","import React, { useState, useMemo, useRef, useEffect } from 'react';\nimport { tableOfContentStyles } from './tableOfContentsStyles';\nimport { useTranslation } from '@stateManagement/TranslationContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { Grid } from '@mui/material';\nimport { useAccessiblePopout, Text } from '@web-for-marketing/react-ui';\nimport { DropdownIcon } from '@components/IconComponents/DropdownIcon';\nimport { getHeadingsFromContent } from './helperTableOfContents';\n\nconst classes = tableOfContentStyles;\n\ninterface TableOfContentsProps {\n content: string;\n id?: string;\n}\n\nexport const TableOfContentsMobile = ({ content, id }: TableOfContentsProps): JSX.Element | null => {\n const { nestedHeadingsH2H3, nestedHeadingsH3 } = useMemo(() => getHeadingsFromContent(content), [content]);\n const { selectedLanguageTranslation } = useTranslation();\n const [open, setOpen] = useState(false);\n const close = (): void => setOpen(false);\n const popover = useRef(null);\n\n const tableOfContentTranslation = useMemo(() => {\n return getTranslation(selectedLanguageTranslation, 'blogTableContent');\n }, [selectedLanguageTranslation]);\n\n useAccessiblePopout(popover, open, close, {\n disableScroll: false,\n });\n\n const scrollToElement = (id: string, event: React.MouseEvent): void => {\n event.preventDefault();\n document?.querySelector(`#${id}`)?.scrollIntoView({\n behavior: 'smooth',\n });\n };\n\n useEffect(() => {\n document.documentElement.style.scrollPaddingTop = '2rem';\n }, []);\n\n if (nestedHeadingsH2H3.length > 0 || nestedHeadingsH3.length > 0) {\n return (\n <>\n \n setOpen((open) => !open)}\n data-testid='menu-content-button'\n aria-label={open ? 'Click to close table of contents' : 'Click to open table of contents'}\n >\n \n \n \n {nestedHeadingsH2H3 && nestedHeadingsH2H3.length > 0 ? (\n \n \n \n {nestedHeadingsH2H3.map((elem) => {\n return (\n - \n ) => {\n scrollToElement(elem.id, event);\n close();\n }}\n >\n {elem.title}\n \n {elem.items && elem.items.length > 0 ? (\n
\n {elem.items.map((child) => (\n - \n ) => {\n scrollToElement(child.id, event);\n close();\n }}\n >\n {child.title}\n \n
\n ))}\n
\n ) : null}\n \n );\n })}\n
\n \n \n ) : (\n \n \n \n {nestedHeadingsH3?.map((elem) => {\n return (\n - \n ) => {\n scrollToElement(elem.id, event);\n close();\n }}\n >\n {elem.title}\n \n
\n );\n })}\n
\n \n \n )}\n \n {open ? : null}\n >\n );\n } else {\n return null;\n }\n};\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 { v2Colors } from '@web-for-marketing/react-ui';\n\nexport const tableOfContentStyles = {\n containerToC: {\n float: 'right',\n maxWidth: '32rem',\n padding: '2.4rem',\n marginLeft: '2.4rem',\n marginBottom: '1.6rem',\n backgroundColor: v2Colors.background.light,\n '& li::marker': {\n color: v2Colors.text.activeSecondary,\n fontSize: '1.4rem',\n },\n },\n title: {\n fontSize: '1.8rem !important',\n marginBottom: '0.8rem',\n },\n listOl: {\n paddingLeft: '1.6rem',\n '& li': {\n marginBottom: '0.4rem',\n },\n },\n listUl: {\n paddingLeft: '2.4rem',\n listStyleType: 'none',\n '& li': {\n marginBottom: '0.4rem',\n },\n },\n linkStyles: {\n padding: '0.4rem 0.8rem',\n textDecoration: 'none',\n paddingLeft: '0',\n '&:hover': {\n textDecoration: 'underline',\n },\n '&:focus': {\n textDecoration: 'underline',\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 },\n\n mobileContainer: {\n minWidth: '25rem',\n position: 'relative',\n margin: '0 -3.5rem',\n marginTop: '2.4rem',\n marginBottom: '1.6rem',\n backgroundColor: v2Colors.background.light,\n '& li::marker': {\n color: v2Colors.text.activePrimary,\n fontSize: '1.4rem',\n },\n },\n mobileTitleButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n color: v2Colors.text.secondary,\n padding: '2.4rem 2.4rem',\n border: 'none',\n textAlign: 'left',\n '&:hover': {\n backgroundColor: v2Colors.action.active,\n },\n '&:focus': {\n backgroundColor: v2Colors.action.active,\n border: '0.1rem solid',\n borderColor: v2Colors.border.activePrimary,\n outlineColor: v2Colors.text.activePrimary,\n },\n },\n arrowDown: {\n float: 'right',\n width: '2.5rem',\n height: 'auto',\n transition: 'transform 300ms',\n },\n arrowUp: {\n float: 'right',\n width: '2.5rem',\n height: 'auto',\n transform: 'rotate(180deg)',\n transition: 'transform 300ms',\n },\n listOlMobile: {\n paddingLeft: '1.6rem',\n },\n listUlMobile: {\n paddingLeft: '2.4rem',\n listStyleType: 'none',\n },\n linkStylesMobile: {\n color: v2Colors.text.activePrimary,\n padding: '1.2rem 1.6rem',\n textDecoration: 'none',\n lineHeight: '2.2 !important',\n paddingLeft: '0',\n '&:hover': {\n textDecoration: 'underline',\n },\n '&:focus': {\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 },\n popover: {\n position: 'absolute',\n backgroundColor: v2Colors.background.light,\n visibility: 'hidden',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n overflowX: 'hidden',\n zIndex: -1,\n transform: 'translateY(-2%) scale(0.95)',\n transition: 'transform ease 100ms',\n '@media (prefers-reduced-motion: reduce)': {\n transition: 'none',\n },\n },\n showOpen: {\n opacity: 1,\n visibility: 'visible',\n height: 'auto',\n width: '100%',\n whiteSpace: 'initial',\n overflow: 'initial',\n zIndex: 800,\n transform: 'none',\n transition: 'transform ease 300ms',\n paddingLeft: '2rem',\n },\n background: {\n position: 'fixed',\n content: '\"\"',\n width: '100%',\n height: '100%',\n display: 'block',\n top: 0,\n left: 0,\n zIndex: 3,\n },\n} as const;\n","export const keyIsTab = (event) => {\n return event.key === 'Tab' || event.code === 'Tab';\n};\nexport const keyIsEscape = (event) => {\n return event.key === 'Escape' || event.code === 'Escape';\n};\n","import { useEffect, useState } from 'react';\nimport { keyIsTab } from \"../../shared/utils/keyPressEvent/keyPressEvent\";\nconst focusableElement = ['a', 'button', 'textarea', 'input', 'select', 'iframe'];\n/**\n * A hook that applies a focus trap on a specified element\n *\n * @param containerRef a ref to the container element that the focus trap is applied to\n * @param focusableElementQueryArray an array of selectors to be queried which are allowed to be focused on\n * @param focusedElementIndex the index of the element that should initially have focus.\n * If this is not defined, the first focusable element will have focus by default\n *\n * @returns a function that resets the focus trap. This can be useful if the focusable elements\n * inside the container changes, but the focusableElementQueryArray stays the same\n */\nexport const useFocusTrap = (containerRef, focusableElementQueryArray = focusableElement, focusedElementIndex) => {\n const [refresh, setRefresh] = useState(0);\n const refreshFocusableElements = () => setRefresh((previousValue) => previousValue + 1);\n const targetElement = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current;\n useEffect(() => {\n let firstFocusElement = null;\n let lastFocusElement = null;\n function handleTabKeyPress(event) {\n if (keyIsTab(event)) {\n if (!event.shiftKey && document.activeElement === lastFocusElement) {\n event.preventDefault();\n firstFocusElement === null || firstFocusElement === void 0 ? void 0 : firstFocusElement.focus();\n }\n else if (event.shiftKey && document.activeElement === firstFocusElement) {\n event.preventDefault();\n lastFocusElement === null || lastFocusElement === void 0 ? void 0 : lastFocusElement.focus();\n }\n }\n }\n if (focusableElementQueryArray.length) {\n const focusableElementQuery = `${focusableElementQueryArray.join(':not([tabIndex=\"-1\"]):not([disabled]):not([aria-hidden=\"true\"]), ')}:not([tabIndex=\"-1\"]):not([disabled]):not([aria-hidden=\"true\"])`;\n if (targetElement) {\n const focusableElements = targetElement.querySelectorAll(focusableElementQuery);\n if (focusableElements.length) {\n firstFocusElement = focusableElements[0];\n lastFocusElement = focusableElements[focusableElements.length - 1];\n focusedElementIndex && focusableElements[focusedElementIndex]\n ? focusableElements[focusedElementIndex].focus()\n : firstFocusElement.focus();\n }\n targetElement.addEventListener('keydown', handleTabKeyPress);\n }\n }\n return () => {\n targetElement === null || targetElement === void 0 ? void 0 : targetElement.removeEventListener('keydown', handleTabKeyPress);\n };\n }, [focusableElementQueryArray, refresh, targetElement]);\n return refreshFocusableElements;\n};\n","import { useCallback } from 'react';\nimport { keyIsEscape } from \"../../shared/utils/keyPressEvent/keyPressEvent\";\nimport { useDisableScroll } from '../useDisableScroll/useDisableScroll';\nimport { useFocusTrap } from '../useFocusTrap/useFocusTrap';\nimport { useEventListener } from '../useEventListener/useEventListener';\n/**\n * A react hook that ensures popout components are accessible\n *\n * @param popOutRef a ref to the popout element\n * @param isOpen if true the popout is open\n * @param handleClose a callback to be executed when the popout is closed\n * @param optionOverrides options that can override the default behavior of the hook\n * @param optionOverrides.disableScroll if true disables scrolling on the page\n * @param optionOverrides.focusLock if true enables a focus trap on the specified element\n * @param optionOverrides.escapeToClose if true esc key will execute a handleClose callback\n * @param optionOverrides.focusableElementQueryArray an array of selectors to be queried which are allowed to be focused on\n * @param optionOverrides.focusedElementIndex the index of the element that should initially have focus\n *\n * @returns a function that resets the focus trap. This can be useful if the focusable elements\n * inside the popout changes, but the focusableElementQueryArray stays the same\n */\nexport const useAccessiblePopout = (popOutRef, isOpen, handleClose, optionOverrides) => {\n const options = Object.assign({ disableScroll: true, focusLock: true, escapeToClose: true, focusableElementQueryArray: ['a', 'button', 'textarea', 'input', 'select', 'iframe'], focusedElementIndex: 0 }, optionOverrides);\n const focusElements = isOpen && options.focusLock && options.focusableElementQueryArray ? options.focusableElementQueryArray : [];\n const handleEscapeKeyPress = useCallback((event) => {\n if (keyIsEscape(event)) {\n handleClose();\n }\n }, [handleClose]);\n useDisableScroll(isOpen && options.disableScroll);\n useEventListener('keydown', handleEscapeKeyPress, popOutRef, isOpen && options.escapeToClose);\n const refreshFocusableElements = useFocusTrap(popOutRef, focusElements, options.focusedElementIndex);\n return refreshFocusableElements;\n};\n","import { useEffect } from 'react';\n/**\n * A React hook that disables scrolling of the page\n *\n * @param disabled if true scroll is disabled on the page\n */\nexport const useDisableScroll = (disabled = true) => {\n useEffect(() => {\n const originalOverflow = document.body.style.overflow;\n if (disabled) {\n document.body.style.overflow = 'hidden';\n }\n else {\n document.body.style.overflow = originalOverflow;\n }\n return () => {\n document.body.style.overflow = originalOverflow;\n };\n }, [disabled]);\n};\n","import { useRef, useEffect } from 'react';\n/**\n * A React hook to manage event listeners\n *\n * @param eventName the event name\n * @param handler the event handler function to execute\n * @param element the element to add the event listener to.\n * If not defined, the event listener will be added to window by default\n * @param listen if true, the event listener will be added to the specified element or window\n */\nexport const useEventListener = (eventName, handler, element, listen = true) => {\n const savedHandler = useRef();\n useEffect(() => {\n const targetElement = (element === null || element === void 0 ? void 0 : element.current) || window;\n if (!(targetElement && targetElement.addEventListener) || !listen) {\n return;\n }\n if (savedHandler.current !== handler) {\n savedHandler.current = handler;\n }\n const eventListener = (event) => {\n if (savedHandler === null || savedHandler === void 0 ? void 0 : savedHandler.current) {\n savedHandler.current(event);\n }\n };\n targetElement.addEventListener(eventName, eventListener);\n return () => {\n targetElement.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element, handler, listen]);\n};\n"],"names":["downloadButtonStyles","downloadButton","fontWeight","fontSize","maxHeight","padding","border","colors","interactive","primary","color","v2Colors","core","snow","backgroundColor","strokeWidth","downloadIconSpacing","marginRight","DownloadButton","link","text","ariaLabel","id","prefixStringWithBaseUrl","useStaticValues","_jsxs","Button","component","href","download","variant","css","classes","children","_jsx","DownloadArticleIcon","props","width","height","viewBox","fill","xmlns","fillRule","clipRule","d","DropdownIcon","tableOfContentStyles","TableOfContents","content","navHeight","useAtom","navHeightAtom","nestedHeadingsH2H3","nestedHeadingsH3","useMemo","getHeadingsFromContent","selectedLanguageTranslation","useTranslation","tableOfContentTranslation","getTranslation","removeFocusAfterScroll","document","addEventListener","activeElement","blur","scrollToElement","event","preventDefault","querySelector","scrollIntoView","behavior","useEffect","documentElement","style","scrollPaddingTop","length","Grid","containerToC","Text","title","listOl","map","elem","linkStyles","onClick","items","listUl","child","TableOfContentsMobile","open","setOpen","useState","close","popover","useRef","useAccessiblePopout","disableScroll","_Fragment","mobileContainer","ref","mobileTitleButton","arrowUp","arrowDown","container","showOpen","role","listOlMobile","linkStylesMobile","listUlMobile","background","removeHTMLTagsFromText","replace","trim","getIdFromHTMLTagText","tagId","match","headingsH2H3","includes","header","textContent","push","float","maxWidth","marginLeft","marginBottom","light","activeSecondary","paddingLeft","listStyleType","textDecoration","borderColor","activePrimary","borderRadius","outlineColor","outline","minWidth","position","margin","marginTop","display","alignItems","justifyContent","secondary","textAlign","action","active","transition","transform","lineHeight","visibility","whiteSpace","overflow","overflowX","zIndex","opacity","top","left","focusableElement","popOutRef","isOpen","handleClose","optionOverrides","options","Object","assign","focusLock","escapeToClose","focusableElementQueryArray","focusedElementIndex","focusElements","handleEscapeKeyPress","useCallback","key","code","keyIsEscape","useDisableScroll","disabled","originalOverflow","body","useEventListener","eventName","handler","element","listen","savedHandler","targetElement","current","window","eventListener","removeEventListener","useFocusTrap","containerRef","refresh","setRefresh","firstFocusElement","lastFocusElement","handleTabKeyPress","keyIsTab","shiftKey","focus","focusableElementQuery","join","focusableElements","querySelectorAll","refreshFocusableElements","previousValue"],"sourceRoot":""}