{ "version": 3, "sources": ["../../src/ts/SearchNode.ts"], "sourcesContent": ["\uFEFFimport { $, $$, get, getData, getDataJson, hide, highlight, postData, show } from \"@/Utils\"\r\nimport {\r\n CategoryTreeIdToUrl,\r\n SearchNodeResults,\r\n SearchNodeSuggestions,\r\n SearchNodeFacet,\r\n Breadcrumbs,\r\n UrlTitleBreadcrumbs,\r\n SearchNodeDoc,\r\n SearchNodeGroup\r\n} from \"@/interfaces\";\r\n\r\nlet categoryTreeIdLookup: CategoryTreeIdToUrl = null;\r\nconst maxTotalResults = 8;\r\nconst maxProductResults = 7;\r\nconst maxCategoryResults = 15;\r\nconst productEntryHeight = 81;\r\nconst spareAreaHeightWithoutProducts = 350;\r\n\r\nfunction suggestionsCallback(results: SearchNodeResults) {\r\n const allResults = get(\"search-display-all-results\") as HTMLAnchorElement;\r\n const productResultsTitle = get(\"products-title\");\r\n const productResultsContainer = get(\"products-pane\");\r\n const documentResultsContainer = get(\"suggestions-documents\");\r\n const documentResultsTitle = get(\"suggestions-documents-title\");\r\n const categoryBreadcrumbsTitle = get(\"suggestions-group-title\");\r\n const categoryBreadcrumbsContainer = get(\"suggestions-group\");\r\n\r\n const isNosto = window.config.search.nostoSearchUrl.length\r\n if (!results) {\r\n hide(productResultsTitle);\r\n productResultsContainer.innerHTML = \"\";\r\n documentResultsContainer.innerHTML = \"\";\r\n hide(documentResultsTitle)\r\n categoryBreadcrumbsContainer.innerHTML = \"\";\r\n hide(categoryBreadcrumbsTitle)\r\n return;\r\n }\r\n\r\n const suggestion = results.search_query;\r\n const suggestionLo = suggestion.toLowerCase();\r\n\r\n const productTemplate = get(\"template-product\") as HTMLTemplateElement;\r\n hide(productResultsTitle);\r\n productResultsContainer.innerHTML = \"\";\r\n\r\n const searchValue = getSearchString(false);\r\n const productResults = results.groups.type\r\n ? results.groups.type.groups.find(x => x.value == \"product\")\r\n : {docs: results.docs.map(x => ({\r\n id: parseInt(x.id),\r\n name: x.name,\r\n price: parseFloat(x.price),\r\n url: x.url,\r\n img: x.img,\r\n type: x.type\r\n }) as SearchNodeDoc), doc_count: results.doc_count, value: \"product\"} as SearchNodeGroup;\r\n\r\n if (suggestion === searchValue && !results.doc_count) {\r\n hide(allResults)\r\n }\r\n else {\r\n show(productResultsTitle);\r\n const calcProducts = (window.innerHeight - spareAreaHeightWithoutProducts) / productEntryHeight\r\n const shownProducts = Math.min(maxProductResults, Math.max(1, calcProducts))\r\n productResults?.docs.slice(0, shownProducts).forEach((x: SearchNodeDoc) => {\r\n const searchResult = productTemplate.content.cloneNode(true) as HTMLElement;\r\n searchResult.querySelector(\"[data-search-item-name]\").textContent = x.name;\r\n searchResult.querySelector(\"[data-search-item-price]\").textContent = `${x.price} ${window.config.currencySign}`;\r\n const searchElement = searchResult.firstElementChild as HTMLAnchorElement;\r\n const img = searchResult.querySelector(\"img\");\r\n if (isNosto) {\r\n searchElement.href = x.url;\r\n img.src = x.img\r\n } else {\r\n searchElement.href = window.config.nativeHomeUrl + x.url;\r\n img.src += x.img.replace(\".png\", \"-mediumsmall.png\");\r\n }\r\n productResultsContainer.appendChild(searchResult);\r\n });\r\n }\r\n\r\n const contentTemplate = get(\"template-content\") as HTMLTemplateElement;\r\n const documentTemplate = get(\"template-document\") as HTMLTemplateElement;\r\n\r\n if (productResults?.docs) {\r\n show(allResults);\r\n allResults.href = window.config.search.rootSearchUrl + suggestionLo;\r\n get(\"search-results-count\").textContent = (productResults?.doc_count || 0).toString();\r\n }\r\n\r\n documentResultsContainer.innerHTML = \"\";\r\n const page = \"page\";\r\n const promotion = \"promotion\";\r\n const controller = \"store\"; // Naming things\r\n const pageResults = isNosto ? null : results.groups.type.groups.find(x => x.value === page);\r\n const pageDocs = pageResults?.docs.slice(0, maxTotalResults) || [];\r\n pageDocs.forEach(x => x.type = page);\r\n const promotionResults = isNosto ? null : results.groups.type.groups.find(x => x.value === promotion);\r\n const promotionDocs = promotionResults?.docs.slice(0, maxTotalResults) || [];\r\n promotionDocs.forEach(x => x.type = promotion);\r\n const controllerResults = isNosto ? null : results.groups.type.groups.find(x => x.value === controller);\r\n const controllerDocs = controllerResults?.docs.slice(0, maxTotalResults) || [];\r\n controllerDocs.forEach(x => x.type = controller);\r\n const interleavedResults = new Array(maxTotalResults).fill(0).map((_, i) => [pageDocs[i], promotionDocs[i], controllerDocs[i]]);\r\n const contentAndNews = interleavedResults.reduce((a, b) => a.concat(b)).filter(x => x).slice(0, maxTotalResults);\r\n\r\n contentAndNews.sort((a, b) => {\r\n if (a.type < b.type) {\r\n return -1;\r\n }\r\n if (a.type > b.type) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n if (contentAndNews.length) {\r\n show(documentResultsTitle);\r\n contentAndNews.forEach((x: SearchNodeDoc) => {\r\n const searchResult = (x.type === \"promotion\" ? contentTemplate : documentTemplate).content.cloneNode(true) as HTMLElement;\r\n const searchElement = searchResult.firstElementChild as HTMLAnchorElement;\r\n searchElement.href = window.config.nativeHomeUrl + x.url;\r\n searchResult.querySelector(\"[data-search-item-name]\").textContent = x.name;\r\n documentResultsContainer.appendChild(searchResult);\r\n });\r\n }\r\n else {\r\n hide(documentResultsTitle);\r\n }\r\n\r\n\r\n const categoryBreadcrumbsTemplate = get(\"template-group-breadcrumbs\") as HTMLTemplateElement;\r\n const suggestionInCategories: Breadcrumbs[][] = [];\r\n \r\n if(!isNosto) {\r\n const groupMap = categoryTreeIdLookup.groupIdToUrl;\r\n \r\n Object.keys(groupMap).forEach(x => {\r\n if (groupMap[x].title.toLowerCase().includes(suggestionLo)) {\r\n const breadcrumbs: Breadcrumbs[] = [{\r\n url: groupMap[x].url,\r\n title: highlight(groupMap[x].title, suggestionLo)\r\n }];\r\n suggestionInCategories.push(breadcrumbs);\r\n }\r\n });\r\n\r\n const subGroupMap = categoryTreeIdLookup.subGroupIdToUrl;\r\n Object.keys(subGroupMap).forEach(x => {\r\n if (suggestionInCategories.length <= maxCategoryResults && subGroupMap[x].title.toLowerCase().includes(suggestionLo)) {\r\n const breadcrumbs: Breadcrumbs[] = [{\r\n url: subGroupMap[x].url,\r\n title: highlight(subGroupMap[x].title, suggestionLo)\r\n }];\r\n let parentId: string = categoryTreeIdLookup.parentRelations[x];\r\n while (parentId) {\r\n if (categoryTreeIdLookup.parentRelations[parentId]) {\r\n const currentUrl = subGroupMap[parentId].url;\r\n breadcrumbs.forEach(x => x.url = currentUrl + \"/\" + x.url);\r\n breadcrumbs.push({url: currentUrl, title: subGroupMap[parentId].title});\r\n } else {\r\n const currentUrl = groupMap[-parentId]?.url;\r\n if (currentUrl) {\r\n breadcrumbs.forEach(x => x.url = currentUrl + \"/\" + x.url);\r\n breadcrumbs.push({url: currentUrl, title: groupMap[-parentId].title});\r\n }\r\n }\r\n parentId = categoryTreeIdLookup.parentRelations[parentId];\r\n }\r\n suggestionInCategories.push(breadcrumbs);\r\n }\r\n });\r\n }\r\n \r\n if (contentAndNews.length || suggestionInCategories.length) {\r\n show(get(\"suggestions-pane\"))\r\n }\r\n\r\n categoryBreadcrumbsContainer.innerHTML = \"\";\r\n if (suggestionInCategories.length) {\r\n show(categoryBreadcrumbsTitle);\r\n suggestionInCategories.forEach(y => {\r\n const breadcrumb = document.createElement(\"ul\");\r\n breadcrumb.className = \"breadcrumbs\";\r\n y.reverse().forEach(z => {\r\n const breadcrumbPart = categoryBreadcrumbsTemplate.content.cloneNode(true) as HTMLElement;\r\n const item = breadcrumbPart.querySelector(\"[data-search-item-name]\") as HTMLAnchorElement;\r\n item.href = window.config.homeUrl + z.url;\r\n item.innerHTML = z.title;\r\n breadcrumb.appendChild(breadcrumbPart);\r\n });\r\n categoryBreadcrumbsContainer.appendChild(breadcrumb);\r\n });\r\n } else {\r\n hide(categoryBreadcrumbsTitle);\r\n }\r\n}\r\n\r\nfunction suggestionFacets(suggestion: string) {\r\n if(window.config.search.nostoSearchUrl.length){\r\n getDataJson(window.config.search.nostoSearchUrl + \"/\" +suggestion,\r\n suggestionsCallback,\r\n true);\r\n }\r\n else {\r\n getDataJson(window.config.search.searchNodeSearchUrl + \"?query_key=\" + window.config.search.queryKeyAutocomplete + \"&search_query=\" + suggestion,\r\n suggestionsCallback,\r\n true);\r\n }\r\n}\r\n\r\nfunction displayHistorySearchEntries() {\r\n hide(get(\"search-display-all-results\") as HTMLAnchorElement)\r\n get(\"search-pane\").classList.add(\"type-history\")\r\n\r\n const searchSuggestionsContainer = get(\"suggestions-suggestions\");\r\n const searchResultTemplate = get(\"template-search-history\") as HTMLTemplateElement;\r\n searchSuggestionsContainer.innerHTML = \"\";\r\n if (searchResultTemplate.content.children.length) {\r\n $(\".autocomplete__search-result\").classList.add(\"autocomplete__search-result--active\");\r\n $(\".autocomplete__overlay\").classList.add(\"autocomplete__overlay--active\");\r\n Array.from(searchResultTemplate.content.children).forEach(x => {\r\n searchSuggestionsContainer.innerHTML += x.outerHTML\r\n });\r\n show(get(\"search-history-title\"))\r\n }\r\n else {\r\n hide(get(\"search-history-title\"))\r\n }\r\n $$(\"[data-search-suggestion]\").forEach(x => {\r\n x.addEventListener(\"click\", e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const row = (e.currentTarget as HTMLElement).parentElement;\r\n const idx = Array.from(searchSuggestionsContainer.children).indexOf(row);\r\n postData(window.config.removeSearchHistoryEntryUrl + \"/\" + idx)\r\n searchSuggestionsContainer.removeChild(row);\r\n const templateRow = searchResultTemplate.content.children[idx];\r\n searchResultTemplate.content.removeChild(templateRow)\r\n });\r\n });\r\n}\r\n\r\nfunction suggestCallback(suggestion: SearchNodeSuggestions) {\r\n const searchSuggestionsContainer = get(\"suggestions-suggestions\");\r\n const searchResultTemplate = get(\"template-suggestion\") as HTMLTemplateElement;\r\n const searchResultContainer = $(\".autocomplete__search-result\");\r\n\r\n searchResultContainer.classList.add(\"autocomplete__search-result--active\");\r\n $(\".autocomplete__overlay\").classList.add(\"autocomplete__overlay--active\");\r\n\r\n const searchValue = getSearchString(false);\r\n\r\n suggestionFacets(searchValue);\r\n\r\n searchSuggestionsContainer.innerHTML = \"\";\r\n if (suggestion.suggestions.length) {\r\n get(\"search-pane\").classList.remove(\"type-history\")\r\n suggestion.suggestions.forEach(x => {\r\n const searchResult = searchResultTemplate.content.cloneNode(true) as HTMLElement;\r\n const searchElement = searchResult.firstElementChild as HTMLAnchorElement;\r\n searchElement.href = window.config.search.rootSearchUrl + x.suggestion;\r\n searchResult.querySelector(\"[data-search-item-name]\").innerHTML = x._highlight.suggestion;\r\n searchSuggestionsContainer.appendChild(searchResult);\r\n });\r\n } else {\r\n get(\"search-pane\").classList.add(\"type-history\")\r\n displayHistorySearchEntries()\r\n }\r\n}\r\nfunction nostoSuggestCallback(suggestion: SearchNodeResults) {\r\n const searchSuggestionsContainer = get(\"suggestions-suggestions\");\r\n const searchResultTemplate = get(\"template-suggestion\") as HTMLTemplateElement;\r\n const searchResultContainer = $(\".autocomplete__search-result\");\r\n\r\n searchResultContainer.classList.add(\"autocomplete__search-result--active\");\r\n $(\".autocomplete__overlay\").classList.add(\"autocomplete__overlay--active\");\r\n\r\n const searchValue = getSearchString(false);\r\n\r\n suggestionsCallback(suggestion);\r\n\r\n searchSuggestionsContainer.innerHTML = \"\";\r\n if (suggestion.suggestions?.length) {\r\n get(\"search-pane\").classList.remove(\"type-history\")\r\n suggestion.suggestions.forEach(x => {\r\n const searchResult = searchResultTemplate.content.cloneNode(true) as HTMLElement;\r\n const searchElement = searchResult.firstElementChild as HTMLAnchorElement;\r\n searchElement.href = window.config.search.rootSearchUrl + x;\r\n searchResult.querySelector(\"[data-search-item-name]\").innerHTML = highlight(x, searchValue);\r\n searchSuggestionsContainer.appendChild(searchResult);\r\n });\r\n } else {\r\n get(\"search-pane\").classList.add(\"type-history\")\r\n displayHistorySearchEntries()\r\n }\r\n}\r\n\r\nfunction getSearchString(urlFriendly: boolean) {\r\n const searchKeyword = get(\"searchKeyword\") as HTMLInputElement\r\n const searchValueSpaces = searchKeyword.value.replace(/'|\u00B4|,|\\(|\\)|\\\\|\u2122|\u25AA|\u00B0|\u00A9|\\|/g, \"\").replace(/\\+|\\/|:| - |&|%|\\?| -> |>|<| -- |\\*/g, \" \")\r\n const retVal = urlFriendly ? searchValueSpaces.replace(/( )+/g, \"+\") : searchValueSpaces\r\n return retVal\r\n}\r\n\r\nfunction search(event: Event) {\r\n event.preventDefault()\r\n const searchUrlTemplate = (event.target as HTMLFormElement).action;\r\n location.href = searchUrlTemplate + getSearchString(true);\r\n}\r\n\r\nfunction suggestInternal() {\r\n const searchKeyword = get(\"searchKeyword\") as HTMLInputElement\r\n const oldSearch = searchKeyword.getAttribute(\"data-old-search\")\r\n\r\n const searchValue = getSearchString(true)\r\n\r\n if (oldSearch === searchValue) {\r\n return\r\n }\r\n else {\r\n searchKeyword.setAttribute(\"data-old-search\", searchValue)\r\n }\r\n\r\n hide(get(\"suggestions-pane\"))\r\n\r\n if (searchValue.length > 1) {\r\n if(window.config.search.nostoSearchUrl.length) {\r\n getDataJson(window.config.search.nostoSearchUrl + \"/\" + searchValue, nostoSuggestCallback, true);\r\n }\r\n else{\r\n withCategoryTreeIdLookup(() => getDataJson(window.config.search.searchNodeSuggestUrl + \"?query_key=\" + window.config.search.queryKeyAutocompleteKeywords + \"&suggest_query=\" + searchValue, suggestCallback, true));\r\n }\r\n }\r\n else {\r\n displayHistorySearchEntries()\r\n }\r\n}\r\n\r\nlet timeout = 0\r\n\r\nfunction suggestWithPacing() {\r\n if (timeout > 0) {\r\n window.clearTimeout(timeout)\r\n }\r\n timeout = window.setTimeout(suggestInternal, 200)\r\n}\r\n\r\nfunction responsiveLayout() {\r\n if (window.isResponsive) {\r\n if ($(\".autocomplete__search-result--active\")) {\r\n $(\".autocomplete__wrapper\").classList.add(\"visible\");\r\n }\r\n \r\n return;\r\n }\r\n \r\n $(\".autocomplete__wrapper\").classList.remove(\"visible\");\r\n}\r\n\r\nexport function initSearch() {\r\n const searchForm = get(\"searchForm\") as HTMLFormElement\r\n if (window.config.search.searchNodeSearchUrl) {\r\n searchForm.addEventListener(\"click\", () => suggestWithPacing())\r\n searchForm.addEventListener(\"input\", () => suggestWithPacing())\r\n }\r\n searchForm.addEventListener(\"submit\", x => search(x))\r\n\r\n window.responsiveObserverFunctions = window.responsiveObserverFunctions || [];\r\n window.responsiveObserverFunctions.push(responsiveLayout)\r\n}\r\n\r\nfunction withCategoryTreeIdLookup(callback: Function) {\r\n if (categoryTreeIdLookup != null) {\r\n callback();\r\n return\r\n };\r\n getData(window.config.getCategoryTreeIdToUrl, (x: Response) => {\r\n x.json().then((x: CategoryTreeIdToUrl) => {\r\n categoryTreeIdLookup = x;\r\n callback();\r\n })\r\n }, true, true)\r\n}\r\n"], "mappings": "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", "names": ["categoryTreeIdLookup", "maxTotalResults", "maxProductResults", "maxCategoryResults", "productEntryHeight", "spareAreaHeightWithoutProducts", "suggestionsCallback", "results", "allResults", "get", "productResultsTitle", "productResultsContainer", "documentResultsContainer", "documentResultsTitle", "categoryBreadcrumbsTitle", "categoryBreadcrumbsContainer", "isNosto", "hide", "suggestion", "suggestionLo", "productTemplate", "searchValue", "getSearchString", "productResults", "x", "show", "calcProducts", "shownProducts", "searchResult", "searchElement", "img", "contentTemplate", "documentTemplate", "page", "promotion", "controller", "pageResults", "pageDocs", "promotionResults", "promotionDocs", "controllerResults", "controllerDocs", "contentAndNews", "_", "i", "a", "b", "categoryBreadcrumbsTemplate", "suggestionInCategories", "groupMap", "breadcrumbs", "highlight", "subGroupMap", "_a", "parentId", "currentUrl", "y", "breadcrumb", "z", "breadcrumbPart", "item", "suggestionFacets", "getDataJson", "displayHistorySearchEntries", "searchSuggestionsContainer", "searchResultTemplate", "$", "$$", "e", "row", "idx", "postData", "templateRow", "suggestCallback", "nostoSuggestCallback", "urlFriendly", "searchValueSpaces", "search", "event", "searchUrlTemplate", "suggestInternal", "searchKeyword", "oldSearch", "withCategoryTreeIdLookup", "timeout", "suggestWithPacing", "responsiveLayout", "initSearch", "searchForm", "callback", "getData"] }