{"version":3,"file":"index-1e565495.js","sources":["../../../FE_DEV/node_modules/.pnpm/react-loading-skeleton@3.3.1_react@18.2.0/node_modules/react-loading-skeleton/dist/index.js","../../../FE_DEV/src/containers/headerSearch/index.tsx"],"sourcesContent":["'use client';\nimport React from 'react';\n\n/**\n * @internal\n */\nconst SkeletonThemeContext = React.createContext({});\n\n/* eslint-disable react/no-array-index-key */\nconst defaultEnableAnimation = true;\n// For performance & cleanliness, don't add any inline styles unless we have to\nfunction styleOptionsToCssProperties({ baseColor, highlightColor, width, height, borderRadius, circle, direction, duration, enableAnimation = defaultEnableAnimation, }) {\n const style = {};\n if (direction === 'rtl')\n style['--animation-direction'] = 'reverse';\n if (typeof duration === 'number')\n style['--animation-duration'] = `${duration}s`;\n if (!enableAnimation)\n style['--pseudo-element-display'] = 'none';\n if (typeof width === 'string' || typeof width === 'number')\n style.width = width;\n if (typeof height === 'string' || typeof height === 'number')\n style.height = height;\n if (typeof borderRadius === 'string' || typeof borderRadius === 'number')\n style.borderRadius = borderRadius;\n if (circle)\n style.borderRadius = '50%';\n if (typeof baseColor !== 'undefined')\n style['--base-color'] = baseColor;\n if (typeof highlightColor !== 'undefined')\n style['--highlight-color'] = highlightColor;\n return style;\n}\nfunction Skeleton({ count = 1, wrapper: Wrapper, className: customClassName, containerClassName, containerTestId, circle = false, style: styleProp, ...originalPropsStyleOptions }) {\n var _a, _b, _c;\n const contextStyleOptions = React.useContext(SkeletonThemeContext);\n const propsStyleOptions = { ...originalPropsStyleOptions };\n // DO NOT overwrite style options from the context if `propsStyleOptions`\n // has properties explicity set to undefined\n for (const [key, value] of Object.entries(originalPropsStyleOptions)) {\n if (typeof value === 'undefined') {\n delete propsStyleOptions[key];\n }\n }\n // Props take priority over context\n const styleOptions = {\n ...contextStyleOptions,\n ...propsStyleOptions,\n circle,\n };\n // `styleProp` has the least priority out of everything\n const style = {\n ...styleProp,\n ...styleOptionsToCssProperties(styleOptions),\n };\n let className = 'react-loading-skeleton';\n if (customClassName)\n className += ` ${customClassName}`;\n const inline = (_a = styleOptions.inline) !== null && _a !== void 0 ? _a : false;\n const elements = [];\n const countCeil = Math.ceil(count);\n for (let i = 0; i < countCeil; i++) {\n let thisStyle = style;\n if (countCeil > count && i === countCeil - 1) {\n // count is not an integer and we've reached the last iteration of\n // the loop, so add a \"fractional\" skeleton.\n //\n // For example, if count is 3.5, we've already added 3 full\n // skeletons, so now we add one more skeleton that is 0.5 times the\n // original width.\n const width = (_b = thisStyle.width) !== null && _b !== void 0 ? _b : '100%'; // 100% is the default since that's what's in the CSS\n const fractionalPart = count % 1;\n const fractionalWidth = typeof width === 'number'\n ? width * fractionalPart\n : `calc(${width} * ${fractionalPart})`;\n thisStyle = { ...thisStyle, width: fractionalWidth };\n }\n const skeletonSpan = (React.createElement(\"span\", { className: className, style: thisStyle, key: i }, \"\\u200C\"));\n if (inline) {\n elements.push(skeletonSpan);\n }\n else {\n // Without the
, the skeleton lines will all run together if\n // `width` is specified\n elements.push(React.createElement(React.Fragment, { key: i },\n skeletonSpan,\n React.createElement(\"br\", null)));\n }\n }\n return (React.createElement(\"span\", { className: containerClassName, \"data-testid\": containerTestId, \"aria-live\": \"polite\", \"aria-busy\": (_c = styleOptions.enableAnimation) !== null && _c !== void 0 ? _c : defaultEnableAnimation }, Wrapper\n ? elements.map((el, i) => React.createElement(Wrapper, { key: i }, el))\n : elements));\n}\n\nfunction SkeletonTheme({ children, ...styleOptions }) {\n return (React.createElement(SkeletonThemeContext.Provider, { value: styleOptions }, children));\n}\n\nexport { SkeletonTheme, Skeleton as default };\n","import { useEffect, useState, createRef } from 'react'\nimport axios from 'axios'\nimport { SearchResponseModel } from '@/types/backend'\nimport Skeleton from 'react-loading-skeleton'\nimport 'react-loading-skeleton/dist/skeleton.css'\n\n\nconst pageCountEndpoint = 'Umbraco/api/Search/saveSearchPageCount';\n\nexport const HeaderSearch = () => {\n\n\tconst [isSearchOpen, setIsSearchOpen] = useState(false)\n\tconst [searchTerm, setSearchTerm] = useState('')\n\tconst [searchResults, setSearchResults] = useState([])\n\tconst [isLoading, setIsLoading] = useState(false)\n\tconst rootRef = createRef()\n\n\tconst getSearchResults = async (query: string) => {\n\t\tif (isLoading) { return; }\n\n\t\tsetIsLoading(true);\n\t\ttry {\n\t\t\tlet endpoint = '';\n\n\t\t\tif (query.trim() === '') {\n\t\t\t\tendpoint = '/Umbraco/api/Search/GetTopPages';\n\t\t\t} else {\n\t\t\t\tendpoint = '/Umbraco/api/Search/SearchByText';\n\t\t\t}\n\n\t\t\tconst requestBody = query.trim() === '' ? null : {\n\t\t\tQuery: query,\n\t\t\tFilters: [],\n\t\t\tCategories: []\n\t\t\t};\n\n\t\t\tconst requestConfig = {\n\t\t\tmethod: query.trim() === '' ? 'GET' : 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json'\n\t\t\t},\n\t\t\tbody: query.trim() === '' ? null : JSON.stringify(requestBody)\n\t\t\t};\n\n\t\t\tconst response = await fetch(endpoint, requestConfig);\n\n\t\t\tconst responseBody = await response.json();\n\t\t\tsetSearchResults(responseBody);\n\t\t\tsetIsLoading(false);\n\t\t} catch (error: any) {\n\t\t\tsetIsLoading(false);\n\t\t\tconsole.log(error.message);\n\t\t}\n\t};\n\n\tconst handleItemClick = async (\n\t\tevt: React.MouseEvent,\n\t\turl: string,\n\t\tid: number,\n\t) => {\n\t\tevt.preventDefault();\n\n\t\tconst baseUrl = window.location.origin\n\t\tconst requestUrl = `${baseUrl}/${pageCountEndpoint}`;\n\n\t\tconst response = await axios.post(requestUrl, { pageId: id });\n\n\t\tif (response.data) {\n\t\t\twindow.location.href = url;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif(isSearchOpen) {\n\t\t\tdocument.body.classList.add('overflow-hidden')\n\t\t\trootRef.current?.closest('.group')?.classList.add('header-search-open')\n\t\t} else {\n\t\t\tdocument.body.classList.remove('overflow-hidden')\n\t\t\trootRef.current?.closest('.group')?.classList.remove('header-search-open')\n\t\t}\n\t}, [isSearchOpen])\n\n\tuseEffect(() => {\n\t\tif (searchTerm.length > 0) {\n\t\t\tconst getData = setTimeout(() => {\n\t\t\t\tgetSearchResults(searchTerm);\n\t\t\t}, 400);\n\n\t\t\treturn () => clearTimeout(getData);\n\t\t} else {\n\t\t\t// If searchTerm is empty, call the endpoint for top pages\n\t\t\tgetSearchResults('');\n\t\t}\n\t}, [searchTerm]);\n\n\n\treturn (\n\t\t
\n\t\t\t setIsSearchOpen(!isSearchOpen)}\n\t\t\t>\n\t\t\t\t{isSearchOpen ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t{isSearchOpen && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetSearchTerm(e.currentTarget.value)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{searchTerm.length > 0 &&\n\t\t\t\t\t\tsearchResults.length == 0 &&\n\t\t\t\t\t\t!isLoading ? (\n\t\t\t\t\t\t\t
No results found
\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\t\t\t\t// Render skeleton components when loading\n\t\t\t\t\t\t\t\t\tArray.from({ length: 4 }).map((_, index) => (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\tsearchResults.slice(0, 4).map((item) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\thandleItemClick(e, item.url, item.id)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{searchResults.length > 0 && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tSee all results\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t)\n}\n\nexport default HeaderSearch\n"],"names":["SkeletonThemeContext","React","defaultEnableAnimation","styleOptionsToCssProperties","baseColor","highlightColor","width","height","borderRadius","circle","direction","duration","enableAnimation","style","Skeleton","count","Wrapper","customClassName","containerClassName","containerTestId","styleProp","originalPropsStyleOptions","_a","_b","_c","contextStyleOptions","propsStyleOptions","key","value","styleOptions","className","inline","elements","countCeil","i","thisStyle","fractionalPart","fractionalWidth","skeletonSpan","el","pageCountEndpoint","HeaderSearch","isSearchOpen","setIsSearchOpen","useState","searchTerm","setSearchTerm","searchResults","setSearchResults","isLoading","setIsLoading","rootRef","createRef","getSearchResults","query","endpoint","requestBody","requestConfig","responseBody","error","handleItemClick","evt","url","id","requestUrl","axios","useEffect","_d","getData","jsxs","jsx","Fragment","_","index","item","e"],"mappings":"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","x_google_ignoreList":[0]}