{"version":3,"sources":["webpack://_N_E/./src/components/tooltip-dialog/tooltip-dialog.styles.ts","webpack://_N_E/./src/components/tooltip-dialog/tooltip-dialog.tsx","webpack://_N_E/./src/components/ui/text.tsx","webpack://_N_E/./node_modules/nanoid/index.browser.js","webpack://_N_E/./src/components/seo/seo.tsx","webpack://_N_E/./src/components/plan-icon/plan-icon.styles.ts","webpack://_N_E/./src/components/plan-icon/plan-icon.tsx","webpack://_N_E/./src/assets/icons/icon-chevron.svg","webpack://_N_E/./src/components/plan-heading/plan-heading.styles.ts","webpack://_N_E/./src/components/plan-heading/plan-heading.tsx","webpack://_N_E/./src/assets/icons/icon-info.svg","webpack://_N_E/./node_modules/react-use/esm/useEffectOnce.js","webpack://_N_E/./src/components/intro/intro.styles.ts","webpack://_N_E/./src/components/intro/intro.tsx","webpack://_N_E/./src/components/questions/survey/tooltip-mapping.tsx","webpack://_N_E/./src/assets/icons/icon-stay-defend.svg","webpack://_N_E/./src/assets/icons/icon-leave-early.svg"],"names":["TooltipLink","styled","a","rem","theme","textColor","colors","palette","black","bold","noUnderline","TooltipDialog","linkText","title","children","useState","showDialog","setShowDialog","id","useRef","nanoid","closeDialog","href","current","onClick","event","preventDefault","aria-hidden","role","width","height","isOpen","onDismiss","aria-labelledby","undefined","textStyles","css","components","text","Text","p","size","centerText","fontSize","bytes","crypto","getRandomValues","Uint8Array","byte","toString","toUpperCase","SEO","pageTitle","description","image","siteSettings","useSiteSettings","ogImage","ogImageUrl","urlFor","url","twitterCardImageUrl","pageDescription","rel","sizes","type","name","content","property","IconWrapper","span","PlanIcon","glow","iconProps","PlanDataTypeEnum","Stay","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_ref","fillRule","clipRule","d","fill","SvgIconChevron","props","xmlns","viewBox","Heading","h1","showBorder","mediaQueries","medium","TitleWrapper","div","Title","small","WrapperButton","button","PlanHeading","handleClick","showButton","_ref2","SvgIconInfo","effect","Wrapper","section","Header","grey","large","Body","Intro","onStart","introMode","cta","LeaveEarlyIntroModeEnum","Default","Help","renderBody","FireFightingEquipment","tooltipMapping","match","className","_ref3","SvgIconStayDefend","xmlSpace","x","y","filterUnits","values","maskUnits","filter","_ref4","mask","SvgIconLeaveEarly","enableBackground"],"mappings":"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","file":"static/chunks/da6832e996fba72ba944c0efde102151c438a877.7ce71fcb7d149a45ec33.js","sourcesContent":["import { rem } from 'polished';\nimport styled, { Theme } from 'styled-components';\n\ninterface TooltipDialogProps {\n textColor?: keyof Theme['colors']['palette'];\n bold?: boolean;\n noUnderline?: boolean;\n}\n\nexport const TooltipLink = styled.a`\n padding-right: ${rem(3)};\n color: ${({ theme, textColor }) =>\n textColor ? theme.colors.palette[textColor] : theme.colors.palette.black};\n text-decoration: none;\n\n span {\n font-weight: ${(bold) => (bold ? 700 : 400)};\n text-decoration: ${({ noUnderline }) =>\n noUnderline ? 'none' : 'underline'};\n }\n\n svg {\n vertical-align: middle;\n }\n`;\n","import { ReactComponent as InfoIcon } from 'assets/icons/icon-info.svg';\nimport {\n DialogClose,\n DialogContent,\n DialogOverlay,\n DialogTitle,\n} from 'components/dialog';\nimport { nanoid } from 'nanoid';\nimport { FC, MouseEvent, useRef, useState } from 'react';\nimport { Theme } from 'styled-components';\nimport { TooltipLink } from './tooltip-dialog.styles';\n\ninterface Props {\n linkText: string;\n title?: string | boolean;\n textColor?: keyof Theme['colors']['palette'];\n bold?: boolean;\n noUnderline?: boolean;\n}\n\nconst TooltipDialog: FC = ({\n linkText,\n title,\n textColor,\n bold,\n noUnderline,\n children,\n}) => {\n const [showDialog, setShowDialog] = useState(false);\n const id = useRef(nanoid());\n\n const openDialog = (event: MouseEvent) => {\n event.preventDefault();\n setShowDialog(true);\n };\n\n const closeDialog = () => setShowDialog(false);\n\n return (\n <>\n \n {linkText} \n \n \n\n \n \n {title !== false && {title || linkText}}\n {children}\n Close\n \n \n \n );\n};\n\nexport default TooltipDialog;\n","import { rem } from 'polished';\nimport styled, { css, Theme } from 'styled-components';\ninterface Props {\n size?: keyof Theme['fontSize']['text'];\n centerText?: boolean;\n}\n\nexport const textStyles = css`\n display: block;\n margin: 0;\n margin-top: ${rem(20)};\n margin-bottom: ${rem(40)};\n color: ${({ theme }) => theme.components.text.text};\n line-height: 1.3;\n`;\n\nexport const Text = styled.p`\n ${({ theme, size = 'medium', centerText = false }) => {\n return css`\n ${textStyles}\n\n font-size: ${theme.fontSize.text[size]};\n text-align: ${centerText ? 'center' : 'inherit'};\n `;\n }}\n`;\n","// This file replaces `index.js` in bundlers like webpack or Rollup,\n// according to `browser` config in `package.json`.\n\nimport { urlAlphabet } from './url-alphabet/index.js'\n\nif (process.env.NODE_ENV !== 'production') {\n // All bundlers will remove this block in the production bundle.\n if (\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative' &&\n typeof crypto === 'undefined'\n ) {\n throw new Error(\n 'React Native does not have a built-in secure random generator. ' +\n 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' +\n 'For secure IDs, import `react-native-get-random-values` ' +\n 'before Nano ID. If you use Expo, install `expo-random` ' +\n 'and use `nanoid/async`.'\n )\n }\n if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') {\n throw new Error(\n 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' +\n ' before importing Nano ID to fix IE 11 support'\n )\n }\n if (typeof crypto === 'undefined') {\n throw new Error(\n 'Your browser does not have secure random generator. ' +\n 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.'\n )\n }\n}\n\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\n\nlet customRandom = (alphabet, size, getRandom) => {\n // First, a bitmask is necessary to generate the ID. The bitmask makes bytes\n // values closer to the alphabet size. The bitmask calculates the closest\n // `2^31 - 1` number, which exceeds the alphabet size.\n // For example, the bitmask for the alphabet size 30 is 31 (00011111).\n // `Math.clz32` is not used, because it is not available in browsers.\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n // Though, the bitmask solution is not perfect since the bytes exceeding\n // the alphabet size are refused. Therefore, to reliably generate the ID,\n // the random bytes redundancy has to be satisfied.\n\n // Note: every hardware random generator call is performance expensive,\n // because the system call for entropy collection takes a lot of time.\n // So, to avoid additional system calls, extra bytes are requested in advance.\n\n // Next, a step determines how many random bytes to generate.\n // The number of random bytes gets decided upon the ID size, mask,\n // alphabet size, and magic number 1.6 (using 1.6 peaks at performance\n // according to benchmarks).\n\n // `-~f => Math.ceil(f)` if f is a float\n // `-~i => i + 1` if i is an integer\n let step = -~((1.6 * mask * size) / alphabet.length)\n\n return () => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let j = step\n while (j--) {\n // Adding `|| ''` refuses a random byte that exceeds the alphabet size.\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\n\nlet customAlphabet = (alphabet, size) => customRandom(alphabet, size, random)\n\nlet nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array(size))\n\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n while (size--) {\n // It is incorrect to use bytes exceeding the alphabet size.\n // The following mask reduces the random byte in the 0-255 value\n // range to the 0-63 value range. Therefore, adding hacks, such\n // as empty string fallback or magic numbers, is unneccessary because\n // the bitmask trims bytes down to the alphabet size.\n let byte = bytes[size] & 63\n if (byte < 36) {\n // `0-9a-z`\n id += byte.toString(36)\n } else if (byte < 62) {\n // `A-Z`\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte < 63) {\n id += '_'\n } else {\n id += '-'\n }\n }\n return id\n}\n\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","import { urlFor } from 'api/cms';\nimport { useSiteSettings } from 'hooks/use-siteSettings';\nimport Head from 'next/head';\nimport PropTypes from 'prop-types';\nimport React, { FC } from 'react';\nimport { ImageBase } from 'types/sanity';\n\ninterface Props {\n title: string;\n description?: string;\n image?: ImageBase;\n}\n\nconst SEO: FC = ({ title, description, image }) => {\n const { siteSettings } = useSiteSettings();\n\n const ogImage = image || siteSettings.image;\n const ogImageUrl = ogImage && urlFor(ogImage).width(2048).height(1170).url();\n const twitterCardImageUrl =\n ogImage && urlFor(ogImage).width(1200).height(628).url();\n\n let pageTitle: string;\n if (title === siteSettings.title) {\n pageTitle = title;\n } else {\n pageTitle = `${title} | ${siteSettings.title}`;\n }\n\n const pageDescription = description ?? siteSettings.description;\n\n return (\n \n {pageTitle}\n \n