{"version":3,"file":"6327-af8d8355ba042ae99dc5.js","mappings":"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","sources":["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/ContentEmbed/ContentEmbed.styles.ts","webpack://brc/./src/stories/Widgets/ContentEmbed/ContentEmbed.tsx","webpack://brc/./src/hooks/useIframe.ts","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"],"sourcesContent":["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 brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport HeadingSummaryBlockStyles from '@stories/Components/Misc/HeadingSummaryBlock/HeadingSummaryBlock.styles';\r\nimport SectionWrapper from '@stories/Components/Misc/SectionWrapper/SectionWrapper';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n\r\n ${HeadingSummaryBlockStyles.Container} {\r\n margin-bottom: ${fluid(40, 80)};\r\n color: ${brand.primary.blue.dark};\r\n }\r\n\r\n ${HeadingSummaryBlockStyles.HeadIcon} {\r\n color: ${brand.primary.purple.light};\r\n margin-bottom: 18px;\r\n }\r\n\r\n ${HeadingSummaryBlockStyles.Subheading} {\r\n margin-bottom: ${fluid(8, 11)};\r\n }\r\n\r\n ${HeadingSummaryBlockStyles.Content} {\r\n p {\r\n font-size: ${fluid(14, 18)};\r\n line-height: ${fluid(22, 28)};\r\n } \r\n }\r\n\r\n ${HeadingSummaryBlockStyles.Heading} {\r\n margin-bottom: ${fluid(16, 18)};\r\n }\r\n\r\n \r\n`;\r\nconst IframeWrapper = styled.div `\r\n position: relative;\r\n height: auto;\r\n width: 100%;\r\n text-align: center;\r\n`;\r\nconst Iframe = styled.iframe `\r\n max-width: 100%;\r\n margin: 0 auto;\r\n`;\r\nconst ContentEmbedStyles = {\r\n Container,\r\n Iframe,\r\n IframeWrapper,\r\n};\r\nexport default ContentEmbedStyles;\r\n","import useIframe from '@hooks/useIframe';\r\nimport HeadingSummaryBlock from '@stories/Components/Misc/HeadingSummaryBlock/HeadingSummaryBlock';\r\nimport React from 'react';\r\nimport S from './ContentEmbed.styles';\r\nconst ContentEmbed = (props) => {\r\n const [refIframe, status] = useIframe(props.iframeUrl);\r\n return (React.createElement(S.Container, { id: props.anchorId, translations: props.translations },\r\n React.createElement(HeadingSummaryBlock, { ...props, summary: props.summary ? `

${props.summary}

` : undefined, layout: 'central' }),\r\n React.createElement(S.IframeWrapper, { \"data-loaded\": status === 'complete' },\r\n React.createElement(S.Iframe, { ref: refIframe, \"aria-label\": props.iframeLabel, frameBorder: \"0\", width: props.iframeWidth ? `${props.iframeWidth}px` : '100%', height: props.iframeHeight ? `${props.iframeHeight}px` : '100%' }))));\r\n};\r\nexport default ContentEmbed;\r\n","import * as React from 'react';\r\nimport { useInView } from './useInView';\r\nexport default function useIframe(url) {\r\n const [refIframe, inView] = useInView({});\r\n const [status, setStatus] = React.useState('initial');\r\n React.useEffect(() => {\r\n if (!refIframe.current) {\r\n return;\r\n }\r\n if (!inView || !url) {\r\n return;\r\n }\r\n // Set iframe when in view.\r\n setStatus('loading');\r\n refIframe.current.src = url;\r\n refIframe.current.addEventListener('load', () => {\r\n setStatus('complete');\r\n });\r\n }, [inView, url]);\r\n return [refIframe, status];\r\n}\r\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"],"names":["sleep","ms","Promise","resolve","setTimeout","clamp","value","max","Math","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","src","alt","altText","loading","ctas","length","date","time","location","readTime","InterfaceIcon","CalendarBlank","Clock","Location","translations","ctaWrapperVariant","map","cta","i","LinkButton","key","text","buttonType","href","url","target","icon","SectionWrapper","HeadingSummaryBlockStyles","blue","IframeWrapper","Iframe","iframe","refIframe","status","setStatus","current","addEventListener","useIframe","iframeUrl","id","anchorId","HeadingSummaryBlock","undefined","iframeLabel","frameBorder","width","iframeWidth","height","iframeHeight","cssUnit","cm","mm","in","px","pt","pc","em","ex","ch","rem","vw","vh","vmin","vmax","cssValue","lengthWithunit","size","unit","valueString","match","toString","includes","parseFloat","parseInt","console","warn","concat","parseLengthAndUnit","createAnimation","loaderName","frames","suffix","animationName","window","document","styleEl","createElement","head","appendChild","styleSheet","sheet","keyFrames","insertRule","__assign","Object","assign","t","s","n","arguments","p","prototype","hasOwnProperty","call","apply","this","puff","_a","_b","_c","color","_d","speedMultiplier","_e","cssOverride","_f","additionalprops","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","wrapper","display","position","style","border","borderRadius","opacity","top","left","animationFillMode","animation","animationDuration","animationIterationCount","animationTimingFunction","animationDelay"],"sourceRoot":""}