{"id":94037,"date":"2026-05-11T10:11:16","date_gmt":"2026-05-11T01:11:16","guid":{"rendered":"https:\/\/megazoo.co.kr\/eng\/?page_id=94037"},"modified":"2026-06-10T16:41:14","modified_gmt":"2026-06-10T07:41:14","slug":"2026-exhibitor-gallery","status":"publish","type":"page","link":"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/","title":{"rendered":"2026 MEGAZOO PART 1 Exhibitor Gallery"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-margin-top:2%;--awb-margin-top-medium:2%;--awb-margin-top-small:2%;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1456px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\" data-scroll-devices=\"small-visibility,medium-visibility,large-visibility\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-title title fusion-title-1 fusion-no-small-visibility fusion-no-medium-visibility fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-div font-b\" style=\"--awb-text-color:#000000;--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:10px;--awb-margin-left-small:0px;--awb-font-size:var(--awb-custom_typography_3-font-size);\"><div class=\"fusion-title-heading title-heading-center title-heading-tag\" style=\"font-family:var(--awb-custom_typography_3-font-family);font-weight:var(--awb-custom_typography_3-font-weight);font-style:var(--awb-custom_typography_3-font-style);margin:0;letter-spacing:var(--awb-custom_typography_3-letter-spacing);text-transform:uppercase;font-size:1em;line-height:var(--awb-custom_typography_3-line-height);\"><strong>Exhibitor List<\/strong><\/div><\/div><div class=\"fusion-title title fusion-title-2 fusion-no-medium-visibility fusion-no-large-visibility fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-div\" style=\"--awb-text-color:#000000;--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:10px;--awb-margin-left-small:0px;--awb-font-size:26px;\"><div class=\"fusion-title-heading title-heading-center title-heading-tag\" style=\"font-family:var(--awb-custom_typography_3-font-family);font-weight:var(--awb-custom_typography_3-font-weight);font-style:var(--awb-custom_typography_3-font-style);margin:0;letter-spacing:var(--awb-custom_typography_3-letter-spacing);text-transform:uppercase;font-size:1em;line-height:var(--awb-custom_typography_3-line-height);\"><strong>Exhibitor List<\/strong><\/div><\/div><div class=\"fusion-text fusion-text-1 fusion-no-small-visibility fusion-no-medium-visibility\" style=\"--awb-content-alignment:center;--awb-font-size:var(--awb-custom_typography_10-font-size);--awb-line-height:var(--awb-custom_typography_10-line-height);--awb-letter-spacing:var(--awb-custom_typography_10-letter-spacing);--awb-text-transform:var(--awb-custom_typography_10-text-transform);--awb-text-color:var(--awb-custom_color_4);--awb-margin-top:-14px;--awb-text-font-family:var(--awb-custom_typography_10-font-family);--awb-text-font-weight:var(--awb-custom_typography_10-font-weight);--awb-text-font-style:var(--awb-custom_typography_10-font-style);\"><p>Explore the Exhibitors of MEGAZOO 2026<\/p>\n<\/div><div class=\"fusion-text fusion-text-2 fusion-no-medium-visibility fusion-no-large-visibility\" style=\"--awb-content-alignment:center;--awb-font-size:14px;--awb-line-height:var(--awb-custom_typography_10-line-height);--awb-letter-spacing:var(--awb-custom_typography_10-letter-spacing);--awb-text-transform:var(--awb-custom_typography_10-text-transform);--awb-text-color:var(--awb-custom_color_4);--awb-margin-top:-14px;--awb-text-font-family:var(--awb-custom_typography_10-font-family);--awb-text-font-weight:var(--awb-custom_typography_10-font-weight);--awb-text-font-style:var(--awb-custom_typography_10-font-style);\"><p>Explore the Exhibitors of MEGAZOO 2026<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-margin-top:4%;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1456px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\" \/> <!-- icon -->\n<!-- swiper -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Swiper\/11.0.5\/swiper-bundle.min.js\"><\/script>\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Swiper\/11.0.5\/swiper-bundle.min.css\">\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/lodash.js\/4.17.21\/lodash.min.js\"\n  integrity=\"sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g\/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==\" crossorigin=\"anonymous\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/js-cookie@rc\/dist\/js.cookie.min.js\"><\/script>\n<style>\n  .sch_wrap input {\n    width: 100%;\n    height: 100%;\n    border-radius: 10em;\n    border: 1px solid var(--gray-400);\n    padding: 0 6em 0 9.125em;\n  }\n\n  [v-cloak] {\n    display: none;\n  }\n\n  \/* Swiper \ub0b4\ubd80\uc5d0\uc11c \uc790\ub3d9 \uc0dd\uc131\ud558\ub294 SVG \ud654\uc0b4\ud45c\ub97c \uc228\uae30\uace0 \uae30\uc874 ::after \uc544\uc774\ucf58\ub9cc \ub178\ucd9c *\/\n  .brand_view_etc_wrap .swiper-button svg {\n    display: none !important;\n  }\n\n<\/style>\n\n<div id=\"app\" class=\"brand_list_wrap\" v-cloak>\n  <div v-if=\"currentView === 'list'\" class=\"guide\">\n    <section :class=\"{'sch_wrap': true, 'on': onClass}\">\n      <div class=\"sch_field\">\n        <button type=\"button\" class=\"sch_btn\" @click=\"searchBrand\"><span class=\"material-symbols-outlined\">search<\/span><\/button>\n        <input type=\"text\" placeholder=\"Search\" id=\"sch_area\" name=\"sch_area\" v-model=\"searchKeyword\" autocomplete=\"false\"\n          @keyup.enter=\"searchBrand\" @focus=\"onClass = true\">\n        <button type=\"button\" class=\"sch_close_btn\" v-show=\"searchKeyword.trim() !== ''\" @click=\"deleteKeyword\"><span\n            class=\"material-symbols-outlined\">close<\/span><\/button>\n      <\/div>\n      <div class=\"recent_sch_wrap\">\n        <div class=\"head\">\n          <p class=\"tit\">Recent Searches<\/p>\n          <button type=\"button\" class=\"all_del_btn\" @click=\"recentSearchKeywords = []\">Delete All<\/button>\n        <\/div>\n        <div class=\"cont swiper\">\n          <ul class=\"recent_sch_list swiper-wrapper\">\n            <li class=\"swiper-slide\" v-for=\"(keyword, index) in recentSearchKeywords\">\n              <a href=\"#\">\n                <span @click=\"clickRecentKeyword(keyword)\">{{ keyword }}<\/span>\n                <span class=\"material-symbols-outlined\"\n                  @click=\"recentSearchKeywords = recentSearchKeywords.filter(k => k !== keyword)\">close<\/span>\n              <\/a>\n            <\/li>\n            <li class=\"empty\" v-show=\"recentSearchKeywords.length === 0\">\n              No recent searches.\n            <\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n      <div class=\"recent_sch_mask\" @click=\"onClass = false\"><\/div>\n    <\/section>\n    <!-- \ubaa8\ubc14\uc77c\uc6a9 start -->\n    <div class=\"mob_view cate_open_btn\" onclick=\"openCategories('cate_wrap');\">\n      <p class=\"txt\" style=\"margin: 0\">Category<\/p>\n      <span class=\"material-symbols-outlined\">expand_more<\/span>\n    <\/div>\n    <section class=\"mob_view select_cate_area\">\n      <div class=\"select_cate swiper\">\n        <ul class=\"swiper-wrapper\">\n          <!-- \uc120\ud0dd\ud55c \uce74\ud14c\uace0\ub9ac \ub098\uc5f4 \uc704\uce58 -->\n          <li class=\"swiper-slide\" v-for=\"(category, index) in selectedCategories\" :key=\"category.categoryId\">\n            <span class=\"sel_cate\">{{ category.categoryName }} <span class=\"material-symbols-outlined\"\n                @click=\"deleteCategory(category.categoryId)\">close<\/span><\/span>\n          <\/li>\n        <\/ul>\n      <\/div>\n    <\/section>\n    <!-- \ubaa8\ubc14\uc77c\uc6a9 end -->\n    <section class=\"cate_wrap\" id=\"cate_wrap\">\n      <div class=\"cate_box\">\n        <article class=\"cate_field_head mob_view\">\n          <h2 class=\"tit\">Category<\/h2>\n          <p class=\"desc\">Multiple responses possible<\/p>\n        <\/article>\n        <article class=\"cate_field_wrap swiper\">\n          <ul class=\"cate_field_list swiper-wrapper\">\n            <li class=\"swiper-slide cate_field\">\n              <input type=\"checkbox\" id=\"category_all\" name=\"category_all\" v-model=\"useAllCategories\" :disabled=\"useAllCategories\">\n              <label for=\"category_all\">All<\/label>\n            <\/li>\n            <li class=\"swiper-slide cate_field\" v-for=\"(category, index) in fmsCategories\" :key=\"index\">\n              <input type=\"checkbox\" :id=\"'category_' + category.CATEGORY_FIRST_ID\" :name=\"'category_' + category.CATEGORY_FIRST_ID\"\n                :checked=\"selectedCategories.some(c => c.categoryId === category.CATEGORY_FIRST_ID)\"\n                @change=\"event => changeCategories(category.CATEGORY_FIRST_ID, category.CATEGORY_FIRST_NAME, event.target.checked)\">\n              <label :for=\"'category_' + category.CATEGORY_FIRST_ID\">{{ category.CATEGORY_FIRST_NAME }}<\/label>\n            <\/li>\n          <\/ul>\n        <\/article>\n      <\/div>\n    <\/section>\n    <section class=\"gallery_wrap\">\n      <ul class=\"gallery_list\">\n        <li v-for=\"(info, index) in brandInfos\" :key=\"info.COMPANY_FAIR_PROMOTION_BRAND_ID\" class=\"exhibitor_info\">\n          <a\n            :href=\"'#\/detail?company_fair_promotion_id=' + info.COMPANY_FAIR_PROMOTION_ID + '&company_fair_promotion_brand_id=' + info.COMPANY_FAIR_PROMOTION_BRAND_ID\">\n            <div class=\"img\">\n              <img :src=\"getAttachFileUrl(info.COMPANY_BRAND_MAIN_URL)\" @error=\"e => e.target.src = defaultImg\" alt=\"\ube0c\ub79c\ub4dc \uc774\ubbf8\uc9c0\"\n                style=\"object-fit: contain;\">\n            <\/div>\n            <div class=\"txt_box\">\n              <p class=\"brand_name\">{{ info.BRAND_NAME_ENG }}<\/p>\n              <p class=\"cate\" v-html=\"info.CATEGORY_MASTER_DESC_ENG\"><\/p>\n            <\/div>\n          <\/a>\n        <\/li>\n        <!-- \ub9ac\uc2a4\ud2b8 \uc5c6\uc744 \ub54c -->\n        <li class=\"empty\" v-show=\"totalBrandCount === 0\">\n          There is no list.\n        <\/li>\n      <\/ul>\n      <div class=\"pagination\">\n        <ul>\n          <li class=\"move_btn prev_btn\" @click=\"changePage(1)\"><span class=\"material-symbols-outlined\">keyboard_double_arrow_left<\/span><\/li>\n          <li class=\"move_btn prev_btn\" @click=\"changePage(prevBtnPage)\"><span class=\"material-symbols-outlined\">navigate_before<\/span><\/li>\n          <li v-for=\"(pageNumber, index) in pageNumbers\" @click=\"changePage(pageNumber)\" :class=\"{'now' : currentPage === pageNumber}\"><span\n              class=\"page_btn\">{{ pageNumber }}<\/span><\/li>\n          <li class=\"move_btn next_btn\" @click=\"changePage(nextBtnPage)\"><span class=\"material-symbols-outlined\">navigate_next<\/span><\/li>\n          <li class=\"move_btn next_btn \" @click=\"changePage(lastPage)\"><span\n              class=\"material-symbols-outlined\">keyboard_double_arrow_right<\/span><\/li>\n        <\/ul>\n      <\/div>\n    <\/section>\n  <\/div>\n\n  <!-- SPA \uc0c1\uc138\ud398\uc774\uc9c0 \ub808\uc774\uc544\uc6c3 (view_eng.php\uc758 \ub3d4 \uad6c\uc870 \ubc0f \ud074\ub798\uc2a4\uc640 100% \ub3d9\uc77c) -->\n  <div v-else-if=\"currentView === 'detail' && brandInfo\" class=\"brand_view_wrap\">\n    <div class=\"guide\">\n      <!-- Back to List button -->\n      <div class=\"back_to_list\" style=\"margin-bottom: 25px; text-align: left;\">\n        <a href=\"#\/\" class=\"ft_notosans\"\n          style=\"display: inline-flex; align-items: center; text-decoration: none; color: #333; gap: 5px; font-weight: bold;\">\n          <span class=\"material-symbols-outlined\">arrow_back<\/span>\n          <span>Back to List<\/span>\n        <\/a>\n      <\/div>\n      <section class=\"view_head\">\n        <div class=\"brand_img\">\n          <img :src=\"getAttachFileUrl(brandInfo.COMPANY_BRAND_MAIN_URL)\" @error=\"e => e.target.src = defaultImg\"\n            alt=\"\ube0c\ub79c\ub4dc \ub300\ud45c \uc774\ubbf8\uc9c0\" style=\"object-fit: contain;\">\n        <\/div>\n        <ul class=\"brand_info\">\n          <li class=\"name\" v-html=\"brandInfo.BRAND_NAME_ENG\"><\/li>\n          <li class=\"info_cont\">\n            <p class=\"tit\">\u2705 Booth Number<\/p>\n            <p class=\"desc point_color01\" v-html=\"boothNumber\"><\/p>\n          <\/li>\n          <li class=\"info_cont\">\n            <p class=\"tit\">\u2705 Category<\/p>\n            <p class=\"desc point_color01\" v-html=\"brandInfo.MASTER_CATEGORY_DESC_ENG + ' - ' + brandInfo.CATEGORY_DESC_ENG\"><\/p>\n          <\/li>\n          <li class=\"info_cont\">\n            <a :href=\"formatUrl(brandInfo.HOMEPAGE_URL_1)\" class=\"brand_url\" v-if=\"formatUrl(brandInfo.HOMEPAGE_URL_1) !== null\"\n              style=\"padding: 0.76em 0 0.9em;\" target=\"_blank\">Homepage \u2192<\/a>\n            <a :href=\"formatUrl(brandInfo.SNS_URL_1, 'instagram')\" class=\"brand_url\"\n              v-if=\"formatUrl(brandInfo.SNS_URL_1, 'instagram') !== null\" style=\"padding: 0.76em 0 0.9em;\" target=\"_blank\">Instagram \u2192<\/a>\n          <\/li>\n        <\/ul>\n      <\/section>\n      <section class=\"view_cont\">\n        <div class=\"brand_detail\">\n          <p class=\"tit\">\u2705 Brand Description<\/p>\n          <p class=\"desc\" v-html=\"brandInfo.COMPANY_BRAND_INFO_ENG\" style=\"white-space: pre-wrap;\"><\/p>\n        <\/div>\n        <div class=\"brand_detail\">\n          <p class=\"tit\">\u2705 Promotion<\/p>\n          <p class=\"desc\" v-html=\"brandInfo.PROMOTION_INFO_ENG\" style=\"white-space: pre-wrap;\"><\/p>\n        <\/div>\n        <div class=\"brand_view_etc_wrap\">\n          <div class=\"swiper brand_view_img_slide\">\n            <ul class=\"swiper-wrapper\">\n              <li class=\"swiper-slide item\" v-for=\"(imgUrl, index) in companyProductImgUrls(brandInfo)\" :key=\"index\">\n                <img :src=\"imgUrl\" @error=\"e => e.target.src = defaultImg\" alt=\"\uc2ac\ub77c\uc774\ub4dc \uc774\ubbf8\uc9c0\">\n              <\/li>\n            <\/ul>\n          <\/div>\n          <div class=\"swiper-button swiper-button-next\" v-show=\"isMobile\"><\/div>\n          <div class=\"swiper-button swiper-button-prev\" v-show=\"isMobile\"><\/div>\n        <\/div>\n      <\/section>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script type=\"importmap\">\n  {\n    \"imports\": {\n      \"vue\": \"https:\/\/cdn.messeesang.com\/npm\/vue.esm-browser\/3.5.13\/vue.esm-browser.js\"\n    }\n  }\n<\/script>\n\n<script type=\"module\">\n  import {\n    createApp,\n    ref,\n    watch,\n    computed,\n    onMounted,\n    onUnmounted,\n    nextTick\n  } from 'vue'\n\n  const App = {\n    setup() {\n      \/\/ =========================================================================\n      \/\/ [1\ub2e8\uacc4] \uc0c1\uc218 \ubc0f PHP \uc8fc\uc785 \ubcc0\uc218 (Constants & Config)\n      \/\/ =========================================================================\n      const fairMasterId = '6';\n      const fairId = '933';\n      const notUsedCategories = [647, 648, 1012, 1014, 1013];\n      const defaultImg = 'https:\/\/d5bvmdkxgb6q.cloudfront.net\/wp-content\/uploads\/2024\/04\/30174441\/noimage.png';\n      const detailUrl = 'https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery-detail';\n      const COOKIE_NAME = 'megazooSearchKeywords';\n      const brandCountPerPage = 12;\n      const pageNumberCount = 5;\n\n      \/\/ =========================================================================\n      \/\/ [2\ub2e8\uacc4] \ubc18\uc751\ud615 \uc0c1\ud0dc \uc120\uc5b8 (Reactive States)\n      \/\/ =========================================================================\n      \/\/ 1. \uacf5\ud1b5 \ubc0f \ub77c\uc6b0\ud305 \uc0c1\ud0dc\n      const currentView = ref('list'); \/\/ 'list' \ub610\ub294 'detail'\n      const scrollPos = ref(0); \/\/ \ubaa9\ub85d \uc2a4\ud06c\ub864 \ubcf4\uc874\uc6a9\n      const width = ref(window.innerWidth);\n      const onClass = ref(false);\n      const isLoading = ref(false);\n\n      \/\/ 2. \ub9ac\uc2a4\ud2b8 \uc804\uc6a9 \uc0c1\ud0dc\n      const selectedCategories = ref([]);\n      const useAllCategories = ref(true);\n      const searchKeyword = ref('');\n      const recentSearchKeywords = ref([]); \/\/ \ucd5c\uadfc \uac80\uc0c9\uc5b4\n      const brandInfos = ref([]); \/\/ \ube0c\ub79c\ub4dc \ub370\uc774\ud130\n      const totalBrandCount = ref(0);\n      const currentPage = ref(1);\n\n      \/\/ 3. \uc0c1\uc138 \uc804\uc6a9 \uc0c1\ud0dc\n      const detailData = ref(null); \/\/ \ub3d9\uc801 \uc0c1\uc138 \uc815\ubcf4 \ub370\uc774\ud130\n\n      \/\/ =========================================================================\n      \/\/ [3\ub2e8\uacc4] \uacc4\uc0b0\ub41c \uc18d\uc131 (Computed Properties)\n      \/\/ =========================================================================\n      \/\/ 1. \uacf5\ud1b5 \ubc0f \ubc18\uc751\ud615 \uc870\uac74\n      const isMobile = computed(() => width.value <= 760);\n\n      \/\/ 2. \ub9ac\uc2a4\ud2b8\uc6a9 \uacc4\uc0b0\n      const lastPage = computed(() => (totalBrandCount.value !== 0) ? Math.ceil(totalBrandCount.value \/ brandCountPerPage) : 1);\n\n      const pageNumbers = computed(() => {\n        let startNumber = Math.floor((currentPage.value - 1) \/ pageNumberCount) * pageNumberCount + 1;\n        let endNumber = (startNumber + (pageNumberCount - 1)) > lastPage.value ? lastPage.value : startNumber + (pageNumberCount - 1);\n        return Array.from({\n          length: endNumber - startNumber + 1\n        }, (_, i) => startNumber + i);\n      });\n\n      const prevBtnPage = computed(() => {\n        let currentMinPage = Math.min(...pageNumbers.value);\n        return (currentMinPage - pageNumberCount) < 1 ? 1 : (currentMinPage - pageNumberCount);\n      });\n\n      const nextBtnPage = computed(() => {\n        let currentMaxPage = Math.max(...pageNumbers.value);\n        return (currentMaxPage + 1) < lastPage.value ? (currentMaxPage + 1) : lastPage.value;\n      });\n\n      \/\/ 3. \uc0c1\uc138\uc6a9 \uacc4\uc0b0\n      const brandInfo = computed(() => detailData.value?.brandInfo);\n      const boothNumber = computed(() => detailData.value?.boothNumber);\n\n      \/\/ =========================================================================\n      \/\/ [4\ub2e8\uacc4] \uc21c\uc218 \ud5ec\ud37c \ubc0f \ub370\uc774\ud130 \uac00\uacf5 \ud568\uc218 (Helper Functions)\n      \/\/ =========================================================================\n      const getAttachFileUrl = (filePath) => {\n        if (!filePath) return '';\n        return filePath.toLowerCase().startsWith('\/uploadfiles\/online') ? 'https:\/\/img.esfair.kr\/fms' + filePath : filePath;\n      };\n\n      const formatUrl = (rawUrl, filter = null) => {\n        if (rawUrl === null || rawUrl === undefined) return null;\n        if (filter !== null && rawUrl.indexOf(filter) === -1) return null;\n        return rawUrl.indexOf('http') === -1 ? 'https:\/\/' + rawUrl : rawUrl;\n      };\n\n      const companyProductImgUrls = (brandInfo) => {\n        if (!brandInfo) return [];\n        let urls = [];\n        for (let i = 1; i <= 4; i++) {\n          let key = `COMPANY_PRODUCT${i}_URL`;\n          if (brandInfo[key] !== null && brandInfo[key] !== undefined && brandInfo[key].trim() !== '') {\n            urls.push(getAttachFileUrl(brandInfo[key]));\n          }\n        }\n        return urls;\n      };\n\n      const loadCookie = () => {\n        let keywords = Cookies.get(COOKIE_NAME);\n        return keywords ? JSON.parse(keywords) : [];\n      };\n\n      const updateCookie = (cookieValue) => {\n        Cookies.set(COOKIE_NAME, JSON.stringify(cookieValue), {\n          expires: 30\n        });\n      };\n\n      \/\/ =========================================================================\n      \/\/ [5\ub2e8\uacc4] \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \ubc0f \uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec \ud568\uc218 (Event Handlers)\n      \/\/ =========================================================================\n      const changePage = (pageNumber) => {\n        currentPage.value = pageNumber;\n        refreshBrandList();\n      };\n\n      const changeCategories = (categoryId, categoryName, isChecked) => {\n        currentPage.value = 1;\n        searchKeyword.value = '';\n        if (isChecked) {\n          selectedCategories.value.push({\n            categoryId: categoryId,\n            categoryName: categoryName\n          });\n        } else {\n          selectedCategories.value = selectedCategories.value.filter(c => c.categoryId !== categoryId);\n        }\n        selectedCategories.value.sort((a, b) => a.categoryId - b.categoryId);\n      };\n\n      const deleteCategory = (categoryId) => {\n        selectedCategories.value = selectedCategories.value.filter(c => c.categoryId !== categoryId);\n        $(`#category_${categoryId}`).prop('checked', false);\n        currentPage.value = 1;\n      };\n\n      const searchBrand = () => {\n        currentPage.value = 1;\n        refreshBrandList();\n        if (searchKeyword.value.trim() === '') return;\n\n        recentSearchKeywords.value = recentSearchKeywords.value.filter(k => k !== searchKeyword.value);\n        recentSearchKeywords.value.unshift(searchKeyword.value);\n      };\n\n      const deleteKeyword = () => {\n        searchKeyword.value = '';\n        searchBrand();\n      };\n\n      const clickRecentKeyword = (newKeyword) => {\n        searchKeyword.value = newKeyword;\n        searchBrand();\n      };\n\n      \/\/ =========================================================================\n      \/\/ [6\ub2e8\uacc4] \ub77c\uc6b0\ud305 \ubc0f \ub3d4 \uc81c\uc5b4 \ud568\uc218 (Controllers & Routing)\n      \/\/ =========================================================================\n      const getBrandInfo = () => {\n        let searchCategories = selectedCategories.value.length === 0 ? null : selectedCategories.value.map(c => c.categoryId).join(',');\n        return fmsApi.fair.getExhibitorInfo(brandCountPerPage, currentPage.value, fairId, searchCategories, searchKeyword.value, 'BRAND_NAME_ENG',\n          'Y');\n      };\n\n      const refreshBrandList = () => {\n        const data = getBrandInfo();\n        brandInfos.value = data;\n        totalBrandCount.value = data.length === 0 ? 0 : _.first(data).TOT_CNT;\n      };\n\n      let selCateSwiper = undefined;\n      let tabletCateSwiper = undefined;\n      let recentSchSwiper = undefined;\n\n      const initSwiper = () => {\n        if (selCateSwiper != undefined) selCateSwiper.destroy();\n        selCateSwiper = new Swiper(\".select_cate\", {\n          slidesPerView: 'auto',\n          freeMode: true,\n          watchSlidesProgress: true,\n        });\n\n        if (tabletCateSwiper != undefined) tabletCateSwiper.destroy();\n        if (760 < width.value && width.value < 1200) {\n          tabletCateSwiper = new Swiper(\".cate_field_wrap\", {\n            slidesPerView: 'auto',\n            freeMode: true,\n            observer: true,\n            observeParents: true,\n          });\n        }\n\n        if (recentSchSwiper != undefined) recentSchSwiper.destroy();\n        recentSchSwiper = new Swiper(\".recent_sch_wrap .cont\", {\n          slidesPerView: 'auto',\n          freeMode: true,\n          watchSlidesProgress: true,\n        });\n      };\n\n      let brandViewImgSwiper = undefined;\n      const initDetailSwiper = () => {\n        if (brandViewImgSwiper !== undefined) brandViewImgSwiper.destroy();\n        brandViewImgSwiper = new Swiper(\".brand_view_img_slide\", {\n          slidesPerView: 1,\n          spaceBetween: 0,\n          loop: true,\n          observer: true,\n          observeParents: true,\n          navigation: {\n            nextEl: \".brand_view_etc_wrap .swiper-button-next\",\n            prevEl: \".brand_view_etc_wrap .swiper-button-prev\",\n          },\n          breakpoints: {\n            560: {\n              slidesPerView: 2,\n              spaceBetween: 20\n            },\n            960: {\n              slidesPerView: 4,\n              spaceBetween: 46\n            },\n          },\n        });\n      };\n\n      const fetchDetailData = (promotionId, brandId) => {\n        const response = fmsApi.get('fair\/GetPromotionInfo', {\n          company_fair_promotion_id: promotionId,\n          company_fair_promotion_brand_id: brandId,\n          language_type: 2\n        });\n\n        if (response) {\n          const brand = _.first(response.FAR_sd_CompanyFairReqPromotionBrandByType);\n          const common = _.first(response.FAR_sr_CompanyFairReqPromotionCommon);\n\n          detailData.value = {\n            brandInfo: brand,\n            boothNumber: common ? common.BOOTH_NUMBER : ''\n          };\n\n          nextTick(() => {\n            initDetailSwiper();\n          });\n        }\n      };\n\n      const handleHashChange = () => {\n        const hash = window.location.hash;\n\n        if (hash.startsWith('#\/detail')) {\n          if (currentView.value === 'list') {\n            scrollPos.value = window.scrollY; \/\/ \ubaa9\ub85d \uc2a4\ud06c\ub864 \ubcf4\uc874\n          }\n\n          const queryString = hash.split('?')[1];\n          if (queryString) {\n            const params = new URLSearchParams(queryString);\n            const promotionId = params.get('company_fair_promotion_id');\n            const brandId = params.get('company_fair_promotion_brand_id');\n\n            if (promotionId && brandId) {\n              currentView.value = 'detail'; \/\/ \uc0c1\uc138 \ub3d4 \uc6b0\uc120 \ud65c\uc131\ud654\n              fetchDetailData(promotionId, brandId);\n              window.scrollTo(0, 0);\n              return;\n            }\n          }\n        }\n\n        const wasDetail = currentView.value === 'detail';\n        currentView.value = 'list';\n        detailData.value = null;\n\n        if (wasDetail) {\n          nextTick(() => {\n            window.scrollTo(0, scrollPos.value); \/\/ \ubaa9\ub85d \uc2a4\ud06c\ub864 \ubcf5\uc6d0\n          });\n        }\n      };\n\n      const onResize = () => {\n        width.value = window.innerWidth;\n        if (width.value > 760) {\n          $('.sch_wrap').removeClass('on')\n        }\n        initSwiper();\n      };\n\n      \/\/ =========================================================================\n      \/\/ [7\ub2e8\uacc4] \ubc18\uc751\ud615 \uc0c1\ud0dc \uac10\uc2dc (Watchers)\n      \/\/ =========================================================================\n      watch(recentSearchKeywords, (newKeywords) => {\n        updateCookie(newKeywords);\n        initSwiper();\n      }, {\n        deep: true\n      });\n\n      watch(selectedCategories, (newCategories) => {\n        useAllCategories.value = newCategories.length === 0;\n        refreshBrandList();\n        initSwiper();\n      }, {\n        deep: true\n      });\n\n      watch(useAllCategories, (newVal) => {\n        if (newVal === true) {\n          searchKeyword.value = '';\n          currentPage.value = 1;\n          selectedCategories.value = [];\n          $(\".cate_field input\").prop('checked', false);\n        }\n      });\n\n      watch(isMobile, (newVal, oldVal) => {\n        if (newVal !== oldVal) {\n          currentPage.value = 1;\n          refreshBrandList();\n        }\n      });\n\n      \/\/ =========================================================================\n      \/\/ [8\ub2e8\uacc4] \ub77c\uc774\ud504\uc0ac\uc774\ud074 \ud6c5 (Lifecycle Hooks)\n      \/\/ =========================================================================\n      let fmsCategories = fmsApi.fair.findFairCategories(fairMasterId, 'Y');\n      fmsCategories = _.filter(fmsCategories, category => !_.includes(notUsedCategories, category.CATEGORY_FIRST_ID));\n\n      onMounted(() => {\n        initSwiper();\n        window.addEventListener('resize', onResize);\n        window.addEventListener('hashchange', handleHashChange);\n\n        window.addEventListener('scroll', _.throttle(() => {\n          if (currentView.value === 'detail' || !isMobile.value || currentPage.value === lastPage.value) {\n            return;\n          }\n\n          if (window.innerHeight + window.scrollY < document.documentElement.scrollHeight - 500 || isLoading.value) {\n            return;\n          }\n          isLoading.value = true;\n          currentPage.value++;\n          const newBrands = getBrandInfo();\n          brandInfos.value = brandInfos.value.concat(newBrands);\n          totalBrandCount.value = newBrands.length === 0 ? 0 : _.first(newBrands).TOT_CNT;\n          isLoading.value = false;\n        }, 300), true);\n\n        handleHashChange(); \/\/ \uccab \uc8fc\uc18c \ud574\uc2dc \uccb4\ud06c\n\n        \/\/ \ub9ac\uc2a4\ud2b8 \ubdf0\uc778 \uacbd\uc6b0\uc5d0\ub9cc \ub9ac\uc2a4\ud2b8 \ub370\uc774\ud130\ub97c \ub3d9\uc801 \uc870\ud68c\n        if (currentView.value === 'list') {\n          refreshBrandList();\n        }\n        recentSearchKeywords.value = loadCookie();\n      });\n\n      onUnmounted(() => {\n        window.removeEventListener('resize', onResize);\n        window.removeEventListener('hashchange', handleHashChange);\n      });\n\n      \/\/ =========================================================================\n      \/\/ [\ubc18\ud658] \ud15c\ud50c\ub9bf \ubc18\ud658 \uac1d\uccb4 (Return Block)\n      \/\/ =========================================================================\n      return {\n        \/\/ \uace0\uc815 \uc124\uc815\uac12 \ubc0f \ub370\uc774\ud130\n        fairMasterId,\n        fairId,\n        brandCountPerPage,\n        fmsCategories,\n        defaultImg,\n        detailUrl,\n        COOKIE_NAME,\n\n        \/\/ \ub77c\uc6b0\ud305 \ubc0f \ubdf0 \ubaa8\ub4dc\n        currentView,\n        detailData,\n        brandInfo,\n        boothNumber,\n\n        \/\/ \ubc18\uc751\ud615 \ubcc0\uc218\ub4e4\n        selectedCategories,\n        searchKeyword,\n        currentPage,\n        brandInfos,\n        useAllCategories,\n        totalBrandCount,\n        recentSearchKeywords,\n        isMobile,\n        onClass,\n\n        \/\/ \uc5f0\uc0b0 \uc0c1\ud0dc\uac12 (Computed)\n        pageNumbers,\n        lastPage,\n        prevBtnPage,\n        nextBtnPage,\n\n        \/\/ \uba54\uc11c\ub4dc \ubc0f \ud5ec\ud37c \ud568\uc218\n        changeCategories,\n        changePage,\n        searchBrand,\n        deleteCategory,\n        clickRecentKeyword,\n        deleteKeyword,\n        formatUrl,\n        companyProductImgUrls,\n        getAttachFileUrl\n      };\n    }\n  };\n\n  createApp(App).mount('#app');\n\n<\/script>\n<\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1456px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-separator fusion-full-width-sep\" style=\"align-self: center;margin-left: auto;margin-right: auto;margin-top:30px;width:100%;\"><\/div><\/div><\/div><\/div><\/div><\/p>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"footnotes":""},"class_list":["post-94037","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>2026 MEGAZOO PART 1 Exhibitor Gallery - MEGA ZOO ENG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"2026 MEGAZOO PART 1 Exhibitor Gallery - MEGA ZOO ENG\" \/>\n<meta property=\"og:url\" content=\"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/\" \/>\n<meta property=\"og:site_name\" content=\"MEGA ZOO ENG\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-10T07:41:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/d3d4noupcxrf4g.cloudfront.net\/app\/uploads\/sites\/4\/2025\/03\/20052225\/OG_New.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/2026-exhibitor-gallery\\\/\",\"url\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/2026-exhibitor-gallery\\\/\",\"name\":\"2026 MEGAZOO PART 1 Exhibitor Gallery - MEGA ZOO ENG\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/#website\"},\"datePublished\":\"2026-05-11T01:11:16+00:00\",\"dateModified\":\"2026-06-10T07:41:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/2026-exhibitor-gallery\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/2026-exhibitor-gallery\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/2026-exhibitor-gallery\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"2026 MEGAZOO PART 1 Exhibitor Gallery\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/#website\",\"url\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/\",\"name\":\"MEGA ZOO ENG\",\"description\":\"Just another WordPress site\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/megazoo.co.kr\\\/eng\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"2026 MEGAZOO PART 1 Exhibitor Gallery - MEGA ZOO ENG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/","og_locale":"en_US","og_type":"article","og_title":"2026 MEGAZOO PART 1 Exhibitor Gallery - MEGA ZOO ENG","og_url":"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/","og_site_name":"MEGA ZOO ENG","article_modified_time":"2026-06-10T07:41:14+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/d3d4noupcxrf4g.cloudfront.net\/app\/uploads\/sites\/4\/2025\/03\/20052225\/OG_New.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/","url":"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/","name":"2026 MEGAZOO PART 1 Exhibitor Gallery - MEGA ZOO ENG","isPartOf":{"@id":"https:\/\/megazoo.co.kr\/eng\/#website"},"datePublished":"2026-05-11T01:11:16+00:00","dateModified":"2026-06-10T07:41:14+00:00","breadcrumb":{"@id":"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/megazoo.co.kr\/eng\/2026-exhibitor-gallery\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/megazoo.co.kr\/eng\/"},{"@type":"ListItem","position":2,"name":"2026 MEGAZOO PART 1 Exhibitor Gallery"}]},{"@type":"WebSite","@id":"https:\/\/megazoo.co.kr\/eng\/#website","url":"https:\/\/megazoo.co.kr\/eng\/","name":"MEGA ZOO ENG","description":"Just another WordPress site","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/megazoo.co.kr\/eng\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/megazoo.co.kr\/eng\/wp-json\/wp\/v2\/pages\/94037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/megazoo.co.kr\/eng\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/megazoo.co.kr\/eng\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/megazoo.co.kr\/eng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/megazoo.co.kr\/eng\/wp-json\/wp\/v2\/comments?post=94037"}],"version-history":[{"count":3,"href":"https:\/\/megazoo.co.kr\/eng\/wp-json\/wp\/v2\/pages\/94037\/revisions"}],"predecessor-version":[{"id":94070,"href":"https:\/\/megazoo.co.kr\/eng\/wp-json\/wp\/v2\/pages\/94037\/revisions\/94070"}],"wp:attachment":[{"href":"https:\/\/megazoo.co.kr\/eng\/wp-json\/wp\/v2\/media?parent=94037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}