{"version":3,"file":"3386-44d8ea6c4a05a8293383.js","mappings":"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","sources":["webpack://brc/./src/helpers/aspectRatio.ts","webpack://brc/./src/helpers/image.ts","webpack://brc/./src/helpers/utils.ts","webpack://brc/./src/stories/Components/Misc/HeadingSummaryBlock/HeadingSummaryBlock.styles.ts","webpack://brc/./src/stories/Components/Misc/HeadingSummaryBlock/HeadingSummaryBlock.tsx","webpack://brc/./src/stories/Widgets/InnerPageHero/InnerPageHero.styles.ts","webpack://brc/./src/stories/Widgets/InnerPageHero/InnerPageHero.tsx","webpack://brc/./node_modules/decode-uri-component/index.js","webpack://brc/./node_modules/filter-obj/index.js","webpack://brc/./node_modules/query-string/index.js","webpack://brc/./node_modules/react-spinners/esm/helpers/unitConverter.js","webpack://brc/./node_modules/react-spinners/esm/helpers/animation.js","webpack://brc/./node_modules/react-spinners/esm/PuffLoader.js","webpack://brc/./node_modules/split-on-first/index.js","webpack://brc/./node_modules/strict-uri-encode/index.js"],"sourcesContent":["import { css } from 'styled-components';\r\n/**\r\n * Returns the aspect ratio of the given width and height as a percentage.\r\n */\r\nexport function aspectRatio(width, height) {\r\n return (height / width) * 100;\r\n}\r\n/**\r\n * Re-usable styles for image container where the\r\n * image needs to maintain it's aspect ratio\r\n *\r\n * @param width\r\n * @param height\r\n * @returns\r\n */\r\nexport function imageWrapperPreserveRatio(width, height) {\r\n if (!width && !height) {\r\n return null;\r\n }\r\n return css `\r\n position: relative;\r\n overflow: hidden;\r\n overflow: clip;\r\n width: 100%;\r\n aspect-ratio: ${width / height};\r\n `;\r\n}\r\n/**\r\n * Calculates the percentage bottom padding\r\n * required to maintain a certain ratio.\r\n *\r\n * To be used in cases where the image ratio\r\n * changes based on viewport.\r\n *\r\n * @param width\r\n * @param height\r\n * @returns padding-bottom: {ratioPercentage}%\r\n */\r\nexport function imageWrapperRatioPadding(width, height) {\r\n if (!width && !height) {\r\n return '';\r\n }\r\n const ratioPercentage = aspectRatio(width, height).toFixed(2);\r\n return `padding-bottom: ${ratioPercentage}%`;\r\n}\r\n/**\r\n * Re-usable styles for an image placed within\r\n * a container maintaining aspect ratio\r\n */\r\nexport const imageCoverContainer = (relative) => css `\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n ${!relative && 'position: absolute; top: 0;left: 0;'}\r\n`;\r\n","import queryString from 'query-string';\r\n/**\r\n * Create an image URL for ImageProcessor\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function imageUrl(image, imageParams) {\r\n if (!image) {\r\n return '';\r\n }\r\n const params = {\r\n rxy: image.focalPoint ? `${image.focalPoint.top},${image.focalPoint.left}` : undefined,\r\n ...imageParams,\r\n };\r\n if (params.width && params.heightratio) {\r\n params.height = Math.round(params.width / params.heightratio);\r\n }\r\n if (params.height && params.widthratio) {\r\n params.width = Math.round(params.height / params.widthratio);\r\n }\r\n const paramsString = queryString.stringify(params);\r\n return `${image.src}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\r\n}\r\nexport function getSrcs(image, upper, lower, steps, ratio, imageParams) {\r\n if (!image) {\r\n return undefined;\r\n }\r\n const sizes = getRange(upper, lower, steps);\r\n const sizesArr = sizes.map((size) => `${imageUrl(image, { ...imageParams, width: size, heightratio: ratio })} ${size}w`);\r\n return {\r\n src: sizesArr[0].split(' ')[0],\r\n srcSet: sizesArr.join(','),\r\n };\r\n}\r\nexport function getRetinaSrcs(image, width, ratio) {\r\n const dprs = [1, 1.5, 2, 2.5, 3];\r\n const dprsArr = dprs.map((dpr) => `${imageUrl(image, { width: width * dpr, heightratio: ratio })} ${dpr}x`);\r\n return {\r\n src: dprsArr[0].split(' ')[0],\r\n srcSet: dprsArr.join(','),\r\n };\r\n}\r\nfunction getRange(upper, lower, steps) {\r\n const difference = upper - lower;\r\n const increment = difference / (steps - 1);\r\n return [\r\n lower,\r\n ...Array(steps - 2)\r\n .fill('')\r\n .map((_, index) => Math.ceil(lower + increment * (index + 1))),\r\n upper,\r\n ];\r\n}\r\n","export function sleep(ms) {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\nexport function formatNumberValue(value, maximumDecimals, minimumDigits) {\r\n const formatter = new Intl.NumberFormat(undefined, {\r\n maximumFractionDigits: maximumDecimals ?? 0,\r\n minimumIntegerDigits: minimumDigits ?? 1,\r\n });\r\n return formatter.format(value);\r\n}\r\n/** Clamp index to be within the min/max index range. */\r\nexport function clamp(value, max) {\r\n return Math.max(Math.min(value, max), 0);\r\n}\r\n/**\r\n * Rule structure for react-hook-form\r\n */\r\nexport const EMAIL_RULE = {\r\n message: `Please enter a valid email address`,\r\n value: /^[\\w\\-.\\d*]+@[\\w\\-\\d.]+(\\.\\w*)$/,\r\n};\r\nexport const highlightTitleWords = (title) => title.replaceAll(/\\*(.*?)\\*/g, '$1');\r\n","import { transition } from '@helpers/animate';\r\nimport brand, { BrandColours } from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport { contentStyles, h2, subheading } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst ContentWrapper = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n\r\n [data-layout='central'] &,\r\n [data-layout='split'] & {\r\n max-width: 546px;\r\n }\r\n\r\n [data-layout='central'] & {\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n`;\r\nconst Container = styled.section `\r\n --headingMargin: ${fluid(8, 14)};\r\n\r\n display: flex;\r\n flex-direction: column;\r\n\r\n &[data-layout='default'],\r\n &[data-layout='central'] {\r\n max-width: 695px;\r\n }\r\n\r\n &[data-layout='central'] {\r\n text-align: center;\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n\r\n &:not(:has(${ContentWrapper})) {\r\n --headingMargin: 0px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n &[data-layout='central'] {\r\n align-items: center;\r\n text-align: center;\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n\r\n &[data-layout='split'] {\r\n --headingMargin: 0px;\r\n\r\n flex-direction: row;\r\n justify-content: space-between;\r\n column-gap: ${fluid(56, 120)};\r\n }\r\n }\r\n`;\r\nconst HeadIcon = styled.div `\r\n display: none;\r\n\r\n [data-layout='central'] & {\r\n display: block;\r\n\r\n svg {\r\n width: ${fluid(48, 65)};\r\n height: ${fluid(48, 65)};\r\n }\r\n }\r\n`;\r\nconst Subheading = styled.span `\r\n ${subheading};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${Container}[data-layout='split'] & {\r\n grid-column: 1 / span 1;\r\n }\r\n }\r\n`;\r\nconst Heading = styled.h2 `\r\n ${h2};\r\n\r\n text-wrap: pretty;\r\n margin-bottom: var(--headingMargin);\r\n color: var(--headingColour, currentColor);\r\n\r\n ${Container}[data-layout='split'] & {\r\n max-width: 695px;\r\n }\r\n\r\n > span {\r\n ${transition('background-size, color', 0.5)};\r\n\r\n display: inline;\r\n background-image: linear-gradient(\r\n to right,\r\n var(--highlightColour, transparent),\r\n var(--highlightColour, transparent)\r\n );\r\n background-repeat: no-repeat;\r\n background-size: 100% 100%;\r\n transition-delay: 200ms;\r\n color: var(--highlightTextColour, currentColor);\r\n padding: 0 8px;\r\n margin-left: -8px;\r\n\r\n ${Container}[data-animate='false'] & {\r\n background-size: 0% 100%;\r\n color: currentColor;\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${Container}[data-layout='split'] & {\r\n grid-column: 1 / span 1;\r\n }\r\n }\r\n`;\r\nconst LogoImage = styled.img `\r\n display: block;\r\n`;\r\nconst Content = styled.div `\r\n ${contentStyles};\r\n\r\n [data-theme=${BrandColours.PurpleDark}] &,\r\n [data-theme=${BrandColours.PurpleLight}] & {\r\n ol,\r\n ul {\r\n li::before {\r\n color: ${brand.global.white};\r\n }\r\n }\r\n }\r\n`;\r\nconst ButtonWrapper = styled.div `\r\n display: flex;\r\n gap: var(--headerBlockButtonsGap, ${fluid(16, 38)});\r\n flex-wrap: wrap;\r\n margin-top: ${fluid(16, 38)};\r\n`;\r\nconst DetailContent = styled.div `\r\n ${transition('transform, opacity', 0.5)};\r\n ${fonts.lato.semiBold};\r\n\r\n font-size: ${fluid(15, 16)};\r\n line-height: ${fluid(23, 26)};\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n gap: 8px 32px;\r\n margin-top: ${fluid(10, 14)};\r\n\r\n &:not(:last-child) {\r\n margin-bottom: ${fluid(10, 14)};\r\n }\r\n\r\n @media print {\r\n opacity: 1 !important;\r\n transform: translateY(0px) !important;\r\n }\r\n\r\n [data-animate='false'] & {\r\n opacity: 0;\r\n transform: translateY(20px);\r\n\r\n @media print {\r\n opacity: 1 !important;\r\n transform: translateY(0px) !important;\r\n }\r\n }\r\n\r\n [data-secondary=${BrandColours.White}] & {\r\n color: ${brand.grey.dark};\r\n }\r\n\r\n ::before {\r\n content: '';\r\n display: block;\r\n width: 5px;\r\n height: 5px;\r\n border-radius: 50%;\r\n background-color: ${brand.global.white};\r\n position: absolute;\r\n top: 50%;\r\n right: calc((37px / 2) * -1);\r\n transform: translateY(-50%);\r\n\r\n [data-secondary=${BrandColours.White}] & {\r\n background-color: ${brand.grey.dark};\r\n }\r\n }\r\n\r\n :last-child::before {\r\n content: none;\r\n }\r\n`;\r\nconst Detail = styled.span `\r\n display: inline-flex;\r\n align-items: center;\r\n gap: ${fluid(4, 8)};\r\n position: relative;\r\n\r\n svg {\r\n width: 24px;\r\n height: 24px;\r\n\r\n [data-secondary=${BrandColours.White}] & {\r\n color: ${brand.primary.purple.light};\r\n }\r\n }\r\n`;\r\nconst HeadingSummaryBlockStyles = {\r\n Container,\r\n HeadIcon,\r\n Heading,\r\n Subheading,\r\n LogoImage,\r\n Content,\r\n ContentWrapper,\r\n ButtonWrapper,\r\n DetailContent,\r\n Detail,\r\n};\r\nexport default HeadingSummaryBlockStyles;\r\n","import { rootMargin } from '@helpers/animate';\r\nimport { getSvgIcon, InterfaceIcon } from '@helpers/icons';\r\nimport { highlightTitleWords } from '@helpers/utils';\r\nimport { useInView } from '@hooks/useInView';\r\nimport { LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport * as React from 'react';\r\nimport S from './HeadingSummaryBlock.styles';\r\nconst HeadingSummaryBlock = (props) => {\r\n const [containerRef, inView] = useInView({ rootMargin }, false, props.pageContext?.isEditMode);\r\n if (!props.summary && !props.heading) {\r\n return null;\r\n }\r\n function hasContent() {\r\n return !!props.summary || (props.ctas && props.ctas.length > 0)\r\n || !!props.date || !!props.time\r\n || !!props.location || !!props.readTime;\r\n }\r\n return (React.createElement(S.Container, { ref: containerRef, \"data-layout\": props.layout ?? 'default', \"data-animate\": inView },\r\n React.createElement(\"div\", null,\r\n props.headIcon && React.createElement(S.HeadIcon, null, getSvgIcon(props.headIcon)),\r\n props.subheading && React.createElement(S.Subheading, null, props.subheading),\r\n props.heading && (React.createElement(S.Heading, { as: props.headingType, dangerouslySetInnerHTML: { __html: highlightTitleWords(props.heading) } })),\r\n props.logoImage && (React.createElement(S.LogoImage, { src: props.logoImage.src, alt: props.logoImage.altText, loading: \"lazy\" }))),\r\n hasContent() ? (React.createElement(S.ContentWrapper, null,\r\n props.summary && React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: props.summary } }),\r\n props.date || props.time || props.location || props.readTime ? (React.createElement(S.DetailContent, null,\r\n props.date && (React.createElement(S.Detail, null,\r\n getSvgIcon(InterfaceIcon.CalendarBlank),\r\n props.date)),\r\n props.time && (React.createElement(S.Detail, null,\r\n getSvgIcon(InterfaceIcon.Clock),\r\n props.time)),\r\n props.location && (React.createElement(S.Detail, null,\r\n getSvgIcon(InterfaceIcon.Location),\r\n props.location)),\r\n props.readTime && (React.createElement(S.Detail, null,\r\n props.readTime,\r\n \" \",\r\n props.translations?.['global.readtime.label'] ?? '')))) : null,\r\n props.ctas && props.ctas.length > 0 ? (React.createElement(S.ButtonWrapper, { \"data-variant\": props.ctaWrapperVariant }, props.ctas.map((cta, i) => (React.createElement(LinkButton, { key: `${cta.text}-${props.heading}-${i}`, buttonType: cta.buttonType ? cta.buttonType : 'primary', href: cta.url, target: cta.target, icon: cta.icon }, cta.text))))) : null)) : null));\r\n};\r\nexport default HeadingSummaryBlock;\r\n","import { transition } from '@helpers/animate';\r\nimport { imageCoverContainer, imageWrapperPreserveRatio } from '@helpers/aspectRatio';\r\nimport brand, { BrandColours } from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport ButtonStyles from '@stories/Components/Buttons/Button/Button.styles';\r\nimport HeadingSummaryBlockStyles from '@stories/Components/Misc/HeadingSummaryBlock/HeadingSummaryBlock.styles';\r\nimport SectionWrapper from '@stories/Components/Misc/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Misc/SectionWrapper/SectionWrapper.styles';\r\nimport styled, { css } from 'styled-components';\r\nexport const colourDefinitions = css `\r\n /* Primary Colours */\r\n &[data-primary=${BrandColours.BlueDark}] {\r\n --primary: ${brand.primary.blue.dark};\r\n }\r\n\r\n &[data-primary=${BrandColours.BlueLight}] {\r\n --primary: ${brand.primary.blue.light};\r\n }\r\n\r\n &[data-primary=${BrandColours.GreenDark}] {\r\n --primary: ${brand.secondary.green.dark};\r\n }\r\n\r\n &[data-primary=${BrandColours.GreenLight}] {\r\n --primary: ${brand.secondary.green.light};\r\n }\r\n\r\n &[data-primary=${BrandColours.GreyPrimary}] {\r\n --primary: ${brand.primary.grey};\r\n }\r\n\r\n &[data-primary=${BrandColours.OrangeDark}] {\r\n --primary: ${brand.secondary.orange.dark};\r\n }\r\n\r\n &[data-primary=${BrandColours.OrangeLight}] {\r\n --primary: ${brand.secondary.orange.light};\r\n }\r\n\r\n &[data-primary=${BrandColours.PinkDark}] {\r\n --primary: ${brand.secondary.pink.dark};\r\n }\r\n\r\n &[data-primary=${BrandColours.PinkLight}] {\r\n --primary: ${brand.secondary.pink.light};\r\n }\r\n\r\n &[data-primary=${BrandColours.PurpleDark}] {\r\n --primary: ${brand.primary.purple.dark};\r\n }\r\n\r\n &[data-primary=${BrandColours.PurpleLight}] {\r\n --primary: ${brand.primary.purple.light};\r\n }\r\n\r\n &[data-primary=${BrandColours.White}] {\r\n --primary: ${brand.global.white};\r\n }\r\n\r\n /* Secondary Colours */\r\n &[data-secondary=${BrandColours.BlueDark}] {\r\n --secondary: ${brand.primary.blue.dark};\r\n }\r\n\r\n &[data-secondary=${BrandColours.BlueLight}] {\r\n --secondary: ${brand.primary.blue.light};\r\n }\r\n\r\n &[data-secondary=${BrandColours.GreenDark}] {\r\n --secondary: ${brand.secondary.green.dark};\r\n }\r\n\r\n &[data-secondary=${BrandColours.GreenLight}] {\r\n --secondary: ${brand.secondary.green.light};\r\n }\r\n\r\n &[data-secondary=${BrandColours.GreyPrimary}] {\r\n --secondary: ${brand.primary.grey};\r\n }\r\n\r\n &[data-secondary=${BrandColours.OrangeDark}] {\r\n --secondary: ${brand.secondary.orange.dark};\r\n }\r\n\r\n &[data-secondary=${BrandColours.OrangeLight}] {\r\n --secondary: ${brand.secondary.orange.light};\r\n }\r\n\r\n &[data-secondary=${BrandColours.PinkDark}] {\r\n --secondary: ${brand.secondary.pink.dark};\r\n }\r\n\r\n &[data-secondary=${BrandColours.PinkLight}] {\r\n --secondary: ${brand.secondary.pink.light};\r\n }\r\n\r\n &[data-secondary=${BrandColours.PurpleDark}] {\r\n --secondary: ${brand.primary.purple.dark};\r\n }\r\n\r\n &[data-secondary=${BrandColours.PurpleLight}] {\r\n --secondary: ${brand.primary.purple.light};\r\n }\r\n\r\n &[data-secondary=${BrandColours.White}] {\r\n --secondary: ${brand.global.white};\r\n }\r\n\r\n /* Tertiary Colours */\r\n &[data-tertiary=${BrandColours.BlueDark}] {\r\n --tertiary: ${brand.primary.blue.dark};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.BlueLight}] {\r\n --tertiary: ${brand.primary.blue.light};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.GreenDark}] {\r\n --tertiary: ${brand.secondary.green.dark};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.GreenLight}] {\r\n --tertiary: ${brand.secondary.green.light};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.GreyPrimary}] {\r\n --tertiary: ${brand.primary.grey};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.OrangeDark}] {\r\n --tertiary: ${brand.secondary.orange.dark};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.OrangeLight}] {\r\n --tertiary: ${brand.secondary.orange.light};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.PinkDark}] {\r\n --tertiary: ${brand.secondary.pink.dark};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.PinkLight}] {\r\n --tertiary: ${brand.secondary.pink.light};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.PurpleDark}] {\r\n --tertiary: ${brand.primary.purple.dark};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.PurpleLight}] {\r\n --tertiary: ${brand.primary.purple.light};\r\n }\r\n\r\n &[data-tertiary=${BrandColours.White}] {\r\n --tertiary: ${brand.global.white};\r\n }\r\n`;\r\nconst Container = styled(SectionWrapper) `\r\n ${colourDefinitions};\r\n\r\n --primary: ${brand.primary.purple.light};\r\n --secondary: ${brand.global.white};\r\n --tertiary: ${brand.primary.blue.light};\r\n --sectionBackground: transparent;\r\n --sectionColour: ${brand.global.black};\r\n --paddingY: ${fluid(40, 68)};\r\n --rowGap: ${fluid(24, 48)};\r\n\r\n position: relative;\r\n overflow: hidden;\r\n\r\n &[data-primary=${BrandColours.BlueDark}],\r\n &[data-primary=${BrandColours.GreenDark}],\r\n &[data-primary=${BrandColours.OrangeDark}],\r\n &[data-primary=${BrandColours.PinkDark}],\r\n &[data-primary=${BrandColours.PurpleDark}],\r\n &[data-primary=${BrandColours.PurpleLight}] {\r\n --sectionColour: ${brand.global.white};\r\n }\r\n\r\n &[data-layout='centre-text'] {\r\n ${SectionWrapperStyles.Inner} {\r\n min-height: 424px;\r\n text-align: center;\r\n\r\n ${HeadingSummaryBlockStyles.Container} {\r\n margin: 0 auto;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n min-height: 346px;\r\n justify-content: center;\r\n }\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n &:not(:has(img))::before {\r\n ${transition('opacity')}\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n background-color: var(--primary);\r\n height: 100%;\r\n width: 50%;\r\n z-index: -1;\r\n transition-delay: 350ms;\r\n }\r\n }\r\n\r\n ${SectionWrapperStyles.Inner} {\r\n display: grid;\r\n gap: var(--rowGap);\r\n padding-top: var(--paddingY);\r\n padding-bottom: var(--paddingY);\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n min-height: 513px;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: space-between;\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n &[data-layout='contained-image'] {\r\n ${SectionWrapperStyles.Inner} {\r\n min-height: ${fluid(324, 513, Device.TabletLarge, Device.DesktopLarge)};\r\n }\r\n }\r\n }\r\n\r\n &[data-animate='false'] {\r\n &::before {\r\n opacity: 0;\r\n }\r\n }\r\n\r\n ${HeadingSummaryBlockStyles.Container} {\r\n ${transition('transform, opacity', 0.5)};\r\n\r\n transition-delay: 0.25s;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n grid-row: 2 / span 1;\r\n grid-column: 1 / span 1;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n width: 40%;\r\n max-width: 592px;\r\n }\r\n\r\n ${ButtonStyles.Container} {\r\n --colourTextHover: var(--primary) !important;\r\n }\r\n }\r\n\r\n ${HeadingSummaryBlockStyles.Container}[data-animate='false'] {\r\n opacity: 0;\r\n transform: translateY(20px);\r\n }\r\n\r\n ${HeadingSummaryBlockStyles.Content},\r\n ${HeadingSummaryBlockStyles.Heading},\r\n ${HeadingSummaryBlockStyles.Subheading} {\r\n background-color: var(--primary);\r\n color: var(--sectionColour);\r\n }\r\n\r\n ${HeadingSummaryBlockStyles.Content} {\r\n p {\r\n font-size: ${fluid(14, 20)};\r\n line-height: ${fluid(22, 28)};\r\n }\r\n }\r\n\r\n ${HeadingSummaryBlockStyles.ButtonWrapper} {\r\n gap: ${fluid(12, 16)};\r\n margin-top: 14px;\r\n }\r\n`;\r\nconst ImageWrapper = styled.div `\r\n ${imageWrapperPreserveRatio(344, 200)};\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n grid-row: 1 / span 1;\r\n grid-column: 1 / span 1;\r\n }\r\n\r\n ${Container}[data-layout='contained-image'] & {\r\n @media ${from(Device.TabletLarge)} {\r\n aspect-ratio: 695 / 376;\r\n width: 40%;\r\n max-width: 695px;\r\n }\r\n }\r\n\r\n ${Container}[data-layout='background-image'] & {\r\n margin: calc(var(--paddingY) * -1) calc(var(--sitePadding) * -1) 0 calc(var(--sitePadding) * -1);\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n width: calc(100% + var(--sitePadding) * 2);\r\n z-index: -2;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: contents;\r\n }\r\n }\r\n`;\r\nconst Image = styled.img `\r\n ${transition('opacity', 0.5)};\r\n ${imageCoverContainer()};\r\n\r\n transition-delay: 0.15s;\r\n\r\n ${Container}[data-animate='false'] & {\r\n opacity: 0;\r\n }\r\n\r\n ${Container}[data-layout='contained-image'] & {\r\n border-radius: ${fluid(20, 26)};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${Container}[data-layout='background-image'] & {\r\n width: 80%;\r\n right: 0;\r\n left: auto;\r\n z-index: -2;\r\n }\r\n }\r\n`;\r\nconst PrimaryBackground = styled.div `\r\n ${transition('transform', 0.5)};\r\n\r\n --xAdjust: -40%;\r\n --yAdjust: 96px;\r\n\r\n ${Container}[data-layout='background-image'] & {\r\n --xAdjust: -47.5%;\r\n --yAdjust: ${fluid(64, 146, Device.MobileLarge, Device.TabletLarge)};\r\n }\r\n\r\n grid-row: 2 / span 1;\r\n grid-column: 1 / span 1;\r\n position: relative;\r\n z-index: -1;\r\n background-color: var(--primary);\r\n width: 150%;\r\n height: calc(150% + var(--yAdjust) + var(--rowGap));\r\n border-radius: 0 50px 0 0;\r\n transform: rotate(-7deg);\r\n transform-origin: top right;\r\n margin: calc((var(--yAdjust) * -1) - var(--rowGap)) 0 0 var(--xAdjust);\r\n\r\n ${Container}[data-primary=${BrandColours.BlueDark}] & {\r\n --primary: ${brand.primary.blue.dark};\r\n }\r\n\r\n ${Container}[data-animate='false'] & {\r\n transform: rotate(0) !important;\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n ${Container}:not(:has(${ImageWrapper})) & {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n margin: 0;\r\n transform: translate(-15%, -10%) rotate(-45deg);\r\n width: 200%;\r\n transform-origin: center;\r\n aspect-ratio: 1;\r\n height: auto;\r\n }\r\n\r\n ${Container}[data-layout='centre-text'] & {\r\n transform: translate(-20%, 12.5%) rotate(-45deg);\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n border-radius: 0 0 66px 0;\r\n transform: rotate(-15deg);\r\n transform-origin: bottom center;\r\n width: 50%;\r\n height: 300%;\r\n transition-duration: 650ms;\r\n margin: 0;\r\n\r\n ${Container}:not(:has(${ImageWrapper})) & {\r\n transition-duration: 600ms;\r\n width: 70vw;\r\n transform: translateY(-50%) rotate(-45deg);\r\n height: 70vw;\r\n transform-origin: center;\r\n top: 50%;\r\n }\r\n\r\n ${Container}[data-layout='centre-text'] & {\r\n width: 66.667vw;\r\n height: 66.667vw;\r\n }\r\n }\r\n`;\r\nconst SecondaryBackground = styled.div `\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: -2;\r\n background-color: var(--secondary);\r\n`;\r\nconst TertiaryBackground = styled.div `\r\n ${transition('transform', 0.5)};\r\n\r\n position: absolute;\r\n background-color: var(--tertiary);\r\n width: 60%;\r\n right: 0;\r\n top: 0;\r\n border-radius: 0 50px 0 0;\r\n aspect-ratio: 0.35;\r\n mix-blend-mode: multiply;\r\n transition-delay: 350ms;\r\n transform: rotate(-45deg) translate(150%, -10%);\r\n\r\n ${Container}[data-layout='centre-text'] & {\r\n border-top-left-radius: 50px;\r\n transform: rotate(-45deg) translate(135%, -10%);\r\n }\r\n\r\n ${Container}[data-animate='false'] & {\r\n transform: rotate(-45deg) translate(250%, -10%);\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n z-index: 2;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n transform: rotate(-45deg) translate(55%, 25%);\r\n\r\n ${Container}[data-animate='false'] & {\r\n transform: rotate(-45deg) translate(-200%, 25%);\r\n }\r\n\r\n ${Container}[data-layout='centre-text'] & {\r\n width: 40%;\r\n transform: rotate(-55deg) translate(65%, 25%) skew(0deg, 10deg);\r\n }\r\n\r\n ${Container}[data-layout='centre-text'][data-animate='false'] & {\r\n transform: rotate(-55deg) translate(-100%, 10%) skew(0deg, 10deg);\r\n }\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n width: 40%;\r\n transform: rotate(-45deg) translate(46%, 25%);\r\n\r\n ${Container}[data-layout='centre-text'] & {\r\n width: 30%;\r\n transform: rotate(-55deg) translate(55%, 19%) skew(0deg, 10deg);\r\n }\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n transform: rotate(-45deg) translate(55%, 22%);\r\n\r\n ${Container}[data-layout='centre-text'] & {\r\n width: 27.5%;\r\n transform: rotate(-55deg) translate(45%, 16%) skew(0deg, 10deg);\r\n }\r\n }\r\n`;\r\nconst InnerPageHeroStyles = {\r\n Container,\r\n Image,\r\n ImageWrapper,\r\n PrimaryBackground,\r\n SecondaryBackground,\r\n TertiaryBackground,\r\n};\r\nexport default InnerPageHeroStyles;\r\n","import { BrandColours } from '@helpers/brand';\r\nimport { getSrcs } from '@helpers/image';\r\nimport { Device, until } from '@helpers/media';\r\nimport HeadingSummaryBlock from '@stories/Components/Misc/HeadingSummaryBlock/HeadingSummaryBlock';\r\nimport { BackgroundVariant } from '@stories/Components/Misc/SectionWrapper/SectionWrapper';\r\nimport * as React from 'react';\r\nimport S from './InnerPageHero.styles';\r\nconst InnerPageHero = (props) => {\r\n const [animate, setAnimate] = React.useState(false);\r\n const srcs = props.image ? getSrcs(props.image, 3424, 375, 16, 695 / 376) : undefined;\r\n const sizes = props.variant === 'background-image'\r\n ? `${until(Device.TabletLarge)} 100vw, 60vw`\r\n : `${until(Device.TabletLarge)} 100vw, ${until(Device.DesktopLarge)} 40vw, 684px`;\r\n React.useEffect(() => {\r\n setAnimate(true);\r\n }, []);\r\n return (React.createElement(S.Container, { id: props.anchorId, flush: \"top\", \"data-animate\": animate, \"data-layout\": props.variant === 'centre-text' && props.image\r\n ? 'contained-image'\r\n : props.variant ?? 'contained-image', \"data-primary\": props.colours?.primary ?? BrandColours.PurpleLight, \"data-secondary\": props.colours?.secondary, \"data-tertiary\": props.colours?.tertiary, translations: props.translations },\r\n React.createElement(S.PrimaryBackground, null),\r\n React.createElement(S.SecondaryBackground, null),\r\n !props.image && React.createElement(S.TertiaryBackground, null),\r\n React.createElement(HeadingSummaryBlock, { ...props, summary: props.summary ? `
${props.summary}
` : undefined, layout: props.variant === 'centre-text' && !props.image ? 'central' : 'default', ctas: props.ctas?.map((cta) => ({\r\n ...cta,\r\n buttonType: cta.buttonType ? cta.buttonType : 'secondary',\r\n })), ctaWrapperVariant: props.colours?.primary !== BrandColours.White\r\n ? BackgroundVariant.Purple\r\n : BackgroundVariant.White, headingType: \"h1\" }),\r\n srcs && (React.createElement(S.ImageWrapper, null,\r\n React.createElement(S.Image, { src: srcs.src, srcSet: srcs.srcSet, alt: props.image?.altText, sizes: sizes, loading: \"eager\", decoding: \"sync\" // Ensure Safari loads the image correctly, and first\r\n })))));\r\n};\r\nexport default InnerPageHero;\r\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","var cssUnit = {\n cm: true,\n mm: true,\n in: true,\n px: true,\n pt: true,\n pc: true,\n em: true,\n ex: true,\n ch: true,\n rem: true,\n vw: true,\n vh: true,\n vmin: true,\n vmax: true,\n \"%\": true,\n};\n/**\n * If size is a number, append px to the value as default unit.\n * If size is a string, validate against list of valid units.\n * If unit is valid, return size as is.\n * If unit is invalid, console warn issue, replace with px as the unit.\n *\n * @param {(number | string)} size\n * @return {LengthObject} LengthObject\n */\nexport function parseLengthAndUnit(size) {\n if (typeof size === \"number\") {\n return {\n value: size,\n unit: \"px\",\n };\n }\n var value;\n var valueString = (size.match(/^[0-9.]*/) || \"\").toString();\n if (valueString.includes(\".\")) {\n value = parseFloat(valueString);\n }\n else {\n value = parseInt(valueString, 10);\n }\n var unit = (size.match(/[^0-9]*$/) || \"\").toString();\n if (cssUnit[unit]) {\n return {\n value: value,\n unit: unit,\n };\n }\n console.warn(\"React Spinners: \".concat(size, \" is not a valid css value. Defaulting to \").concat(value, \"px.\"));\n return {\n value: value,\n unit: \"px\",\n };\n}\n/**\n * Take value as an input and return valid css value\n *\n * @param {(number | string)} value\n * @return {string} valid css value\n */\nexport function cssValue(value) {\n var lengthWithunit = parseLengthAndUnit(value);\n return \"\".concat(lengthWithunit.value).concat(lengthWithunit.unit);\n}\n","export var createAnimation = function (loaderName, frames, suffix) {\n var animationName = \"react-spinners-\".concat(loaderName, \"-\").concat(suffix);\n if (typeof window == \"undefined\" || !window.document) {\n return animationName;\n }\n var styleEl = document.createElement(\"style\");\n document.head.appendChild(styleEl);\n var styleSheet = styleEl.sheet;\n var keyFrames = \"\\n @keyframes \".concat(animationName, \" {\\n \").concat(frames, \"\\n }\\n \");\n if (styleSheet) {\n styleSheet.insertRule(keyFrames, 0);\n }\n return animationName;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from \"react\";\nimport { cssValue } from \"./helpers/unitConverter\";\nimport { createAnimation } from \"./helpers/animation\";\nvar puff = [\n createAnimation(\"PuffLoader\", \"0% {transform: scale(0)} 100% {transform: scale(1.0)}\", \"puff-1\"),\n createAnimation(\"PuffLoader\", \"0% {opacity: 1} 100% {opacity: 0}\", \"puff-2\"),\n];\nfunction PuffLoader(_a) {\n var _b = _a.loading, loading = _b === void 0 ? true : _b, _c = _a.color, color = _c === void 0 ? \"#000000\" : _c, _d = _a.speedMultiplier, speedMultiplier = _d === void 0 ? 1 : _d, _e = _a.cssOverride, cssOverride = _e === void 0 ? {} : _e, _f = _a.size, size = _f === void 0 ? 60 : _f, additionalprops = __rest(_a, [\"loading\", \"color\", \"speedMultiplier\", \"cssOverride\", \"size\"]);\n var wrapper = __assign({ display: \"inherit\", position: \"relative\", width: cssValue(size), height: cssValue(size) }, cssOverride);\n var style = function (i) {\n return {\n position: \"absolute\",\n height: cssValue(size),\n width: cssValue(size),\n border: \"thick solid \".concat(color),\n borderRadius: \"50%\",\n opacity: \"1\",\n top: \"0\",\n left: \"0\",\n animationFillMode: \"both\",\n animation: \"\".concat(puff[0], \", \").concat(puff[1]),\n animationDuration: \"\".concat(2 / speedMultiplier, \"s\"),\n animationIterationCount: \"infinite\",\n animationTimingFunction: \"cubic-bezier(0.165, 0.84, 0.44, 1), cubic-bezier(0.3, 0.61, 0.355, 1)\",\n animationDelay: i === 1 ? \"-1s\" : \"0s\",\n };\n };\n if (!loading) {\n return null;\n }\n return (React.createElement(\"span\", __assign({ style: wrapper }, additionalprops),\n React.createElement(\"span\", { style: style(1) }),\n React.createElement(\"span\", { style: style(2) })));\n}\nexport default PuffLoader;\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n"],"names":["imageWrapperPreserveRatio","width","height","css","imageCoverContainer","relative","imageUrl","image","imageParams","params","rxy","focalPoint","top","left","undefined","heightratio","Math","round","widthratio","paramsString","queryString","src","getSrcs","upper","lower","steps","ratio","sizes","increment","Array","fill","map","_","index","ceil","getRange","sizesArr","size","split","srcSet","join","sleep","ms","Promise","resolve","setTimeout","clamp","value","max","min","highlightTitleWords","title","replaceAll","ContentWrapper","styled","div","withConfig","displayName","componentId","Container","section","fluid","from","Device","TabletLarge","HeadIcon","Subheading","span","subheading","Heading","h2","transition","LogoImage","img","Content","contentStyles","BrandColours","PurpleDark","PurpleLight","brand","global","white","ButtonWrapper","DetailContent","fonts","lato","semiBold","White","grey","dark","Detail","primary","purple","light","props","_props$pageContext","_props$layout","_props$translations$g","_props$translations","containerRef","inView","useInView","rootMargin","pageContext","isEditMode","summary","heading","React","S","ref","layout","headIcon","getSvgIcon","as","headingType","dangerouslySetInnerHTML","__html","logoImage","alt","altText","loading","ctas","length","date","time","location","readTime","InterfaceIcon","CalendarBlank","Clock","Location","translations","ctaWrapperVariant","cta","i","LinkButton","key","text","buttonType","href","url","target","icon","colourDefinitions","BlueDark","blue","BlueLight","GreenDark","secondary","green","GreenLight","GreyPrimary","OrangeDark","orange","OrangeLight","PinkDark","pink","PinkLight","SectionWrapper","black","SectionWrapperStyles","Inner","HeadingSummaryBlockStyles","DesktopLarge","until","ButtonStyles","ImageWrapper","Image","PrimaryBackground","MobileLarge","SecondaryBackground","TertiaryBackground","Desktop","_props$variant","_props$colours$primar","_props$colours","_props$colours2","_props$colours3","_props$ctas","_props$colours4","_props$image","animate","setAnimate","srcs","variant","id","anchorId","flush","colours","tertiary","HeadingSummaryBlock","BackgroundVariant","Purple","decoding","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","slice","right","prototype","concat","call","decode","input","tokens","match","module","exports","encodedURI","TypeError","replace","replaceMap","exec","result","entries","Object","keys","customDecodeURIComponent","obj","predicate","ret","isArr","isArray","val","indexOf","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","encode","options","strict","encodeURIComponent","keysSorter","sort","a","b","Number","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","isNaN","trim","parseBooleans","toLowerCase","parse","query","assign","arrayFormat","arrayFormatSeparator","formatter","accumulator","includes","isEncodedArray","newValue","item","test","arrayValue","parserForArrayFormat","create","param","k","reduce","Boolean","stringify","object","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","filter","x","parseUrl","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","pick","exclude","exclusionFilter","cssUnit","cm","mm","in","px","pt","pc","em","ex","ch","rem","vw","vh","vmin","vmax","cssValue","lengthWithunit","unit","valueString","toString","parseFloat","parseInt","console","warn","parseLengthAndUnit","createAnimation","loaderName","frames","suffix","animationName","window","document","styleEl","createElement","head","appendChild","styleSheet","sheet","keyFrames","insertRule","__assign","t","s","n","arguments","p","hasOwnProperty","apply","this","puff","_a","_b","_c","color","_d","speedMultiplier","_e","cssOverride","_f","additionalprops","e","getOwnPropertySymbols","propertyIsEnumerable","__rest","wrapper","display","position","style","border","borderRadius","opacity","animationFillMode","animation","animationDuration","animationIterationCount","animationTimingFunction","animationDelay","string","separator","separatorIndex","str","charCodeAt","toUpperCase"],"sourceRoot":""}