{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/helpers/media.ts","webpack:///./src/helpers/ssr.ts","webpack:///./src/hooks/useMedia.ts","webpack:///./src/stories/Widgets/YourSolution/YS/Components/InfoIcon/InfoIcon.styles.ts","webpack:///./src/stories/Widgets/YourSolution/YS/Components/Shared.styles.ts","webpack:///./src/helpers/fluid.ts","webpack:///./src/hoc/withWidget.ts","webpack:///./src/helpers/grid.ts","webpack:///./src/helpers/ReactPropsHelper.ts","webpack:///./src/helpers/brand.ts","webpack:///./src/hoc/withMotion.tsx","webpack:///./src/helpers/fonts.ts","webpack:///./src/stories/Widgets/YourSolution/YS/Components/Shared/Step.styles.ts","webpack:///./src/helpers/cloudinary.ts","webpack:///./src/stories/Widgets/Content/NewsDetail/NewsDetail.styles.ts","webpack:///./src/img/news-detail.png","webpack:///./src/stories/Widgets/Content/NewsDetail/NewsDetail.widget.tsx","webpack:///./src/core/enums.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","65","86","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice","Device","from","size","until","between","min","max","isSSR","window","document","useMedia","queries","values","defaultValue","mediaQueryLists","map","query","matchMedia","getValue","index","findIndex","mql","matches","useState","setValue","useEffect","handler","forEach","addListener","removeListener","InfoIconStyles","Container","styled","div","InfoIcon","attrs","whileTap","whileHover","variants","tap","scale","hover","transition","duration","brand","grey","grey35","Box","figure","Tablet","invalid","css","BoxInner","red","base","active","primary","light","BoxState","BoxMedia","BoxLabel","label","grey20","ButtonStyles","white","fonts","DaxPro","Regular","TabletLarge","grey40","Button","button","type","restart","prev","next","WYSIWYGStyles","Bold","Question","section","initial","animate","exit","hidden","opacity","visible","Avatar","BoxInfo","Materials","grey44","desktop","mobile","MaterialContainer","Material","MaterialMedia","large","MaterialLabel","MaterialTitle","black","Icon","CenterText","TitleWithInfoIcon","SharedStyles","DEFAULT_MIN_VALUE","TabletSmall","DEFAULT_MAX_VALUE","ActualDesktop","fluid","minWidth","maxWidth","minRem","maxRem","minWidthRem","maxWidthRem","slope","yAxisIntersection","clampMin","round","clampVal","clampMax","num","Math","component","componentName","options","hydrate","HydrateOption","Never","configs","ReactPropsHelper","props","filter","x","toLowerCase","config","container","querySelector","id","classList","add","requestIdleCallback","element","createElement","baseGrid","MobileLarge","DesktopSmall","Grid","Default","Desktop","DesktopLarge","DefaultBreakout","DefaultPseudo","Inner","CardGridSpans","reactPropsNode","JSON","parse","innerHTML","dark","alt","accent","orange","divisionTags","mrCropper","sandhurst","default","grey89","hsl","grey96","grey76","grey75","grey55","ysp","input","water","ground","excavation","tpa","withMotion","WrappedComponent","displayName","ComponentWithMotion","React","LazyMotion","features","domAnimation","strict","BoldItalic","Medium","SlightlyLessThanMedium","RegularItalic","Light","MotionBase","centered","FullWidth","Thin","Wide","StepStyles","Containers","cl","Cloudinary","cloud","cloudName","url","secure","imageUrl","publicId","rawTransformation","transformation","image","addTransformation","FormatRegEx","test","toURL","delivery","format","fAuto","quality","qAuto","extractPublicId","split","pop","Error","Wrapper","TopSection","Mobile","TopSectionLeftContent","staggerChildren","TopSectionDate","TopSectionTitle","h1","TopSectionIntro","TopSectionImage","a","SpinnerWrapper","TopSectionLazyImageWrapper","NewsDetailStyles","RichTextArea","y","withWidget","imageLoaded","setImageLoaded","imageRef","useRef","isMobile","current","complete","S","date","title","intro","dangerouslySetInnerHTML","__html","as","videoCta","href","target","fullImage","AnimatePresence","PuffLoader","ref","loading","src","onLoad","NewsDetailLines","richText","replaceAll","InView","MediaType","HireViewType","OrderStepProgress"],"mappings":"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","file":"NewsDetail-4992316b745af9e26f79.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t65: 0,\n \t\t86: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/sitefiles/next-gen/dist/\";\n\n \tvar jsonpArray = this[\"nextGenJsonpFunction\"] = this[\"nextGenJsonpFunction\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([599,0,1,2,4,5,92]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","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","import { isSSR } from '@helpers/ssr';\r\nimport { useEffect, useState } from 'react';\r\n/**\r\n * Store a value in state based on the specified media queries.\r\n * @param {Array} queries\r\n * @param {Array} values\r\n * @param {T} defaultValue\r\n */\r\nfunction useMedia(queries, values, defaultValue) {\r\n // Avoid error with SSR.\r\n if (isSSR()) {\r\n return defaultValue;\r\n }\r\n // Array containing a media query list for each query\r\n const mediaQueryLists = queries.map((query) => window.matchMedia(query));\r\n // Function that gets value based on matching media query\r\n const getValue = () => {\r\n // Get index of first media query that matches\r\n const index = mediaQueryLists.findIndex((mql) => mql.matches);\r\n // Return related value or defaultValue if none\r\n return typeof values[index] !== 'undefined' ? values[index] : defaultValue;\r\n };\r\n // State and setter for matched value\r\n const [value, setValue] = useState(getValue);\r\n useEffect(() => {\r\n // Event listener callback\r\n // Note: By defining getValue outside of useEffect we ensure that it has ...\r\n // ... current values of hook args (as this hook callback is created once on mount).\r\n const handler = () => setValue(getValue);\r\n // Set a listener for each media query with above handler as callback.\r\n mediaQueryLists.forEach((mql) => mql.addListener(handler));\r\n // Remove listeners on cleanup\r\n return () => mediaQueryLists.forEach((mql) => mql.removeListener(handler));\r\n }, []); // Empty array ensures effect is only run on mount and unmount\r\n return value;\r\n}\r\nexport default useMedia;\r\n","import brand from '@helpers/brand';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div ``;\r\nconst InfoIcon = styled(m.div).attrs(() => ({\r\n whileTap: 'tap',\r\n whileHover: 'hover',\r\n variants: {\r\n tap: {\r\n scale: 0.95,\r\n },\r\n hover: {\r\n scale: 1.05,\r\n },\r\n },\r\n transition: {\r\n duration: 0.25,\r\n },\r\n})) `\r\n position: relative;\r\n width: 25px;\r\n height: 25px;\r\n cursor: pointer;\r\n color: ${brand.grey.grey35};\r\n\r\n svg {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n`;\r\nexport const InfoIconStyles = {\r\n Container,\r\n InfoIcon,\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 { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nimport { InfoIconStyles } from './InfoIcon/InfoIcon.styles';\r\nconst Box = styled.figure `\r\n flex: 0 0 auto;\r\n padding: 8px 8px 8px 40px;\r\n position: relative;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 8px 8px 60px 8px;\r\n width: 33%;\r\n }\r\n\r\n ${({ invalid }) => invalid &&\r\n css `\r\n ${() => BoxInner} {\r\n border: 1px solid ${brand.red.base};\r\n }\r\n `}\r\n\r\n ${({ active }) => active &&\r\n css `\r\n ${() => BoxInner} {\r\n border: 1px solid ${brand.primary.light};\r\n border-bottom: 7px solid ${brand.primary.light};\r\n }\r\n\r\n ${() => BoxState}:before {\r\n content: '';\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 50%;\r\n transform: translate(-50%, -50%);\r\n background-color: ${brand.primary.light};\r\n\r\n @media ${from(Device.Tablet)} {\r\n width: 20px;\r\n height: 20px;\r\n }\r\n }\r\n `}\r\n`;\r\nconst BoxInner = styled.div `\r\n border: 1px solid #d5d5d5;\r\n padding: 20px 12px;\r\n cursor: pointer;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n height: 100%;\r\n\r\n @media ${from(Device.Tablet)} {\r\n flex-direction: column;\r\n padding: 12px;\r\n }\r\n`;\r\nconst BoxMedia = styled.div `\r\n position: relative;\r\n flex: 0 0 auto;\r\n max-width: 40%;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-bottom: 16px;\r\n max-width: 100%;\r\n }\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n font-family: 'object-fit: cover';\r\n }\r\n`;\r\nconst BoxLabel = styled.label `\r\n text-align: center;\r\n font-weight: normal;\r\n font-size: 17px;\r\n display: block;\r\n flex: 1 1 auto;\r\n\r\n @media ${from(Device.Tablet)} {\r\n flex: 1 0 auto;\r\n margin-bottom: 50px;\r\n }\r\n`;\r\nconst BoxState = styled.div `\r\n width: 24px;\r\n height: 24px;\r\n border: 1px solid ${brand.grey.grey20};\r\n border-radius: 50%;\r\n position: relative;\r\n flex: 0 0 auto;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin: 0 auto 20px auto;\r\n width: 30px;\r\n height: 30px;\r\n }\r\n`;\r\nconst ButtonStyles = css `\r\n outline: none;\r\n border: none;\r\n padding: 8px 28px 8px 28px;\r\n background-color: ${brand.primary.light};\r\n display: inline-block;\r\n font-size: 20px;\r\n color: ${brand.white};\r\n ${fonts.DaxPro.Regular};\r\n border-radius: 8px;\r\n position: relative;\r\n cursor: pointer;\r\n user-select: none;\r\n transition: background-color 0.25s ease-in-out;\r\n z-index: 10;\r\n\r\n &:hover {\r\n color: ${brand.white};\r\n background-color: ${brand.primary.light};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 22px;\r\n }\r\n\r\n &:disabled {\r\n @media ${until(Device.TabletLarge)} {\r\n opacity: 0.4;\r\n }\r\n @media ${from(Device.TabletLarge)} {\r\n background-color: ${brand.grey.grey40};\r\n }\r\n cursor: not-allowed;\r\n }\r\n`;\r\nconst Button = styled.button.attrs(() => ({\r\n type: 'button',\r\n})) `\r\n ${ButtonStyles}\r\n\r\n ${({ restart }) => restart &&\r\n css `\r\n padding: 8px 50px 8px 28px;\r\n\r\n svg {\r\n position: absolute;\r\n right: 16px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n width: 19px;\r\n height: 19px;\r\n fill: ${brand.white};\r\n stroke: ${brand.white};\r\n }\r\n `};\r\n\r\n ${({ prev }) => prev &&\r\n css `\r\n padding: 8px 28px 8px 50px;\r\n\r\n svg {\r\n position: absolute;\r\n left: 16px;\r\n top: 50%;\r\n transform: translateY(-50%) rotate(180deg);\r\n width: 25px;\r\n height: 20px;\r\n }\r\n `}\r\n\r\n ${({ next }) => next &&\r\n css `\r\n padding: 8px 50px 8px 28px;\r\n\r\n svg {\r\n position: absolute;\r\n right: 16px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n width: 25px;\r\n height: 20px;\r\n }\r\n `}\r\n`;\r\nexport const WYSIWYGStyles = css `\r\n // Need to do h3 because thats what HTML comes out of api..\r\n h2,\r\n h3 {\r\n font-size: 25px;\r\n text-align: center;\r\n color: ${brand.grey.grey20};\r\n ${fonts.DaxPro.Bold};\r\n margin: 0 0 20px 0;\r\n line-height: 1.1;\r\n margin-bottom: 20px;\r\n }\r\n\r\n ol,\r\n ul {\r\n list-style: inside;\r\n }\r\n\r\n a {\r\n color: ${brand.primary.light};\r\n text-decoration: underline;\r\n }\r\n\r\n strong {\r\n ${fonts.DaxPro.Bold};\r\n }\r\n\r\n p {\r\n font-size: 17px;\r\n margin-bottom: 0px;\r\n color: #333333;\r\n }\r\n`;\r\nconst Question = styled(m.section).attrs(() => ({\r\n initial: 'hidden',\r\n animate: 'visible',\r\n exit: 'hidden',\r\n variants: {\r\n hidden: {\r\n opacity: 0,\r\n },\r\n visible: {\r\n opacity: 1,\r\n },\r\n },\r\n transition: {\r\n duration: 0.35,\r\n },\r\n})) `\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n align-items: center;\r\n min-height: 100%;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-right: 15px;\r\n }\r\n\r\n ${WYSIWYGStyles};\r\n`;\r\nconst Avatar = styled.div `\r\n svg {\r\n fill: ${brand.primary.light};\r\n width: 60px;\r\n height: 60px;\r\n display: block;\r\n align-self: center;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n width: 45px;\r\n height: 45px;\r\n }\r\n }\r\n`;\r\nconst BoxInfo = styled.div `\r\n position: absolute;\r\n left: 15px;\r\n bottom: 50%;\r\n transform: translate(-50%, 50%);\r\n\r\n @media ${from(Device.Tablet)} {\r\n left: 50%;\r\n bottom: 30px;\r\n }\r\n`;\r\nconst Materials = styled.div `\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n margin-bottom: 30px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n border-top: 1px solid ${brand.grey.grey44};\r\n padding-top: 25px;\r\n margin-top: 20px;\r\n }\r\n\r\n ${({ desktop }) => desktop &&\r\n css `\r\n @media ${until(Device.Tablet)} {\r\n display: none;\r\n }\r\n `}\r\n\r\n ${({ mobile }) => mobile &&\r\n css `\r\n display: flex;\r\n @media ${from(Device.Tablet)} {\r\n display: none;\r\n }\r\n `}\r\n\r\n\r\n @media ${from(Device.Tablet)} {\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: space-between;\r\n }\r\n`;\r\nconst MaterialContainer = styled.div `\r\n ${() => Material} {\r\n width: 100%;\r\n }\r\n`;\r\nconst Material = styled.div `\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n margin-bottom: 12px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n width: 45%;\r\n }\r\n`;\r\nconst MaterialMedia = styled.div `\r\n width: 32px;\r\n height: 32px;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: 50% 50%;\r\n margin-right: 17px;\r\n flex: 0 0 32px;\r\n\r\n ${({ large }) => large &&\r\n css `\r\n width: 80px;\r\n height: auto;\r\n flex: 0 0 auto;\r\n `}\r\n`;\r\nconst MaterialLabel = styled.div `\r\n font-size: 15px;\r\n`;\r\nconst MaterialTitle = styled.div `\r\n font-size: 15px;\r\n color: ${brand.black};\r\n font-weight: 700;\r\n padding-bottom: 10px;\r\n`;\r\nconst Icon = styled.div `\r\n width: 300px;\r\n margin-bottom: 25px;\r\n\r\n svg {\r\n width: 100%;\r\n }\r\n`;\r\nconst CenterText = styled.p `\r\n text-align: center;\r\n`;\r\nconst TitleWithInfoIcon = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n gap: 15px;\r\n margin-bottom: 15px;\r\n align-items: center;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-bottom: 25px;\r\n ${() => InfoIconStyles.Container} {\r\n margin-bottom: 15px;\r\n }\r\n }\r\n\r\n h2 {\r\n margin-bottom: 0 !important;\r\n }\r\n`;\r\nexport const SharedStyles = {\r\n Box,\r\n BoxInner,\r\n BoxMedia,\r\n BoxLabel,\r\n BoxState,\r\n Button,\r\n Question,\r\n Avatar,\r\n BoxInfo,\r\n Materials,\r\n Material,\r\n MaterialMedia,\r\n MaterialLabel,\r\n MaterialContainer,\r\n MaterialTitle,\r\n Icon,\r\n CenterText,\r\n TitleWithInfoIcon,\r\n};\r\n","import { Device } from './media';\r\n/**\r\n * Base pixel value for the \"rem\" unit.\r\n */\r\nexport const PIXELS_PER_REM = 16;\r\n/**\r\n * Default pixel value for the min width.\r\n */\r\nexport const DEFAULT_MIN_VALUE = Device.TabletSmall;\r\n/**\r\n * Default pixel value for the max width.\r\n */\r\nexport const DEFAULT_MAX_VALUE = Device.ActualDesktop;\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluid(min, max, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE) {\r\n const minRem = min / PIXELS_PER_REM;\r\n const maxRem = max / PIXELS_PER_REM;\r\n const minWidthRem = minWidth / PIXELS_PER_REM;\r\n const maxWidthRem = maxWidth / PIXELS_PER_REM;\r\n const slope = (maxRem - minRem) / (maxWidthRem - minWidthRem);\r\n const yAxisIntersection = -minWidthRem * slope + minRem;\r\n const clampMin = `${round(minRem)}rem`;\r\n const clampVal = `${round(yAxisIntersection)}rem + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(maxRem)}rem`;\r\n return `clamp(${clampMin}, ${clampVal}, ${clampMax})`;\r\n}\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluidUnit(min, max, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE, unit) {\r\n const slope = (max - min) / (maxWidth - minWidth);\r\n const yAxisIntersection = -minWidth * slope + min;\r\n const clampMin = `${round(min)}`;\r\n const clampVal = `${round(yAxisIntersection)}${unit} + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(max)}`;\r\n return `clamp(${clampMin}${unit}, ${clampVal}, ${clampMax}${unit})`;\r\n}\r\n/**\r\n * Round to nearest hundredth.\r\n */\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\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 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 { domAnimation, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotion(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotion = (props) => {\r\n return (React.createElement(LazyMotion, { features: domAnimation, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotion.displayName = `withMotion(${displayName})`;\r\n return ComponentWithMotion;\r\n}\r\n","import { css } from 'styled-components';\r\nexport const fonts = {\r\n DaxPro: {\r\n Bold: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n BoldItalic: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: italic;\r\n font-weight: 700;\r\n `,\r\n Medium: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n SlightlyLessThanMedium: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n Regular: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n RegularItalic: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: italic;\r\n font-weight: 400;\r\n `,\r\n Light: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 200;\r\n `,\r\n },\r\n};\r\n","import { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nimport { WYSIWYGStyles } from '@ys/Components/Shared.styles';\r\nimport { Device, from } from '@helpers/media';\r\nconst MotionBase = styled(m.section).attrs(() => ({\r\n initial: 'hidden',\r\n animate: 'visible',\r\n exit: 'hidden',\r\n variants: {\r\n hidden: {\r\n opacity: 0,\r\n },\r\n visible: {\r\n opacity: 1,\r\n },\r\n },\r\n transition: {\r\n duration: 0.35,\r\n },\r\n})) ``;\r\n// Unified interface to add a grid layout to the steps //\r\nconst Grid = styled(MotionBase) `\r\n width: 100%;\r\n margin: auto;\r\n height: 100%;\r\n\r\n max-width: 92vw;\r\n @media ${from(Device.TabletLarge)} {\r\n max-width: 75vw;\r\n }\r\n\r\n ${({ centered }) => centered &&\r\n css `\r\n place-items: center center;\r\n `}\r\n\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n\r\n ${WYSIWYGStyles};\r\n`;\r\nconst FullWidth = styled.div `\r\n grid-column: 1 / -1;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding-bottom: 35px;\r\n }\r\n`;\r\nconst Default = styled.div `\r\n grid-column: 2 / 12;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 3 / 11;\r\n padding-bottom: 35px;\r\n }\r\n`;\r\nconst Thin = styled.div `\r\n grid-column: 1 / -1;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 4 / 10;\r\n padding-bottom: 35px;\r\n }\r\n`;\r\nconst Wide = styled.div `\r\n grid-column: 2 / 12;\r\n padding-bottom: 35px;\r\n`;\r\nexport const StepStyles = {\r\n Grid,\r\n};\r\nexport const Containers = {\r\n FullWidth,\r\n Default,\r\n Thin,\r\n Wide,\r\n};\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 brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { Containers } from '@stories/Widgets/YourSolution/YS/Components/Shared/Step.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Wrapper = styled.div ``;\r\nconst Container = styled(Containers.FullWidth) `\r\n display: flex;\r\n flex-direction: column;\r\n gap: ${fluid(40, 64)};\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n padding-bottom: 52px;\r\n }\r\n`;\r\nconst TopSection = styled(m.div).attrs(() => ({\r\n initial: 'hidden',\r\n animate: 'visible',\r\n})) `\r\n width: 100%;\r\n min-height: 250px;\r\n\r\n @media ${until(Device.Mobile)} {\r\n position: relative;\r\n left: calc(var(--gridPadding) * -1);\r\n width: calc(100% + var(--gridPadding) * 2);\r\n }\r\n\r\n @media ${until(Device.Desktop)} {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n max-height: 500px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n }\r\n`;\r\nconst TopSectionLeftContent = styled(m.div).attrs(() => ({\r\n variants: {\r\n visible: {\r\n transition: { staggerChildren: 0.15 },\r\n },\r\n },\r\n})) `\r\n background-color: ${brand.primary.alt};\r\n padding: ${fluid(32, 103)} ${fluid(15, 60)};\r\n padding-right: 0px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 24px;\r\n position: relative;\r\n justify-content: center;\r\n\r\n @media ${until(Device.Desktop)} {\r\n padding-top: 0px;\r\n z-index: 3;\r\n }\r\n\r\n grid-column: 1 / 7;\r\n @media ${from(Device.DesktopLarge)} {\r\n grid-column: 1 / 6;\r\n max-height: 500px;\r\n }\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n bottom: calc(100% - 1px);\r\n left: 0;\r\n width: 100%;\r\n height: 43px;\r\n clip-path: polygon(0 0, 0% 100%, 100% 100%);\r\n background-color: ${brand.primary.alt};\r\n z-index: 2;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n left: calc(100% - 1px);\r\n top: 0;\r\n width: 130px;\r\n height: 100%;\r\n clip-path: polygon(100% 0, 0 0, 0 100%);\r\n background-color: ${brand.primary.alt};\r\n z-index: 1;\r\n }\r\n }\r\n`;\r\nconst TopSectionDate = styled(m.div).attrs(() => ({\r\n variants: {\r\n hidden: {\r\n x: '-25px',\r\n opacity: 0,\r\n },\r\n visible: {\r\n x: '0px',\r\n opacity: 1,\r\n transition: {\r\n duration: 0.5,\r\n },\r\n },\r\n },\r\n})) `\r\n ${fonts.DaxPro.Bold};\r\n padding: ${fluid(5, 8)} ${fluid(8, 16)};\r\n background-color: ${brand.white};\r\n color: ${brand.primary.alt};\r\n font-size: ${fluid(18, 23)};\r\n line-height: ${fluid(23, 29)};\r\n width: max-content;\r\n max-width: 100%;\r\n`;\r\nconst TopSectionTitle = styled(m.h1).attrs(() => ({\r\n variants: {\r\n hidden: {\r\n x: '-25px',\r\n opacity: 0,\r\n },\r\n visible: {\r\n x: '0px',\r\n opacity: 1,\r\n transition: {\r\n duration: 0.5,\r\n },\r\n },\r\n },\r\n})) `\r\n ${fonts.DaxPro.Bold};\r\n font-size: ${fluid(26, 38)};\r\n line-height: ${fluid(32, 48)};\r\n color: ${brand.white};\r\n margin: 0;\r\n max-width: ${fluid(550, 625)};\r\n`;\r\nconst TopSectionIntro = styled(m.p).attrs(() => ({\r\n variants: {\r\n hidden: {\r\n x: '-25px',\r\n opacity: 0,\r\n },\r\n visible: {\r\n x: '0px',\r\n opacity: 1,\r\n transition: {\r\n duration: 0.5,\r\n },\r\n },\r\n },\r\n})) `\r\n font-size: ${fluid(17, 20)};\r\n line-height: ${fluid(21, 25)};\r\n color: ${brand.white};\r\n margin: 0;\r\n max-width: ${fluid(550, 625)};\r\n`;\r\nconst TopSectionImage = styled.a `\r\n overflow: hidden;\r\n position: relative;\r\n\r\n height: 225px;\r\n @media ${from(Device.TabletLarge)} {\r\n height: 260px;\r\n }\r\n @media ${from(Device.Desktop)} {\r\n height: 100%;\r\n max-height: 500px;\r\n }\r\n\r\n @media ${until(Device.Desktop)} {\r\n order: -1;\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n z-index: 2;\r\n }\r\n }\r\n\r\n grid-column: 7 / -1;\r\n @media ${from(Device.DesktopLarge)} {\r\n grid-column: 6 / -1;\r\n }\r\n\r\n > img {\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n\r\n @media ${until(Device.Desktop)} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst SpinnerWrapper = styled(m.div).attrs(() => ({\r\n initial: 'hidden',\r\n animate: 'visible',\r\n exit: 'hidden',\r\n variants: {\r\n hidden: {\r\n opacity: 0,\r\n scale: 0.5,\r\n },\r\n visible: {\r\n opacity: 1,\r\n scale: 1,\r\n },\r\n },\r\n})) `\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\nconst TopSectionLazyImageWrapper = styled(m.div).attrs((props) => ({\r\n initial: 'hidden',\r\n animate: props['data-loaded'] ? 'visible' : 'hidden',\r\n variants: {\r\n hidden: {\r\n opacity: 0,\r\n scale: 1.15,\r\n x: '25px',\r\n },\r\n visible: {\r\n opacity: 1,\r\n scale: 1,\r\n x: '0px',\r\n transition: {\r\n duration: 0.75,\r\n },\r\n },\r\n },\r\n})) `\r\n width: 100%;\r\n height: 100%;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: right center;\r\n\r\n [data-full-image='true'] & {\r\n object-fit: contain;\r\n }\r\n }\r\n`;\r\nconst RichTextArea = styled(m.div).attrs(() => ({\r\n initial: 'hidden',\r\n animate: 'visible',\r\n variants: {\r\n hidden: {\r\n y: '25px',\r\n opacity: 0,\r\n },\r\n visible: {\r\n y: '0px',\r\n opacity: 1,\r\n },\r\n },\r\n})) `\r\n max-width: 1083px;\r\n margin: auto;\r\n\r\n * {\r\n margin: 0;\r\n margin-bottom: ${fluid(24, 48)};\r\n }\r\n\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6 {\r\n ${fonts.DaxPro.Bold};\r\n font-size: ${fluid(24, 32)};\r\n line-height: ${fluid(30, 40)};\r\n color: ${brand.black};\r\n }\r\n\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(23, 25)};\r\n color: ${brand.black};\r\n ${fonts.DaxPro.Regular};\r\n\r\n p,\r\n span {\r\n white-space: pre-line;\r\n }\r\n\r\n blockquote {\r\n display: flex;\r\n\r\n svg {\r\n width: ${fluid(82, 107)};\r\n height: ${fluid(97, 127)};\r\n padding-right: ${fluid(16, 35)};\r\n flex-shrink: 0;\r\n }\r\n\r\n div:first-of-type {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n\r\n &::after {\r\n content: '';\r\n width: 4px;\r\n height: 100%;\r\n position: absolute;\r\n left: 100%;\r\n top: 0;\r\n background: ${brand.primary.alt};\r\n }\r\n }\r\n\r\n div:last-of-type {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n gap: 16px;\r\n padding-left: ${fluid(16, 24)};\r\n\r\n *:first-child {\r\n font-size: ${fluid(18, 24)};\r\n line-height: ${fluid(23, 30)};\r\n color: ${brand.black};\r\n ${fonts.DaxPro.Bold};\r\n }\r\n\r\n *:last-child {\r\n font-size: ${fluid(16, 20)};\r\n line-height: ${fluid(21, 25)};\r\n color: ${brand.grey.grey40};\r\n ${fonts.DaxPro.Medium};\r\n }\r\n }\r\n\r\n * {\r\n margin: 0 !important;\r\n }\r\n }\r\n\r\n img {\r\n max-height: ${fluid(202, 620)};\r\n width: 100%;\r\n object-fit: contain;\r\n }\r\n`;\r\nexport const NewsDetailStyles = {\r\n Wrapper,\r\n Container,\r\n TopSection,\r\n TopSectionLeftContent,\r\n TopSectionDate,\r\n TopSectionTitle,\r\n TopSectionIntro,\r\n TopSectionImage,\r\n RichTextArea,\r\n TopSectionLazyImageWrapper,\r\n SpinnerWrapper,\r\n};\r\n","export default __webpack_public_path__ + \"9363fe0a9c5bb3027cb5894d3b3bc02f.png\";","import React from 'react';\r\nimport { NewsDetailStyles as S } from './NewsDetail.styles';\r\nimport { Grid } from '@helpers/grid';\r\nimport NewsDetailLines from '@img/news-detail.png';\r\nimport withWidget from '@hoc/withWidget';\r\nimport { HydrateOption } from '@core/enums';\r\nimport { withMotion } from '@hoc/withMotion';\r\nimport { AnimatePresence } from 'framer-motion';\r\nimport { PuffLoader } from 'react-spinners';\r\nimport { imageUrl, extractPublicId } from '@helpers/cloudinary';\r\nimport useMedia from '@hooks/useMedia';\r\nimport { Device, until } from '@helpers/media';\r\nconst BlockquoteSVG = ``;\r\nconst NewsDetail = (props) => {\r\n const [imageLoaded, setImageLoaded] = React.useState(false);\r\n const imageRef = React.useRef(null);\r\n const isMobile = useMedia([until(Device.Desktop)], [true], false);\r\n React.useEffect(() => {\r\n if (imageRef.current?.complete) {\r\n setImageLoaded(true);\r\n }\r\n }, [imageRef]);\r\n return (React.createElement(S.Wrapper, null,\r\n React.createElement(Grid.Default, null,\r\n React.createElement(S.Container, null,\r\n React.createElement(S.TopSection, null,\r\n React.createElement(S.TopSectionLeftContent, null,\r\n React.createElement(S.TopSectionDate, null, props.date),\r\n React.createElement(S.TopSectionTitle, null, props.title),\r\n props.intro && (React.createElement(S.TopSectionIntro, { dangerouslySetInnerHTML: { __html: props.intro } }))),\r\n React.createElement(S.TopSectionImage, { as: props.videoCta ? 'a' : 'div', href: props.videoCta?.url, target: \"_blank\", \"aria-label\": props.videoCta?.title, \"data-full-image\": props.fullImage },\r\n React.createElement(AnimatePresence, null, !imageLoaded && (React.createElement(S.SpinnerWrapper, null,\r\n React.createElement(PuffLoader, null)))),\r\n React.createElement(S.TopSectionLazyImageWrapper, { \"data-loaded\": imageLoaded },\r\n React.createElement(\"img\", { ref: imageRef, loading: \"eager\", src: props.fullImage\r\n ? imageUrl(extractPublicId(props.image), isMobile ? 'c_lpad,g_east' : 'c_lpad,g_east,w_1100')\r\n : props.image, onLoad: () => setImageLoaded(true) })),\r\n React.createElement(\"img\", { loading: \"lazy\", src: NewsDetailLines }))),\r\n props.richText && (React.createElement(S.RichTextArea, null,\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: {\r\n __html: props.richText\r\n .replaceAll('
', `
${BlockquoteSVG}
`)\r\n .replaceAll('
', '
'),\r\n } })))))));\r\n};\r\nexport default withWidget(withMotion(NewsDetail), 'NewsDetail', { hydrate: HydrateOption.InView });\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":""}