{"version":3,"sources":["webpack:///./src/helpers/media.ts","webpack:///./src/img/icons/chevron-down.svg","webpack:///./src/helpers/image.ts","webpack:///./src/hooks/useIntersectionObserver.ts","webpack:///./src/hooks/useInView.ts","webpack:///./src/stories/Components/SectionWrapper/SectionWrapper.styles.ts","webpack:///./src/stories/Components/SectionWrapper/SectionWrapper.tsx","webpack:///./node_modules/query-string/index.js","webpack:///./src/helpers/brand.ts","webpack:///./src/helpers/grey.ts","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.tsx","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.styles.ts","webpack:///./src/stories/Widgets/AreaMap/AreaMap.styles.ts","webpack:///./src/stories/Widgets/AreaMap/AreaMap.tsx","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/split-on-first/index.js","webpack:///./node_modules/filter-obj/index.js","webpack:///./src/helpers/cssVar.ts","webpack:///./node_modules/react-use/esm/useMedia.js","webpack:///./src/helpers/animation.ts","webpack:///./node_modules/react-use/esm/misc/util.js","webpack:///./src/helpers/fonts.ts"],"names":["Device","from","size","until","_path","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","SvgChevronDown","props","xmlns","viewBox","d","fill","stroke","strokeWidth","imageUrl","image","imageParams","params","rxy","focalPoint","top","left","undefined","rmode","paramsString","queryString","stringify","heightratio","width","height","src","useIntersectionObserver","callback","options","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","JSON","useInView","reverse","isEditMode","inView","setInView","useState","entries","isIntersecting","Container","styled","section","cssVar","setCssVar","TabletLarge","Desktop","flush","css","themeOption","themes","SiteWide","SectionWrapper","React","children","className","fullWidth","id","innerWidth","otherProps","ref","S","displayName","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","value","TypeError","encode","strict","encodeURIComponent","decode","removeHash","input","hashStart","indexOf","slice","extract","queryStart","parseValue","parseNumbers","Number","isNaN","trim","parseBooleans","toLowerCase","parse","query","sort","arrayFormat","arrayFormatSeparator","formatter","result","accumulator","exec","replace","concat","isArray","includes","isEncodedArray","newValue","split","map","item","test","arrayValue","parserForArrayFormat","ret","create","param","keys","k","reduce","Boolean","Array","keysSorter","a","b","exports","object","shouldFilter","skipNull","skipEmptyString","index","join","keyValueSep","encoderForArrayFormat","objectCopy","filter","x","parseUrl","url","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","pick","exclude","exclusionFilter","brand","black","blueGrey","brown","brownLight","grey","previous","hsl","white","validation","invalid","valid","brownTheme","darkTheme","lightTheme","grey96","transparentTheme","dark","light","transparent","createElement","SitePadding","SiteWidth","div","DesktopLarge","isActive","fadeIn","animation","easeInOutCubic","Image","img","GroupList","ul","MobileLarge","Tablet","Group","motion","li","delay","fadeInUp","GroupTitle","button","fonts","gillSans","regular","GroupIconWrapper","span","GroupIcon","ItemList","Item","ItemNumber","ItemTitle","AreaMap","groups","refContainer","isInView","rootMargin","refList","isListInView","activeId","setActiveId","enableAccordions","useMedia","MobileSmall","alt","srcSet","getImageSrcSet","sizes","loading","group","initial","animate","style","color","tabIndex","onClick","event","preventDefault","name","variants","closed","rotate","opened","as","items","number","module","str","charCodeAt","toString","toUpperCase","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","right","tokens","match","encodedURI","replaceMap","customDecodeURIComponent","string","separator","separatorIndex","obj","predicate","isArr","val","defaultState","_a","window","matchMedia","matches","state","setState","mounted","mql","onChange","addListener","removeListener","threshold","earlyRootMargin","globalThreshold","slideInUpInitial","slideInUp","duration","easingFunc","amount","on","args","_i","addEventListener","off","removeEventListener","isBrowser","lightItalic","regularItalic","semiBold","semiBoldItalic","bold","boldItalic"],"mappings":"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","file":"16-2ea82e8c47c8dddac150.js","sourcesContent":["export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\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(start, end) {\r\n return `${from(start)} and ${until(end)}`;\r\n}\r\n","var _path;\n\nfunction _extends() { _extends = Object.assign || 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\nfunction SvgChevronDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 15.735 9.281\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.707.707l7.16 7.16 7.16-7.16\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2\n })));\n}\n\nexport default __webpack_public_path__ + \"chevron-down-67a97ff9b5bd0067c6fb56a9dd42fe63.svg\";\nexport { SvgChevronDown as ReactComponent };","import queryString from 'query-string';\r\n/**\r\n * Create an image URL for ImageProcessor\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function imageUrl(image, imageParams) {\r\n if (!image) {\r\n return '';\r\n }\r\n const params = {\r\n rxy: image.focalPoint ? `${image.focalPoint.top},${image.focalPoint.left}` : undefined,\r\n rmode: 'crop',\r\n ...imageParams,\r\n };\r\n const paramsString = queryString.stringify(params);\r\n // Imagesharp doesn't support heightratio parameter. Convert to height parameter for compatibility.\r\n if (imageParams.heightratio !== undefined && imageParams.width !== undefined) {\r\n params.height = imageParams.width * imageParams.heightratio;\r\n }\r\n return `${image.src}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\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 }, [JSON.stringify(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 { themes } from '@helpers/brand';\r\nimport { cssVar, setCssVar } from '@helpers/cssVar';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nimport SiteWide from '../Global/SiteWide/SiteWide';\r\nconst Container = styled.section `\r\n color: ${cssVar('fgColor')};\r\n ${setCssVar('sectionMargin', '48px')};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${setCssVar('sectionMargin', '68px')};\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n ${setCssVar('sectionMargin', '96px')};\r\n }\r\n\r\n margin-top: ${cssVar('sectionMargin')};\r\n margin-bottom: ${cssVar('sectionMargin')};\r\n\r\n ${({ flush }) => flush === 'top' &&\r\n css `\r\n margin-top: 0;\r\n `}\r\n\r\n ${({ flush }) => flush === 'bottom' &&\r\n css `\r\n margin-bottom: 0;\r\n `}\r\n\r\n ${({ flush }) => flush === 'both' &&\r\n css `\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n `}\r\n\r\n ${({ flush, themeOption }) => themeOption &&\r\n css `\r\n ${themes[themeOption]}\r\n\r\n ${themeOption !== 'light' &&\r\n css `\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n padding-top: ${cssVar('sectionMargin')};\r\n padding-bottom: ${cssVar('sectionMargin')};\r\n\r\n ${() => flush === 'top' &&\r\n css `\r\n padding-top: 0;\r\n `}\r\n\r\n ${() => flush === 'bottom' &&\r\n css `\r\n padding-bottom: 0;\r\n `}\r\n\r\n ${() => flush === 'both' &&\r\n css `\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n `}\r\n `}\r\n `}\r\n`;\r\nconst StyledSiteWide = styled(SiteWide) ``;\r\nexport default {\r\n Container,\r\n SiteWide: StyledSiteWide,\r\n};\r\n","import * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef(({ children, className, flush, fullWidth = false, id, innerWidth = 'default', themeOption = 'light', ...otherProps }, ref) => {\r\n return (React.createElement(S.Container, { ref: ref, id: id, className: className, flush: flush, themeOption: themeOption, ...otherProps }, fullWidth ? children : React.createElement(S.SiteWide, { width: innerWidth }, children)));\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\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 '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 '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","import { css } from 'styled-components';\r\nimport { setCssVar } from './cssVar';\r\nimport greyscale from './grey';\r\nconst brand = {\r\n black: '#231F20',\r\n blueGrey: '#eff1f1',\r\n brown: '#a25840',\r\n brownLight: '#ede7e5',\r\n grey: greyscale,\r\n white: '#fff',\r\n validation: {\r\n invalid: '#da291c',\r\n valid: '#008c15',\r\n },\r\n};\r\nexport const brownTheme = css `\r\n ${setCssVar('fgColor', brand.white)};\r\n ${setCssVar('bgColor', brand.brown)};\r\n ${setCssVar('bgColorAlt', brand.brown)};\r\n ${setCssVar('accentColor', brand.white)};\r\n ${setCssVar('accentColorAlt', brand.white)};\r\n`;\r\nexport const darkTheme = css `\r\n ${setCssVar('fgColor', brand.white)};\r\n ${setCssVar('bgColor', brand.black)};\r\n ${setCssVar('bgColorAlt', brand.black)};\r\n ${setCssVar('accentColor', brand.white)};\r\n ${setCssVar('accentColorAlt', brand.white)};\r\n`;\r\nexport const lightTheme = css `\r\n ${setCssVar('fgColor', brand.black)};\r\n ${setCssVar('bgColor', brand.white)};\r\n ${setCssVar('bgColorAlt', brand.grey.grey96)};\r\n ${setCssVar('accentColor', brand.brown)};\r\n ${setCssVar('accentColorAlt', brand.brownLight)};\r\n`;\r\nexport const transparentTheme = css `\r\n ${setCssVar('fgColor', brand.black)};\r\n ${setCssVar('bgColor', 'none')};\r\n ${setCssVar('bgColorAlt', brand.grey.grey96)};\r\n ${setCssVar('accentColor', brand.brown)};\r\n ${setCssVar('accentColorAlt', brand.brownLight)};\r\n`;\r\nexport const themes = {\r\n brown: brownTheme,\r\n dark: darkTheme,\r\n light: lightTheme,\r\n transparent: transparentTheme,\r\n};\r\nexport default brand;\r\n","import { hsl } from 'polished';\r\nconst greyscaleValues = [46, 73, 87, 90, 96];\r\nconst greyscale = greyscaleValues.reduce((previous, current) => ({\r\n ...previous,\r\n [`grey${current}`]: grey(current),\r\n}), {});\r\nfunction grey(value) {\r\n return hsl(0, 0, value / 100);\r\n}\r\nexport { greyscale as default, grey };\r\n","import React from 'react';\r\nimport S from './SiteWide.styles';\r\nconst SiteWide = ({ children, className, width = 'default' }) => {\r\n return (React.createElement(S.Container, { className: className, width: width }, children));\r\n};\r\nexport default SiteWide;\r\n","import { cssVar, setCssVar } from '@helpers/cssVar';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nexport const SitePadding = 18;\r\nexport const SiteWidth = 1640;\r\nexport const SiteWidthNarrow = 804;\r\nconst Container = styled.div `\r\n ${setCssVar('sitePadding', `${SitePadding}px`)};\r\n ${setCssVar('siteWidth', `${SiteWidth}px`)};\r\n\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: calc(${cssVar('siteWidth')} + (${cssVar('sitePadding')} * 2));\r\n padding-left: ${cssVar('sitePadding')};\r\n padding-right: ${cssVar('sitePadding')};\r\n width: 100%;\r\n\r\n ${({ width }) => {\r\n switch (width) {\r\n case 'default':\r\n return css `\r\n @media ${from(Device.DesktopLarge)} {\r\n }\r\n `;\r\n case 'narrow':\r\n return css `\r\n @media ${from(Device.TabletLarge)} {\r\n ${setCssVar('siteWidth', `${SiteWidthNarrow}px`)};\r\n }\r\n `;\r\n }\r\n}}\r\n`;\r\nexport default {\r\n Container,\r\n};\r\n","import animation, { fadeIn, fadeInUp } from '@helpers/animation';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport SectionWrapper from '@stories/Components/SectionWrapper/SectionWrapper';\r\nimport { motion } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n @media ${from(Device.TabletLarge)} {\r\n opacity: 0;\r\n\r\n ${({ isActive }) => isActive &&\r\n css `\r\n ${fadeIn(isActive, 375, 0, animation.easeInOutCubic)};\r\n `}\r\n }\r\n`;\r\nconst Image = styled.img `\r\n display: block;\r\n margin: 0 0 80px;\r\n`;\r\nconst GroupList = styled.ul `\r\n display: grid;\r\n gap: 24px;\r\n grid-template-columns: repeat(1, 1fr);\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-template-columns: repeat(3, 1fr);\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n gap: 30px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-template-columns: repeat(6, 1fr);\r\n }\r\n`;\r\nconst Group = styled(motion.li) `\r\n display: block;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n opacity: 0;\r\n transform: translateY(25px);\r\n\r\n ${({ isActive, delay }) => isActive &&\r\n delay &&\r\n css `\r\n ${fadeInUp(isActive, 25, 375, delay, animation.easeInOutCubic)};\r\n `}\r\n }\r\n`;\r\nconst GroupTitle = styled(motion.button) `\r\n display: flex;\r\n align-items: center;\r\n background: none;\r\n border: 0;\r\n ${fonts.gillSans.regular};\r\n font-size: 20px;\r\n letter-spacing: 0.1em;\r\n line-height: 24px;\r\n margin: 0 0 16px;\r\n padding: 0;\r\n text-align: left;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n width: 100%;\r\n\r\n &:focus,\r\n &:hover {\r\n text-decoration: underline;\r\n text-underline-position: under;\r\n\r\n &::before {\r\n transform: scale(1.2);\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n cursor: default;\r\n font-size: 24px;\r\n line-height: 28px;\r\n margin: 0 0 24px;\r\n }\r\n\r\n &::before {\r\n content: '';\r\n display: inline-block;\r\n background: var(--color);\r\n border-radius: 50%;\r\n flex: 0 0 24px;\r\n height: 24px;\r\n margin: 0 16px 0 0;\r\n transition: transform 0.15s ease-out;\r\n width: 24px;\r\n }\r\n`;\r\nconst GroupIconWrapper = styled(motion.span) `\r\n display: inline-block;\r\n flex: 0 0 14px;\r\n margin-left: auto;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n display: none;\r\n }\r\n`;\r\nconst GroupIcon = styled.span `\r\n display: block;\r\n height: 14px;\r\n width: 14px;\r\n`;\r\nconst ItemList = styled(motion.ul) `\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n height: auto !important;\r\n }\r\n`;\r\nconst Item = styled.li `\r\n display: flex;\r\n ${fonts.gillSans.light};\r\n font-size: 16px;\r\n line-height: 26px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n ${fonts.gillSans.light};\r\n font-size: 19px;\r\n line-height: 34px;\r\n }\r\n`;\r\nconst ItemNumber = styled.span `\r\n display: inline-block;\r\n font-variant-numeric: tabular-nums;\r\n padding: 0 8px 0 0;\r\n`;\r\nconst ItemTitle = styled.span `\r\n display: inline-block;\r\n`;\r\nexport default {\r\n Container,\r\n Group,\r\n GroupIcon,\r\n GroupIconWrapper,\r\n GroupList,\r\n GroupTitle,\r\n Image,\r\n Item,\r\n ItemList,\r\n ItemNumber,\r\n ItemTitle,\r\n};\r\n","import animation from '@helpers/animation';\r\nimport { imageUrl } from '@helpers/image';\r\nimport { Device, from } from '@helpers/media';\r\nimport { useInView } from '@hooks/useInView';\r\nimport { ReactComponent as SvgChevronDown } from '@img/icons/chevron-down.svg';\r\nimport React from 'react';\r\nimport { useMedia } from 'react-use';\r\nimport S from './AreaMap.styles';\r\nconst AreaMap = ({ id, groups, image }) => {\r\n const [refContainer, isInView] = useInView({\r\n rootMargin: animation.inView.rootMargin,\r\n });\r\n const [refList, isListInView] = useInView({\r\n rootMargin: animation.inView.rootMargin,\r\n });\r\n const [activeId, setActiveId] = React.useState(groups[0].id);\r\n const enableAccordions = useMedia(from(Device.MobileSmall), false);\r\n return (React.createElement(S.Container, { ref: refContainer, id: id, isActive: isInView },\r\n React.createElement(S.Image, { alt: \"\", src: imageUrl(image, { width: 480 }), srcSet: getImageSrcSet(image), sizes: \"100vw\", loading: \"lazy\" }),\r\n React.createElement(S.GroupList, { ref: refList }, groups.map((group, index) => (React.createElement(S.Group, { key: group.id, initial: \"closed\", animate: activeId === group.id ? 'opened' : 'closed', isActive: isListInView, delay: (index + 1) * 50 },\r\n React.createElement(S.GroupTitle, { style: {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n ['--color']: group.color,\r\n }, tabIndex: enableAccordions ? 0 : -1, onClick: (event) => {\r\n event.preventDefault();\r\n setActiveId(activeId === group.id ? '' : group.id);\r\n } },\r\n group.name,\r\n React.createElement(S.GroupIconWrapper, { variants: {\r\n closed: {\r\n rotate: 0,\r\n },\r\n opened: {\r\n rotate: 180,\r\n },\r\n } },\r\n React.createElement(S.GroupIcon, { as: SvgChevronDown }))),\r\n React.createElement(S.ItemList, { variants: {\r\n closed: {\r\n height: 0,\r\n },\r\n opened: {\r\n height: 'auto',\r\n },\r\n } }, group.items.map((item) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.ItemNumber, null, item.number),\r\n React.createElement(S.ItemTitle, null, item.name)))))))))));\r\n};\r\nexport default AreaMap;\r\nfunction getImageSrcSet(image) {\r\n return [\r\n `${imageUrl(image, { width: 375 })} 375w`,\r\n `${imageUrl(image, { width: 480 })} 480w`,\r\n `${imageUrl(image, { width: 960 })} 960w`,\r\n `${imageUrl(image, { width: 1440 })} 1440w`,\r\n `${imageUrl(image, { width: 1920 })} 1920w`,\r\n ].join(',');\r\n}\r\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\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';\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 = 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","const variables = [\r\n 'fgColor',\r\n 'bgColor',\r\n 'bgColorAlt',\r\n 'accentColor',\r\n 'accentColorAlt',\r\n 'siteWidth',\r\n 'sitePadding',\r\n 'sectionMargin',\r\n];\r\nfunction cssVar(name) {\r\n return `var(--${name})`;\r\n}\r\nfunction setCssVar(name, value) {\r\n return `--${name}: ${value}`;\r\n}\r\nexport { cssVar, setCssVar };\r\n","import { useEffect, useState } from 'react';\nimport { isBrowser } from './misc/util';\nvar useMedia = function (query, defaultState) {\n if (defaultState === void 0) { defaultState = false; }\n var _a = useState(isBrowser ? function () { return window.matchMedia(query).matches; } : defaultState), state = _a[0], setState = _a[1];\n useEffect(function () {\n var mounted = true;\n var mql = window.matchMedia(query);\n var onChange = function () {\n if (!mounted) {\n return;\n }\n setState(!!mql.matches);\n };\n mql.addListener(onChange);\n setState(mql.matches);\n return function () {\n mounted = false;\n mql.removeListener(onChange);\n };\n }, [query]);\n return state;\n};\nexport default useMedia;\n","import { css } from 'styled-components';\r\nexport default {\r\n inView: {\r\n threshold: 0.2,\r\n rootMargin: '0px 0px -20% 0px',\r\n earlyRootMargin: '0px 0px -10% 0px',\r\n },\r\n globalThreshold: 0.2,\r\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\r\n};\r\nexport const slideInUpInitial = css `\r\n > span {\r\n opacity: 0;\r\n transform: translateY(100%);\r\n }\r\n`;\r\nexport function slideInUp(animate, duration, delay, easingFunc) {\r\n return css `\r\n overflow: hidden;\r\n\r\n > span {\r\n display: inline-block;\r\n transition: transform ${duration}ms ${delay}ms ${easingFunc},\r\n opacity ${duration}ms ${delay}ms ${easingFunc};\r\n }\r\n\r\n ${animate\r\n ? css `\r\n > span {\r\n opacity: 1;\r\n transform: translateY(0px);\r\n }\r\n `\r\n : css `\r\n ${slideInUpInitial};\r\n `}\r\n `;\r\n}\r\nexport function fadeInUp(animate, amount, duration, delay, easingFunc) {\r\n return css `\r\n transition: transform ${duration}ms ${delay}ms ${easingFunc},\r\n opacity ${duration}ms ${delay}ms ${easingFunc};\r\n\r\n ${animate\r\n ? css `\r\n opacity: 1;\r\n transform: translateY(0px);\r\n `\r\n : css `\r\n opacity: 0;\r\n transform: translateY(${amount}px);\r\n `}\r\n `;\r\n}\r\nexport function fadeIn(animate, duration, delay, easingFunc) {\r\n return css `\r\n transition: opacity ${duration}ms ${delay}ms ${easingFunc};\r\n\r\n ${animate\r\n ? css `\r\n opacity: 1;\r\n `\r\n : css `\r\n opacity: 0;\r\n `}\r\n `;\r\n}\r\n","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","import { css } from 'styled-components';\r\nexport default {\r\n gillSans: {\r\n light: css `\r\n font-family: 'Gill Sans Nova', sans-serif;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n lightItalic: css `\r\n font-family: 'Gill Sans Nova', sans-serif;\r\n font-style: italic;\r\n font-weight: 300;\r\n `,\r\n regular: css `\r\n font-family: 'Gill Sans Nova', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n regularItalic: css `\r\n font-family: 'Gill Sans Nova', sans-serif;\r\n font-style: italic;\r\n font-weight: 400;\r\n `,\r\n semiBold: css `\r\n font-family: 'Gill Sans Nova', sans-serif;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n semiBoldItalic: css `\r\n font-family: 'Gill Sans Nova', sans-serif;\r\n font-style: italic;\r\n font-weight: 600;\r\n `,\r\n bold: css `\r\n font-family: 'Gill Sans Nova', sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n boldItalic: css `\r\n font-family: 'Gill Sans Nova', sans-serif;\r\n font-style: italic;\r\n font-weight: 700;\r\n `,\r\n },\r\n};\r\n"],"sourceRoot":""}