{"version":3,"file":"brand.bundle.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/create fake namespace object","webpack:///webpack/runtime/load script","webpack:///webpack/runtime/css loading","webpack:///./node_modules/wouter/esm/index.js","webpack:///./components/brand/hooks/useCategories.tsx","webpack:///./components/brand/Components/BrandsCategories.tsx","webpack:///./components/brand/Components/BrandsLegend.tsx","webpack:///./components/brand/Components/BrandsList.tsx","webpack:///./components/brand/Components/BrandsSearch.tsx","webpack:///./components/brand/Components/SearchList.tsx","webpack:///./components/brand/hooks/useBrands.tsx","webpack:///./components/brand/getBaseUrl.tsx","webpack:///./components/brand/Components/BrandsDisplay.tsx","webpack:///./components/brand/Brand.tsx","webpack:///./components/brand/index.tsx","webpack:///external var \"jQuery\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/runtimeId","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"tsc-react:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t8362: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"7867\":1,\"8652\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","import { parse } from 'regexparam';\nimport { useBrowserLocation, useSearch as useSearch$1 } from './use-browser-location.js';\nimport { createContext, forwardRef, useEvent, isValidElement, cloneElement, createElement, useContext, useRef, useIsomorphicLayoutEffect, Fragment } from './react-deps.js';\n\n/*\n * Transforms `path` into its relative `base` version\n * If base isn't part of the path provided returns absolute path e.g. `~/app`\n */\nconst relativePath = (base = \"\", path) =>\n !path.toLowerCase().indexOf(base.toLowerCase())\n ? path.slice(base.length) || \"/\"\n : \"~\" + path;\n\nconst absolutePath = (to, base = \"\") =>\n to[0] === \"~\" ? to.slice(1) : base + to;\n\n/*\n * Removes leading question mark\n */\nconst stripQm = (str) => (str[0] === \"?\" ? str.slice(1) : str);\n\n/*\n * decodes escape sequences such as %20\n */\nconst unescape = (str) => {\n try {\n return decodeURI(str);\n } catch (_e) {\n // fail-safe mode: if string can't be decoded do nothing\n return str;\n }\n};\n\n/*\n * Router and router context. Router is a lightweight object that represents the current\n * routing options: how location is managed, base path etc.\n *\n * There is a default router present for most of the use cases, however it can be overridden\n * via the component.\n */\n\nconst defaultRouter = {\n hook: useBrowserLocation,\n searchHook: useSearch$1,\n parser: parse,\n base: \"\",\n // this option is used to override the current location during SSR\n ssrPath: undefined,\n ssrSearch: undefined,\n};\n\nconst RouterCtx = createContext(defaultRouter);\n\n// gets the closest parent router from the context\nconst useRouter = () => useContext(RouterCtx);\n\n/**\n * Parameters context. Used by `useParams()` to get the\n * matched params from the innermost `Route` component.\n */\n\nconst ParamsCtx = createContext({});\n\nconst useParams = () => useContext(ParamsCtx);\n\n/*\n * Part 1, Hooks API: useRoute and useLocation\n */\n\n// Internal version of useLocation to avoid redundant useRouter calls\n\nconst useLocationFromRouter = (router) => {\n const [location, navigate] = router.hook(router);\n\n // the function reference should stay the same between re-renders, so that\n // it can be passed down as an element prop without any performance concerns.\n // (This is achieved via `useEvent`.)\n return [\n unescape(relativePath(router.base, location)),\n useEvent((to, navOpts) => navigate(absolutePath(to, router.base), navOpts)),\n ];\n};\n\nconst useLocation = () => useLocationFromRouter(useRouter());\n\nconst useSearch = () => {\n const router = useRouter();\n return unescape(stripQm(router.searchHook(router)));\n};\n\nconst matchRoute = (parser, route, path, loose) => {\n // when parser is in \"loose\" mode, `$base` is equal to the\n // first part of the route that matches the pattern\n // (e.g. for pattern `/a/:b` and path `/a/1/2/3` the `$base` is `a/1`)\n // we use this for route nesting\n const { pattern, keys } = parser(route || \"*\", loose);\n const [$base, ...matches] = pattern.exec(path) || [];\n\n return $base !== undefined\n ? [\n true,\n\n // an object with parameters matched, e.g. { foo: \"bar\" } for \"/:foo\"\n // we \"zip\" two arrays here to construct the object\n // [\"foo\"], [\"bar\"] → { foo: \"bar\" }\n Object.fromEntries(keys.map((key, i) => [key, matches[i]])),\n\n // the third value if only present when parser is in \"loose\" mode,\n // so that we can extract the base path for nested routes\n ...(loose ? [$base] : []),\n ]\n : [false, null];\n};\n\nconst useRoute = (pattern) =>\n matchRoute(useRouter().parser, pattern, useLocation()[0]);\n\n/*\n * Part 2, Low Carb Router API: Router, Route, Link, Switch\n */\n\nconst Router = ({ children, ...props }) => {\n // the router we will inherit from - it is the closest router in the tree,\n // unless the custom `hook` is provided (in that case it's the default one)\n const parent_ = useRouter();\n const parent = props.hook ? defaultRouter : parent_;\n\n // holds to the context value: the router object\n let value = parent;\n\n // what is happening below: to avoid unnecessary rerenders in child components,\n // we ensure that the router object reference is stable, unless there are any\n // changes that require reload (e.g. `base` prop changes -> all components that\n // get the router from the context should rerender, even if the component is memoized).\n // the expected behaviour is:\n //\n // 1) when the resulted router is no different from the parent, use parent\n // 2) if the custom `hook` prop is provided, we always inherit from the\n // default router instead. this resets all previously overridden options.\n // 3) when the router is customized here, it should stay stable between renders\n let ref = useRef({}),\n prev = ref.current,\n next = prev;\n\n for (let k in parent) {\n const option =\n k === \"base\"\n ? /* base is special case, it is appended to the parent's base */\n parent[k] + (props[k] || \"\")\n : props[k] || parent[k];\n\n if (prev === next && option !== next[k]) {\n ref.current = next = { ...next };\n }\n\n next[k] = option;\n\n // the new router is no different from the parent, use parent\n if (option !== parent[k]) value = next;\n }\n\n return createElement(RouterCtx.Provider, { value, children });\n};\n\nconst h_route = ({ children, component }, params) => {\n // React-Router style `component` prop\n if (component) return createElement(component, { params });\n\n // support render prop or plain children\n return typeof children === \"function\" ? children(params) : children;\n};\n\nconst Route = ({ path, nest, match, ...renderProps }) => {\n const router = useRouter();\n const [location] = useLocationFromRouter(router);\n\n const [matches, params, base] =\n // `match` is a special prop to give up control to the parent,\n // it is used by the `Switch` to avoid double matching\n match ?? matchRoute(router.parser, path, location, nest);\n\n if (!matches) return null;\n\n const children = base\n ? createElement(Router, { base }, h_route(renderProps, params))\n : h_route(renderProps, params);\n\n return createElement(ParamsCtx.Provider, { value: params, children });\n};\n\nconst Link = forwardRef((props, ref) => {\n const router = useRouter();\n const [, navigate] = useLocationFromRouter(router);\n\n const {\n to,\n href: _href = to,\n onClick: _onClick,\n asChild,\n children,\n /* eslint-disable no-unused-vars */\n replace /* ignore nav props */,\n state /* ignore nav props */,\n /* eslint-enable no-unused-vars */\n ...restProps\n } = props;\n\n const onClick = useEvent((event) => {\n // ignores the navigation when clicked using right mouse button or\n // by holding a special modifier key: ctrl, command, win, alt, shift\n if (\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n\n _onClick && _onClick(event); // TODO: is it safe to use _onClick?.(event)\n if (!event.defaultPrevented) {\n event.preventDefault();\n navigate(_href, props);\n }\n });\n\n // handle nested routers and absolute paths\n const href = _href[0] === \"~\" ? _href.slice(1) : router.base + _href;\n\n return asChild && isValidElement(children)\n ? cloneElement(children, { href, onClick })\n : createElement(\"a\", { ...restProps, href, onClick, children, ref });\n});\n\nconst flattenChildren = (children) => {\n return Array.isArray(children)\n ? [].concat(\n ...children.map((c) =>\n c && c.type === Fragment\n ? flattenChildren(c.props.children)\n : flattenChildren(c)\n )\n )\n : [children];\n};\n\nconst Switch = ({ children, location }) => {\n const router = useRouter();\n const [originalLocation] = useLocationFromRouter(router);\n\n for (const element of flattenChildren(children)) {\n let match = 0;\n\n if (\n isValidElement(element) &&\n // we don't require an element to be of type Route,\n // but we do require it to contain a truthy `path` prop.\n // this allows to use different components that wrap Route\n // inside of a switch, for example .\n (match = matchRoute(\n router.parser,\n element.props.path,\n location || originalLocation,\n element.props.nest\n ))[0]\n )\n return cloneElement(element, { match });\n }\n\n return null;\n};\n\nconst Redirect = (props) => {\n const { to, href = to } = props;\n const [, navigate] = useLocation();\n const redirect = useEvent(() => navigate(to || href, props));\n\n // redirect is guaranteed to be stable since it is returned from useEvent\n useIsomorphicLayoutEffect(() => {\n redirect();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport { Link, Redirect, Route, Router, Switch, useLocation, useParams, useRoute, useRouter, useSearch };\n","import { useQuery } from '@tanstack/react-query';\r\n\r\nimport http from '@/tscapi/service/httpservice';\r\nimport { Cookie } from '@/tscapi/utils/cookie';\r\n\r\nexport const useCategories = () => {\r\n const cookie: Cookie = new Cookie();\r\n return useQuery({\r\n queryKey: ['categories', cookie.Language],\r\n queryFn: fetchCategories,\r\n useErrorBoundary: true,\r\n retry: false,\r\n refetchOnWindowFocus: false,\r\n });\r\n\r\n async function fetchCategories() {\r\n const base = '/api/v2/';\r\n const lang = cookie.Language.substring(0, 2) || 'en';\r\n try {\r\n const response = await http.get(`${base}${lang}/shopbycategory`);\r\n return response.data.MerchandisingZones ?? [];\r\n } catch (error) {\r\n console.log('Error getting Categories');\r\n throw new Error('Error getting Categories');\r\n }\r\n }\r\n};\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport { useSelect } from 'downshift';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'wouter';\r\n\r\nimport { useCategories } from '../hooks/useCategories';\r\n\r\nconst BrandsCategories = ({ onSelect }) => {\r\n const { data: categoriesData, isError } = useCategories();\r\n const [, setLocation] = useLocation();\r\n\r\n let category = window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1);\r\n if (category === 'brand') {\r\n category = '';\r\n }\r\n\r\n const defaultItem = { Title: 'All Categories', NavigationUrlSlug: '' };\r\n const items = [defaultItem, ...(categoriesData || [])];\r\n const [selectedItem, setSelectedItem] = useState(defaultItem);\r\n\r\n useEffect(() => {\r\n if (category) {\r\n const item = items.find((item) => item.NavigationUrlSlug === category) || defaultItem;\r\n setSelectedItem(item);\r\n onSelect(category);\r\n }\r\n }, [category, onSelect, items, defaultItem]);\r\n\r\n const handleSelectedItemChange = (changes) => {\r\n setSelectedItem(changes.selectedItem);\r\n if (changes.selectedItem.Title === 'All Brands') {\r\n setLocation(`/pages/brand`);\r\n onSelect('');\r\n } else {\r\n const dimensionValue = encodeURIComponent(changes.selectedItem.NavigationUrlSlug);\r\n setLocation(`/pages/brand/${dimensionValue}`);\r\n onSelect(changes.selectedItem.NavigationUrlSlug);\r\n }\r\n };\r\n\r\n const handleKeyDown = (event) => {\r\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n const { isOpen, getToggleButtonProps, getMenuProps, highlightedIndex, getItemProps, getLabelProps } = useSelect({\r\n items,\r\n selectedItem,\r\n onSelectedItemChange: handleSelectedItemChange,\r\n onStateChange: ({ highlightedIndex }) => {\r\n const element = document.querySelector(`[data-highlighted-index=\"${highlightedIndex}\"]`);\r\n if (element) {\r\n element.scrollIntoView({ block: 'nearest' });\r\n }\r\n },\r\n });\r\n\r\n if (isError) return
Error loading categories.
;\r\n\r\n return (\r\n
\r\n \r\n {selectedItem.Title === 'All Categories' ? 'All Brands' : selectedItem.Title}\r\n \r\n
\r\n \r\n Filter by category\r\n \r\n
\r\n \r\n {selectedItem.Title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isOpen &&\r\n items.map((item, index) => (\r\n \r\n {item.Title}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default BrandsCategories;\r\n","import React, { useMemo } from 'react';\r\n\r\nconst BrandsLegend = ({ brandsData }) => {\r\n const legendItems = useMemo(() => {\r\n const items =\r\n brandsData\r\n ?.reduce((acc, brand) => {\r\n const normalizedName = brand.Name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const firstChar = /^[A-Za-z]/.test(normalizedName[0]) ? normalizedName[0].toUpperCase() : '#';\r\n if (!acc.includes(firstChar)) {\r\n acc.push(firstChar);\r\n }\r\n return acc;\r\n }, [])\r\n .sort() || [];\r\n\r\n const hashIndex = items.indexOf('#');\r\n if (hashIndex !== -1) {\r\n items.splice(hashIndex, 1);\r\n items.push('#');\r\n }\r\n\r\n return items;\r\n }, [brandsData]);\r\n\r\n const handleClick = (item) => {\r\n const element = document.getElementById(`group-${item}`);\r\n if (element) {\r\n element.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {legendItems.map((item) => (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\r\n handleClick(item)}\r\n >\r\n {item}\r\n
\r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default BrandsLegend;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\ninterface Brand {\r\n Name: string;\r\n DimensionId: string;\r\n UrlSlug: string;\r\n}\r\n\r\ninterface GroupedBrands {\r\n [key: string]: Brand[];\r\n}\r\n\r\nconst customSort = (a: Brand, b: Brand) => {\r\n if (a.Name && b.Name) {\r\n return a.Name.toLowerCase().localeCompare(b.Name.toLowerCase());\r\n }\r\n if (a.Name && !b.Name) {\r\n return -1;\r\n }\r\n if (!a.Name && b.Name) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nconst groupBrandsByFirstLetter = (brands: Brand[]): GroupedBrands => {\r\n const numberGroupKey = '#';\r\n return brands.reduce((groups, brand) => {\r\n let letter = brand.Name[0]\r\n .toUpperCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n if (!/^[A-Za-z]/.test(letter)) {\r\n letter = numberGroupKey;\r\n }\r\n if (!groups[letter]) {\r\n groups[letter] = [];\r\n }\r\n groups[letter].push(brand);\r\n return groups;\r\n }, {} as GroupedBrands);\r\n};\r\n\r\nexport const BrandsList = ({ brandsData, category }: { brandsData: Brand[]; category: string }) => {\r\n const [expandedGroups, setExpandedGroups] = useState<{ [key: string]: boolean }>({});\r\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\r\n\r\n useEffect(() => {\r\n const handleResize = () => setWindowWidth(window.innerWidth);\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n const groupedData = groupBrandsByFirstLetter(brandsData.sort(customSort));\r\n\r\n const sortedGroupKeys = Object.keys(groupedData).sort((a, b) => {\r\n if (a === '#') return 1;\r\n if (b === '#') return -1;\r\n return a.localeCompare(b);\r\n });\r\n\r\n const toggleGroup = (letter: string) => {\r\n setExpandedGroups((prev) => ({\r\n ...prev,\r\n [letter]: !prev[letter],\r\n }));\r\n };\r\n\r\n return (\r\n <>\r\n {sortedGroupKeys.map((letter) => (\r\n
\r\n

\r\n {letter}\r\n

\r\n
\r\n {groupedData[letter].map((brand, index) => {\r\n const isExpanded = expandedGroups[letter];\r\n if (windowWidth < 768 && !isExpanded && index >= 9) return null;\r\n\r\n const isLastVisibleItem = windowWidth < 768 && !isExpanded && index === 8;\r\n\r\n return (\r\n \r\n 9 ? 'text-black/20' : ''\r\n } ${\r\n isLastVisibleItem && groupedData[letter].length > 9\r\n ? 'bg-gradient-to-b from-black/30 to-white/60 bg-clip-text text-transparent'\r\n : ''\r\n }`}\r\n >\r\n {brand.Name}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n {windowWidth < 768 && groupedData[letter].length > 9 && (\r\n toggleGroup(letter)}\r\n >\r\n {expandedGroups[letter] ? 'Read Less' : 'Read More'}\r\n \r\n )}\r\n \r\n ))}\r\n \r\n );\r\n};\r\n","import classNames from 'classnames';\r\nimport { useCombobox } from 'downshift';\r\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\r\nimport { useLocation } from 'wouter';\r\n\r\nimport CloseSvg from '@/components/common/CloseSvg';\r\n\r\ninterface BrandItem {\r\n DimensionId: string;\r\n Name: string;\r\n UrlSlug: string;\r\n}\r\n\r\ninterface BrandsSearchProps {\r\n brandsData: BrandItem[];\r\n onSearchChange: (query: string, finalizeSearch: boolean) => void;\r\n searchInputRef: React.RefObject;\r\n}\r\n\r\nconst BrandsSearch: React.FC = ({ brandsData, onSearchChange, searchInputRef }) => {\r\n const [inputValue, setInputValue] = useState('');\r\n const [isDropdownOpen, setDropdownOpen] = useState(false);\r\n const [location] = useLocation();\r\n const prevDimension = useRef(null);\r\n\r\n const updateQuery = useCallback(\r\n (query: string, shouldOpenDropdown = true, finalizeSearch = false) => {\r\n setInputValue(query);\r\n setDropdownOpen(shouldOpenDropdown && query.length > 0);\r\n onSearchChange(query, finalizeSearch);\r\n },\r\n [onSearchChange],\r\n );\r\n\r\n useEffect(() => {\r\n let category = window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1);\r\n if (category === 'brand') {\r\n category = '';\r\n }\r\n if (prevDimension.current !== category) {\r\n prevDimension.current = category;\r\n updateQuery('', false);\r\n }\r\n }, [location, updateQuery]);\r\n\r\n const handleInputChange = (event: React.ChangeEvent) => {\r\n const newInputValue = event.target.value;\r\n setInputValue(newInputValue);\r\n onSearchChange(newInputValue, false);\r\n setDropdownOpen(newInputValue.length > 0);\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.key === 'Enter') {\r\n updateQuery(inputValue, false, true);\r\n }\r\n };\r\n\r\n const handleBlur = () => {\r\n setDropdownOpen(false);\r\n };\r\n\r\n const highlightMatch = (itemName: string, query: string) => {\r\n if (!query) return [itemName];\r\n const normalizedItemName = itemName.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const normalizedQuery = query.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const regex = new RegExp(`(${normalizedQuery})`, 'gi');\r\n const parts = normalizedItemName.split(regex);\r\n return parts;\r\n };\r\n\r\n const { isOpen, getMenuProps, getInputProps, getItemProps, highlightedIndex, selectedItem } =\r\n useCombobox({\r\n items: brandsData,\r\n inputValue,\r\n onInputValueChange: ({ inputValue }) => {\r\n setInputValue(inputValue || '');\r\n setDropdownOpen((inputValue || '').length > 0);\r\n },\r\n onSelectedItemChange: ({ selectedItem }) => {\r\n updateQuery(selectedItem ? selectedItem.Name : '', false, true);\r\n setTimeout(() => {\r\n setDropdownOpen(false);\r\n });\r\n },\r\n itemToString: (item) => (item ? item.Name : ''),\r\n });\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {inputValue && (\r\n <>\r\n {\r\n updateQuery('', false);\r\n }}\r\n className=\"mb-0.5 focus:outline-none\"\r\n aria-label=\"Clear search\"\r\n >\r\n \r\n \r\n\r\n
\r\n \r\n )}\r\n updateQuery(inputValue, false, true)}\r\n className=\"focus:outline-none\"\r\n aria-label=\"Search\"\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {isOpen && brandsData.length > 0\r\n ? brandsData.map((item, index) => (\r\n // eslint-disable-next-line react/jsx-key\r\n \r\n {highlightMatch(item.Name, inputValue).map((part, index) =>\r\n part\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '') ===\r\n inputValue\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '') ? (\r\n {part}\r\n ) : (\r\n part\r\n ),\r\n )}\r\n \r\n ))\r\n : inputValue && (\r\n
  • No brand results found for "{inputValue}"
  • \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default BrandsSearch;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\ninterface Brand {\r\n Name: string;\r\n DimensionId: string;\r\n UrlSlug: string;\r\n}\r\n\r\ninterface GroupedBrands {\r\n [key: string]: Brand[];\r\n}\r\n\r\nconst customSort = (a: Brand, b: Brand) => {\r\n if (a.Name && b.Name) {\r\n return a.Name.toLowerCase().localeCompare(b.Name.toLowerCase());\r\n }\r\n if (a.Name && !b.Name) {\r\n return -1;\r\n }\r\n if (!a.Name && b.Name) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nconst groupBrandsByFirstLetter = (brands: Brand[]): GroupedBrands => {\r\n const numberGroupKey = '#';\r\n return brands.reduce((groups, brand) => {\r\n let letter = brand.Name[0]\r\n .toUpperCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n if (!/^[A-Za-z]/.test(letter)) {\r\n letter = numberGroupKey;\r\n }\r\n if (!groups[letter]) {\r\n groups[letter] = [];\r\n }\r\n groups[letter].push(brand);\r\n return groups;\r\n }, {} as GroupedBrands);\r\n};\r\n\r\nexport const SearchList = ({ brandsData, category }: { brandsData: Brand[]; category: string }) => {\r\n const [expandedGroups, setExpandedGroups] = useState<{ [key: string]: boolean }>({});\r\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\r\n\r\n useEffect(() => {\r\n const handleResize = () => setWindowWidth(window.innerWidth);\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n const groupedData = groupBrandsByFirstLetter(brandsData.sort(customSort));\r\n\r\n const sortedGroupKeys = Object.keys(groupedData).sort((a, b) => {\r\n if (a === '#') return 1;\r\n if (b === '#') return -1;\r\n return a.localeCompare(b);\r\n });\r\n\r\n const toggleGroup = (letter: string) => {\r\n setExpandedGroups((prev) => ({\r\n ...prev,\r\n [letter]: !prev[letter],\r\n }));\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {sortedGroupKeys.map((letter) => (\r\n
    \r\n

    \r\n {letter}\r\n

    \r\n {groupedData[letter].map((brand, index) => {\r\n const isExpanded = expandedGroups[letter];\r\n if (windowWidth < 768 && !isExpanded && index >= 9) return null;\r\n\r\n const isLastVisibleItem = windowWidth < 768 && !isExpanded && index === 8;\r\n\r\n return (\r\n
    \r\n 9 ? 'text-black/20' : ''\r\n } ${\r\n isLastVisibleItem && groupedData[letter].length > 9\r\n ? 'bg-gradient-to-b from-black/30 to-white/60 bg-clip-text text-transparent'\r\n : ''\r\n }`}\r\n >\r\n {brand.Name}\r\n \r\n
    \r\n );\r\n })}\r\n {windowWidth < 768 && groupedData[letter].length > 9 && (\r\n toggleGroup(letter)}\r\n >\r\n {expandedGroups[letter] ? 'Read Less' : 'Read More'}\r\n \r\n )}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n","import { useQuery } from '@tanstack/react-query';\r\n\r\nimport http from '@/tscapi/service/httpservice';\r\nimport { Cookie } from '@/tscapi/utils/cookie';\r\n\r\nimport { getBaseUrl } from '../getBaseUrl';\r\nimport { IBrand } from '../IBrands';\r\n\r\nexport const useBrands = (categoryUrlSlug = '') => {\r\n const cookie: Cookie = new Cookie();\r\n return useQuery({\r\n queryKey: ['brands', cookie.Language, categoryUrlSlug],\r\n queryFn: () => fetchBrands(categoryUrlSlug),\r\n useErrorBoundary: true,\r\n retry: false,\r\n refetchOnWindowFocus: false,\r\n });\r\n\r\n async function fetchBrands(categoryUrlSlug): Promise {\r\n const base = getBaseUrl() + '/product/v1/';\r\n const lang = cookie.Language.substring(0, 2) || 'en';\r\n let url = `${base}${lang}/brands`;\r\n if (categoryUrlSlug) {\r\n url += `/${categoryUrlSlug}`;\r\n }\r\n try {\r\n const response = await http.get(url);\r\n return response.data as IBrand[];\r\n } catch (error) {\r\n console.log('Error getting Brands');\r\n throw new Error('Error getting Brands');\r\n }\r\n }\r\n};\r\n","export function getBaseUrl(): string {\r\n switch (window.location.href.substring(0, window.location.href.indexOf('.'))) {\r\n case 'https://lo-tsc':\r\n return 'https://lo-api.tsc.ca';\r\n case 'https://qa-tsc':\r\n return 'https://qa-api.tsc.ca';\r\n case 'https://qa-tsc-pre':\r\n return 'https://qa-api-pre.tsc.ca';\r\n case 'https://st-tsc':\r\n return 'https://st-api.tsc.ca';\r\n case 'https://st-tsc-pre':\r\n return 'https://st-api-pre.tsc.ca';\r\n case 'https://pr-tsc-pre':\r\n return 'https://api-pre.tsc.ca';\r\n case 'https://tsc':\r\n case 'https://www':\r\n return 'https://api.tsc.ca';\r\n default:\r\n return 'https://api.tsc.ca';\r\n }\r\n}\r\n","import React, { useState, useEffect, useRef } from 'react';\r\n\r\nimport BrandsCategories from '../Components/BrandsCategories';\r\nimport BrandsLegend from '../Components/BrandsLegend';\r\nimport { BrandsList } from '../Components/BrandsList';\r\nimport BrandsSearch from '../Components/BrandsSearch';\r\nimport { SearchList } from '../Components/SearchList';\r\nimport { useBrands } from '../hooks/useBrands';\r\n\r\nexport const BrandsDisplay = () => {\r\n const [selectedCategoryDimension, setSelectedCategoryDimension] = useState('');\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [isSearchFinalized, setIsSearchFinalized] = useState(false);\r\n const { data: brandsData } = useBrands(selectedCategoryDimension);\r\n\r\n useEffect(() => {\r\n if (selectedCategoryDimension) {\r\n setSearchQuery('');\r\n setIsSearchFinalized(false);\r\n }\r\n }, [selectedCategoryDimension]);\r\n\r\n const normalizeString = (str) =>\r\n str\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n\r\n const searchBrands =\r\n brandsData?.filter(\r\n (brand) => !searchQuery || normalizeString(brand.Name).includes(normalizeString(searchQuery)),\r\n ) || [];\r\n\r\n const filteredBrands = brandsData || [];\r\n\r\n const handleCategorySelect = (dimensionId) => {\r\n setSelectedCategoryDimension(dimensionId);\r\n };\r\n\r\n const handleSearchChange = (query, finalizeSearch) => {\r\n setSearchQuery(query);\r\n setIsSearchFinalized(finalizeSearch);\r\n };\r\n\r\n const searchInputRef = useRef(null);\r\n\r\n const focusOnInput = () => {\r\n if (searchInputRef.current) {\r\n searchInputRef.current.focus();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n

    Shop by brand

    \r\n
    \r\n \r\n {isSearchFinalized && searchQuery && searchBrands.length > 0 ? (\r\n <>\r\n

    \r\n Showing brand results for "{searchQuery}"\r\n

    \r\n \r\n \r\n ) : isSearchFinalized && searchQuery && searchBrands.length === 0 ? (\r\n
    \r\n \r\n \r\n \r\n \r\n

    \r\n We weren't able to find any brand results for "{searchQuery}"\r\n

    \r\n

    \r\n Please check the spelling or{' '}\r\n \r\n

    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default BrandsDisplay;\r\n","import React from 'react';\r\n\r\nimport BrandsDisplay from './Components/BrandsDisplay';\r\n\r\nfunction Brand() {\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default Brand;\r\n","import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\r\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom/client';\r\nimport { ErrorBoundary } from 'react-error-boundary';\r\n\r\nimport Brand from './Brand';\r\n\r\nconst ErrorFallback = () => {\r\n return (\r\n
    \r\n
    \r\n

    \r\n Unable to list brands.\r\n

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst BrandApp = () => {\r\n const client = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n cacheTime: 1000 * 60 * 60 * 24, // 24 hours\r\n staleTime: 1000 * 30, //30 seconds\r\n },\r\n },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst element = document.getElementById('brand-app') as HTMLElement;\r\nconst root = ReactDOM.createRoot(element);\r\n\r\nif (element) {\r\n root.render(\r\n \r\n \r\n ,\r\n );\r\n}\r\n","module.exports = jQuery;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + {\"131\":\"recommend\",\"1523\":\"sellercontent\",\"3167\":\"emailpopup2\",\"4199\":\"onairnow\",\"6339\":\"accountdeletion\",\"6464\":\"search\",\"6772\":\"emailpopup\",\"7867\":\"previewbar\",\"8652\":\"vitatree\"}[chunkId] + \".bundle.\" + {\"131\":\"f0aad347fd68ec076ab3\",\"1523\":\"05b90fc005572e3f4bf5\",\"3167\":\"14844515abda74bfa836\",\"4199\":\"ee0b6c3296c26524153a\",\"6339\":\"2eedd230f1b6ba2c416b\",\"6464\":\"4335439ae9820b5827c7\",\"6772\":\"e648afe478bd6730e208\",\"7867\":\"a0448f110f13038f9c48\",\"8652\":\"a0e65b2736a8b61f4872\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + {\"7867\":\"previewbar\",\"8652\":\"vitatree\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.j = 8362;","__webpack_require__.p = \"/dist/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8362: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktsc_react\"] = self[\"webpackChunktsc_react\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [3712], function() { return __webpack_require__(3306); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","loadStylesheet","installedCssChunks","relativePath","base","path","toLowerCase","indexOf","slice","length","str","decodeURI","_e","defaultRouter","hook","searchHook","parser","ssrPath","undefined","ssrSearch","RouterCtx","useRouter","useLocationFromRouter","router","location","navigate","to","navOpts","absolutePath","useLocation","props","ref","href","_href","onClick","_onClick","asChild","children","replace","state","restProps","event","ctrlKey","metaKey","altKey","shiftKey","button","defaultPrevented","preventDefault","useCategories","cookie","useQuery","queryKey","Language","queryFn","lang","substring","response","get","data","MerchandisingZones","error","console","log","Error","useErrorBoundary","retry","refetchOnWindowFocus","onSelect","categoriesData","isError","setLocation","category","window","pathname","lastIndexOf","defaultItem","Title","NavigationUrlSlug","items","selectedItem","setSelectedItem","useState","useEffect","item","find","isOpen","getToggleButtonProps","getMenuProps","highlightedIndex","getItemProps","getLabelProps","onSelectedItemChange","changes","dimensionValue","encodeURIComponent","onStateChange","element","document","querySelector","scrollIntoView","block","className","onKeyDown","key","style","whiteSpace","overflow","textOverflow","width","height","xmlns","xmlnsXlink","d","id","fill","fillRule","transform","xlinkHref","mask","map","index","brandsData","legendItems","useMemo","reduce","acc","brand","normalizedName","Name","normalize","firstChar","test","toUpperCase","includes","push","sort","hashIndex","splice","getElementById","behavior","handleClick","customSort","a","b","localeCompare","BrandsList","expandedGroups","setExpandedGroups","windowWidth","setWindowWidth","innerWidth","handleResize","addEventListener","removeEventListener","groupedData","groups","letter","sortedGroupKeys","Object","keys","isExpanded","isLastVisibleItem","UrlSlug","DimensionId","prev","toggleGroup","onSearchChange","searchInputRef","inputValue","setInputValue","isDropdownOpen","setDropdownOpen","prevDimension","useRef","updateQuery","useCallback","query","shouldOpenDropdown","finalizeSearch","current","highlightMatch","itemName","normalizedItemName","normalizedQuery","regex","RegExp","split","getInputProps","onInputValueChange","setTimeout","itemToString","placeholder","onChange","newInputValue","target","value","onBlur","CloseSvg","viewBox","part","SearchList","useBrands","categoryUrlSlug","url","getBaseUrl","fetchBrands","selectedCategoryDimension","setSelectedCategoryDimension","searchQuery","setSearchQuery","isSearchFinalized","setIsSearchFinalized","normalizeString","searchBrands","filter","filteredBrands","focus","dimensionId","ErrorFallback","fontSize","BrandApp","client","defaultOptions","queries","cacheTime","staleTime","ErrorBoundary","FallbackComponent","QueryClientProvider","initialIsOpen","root","render","module","exports","jQuery","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","n","getter","__esModule","getPrototypeOf","obj","__proto__","t","mode","this","then","ns","create","def","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","f","e","chunkId","Promise","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","type","head","appendChild","Symbol","toStringTag","p","resolve","reject","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","linkTag","errorType","realHref","err","code","request","createStylesheet","miniCss","installedChunks","installedChunkData","promise","realSrc","message","name","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}