{"version":3,"file":"330-11dab4ec773a16a5f463.js","mappings":"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","sources":["webpack://royal-college-radiologists/./src/helpers/utils.ts","webpack://royal-college-radiologists/./src/stories/Components/Global/SectionWrapper/SectionWrapper.styles.ts","webpack://royal-college-radiologists/./src/hoc/withBaseProps.tsx","webpack://royal-college-radiologists/./src/stories/Components/Global/SectionWrapper/SectionWrapper.tsx","webpack://royal-college-radiologists/./src/stories/Widgets/InnerPageBanner/InnerPageBanner.styles.ts","webpack://royal-college-radiologists/./src/stories/Widgets/InnerPageBanner/InnerPageBanner.tsx"],"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/**\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 function generateAuthorsString(names) {\r\n const string = names.length > 1\r\n ? `${names.slice(0, -1).join(', ')} and ${names.slice(-1)}`\r\n : { 0: '', 1: names[0] }[names.length];\r\n return `Article by: ${string}`;\r\n}\r\nexport const highlightTitleWords = (title) => title.replaceAll(/\\*([\\w\\W]+)\\*/g, '$1');\r\n","import brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --sectionSpacingTop: ${fluid(32, 80)};\r\n --sectionSpacingBottom: ${fluid(32, 80)};\r\n --bgColour: transparent;\r\n --bgColourTint: ${brand.tint.offWhite};\r\n --fgColour: ${brand.primary.purple};\r\n --fgColourTint: ${brand.tint.purple};\r\n\r\n position: relative;\r\n scroll-margin: var(--stickyHeaderHeight) 0 0;\r\n background-color: var(--bgColour);\r\n color: var(--fgColour);\r\n\r\n &[data-variant='light'] {\r\n --bgColour: ${brand.primary.offWhite};\r\n --bgColourTint: ${brand.tint.offWhite};\r\n --fgColour: ${brand.primary.purple};\r\n --fgColourTint: ${brand.tint.purple};\r\n }\r\n\r\n &[data-variant='dark'] {\r\n --bgColour: ${brand.primary.purple};\r\n --bgColourTint: ${brand.tint.purple};\r\n --fgColour: ${brand.primary.offWhite};\r\n --fgColourTint: ${brand.tint.offWhite};\r\n }\r\n\r\n &[data-allow-scroll-margin='true'],\r\n &[data-has-skip='true'] {\r\n overflow: clip;\r\n overflow: hidden;\r\n }\r\n\r\n &[data-flush='top'] {\r\n --sectionSpacingTop: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingTop: 0;\r\n }\r\n }\r\n\r\n &[data-flush='bottom'] {\r\n --sectionSpacingBottom: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingBottom: 0;\r\n }\r\n }\r\n\r\n &[data-flush='both'] {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n }\r\n }\r\n\r\n /* Negative margin bottom to force overlap */\r\n &[data-overlap-bottom='true'] {\r\n margin-bottom: calc(var(--sectionSpacingBottom) * -1);\r\n }\r\n\r\n .equally-ai___high-saturation & {\r\n filter: saturate(200%);\r\n }\r\n\r\n .equally-ai___reverse-contrast & {\r\n filter: invert(100%);\r\n }\r\n\r\n .equally-ai___monochrome-contrast & {\r\n filter: grayscale(100%);\r\n }\r\n\r\n .equally-ai___reverse-contrast.equally-ai___monochrome-contrast & {\r\n filter: grayscale(100%) invert(100%);\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n color: var(--fgColor);\r\n padding-top: var(--sectionSpacingTop);\r\n padding-bottom: var(--sectionSpacingBottom);\r\n\r\n /* Don't apply background color for white backgrounds */\r\n ${Container} & {\r\n background: var(--bgColor);\r\n }\r\n`;\r\nconst SiteWide = styled.div `\r\n ${siteWide}\r\n`;\r\nconst FocusAnchor = styled.button `\r\n ${ButtonReset};\r\n\r\n height: 0;\r\n width: 0;\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n SiteWide,\r\n FocusAnchor,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import * as React from 'react';\r\nconst BasePropsContext = React.createContext({});\r\nexport function withBaseProps(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithBaseProps = (props) => {\r\n return (React.createElement(BasePropsContext.Provider, { value: props },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithBaseProps.displayName = `withBaseProps(${displayName})`;\r\n return ComponentWithBaseProps;\r\n}\r\nexport const useBaseProps = () => React.useContext(BasePropsContext);\r\n","import { useBaseProps } from '@hoc/withBaseProps';\r\nimport SkipLink from '@stories/Components/General/SkipLink/SkipLink';\r\nimport * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef((props, ref) => {\r\n const { children, layout = 'default', flush = 'none', variant = 'none', removeSkipLink, ...otherProps } = props;\r\n const baseProps = useBaseProps();\r\n return (React.createElement(S.Container, { ref: ref, id: baseProps.id, \"data-allow-scroll-margin\": !!baseProps.id, \"data-flush\": flush, \"data-variant\": variant, \"data-has-skip\": !removeSkipLink, ...otherProps },\r\n React.createElement(S.Inner, null,\r\n !removeSkipLink ? React.createElement(SkipLink, null) : React.createElement(S.FocusAnchor, { \"aria-label\": \"Skip to content anchor\" }),\r\n renderLayout())));\r\n function renderLayout() {\r\n if (layout === 'fullWidth') {\r\n return children;\r\n }\r\n return React.createElement(S.SiteWide, null, children);\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n","import { transition } from '@helpers/animate';\r\nimport { imageCoverContainer } from '@helpers/aspectRatio';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { h1, paragraphLarge } from '@helpers/typography';\r\nimport { ButtonStyles } from '@stories/Components/Buttons/GeneralButton/Button.styles';\r\nimport ScrollIndictatorStyles from '@stories/Components/General/ScrollIndictator/ScrollIndictator.styles';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Global/SectionWrapper/SectionWrapper.styles';\r\nimport { parseToHsl } from 'polished';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n --topSpacing: 200px;\r\n --highlightColour: ${parseToHsl(brand.secondary.red).hue}\r\n ${parseToHsl(brand.secondary.red).saturation * 100}%\r\n ${parseToHsl(brand.secondary.red).lightness * 100}%;\r\n\r\n position: relative;\r\n overflow: hidden;\r\n\r\n ${SectionWrapperStyles.Inner},\r\n ${SectionWrapperStyles.SiteWide} {\r\n height: 100%;\r\n }\r\n\r\n ${SectionWrapperStyles.SiteWide} {\r\n ${baseGrid};\r\n\r\n padding-top: var(--topSpacing);\r\n }\r\n\r\n ${ScrollIndictatorStyles.Container} {\r\n display: none;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${SectionWrapperStyles.SiteWide} {\r\n padding-top: 0;\r\n }\r\n\r\n &[data-has-image='true'] {\r\n height: 100vh;\r\n }\r\n\r\n ${ScrollIndictatorStyles.Container} {\r\n display: inline-block;\r\n margin: ${fluid(28, 34)} 0 0;\r\n }\r\n }\r\n`;\r\nconst Image = styled.img `\r\n ${imageCoverContainer()};\r\n`;\r\nconst ContentWrapper = styled.div `\r\n position: relative;\r\n z-index: 1;\r\n display: flex;\r\n grid-column: 1 / span 12;\r\n grid-row: 2 / span 1;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 7;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 1 / span 6;\r\n }\r\n`;\r\nconst ContentInner = styled.div `\r\n margin: auto 0 0 calc(var(--sitePadding) * -1);\r\n background-color: var(--bgColour);\r\n padding: ${fluid(20, 46)} var(--sitePadding);\r\n width: 100%;\r\n\r\n ${ButtonStyles.Button} {\r\n margin: ${fluid(16, 24)} 0 0;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-left: 0;\r\n padding-left: ${fluid(26, 152, Device.Desktop)};\r\n padding-right: ${fluid(26, 152, Device.Desktop)};\r\n padding-bottom: ${fluid(20, 64, Device.Desktop)};\r\n }\r\n &[data-has-image='false']{\r\n @media ${from(Device.TabletLarge)} {\r\n margin-top: 250px;\r\n }\r\n }\r\n`;\r\nconst Title = styled.h1 `\r\n ${h1};\r\n\r\n ${Container}[data-has-image='false'] & {\r\n > span {\r\n ${transition('background-size', 0.5)};\r\n\r\n color: transparent;\r\n background: var(--fgColour);\r\n background-image: linear-gradient(to right, ${brand.secondary.red}, ${brand.secondary.red});\r\n background-repeat: no-repeat;\r\n background-size: 100% 100%;\r\n -webkit-background-clip: text;\r\n background-clip: text;\r\n transition-delay: 0.05s;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n transition-duration: 0.5s;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n transition-delay: 0.25s;\r\n }\r\n }\r\n }\r\n\r\n ${Container}[data-animate='false'] & {\r\n > span {\r\n background-size: 0% 100%;\r\n }\r\n }\r\n`;\r\nconst Content = styled.div `\r\n ${paragraphLarge};\r\n\r\n margin: 0;\r\n`;\r\nconst BeamWrapper = styled.div `\r\n ${transition('opacity', 0.35)};\r\n\r\n grid-column: 1 / span 12;\r\n grid-row: 1 / span 2;\r\n pointer-events: none;\r\n position: relative;\r\n z-index: 1;\r\n\r\n ${Container}[data-animate='false'] & {\r\n opacity: 0;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 1 / span 11;\r\n }\r\n`;\r\nconst LightBeam = styled.div `\r\n ${transition('transform', 1)};\r\n\r\n height: calc(100% + var(--topSpacing));\r\n margin-top: calc(var(--topSpacing) * -1);\r\n width: 100%;\r\n background: transparent;\r\n background-image: linear-gradient(\r\n to right,\r\n transparent calc(100% - 54px),\r\n hsla(var(--highlightColour) / 0.33) calc(100% - 16px),\r\n hsla(var(--highlightColour) / 0.6) calc(100% - 1px),\r\n hsla(var(--highlightColour) / 0.8) 100%\r\n );\r\n background-repeat: no-repeat;\r\n background-size: 100% 100%;\r\n\r\n ${Container}[data-has-image='true'] & {\r\n display: none;\r\n }\r\n\r\n ${Container}[data-animate='false'] & {\r\n transform: translateX(calc((100% - 4px) * -1));\r\n }\r\n\r\n @media ${until(Device.Desktop)} {\r\n width: calc(100% + (var(--sitePadding) * 2));\r\n margin-left: calc(var(--sitePadding) * -1);\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n height: 100%;\r\n margin-top: 0;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n transition-duration: 2.6s;\r\n }\r\n`;\r\nconst InnerPageBannerStyles = {\r\n Container,\r\n Image,\r\n ContentWrapper,\r\n ContentInner,\r\n Title,\r\n Content,\r\n LightBeam,\r\n BeamWrapper,\r\n};\r\nexport default InnerPageBannerStyles;\r\n","import { getRetinaSrcs, imageUrl } from '@helpers/image';\r\nimport { Device, from } from '@helpers/media';\r\nimport { highlightTitleWords } from '@helpers/utils';\r\nimport { LinkButton } from '@stories/Components/Buttons/GeneralButton/Button';\r\nimport ScrollIndictator from '@stories/Components/General/ScrollIndictator/ScrollIndictator';\r\nimport * as React from 'react';\r\nimport S from './InnerPageBanner.styles';\r\nconst InnerPageBanner = (props) => {\r\n const [animate, setAnimate] = React.useState(false);\r\n const titleStr = highlightTitleWords(props.title);\r\n React.useEffect(() => setAnimate(true), []);\r\n return (React.createElement(S.Container, { flush: \"both\", variant: props.variant, \"data-animate\": animate, \"data-has-image\": !!props.image },\r\n props.image ? (React.createElement(\"picture\", null,\r\n React.createElement(\"source\", { media: from(Device.ActualDesktop + 1), srcSet: getRetinaSrcs(props.image, 2560, 1440).join(',') }),\r\n React.createElement(\"source\", { media: from(Device.DesktopLarge), srcSet: getRetinaSrcs(props.image, 1920, 1080).join(',') }),\r\n React.createElement(\"source\", { media: from(Device.Desktop), srcSet: getRetinaSrcs(props.image, 1600, 1200).join(',') }),\r\n React.createElement(\"source\", { media: from(Device.TabletLarge), srcSet: getRetinaSrcs(props.image, 1366, 768).join(',') }),\r\n React.createElement(\"source\", { media: from(Device.Tablet), srcSet: getRetinaSrcs(props.image, 1024, 768).join(',') }),\r\n React.createElement(\"source\", { media: from(Device.MobileLarge), srcSet: getRetinaSrcs(props.image, 768, 1024).join(',') }),\r\n React.createElement(S.Image, { src: imageUrl(props.image, { width: 479, height: 989 }), srcSet: getRetinaSrcs(props.image, 479, 989).join(','), alt: props.image.altText, role: !props.image.altText ? 'presentation' : undefined, loading: 'eager' }))) : null,\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(S.ContentInner, { \"data-has-image\": !!props.image },\r\n React.createElement(S.Title, { dangerouslySetInnerHTML: { __html: titleStr } }),\r\n props.content && React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: props.content } }),\r\n props.cta && props.cta.text && (React.createElement(\"div\", null,\r\n React.createElement(LinkButton, { branding: 'textOnly', href: props.cta.url, target: props.cta.target, title: props.cta.text }))),\r\n React.createElement(ScrollIndictator, null))),\r\n titleStr.indexOf('span') !== -1 ? (React.createElement(S.BeamWrapper, null,\r\n React.createElement(S.LightBeam, null))) : null));\r\n};\r\nexport default InnerPageBanner;\r\n"],"names":["sleep","ms","Promise","resolve","setTimeout","formatNumberValue","value","maximumDecimals","minimumDigits","Intl","NumberFormat","undefined","maximumFractionDigits","minimumIntegerDigits","format","EMAIL_RULE","message","generateAuthorsString","names","length","slice","join","highlightTitleWords","title","replaceAll","Container","styled","section","withConfig","displayName","componentId","fluid","brand","tint","offWhite","primary","purple","from","Device","Tablet","Inner","div","SiteWide","siteWide","FocusAnchor","button","ButtonReset","BasePropsContext","React","SectionWrapper","props","ref","children","layout","flush","variant","removeSkipLink","otherProps","baseProps","S","id","SkipLink","parseToHsl","secondary","red","hue","saturation","lightness","SectionWrapperStyles","baseGrid","ScrollIndictatorStyles","TabletLarge","Image","img","imageCoverContainer","ContentWrapper","Desktop","ContentInner","ButtonStyles","Button","Title","h1","transition","Content","paragraphLarge","BeamWrapper","LightBeam","until","animate","setAnimate","titleStr","image","media","ActualDesktop","srcSet","getRetinaSrcs","DesktopLarge","MobileLarge","src","imageUrl","width","height","alt","altText","role","loading","dangerouslySetInnerHTML","__html","content","cta","text","LinkButton","branding","href","url","target","ScrollIndictator","indexOf"],"sourceRoot":""}