{"version":3,"sources":["index.js"],"names":["isInViewport","el","rect","getBoundingClientRect","offsetHeight","bottom","right","top","window","innerHeight","document","documentElement","clientHeight","left","innerWidth","clientWidth","throttle","func","wait","mustRun","timeout","startTime","Date","args","arguments","curTime","undefined","requestTimeout","clearRequestTimeout","clearTimeout","apply","this","setTimeout","getElementById","classList","add","querySelector","pageScrollCheckList","cateItems","querySelectorAll","cateActiveClass","cateActive","forEach","item","index","addEventListener","remove","e","preventDefault","indexFeatureCarousel","featureBuild","swiperTarget","swiperEl","parentElement","swiperPageEl","swiperNextEl","swiperPrevEl","slidesCount","length","Swiper","effect","loop","watchOverflow","autoHeight","lazy","preloadImages","pagination","type","navigation","nextEl","prevEl","selector","buildFunction","push","build","fun","pageScrollAdd","$popupEventEl","$","getScreenHeight","style","setProperty","height","getContHeight","get","find","eventPopupResizeThrottle","on","buildEventPopup","pageScrollThrottle","pageScrollHandler","i","Array","prototype","filter","call"],"mappings":"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","file":"../index.min.js","sourcesContent":["/* global Swiper, anime, fetchSvgInline */\r\n\r\n/* ---------------------------------------- [START] isInViewport */\r\nfunction isInViewport(el) {\r\n\tvar rect = el.getBoundingClientRect();\r\n\r\n\tvar isVisible = el.offsetHeight !== 0;\r\n\r\n\treturn (\r\n\t\tisVisible &&\r\n\t\trect.bottom >= 0 &&\r\n\t\trect.right >= 0 &&\r\n\t\trect.top <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n\t\trect.left <= (window.innerWidth || document.documentElement.clientWidth)\r\n\t);\r\n}\r\n/* ---------------------------------------- [END] isInViewport */\r\n\r\n/* ---------------------------------------- [START] 簡單的節流函數 */\r\n// https://www.cnblogs.com/coco1s/p/5499469.html\r\nfunction throttle(func, wait, mustRun) {\r\n\tvar timeout;\r\n\tvar startTime = new Date();\r\n\r\n\treturn function () {\r\n\t\tvar context = this;\r\n\t\tvar args = arguments;\r\n\t\tvar curTime = new Date();\r\n\r\n\t\tif (timeout !== undefined) {\r\n\t\t\tif (window.requestTimeout !== undefined) clearRequestTimeout(timeout);\r\n\t\t\telse clearTimeout(timeout);\r\n\t\t}\r\n\t\t// 如果達到了規定的觸發時間間隔,觸發 handler\r\n\t\tif (curTime - startTime >= mustRun) {\r\n\t\t\tfunc.apply(context, args);\r\n\t\t\tstartTime = curTime;\r\n\t\t\t// 沒達到觸發間隔,重新設定定時器\r\n\t\t} else {\r\n\t\t\tif (window.requestTimeout !== undefined) timeout = requestTimeout(func, wait);\r\n\t\t\telse timeout = setTimeout(func, wait);\r\n\t\t}\r\n\t};\r\n}\r\n/* ---------------------------------------- [END] 簡單的節流函數 */\r\n\r\n(function (window, document) {\r\n\tdocument.getElementById('header').classList.add('transparent');\r\n\tdocument.querySelector('html').classList.add('page-index');\r\n\r\n\t/* ---------------------------------------- [START] 整頁 Scroll 監測 (Before) */\r\n\tvar pageScrollCheckList = []; // 紀錄物件\r\n\tvar pageScrollAdd = function (selector, buildFunction) {\r\n\t\tvar el = document.querySelector(selector);\r\n\t\tif (el === null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tpageScrollCheckList.push({\r\n\t\t\tbuild: false,\r\n\t\t\tel: el,\r\n\t\t\tfun: buildFunction,\r\n\t\t});\r\n\t};\r\n\tvar pageScrollClean = function () {\r\n\t\tpageScrollCheckList = Array.prototype.filter.call(pageScrollCheckList, function (item) {\r\n\t\t\treturn item.build === false;\r\n\t\t});\r\n\t};\r\n\t/* ---------------------------------------- [END] 整頁 Scroll 監測 (Before) */\r\n\r\n\t/* ---------------------------------------- [START] Category */\r\n\tconst cateItems = document.querySelectorAll('.index-cate__item');\r\n\tconst cateActiveClass = 'is-active';\r\n\tlet cateActive = 0;\r\n\tcateItems.forEach((item, index) => {\r\n\t\titem.addEventListener('click', function () {\r\n\t\t\tif (cateActive !== index) {\r\n\t\t\t\tcateItems[cateActive].classList.remove(cateActiveClass);\r\n\t\t\t\tthis.classList.add(cateActiveClass);\r\n\t\t\t\tcateActive = index;\r\n\t\t\t}\r\n\t\t});\r\n\t\titem.querySelector('a').addEventListener('click', function (e) {\r\n\t\t\tif (window.innerWidth >= 1024 && cateActive !== index) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t/* ---------------------------------------- [END] Category */\r\n\r\n\t/* ---------------------------------------- [START] Featured Products */\r\n\tconst indexFeatureCarousel = '#index-feature-carousel';\r\n\r\n\tfunction featureBuild() {\r\n\t\tconst swiperTarget = indexFeatureCarousel;\r\n\t\tconst swiperEl = document.querySelector(swiperTarget).parentElement;\r\n\t\tconst swiperPageEl = swiperEl.querySelector('.swiper-pagination');\r\n\t\tconst swiperNextEl = swiperEl.querySelector('.swiper-button-next');\r\n\t\tconst swiperPrevEl = swiperEl.querySelector('.swiper-button-prev');\r\n\t\tconst slidesCount = swiperEl.querySelectorAll('.swiper-slide').length;\r\n\r\n\t\tconst swiper = new Swiper(swiperTarget, {\r\n\t\t\teffect: 'fade',\r\n\t\t\tloop: slidesCount > 1,\r\n\t\t\twatchOverflow: true,\r\n\t\t\tautoHeight: true,\r\n\t\t\tlazy: true,\r\n\t\t\tpreloadImages: false,\r\n\t\t\tpagination: {\r\n\t\t\t\tel: swiperPageEl,\r\n\t\t\t\ttype: 'fraction',\r\n\t\t\t},\r\n\t\t\tnavigation: {\r\n\t\t\t\tnextEl: swiperNextEl,\r\n\t\t\t\tprevEl: swiperPrevEl,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\twindow.addEventListener('load', function () {\r\n\t\tpageScrollAdd(indexFeatureCarousel, featureBuild);\r\n\t});\r\n\t/* ---------------------------------------- [END] Featured Products */\r\n\r\n\t/* ---------------------------------------- [START] AD Popup */\r\n\tfunction buildEventPopup() {\r\n\t\tvar $popupEventEl = $('#popup-event');\r\n\r\n\t\tif (!$popupEventEl.length) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\t// 加在上\r\n\t\tvar getScreenHeight = function() {\r\n\t\t\tdocument.documentElement.style.setProperty('--screen-height', $(window).height() + \"px\");\r\n\t\t}\r\n\r\n\t\t// 讀取內容高度\r\n\t\tvar getContHeight = function() {\r\n\t\t\t$popupEventEl.get(0).style.setProperty('--cont-height', $popupEventEl.find('.reveal-event__cont').innerHeight() + \"px\");\r\n\t\t}\r\n\r\n\t\tvar eventPopupResize = function() {\r\n\t\t\tgetScreenHeight();\r\n\t\t\tgetContHeight();\r\n\t\t}\r\n\t\tvar eventPopupResizeThrottle = throttle(eventPopupResize, 50, 200); // 節流作用\r\n\r\n\t\t$popupEventEl.on('closeme.zf.reveal', getScreenHeight);\r\n\t\t$popupEventEl.on('open.zf.reveal', getContHeight);\r\n\t\twindow.addEventListener('resize', eventPopupResizeThrottle);\r\n\t}\r\n\r\n\twindow.addEventListener('load', function () {\r\n\t\tbuildEventPopup();\r\n\t});\r\n\t\r\n\t/* ---------------------------------------- [END] AD Popup */\r\n\r\n\t/* ---------------------------------------- [START] 整頁 Scroll 監測 (After) */\r\n\tvar pageScrollThrottle = null;\r\n\tvar pageScrollHandler = function () {\r\n\t\tif (pageScrollCheckList.length === 0) {\r\n\t\t\treturn false;\r\n\t\t} // 因為改成 Page Global 執行,所以不會停止\r\n\r\n\t\tfor (var i = 0; i < pageScrollCheckList.length; i++) {\r\n\t\t\tif (isInViewport(pageScrollCheckList[i].el)) {\r\n\t\t\t\tpageScrollCheckList[i].fun();\r\n\t\t\t\tpageScrollCheckList[i].build = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tpageScrollClean();\r\n\t\t// if (pageScrollCheckList.length === 0) {\r\n\t\t// \toff(window, 'scroll', pageScrollThrottle);\r\n\t\t// }\r\n\t};\r\n\r\n\twindow.addEventListener('load', function () {\r\n\t\tpageScrollThrottle = throttle(pageScrollHandler, 50, 1000); // 節流作用\r\n\t\twindow.addEventListener('scroll', pageScrollThrottle);\r\n\t\tpageScrollHandler();\r\n\t});\r\n\t/* ---------------------------------------- [END] 整頁 Scroll 監測 (After) */\r\n})(window, document);\r\n"],"sourceRoot":"../../src/"}