{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./src/hooks/useSiteSearch.tsx","webpack:///./src/stories/Components/Content/WYSIWYG/WYSIWYG.styles.ts","webpack:///./src/core/api/services/ApiService.ts","webpack:///./src/stories/Components/Cards/DocumentCard/DocumentCard.tsx","webpack:///./src/core/url-resolver/UrlResolver.ts","webpack:///./src/stories/Components/Buttons/Button/Button.tsx","webpack:///./src/helpers/global.ts","webpack:///./src/img/icons/chevron-down.svg","webpack:///./src/hoc/withQueryProvider.tsx","webpack:///./src/stories/Components/Buttons/TabButton/TabButton.styles.ts","webpack:///./src/hoc/withMotion.tsx","webpack:///./src/helpers/fonts.ts","webpack:///./src/helpers/date.ts","webpack:///./src/stories/Components/Forms/Select/Select.styles.ts","webpack:///./src/img/icons/close.svg","webpack:///./node_modules/querystring-es3/index.js","webpack:///./src/img/icons/chevron-up.svg","webpack:///./src/stories/Widgets/ProductListing/ProductListing/ProductListing.styles.ts","webpack:///./src/stories/Widgets/ProductListing/ProductListing/ProductListing.widget.tsx","webpack:///./src/helpers/theme.ts","webpack:///./src/img/icons/chevron.svg","webpack:///./src/img/line-pattern.svg","webpack:///./src/stories/Components/Buttons/Button/Button.styles.tsx","webpack:///./src/img/icons/select-arrow-up.svg","webpack:///./node_modules/querystring-es3/decode.js"],"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","70","8","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","stringifyPrimitive","v","isFinite","obj","sep","eq","undefined","map","objectKeys","k","ks","encodeURIComponent","isArray","join","Array","xs","toString","f","res","keys","SearchType","OrderType","useSiteSearch","params","React","useState","initialData","response","setResponse","isLoading","setIsLoading","fetchResults","append","ApiService","request","baseUrl","UrlResolver","getDomain","method","controller","slug","apiResponse","results","debouncedFetchResults","useCallback","debounce","useEffect","disableRequest","searchTerm","selectedFilters","pageIndex","WYSIWYGStyles","Wrapper","styled","div","HeadingStyles","H5Styles","ThemeSwitch","groundforceColour","brand","primary","alt","ParagraphStyles","RegularStyles","grey","grey35","grey96","tpaColour","transparentize","tpa","base","from","Device","DesktopLarge","black","grey44","fonts","DaxPro","Bold","white","url","getUrl","headers","Headers","Accept","isMultipartFormData","delete","requestOptions","cache","body","getBody","files","keepalive","keepAlive","cors","credentials","fetch","status","Error","statusText","json","isStorybook","isSSR","window","location","host","port","process","API_URL","querystring","stringify","formData","FormData","JSON","index","file","DocumentCard","forwardRef","props","ref","createElement","ThemeWrapper","theme","DocumentCardStyles","Card","href","document","draggable","isLatestNewsWidget","as","TagArea","noticeTag","NoticeTag","groundforceDivision","DivisionTag","class","Media","Image","layout","src","imageUrl","sizes","until","TabletLarge","objectFit","title","fullPaddingTop","loading","Content","date","Date","dateTime","formatDateISO","formatDateShort","tag","Tag","Title","ParagraphContent","size","description","Icon","Chevron","displayName","toLowerCase","_localDomain","Button","addon","addonPosition","branding","className","disabled","type","onClick","hoverColour","hideTextMobile","rest","ButtonStyles","iconPosition","HoverEffect","Inner","position","Text","LinkButton","target","download","ButtonReset","css","_path","_extends","assign","arguments","source","SvgChevronDown","xmlns","viewBox","fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","queryStringifyOptions","transformSearchString","transformSearchStringJsonSafe","withQueryProvider","Component","Fragment","StaticRouter","QueryParamProvider","ReactRouterRoute","Route","stringifyOptions","Router","TabButtonStyles","button","attrs","grey89","grey20","Tablet","lighten","isActive","dark","withMotion","WrappedComponent","ComponentWithMotion","LazyMotion","features","domAnimation","strict","BoldItalic","Medium","SlightlyLessThanMedium","Regular","RegularItalic","Light","formatStringDate","dateString","formatDate","toISOString","Intl","DateTimeFormat","day","month","year","format","formatDateLong","useShortMonthName","isOpen","Dropdown","Element","rgba","grey55","SvgSelectArrow","Item","_g","SvgClose","decode","parse","encode","SvgChevronUp","Container","section","ContentGrid","Grid","Default","MobileLarge","ContentWrapper","ContentSection","Filters","SelectStyles","fromDevice","untilDevice","FiltersLoadMoreWrapper","FiltersLoadMore","Search","SearchWrapper","Searchbox","input","Results","ResultsFooter","ResultGrid","ProductListingStyles","FilterWrapper","NoResultsMsg","withWidget","viewAll","setViewAll","resultsRef","useQueryParams","withDefault","StringParam","NumberParam","selectedCategories","ArrayParam","setParams","isInitialRender","setIsInitialRender","setDisableRequest","search","siteName","culture","searchType","Products","applyFuzzy","searchSynonyms","pageSize","resultsOrder","Relevance","NodeOrder","searchPath","isProductListing","documentId","matchOnAllSameCategoryItems","parsedFilters","reduce","acc","cur","split","S","wysiwygContent","dangerouslySetInnerHTML","__html","wysiwygAdditionalContent","translations","ChevronUp","ChevronDown","placeholder","searchPlaceholder","onChange","e","currentTarget","onKeyDown","current","scrollIntoView","behavior","SearchIcon","filters","items","Filter","filterValues","itemValue","itemIndex","indexOf","onReset","x","documentName","summaryText","pageUrl","renderItems","canLoadMore","preventDefault","hydrate","HydrateOption","Always","options","groundforceColourHover","generateOpacity","groundforcePseudoColourAlt","tpaColourHover","tpaPseudoColourAlt","SvgChevron","accent","orange","PrimaryStyles","PrimaryAltStyles","SecondaryStyles","WhiteStyles","BlackStyles","GreyStyles","grey76","TextOnlyStyles","TextOnlyPrimaryStyles","IconLeft","DesktopSmall","IconRight","hideText","prop","qs","regexp","maxKeys","len","kstr","vstr","replace","idx","substr","decodeURIComponent"],"mappings":"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","file":"ProductListing-990b0a5d1e8ff3e13ae9.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\t70: 0,\n \t\t8: 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([595,0,1,2,3,4,6,9,20,32,15,27]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","import ApiService from '@core/api/services/ApiService';\r\nimport UrlResolver from '@core/url-resolver/UrlResolver';\r\nimport debounce from 'lodash/debounce';\r\nimport React from 'react';\r\nexport var SearchType;\r\n(function (SearchType) {\r\n SearchType[SearchType[\"SiteWide\"] = 0] = \"SiteWide\";\r\n SearchType[SearchType[\"Products\"] = 1] = \"Products\";\r\n SearchType[SearchType[\"TechnicalLibrary\"] = 2] = \"TechnicalLibrary\";\r\n SearchType[SearchType[\"MediaArticle\"] = 3] = \"MediaArticle\";\r\n})(SearchType || (SearchType = {}));\r\nexport var OrderType;\r\n(function (OrderType) {\r\n OrderType[OrderType[\"Relevance\"] = 0] = \"Relevance\";\r\n OrderType[OrderType[\"Alphabetically\"] = 1] = \"Alphabetically\";\r\n OrderType[OrderType[\"AlphabeticallyDescending\"] = 2] = \"AlphabeticallyDescending\";\r\n OrderType[OrderType[\"DateDescending\"] = 3] = \"DateDescending\";\r\n OrderType[OrderType[\"Date\"] = 4] = \"Date\";\r\n OrderType[OrderType[\"NodeOrder\"] = 5] = \"NodeOrder\";\r\n})(OrderType || (OrderType = {}));\r\nconst useSiteSearch = (params) => {\r\n const [response, setResponse] = React.useState(params.initialData ?? undefined);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const fetchResults = async (p, append = false) => {\r\n setIsLoading(true);\r\n const apiResponse = await ApiService.request({\r\n baseUrl: UrlResolver.getDomain(),\r\n method: 'GET',\r\n controller: 'search',\r\n slug: 'performsearch',\r\n params: { ...p },\r\n });\r\n if (append && apiResponse?.result && apiResponse.result.results && response?.results) {\r\n setResponse({\r\n ...apiResponse.result,\r\n results: [...response.results, ...apiResponse.result.results],\r\n });\r\n }\r\n else {\r\n setResponse(apiResponse.result);\r\n }\r\n setIsLoading(false);\r\n };\r\n const debouncedFetchResults = React.useCallback(debounce(fetchResults, 275), []);\r\n React.useEffect(() => {\r\n !params.disableRequest && debouncedFetchResults(params.request);\r\n }, [params.request.searchTerm, params.disableRequest]);\r\n React.useEffect(() => {\r\n !params.disableRequest && debouncedFetchResults(params.request);\r\n }, [params.request.selectedFilters?.length, params.disableRequest]);\r\n React.useEffect(() => {\r\n !params.disableRequest && debouncedFetchResults(params.request, true);\r\n }, [params.request.pageIndex, params.disableRequest]);\r\n return { response, isLoading };\r\n};\r\nexport default useSiteSearch;\r\n","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport { ThemeSwitch } from '@helpers/theme';\r\nimport HeadingStyles from '@stories/Components/Global/Typography/Heading.styles';\r\nimport ParagraphStyles from '@stories/Components/Global/Typography/Paragraph.styles';\r\nimport { transparentize } from 'polished';\r\nimport styled from 'styled-components';\r\nconst Wrapper = styled.div `\r\n // Needed for the horizontal scroll table\r\n overflow: auto;\r\n line-height: normal;\r\n\r\n h1,\r\n h2 {\r\n ${HeadingStyles.H5Styles};\r\n ${ThemeSwitch({ groundforceColour: brand.primary.alt })}\r\n color: var(--theme);\r\n }\r\n\r\n p {\r\n ${ParagraphStyles.RegularStyles};\r\n }\r\n\r\n a {\r\n ${ThemeSwitch({ groundforceColour: brand.primary.alt })}\r\n color: var(--theme);\r\n }\r\n\r\n ul {\r\n li {\r\n font-size: 18px !important;\r\n }\r\n }\r\n\r\n table {\r\n table-layout: fixed;\r\n min-width: 700px;\r\n width: 100%;\r\n\r\n thead {\r\n tr {\r\n background: ${brand.grey.grey35};\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n background-color: ${brand.grey.grey96};\r\n\r\n &:nth-child(odd) {\r\n ${ThemeSwitch({\r\n groundforceColour: 'rgba(102, 153, 0, 0.12)',\r\n tpaColour: transparentize(0.88, brand.tpa.base),\r\n})}\r\n background-color: var(--theme);\r\n }\r\n }\r\n }\r\n\r\n th,\r\n td {\r\n padding: 12px 20px;\r\n width: 216px;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n padding: 12px 34px;\r\n }\r\n }\r\n\r\n td {\r\n color: ${brand.black};\r\n\r\n border-right: 1px solid ${brand.grey.grey44};\r\n &:last-child {\r\n border-right: none;\r\n }\r\n }\r\n\r\n th {\r\n ${fonts.DaxPro.Bold};\r\n color: ${brand.white};\r\n font-size: 20px;\r\n }\r\n }\r\n\r\n iframe {\r\n min-height: 900px;\r\n }\r\n\r\n &[data-hidden='true'] {\r\n display: none;\r\n }\r\n`;\r\nexport const WYSIWYGStyles = {\r\n Wrapper,\r\n};\r\n","import { isSSR } from '@helpers/ssr';\r\nimport querystring from 'querystring';\r\nclass ApiService {\r\n async request(request) {\r\n // Get the url\r\n const url = this.getUrl(request);\r\n // Headers\r\n const headers = new Headers({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n Accept: 'application/json',\r\n });\r\n if (request.isMultipartFormData === true) {\r\n headers.delete('Content-Type');\r\n }\r\n // construct a request\r\n const requestOptions = {\r\n method: request.method,\r\n headers,\r\n cache: 'default',\r\n body: this.getBody(request, request.files),\r\n keepalive: request.keepAlive ?? false,\r\n };\r\n if (request.cors === undefined || request.cors === true) {\r\n requestOptions.mode = 'cors';\r\n requestOptions.credentials = 'include';\r\n }\r\n // await the response\r\n const response = await fetch(url, requestOptions);\r\n if (response.status === 500) {\r\n throw Error(`${response.status}: ${response.statusText}`);\r\n }\r\n const data = (await response.json());\r\n return data;\r\n }\r\n async safeRequest(request) {\r\n try {\r\n const response = await this.request(request);\r\n return response;\r\n }\r\n catch {\r\n return null;\r\n }\r\n }\r\n getUrl(request) {\r\n let url = `/${request.slug}`;\r\n if (request.controller && request.controller.length > 0) {\r\n url = `/api/${request.controller}/${request.slug}`;\r\n }\r\n let isStorybook = false;\r\n if (!isSSR()) {\r\n if ((window.location.host === 'styleguide.groundforce.netcprev.co.uk' ||\r\n window.location.port === '4000' ||\r\n window.location.port === '4001') &&\r\n process.env.API_URL) {\r\n isStorybook = true;\r\n }\r\n }\r\n if (request.baseUrl) {\r\n url = `${request.baseUrl}${url}`;\r\n }\r\n else if (isStorybook) {\r\n url = `${process.env.API_URL}${url}`;\r\n }\r\n if ((request.method === 'GET' || request.method === 'DELETE') && request.params) {\r\n url += '?';\r\n url += querystring.stringify({ ...request.params });\r\n }\r\n return url;\r\n }\r\n getBody(request, files) {\r\n if (request.method === 'GET') {\r\n return null;\r\n }\r\n if (request.isMultipartFormData === true) {\r\n const formData = new FormData();\r\n formData.append('params', JSON.stringify(request.params));\r\n if (files && files.length > 0) {\r\n for (let index = 0; index < files.length; index++) {\r\n const file = files[index];\r\n formData.append(`files-${index}`, file);\r\n }\r\n }\r\n return formData;\r\n }\r\n return JSON.stringify(request.params);\r\n }\r\n}\r\nexport default new ApiService();\r\n","import { formatDateISO, formatDateShort } from '@helpers/date';\r\nimport { Device, until } from '@helpers/media';\r\nimport { ReactComponent as Chevron } from '@img/icons/chevron.svg';\r\nimport Image from '@stories/Components/Media/Image/Image';\r\nimport React from 'react';\r\nimport { DocumentCardStyles } from './DocumentCard.styles';\r\nimport { ThemeWrapper } from '@helpers/theme';\r\nconst DocumentCard = React.forwardRef((props, ref) => {\r\n return (React.createElement(ThemeWrapper, { \"data-theme\": props.theme },\r\n React.createElement(DocumentCardStyles.Card, { ref: ref, href: props.document.url, draggable: false, isLatestNewsWidget: props.isLatestNewsWidget, as: props.document.url ? 'a' : 'div' },\r\n React.createElement(DocumentCardStyles.TagArea, null,\r\n props.document.noticeTag ? (React.createElement(DocumentCardStyles.NoticeTag, null, props.document.noticeTag)) : null,\r\n props.document.groundforceDivision &&\r\n props.document.groundforceDivision.name.length > 0 && (React.createElement(DocumentCardStyles.DivisionTag, { \"data-tag-colour\": props.document.groundforceDivision.class }, props.document.groundforceDivision.name))),\r\n React.createElement(DocumentCardStyles.Media, { isLatestNewsWidget: props.isLatestNewsWidget }, props.Image ? (React.createElement(props.Image, null)) : (React.createElement(Image, { layout: \"fill\", src: props.document.imageUrl, sizes: `${until(Device.TabletLarge)} 50vw, ${until(Device.DesktopLarge)} 33vw, 25vw`, objectFit: \"cover\", alt: props.document.title || '', draggable: false, fullPaddingTop: props.document.fullPaddingTop, loading: 'lazy' }))),\r\n React.createElement(DocumentCardStyles.Content, null,\r\n props.document.date && (React.createElement(DocumentCardStyles.Date, { as: \"time\", dateTime: formatDateISO(props.document.date) }, formatDateShort(props.document.date))),\r\n props.document.tag && (React.createElement(DocumentCardStyles.Tag, null, props.document.tag)),\r\n React.createElement(DocumentCardStyles.Title, { isLatestNewsWidget: props.isLatestNewsWidget }, props.document.title),\r\n React.createElement(DocumentCardStyles.ParagraphContent, { size: \"small\", isLatestNewsWidget: props.isLatestNewsWidget }, props.document.description),\r\n props.document.url && (React.createElement(DocumentCardStyles.Icon, null,\r\n React.createElement(Chevron, null)))))));\r\n});\r\nDocumentCard.displayName = 'DocumentCard';\r\nexport default DocumentCard;\r\n","class UrlResolver {\r\n _localDomain = 'https://groundforce.local';\r\n /**\r\n *\r\n * Gets the current domain\r\n */\r\n getDomain = () => {\r\n if (`${process.env.NODE_ENV}`.toLowerCase() === 'development') {\r\n return this._localDomain;\r\n }\r\n return '';\r\n };\r\n}\r\nexport default new UrlResolver();\r\n","import React from 'react';\r\nimport { ButtonStyles } from './Button.styles';\r\nconst Button = ({ addon, addonPosition, branding, className, disabled, title, type = 'button', onClick, hoverColour, hideTextMobile, ...rest }) => {\r\n if (hideTextMobile == undefined && addonPosition == 'right') {\r\n hideTextMobile = true;\r\n }\r\n return (React.createElement(ButtonStyles.Button, { \"data-theme\": branding, className: className, disabled: disabled, iconPosition: addonPosition, type: type, onClick: onClick, hoverColour: hoverColour, hideTextMobile: hideTextMobile, ...rest },\r\n React.createElement(ButtonStyles.HoverEffect, null),\r\n React.createElement(ButtonStyles.Inner, null,\r\n addon && addonPosition === 'left' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n addon && addonPosition === 'right' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)))));\r\n};\r\nconst LinkButton = ({ addon, addonPosition, branding, className, onClick, href, target = '_self', title, download, hoverColour, }) => {\r\n return (React.createElement(ButtonStyles.Button, { \"data-theme\": branding, className: className, as: \"a\", href: href, target: target, download: download, hoverColour: hoverColour, onClick: onClick },\r\n React.createElement(ButtonStyles.HoverEffect, null),\r\n React.createElement(ButtonStyles.Inner, null,\r\n addon && addonPosition === 'left' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n addon && addonPosition === 'right' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)))));\r\n};\r\nexport { LinkButton, Button as default };\r\n","import { css } from 'styled-components';\r\nexport default {\r\n navHeight: 107,\r\n navHeightTablet: 80,\r\n navHeightMobile: 59,\r\n};\r\nexport const ButtonReset = css `\r\n border: none;\r\n outline: none;\r\n padding: 0px;\r\n background: none;\r\n border-radius: 0px;\r\n`;\r\n","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 13.953 7.977\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 460\",\n d: \"M12.539 1.415L6.977 6.977 1.415 1.415\",\n fill: \"none\",\n stroke: \"currentcolor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })));\n}\n\nexport default __webpack_public_path__ + \"ab65ba123437ec9096ced875de645192.svg\";\nexport { SvgChevronDown as ReactComponent };","import React from 'react';\r\nimport { BrowserRouter as Router, Route, StaticRouter } from 'react-router-dom';\r\nimport { QueryParamProvider, transformSearchStringJsonSafe, } from 'use-query-params';\r\nimport { isSSR } from '../helpers/ssr';\r\nconst queryStringifyOptions = {\r\n transformSearchString: transformSearchStringJsonSafe,\r\n};\r\nexport function withQueryProvider(Component) {\r\n const OutputFunction = (props) => (React.createElement(React.Fragment, null, isSSR() ? (React.createElement(StaticRouter, null,\r\n React.createElement(QueryParamProvider, { ReactRouterRoute: Route, stringifyOptions: queryStringifyOptions },\r\n React.createElement(Component, { ...props })))) : (React.createElement(Router, null,\r\n React.createElement(QueryParamProvider, { ReactRouterRoute: Route, stringifyOptions: queryStringifyOptions },\r\n React.createElement(Component, { ...props }))))));\r\n return OutputFunction;\r\n}\r\n","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Device, from } from '@helpers/media';\r\nimport { lighten } from 'polished';\r\nimport styled, { css } from 'styled-components';\r\nconst Button = styled.button.attrs({ type: 'button' }) `\r\n ${ButtonReset};\r\n padding: 16px;\r\n background-color: ${brand.grey.grey89};\r\n color: ${brand.grey.grey20};\r\n border-radius: 30px;\r\n ${fonts.DaxPro.Bold};\r\n font-size: 14px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 18px;\r\n font-size: 16px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding: 20px;\r\n font-size: 18px;\r\n }\r\n\r\n &:hover {\r\n background-color: ${lighten(-0.05, brand.grey.grey89)};\r\n color: ${brand.grey.grey20};\r\n }\r\n\r\n &:active {\r\n background-color: ${lighten(-0.1, brand.grey.grey89)};\r\n color: ${brand.grey.grey20};\r\n }\r\n\r\n ${({ isActive }) => isActive\r\n ? css `\r\n background-color: ${brand.primary.dark};\r\n color: ${brand.white};\r\n\r\n &:hover {\r\n background-color: ${lighten(-0.05, brand.primary.dark)};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active {\r\n background-color: ${lighten(-0.1, brand.primary.dark)};\r\n color: ${brand.white};\r\n }\r\n `\r\n : null}\r\n`;\r\nconst TabButtonStyles = {\r\n Button,\r\n};\r\nexport default TabButtonStyles;\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","export function formatStringDate(dateString) {\r\n const date = new Date(dateString);\r\n return formatDate(date);\r\n}\r\nexport function formatDateISO(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return date.toISOString();\r\n}\r\nexport function formatDate(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return new Intl.DateTimeFormat(undefined, {\r\n day: 'numeric',\r\n month: 'short',\r\n year: 'numeric',\r\n }).format(date);\r\n}\r\nexport function formatDateLong(value, useShortMonthName) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return new Intl.DateTimeFormat(undefined, {\r\n day: 'numeric',\r\n month: useShortMonthName ? 'short' : 'long',\r\n year: 'numeric',\r\n }).format(date);\r\n}\r\nexport function formatDateShort(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return new Intl.DateTimeFormat(undefined, {\r\n day: 'numeric',\r\n month: '2-digit',\r\n year: '2-digit',\r\n }).format(date);\r\n}\r\n","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { rgba } from 'polished';\r\nimport styled, { css } from 'styled-components';\r\nimport SvgSelectArrow from '@img/icons/select-arrow-up.svg';\r\nimport { ThemeSwitch } from '@helpers/theme';\r\nconst Wrapper = styled.div `\r\n label {\r\n display: block;\r\n font-size: 16px;\r\n ${fonts.DaxPro['Bold']};\r\n color: ${brand.grey.grey20};\r\n margin-bottom: 6px;\r\n }\r\n\r\n ${({ isOpen }) => isOpen &&\r\n css `\r\n ${() => Dropdown} {\r\n opacity: 1;\r\n pointer-events: all;\r\n }\r\n\r\n ${() => Element} {\r\n &:after {\r\n transform: rotate(0deg);\r\n }\r\n }\r\n `}\r\n`;\r\nconst Element = styled.div `\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n border-radius: 3px;\r\n border: 1px solid ${rgba(brand.grey.grey55, 0.75)};\r\n box-sizing: border-box;\r\n ${fonts.DaxPro.Regular};\r\n font-size: 16px;\r\n height: 50px;\r\n padding: 0 36px 0 18px;\r\n width: auto;\r\n min-width: 318px;\r\n cursor: pointer;\r\n\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n right: 18px;\r\n width: 18px;\r\n height: 100%;\r\n background: url(${SvgSelectArrow}) no-repeat center;\r\n background-size: contain;\r\n transform: rotate(180deg);\r\n opacity: 0.5;\r\n }\r\n`;\r\nconst Dropdown = styled.div `\r\n position: absolute;\r\n z-index: 1;\r\n top: calc(100% + 1px);\r\n left: 0;\r\n width: 100%;\r\n box-shadow: 0 0 4px 2px ${rgba(brand.black, 0.08)};\r\n background: ${brand.white};\r\n max-height: 240px;\r\n overflow-y: auto;\r\n border-bottom-left-radius: 3px;\r\n border-bottom-right-radius: 3px;\r\n opacity: 0;\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n\r\n &::-webkit-scrollbar {\r\n height: 4px;\r\n width: 4px;\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background-color: ${rgba(brand.grey.grey20, 0.5)};\r\n border-radius: 0;\r\n cursor: pointer;\r\n }\r\n`;\r\nconst Item = styled.div `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 18px;\r\n padding: 14px 18px;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n ${ThemeSwitch({ groundforceColour: brand.primary.base })};\r\n background-color: var(--theme);\r\n color: ${brand.white};\r\n }\r\n`;\r\nexport default {\r\n Wrapper,\r\n Element,\r\n Dropdown,\r\n Item,\r\n};\r\n","var _g;\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 SvgClose(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 22.628 22.627\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 32606\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2\n }, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 3112\",\n d: \"M21.92.707L.707 21.92\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 3113\",\n d: \"M21.92 21.92L.707.707\"\n }))));\n}\n\nexport default __webpack_public_path__ + \"f628526dc59e3ff391c007673281196e.svg\";\nexport { SvgClose as ReactComponent };","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\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 SvgChevronUp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 13.953 7.977\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 460\",\n d: \"M1 6.562L6.562 1l5.562 5.562\",\n fill: \"none\",\n stroke: \"currentcolor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })));\n}\n\nexport default __webpack_public_path__ + \"a928fdb6535a9f40b45a03e9159e6636.svg\";\nexport { SvgChevronUp as ReactComponent };","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Grid } from '@helpers/grid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { ThemeSwitch } from '@helpers/theme';\r\nimport { ButtonStyles } from '@stories/Components/Buttons/Button/Button.styles';\r\nimport TabButtonStyles from '@stories/Components/Buttons/TabButton/TabButton.styles';\r\nimport { DocumentCardStyles } from '@stories/Components/Cards/DocumentCard/DocumentCard.styles';\r\nimport { WYSIWYGStyles } from '@stories/Components/Content/WYSIWYG/WYSIWYG.styles';\r\nimport SelectStyles from '@stories/Components/Forms/Select/Select.styles';\r\nimport ParagraphStyles from '@stories/Components/Global/Typography/Paragraph.styles';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.section `\r\n padding: 20px 0px;\r\n`;\r\nconst ContentGrid = styled(Grid.Default) `\r\n grid-row-gap: 20px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n grid-row-gap: 30px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-row-gap: 40px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-row-gap: 50px;\r\n }\r\n`;\r\nconst ContentWrapper = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n gap: 15px;\r\n\r\n grid-column: span 12;\r\n order: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: span 9;\r\n }\r\n\r\n ${ButtonStyles.Button} {\r\n width: fit-content;\r\n margin-right: auto;\r\n\r\n ${ButtonStyles.Inner} {\r\n padding: 0;\r\n }\r\n }\r\n`;\r\nconst ContentSection = styled.div `\r\n ${WYSIWYGStyles.Wrapper} {\r\n overflow: unset;\r\n\r\n li {\r\n ${ParagraphStyles.RegularStyles};\r\n margin-bottom: 5px;\r\n padding-left: 26px;\r\n position: relative;\r\n ${ThemeSwitch({ groundforceColour: brand.primary.base })}\r\n\r\n &:before {\r\n content: '';\r\n display: block;\r\n border-radius: 50%;\r\n width: 10px;\r\n height: 10px;\r\n background-color: var(--theme);\r\n position: absolute;\r\n top: 0.5em;\r\n left: 0px;\r\n }\r\n }\r\n }\r\n`;\r\nconst Filters = styled.div `\r\n grid-column: span 12;\r\n display: flex;\r\n gap: 15px;\r\n order: 2;\r\n overflow-x: auto;\r\n\r\n @media ${until(Device.MobileLarge)} {\r\n &::-webkit-scrollbar {\r\n width: 0;\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n gap: 25px;\r\n }\r\n\r\n ${SelectStyles.Wrapper}, ${SelectStyles.Element} {\r\n @media ${until(Device.MobileLarge)} {\r\n width: 100%;\r\n }\r\n }\r\n\r\n ${TabButtonStyles.Button} {\r\n min-width: max-content;\r\n }\r\n\r\n ${({ fromDevice }) => {\r\n if (!fromDevice) {\r\n return;\r\n }\r\n return css `\r\n display: none;\r\n\r\n @media ${from(fromDevice)} {\r\n display: flex;\r\n }\r\n `;\r\n}}\r\n\r\n ${({ untilDevice }) => {\r\n if (!untilDevice) {\r\n return;\r\n }\r\n return css `\r\n display: none;\r\n\r\n @media ${until(untilDevice)} {\r\n display: flex;\r\n }\r\n `;\r\n}}\r\n`;\r\nconst FiltersLoadMoreWrapper = styled.div `\r\n width: 100%;\r\n`;\r\nconst FiltersLoadMore = styled.button.attrs({ type: 'button' }) `\r\n ${ButtonReset};\r\n font-size: 18px;\r\n ${ThemeSwitch({ groundforceColour: brand.primary.dark })}\r\n color: var(--theme);\r\n ${fonts.DaxPro.Bold};\r\n`;\r\nconst Search = styled.div `\r\n grid-column: span 12;\r\n`;\r\nconst SearchWrapper = styled.div `\r\n position: relative;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n display: inline-block;\r\n width: 300px;\r\n }\r\n\r\n svg {\r\n position: absolute;\r\n right: 10px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: ${brand.grey.grey20};\r\n width: 25px;\r\n height: 21px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n width: 32px;\r\n height: 27px;\r\n }\r\n }\r\n`;\r\nconst Searchbox = styled.input `\r\n padding: 16px 40px 16px 0px;\r\n border: none;\r\n outline: none;\r\n background: ${brand.white};\r\n border-bottom: 1px solid ${brand.grey.grey20};\r\n color: ${brand.grey.grey20};\r\n font-size: 18px;\r\n ${fonts.DaxPro.Regular};\r\n width: 100%;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n padding: 16px 50px 20px 0px;\r\n }\r\n`;\r\nconst Results = styled(Grid.Inner) `\r\n grid-column: span 12;\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: span 9;\r\n }\r\n\r\n order: 4;\r\n\r\n ${DocumentCardStyles.Card} {\r\n grid-column: span 12;\r\n @media ${from(Device.MobileLarge)} {\r\n grid-column: span 6;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: span 4;\r\n }\r\n }\r\n`;\r\nconst ResultsFooter = styled.div `\r\n grid-column: span 12;\r\n text-align: center;\r\n margin-bottom: 30px;\r\n order: 5;\r\n`;\r\nconst ResultGrid = styled.div `\r\n grid-column: span 12;\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n gap: 24px;\r\n border-top: 2px solid ${brand.grey.grey89};\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n gap: 12px;\r\n border-top: none;\r\n }\r\n`;\r\nconst FilterWrapper = styled.div `\r\n position: relative;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n padding: 16px 0 0;\r\n grid-column: span 12;\r\n position: sticky;\r\n top: 0;\r\n z-index: 3;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: relative;\r\n grid-column: span 3;\r\n grid-row: span 2;\r\n z-index: 2;\r\n }\r\n`;\r\nconst NoResultsMsg = styled.div `\r\n grid-column: span 12;\r\n padding-top: 30px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n text-align: center;\r\n }\r\n`;\r\nconst ProductListingStyles = {\r\n Container,\r\n ContentGrid,\r\n ContentSection,\r\n ContentWrapper,\r\n Filters,\r\n FiltersLoadMoreWrapper,\r\n FiltersLoadMore,\r\n FilterWrapper,\r\n NoResultsMsg,\r\n Search,\r\n SearchWrapper,\r\n Searchbox,\r\n ResultGrid,\r\n Results,\r\n ResultsFooter,\r\n};\r\nexport default ProductListingStyles;\r\n","import { HydrateOption } from '@core/enums';\r\nimport { ThemeWrapper } from '@helpers/theme';\r\nimport { withQueryProvider } from '@hoc/withQueryProvider';\r\nimport withWidget from '@hoc/withWidget';\r\nimport useSiteSearch, { OrderType, SearchType } from '@hooks/useSiteSearch';\r\nimport { ReactComponent as SearchIcon } from '@img/icons/search.svg';\r\nimport Button, { LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport DocumentCard from '@stories/Components/Cards/DocumentCard/DocumentCard';\r\nimport { WYSIWYGStyles } from '@stories/Components/Content/WYSIWYG/WYSIWYG.styles';\r\nimport Filter from '@stories/Components/Filters/Filter/Filter';\r\nimport { ReactComponent as ChevronUp } from '@img/icons/chevron-up.svg';\r\nimport { ReactComponent as ChevronDown } from '@img/icons/chevron-down.svg';\r\nimport * as React from 'react';\r\nimport { ArrayParam, NumberParam, StringParam, useQueryParams, withDefault, } from 'use-query-params';\r\nimport S from './ProductListing.styles';\r\nconst ProductListing = (props) => {\r\n const [viewAll, setViewAll] = React.useState(false);\r\n const resultsRef = React.useRef(null);\r\n const [params, setParams] = useQueryParams({\r\n searchTerm: withDefault(StringParam, ''),\r\n pageIndex: withDefault(NumberParam, 1),\r\n selectedCategories: withDefault(ArrayParam, []),\r\n });\r\n const [isInitialRender, setIsInitialRender] = React.useState(true);\r\n const [disableRequest, setDisableRequest] = React.useState(true);\r\n React.useEffect(() => {\r\n if (isInitialRender) {\r\n setIsInitialRender(false);\r\n return;\r\n }\r\n setDisableRequest(false);\r\n }, [JSON.stringify(params)]);\r\n const search = useSiteSearch({\r\n request: {\r\n siteName: props.siteName,\r\n culture: props.culture,\r\n searchTerm: params.searchTerm ? params.searchTerm : '',\r\n searchType: SearchType.Products,\r\n applyFuzzy: false,\r\n searchSynonyms: false,\r\n pageIndex: params.pageIndex ? params.pageIndex : 1,\r\n pageSize: props.pageSize,\r\n resultsOrder: params.searchTerm.length > 0 ? OrderType.Relevance : OrderType.NodeOrder,\r\n searchPath: props.searchPath,\r\n selectedFilters: params.selectedCategories,\r\n isProductListing: true,\r\n documentId: props.documentId,\r\n matchOnAllSameCategoryItems: false,\r\n },\r\n disableRequest,\r\n initialData: props.initialData,\r\n });\r\n const parsedFilters = React.useMemo(() => {\r\n const mappedFilters = params.selectedCategories.reduce((acc, cur) => {\r\n const split = cur.split('|');\r\n if (acc[split[0]]) {\r\n acc[split[0]].push(split[1]);\r\n }\r\n else {\r\n acc[split[0]] = [split[1]];\r\n }\r\n return acc;\r\n }, {});\r\n return mappedFilters;\r\n }, [params.selectedCategories.length]);\r\n return (React.createElement(ThemeWrapper, { \"data-theme\": props.theme },\r\n React.createElement(S.Container, null,\r\n React.createElement(S.ContentGrid, null,\r\n props.wysiwygContent ? (React.createElement(S.ContentWrapper, null,\r\n React.createElement(S.ContentSection, null,\r\n React.createElement(WYSIWYGStyles.Wrapper, { dangerouslySetInnerHTML: { __html: props.wysiwygContent } }),\r\n props.wysiwygAdditionalContent && (React.createElement(WYSIWYGStyles.Wrapper, { dangerouslySetInnerHTML: { __html: props.wysiwygAdditionalContent }, \"data-hidden\": !viewAll }))),\r\n props.wysiwygAdditionalContent && (React.createElement(Button, { branding: \"textOnlyPrimary\", title: viewAll ? props.translations['gf.showless'] : props.translations['gf.showmore'], onClick: () => setViewAll(!viewAll), addon: viewAll ? React.createElement(ChevronUp, null) : React.createElement(ChevronDown, null), addonPosition: \"right\", hideTextMobile: false })))) : null,\r\n React.createElement(S.Search, null,\r\n React.createElement(S.SearchWrapper, null,\r\n React.createElement(S.Searchbox, { placeholder: props.searchPlaceholder || undefined, onChange: (e) => {\r\n setParams({ searchTerm: e.currentTarget.value, pageIndex: 1 }, 'pushIn');\r\n }, onKeyDown: (e) => {\r\n if (e.key.toLowerCase() === 'enter') {\r\n resultsRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n } }),\r\n React.createElement(SearchIcon, { onClick: () => resultsRef.current?.scrollIntoView({ behavior: 'smooth' }) }))),\r\n React.createElement(S.ResultGrid, null,\r\n props.filters?.items && props.filters.items?.length > 0 && (React.createElement(S.FilterWrapper, null,\r\n React.createElement(Filter, { ...props.filters, translations: props.translations, value: parsedFilters, onChange: (name, value) => {\r\n const filterValues = params.selectedCategories;\r\n const itemValue = `${name}|${value}`;\r\n const itemIndex = filterValues.indexOf(itemValue);\r\n if (itemIndex > -1) {\r\n filterValues.splice(itemIndex, 1);\r\n }\r\n else {\r\n filterValues.push(itemValue);\r\n }\r\n setParams({ selectedCategories: filterValues, pageIndex: 1 }, 'pushIn');\r\n }, onReset: () => {\r\n setParams({ selectedCategories: [], pageIndex: 1 }, 'pushIn');\r\n } }))),\r\n React.createElement(S.Results, { ref: resultsRef }, search.response?.results?.length ? (renderItems(search.response?.results)) : (React.createElement(S.NoResultsMsg, { dangerouslySetInnerHTML: { __html: props.translations['gf.noresults'] } })))),\r\n search.response?.canLoadMore ? (React.createElement(S.ResultsFooter, null,\r\n React.createElement(LinkButton, { href: `?pageIndex=${params.pageIndex + 1}`, branding: \"primaryAlt\", title: props.translations['gf.loadmore'], onClick: (e) => {\r\n e.preventDefault();\r\n if (!params.pageIndex) {\r\n setParams({ pageIndex: 1 }, 'pushIn');\r\n }\r\n else {\r\n setParams({ pageIndex: params.pageIndex + 1 }, 'pushIn');\r\n }\r\n } }))) : null))));\r\n function renderItems(items) {\r\n if (items === undefined) {\r\n return React.createElement(React.Fragment, null);\r\n }\r\n return (React.createElement(React.Fragment, null, items?.map((x, i) => (React.createElement(DocumentCard, { theme: props.theme, key: `${x.documentId}|${i}`, document: {\r\n title: x.documentName,\r\n description: x.summaryText,\r\n imageUrl: x.imageUrl,\r\n url: x.pageUrl,\r\n noticeTag: null,\r\n fullPaddingTop: true,\r\n } })))));\r\n }\r\n};\r\nexport default withWidget(withQueryProvider(ProductListing), 'ProductListing', {\r\n hydrate: HydrateOption.Always,\r\n});\r\n","import styled, { css } from 'styled-components';\r\nimport brand from './brand';\r\nimport { lighten, transparentize } from 'polished';\r\nexport const ThemeWrapper = styled.div `\r\n display: contents;\r\n`;\r\n/**\r\n * Injects the theme switching for Groundforce / TPA.\r\n * Make sure to not include this on a pseudoelement, as they can't query parents for some reason.\r\n */\r\nexport const ThemeSwitch = (options) => css `\r\n --theme: ${options.groundforceColour ?? brand.primary.base};\r\n --theme-hover: ${options.groundforceColourHover ?? lighten(0.1, brand.primary.base)};\r\n\r\n ${options.generateOpacity &&\r\n `--theme-half-opacity: ${transparentize(0.5, options.groundforceColour ?? brand.primary.base)};`}\r\n\r\n ${options.groundforcePseudoColourAlt && `--theme-alt: ${options.groundforcePseudoColourAlt};`}\r\n\r\n [data-theme='tpa'] &,\r\n &[data-theme='tpa'] {\r\n --theme: ${options.tpaColour ?? brand.tpa.base};\r\n --theme-hover: ${options.tpaColourHover ?? lighten(0.1, brand.tpa.base)};\r\n\r\n ${options.generateOpacity &&\r\n `--theme-half-opacity: ${transparentize(0.5, options.tpaColour ?? brand.tpa.base)};`}\r\n\r\n ${options.tpaPseudoColourAlt && `--theme-alt: ${options.tpaPseudoColourAlt};`}\r\n }\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 SvgChevron(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20.679 12.461\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 99\",\n d: \"M19.618 11.4l-9.279-9.279L1.06 11.4\",\n fill: \"none\"\n })));\n}\n\nexport default __webpack_public_path__ + \"056c9f699b39d0845225c962dec7c133.svg\";\nexport { SvgChevron as ReactComponent };","var _g;\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 SvgLinePattern(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 119 45\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Line pattern\",\n fill: \"none\",\n stroke: \"currentColor\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 16\",\n d: \"M198.312-368.656l-423.66 764.334M202.674-366.238l-423.66 764.334M207.036-363.82l-423.66 764.334M211.398-361.402l-423.66 764.334M215.761-358.984l-423.66 764.334M220.123-356.566l-423.66 764.334M224.485-354.148l-423.66 764.334M228.847-351.73l-423.66 764.334M233.209-349.312l-423.66 764.334M237.572-346.894l-423.66 764.334M241.934-344.476l-423.66 764.334M246.296-342.058l-423.66 764.334M250.658-339.64l-423.66 764.334M255.02-337.222l-423.66 764.334M259.382-334.804l-423.66 764.334M263.744-332.386l-423.66 764.334M268.107-329.968l-423.66 764.334M272.469-327.55l-423.66 764.334M276.831-325.132l-423.66 764.334M281.193-322.714l-423.66 764.334M285.555-320.296l-423.66 764.334M289.917-317.878l-423.66 764.334M294.28-315.46l-423.66 764.334M298.642-313.042l-423.66 764.334M303.004-310.624l-423.66 764.334M307.366-308.206l-423.66 764.334M311.728-305.788l-423.66 764.334M316.091-303.37l-423.66 764.334M320.453-300.952l-423.66 764.334M324.815-298.534L-98.845 465.8M329.177-296.116l-423.66 764.334M333.539-293.698l-423.66 764.334M337.901-291.28l-423.66 764.334M342.264-288.862l-423.66 764.334M346.625-286.444L-77.035 477.89M350.988-284.026l-423.66 764.334M355.35-281.608L-68.31 482.726M359.712-279.19l-423.66 764.334M364.074-276.772l-423.66 764.334M368.436-274.354L-55.224 489.98M372.799-271.936l-423.66 764.334M377.161-269.518l-423.66 764.334M381.523-267.1l-423.66 764.334M385.885-264.682l-423.66 764.334M390.247-262.264L-33.413 502.07M394.609-259.847l-423.66 764.334M398.972-257.428l-423.66 764.334M403.334-255.011l-423.66 764.334M407.696-252.592l-423.66 764.334M412.058-250.175l-423.66 764.334M416.42-247.756L-7.24 516.578M420.783-245.339L-2.877 518.995M425.145-242.92L1.485 521.414M429.507-240.503L5.847 523.831M433.869-238.084L10.209 526.25M438.231-235.667L14.571 528.667M442.593-233.248L18.933 531.086M446.955-230.831L23.295 533.503M451.318-228.413L27.658 535.921M455.68-225.995L32.02 538.339M460.042-223.577L36.382 540.757M464.404-221.159L40.744 543.175M468.766-218.741L45.106 545.593M473.128-216.323L49.468 548.011M477.491-213.905L53.831 550.429M481.853-211.487L58.193 552.847M486.215-209.069L62.555 555.265M490.577-206.651L66.917 557.683M494.939-204.233L71.279 560.101M499.302-201.815L75.642 562.519M503.664-199.397L80.004 564.937M508.026-196.979L84.366 567.355M512.388-194.561L88.728 569.773M516.75-192.143L93.09 572.191M521.112-189.725L97.452 574.609M525.474-187.307l-423.66 764.334M529.836-184.889l-423.66 764.334M534.199-182.471l-423.66 764.334M538.561-180.053l-423.66 764.334M542.923-177.635l-423.66 764.334M547.285-175.217l-423.66 764.334M551.647-172.799l-423.66 764.334M556.01-170.381L132.35 593.953M560.372-167.963l-423.66 764.334M564.734-165.545l-423.66 764.334M569.096-163.127l-423.66 764.334M573.458-160.709l-423.66 764.334M577.821-158.291l-423.66 764.334M582.183-155.873l-423.66 764.334M586.545-153.455l-423.66 764.334M590.907-151.037l-423.66 764.334M595.269-148.619l-423.66 764.334M599.631-146.201l-423.66 764.334M603.993-143.783l-423.66 764.334M608.355-141.365l-423.66 764.334M612.718-138.947l-423.66 764.334M617.08-136.529L193.42 627.805M621.442-134.111l-423.66 764.334M625.804-131.693l-423.66 764.334M630.166-129.275l-423.66 764.334M634.529-126.857l-423.66 764.334M638.891-124.439l-423.66 764.334M643.253-122.021l-423.66 764.334M647.615-119.603l-423.66 764.334M651.977-117.185l-423.66 764.334M656.339-114.767l-423.66 764.334M660.702-112.349l-423.66 764.334M665.064-109.931l-423.66 764.334M669.426-107.513l-423.66 764.334M673.788-105.095l-423.66 764.334M678.15-102.677L254.49 661.657M682.513-100.259l-423.66 764.334M686.874-97.841l-423.66 764.334M691.237-95.423l-423.66 764.334M695.599-93.005l-423.66 764.334M699.961-90.587l-423.66 764.334M704.323-88.169l-423.66 764.334M708.685-85.751l-423.66 764.334M713.047-83.333l-423.66 764.334M717.41-80.915L293.75 683.419M721.772-78.497l-423.66 764.334M726.134-76.079l-423.66 764.334M730.496-73.661l-423.66 764.334M734.858-71.243l-423.66 764.334M739.221-68.825l-423.66 764.334M743.583-66.407l-423.66 764.334M747.945-63.99l-423.66 764.334M752.307-61.571l-423.66 764.334M756.669-59.153l-423.66 764.334M761.032-56.735l-423.66 764.334M765.394-54.318l-423.66 764.334M769.756-51.899l-423.66 764.334M774.118-49.481l-423.66 764.334M778.48-47.064L354.82 717.27M782.842-44.646l-423.66 764.334M787.204-42.227l-423.66 764.334M791.566-39.809l-423.66 764.334M795.929-37.392l-423.66 764.334M800.291-34.974L376.631 729.36M804.653-32.556l-423.66 764.334M809.015-30.137l-423.66 764.334M813.377-27.72l-423.66 764.334M817.74-25.302L394.08 739.032\",\n strokeWidth: 1.00042\n }))));\n}\n\nexport default __webpack_public_path__ + \"32774766b3243253aabbc97bbe71ff0a.svg\";\nexport { SvgLinePattern as ReactComponent };","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Device, until } from '@helpers/media';\r\nimport { ReactComponent as SvgHoverLines } from '@img/line-pattern.svg';\r\nimport styled, { css } from 'styled-components';\r\nimport { ThemeSwitch } from '@helpers/theme';\r\nconst Text = styled.div ``;\r\nconst HoverEffect = styled(SvgHoverLines) `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n transform: translate(0, 0);\r\n transition: transform 0.3s;\r\n\r\n [data-theme='textOnly'] & {\r\n display: none;\r\n }\r\n [data-theme='textOnlyPrimary'] & {\r\n display: none;\r\n }\r\n [data-theme='primary'] &,\r\n &[data-theme='primary'] {\r\n ${ThemeSwitch({ groundforceColour: brand.primary.base })};\r\n color: var(--theme);\r\n }\r\n [data-theme='primaryAlt'] &,\r\n &[data-theme='primaryAlt'] {\r\n ${ThemeSwitch({ groundforceColour: brand.primary.alt })};\r\n color: var(--theme);\r\n }\r\n [data-theme='secondary'] &,\r\n &[data-theme='secondary'] {\r\n color: ${brand.accent.orange};\r\n }\r\n [data-theme='white'] &,\r\n &[data-theme='white'] {\r\n color: ${brand.white};\r\n }\r\n [data-theme='black'] &,\r\n &[data-theme='black'] {\r\n color: ${brand.black};\r\n }\r\n [data-theme='grey'] &,\r\n &[data-theme='grey'] {\r\n color: ${brand.black};\r\n }\r\n`;\r\nconst PrimaryStyles = css `\r\n ${ThemeSwitch({ groundforceColour: brand.primary.base, groundforceColourHover: '#a2b952' })};\r\n color: ${brand.white};\r\n background-color: var(--theme);\r\n\r\n &:hover {\r\n background-color: var(--theme-hover);\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst PrimaryAltStyles = css `\r\n ${ThemeSwitch({ groundforceColour: brand.primary.alt, groundforceColourHover: '#a2b952' })};\r\n color: ${brand.white};\r\n background-color: var(--theme);\r\n\r\n &:hover {\r\n background-color: var(--theme-hover);\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst SecondaryStyles = css `\r\n background-color: ${brand.accent.orange};\r\n color: ${brand.white};\r\n\r\n &:focus {\r\n background-color: ${brand.accent.orange};\r\n color: ${brand.white};\r\n }\r\n\r\n &:hover {\r\n border-color: ${brand.black};\r\n background-color: ${brand.black};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.grey.grey55};\r\n }\r\n`;\r\nconst WhiteStyles = css `\r\n background-color: ${brand.white};\r\n color: ${brand.black};\r\n border: 1px solid ${brand.white};\r\n\r\n &:hover {\r\n border-color: ${brand.white};\r\n background-color: ${brand.white};\r\n color: ${brand.black};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.black};\r\n }\r\n`;\r\nconst BlackStyles = css `\r\n background-color: ${brand.grey.grey20};\r\n color: ${brand.white};\r\n\r\n &:hover {\r\n border-color: ${brand.grey.grey44};\r\n background-color: ${brand.grey.grey44};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst GreyStyles = css `\r\n background-color: ${brand.grey.grey89};\r\n color: ${brand.black};\r\n\r\n &:hover {\r\n border-color: ${brand.grey.grey76};\r\n background-color: ${brand.grey.grey76};\r\n color: ${brand.black};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.black};\r\n }\r\n`;\r\nconst TextOnlyStyles = css `\r\n border: 1px solid transparent;\r\n background: none;\r\n color: ${brand.black};\r\n\r\n &:hover {\r\n border-color: ${brand.black};\r\n background-color: ${brand.black};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst TextOnlyPrimaryStyles = css `\r\n ${ThemeSwitch({\r\n groundforceColour: brand.primary.alt,\r\n groundforceColourHover: brand.primary.base,\r\n})}\r\n ${TextOnlyStyles};\r\n color: var(--theme);\r\n\r\n &:hover {\r\n border-color: transparent;\r\n background-color: transparent;\r\n color: var(--theme-hover);\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: var(--theme-hover);\r\n }\r\n`;\r\nconst IconLeft = css `\r\n padding-right: 12px;\r\n\r\n @media ${until(Device.DesktopSmall)} {\r\n padding-right: 6px;\r\n }\r\n`;\r\nconst IconRight = css `\r\n padding-left: 15px;\r\n\r\n @media ${until(Device.DesktopSmall)} {\r\n padding-left: 6px;\r\n }\r\n`;\r\nconst hideText = css `\r\n ${Text} {\r\n @media ${until(Device.DesktopSmall)} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst Icon = styled.div `\r\n display: inline-block;\r\n vertical-align: middle;\r\n\r\n ${({ position }) => {\r\n switch (position) {\r\n case 'left':\r\n return IconLeft;\r\n case 'right':\r\n return IconRight;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n svg {\r\n vertical-align: middle;\r\n max-height: 24px;\r\n width: 22px;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n position: relative;\r\n padding: 11px 14px;\r\n\r\n [data-theme='textOnly'] & {\r\n ${TextOnlyStyles}\r\n }\r\n [data-theme='textOnlyPrimary'] & {\r\n ${TextOnlyPrimaryStyles}\r\n }\r\n [data-theme='primary'] & {\r\n ${PrimaryStyles}\r\n }\r\n [data-theme='primaryAlt'] & {\r\n ${PrimaryAltStyles}\r\n }\r\n [data-theme='secondary'] & {\r\n ${SecondaryStyles}\r\n }\r\n [data-theme='white'] & {\r\n ${WhiteStyles}\r\n }\r\n [data-theme='black'] & {\r\n ${BlackStyles}\r\n }\r\n [data-theme='grey'] & {\r\n ${GreyStyles}\r\n }\r\n`;\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n display: inline-block;\r\n padding: 0;\r\n position: relative;\r\n transition: background-color 0.3s, border-color 0.3s, opacity 100ms;\r\n user-select: none;\r\n background-color: transparent;\r\n border: none;\r\n\r\n &:hover,\r\n &:focus {\r\n ${HoverEffect} {\r\n transform: translate(10px, 10px);\r\n }\r\n }\r\n\r\n &:disabled {\r\n user-select: none;\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n }\r\n\r\n ${Text} {\r\n ${fonts.DaxPro.Bold};\r\n font-size: 18px;\r\n line-height: 24px;\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n\r\n ${({ branding }) => {\r\n switch (branding) {\r\n case 'textOnly':\r\n return TextOnlyStyles;\r\n case 'textOnlyPrimary':\r\n return TextOnlyPrimaryStyles;\r\n case 'primary':\r\n return PrimaryStyles;\r\n case 'secondary':\r\n return SecondaryStyles;\r\n case 'white':\r\n return WhiteStyles;\r\n case 'black':\r\n return BlackStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n ${({ hoverColour }) => {\r\n switch (hoverColour) {\r\n case 'primary':\r\n return css `\r\n ${ThemeSwitch({ groundforceColour: brand.primary.alt })}\r\n\r\n ${HoverEffect} {\r\n color: var(--theme) !important;\r\n }\r\n\r\n ${Inner} {\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\r\n }\r\n\r\n &:hover {\r\n ${Inner} {\r\n background-color: var(--theme) !important;\r\n border-color: var(--theme) !important;\r\n }\r\n }\r\n `;\r\n case 'black':\r\n return css `\r\n ${HoverEffect} {\r\n color: ${brand.black} !important;\r\n }\r\n\r\n ${Inner} {\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\r\n }\r\n\r\n &:hover {\r\n ${Inner} {\r\n background-color: ${brand.black} !important;\r\n border-color: ${brand.black} !important;\r\n }\r\n }\r\n `;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n ${({ hideTextMobile }) => {\r\n if (hideTextMobile) {\r\n return hideText;\r\n }\r\n}}\r\n`;\r\nexport const ButtonStyles = {\r\n Button,\r\n HoverEffect,\r\n Icon,\r\n Inner,\r\n Text,\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 SvgSelectArrowUp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 15.438,\n height: 9.133\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 367\",\n d: \"M.707 8.426l7.012-7.012 7.012 7.012\",\n fill: \"none\",\n stroke: \"#333\",\n strokeWidth: 2\n })));\n}\n\nexport default __webpack_public_path__ + \"af12012180f17cb15c081e8255da89f9.svg\";\nexport { SvgSelectArrowUp as ReactComponent };","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n"],"sourceRoot":""}