{"version":3,"file":"ContentHeroBanner-b338132a8c046d4249c3.js","mappings":"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","sources":["webpack://james-fisher/./src/img/icons/accordion-arrow.svg","webpack://james-fisher/./src/img/icons/indicator-arrow.svg","webpack://james-fisher/./src/helpers/formatters.ts","webpack://james-fisher/./src/helpers/layers.ts","webpack://james-fisher/./src/helpers/ssr.ts","webpack://james-fisher/./src/hooks/useIntersectionObserver.ts","webpack://james-fisher/./src/hooks/useInView.ts","webpack://james-fisher/./src/stories/Components/SimpleImage/SimpleImage.styles.ts","webpack://james-fisher/./src/stories/Components/SimpleImage/SimpleImage.tsx","webpack://james-fisher/./src/img/icons/share-price-arrow.svg","webpack://james-fisher/./src/stories/Components/InPageNavigation/InPageNavigation.styles.ts","webpack://james-fisher/./src/stories/Components/InPageNavigation/InPageNavigation.tsx","webpack://james-fisher/./src/stories/Widgets/ContentHeroBanner/ContentHeroBanner.styles.ts","webpack://james-fisher/./src/stories/Widgets/ContentHeroBanner/ContentHeroBanner.tsx","webpack://james-fisher/./node_modules/decode-uri-component/index.js","webpack://james-fisher/./node_modules/filter-obj/index.js","webpack://james-fisher/./node_modules/query-string/index.js","webpack://james-fisher/./node_modules/split-on-first/index.js","webpack://james-fisher/./node_modules/strict-uri-encode/index.js"],"sourcesContent":["var _defs, _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgAccordionArrow = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 17,\n height: 17\n}, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"accordion-arrow_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n stroke: \"currentColor\",\n d: \"M0 0h17v17H0z\"\n})))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(90 8.5 8.5)\",\n clipPath: \"url(#accordion-arrow_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"currentColor\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n strokeLinecap: \"square\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 95\",\n d: \"M15.359 8.494 7.924 1.059\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 96\",\n d: \"m15.359 8.494-7.435 7.435\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 32\",\n d: \"M2 8.69h13.306\"\n})))));\n\nexport default SvgAccordionArrow;","var _defs, _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgIndicatorArrow = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24.561,\n height: 31.561\n}, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"indicator-arrow_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n transform: \"translate(386.541 702.08)\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n d: \"M0 0h31.561v24.561H0z\"\n})))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(90 556.591 170.05)\",\n clipPath: \"url(#indicator-arrow_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n strokeLinecap: \"square\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 159\",\n d: \"m415.73 714.351-10.742-10.742\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 160\",\n d: \"m415.73 714.351-10.742 10.742\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 54\",\n d: \"M386.54 714.634h29.114\"\n})))));\n\nexport default SvgIndicatorArrow;","import { format } from 'date-fns';\r\nimport { isSSR } from './ssr';\r\nexport function ensureDate(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return date;\r\n}\r\nexport function formatDateISO(value) {\r\n const date = ensureDate(value);\r\n return date.toISOString();\r\n}\r\nconst DEFAULT_DATE_OPTIONS = {\r\n day: '2-digit',\r\n month: 'short',\r\n year: 'numeric',\r\n};\r\nexport function formatDate(value, options = DEFAULT_DATE_OPTIONS) {\r\n const date = ensureDate(value);\r\n if (isSSR()) {\r\n return format(date, options.dateStyle === 'short' ? 'dd/MM/yyyy' : 'MMMM dd, yyyy');\r\n }\r\n return new Intl.DateTimeFormat(undefined, options).format(date);\r\n}\r\nconst DEFAULT_NUMBER_OPTIONS = {};\r\nexport function formatNumber(value, options = DEFAULT_NUMBER_OPTIONS) {\r\n return new Intl.NumberFormat(undefined, options).format(value);\r\n}\r\n","/**\r\n * The various major z-index layers, adjust with caution and leave space between to add to later.\r\n */\r\nexport const Layers = {\r\n Overlays: 50,\r\n Header: 100,\r\n Modal: 1000,\r\n};\r\n","export const isSSR = () => {\r\n const returnValue = !(typeof window != 'undefined' && window.document);\r\n return returnValue;\r\n};\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","import styled from 'styled-components';\r\nconst Img = styled.img ``;\r\nconst SimpleImageStyles = {\r\n Img,\r\n};\r\nexport default SimpleImageStyles;\r\n","import * as React from 'react';\r\nimport S from './SimpleImage.styles';\r\nconst SimpleImage = React.forwardRef(({ alt = '', loading = 'lazy', ...otherProps }, ref) => {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(S.Img, { ...otherProps, ref: ref, alt: alt, loading: loading, role: alt === '' ? 'presentation' : undefined })));\r\n});\r\nSimpleImage.displayName = 'SimpleImage';\r\nexport default SimpleImage;\r\n","var _defs, _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgSharePriceArrow = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 21,\n height: 21\n}, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"share-price-arrow_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n transform: \"translate(1590.318 411.99)\",\n fill: \"#fff\",\n stroke: \"#707070\",\n d: \"M0 0h21v21H0z\"\n})))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1590.318 -411.99)\",\n clipPath: \"url(#share-price-arrow_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1592.043 418.376h16.962l-8.481 8.814Z\",\n fill: \"#fff\"\n}))));\n\nexport default SvgSharePriceArrow;","import brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Layers } from '@helpers/layers';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.div `\r\n position: relative;\r\n width: 100%;\r\n max-width: var(--siteWidth);\r\n z-index: 1000;\r\n`;\r\nconst Wrapper = styled.div `\r\n --bgColor: ${brand.grey.grey7};\r\n --fgColor: ${brand.white};\r\n\r\n top: 0;\r\n height: 100%;\r\n width: 100%;\r\n max-width: var(--siteWidth);\r\n background-color: var(--bgColor);\r\n color: var(--fgColor);\r\n border: 1px solid ${brand.grey.otherGrey};\r\n z-index: ${Layers.Overlays};\r\n pointer-events: auto;\r\n transition: background-color 300ms ease-in-out, color 300ms ease-in-out;\r\n\r\n [data-ready='true'] & {\r\n position: absolute;\r\n }\r\n\r\n [data-fixed='true'] & {\r\n --bgColor: ${brand.white};\r\n --fgColor: ${brand.grey.grey5};\r\n position: fixed;\r\n top: var(--headerHeight);\r\n left: 50%;\r\n transform: translateX(-50%);\r\n height: auto;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n height: 100%;\r\n width: 100%;\r\n font-size: ${fluid(16, 18)};\r\n line-height: ${fluid(24, 30)};\r\n ${fonts.helvetica.bold};\r\n\r\n @media ${from(Device.Tablet)} {\r\n display: flex;\r\n }\r\n`;\r\nconst Title = styled.span `\r\n width: 100%;\r\n padding: 13px 18px 11px;\r\n border-bottom: 1px solid ${brand.grey.otherGrey};\r\n\r\n @media ${from(Device.Tablet)} {\r\n width: auto;\r\n max-width: 50%;\r\n flex: 0 0 auto;\r\n padding: 19px 40px 17px;\r\n border-right: 1px solid ${brand.grey.otherGrey};\r\n border-bottom: none;\r\n }\r\n`;\r\nconst Anchors = styled.div `\r\n position: relative;\r\n flex-grow: 1;\r\n width: auto;\r\n flex: 1 1 auto;\r\n padding: 0 18px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n width: auto;\r\n padding: 0 40px 0 64px;\r\n }\r\n`;\r\nconst ActiveAnchor = styled.div `\r\n position: relative;\r\n display: block;\r\n padding: 13px 32px 11px 0;\r\n cursor: pointer;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 19px 32px 17px 0;\r\n }\r\n`;\r\nconst progressBarShared = css `\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n`;\r\nconst ProgressBar = styled.div `\r\n ${progressBarShared};\r\n height: 6px;\r\n border: 1px solid ${brand.grey.otherGrey};\r\n`;\r\nconst ProgressBarIndicator = styled.div `\r\n width: 0;\r\n height: 100%;\r\n background-color: ${brand.yellow.base};\r\n transition: width 100ms linear;\r\n`;\r\nconst Arrow = styled.div `\r\n position: absolute;\r\n top: 50%;\r\n right: 0;\r\n transform: translateY(-50%);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n will-change: transform;\r\n transition: transform 0.3s ease;\r\n\r\n ${ActiveAnchor}:hover & {\r\n transform: translateY(-50%) translateY(5px);\r\n }\r\n\r\n ${ActiveAnchor}[data-open='true'] & {\r\n transform: translateY(-50%) scaleY(-1);\r\n }\r\n`;\r\nexport const AnchorList = styled.div `\r\n position: absolute;\r\n left: -1px;\r\n bottom: 0;\r\n transform: translateY(100%);\r\n width: calc(100% + 2px);\r\n display: none;\r\n padding: 0 18px;\r\n background-color: var(--bgColor);\r\n border: 1px solid ${brand.grey.otherGrey};\r\n border-top-color: transparent;\r\n\r\n &[data-open='true'] {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 0 40px 0 64px;\r\n }\r\n`;\r\nexport const AnchorButton = styled.a `\r\n width: 100%;\r\n background: none;\r\n border: none;\r\n padding: 19px 0 17px;\r\n color: var(--fgColor);\r\n ${fonts.helvetica.bold};\r\n text-align: left;\r\n will-change: color;\r\n transition: color 0.3s ease;\r\n\r\n &:hover {\r\n color: ${brand.yellow.base};\r\n }\r\n`;\r\nexport const InPageNavigationStyles = {\r\n ActiveAnchor,\r\n AnchorButton,\r\n AnchorList,\r\n Anchors,\r\n Arrow,\r\n Container,\r\n Inner,\r\n ProgressBar,\r\n ProgressBarIndicator,\r\n Title,\r\n Wrapper,\r\n};\r\n","import SvgArrow from '@img/icons/accordion-arrow.svg';\r\nimport React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\r\nimport { InPageNavigationStyles as S } from './InPageNavigation.styles';\r\nconst InPageNavigation = ({ anchors, title }) => {\r\n const [activeAnchor, setActiveAnchor] = useState(anchors[0]);\r\n const [fixedNav, setFixedNav] = useState(false);\r\n const [anchorListOpen, setAnchorListOpen] = useState(false);\r\n const refContainer = useRef(null);\r\n const refWrapper = useRef(null);\r\n const [scrollPercentage, setScrollPercentage] = useState('0%');\r\n const [navHeight, setNavHeight] = useState(null);\r\n useEffect(() => {\r\n applyNavHeight();\r\n window.addEventListener('scroll', handleScroll);\r\n return () => {\r\n window.removeEventListener('scroll', handleScroll);\r\n };\r\n }, []);\r\n useLayoutEffect(() => {\r\n applyNavHeight();\r\n }, [refWrapper.current, navHeight]);\r\n const handleScroll = () => {\r\n fixNav();\r\n updateScrollProgress();\r\n updateActiveAnchor();\r\n };\r\n const fixNav = () => {\r\n if (refContainer.current) {\r\n if (window.scrollY > refContainer.current?.offsetTop) {\r\n setFixedNav(true);\r\n }\r\n else {\r\n setFixedNav(false);\r\n }\r\n }\r\n };\r\n const updateScrollProgress = () => {\r\n const windowHeight = window.innerHeight;\r\n const totalHeight = document.body.clientHeight - windowHeight;\r\n const scrollPosition = window.scrollY;\r\n const percentage = (scrollPosition / totalHeight) * 100;\r\n setScrollPercentage(`${percentage}%`);\r\n };\r\n const updateActiveAnchor = () => {\r\n for (const item of anchors) {\r\n const element = document.getElementById(item.id);\r\n if (element) {\r\n const style = getComputedStyle(element);\r\n const scrollMargin = style.getPropertyValue(\"scroll-margin\");\r\n const scrollMarginTop = parseInt(scrollMargin.split(\" \")[0]);\r\n const { top } = element.getBoundingClientRect();\r\n if ((top - 50) <= scrollMarginTop) {\r\n setActiveAnchor(item);\r\n }\r\n }\r\n }\r\n };\r\n const applyNavHeight = () => {\r\n if (!refWrapper.current)\r\n return;\r\n const currentNavHeight = refWrapper.current?.offsetHeight;\r\n if (currentNavHeight !== navHeight) {\r\n setNavHeight(currentNavHeight);\r\n }\r\n };\r\n const toggleNav = (open) => {\r\n setAnchorListOpen(open);\r\n if (open === true) {\r\n document.addEventListener('click', navBlur);\r\n }\r\n };\r\n const navBlur = (e) => {\r\n if (refContainer.current != null && !refContainer.current.contains(e.target)) {\r\n setAnchorListOpen(false);\r\n document.removeEventListener('click', () => navBlur);\r\n }\r\n };\r\n const scrollToAnchor = (id) => {\r\n const anchorPoint = document.getElementById(id);\r\n if (anchorPoint) {\r\n anchorPoint.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n }\r\n };\r\n return (React.createElement(S.Container, { ref: refContainer, \"data-ready\": navHeight !== null, \"data-fixed\": fixedNav, style: { height: navHeight || \"\" } },\r\n React.createElement(S.Wrapper, { ref: refWrapper },\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.Title, null, title.length > 60 ? `${title.slice(0, 59)}...` : title),\r\n React.createElement(S.Anchors, null,\r\n React.createElement(S.ActiveAnchor, { \"data-open\": anchorListOpen, \"data-to-scrollspy-id\": activeAnchor.id, onClick: () => toggleNav(!anchorListOpen) },\r\n activeAnchor.displayName,\r\n React.createElement(S.Arrow, null,\r\n React.createElement(SvgArrow, null))),\r\n anchors && (React.createElement(S.AnchorList, { \"data-open\": anchorListOpen }, anchors\r\n .filter((anchor) => anchor.id != activeAnchor.id)\r\n .map((anchor, index) => (React.createElement(S.AnchorButton, { href: `#${anchor.id}`, key: `anchor-button-${index}`, onClick: (e) => {\r\n e.preventDefault();\r\n setActiveAnchor(anchor);\r\n toggleNav(false);\r\n scrollToAnchor(anchor.id);\r\n }, \"data-to-scrollspy-id\": anchor.id }, anchor.displayName))))),\r\n React.createElement(S.ProgressBar, null,\r\n React.createElement(S.ProgressBarIndicator, { style: { width: scrollPercentage } })))))));\r\n};\r\nexport default InPageNavigation;\r\n","import { inViewChangeColour, inViewFadeUp } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { imageCoverContainer } from '@helpers/image';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { h1, h3, micro, paragraph, paragraphSmall } from '@helpers/typography';\r\nimport SectionWrapper from '@stories/Components/SectionWrapper/SectionWrapper';\r\nimport SimpleImage from '@stories/Components/SimpleImage/SimpleImage';\r\nimport { rgba } from 'polished';\r\nimport styled from 'styled-components';\r\nimport { BreadcrumbsStyles } from '@stories/Components/Breadcrumbs/Breadcrumbs.styles';\r\nconst Container = styled(SectionWrapper) `\r\n --bgColor: ${brand.grey.grey6};\r\n --fgColor: ${brand.white};\r\n\r\n position: relative;\r\n display: grid;\r\n background: var(--bgColor);\r\n color: var(--fgColor);\r\n padding-top: var(--headerHeight);\r\n\r\n &[data-variant='contained'][data-bgColor='darkGrey'] {\r\n --bgColor: ${brand.grey.grey6};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='grey'] {\r\n --bgColor: ${brand.grey.grey7};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='lightGrey'] {\r\n --bgColor: ${brand.grey.grey2};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='blueGrey'] {\r\n --bgColor: ${brand.grey.grey5};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='oilGas'] {\r\n --bgColor: ${brand.sectors.oilGasGrey};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='marineBlue'] {\r\n --bgColor: ${brand.sectors.marineBlue};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='defencePurple'] {\r\n --bgColor: ${brand.sectors.defencePurple};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='energyGreen'] {\r\n --bgColor: ${brand.sectors.energyGreen};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='nuclearOrange'] {\r\n --bgColor: ${brand.sectors.nuclearOrange};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='transportRed'] {\r\n --bgColor: ${brand.sectors.transportRed};\r\n }\r\n\r\n &[data-variant='contained'][data-bgColor='white'] {\r\n --bgColor: ${brand.white};\r\n --fgColor: ${brand.black};\r\n }\r\n\r\n &[data-variant='article'] {\r\n --bgColor: ${brand.grey.grey7};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n min-height: 92vh;\r\n\r\n &[data-variant='short'] {\r\n min-height: 55vh;\r\n }\r\n }\r\n\r\n &[data-variant='contained'] {\r\n min-height: auto;\r\n \r\n @media ${from(Device.TabletLarge)} {\r\n height: 650px;\r\n }\r\n @media ${from(Device.DesktopSmall)} {\r\n height: 750px;\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n position: initial;\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n position: relative;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n padding: 48px 0;\r\n\r\n ${Container}[data-variant='article'] & {\r\n padding: 48px 0 0;\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${Container}:not([data-variant='article']) & {\r\n flex-direction: row;\r\n }\r\n }\r\n\r\n ${Container}[data-variant='article'] & {\r\n align-items: flex-start;\r\n justify-content: center;\r\n }\r\n\r\n [data-variant='contained'] & {\r\n @media ${from(Device.TabletLarge)} {\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n }\r\n }\r\n\r\n ${BreadcrumbsStyles.Container} {\r\n transform: translateY(-45px);\r\n\r\n [data-bgColor='white'] & {\r\n --fgColor: ${brand.black};\r\n --altFgColor: ${brand.black};\r\n }\r\n \r\n @media ${from(Device.TabletLarge)} {\r\n transform: translateY(0);\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n }\r\n`;\r\nconst MediaWrapper = styled.div `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n height: 100%;\r\n width: 100%;\r\n z-index: 1;\r\n\r\n [data-variant='contained'] & {\r\n position: relative;\r\n max-height: 800px;\r\n align-self: end;\r\n order: 1;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n }\r\n\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n background: rgba(0, 0, 0, var(--tintAmount));\r\n width: 100%;\r\n\r\n [data-variant='contained'] & {\r\n content: none;\r\n }\r\n }\r\n`;\r\nconst Image = styled(SimpleImage) `\r\n ${imageCoverContainer()}\r\n\r\n [data-variant='contained'] & {\r\n object-fit: contain;\r\n object-position: bottom right;\r\n }\r\n`;\r\nconst Video = styled.video `\r\n ${imageCoverContainer()}\r\n`;\r\nconst ContentWrapper = styled.div `\r\n position: relative;\r\n z-index: 2;\r\n\r\n [data-variant='contained'] & {\r\n order: 0;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n align-self: center;\r\n\r\n ${Container}[data-variant='article'] & {\r\n align-self: flex-start;\r\n }\r\n }\r\n\r\n ${Container}[data-variant='article'] & {\r\n margin-top: auto;\r\n }\r\n`;\r\nconst Title = styled.h1 `\r\n ${h1}\r\n margin-bottom: 12px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-top: 48px;\r\n margin-bottom: 24px;\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0, duration: 0.3 })};\r\n`;\r\nconst Subtitle = styled.div `\r\n ${h3};\r\n max-width: 770px;\r\n\r\n strong {\r\n ${inViewChangeColour({ delay: 0.15, duration: 0.3 }, `${brand.white}`, `${brand.yellow.base}`)};\r\n }\r\n`;\r\nconst Content = styled.p `\r\n ${paragraph}\r\n margin-bottom: 0;\r\n max-width: 518px;\r\n\r\n ${inViewFadeUp({ delay: 0.15, duration: 0.3 })};\r\n`;\r\nconst CtaWrapper = styled.div `\r\n display: block;\r\n margin-top: 24px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-top: 56px;\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0.3, duration: 0.3 })};\r\n`;\r\nconst ShareWrapper = styled.div `\r\n position: relative;\r\n align-self: center;\r\n border-top: 4px solid ${brand.grey.grey1};\r\n border-bottom: 1px solid ${rgba(brand.grey.grey1, 0.5)};\r\n flex: 1 1 auto;\r\n width: 100%;\r\n z-index: 2;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-left: auto;\r\n max-width: 460px;\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0.15, duration: 0.3 })};\r\n`;\r\nconst ShareTable = styled.dl `\r\n display: grid;\r\n color: currentColor;\r\n ${fonts.helvetica.bold};\r\n font-size: 18px;\r\n gap: 13px 24px;\r\n grid-template-columns: 1fr 1fr;\r\n line-height: 1em;\r\n letter-spacing: -0.01em;\r\n padding: 18px 0 12px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding: 32px 0 36px;\r\n }\r\n`;\r\nconst ShareLabel = styled.dt ``;\r\nconst ShareValue = styled.dd `\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n`;\r\nconst ShareTimestamp = styled.time `\r\n ${micro}\r\n display: block;\r\n margin: 0 0 4px;\r\n text-align: right;\r\n`;\r\nconst ArticleContentWrapper = styled.div `\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n z-index: 1;\r\n\r\n @media ${from(Device.Tablet)} {\r\n column-gap: 30px;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: flex-end;\r\n }\r\n`;\r\nconst Logo = styled.img `\r\n margin-left: auto;\r\n max-width: ${fluid(135, 240)};\r\n`;\r\nconst ArticleAdditionalContent = styled.div `\r\n position: relative;\r\n padding-top: 12px;\r\n z-index: 1;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n display: flex;\r\n }\r\n`;\r\nconst FreeText = styled.p `\r\n ${paragraph};\r\n color: ${brand.white};\r\n opacity: 0.8;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n &:not(:last-child) {\r\n margin-right: 20px;\r\n\r\n &::after {\r\n content: '|';\r\n padding-left: 20px;\r\n }\r\n }\r\n }\r\n\r\n @media ${until(Device.MobileLarge)} {\r\n margin-bottom: 0;\r\n }\r\n`;\r\nconst ReadArticle = styled.a `\r\n ${paragraphSmall};\r\n margin-bottom: 0;\r\n cursor: pointer;\r\n z-index: 1;\r\n\r\n @media ${from(Device.Desktop)} {\r\n margin-top: ${fluid(40, 100, Device.Desktop, Device.ActualDesktop)};\r\n padding-bottom: ${fluid(20, 40, Device.Desktop, Device.ActualDesktop)};\r\n }\r\n\r\n svg {\r\n transition: transform 0.25s ease;\r\n position: relative;\r\n }\r\n\r\n &:hover {\r\n svg {\r\n transform: translateY(5px);\r\n }\r\n }\r\n`;\r\nconst ContentHeroBannerStyles = {\r\n ArticleAdditionalContent,\r\n ArticleContentWrapper,\r\n Container,\r\n Content,\r\n ContentWrapper,\r\n CtaWrapper,\r\n FreeText,\r\n Image,\r\n Inner,\r\n Logo,\r\n MediaWrapper,\r\n ReadArticle,\r\n ShareLabel,\r\n ShareTable,\r\n ShareTimestamp,\r\n ShareValue,\r\n ShareWrapper,\r\n Subtitle,\r\n Title,\r\n Video,\r\n};\r\nexport default ContentHeroBannerStyles;\r\n","import { inViewMargin } from '@helpers/animate';\r\nimport { formatDate, formatDateISO } from '@helpers/formatters';\r\nimport { imageUrl, srcSet } from '@helpers/image';\r\nimport { Device, from } from '@helpers/media';\r\nimport { useInView } from '@hooks/useInView';\r\nimport IndicatorArrow from '@img/icons/indicator-arrow.svg';\r\nimport SvgArrow from '@img/icons/share-price-arrow.svg';\r\nimport InPageNavigation from '@stories/Components/InPageNavigation/InPageNavigation';\r\nimport LinkButton from '@stories/Components/LinkButton/LinkButton';\r\nimport * as React from 'react';\r\nimport S from './ContentHeroBanner.styles';\r\nimport Breadcrumbs from '@stories/Components/Breadcrumbs/Breadcrumbs';\r\nconst ContentHeroBanner = ({ bgColor = 'grey', breadcrumbs, content, cta, downArrowSupportText, freeTextOne, freeTextTwo, id, image, inPageNavigation, logo, shareData, showDownArrow = false, subtitle, tint = 0.3, title, variant = 'default', video, }) => {\r\n const [refContainer, inView] = useInView({ rootMargin: inViewMargin });\r\n const scrollToArticle = () => {\r\n if (refContainer.current) {\r\n window.scrollTo({\r\n top: refContainer.current.getBoundingClientRect().bottom,\r\n behavior: 'smooth',\r\n });\r\n }\r\n };\r\n return (React.createElement(S.Container, { ref: refContainer, id: id, style: { '--tintAmount': tint }, \"data-header-overlap\": \"true\", \"data-inview\": inView, \"data-variant\": variant, \"data-bgColor\": bgColor },\r\n variant !== 'contained' &&\r\n React.createElement(S.MediaWrapper, null,\r\n image && (React.createElement(\"picture\", null,\r\n React.createElement(\"source\", { media: from(Device.Desktop), srcSet: srcSet(image, {\r\n width: 1920,\r\n height: variant === 'short' ? 600 : 1080,\r\n rmode: 'crop',\r\n quality: 90,\r\n }) }),\r\n React.createElement(\"source\", { media: from(Device.DesktopSmall), srcSet: srcSet(image, {\r\n width: 1365,\r\n height: variant === 'short' ? 600 : 767,\r\n rmode: 'crop',\r\n quality: 90,\r\n }) }),\r\n React.createElement(\"source\", { media: from(Device.Tablet), srcSet: srcSet(image, {\r\n width: 1279,\r\n height: variant === 'short' ? 300 : 1023,\r\n rmode: 'crop',\r\n quality: 90,\r\n }) }),\r\n React.createElement(\"source\", { media: from(Device.MobileLarge), srcSet: srcSet(image, {\r\n width: 767,\r\n height: variant === 'short' ? 300 : 1023,\r\n rmode: 'crop',\r\n quality: 90,\r\n }) }),\r\n React.createElement(\"source\", { media: from(Device.Mobile), srcSet: srcSet(image, {\r\n width: 479,\r\n height: variant === 'short' ? 300 : 900,\r\n rmode: 'crop',\r\n quality: 90,\r\n }) }),\r\n React.createElement(S.Image, { alt: image.altText, loading: \"eager\", src: imageUrl(image, {\r\n width: 375,\r\n height: variant === 'short' ? 300 : 775,\r\n rmode: 'crop',\r\n quality: 90,\r\n }), srcSet: srcSet(image, {\r\n width: 375,\r\n height: variant === 'short' ? 300 : 775,\r\n rmode: 'crop',\r\n quality: 90,\r\n }) }))),\r\n video && (React.createElement(S.Video, { autoPlay: true, muted: true, playsInline: true, loop: true },\r\n React.createElement(\"source\", { src: video, type: \"video/mp4\" })))),\r\n React.createElement(S.Inner, null,\r\n breadcrumbs && breadcrumbs?.length > 0 &&\r\n React.createElement(Breadcrumbs, { items: breadcrumbs }),\r\n variant === 'contained' &&\r\n React.createElement(S.MediaWrapper, null, image && (React.createElement(\"picture\", null,\r\n React.createElement(\"source\", { media: from(Device.Desktop), srcSet: srcSet(image, {\r\n width: 1604,\r\n height: 1364,\r\n quality: 90,\r\n }) }),\r\n React.createElement(\"source\", { media: from(Device.DesktopSmall), srcSet: srcSet(image, {\r\n width: 1232,\r\n height: 1104,\r\n quality: 90,\r\n }) }),\r\n React.createElement(S.Image, { alt: image.altText, loading: \"eager\", src: imageUrl(image, {\r\n width: 976,\r\n height: 875,\r\n quality: 90,\r\n }), srcSet: srcSet(image, {\r\n width: 976,\r\n height: 875,\r\n quality: 90,\r\n }) })))),\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(S.Title, { id: title.replaceAll(/[\\W_]+/g, '-').toLowerCase() }, title),\r\n content && React.createElement(S.Content, null, content),\r\n cta && (React.createElement(S.CtaWrapper, null,\r\n React.createElement(LinkButton, { buttonType: \"inverted\", href: cta.url, target: cta.target }, cta.text)))),\r\n React.createElement(S.ArticleContentWrapper, null,\r\n subtitle && React.createElement(S.Subtitle, { dangerouslySetInnerHTML: { __html: subtitle } }),\r\n logo && React.createElement(S.Logo, { alt: logo.altText ?? `logo`, src: imageUrl(logo, { width: 360 }) })),\r\n (freeTextOne || freeTextTwo) && (React.createElement(S.ArticleAdditionalContent, null,\r\n freeTextOne && React.createElement(S.FreeText, null, freeTextOne),\r\n freeTextTwo && React.createElement(S.FreeText, null, freeTextTwo))),\r\n shareData && (React.createElement(S.ShareWrapper, null,\r\n React.createElement(S.ShareTable, null,\r\n React.createElement(S.ShareLabel, null, \"Symbol\"),\r\n React.createElement(S.ShareValue, null, shareData.symbol),\r\n React.createElement(S.ShareLabel, null, \"Last\"),\r\n React.createElement(S.ShareValue, null, shareData.last),\r\n React.createElement(S.ShareLabel, null, \"Change (%)\"),\r\n React.createElement(S.ShareValue, null,\r\n shareData.change,\r\n shareData.changeSign === 'positive' ? (React.createElement(SvgArrow, { \"aria-hidden\": true, style: { transform: 'rotate(180deg)' } })) : (React.createElement(SvgArrow, { \"aria-hidden\": true }))),\r\n React.createElement(S.ShareLabel, null, \"Current\"),\r\n React.createElement(S.ShareValue, null, shareData.bid)),\r\n React.createElement(S.ShareTimestamp, { dateTime: formatDateISO(shareData.timestamp) }, formatDate(shareData.timestamp, {\r\n second: '2-digit',\r\n minute: '2-digit',\r\n hour: '2-digit',\r\n day: '2-digit',\r\n month: 'long',\r\n year: 'numeric',\r\n })))),\r\n variant === 'article' && showDownArrow && (React.createElement(S.ReadArticle, { onClick: scrollToArticle },\r\n React.createElement(\"p\", null, downArrowSupportText ?? 'Read article'),\r\n React.createElement(IndicatorArrow, null))),\r\n variant === 'article' && inPageNavigation && React.createElement(InPageNavigation, { ...inPageNavigation }))));\r\n};\r\nexport default ContentHeroBanner;\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","'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":["_defs","_g","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","xmlns","width","height","id","fill","stroke","d","transform","clipPath","strokeLinecap","strokeWidth","ensureDate","value","date","Date","formatDateISO","toISOString","DEFAULT_DATE_OPTIONS","day","month","year","formatDate","options","isSSR","format","dateStyle","Intl","DateTimeFormat","undefined","DEFAULT_NUMBER_OPTIONS","formatNumber","NumberFormat","Layers","Overlays","Header","Modal","window","document","callback","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","inView","setInView","useState","useIntersectionObserver","entries","isIntersecting","Img","styled","SimpleImage","React","ref","alt","loading","otherProps","S","role","displayName","Container","Wrapper","brand","Inner","fluid","fonts","from","Device","Title","Anchors","ActiveAnchor","progressBarShared","css","ProgressBar","ProgressBarIndicator","Arrow","AnchorList","InPageNavigationStyles","AnchorButton","anchors","title","activeAnchor","setActiveAnchor","fixedNav","setFixedNav","anchorListOpen","setAnchorListOpen","refContainer","refWrapper","scrollPercentage","setScrollPercentage","navHeight","setNavHeight","applyNavHeight","addEventListener","handleScroll","removeEventListener","useLayoutEffect","fixNav","updateScrollProgress","updateActiveAnchor","scrollY","offsetTop","windowHeight","innerHeight","totalHeight","body","clientHeight","scrollPosition","item","element","getElementById","scrollMargin","getComputedStyle","getPropertyValue","scrollMarginTop","parseInt","split","top","getBoundingClientRect","currentNavHeight","offsetHeight","toggleNav","open","navBlur","e","contains","style","slice","onClick","SvgArrow","filter","anchor","map","index","href","preventDefault","anchorPoint","scrollIntoView","behavior","block","scrollToAnchor","SectionWrapper","until","BreadcrumbsStyles","MediaWrapper","Image","imageCoverContainer","Video","ContentWrapper","h1","inViewFadeUp","delay","duration","Subtitle","h3","inViewChangeColour","Content","paragraph","CtaWrapper","ShareWrapper","rgba","ShareTable","ShareLabel","ShareValue","ShareTimestamp","micro","ArticleContentWrapper","Logo","ArticleAdditionalContent","FreeText","ReadArticle","paragraphSmall","bgColor","breadcrumbs","content","cta","downArrowSupportText","freeTextOne","freeTextTwo","image","inPageNavigation","logo","shareData","showDownArrow","subtitle","tint","variant","video","rootMargin","inViewMargin","media","srcSet","rmode","quality","altText","src","imageUrl","autoPlay","muted","playsInline","loop","type","Breadcrumbs","items","replaceAll","toLowerCase","LinkButton","buttonType","url","text","dangerouslySetInnerHTML","__html","symbol","last","change","changeSign","bid","dateTime","timestamp","second","minute","hour","scrollTo","bottom","IndicatorArrow","InPageNavigation","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","join","err","left","right","Array","concat","decode","input","tokens","match","module","exports","encodedURI","TypeError","replace","replaceMap","exec","result","keys","customDecodeURIComponent","obj","predicate","ret","isArr","isArray","val","indexOf","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","encode","strict","encodeURIComponent","keysSorter","sort","a","b","Number","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","isNaN","trim","parseBooleans","parse","query","arrayFormat","arrayFormatSeparator","formatter","accumulator","includes","isEncodedArray","newValue","test","arrayValue","parserForArrayFormat","create","param","k","reduce","Boolean","stringify","object","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","x","parseUrl","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","string","separator","separatorIndex","str","charCodeAt","toString","toUpperCase"],"sourceRoot":""}