1import * as api from '../../../trend/js/components/api.js'; 2 3/** 4 * å¸åºçºæã®ãããããã¦ã³ãªã¹ããçæãã 5 * @param {string} prefCd é½éåºçã³ã¼ã 6 * @param {object} ulElement ãã«ãã¦ã³ã®ulè¦ç´ 7 */ 8export const generateCityList = async (prefCd, ulElement) => { 9 const cityData = await api.fetchCityData(prefCd); 10 generateDropdownList(cityData, 'bukkenCityCd', ulElement); 11} 12 13/** 14 * 大åã»éç§°ã®ãããããã¦ã³ãªã¹ããçæãã 15 * @param {string} prefCd é½éåºçã³ã¼ã 16 * @param {string} cityCd å¸åºçºæã³ã¼ã 17 * @param {object} ulElement ãã«ãã¦ã³ã®ulè¦ç´ 18 */ 19export const generateTownList = async (prefCd, cityCd, ulElement) => { 20 const townData = await api.fetchTownData(prefCd, cityCd); 21 generateDropdownList(townData, 'bukkenTownCd', ulElement); 22} 23 24/** 25 * åã»ä¸ç®ã®ãããããã¦ã³ãªã¹ããçæãã 26 * @param {string} prefCd é½éåºçã³ã¼ã 27 * @param {string} cityCd å¸åºçºæã³ã¼ã 28 * @param {string} townCd çºåã³ã¼ã 29 * @param {object} ulElement ãã«ãã¦ã³ã®ulè¦ç´ 30 */ 31export const generateChomeList = async (prefCd, cityCd, townCd, ulElement) => { 32 const chomeData = await api.fetchChomeData(prefCd, cityCd, townCd); 33 generateDropdownList(chomeData, 'bukkenChomeCd', ulElement); 34} 35 36/** 37 * APIã§åå¾ãã使æ å ±ãå ã«ãããããã¦ã³ãªã¹ããçæãã 38 * @param {object} target å¸åºçºææ å ± || 大åã»éç§°æ å ± || ä¸ç®æ å ± 39 * @param {string} category bukkenCityCd || bukkenTownCd || bukkenChomeCd 40 * @param {object} ulElement ãã«ãã¦ã³ã®ulè¦ç´ 41 */ 42function generateDropdownList(target, category, ulElement) { 43 ulElement.innerHTML = ''; 44 45 if (category === 'bukkenCityCd' || category === 'bukkenTownCd') { 46 Object.keys(target).forEach(listHeader => { 47 // liè¦ç´ ã使 48 const dataList = document.createElement('li'); 49 dataList.classList.add('data-list'); 50 51 // pè¦ç´ ã使ãã¦liè¦ç´ ã«è¿½å 52 const listName = document.createElement('p'); 53 listName.classList.add('list-name', 'catch'); 54 listName.textContent = listHeader; 55 dataList.appendChild(listName); 56 57 // ulè¦ç´ ã使 58 const targetList = target[listHeader]; 59 var innerList = ''; 60 switch (category) { 61 case 'bukkenCityCd': 62 innerList = generateUlElementCity(targetList); 63 break; 64 case 'bukkenTownCd': 65 innerList = generateUlElementTown(targetList); 66 break; 67 } 68 69 // liè¦ç´ ã«ulè¦ç´ ã追å 70 dataList.appendChild(innerList); 71 72 // 使ãããªã¹ãã親è¦ç´ ã«è¿½å 73 ulElement.appendChild(dataList); 74 }); 75 } else { 76 generateUlElementChome(target, ulElement); 77 } 78} 79 80/** 81 * å¸åºçºæã®Ulè¦ç´ ãçæãã 82 * @param {object} cities å¸åºçºæãªã¹ã 83 * @return ulè¦ç´ 84 */ 85function generateUlElementCity(cities) { 86 const innerList = document.createElement('ul'); 87 cities.forEach(city => { 88 const listItem = document.createElement('li'); 89 listItem.setAttribute('data-value', city.cityCd); 90 listItem.textContent = city.cityName; 91 innerList.appendChild(listItem); 92 }); 93 94 return innerList; 95} 96 97/** 98 * 大åã»éç§°ã®Ulè¦ç´ ãçæãã 99 * @param {object} towns 大åã»éç§°ãªã¹ã 100 * @return ulè¦ç´ 101 */ 102function generateUlElementTown(towns) { 103 const innerList = document.createElement('ul'); 104 towns.forEach(town => { 105 const listItem = document.createElement('li'); 106 listItem.setAttribute('data-value', town.townCd); 107 listItem.textContent = town.townName == '' ? 'çºåãªã' : town.townName; 108 innerList.appendChild(listItem); 109 }); 110 111 return innerList; 112} 113 114/** 115 * åã»ä¸ç®ã®Ulè¦ç´ ãçæãã 116 * @param {object} chomes åã»ä¸ç®ãªã¹ã 117 * @param {object} ulElement ãã«ãã¦ã³ã®ulè¦ç´ 118 */ 119function generateUlElementChome(chomes, ulElement) { 120 chomes.forEach(chome => { 121 const listItem = document.createElement('li'); 122 listItem.setAttribute('data-value', chome.chomeCd); 123 listItem.textContent = chome.chomeName; 124 ulElement.appendChild(listItem); 125 }); 126}
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.