{"version":3,"sources":["webpack:///./src/helpers/media.ts","webpack:///./src/helpers/ssr.ts","webpack:///./src/helpers/to-base-64.ts","webpack:///./src/hoc/withWidget.ts","webpack:///./src/stories/Components/Global/Typography/Paragraph.styles.ts","webpack:///./src/stories/Components/Global/Typography/Heading.styles.ts","webpack:///./src/helpers/grid.ts","webpack:///./src/helpers/ReactPropsHelper.ts","webpack:///./src/helpers/brand.ts","webpack:///./src/stories/Components/Media/Image/Image.styles.ts","webpack:///./src/stories/Components/Cards/DocumentCard/DocumentCard.styles.ts","webpack:///./src/stories/Components/Global/Typography/Paragraph.tsx","webpack:///./src/helpers/cloudinary.ts","webpack:///./src/stories/Components/Media/Image/Image.tsx","webpack:///./src/core/enums.ts"],"names":["Device","from","size","until","between","min","max","isSSR","window","document","toBase64","str","Buffer","toString","btoa","component","componentName","options","hydrate","HydrateOption","Never","configs","ReactPropsHelper","props","filter","x","name","toLowerCase","length","config","index","container","querySelector","id","classList","add","requestIdleCallback","element","createElement","LargeStyles","css","fonts","DaxPro","Regular","RegularStyles","SmallStyles","Paragraph","styled","p","isLatestNewsWidget","align","H1Styles","Bold","DesktopLarge","H2Styles","H3Styles","H4Styles","H5Styles","DesktopSmall","H6Styles","Heading","h1","visual","baseGrid","MobileLarge","Tablet","TabletLarge","Grid","Default","div","Desktop","DefaultBreakout","DefaultPseudo","Inner","CardGridSpans","reactPropsNode","this","JSON","parse","innerHTML","black","white","primary","base","dark","light","alt","accent","orange","divisionTags","mrCropper","sandhurst","default","grey","grey89","hsl","grey96","grey76","grey75","grey55","grey44","grey40","grey35","grey20","red","ysp","input","water","ground","excavation","tpa","Image","img","objectFit","undefined","objectPosition","Intrinsic","Responsive","width","height","fullPaddingTop","quotient","isNaN","ImageStyles","Fixed","Fill","Icon","brand","Card","a","TagArea","NoticeTag","span","ThemeSwitch","groundforceColour","Media","Content","ParagraphStyles","Date","Tag","DivisionTag","Title","h3","Medium","DocumentCardStyles","ParagraphContent","children","className","React","s","cl","Cloudinary","cloud","cloudName","url","secure","imageUrl","publicId","rawTransformation","transformation","image","addTransformation","FormatRegEx","test","toURL","delivery","format","fAuto","quality","qAuto","extractPublicId","split","pop","Error","useState","hasErrored","setHasErrored","deviceWidths","MobileSmall","MobileMedium","Mobile","ActualDesktop","sort","b","srcSetUrls","map","src","join","sizes","handleError","e","currentTarget","fallbackSrc","components","layout","role","decoding","preload","loading","draggable","srcSet","onError","fetchPriority","sizerSvg","Fragment","MediaType","HireViewType","OrderStepProgress"],"mappings":"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","file":"default~DocumentList~FeaturedFullWidth~LatestNewsCarousel~ProductListing~SearchResults-0ab6cbaebcca3b0b41fd.js","sourcesContent":["export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"MobileMedium\"] = 360] = \"MobileMedium\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"TabletSmall\"] = 568] = \"TabletSmall\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\r\n}\r\nexport function between(min, max) {\r\n return `${from(min)} and ${until(max)}`;\r\n}\r\n","export const isSSR = () => {\r\n const returnValue = !(typeof window != 'undefined' && window.document);\r\n return returnValue;\r\n};\r\n","/**\r\n * Isomorphic base64 that works on the server and client\r\n */\r\nexport function toBase64(str) {\r\n if (typeof window === 'undefined') {\r\n return Buffer.from(str).toString('base64');\r\n }\r\n else {\r\n return window.btoa(str);\r\n }\r\n}\r\n","import { HydrateOption } from '@core/enums';\r\nimport ReactPropsHelper from '@helpers/ReactPropsHelper';\r\nimport { isSSR } from '@helpers/ssr';\r\nimport { createElement } from 'react';\r\nimport { hydrate } from 'react-dom';\r\nimport 'regenerator-runtime/runtime';\r\nexport default function (component, componentName, options) {\r\n if (isSSR() || options.hydrate === HydrateOption.Never) {\r\n return component;\r\n }\r\n const configs = ReactPropsHelper.props.filter((x) => x.name.toLowerCase() === `components.${componentName.toLowerCase()}`);\r\n if (!configs || configs.length === 0) {\r\n return component;\r\n }\r\n for (let index = 0; index < configs.length; index++) {\r\n const config = configs[index];\r\n const container = document.querySelector(`#${config.id}:not(.hydrated)`);\r\n if (!container) {\r\n continue;\r\n }\r\n container.classList.add('hydrated');\r\n // Not supported in Safari iOS\r\n if (window.requestIdleCallback) {\r\n window.requestIdleCallback(() => {\r\n const element = createElement(component, config.props);\r\n // const t0 = performance.now();\r\n hydrate(element, container);\r\n // const t1 = performance.now();\r\n // console.log(`${componentName} hydrate took ${t1 - t0} milliseconds.`);\r\n });\r\n }\r\n else {\r\n hydrate(createElement(component, config.props), container);\r\n }\r\n }\r\n return component;\r\n}\r\n","import { fonts } from '@helpers/fonts';\r\nimport styled, { css } from 'styled-components';\r\n/**\r\n * 20px / 28px\r\n */\r\nexport const LargeStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 20px;\r\n letter-spacing: normal;\r\n line-height: 28px;\r\n margin-bottom: 16px;\r\n`;\r\n/**\r\n * 18px / 28px\r\n */\r\nexport const RegularStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 18px;\r\n letter-spacing: normal;\r\n line-height: 28px;\r\n margin-bottom: 16px;\r\n`;\r\n/**\r\n * 16px / 26px\r\n */\r\nexport const SmallStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 16px;\r\n letter-spacing: normal;\r\n line-height: 26px;\r\n margin-bottom: 16px;\r\n`;\r\nconst Paragraph = styled.p `\r\n ${({ isLatestNewsWidget }) => isLatestNewsWidget\r\n ? css `\r\n min-height: 104px;\r\n `\r\n : null}\r\n \r\n ${({ align }) => align\r\n ? css `\r\n text-align: ${align};\r\n `\r\n : null}\r\n\r\n ${({ size }) => {\r\n switch (size) {\r\n case 'large':\r\n return LargeStyles;\r\n case 'regular':\r\n return RegularStyles;\r\n case 'small':\r\n return SmallStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n`;\r\nexport default {\r\n Paragraph,\r\n SmallStyles,\r\n RegularStyles,\r\n LargeStyles,\r\n};\r\n","import { fonts } from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst H1Styles = css `\r\n ${fonts.DaxPro.Bold};\r\n font-size: 45px;\r\n letter-spacing: 0.02em;\r\n line-height: 48px;\r\n margin-bottom: 16px;\r\n text-transform: uppercase;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 70px;\r\n line-height: 70px;\r\n }\r\n`;\r\nconst H2Styles = css `\r\n ${fonts.DaxPro.Bold};\r\n font-size: 38px;\r\n letter-spacing: 0.02em;\r\n line-height: 40px;\r\n margin-bottom: 16px;\r\n text-transform: uppercase;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 60px;\r\n line-height: 60px;\r\n }\r\n`;\r\nconst H3Styles = css `\r\n ${fonts.DaxPro.Bold};\r\n font-size: 35px;\r\n letter-spacing: 0.02em;\r\n line-height: 42px;\r\n margin-bottom: 16px;\r\n text-transform: uppercase;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 50px;\r\n line-height: 60px;\r\n }\r\n`;\r\nconst H4Styles = css `\r\n ${fonts.DaxPro.Bold};\r\n font-size: 22px;\r\n letter-spacing: 0.02em;\r\n line-height: 24px;\r\n margin-bottom: 16px;\r\n text-transform: uppercase;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 40px;\r\n line-height: 40px;\r\n }\r\n`;\r\nconst H5Styles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 24px;\r\n margin-bottom: 12px;\r\n line-height: 22px;\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n font-size: 35px;\r\n line-height: 38px;\r\n margin-bottom: 16px;\r\n }\r\n`;\r\nconst H6Styles = css `\r\n ${fonts.DaxPro.Bold};\r\n font-size: 16px;\r\n letter-spacing: 0.02em;\r\n line-height: 20px;\r\n margin-bottom: 16px;\r\n text-transform: uppercase;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 20px;\r\n line-height: 28px;\r\n }\r\n`;\r\nconst Heading = styled.h1 `\r\n ${({ visual }) => {\r\n switch (visual) {\r\n case 'h1':\r\n return H1Styles;\r\n case 'h2':\r\n return H2Styles;\r\n case 'h3':\r\n return H3Styles;\r\n case 'h4':\r\n return H4Styles;\r\n case 'h5':\r\n return H5Styles;\r\n case 'h6':\r\n return H6Styles;\r\n default:\r\n break;\r\n }\r\n}}\r\n`;\r\nexport default {\r\n // H1Styles,\r\n // H2Styles,\r\n H3Styles,\r\n H4Styles,\r\n H5Styles,\r\n // H6Styles,\r\n Heading,\r\n};\r\n","import styled, { css } from 'styled-components';\r\nimport { Device, from } from './media';\r\nconst baseGrid = css `\r\n --grid-gap: 10px;\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n grid-gap: var(--grid-gap);\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n --grid-gap: 12px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n --grid-gap: 15px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --grid-gap: 20px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n --grid-gap: 30px;\r\n }\r\n`;\r\nconst Default = styled.div `\r\n ${baseGrid};\r\n --gridPadding: 13px;\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n --gridPadding: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n --gridPadding: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --gridPadding: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n --gridPadding: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n --gridPadding: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n --gridPadding: 140px;\r\n }\r\n\r\n padding: 0px var(--gridPadding);\r\n`;\r\nconst DefaultBreakout = css `\r\n position: relative;\r\n left: 0px;\r\n right: 0px;\r\n margin: 0px -13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n margin: 0px -40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin: 0px -60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin: 0px -80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n margin: 0px -100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n margin: 0px -120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n margin: 0px -140px;\r\n }\r\n`;\r\nconst DefaultPseudo = css `\r\n position: relative;\r\n\r\n &:before,\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n }\r\n\r\n &:before {\r\n left: -13px;\r\n width: 13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n left: -40px;\r\n width: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n left: -60px;\r\n width: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n left: -80px;\r\n width: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n left: -100px;\r\n width: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n left: -120px;\r\n width: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n left: -140px;\r\n width: 140px;\r\n }\r\n }\r\n\r\n &:after {\r\n right: -13px;\r\n width: 13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n right: -40px;\r\n width: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n right: -60px;\r\n width: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n right: -80px;\r\n width: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n right: -100px;\r\n width: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n right: -120px;\r\n width: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n right: -140px;\r\n width: 140px;\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${baseGrid};\r\n`;\r\nconst CardGridSpans = css `\r\n grid-column: span 6;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: span 4;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n grid-column: span 3;\r\n }\r\n`;\r\nexport const Grid = {\r\n Default,\r\n DefaultBreakout,\r\n DefaultPseudo,\r\n Inner,\r\n CardGridSpans,\r\n};\r\n","import { isSSR } from './ssr';\r\nclass ReactPropsHelper {\r\n props = [];\r\n constructor() {\r\n if (isSSR()) {\r\n return;\r\n }\r\n const reactPropsNode = document.querySelector('#react_props');\r\n if (!reactPropsNode) {\r\n return;\r\n }\r\n this.props = JSON.parse(reactPropsNode.innerHTML);\r\n }\r\n}\r\nexport default new ReactPropsHelper();\r\n","import { hsl } from 'polished';\r\nexport default {\r\n /** Hex: #1f1f1f */\r\n black: '#1f1f1f',\r\n /** Hex: #fff */\r\n white: '#fff',\r\n primary: {\r\n /** Hex: #859a3e */\r\n base: '#859a3e',\r\n /** Hex: #558000 */\r\n dark: '#558000',\r\n /** Hex: #84bb26 */\r\n light: '#84bb26',\r\n /** Hex: #669900 */\r\n alt: '#669900',\r\n },\r\n accent: {\r\n /** Hex: #FF6600 */\r\n orange: '#FF6600',\r\n },\r\n divisionTags: {\r\n mrCropper: '#CC0000',\r\n sandhurst: '#FF6600',\r\n default: '#669900',\r\n },\r\n grey: {\r\n /** Hex: #E5E5E5 */\r\n grey89: hsl(0, 0, 0.89),\r\n /** Hex: #F6F6F6 */\r\n grey96: hsl(0, 0, 0.96),\r\n /** Hex: #C1C1C1 */\r\n grey76: hsl(0, 0, 0.76),\r\n grey75: hsl(0, 0, 0.75),\r\n /** Hex: #8D8C8C*/\r\n grey55: hsl(0, 0, 0.55),\r\n /** Hex: #707070*/\r\n grey44: hsl(0, 0, 0.44),\r\n /** Hex: #666666*/\r\n grey40: hsl(0, 0, 0.4),\r\n /** Hex: #5A5A5A */\r\n grey35: hsl(0, 0, 0.35),\r\n /** Hex: #333333*/\r\n grey20: hsl(0, 0, 0.2),\r\n },\r\n red: { base: 'red' },\r\n ysp: {\r\n input: '#DBE6C7',\r\n water: '#0097a9',\r\n ground: '#ab0216',\r\n excavation: '#93545c',\r\n },\r\n tpa: {\r\n base: '#26358c',\r\n light: '#009dff',\r\n },\r\n};\r\n","import { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Image = styled.img `\r\n position: absolute;\r\n height: 100%;\r\n inset: 0px;\r\n box-sizing: border-box;\r\n padding: 0px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n border: none;\r\n display: block;\r\n text-indent: -999px;\r\n object-fit: ${({ objectFit }) => (objectFit !== undefined ? objectFit : 'initial')};\r\n object-position: ${({ objectPosition }) => objectPosition !== undefined ? objectPosition : undefined};\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n width: 100%;\r\n height: auto;\r\n }\r\n`;\r\nconst Intrinsic = styled.div `\r\n height: 100%;\r\n display: inline-block;\r\n max-width: 100%;\r\n overflow: hidden;\r\n position: relative;\r\n box-sizing: border-box;\r\n margin: 0;\r\n\r\n > div {\r\n box-sizing: border-box;\r\n display: block;\r\n max-width: 100%;\r\n }\r\n`;\r\nconst Responsive = styled.div `\r\n display: block;\r\n overflow: hidden;\r\n position: relative;\r\n box-sizing: border-box;\r\n margin: 0;\r\n\r\n > div {\r\n display: block;\r\n box-sizing: border-box;\r\n \r\n padding-top: ${({ width, height, fullPaddingTop }) => {\r\n if (fullPaddingTop || !height || !width) {\r\n return '100%';\r\n }\r\n const quotient = height / width;\r\n return isNaN(quotient) ? '100%' : `${quotient * 100}%`;\r\n}};\r\n\r\n }\r\n`;\r\nconst Fixed = styled.div `\r\n overflow: hidden;\r\n box-sizing: border-box;\r\n display: inline-block;\r\n position: relative;\r\n width: ${({ width }) => width}px;\r\n height: ${({ height }) => height}px;\r\n`;\r\nconst Fill = styled.div `\r\n display: block;\r\n overflow: hidden;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n box-sizing: border-box;\r\n margin: 0;\r\n`;\r\nexport const ImageStyles = {\r\n Image,\r\n Intrinsic,\r\n Fixed,\r\n Responsive,\r\n Fill,\r\n};\r\n","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { ThemeSwitch } from '@helpers/theme';\r\nimport Paragraph from '@stories/Components/Global/Typography/Paragraph';\r\nimport ParagraphStyles from '@stories/Components/Global/Typography/Paragraph.styles';\r\nimport styled, { css } from 'styled-components';\r\nconst Icon = styled.div `\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n transition: opacity 175ms ease, transform 175ms ease;\r\n opacity: 0;\r\n transform: translateX(-10px);\r\n margin-top: auto;\r\n\r\n @media ${until(Device.Tablet)} {\r\n opacity: 1;\r\n }\r\n\r\n > svg {\r\n display: block;\r\n width: 18px;\r\n height: 21px;\r\n stroke: ${brand.black};\r\n stroke-width: 2px;\r\n transform: rotate(90deg);\r\n\r\n [data-featured='true'] & {\r\n stroke: ${brand.white};\r\n }\r\n }\r\n`;\r\nconst Card = styled.a `\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);\r\n color: ${brand.black};\r\n text-decoration: none;\r\n position: relative;\r\n\r\n ${(props) => props?.isLatestNewsWidget &&\r\n css `\r\n height: auto !important;\r\n `}\r\n\r\n &:hover ${Icon} {\r\n transform: translateX(0px);\r\n opacity: 1;\r\n }\r\n\r\n &:hover,\r\n &:active,\r\n &:focus {\r\n color: ${brand.black};\r\n text-decoration: none;\r\n }\r\n\r\n [data-featured='true'] & {\r\n color: ${brand.white};\r\n background-color: ${brand.grey.grey20};\r\n }\r\n`;\r\nconst TagArea = styled.div `\r\n position: absolute;\r\n top: 0px;\r\n left: 0px;\r\n z-index: 1;\r\n`;\r\nconst NoticeTag = styled.span `\r\n padding: 8px 17px;\r\n margin-right: 10px;\r\n ${ThemeSwitch({ groundforceColour: brand.primary.alt })};\r\n background-color: var(--theme);\r\n ${fonts.DaxPro.Bold};\r\n font-size: 20px;\r\n color: ${brand.white};\r\n z-index: 1;\r\n`;\r\nconst Media = styled.div `\r\n position: relative;\r\n aspect-ratio: 1;\r\n\r\n img {\r\n object-fit: cover;\r\n height: 100%;\r\n width: 100%;\r\n }\r\n\r\n ${(props) => props?.isLatestNewsWidget &&\r\n css `\r\n aspect-ratio: 16/9;\r\n img {\r\n object-fit: cover !important;\r\n width: 100% !important;\r\n }\r\n\r\n @media ${until(Device.MobileLarge)} {\r\n aspect-ratio: auto;\r\n display: block;\r\n }\r\n `}\r\n`;\r\nconst Content = styled.div `\r\n flex: 1 0 auto;\r\n background-color: ${brand.white};\r\n padding: 18px 16px;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 23px 29px;\r\n }\r\n\r\n ${ParagraphStyles.Paragraph} {\r\n display: -webkit-box;\r\n -webkit-line-clamp: 6;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n margin-bottom: 0px;\r\n }\r\n\r\n [data-featured='true'] & {\r\n background-color: ${brand.grey.grey20};\r\n\r\n @media ${from(Device.Tablet)} {\r\n min-height: 285px;\r\n }\r\n }\r\n`;\r\nconst Date = styled.span `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 16px;\r\n color: ${brand.grey.grey20};\r\n margin-bottom: 12px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n\r\n [data-featured='true'] & {\r\n color: ${brand.grey.grey89};\r\n }\r\n`;\r\nconst Tag = styled.span `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 16px;\r\n color: ${brand.grey['grey55']};\r\n margin-bottom: 13px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n font-size: 18px;\r\n }\r\n\r\n [data-featured='true'] & {\r\n color: ${brand.grey.grey89};\r\n }\r\n`;\r\nconst DivisionTag = styled.span `\r\n --tagColor: ${brand.divisionTags.default};\r\n padding: 8px 17px;\r\n background-color: var(--tagColor);\r\n ${fonts.DaxPro.Bold};\r\n font-size: 20px;\r\n color: ${brand.white};\r\n z-index: 1;\r\n\r\n &[data-tag-colour='division-sandhurst'] {\r\n --tagColor: ${brand.divisionTags.sandhurst};\r\n }\r\n\r\n &[data-tag-colour='division-mrcropper'] {\r\n --tagColor: ${brand.divisionTags.mrCropper};\r\n }\r\n`;\r\nconst Title = styled.h3 `\r\n margin: 0px;\r\n color: ${brand.grey.grey20};\r\n font-size: 16px;\r\n margin-bottom: 8px;\r\n ${fonts.DaxPro.Medium};\r\n\r\n ${(props) => props?.isLatestNewsWidget &&\r\n css `\r\n overflow: hidden;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 3;\r\n -webkit-box-orient: vertical;\r\n `}\r\n\r\n @media ${from(Device.Tablet)} {\r\n font-size: 22px;\r\n line-height: 28px;\r\n }\r\n\r\n [data-featured='true'] & {\r\n color: ${brand.white};\r\n\r\n @media ${from(Device.Tablet)} {\r\n font-size: 28px;\r\n line-height: 36px;\r\n }\r\n }\r\n`;\r\nconst ParagraphContent = styled(Paragraph) `\r\n white-space-collapse: preserve;\r\n size: 16px;\r\n line-height: 26px;\r\n color: ${brand.grey.grey20};\r\n\r\n [data-featured='true'] & {\r\n color: ${brand.white};\r\n @media ${from(Device.Tablet)} {\r\n font-size: 18px;\r\n }\r\n }\r\n`;\r\nexport const DocumentCardStyles = {\r\n Card,\r\n Date,\r\n Media,\r\n NoticeTag,\r\n Content,\r\n ParagraphContent,\r\n Tag,\r\n TagArea,\r\n DivisionTag,\r\n Title,\r\n Icon,\r\n};\r\n","import React from 'react';\r\nimport s from './Paragraph.styles';\r\nconst Paragraph = ({ children, className, size = 'regular', align = 'left', isLatestNewsWidget, }) => {\r\n return (React.createElement(s.Paragraph, { className: className, size: size, align: align, isLatestNewsWidget: isLatestNewsWidget }, children));\r\n};\r\nexport default Paragraph;\r\n","import { Cloudinary } from '@cloudinary/base';\r\nimport { format, quality } from '@cloudinary/base/actions/delivery';\r\nimport { fit } from '@cloudinary/base/actions/resize';\r\nimport { audioCodec } from '@cloudinary/base/actions/transcode';\r\nimport { auto as fAuto } from '@cloudinary/base/qualifiers/format';\r\nimport { auto as qAuto } from '@cloudinary/base/qualifiers/quality';\r\nconst cl = new Cloudinary({\r\n cloud: {\r\n cloudName: 'vp-groundforce',\r\n },\r\n url: {\r\n secure: true,\r\n },\r\n});\r\nexport function imageUrl(publicId, rawTransformation) {\r\n if (!publicId) {\r\n return '';\r\n }\r\n const image = cl.image(publicId);\r\n // Apply raw transformation.\r\n if (rawTransformation) {\r\n image.addTransformation(rawTransformation);\r\n }\r\n // Ensure we're specifying a format...\r\n if (containsFormatTransformation(rawTransformation)) {\r\n return image.toURL();\r\n }\r\n // ...otherwise serve with \"f_auto\" for WebP support.\r\n return image.delivery(format(fAuto())).delivery(quality(qAuto())).toURL();\r\n}\r\nexport function videoUrl(publicId, options = {}) {\r\n if (!publicId) {\r\n return '';\r\n }\r\n let video = cl.video(publicId);\r\n // Apply resize.\r\n if (options.aspectRatio || options.width) {\r\n let resize = fit();\r\n if (options.aspectRatio) {\r\n resize = resize.aspectRatio(options.aspectRatio);\r\n }\r\n if (options.width) {\r\n resize = resize.width(options.width);\r\n }\r\n video = video.resize(resize);\r\n }\r\n // Apply transcale (remove audio).\r\n if (options.audioCodec) {\r\n video = video.transcode(audioCodec(options.audioCodec));\r\n }\r\n // Apply format.\r\n if (options.format) {\r\n video = video.delivery(format(options.format));\r\n }\r\n return video.toURL();\r\n}\r\n// eslint-disable-next-line no-useless-escape\r\nconst FormatRegEx = /(\\/|\\,)(f_.*?)(\\/|\\,)/;\r\nfunction containsFormatTransformation(transformation) {\r\n return !!transformation && FormatRegEx.test(transformation);\r\n}\r\nexport function extractPublicId(url) {\r\n const publicId = url.split('/groundforce').pop();\r\n if (!publicId) {\r\n throw new Error('Failed to extract public ID from URL');\r\n }\r\n return `/groundforce${publicId}`;\r\n}\r\n","import { imageUrl } from '@helpers/cloudinary';\r\nimport { Device } from '@helpers/media';\r\nimport { toBase64 } from '@helpers/to-base-64';\r\nimport React, { useState } from 'react';\r\nimport { ImageStyles } from './Image.styles';\r\nconst Image = (props) => {\r\n const [hasErrored, setHasErrored] = useState(false);\r\n const deviceWidths = [\r\n props.width ? props.width : -1,\r\n Device.MobileSmall,\r\n Device.MobileSmall * 2,\r\n Device.MobileSmall * 3,\r\n Device.MobileMedium,\r\n Device.MobileMedium * 2,\r\n Device.MobileMedium * 3,\r\n Device.Mobile,\r\n Device.Mobile * 2,\r\n Device.Mobile * 3,\r\n Device.MobileLarge,\r\n Device.MobileLarge * 2,\r\n Device.MobileLarge * 3,\r\n Device.Tablet,\r\n Device.Tablet * 2,\r\n Device.Tablet * 3,\r\n Device.TabletLarge,\r\n Device.TabletLarge * 2,\r\n Device.TabletLarge * 3,\r\n Device.DesktopSmall,\r\n Device.DesktopSmall * 2,\r\n Device.DesktopSmall * 3,\r\n Device.Desktop,\r\n Device.Desktop * 2,\r\n Device.Desktop * 3,\r\n Device.ActualDesktop,\r\n Device.ActualDesktop * 2,\r\n Device.ActualDesktop * 3,\r\n ]\r\n .filter((x) => x > 0)\r\n .sort((a, b) => (a < b ? -1 : 1));\r\n const srcSetUrls = deviceWidths\r\n .map((x) => `${imageUrl(props.src, `c_fill,w_${x}`)} ${x}w`)\r\n .join(', ');\r\n const src = imageUrl(props.src, `c_fill,w_${deviceWidths[deviceWidths.length - 1]}`);\r\n const sizes = props.sizes ? props.sizes : '100vw';\r\n const handleError = (e) => {\r\n if (hasErrored) {\r\n return;\r\n }\r\n setHasErrored(true);\r\n e.currentTarget.src = props.fallbackSrc ? props.fallbackSrc : '';\r\n };\r\n let components = null;\r\n switch (props.layout) {\r\n default:\r\n case 'responsive': {\r\n components = (React.createElement(ImageStyles.Responsive, { width: props.width, height: props.height, fullPaddingTop: props.fullPaddingTop },\r\n React.createElement(\"div\", null),\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'intrinsic': {\r\n const sizerSvg = ``;\r\n components = (React.createElement(ImageStyles.Intrinsic, null,\r\n React.createElement(\"div\", null,\r\n React.createElement(\"img\", { \"aria-hidden\": true, role: \"presentation\", src: `data:image/svg+xml;base64,${toBase64(sizerSvg)}` })),\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'fixed': {\r\n components = (React.createElement(ImageStyles.Fixed, { width: props.width, height: props.height },\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'fill': {\r\n components = (React.createElement(ImageStyles.Fill, null,\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', draggable: props.draggable, objectFit: props.objectFit, objectPosition: props.objectPosition, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n }\r\n return React.createElement(React.Fragment, null, components);\r\n};\r\nexport default Image;\r\n","export var MediaType;\r\n(function (MediaType) {\r\n MediaType[MediaType[\"Image\"] = 0] = \"Image\";\r\n MediaType[MediaType[\"YouTube\"] = 1] = \"YouTube\";\r\n})(MediaType || (MediaType = {}));\r\nexport var HireViewType;\r\n(function (HireViewType) {\r\n HireViewType[HireViewType[\"ReadOnly\"] = 0] = \"ReadOnly\";\r\n HireViewType[HireViewType[\"Editable\"] = 1] = \"Editable\";\r\n})(HireViewType || (HireViewType = {}));\r\nexport var OrderStepProgress;\r\n(function (OrderStepProgress) {\r\n OrderStepProgress[OrderStepProgress[\"Inactive\"] = 0] = \"Inactive\";\r\n OrderStepProgress[OrderStepProgress[\"Complete\"] = 1] = \"Complete\";\r\n OrderStepProgress[OrderStepProgress[\"Current\"] = 2] = \"Current\";\r\n})(OrderStepProgress || (OrderStepProgress = {}));\r\nexport var HydrateOption;\r\n(function (HydrateOption) {\r\n HydrateOption[HydrateOption[\"Always\"] = 0] = \"Always\";\r\n HydrateOption[HydrateOption[\"InView\"] = 1] = \"InView\";\r\n HydrateOption[HydrateOption[\"Never\"] = 2] = \"Never\";\r\n})(HydrateOption || (HydrateOption = {}));\r\n"],"sourceRoot":""}