{"version":3,"file":"index.js","sources":["../../src/scripts/pages/home.js"],"sourcesContent":["import \"lity/dist/lity.min.css\";\nimport \"@/styles/pages/home.scss\";\nimport gsap from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport Swiper from \"swiper\";\nimport { Navigation, Pagination } from \"swiper/modules\";\nimport \"waypoints/lib/noframework.waypoints.min.js\";\nimport \"paginationjs\";\nimport counterUp from \"counterup2\";\nimport \"lity/dist/lity.min.js\";\n\ngsap.registerPlugin(ScrollTrigger);\n\n// check the screen size at first\nconst isLargeScreen = $(window).width() >= 1400;\nconst isAboveMd2 = $(window).width() >= 992;\n\n// Dom is ready\n$(function () {\n $(\".tab\").on(\"click\", function () {\n $(\".tab\").removeClass(\"active\");\n $(this).addClass(\"active\");\n currentPerformanceType = $(this).data(\"tab\");\n resetformanInit();\n });\n\n // video\n $(\".button-play\").on(\"click\", function (e) {\n e.preventDefault();\n });\n\n $(document).on(\"lity:ready\", function (event, $lightbox) {\n $(\".lity-content\").append(\n '

※相關資料統計截⾄2023年12⽉

'\n );\n });\n\n if (isAboveMd2) {\n $(\".tab\").removeClass(\"active\");\n $('.tab[data-tab=\"all\"]').addClass(\"active\");\n } else {\n $(\".tab\").removeClass(\"active\");\n $('.tab[data-tab=\"climate\"]').addClass(\"active\");\n }\n\n keySectionPin();\n performanceInit();\n});\n\n// $(window).on(\"load\", async function () {\n// performanceInit();\n// });\n\n\n/** Counter **/\nconst initCounter = () => {\n $(\".counter\").each(function () {\n // Create a waypoint for each counter element\n const counterElement = this;\n new Waypoint({\n element: counterElement,\n handler: function () {\n // Trigger counterUp animation\n counterUp(counterElement, {\n duration: 1000,\n delay: 20,\n });\n // Destroy this waypoint after triggering\n this.destroy();\n },\n offset: \"bottom-in-view\", // Trigger when the bottom of the element is in view\n });\n });\n};\n\n/** Swiper **/\nconst swiperAwardsMobile = new Swiper(\".swiper.swiper__awards-mobile\", {\n modules: [Navigation, Pagination],\n spaceBetween: 30,\n slidesPerView: 1,\n pagination: {\n el: \".swiper__awards-mobile .swiper-pagination\",\n type: \"fraction\",\n formatFractionCurrent: function (number) {\n const myNum = String(number).padStart(2, \"0\");\n return myNum;\n },\n formatFractionTotal: function (number) {\n const myNum = String(number).padStart(2, \"0\");\n return myNum;\n },\n },\n navigation: {\n nextEl: \".swiper__awards-mobile .swiper-button-next\",\n prevEl: \".swiper__awards-mobile .swiper-button-prev\",\n },\n});\n\nconst swiperAwardsDesktop = new Swiper(\".swiper.swiper__awards-desktop\", {\n modules: [Navigation, Pagination],\n slidesPerView: \"auto\",\n spaceBetween: 12,\n pagination: {\n el: \".swiper__awards-desktop .swiper-pagination\",\n type: \"fraction\",\n formatFractionCurrent: function (number) {\n const myNum = String(number).padStart(2, \"0\");\n return myNum;\n },\n formatFractionTotal: function (number) {\n const myNum = String(number).padStart(2, \"0\");\n return myNum;\n },\n },\n navigation: {\n nextEl: \".swiper__awards-desktop .swiper-button-next\",\n prevEl: \".swiper__awards-desktop .swiper-button-prev\",\n },\n});\n\nconst swiperNews = new Swiper(\".swiper.swiper__news\", {\n slidesPerView: \"auto\",\n spaceBetween: 12,\n\n breakpoints: {\n 1180: {\n spaceBetween: 30,\n slidesPerView: \"4\",\n },\n },\n});\n\n/** pagination of Performance */\n\nlet currentPerformanceData = [];\nlet currentPerformanceType = $(window).width() >= 992 ? \"all\" : \"climate\";\nlet limit = isLargeScreen ? 5 : 4;\nconst performancePagination = $(\"#sec-performance .cus__pagination\");\n\nconst performanceInit = () => {\n performancePagination.pagination({\n dataSource: function (done) {\n $.ajax({\n type: \"GET\",\n url: \"data/performance.json\",\n success: function (response) {\n done(\n response.data.filter((item) => {\n if (currentPerformanceType !== \"all\") {\n return item.type === currentPerformanceType;\n } else {\n return response.data;\n }\n })\n );\n currentPerformanceData = response.data.filter((item) => {\n return item.type === currentPerformanceType;\n });\n },\n });\n },\n callback: function (currentPerformanceData, pagination) {\n if (pagination.totalNumber <= limit) {\n performancePagination.hide();\n } else {\n performancePagination.show();\n }\n\n let html = templating(currentPerformanceData);\n $(\".performance__card-wrapper\").html(html);\n initCounter();\n ScrollTrigger.refresh();\n },\n showNavigator: true,\n formatNavigator:\n \"
0<%= currentPage %> / 0<%= totalPage %>
\",\n prevText: \"\",\n nextText: \"\",\n showPageNumbers: false,\n pageSize: limit,\n });\n};\n\nconst resetformanInit = () => {\n performancePagination.pagination(\"destroy\");\n performanceInit();\n};\n\nconst templating = (data) => {\n let html = \"\";\n\n data.forEach((item) => {\n html += `
\n
\n

${item.title}

\n
${item.content}
\n
\n
\n ${item.number}\n ${item.unit}\n
\n
`;\n });\n\n return html;\n};\n\n/** key section scoll pin **/\n\nconst keySectionPin = () => {\n let mm = gsap.matchMedia();\n\n const ct = $(\"#sec-key\");\n const progress = $(\".progress\");\n const slides = $(\".key__item\");\n const slide1 = $(\".key__item[data-slide='1']\");\n const slide2 = $(\".key__item[data-slide='2']\");\n const slide3 = $(\".key__item[data-slide='3']\");\n\n mm.add(\"(min-width:575px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n // markers: true,\n trigger: ct,\n duration: 1.5,\n pin: true,\n scrub: true,\n start: \"top top\",\n end: \"+=1500\",\n toggleActions: \"restart pause resume pause\",\n onUpdate: (self) => {\n progress.css(\"height\", self.progress * 100 + \"%\");\n if (self.progress * 100 < 100 / 3) {\n slides.css(\"zIndex\", 1);\n slide1.css(\"zIndex\", 3);\n } else if (\n self.progress * 100 > 100 / 3 &&\n self.progress * 100 < (100 / 3) * 2\n ) {\n slides.css(\"zIndex\", 1);\n slide2.css(\"zIndex\", 3);\n } else {\n slides.css(\"zIndex\", 1);\n slide3.css(\"zIndex\", 3);\n }\n },\n },\n });\n\n // Slides Scroll Animation\n tl.from(\n \"[data-slide='1'] \",\n {\n opacity: 1,\n duration: 1,\n },\n \"+=1\"\n )\n\n .to(\n \"[data-slide='1'] \",\n {\n opacity: 0,\n duration: 0.5,\n ease: \"power1.inOut\",\n },\n \"+=10\"\n )\n\n .from(\n \"[data-slide='2'] \",\n {\n opacity: 0,\n duration: 0.5,\n },\n \"+=0\"\n )\n .to(\n \"[data-slide='2']\",\n {\n opacity: 0,\n duration: 0.5,\n ease: \"power1.inOut\",\n },\n \"+=10\"\n )\n\n .from(\n \"[data-slide='3']\",\n {\n opacity: 0,\n duration: 0.5,\n },\n \"+=0\"\n )\n .to(\n \"[data-slide='3']\",\n {\n opacity: 1,\n duration: 0.5,\n ease: \"power1.inOut\",\n },\n \"+=10\"\n );\n });\n};\n"],"names":["gsap"],"mappings":"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"}