https://www.maruzenjunkudo.co.jp/cdn/shop/t/3/assets/search-catego…?v=119186325984191623971789364435
1class SearchCategoryAccordion{constructor(containerId,options={}){this.container=document.getElementById(containerId),this.options={apiUrl:"https://junkudo.search.zetacx.net/api/search/item",accessKey:"ty7VA*mT4ovvZhTsQPtMxo2G2QoKLx-C",maxHeight:"400px",...options},this.currentGenres=[],this.fullCategoryTree=null,this.selectedGenreCode=null,this.path=window.location.pathname,this.isSearchPage=this.path.includes("/search"),this.isTopPage=this.path==="/",this.allowedTopGenres=window.allowedTopGenres||[],this.init()}async renderStaticTopGenres(){const staticParents=window.STATIC_TOP_GENRES||[];if(staticParents.length===0){this.container.innerHTML='<div class="search-category-accordion__error">\u30B8\u30E3\u30F3\u30EB\u30EA\u30B9\u30C8\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002</div>';return}this.currentGenres=staticParents.map(item=>{const staticLevel0Values=(item.children||[]).map(child=>child.value);return{label:item.label,value:item.value||null,count:null,children:(item.children||[]).map(child=>({label:child.label,value:child.value,count:null,children:[],isExpanded:!1,hasFetchedChildren:!1})),staticLevel0Values,isExpanded:!1,hasFetchedChildren:!0}}),this.render();try{const response=await fetch("{{ 'search-item.json' | asset_url }}");if(!response.ok)throw new Error(`HTTP error! status: ${response.status}`);const data=await response.json();let genres=data.genres||data.navigations&&data.navigations.genres;if(data.status==="0000"&&genres){const currentUrlParams=new URLSearchParams(window.location.search);if(this.isCategorySearch(currentUrlParams))this.currentGenres=genres,this.render();else return}else console.warn("\u30AB\u30C6\u30B4\u30EA\u30FC\u30AB\u30A6\u30F3\u30C8\u306EAPI\u5FDC\u7B54\u304C\u4E0D\u6B63\u3067\u3059\u3002",data)}catch(error){console.error("\u30AB\u30C6\u30B4\u30EA\u30FC\u30C4\u30EA\u30FC\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",error)}}init(){if(!this.container){console.error("SearchCategoryAccordion: Container not found");return}this.renderLoading();const urlParams=new URLSearchParams(window.location.search);this.hasSearchParams(urlParams)?this.fetchGenres():this.renderStaticTopGenres()}async fetchGenres(){try{const urlParams=new URLSearchParams(window.location.search);if(this.hasSearchParams(urlParams)){await this.delay(1e3),await this.fetchGenresWithRetry(urlParams);return}const params=this.buildSearchParams(urlParams),url=`${this.options.apiUrl}?${params}`;await this.fetchGenresWithRetry(urlParams,0)}catch(error){console.error("fetchGenres error:",error),this.renderError(`\u30AB\u30C6\u30B4\u30EA\u30FC\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${error.message}`)}}hasSearchParams(urlParams){return["keywords","q","product_name","author","label","isbn","seldt","gnrSelect%5B%5D","category_label"].some(param=>{const value=urlParams.get(param);return value&&value.trim()!==""})}delay(ms){return new Promise(resolve=>setTimeout(resolve,ms))}isCategorySearch(urlParams){return urlParams.has("gnrSelect%5B%5D")||urlParams.has("gnrSelect[]")}async fetchGenresWithRetry(urlParams,retryCount=0){const currentUrlParams=new URLSearchParams(window.location.search);try{const paramsFromBuilder=this.buildSearchParams(urlParams),finalSearchParams=new URLSearchParams(paramsFromBuilder);finalSearchParams.append("facet","genre_code"),finalSearchParams.append("facet_limit","1000");const apiUrl=`${this.options.apiUrl}?${finalSearchParams.toString()}`,response=await fetch(apiUrl);if(!response.ok)throw new Error(`HTTP error! status: ${response.status} - ${response.statusText}`);const data=await response.json();let genres=null;if(data.genres?genres=data.genres:data.navigations&&data.navigations.genres&&(genres=data.navigations.genres),data.status==="0000"&&genres){const currentUrlParams2=new URLSearchParams(window.location.search);this.isCategorySearch(currentUrlParams2)?(this.currentGenres=genres,this.render()):(this.currentGenres=genres,this.render())}else{if(console.error("API Response Error:",{status:data.status,message:data.message,hasGenres:!!data.genres,hasNavigations:!!data.navigations,hasNavigationsGenres:!!(data.navigations&&data.navigations.genres),genresFound:!!genres}),retryCount<3)return await this.delay(2e3),this.fetchGenresWithRetry(urlParams,retryCount+1);this.renderError(`\u30AB\u30C6\u30B4\u30EA\u30FC\u30C7\u30FC\u30BF\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F (Status: ${data.status})`)}}catch(error){if(console.error(`SearchCategoryAccordion: Error fetching genres (Attempt ${retryCount+1})`,error),console.error("Error details:",{message:error.message,stack:error.stack,url:window.location.href,retryCount}),retryCount<3)return await this.delay(2e3),this.fetchGenresWithRetry(urlParams,retryCount+1);this.renderError(`\u30AB\u30C6\u30B4\u30EA\u30FC\u30C7\u30FC\u30BF\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: ${error.message}`)}}
1async fetchChildren(parentGenreCode){const urlParams=new URLSearchParams;urlParams.append("gnrSelect[]",parentGenreCode),urlParams.append("access_key",this.options.accessKey),urlParams.append("page","1"),urlParams.append("adult_flg","2");let today=new Date,year=today.getFullYear()+1,month=String(today.getMonth()+1).padStart(2,"0");urlParams.append("publication_date",`${year}/${month}/ALL/before`);const apiUrl=`${this.options.apiUrl}?${urlParams.toString()}`;try{const response=await fetch(apiUrl);if(!response.ok)throw new Error(`HTTP error! status: ${response.status}`);const data=await response.json();let genres=null;if(data.genres?genres=data.genres:data.navigations&&data.navigations.genres&&(genres=data.navigations.genres),data.status==="0000"&&genres&&genres.length>0){const parentGenreData=genres.find(g=>g.value===parentGenreCode);return parentGenreData?parentGenreData.children:[]}else{if(data.status==="0000")return[];throw console.error("API Response Error (fetchChildren):",data),new Error(data.message||"Failed to fetch child genres.")}}catch(error){return console.error("fetchChildren API call failed:",error),[]}}buildSearchParams(urlParams){const params=new URLSearchParams;params.append("access_key",this.options.accessKey),params.append("count","20");const keyword=urlParams.get("keywords")||urlParams.get("q")||"";keyword&&keyword.trim()!==""&&keyword!=="undefined"&¶ms.append("keyword",keyword.trim());const productName=urlParams.get("product_name")||"";productName&&productName.trim()!==""&&productName!=="undefined"&¶ms.append("product_name",productName.trim());const author=urlParams.get("author")||"";author&&author.trim()!==""&&author!=="undefined"&¶ms.append("author_name",author.trim());const label=urlParams.get("label")||"";label&&label.trim()!==""&&label!=="undefined"&¶ms.append("publisher_name",label.trim());const isbn=urlParams.get("isbn")||"";isbn&&isbn.trim()!==""&&isbn!=="undefined"&¶ms.append("isbn_jan",isbn.trim());const itemName=urlParams.get("item_name")||"";itemName&&itemName.trim()!==""&&itemName!=="undefined"&¶ms.append("item_name",itemName.trim());const seldt=urlParams.get("seldt")||"";if(seldt&&seldt.trim()!==""&&seldt!=="undefined"){if(seldt.split("/").length>=3){const formattedSeldt=seldt.replace(/all/gi,"ALL");params.append("publication_date",formattedSeldt.trim())}}else{let today=new Date,year=today.getFullYear()+1,month=String(today.getMonth()+1).padStart(2,"0");params.append("publication_date",`${year}/${month}/ALL/before`)}const minimumPrice=urlParams.get("minimum_price")||"";minimumPrice&&minimumPrice.trim()!==""&&minimumPrice!=="undefined"&&!isNaN(minimumPrice)&¶ms.append("minimum_price",minimumPrice.trim());const maximumPrice=urlParams.get("maximum_price")||"";maximumPrice&&maximumPrice.trim()!==""&&maximumPrice!=="undefined"&&!isNaN(maximumPrice)&¶ms.append("maximum_price",maximumPrice.trim());const sortSelect=urlParams.get("sortSelect")||"";sortSelect&&sortSelect.trim()!==""&&sortSelect!=="undefined"&¶ms.append("sort",sortSelect.trim());const gnrSelect=urlParams.get("gnrSelect%5B%5D")||urlParams.get("gnrSelect[]")||"";gnrSelect&&gnrSelect.trim()!==""&&gnrSelect!=="undefined"&¶ms.append("gnrSelect[]",gnrSelect.trim());const categoryLabel=urlParams.get("category_label")||"";return categoryLabel&&categoryLabel.trim()!==""&&categoryLabel!=="undefined"&¶ms.append("genre_name",categoryLabel.trim()),params.append("adult_flg","2"),params.append("page","1"),params.toString()}mergeFullCategoryTree(){if(!this.fullCategoryTree){console.warn("\u5168\u30AB\u30C6\u30B4\u30EA\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30DE\u30FC\u30B8\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3059\u3002");return}const isTopPage=window.location.search===""||window.location.search==="?";this.currentGenres=this.currentGenres.map(staticParent=>{let dynamicChildrenLevel0=[],filteredApiData=this.fullCategoryTree.filter(dynamicChildLevel0=>staticParent.staticLevel0Values.includes(dynamicChildLevel0.value));return filteredApiData.sort((a,b)=>String(a.value).localeCompare(String(b.value),void 0,{numeric:!0})),dynamicChildrenLevel0=filteredApiData.map(dynamicChildLevel0=>{const childCount=dynamicChildLevel0.count||0;if(childCount>0){let existingLevel0Item=staticParent.children.find(c=>c.value===dynamicChildLevel0.value);if(existingLevel0Item){existingLevel0Item.count=childCount;let level1Children=dynamicChildLevel0.children||[];isTopPage?level1Children.sort((a,b)=>a.value.localeCompare(b.value)):level1Children.sort((a,b)=>
1(b.count||0)-(a.count||0)),level1Children.forEach(child=>{child.children&&child.children.length>0&&(isTopPage?child.children.sort((a,b)=>a.value.localeCompare(b.value)):child.children.sort((a,b)=>(b.count||0)-(a.count||0)))}),existingLevel0Item.children=level1Children,existingLevel0Item.hasFetchedChildren=!0}return existingLevel0Item}return null}).filter(item=>item!=null),staticParent.children=dynamicChildrenLevel0,staticParent}).filter(item=>item.link_url||item.value===""?!0:item.children&&item.children.length>0)}async renderStaticTopGenres(){const staticParents=window.STATIC_TOP_GENRES||[];if(staticParents.length===0){this.container.innerHTML='<div class="search-category-accordion__error">\u30B8\u30E3\u30F3\u30EB\u30EA\u30B9\u30C8\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002</div>';return}this.currentGenres=staticParents.map(item=>{const staticLevel0Values=(item.children||[]).map(child=>child.value);return{label:item.label,value:item.value||null,count:null,link_url:item.link_url||null,children:(item.children||[]).map(child=>({label:child.label,value:child.value,count:null,children:[],isExpanded:!1,hasFetchedChildren:!1})),staticLevel0Values,isExpanded:!1,hasFetchedChildren:!0}}),this.render();const currentUrlParams=new URLSearchParams(window.location.search),hasSearch=this.hasSearchParams(currentUrlParams),isCategory=this.isCategorySearch(currentUrlParams);if(!(hasSearch&&!isCategory))try{const staticJsonUrl=document.getElementById("category-json-url-container").dataset.url,response=await fetch(staticJsonUrl);if(!response.ok)throw new Error(`HTTP error! status: ${response.status}`);const data=await response.json();let genres=data.genres||data.navigations&&data.navigations.genres;if(data.status==="0000"&&genres)this.fullCategoryTree=genres,this.mergeFullCategoryTree(),this.render();else return}catch(error){console.error("\u30AB\u30C6\u30B4\u30EA\u30FC\u30C4\u30EA\u30FC\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",error)}}renderLoading(){this.container.innerHTML=` 2 <div class="search-category-accordion"> 3 <div class="search-category-accordion__loading"> 4 <span>\u8AAD\u307F\u8FBC\u307F\u4E2D...</span> 5 </div> 6 </div> 7 `}renderError(message){this.container.innerHTML=` 8 <div class="search-category-accordion"> 9 <div class="search-category-accordion__error"> 10 <span>${message}</span> 11 </div> 12 </div> 13 `}render(){let genresToRender=this.currentGenres;if(!genresToRender||genresToRender.length===0){this.container.innerHTML=` 14 <div class="search-category-accordion"> 15 <div class="search-category-accordion__loading"> 16 <span>\u30AB\u30C6\u30B4\u30EA\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093</span> 17 </div> 18 </div> 19 `;return}if(!this.isCategoryPage&&this.allowedTopGenres&&this.allowedTopGenres.length>0&&(genresToRender=genresToRender.filter(genre=>genre.value===""?!0:this.allowedTopGenres.includes(genre.label)),genresToRender.length===0)){this.container.innerHTML=` 20 <div class="search-category-accordion"> 21 <div class="search-category-accordion__loading"> 22 <span>\u8868\u793A\u53EF\u80FD\u306A\u30AB\u30C6\u30B4\u30EA\u30FC\u304C\u3042\u308A\u307E\u305B\u3093</span> 23 </div> 24 </div> 25 `;return}this.logGenreStructure(genresToRender,0),this.restoreSelectionState();const accordionHtml=` 26 <div class="search-category-accordion"> 27 28 <div class="search-category-accordion__content"> 29 <ul class="search-category-accordion__list"> 30 ${this.renderGenres(genresToRender)} 31 </ul> 32 </div> 33 </div> 34 `;this.container.innerHTML=accordionHtml}logGenreStructure(genres,level){!genres||!Array.isArray(genres)||genres.forEach((genre,index)=>{const indent=" ".repeat(level);genre.children&&Array.isArray(genre.children)&&genre.children.length>0?this.logGenreStructure(genre.children,level+1):genre.children})}renderGenres(genres,level=0){if(!genres||!Array.isArray(genres))return console.error("Genres is not an array at level",level,":",genres),"";const filteredGenres=genres.filter(genre=>genre.label&&typeof genre.label=="string"&&genre.label.trim()!=="");return filteredGenres.length===0?"":filteredGenres.map((genre,index)=>{const hasChildren=genre.children&&Array.isArray(genre.children)&&genre.children.length>0,escapedLabel=genre.label.replace(/'/g,"\\'"),currentVal=String(genre.value).trim(),currentPath=window.location.pathname,isViewAll=genre.label==="\u3059\u3079\u3066\u306E\u30AB\u30C6\u30B4\u30EA\u3092\u898B\u308B",targetUrl=isViewAll?"https://www.maruzenjunkudo.co.jp/pages/category":`/search?gnrSelect[]=${currentVal}&category_label=${encodeURIComponent(genre.label)}`;let selectedClass="";(currentPath===`/pages/categories/${currentVal}`||this.selectedGenreCode===currentVal)&&(selectedClass=" --selected");let openLargeClass="--closed",openMiddleClass="--closed";this.selectedGenreCode&&(openLargeClass=this.selectedGenreCode.substring(0,2)===genre.value?"--open":"--closed",openMiddleClass=this.selectedGenreCode.substring(0,4)===genre.value?"--open":"--closed");const escapedUrl=targetUrl.replace(/'/g,"\\'"),clickAction=`event.stopPropagation(); searchCategoryAccordion.selectGenre('${genre.value}', '${escapedLabel}', '${escapedUrl}')`,countDisplayHtml=genre.count!==null&&Number(genre.count)>0?'<span class="search-category-accordion__count"></span>':"",liBaseClass=level===0?"search-category-accordion__item":"search-category-accordion__sub-item",finalLiClass=isViewAll?`${liBaseClass} search-category-accordion__view-all-item`:liBaseClass;let html="";return level===0?isViewAll?html=` 35 <li class="${finalLiClass}"> 36 <a href="${targetUrl}" class="search-category-accordion__link mj-drawer__category-view-all" data-genre="${genre.value}"> 37 <div class="search-category-accordion__text-area">
38 <span class="search-category-accordion__clickable-text"> 39 <span class="search-category-accordion__label">${genre.label}</span> 40 ${countDisplayHtml} 41 </span> 42 </div> 43 </a> 44 </li>`:html=` 45 <li class="${finalLiClass}"> 46 <div class="search-category-accordion__link${selectedClass}" data-genre="${genre.value}"> 47 <div class="search-category-accordion__text-area"> 48 <span class="search-category-accordion__clickable-text" onclick="${clickAction}"> 49 <span class="search-category-accordion__label">${genre.label}</span> 50 ${countDisplayHtml} 51 </span> 52 </div> 53 <span class="search-category-accordion__toggle-icon search-category-accordion__toggle-icon${openLargeClass}" onclick="event.stopPropagation(); searchCategoryAccordion.toggleSubCategory('${genre.value}')">\u25B6</span> 54 </div> 55 <ul class="search-category-accordion__sub-list search-category-accordion__sub-list${openLargeClass}" id="sub-list-${genre.value}"> 56 ${this.renderGenres(genre.children,level+1)} 57 </ul> 58 </li>`:level===1?html=` 59 <li class="search-category-accordion__sub-item"> 60 <div class="search-category-accordion__sub-link${selectedClass}" data-genre="${genre.value}"> 61 <div class="search-category-accordion__text-area"> 62 <span class="search-category-accordion__clickable-text" onclick="${clickAction}"> 63 <span class="search-category-accordion__label">${genre.label}</span> 64 </span> 65 <span class="search-category-accordion__label">${countDisplayHtml}</span> 66 </div> 67 ${hasChildren?`<span class="search-category-accordion__sub-toggle-icon search-category-accordion__sub-toggle-icon--closed" 68 onclick="event.stopPropagation(); searchCategoryAccordion.toggleSubSubCategory('${genre.value}')">\u25B6</span>`:""} 69 </div> 70 ${hasChildren?` 71 <ul class="search-category-accordion__sub-sub-list search-category-accordion__sub-sub-list--closed" id="sub-sub-list-${genre.value}"> 72 ${this.renderGenres(genre.children,level+1)} 73 </ul> 74 `:""} 75 </li>`:html=` 76 <li class="search-category-accordion__sub-sub-item"> 77 <div class="search-category-accordion__sub-sub-link${selectedClass}" onclick="${clickAction}" data-genre="${genre.value}"> 78 <span class="search-category-accordion__label">${genre.label}</span> 79 ${countDisplayHtml} 80 </div> 81 </li>`,html}).join("")}selectGenre(genreCode,genreLabel,customUrl=null){this.clearAllSelections(),this.selectedGenreCode=genreCode,this.updateSelectionDisplay(genreCode),window.selectedCategoryCode=genreCode,window.selectedCategoryLabel=genreLabel,customUrl?this.navigateToCategory(genreCode,customUrl):this.performCategorySearch(genreCode,genreLabel)}async navigateToCategory(genreCode,fallbackUrl){const code=String(genreCode).trim();if(!/^[0-9]+$/.test(code)){window.location.href=fallbackUrl;return}const targetUrl=`/pages/categories/${code}`,checks=SearchCategoryAccordion.categoryPageChecks;checks.has(code)||checks.set(code,fetch(targetUrl,{method:"HEAD"}).then(response=>response.ok).catch(error=>(console.error("\u30AB\u30C6\u30B4\u30EAURL\u691C\u8A3C\u30A8\u30E9\u30FC:",error),!1))),window.location.href=await checks.get(code)?targetUrl:fallbackUrl}performCategorySearch(genreCode,genreLabel){const urlParams=new URLSearchParams(window.location.search),searchParams=new URLSearchParams,keyword=urlParams.get("keywords")||urlParams.get("q")||"";keyword&&(urlParams.get("q")?searchParams.append("q",keyword):urlParams.get("keywords")?searchParams.append("keywords",keyword):searchParams.append("q",keyword));const productName=urlParams.get("product_name")||"";productName&&searchParams.append("product_name",productName);const author=urlParams.get("author")||"";author&&searchParams.append("author",author);const label=urlParams.get("label")||"";label&&searchParams.append("label",label);const isbn=urlParams.get("isbn")||"";isbn&&searchParams.append("isbn",isbn);const itemName=urlParams.get("item_name")||"";itemName&&searchParams.append("item_name",itemName);const seldt=urlParams.get("seldt")||"";seldt&&searchParams.append("seldt",seldt);const minimumPrice=urlParams.get("minimum_price")||"";minimumPrice&&searchParams.append("minimum_price",minimumPrice);const maximumPrice=urlParams.get("maximum_price")||"";maximumPrice&&searchParams.append("maximum_price",maximumPrice);const sortSelect=urlParams.get("sortSelect")||"";sortSelect&&searchParams.append("sortSelect",sortSelect),searchParams.append("gnrSelect[]",genreCode),searchParams.append("category_label",genreLabel);const searchUrl="/search?"+searchParams.toString();window.location.href=searchUrl}clearAllSelections(){const allLinks=document.querySelectorAll(".search-category-accordion__link, .search-category-accordion__sub-link, .search-category-accordion__sub-sub-link"),allClickableTexts=document.querySelectorAll(".search-category-accordion__clickable-text");allLinks.forEach(link=>{link.classList.remove("--selected")}
81),allClickableTexts.forEach(clickableText=>{clickableText.classList.remove("--selected")})}updateSelectionDisplay(genreCode){this.clearAllSelections();const selectedElement=document.querySelector(`[data-genre="${genreCode}"]`);if(selectedElement){selectedElement.classList.add("--selected");const clickableText=selectedElement.querySelector(".search-category-accordion__clickable-text");clickableText&&clickableText.classList.add("--selected")}}restoreSelectionState(){const urlParams=new URLSearchParams(window.location.search);let currentGenreCodes=[];currentGenreCodes=urlParams.getAll("gnrSelect%5B%5D"),currentGenreCodes.length===0&&(currentGenreCodes=urlParams.getAll("gnrSelect[]")),currentGenreCodes.length===0&&urlParams.has("gnrSelect")&¤tGenreCodes.push(urlParams.get("gnrSelect")),currentGenreCodes.length>0?this.selectedGenreCode=currentGenreCodes[currentGenreCodes.length-1]:this.selectedGenreCode=null}toggleAccordion(){const content=document.getElementById("category-accordion-content"),icon=document.getElementById("category-accordion-icon");content.classList.contains("search-category-accordion__content--open")?(content.classList.remove("search-category-accordion__content--open"),icon.classList.remove("search-category-accordion__icon--open")):(content.classList.add("search-category-accordion__content--open"),icon.classList.add("search-category-accordion__icon--open"))}async toggleSubCategory(genreValue){const subList=document.getElementById(`sub-list-${genreValue}`),toggleIcon=subList?.parentElement?.querySelector(".search-category-accordion__link")?.querySelector(".search-category-accordion__toggle-icon");if(!subList){console.error("Sub list element not found:",`sub-list-${genreValue}`);return}if(!subList.classList.contains("search-category-accordion__sub-list--closed"))subList.classList.remove("search-category-accordion__sub-list--open"),subList.classList.add("search-category-accordion__sub-list--closed"),toggleIcon&&(toggleIcon.classList.remove("search-category-accordion__toggle-icon--open"),toggleIcon.classList.add("search-category-accordion__toggle-icon--closed"));else{const targetGenre=this.currentGenres.find(g=>g.value===genreValue);if(targetGenre&&(!targetGenre.children||targetGenre.children.length===0)){const childrenData=await this.fetchChildren(genreValue);if(childrenData&&childrenData.length>0){targetGenre.children=childrenData,this.render();const newSubList=document.getElementById(`sub-list-${genreValue}`),newToggleIcon=newSubList?newSubList.parentElement.querySelector(".search-category-accordion__toggle-icon"):null;newSubList&&(newSubList.classList.remove("search-category-accordion__sub-list--closed"),newSubList.classList.add("search-category-accordion__sub-list--open")),newToggleIcon&&(newToggleIcon.classList.remove("search-category-accordion__toggle-icon--closed"),newToggleIcon.classList.add("search-category-accordion__toggle-icon--open"))}else{console.log(`No children found for ${targetGenre.label}.`);return}}subList.classList.remove("search-category-accordion__sub-list--closed"),subList.classList.add("search-category-accordion__sub-list--open"),toggleIcon&&(toggleIcon.classList.remove("search-category-accordion__toggle-icon--closed"),toggleIcon.classList.add("search-category-accordion__toggle-icon--open"))}}toggleSubSubCategory(genreValue){const listElement=document.getElementById(`sub-sub-list-${genreValue}`);if(!listElement){console.error("Sub-sub list element not found:",`sub-sub-list-${genreValue}`);return}const toggleIcon=listElement.parentElement?listElement.parentElement.querySelector(".search-category-accordion__sub-toggle-icon, .search-category-accordion__sub-sub-toggle-icon"):null,isClosed=listElement.classList.contains("search-category-accordion__sub-sub-list--closed"),toggleIconClass=toggleIcon.classList.contains("search-category-accordion__sub-toggle-icon")?"search-category-accordion__sub-toggle-icon":"search-category-accordion__sub-sub-toggle-icon";isClosed?(listElement.classList.remove("search-category-accordion__sub-sub-list--closed"),listElement.offsetHeight,listElement.classList.add("search-category-accordion__sub-sub-list--open"),toggleIcon&&(toggleIcon.classList.remove(`${toggleIconClass}--closed`),toggleIcon.classList.add(`${toggleIconClass}--open`))):(listElement.classList.remove("search-category-accordion__sub-sub-list--open"),listElement.classList.add("search-category-accordion__sub-sub-list--closed"),toggleIcon&&(toggleIcon.classList.remove(`${toggleIconClass}--open`),toggleIcon.classList.add(`${toggleIconClass}--closed`)))}openAllSubCategories(){const subLists=document.querySelectorAll(".search-category-accordion__sub-list, .search-category-accordion__sub-sub-list"),toggleIcons=document.querySelectorAll(".search-category-accordion__toggle-icon, .search-category-accordion__sub-toggle-icon");
81subLists.forEach(list=>{list.classList.remove("search-category-accordion__sub-list--closed","search-category-accordion__sub-sub-list--closed")}),toggleIcons.forEach(icon=>{icon.classList.remove("search-category-accordion__toggle-icon--closed","search-category-accordion__sub-toggle-icon--closed")})}closeAllSubCategories(){document.querySelectorAll(".search-category-accordion__sub-list, .search-category-accordion__sub-sub-list").forEach(list=>{list.classList.remove("search-category-accordion__sub-list--open","search-category-accordion__sub-sub-list--open"),list.classList.add("search-category-accordion__sub-list--closed","search-category-accordion__sub-sub-list--closed")}),document.querySelectorAll(".search-category-accordion__toggle-icon, .search-category-accordion__sub-toggle-icon").forEach(icon=>{icon.textContent="\u25B6",icon.classList.remove("search-category-accordion__toggle-icon--open","search-category-accordion__sub-toggle-icon--open"),icon.classList.add("search-category-accordion__toggle-icon--closed","search-category-accordion__sub-toggle-icon--closed")})}}let searchCategoryAccordion;SearchCategoryAccordion.categoryPageChecks=new Map,window.SearchCategoryAccordion=SearchCategoryAccordion,document.addEventListener("DOMContentLoaded",function(){const containerId="search-category-accordion-container",accordionContainer=document.getElementById(containerId);accordionContainer&&((window.location.search===""||window.location.search==="?")&&accordionContainer.classList.add("search-category-accordion--horizontal"),searchCategoryAccordion=new SearchCategoryAccordion(containerId))}); 82//# sourceMappingURL=/cdn/shop/t/3/assets/search-category-accordion_top.js.map?v=119186325984191623971789364435
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.