PageSourceSearch

https://www.maruzenjunkudo.co.jp/cdn/shop/t/3/assets/search-catego…?v=119186325984191623971789364435

js maruzenjunkudo.co.jp collected 2026-09-24 09:33:43 UTC 27,442 bytes, 82 lines download raw bytes

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"&&params.append("keyword",keyword.trim());const productName=urlParams.get("product_name")||"";productName&&productName.trim()!==""&&productName!=="undefined"&&params.append("product_name",productName.trim());const author=urlParams.get("author")||"";author&&author.trim()!==""&&author!=="undefined"&&params.append("author_name",author.trim());const label=urlParams.get("label")||"";label&&label.trim()!==""&&label!=="undefined"&&params.append("publisher_name",label.trim());const isbn=urlParams.get("isbn")||"";isbn&&isbn.trim()!==""&&isbn!=="undefined"&&params.append("isbn_jan",isbn.trim());const itemName=urlParams.get("item_name")||"";itemName&&itemName.trim()!==""&&itemName!=="undefined"&&params.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)&&params.append("minimum_price",minimumPrice.trim());const maximumPrice=urlParams.get("maximum_price")||"";maximumPrice&&maximumPrice.trim()!==""&&maximumPrice!=="undefined"&&!isNaN(maximumPrice)&&params.append("maximum_price",maximumPrice.trim());const sortSelect=urlParams.get("sortSelect")||"";sortSelect&&sortSelect.trim()!==""&&sortSelect!=="undefined"&&params.append("sort",sortSelect.trim());const gnrSelect=urlParams.get("gnrSelect%5B%5D")||urlParams.get("gnrSelect[]")||"";gnrSelect&&gnrSelect.trim()!==""&&gnrSelect!=="undefined"&&params.append("gnrSelect[]",gnrSelect.trim());const categoryLabel=urlParams.get("category_label")||"";return categoryLabel&&categoryLabel.trim()!==""&&categoryLabel!=="undefined"&&params.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")&&currentGenreCodes.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.