{"version":3,"file":"5366-c5c307b1e49476d465fc.js","mappings":"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","sources":["webpack://royal-college-radiologists/./src/helpers/date.ts","webpack://royal-college-radiologists/./src/helpers/global.ts","webpack://royal-college-radiologists/./src/stories/Components/General/SkipLink/SkipLink.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/General/SkipLink/SkipLink.tsx","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/CareerListing/CareerListing.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/Cards/CareerCard/CareerCard.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/Cards/CareerCard/CareerCard.tsx","webpack://royal-college-radiologists/./src/stories/Widgets/CareerListing/CareerListing.tsx"],"sourcesContent":["import format from 'date-fns/format';\r\nexport function formatDateISO(value) {\r\n const date = ensureDate(value);\r\n return date.toISOString();\r\n}\r\nexport function formatDate(value, formatString = 'MMMM do yyyy', removeTimeZone = false) {\r\n const date = ensureDate(value, removeTimeZone);\r\n return format(date, formatString);\r\n}\r\nexport function ensureDate(value, removeTimeZone = false) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n if (removeTimeZone && date.toISOString().includes(\"T\")) {\r\n date = new Date(date.toISOString().slice(0, -5));\r\n }\r\n }\r\n return date;\r\n}\r\nexport function equalDates(startDate, endDate) {\r\n const sd = ensureDate(startDate);\r\n const ed = ensureDate(endDate);\r\n return sd.toDateString() === ed.toDateString();\r\n}\r\n","import { css } from 'styled-components';\r\nexport default {\r\n navHeight: 107,\r\n navHeightTablet: 80,\r\n navHeightMobile: 59,\r\n};\r\nexport const ButtonReset = css `\r\n border: none;\r\n outline: none;\r\n padding: 0px;\r\n background: none;\r\n border-radius: 0px;\r\n`;\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Layers } from '@helpers/layers';\r\nimport { paragraphRegular } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n ${siteWide};\r\n\r\n position: relative;\r\n z-index: ${Layers.NavigationTray + 1};\r\n height: 0;\r\n`;\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n ${transition('opacity, transform')};\r\n ${paragraphRegular};\r\n\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n margin: 0;\r\n opacity: 0;\r\n transform: translate(3px, -100%);\r\n background-color: var(--fgColour, ${brand.primary.offWhite});\r\n color: var(--bgColour, ${brand.primary.purple});\r\n padding: 8px 12px;\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n outline-color: var(--fgColour, ${brand.primary.offWhite});\r\n opacity: 1;\r\n transform: translate(3px, 3px);\r\n }\r\n`;\r\nconst SkipLinkStyles = {\r\n Container,\r\n Button,\r\n};\r\nexport default SkipLinkStyles;\r\n","import { scrollIntoView } from '@helpers/animate';\r\nimport * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport S from './SkipLink.styles';\r\nconst SkipLink = ({ type = 'inline' }) => {\r\n const ref = React.useRef(null);\r\n return (React.createElement(S.Container, null,\r\n React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Button, { ref: ref, onClick: () => {\r\n if (type === 'header') {\r\n skipToMain();\r\n }\r\n else {\r\n skipSection();\r\n }\r\n } }, type === 'header' ? React.createElement(React.Fragment, null, \"Skip to Main Content\") : React.createElement(React.Fragment, null, \"Skip to Next Section\")))));\r\n function skipToMain() {\r\n const targetEl = document.getElementById('main');\r\n if (!targetEl) {\r\n return;\r\n }\r\n scrollIntoView(targetEl);\r\n focusNext(targetEl);\r\n }\r\n function skipSection() {\r\n let wrapperEl = ref.current?.closest('div[class^=react_Components_]');\r\n // Should only ever occur in storybook\r\n if (!wrapperEl) {\r\n wrapperEl = ref.current?.closest('section');\r\n }\r\n let targetEl = wrapperEl?.nextElementSibling;\r\n // Last element in main wrapper, next element is footer\r\n if (!targetEl) {\r\n targetEl = wrapperEl?.parentElement?.nextElementSibling;\r\n }\r\n if (!targetEl) {\r\n return;\r\n }\r\n scrollIntoView(targetEl);\r\n focusNext(targetEl);\r\n }\r\n function focusNext(el) {\r\n const focusable = el.querySelectorAll('button');\r\n focusable[0]?.focus();\r\n }\r\n};\r\nexport default SkipLink;\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 { baseGrid } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Global/SectionWrapper/SectionWrapper.styles';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n ${SectionWrapperStyles.SiteWide} {\r\n ${baseGrid};\r\n }\r\n`;\r\nconst CardList = styled.div `\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 2 / span 10;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 3 / span 8;\r\n }\r\n\r\n @media ${from(Device.ActualDesktop)} {\r\n grid-column: 4 / span 6;\r\n }\r\n`;\r\nconst CareerListingStyles = {\r\n CardList,\r\n Container,\r\n};\r\nexport default CareerListingStyles;\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, until } from '@helpers/media';\r\nimport { caption, paragraphLarge, paragraphSmall } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.a `\r\n ${transition('background-color')};\r\n text-decoration: none;\r\n display: block;\r\n border-top: 1px solid var(--fgColour);\r\n background-color: var(--bgColour);\r\n padding: 20px;\r\n position: relative;\r\n color: var(--fgColour);\r\n\r\n @media ${until(Device.Tablet)} {\r\n padding: 45px 15px;\r\n background-color: var(--bgColourTint);\r\n }\r\n\r\n &:hover,\r\n &:focus {\r\n background-color: var(--bgColourTint);\r\n }\r\n`;\r\nconst ContentArea = styled.div `\r\n max-width: 800px;\r\n`;\r\nconst DateHolder = styled.div `\r\n ${paragraphSmall};\r\n ${fonts.graphikCompact.medium};\r\n display: inline-block;\r\n background-color: ${brand.tertiary.darkBlue};\r\n color: ${brand.primary.offWhite};\r\n border-radius: 100000px;\r\n padding: 5px 12px 6px;\r\n\r\n &[data-is-open='false'] {\r\n background-color: ${brand.secondary.red};\r\n }\r\n`;\r\nconst Date = styled.time `\r\n ${paragraphSmall};\r\n ${fonts.graphikCompact.medium};\r\n margin: 0;\r\n`;\r\nconst Title = styled.h3 `\r\n ${paragraphLarge};\r\n margin-bottom: 0;\r\n position: relative;\r\n`;\r\nconst RoleType = styled.div `\r\n ${paragraphSmall};\r\n position: absolute;\r\n top: 0;\r\n right: ${fluid(15, 20)};\r\n background-color: var(--fgColour);\r\n color: var(--bgColour);\r\n margin-bottom: 0;\r\n padding: 5px 12px 10px;\r\n border-radius: 0 0 4px 4px;\r\n`;\r\nconst Details = styled.div `\r\n ${caption};\r\n ${fonts.graphikCompact.regular}\r\n margin-bottom: 15px;\r\n`;\r\nconst Location = styled.div `\r\n ${caption};\r\n ${fonts.graphikCompact.regular}\r\n color: ${brand.secondary.red};\r\n margin-bottom: 0;\r\n`;\r\nconst IconHolder = styled.div `\r\n ${transition('transform')};\r\n position: absolute;\r\n bottom: 15px;\r\n right: 20px;\r\n\r\n ${Container}:hover &,\r\n ${Container}:focus & {\r\n transform: translateX(5px);\r\n }\r\n\r\n svg {\r\n height: ${fluid(12, 14)}\r\n }\r\n`;\r\nconst CareerCardStyles = {\r\n Container,\r\n ContentArea,\r\n Date,\r\n DateHolder,\r\n Details,\r\n IconHolder,\r\n Location,\r\n RoleType,\r\n Title,\r\n};\r\nexport default CareerCardStyles;\r\n","import * as React from 'react';\r\nimport S from './CareerCard.styles';\r\nimport { formatDate, formatDateISO } from '@helpers/date';\r\nimport { SystemIcon, getSvgFromSystem } from '@helpers/systemIcons';\r\nconst CareerCard = (props) => {\r\n return (React.createElement(S.Container, { href: props.jobUrl },\r\n React.createElement(S.RoleType, null, props.roleType),\r\n React.createElement(S.ContentArea, null,\r\n React.createElement(S.DateHolder, { \"data-is-open\": props.isOpen }, props.isOpen ? (React.createElement(\"span\", null,\r\n \"Closing Date:\",\r\n ' ',\r\n React.createElement(S.Date, { dateTime: formatDateISO(props.closingDate) }, formatDate(props.closingDate, 'd LLL yyyy')))) : ('Closed')),\r\n React.createElement(S.Title, null, props.jobTitle),\r\n React.createElement(S.Details, null,\r\n props.salary,\r\n \" | \",\r\n props.hours),\r\n React.createElement(S.Location, null, props.location),\r\n React.createElement(S.IconHolder, null, getSvgFromSystem(SystemIcon.ArrowRight)))));\r\n};\r\nexport default CareerCard;\r\n","import * as React from 'react';\r\nimport S from './CareerListing.styles';\r\nimport CareerCard from '@stories/Components/Cards/CareerCard/CareerCard';\r\nconst CareerListing = (props) => {\r\n return (React.createElement(S.Container, { variant: props.variant ?? 'dark' },\r\n React.createElement(S.CardList, null, props.careerList.map((card, i) => React.createElement(CareerCard, { key: `career-listing-${i}`, ...card })))));\r\n};\r\nexport default CareerListing;\r\n"],"names":["formatDateISO","value","ensureDate","toISOString","formatDate","formatString","arguments","length","undefined","date","format","removeTimeZone","Date","includes","slice","equalDates","startDate","endDate","sd","ed","toDateString","ButtonReset","css","Container","styled","div","withConfig","displayName","componentId","siteWide","Layers","NavigationTray","Button","button","transition","paragraphRegular","brand","primary","offWhite","purple","_ref","type","ref","React","S","FocusRing","focusRingClass","onClick","targetEl","document","getElementById","scrollIntoView","focusNext","skipToMain","_ref$current","_wrapperEl","wrapperEl","current","closest","_ref$current2","nextElementSibling","_wrapperEl2","_wrapperEl2$parentEle","parentElement","skipSection","el","_focusable$","querySelectorAll","focus","section","fluid","tint","from","Device","Tablet","Inner","SiteWide","FocusAnchor","BasePropsContext","SectionWrapper","props","children","layout","flush","variant","removeSkipLink","otherProps","baseProps","id","SkipLink","SectionWrapperStyles","baseGrid","CardList","TabletLarge","Desktop","ActualDesktop","a","until","ContentArea","DateHolder","paragraphSmall","fonts","graphikCompact","medium","tertiary","darkBlue","secondary","red","time","Title","h3","paragraphLarge","RoleType","Details","caption","regular","Location","IconHolder","href","jobUrl","roleType","isOpen","dateTime","closingDate","jobTitle","salary","hours","location","getSvgFromSystem","SystemIcon","ArrowRight","_props$variant","careerList","map","card","i","CareerCard","key"],"sourceRoot":""}