{"version":3,"file":"product.min.js","sources":["product.min.js"],"sourcesContent":["const { goToTopHandler } = layoutJS\r\n\r\n$(function () {\r\n $('.slider-for').slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: true,\r\n // asNavFor: '.slider-nav',\r\n responsive: [\r\n {\r\n breakpoint: 599,\r\n settings: {\r\n arrows: true,\r\n },\r\n },\r\n ],\r\n })\r\n var imgLessThan4 = $('.slider-nav').find('.product_image_small').length\r\n if (imgLessThan4 <= 4) {\r\n $('.slider-nav').addClass('no_slick')\r\n $('.product_image_small').on('click', function () {\r\n var sliderImg = $(this).attr('data-sliderImg')\r\n $('.slider-for').slick('slickGoTo', parseInt(sliderImg) - 1)\r\n $('.product_image_small').removeClass('active')\r\n $(this).addClass('active')\r\n })\r\n } else {\r\n $('.slider-nav').slick({\r\n slidesToShow: 4,\r\n slidesToScroll: 1,\r\n asNavFor: '.slider-for',\r\n dots: false,\r\n focusOnSelect: true,\r\n })\r\n }\r\n\r\n goToTopHandler()\r\n\r\n $('.favor_item').on('click', function () {\r\n $(this).toggleClass('added')\r\n })\r\n\r\n $('.slider-for').on(\r\n 'afterChange',\r\n function (event, slick, currentSlide, nextSlide) {\r\n imageZoom('slick-current slick-active', 'img_zoom')\r\n }\r\n )\r\n\r\n setTimeout(function () {\r\n imageZoom('slick-current slick-active', 'img_zoom')\r\n $('#img_zoom, #lens').hide().css({ opacity: '1' })\r\n }, 50)\r\n\r\n $('.share').on('click', function () {\r\n var content = $(this).attr('data-url')\r\n const el = document.createElement('textarea')\r\n el.value = content\r\n el.setAttribute('readonly', '')\r\n el.style.position = 'absolute'\r\n el.style.left = '-9999px'\r\n document.body.appendChild(el)\r\n el.select()\r\n document.execCommand('copy')\r\n document.body.removeChild(el)\r\n Swal.fire({\r\n icon: 'success',\r\n html: '連結複製成功',\r\n focusConfirm: false,\r\n confirmButtonText: '關閉',\r\n })\r\n })\r\n})\r\n\r\nfunction infoHandler(index) {\r\n $('.product_info_nav_item').removeClass('active')\r\n $(`.ni${index}`).addClass('active')\r\n $('.info_detail>div').hide()\r\n $(`.info${index}`).fadeIn(300)\r\n}\r\n\r\nfunction productTypeHandler(originalCost, special, idx, sliderImg, inStock) {\r\n // 市售價、特價、對應classname的編號、輪播圖對應的編號、庫存\r\n $('.product_category_button').removeClass('active')\r\n $(`.category${idx}`).addClass('active')\r\n $('.price font').html(`市售價:${originalCost}元`)\r\n if (special) {\r\n $('.price').find('font').css({ color: '#999' })\r\n $('.price span').show().find('b').html(special)\r\n } else {\r\n $('.price').find('font').css({ color: '#333' })\r\n $('.price span').hide()\r\n }\r\n $('.slider-for').slick('slickGoTo', parseInt(sliderImg))\r\n if (parseInt(sliderImg)) {\r\n $('.product_image_small')\r\n .removeClass('active')\r\n .eq(parseInt(sliderImg))\r\n .addClass('active')\r\n }\r\n if (inStock === 0) {\r\n $('.quantity_area, .product_buy_button').addClass('sold_out')\r\n } else {\r\n $('.quantity_area, .product_buy_button').removeClass('sold_out')\r\n }\r\n}\r\n\r\nvar initZoom = false\r\n\r\nfunction imageZoom(imgClass, resultID) {\r\n var img, img_wrapper, lens, result, cx, cy\r\n img = document.getElementsByClassName(imgClass)[0]\r\n result = document.getElementById(resultID)\r\n img_wrapper = document.getElementById('img_large')\r\n lens = document.getElementById('lens')\r\n /* Calculate the ratio between result DIV and lens: */\r\n // lens.style.width = '120px'\r\n // lens.style.height = '120px'\r\n\r\n cx = result.offsetWidth / lens.offsetWidth\r\n cy = result.offsetHeight / lens.offsetHeight\r\n /* Set background properties for the result DIV */\r\n result.style.backgroundImage = \"url('\" + img.src + \"')\"\r\n // result.style.backgroundSize = img.width * cx + 'px ' + img.height * cy + 'px'\r\n result.style.backgroundSize = '1000px 1000px'\r\n\r\n /* Execute a function when someone moves the cursor over the image, or the lens: */\r\n lens.addEventListener('mousemove', moveLens)\r\n img.addEventListener('mousemove', moveLens)\r\n img_wrapper.addEventListener('mouseenter', enterImg)\r\n img_wrapper.addEventListener('mouseleave', leaveImg)\r\n\r\n /* And also for touch screens: */\r\n // lens.addEventListener('touchmove', moveLens)\r\n // img.addEventListener('touchmove', moveLens)\r\n function moveLens(e) {\r\n var pos, x, y\r\n /* Prevent any other actions that may occur when moving over the image */\r\n e.preventDefault()\r\n /* Get the cursor's x and y positions: */\r\n pos = getCursorPos(e)\r\n /* Calculate the position of the lens: */\r\n x = pos.x - lens.offsetWidth / 2\r\n y = pos.y - lens.offsetHeight / 2\r\n /* Prevent the lens from being positioned outside the image: */\r\n if (x > img.width - lens.offsetWidth) {\r\n x = img.width - lens.offsetWidth\r\n }\r\n if (x < 0) {\r\n x = 0\r\n }\r\n if (y > img.height - lens.offsetHeight) {\r\n y = img.height - lens.offsetHeight\r\n }\r\n if (y < 0) {\r\n y = 0\r\n }\r\n /* Set the position of the lens: */\r\n lens.style.left = x + 'px'\r\n lens.style.top = y + 'px'\r\n /* Display what the lens \"sees\": */\r\n result.style.backgroundPosition = '-' + x * cx + 'px -' + y * cy + 'px'\r\n }\r\n function getCursorPos(e) {\r\n var a,\r\n x = 0,\r\n y = 0\r\n e = e || window.event\r\n /* Get the x and y positions of the image: */\r\n a = img.getBoundingClientRect()\r\n /* Calculate the cursor's x and y coordinates, relative to the image: */\r\n x = e.pageX - a.left\r\n y = e.pageY - a.top\r\n /* Consider any page scrolling: */\r\n x = x - window.pageXOffset\r\n y = y - window.pageYOffset\r\n return { x: x, y: y }\r\n }\r\n function enterImg(e) {\r\n lens.style.display = 'block'\r\n result.style.display = 'block'\r\n }\r\n function leaveImg(e) {\r\n lens.style.display = 'none'\r\n result.style.display = 'none'\r\n }\r\n}\r\n"],"names":["goToTopHandler","layoutJS","infoHandler","index","$","removeClass","addClass","hide","fadeIn","productTypeHandler","originalCost","special","idx","sliderImg","inStock","html","find","css","color","show","slick","parseInt","eq","slidesToShow","slidesToScroll","arrows","fade","responsive","breakpoint","settings","length","on","this","attr","asNavFor","dots","focusOnSelect","toggleClass","event","currentSlide","nextSlide","imageZoom","setTimeout","opacity","content","el","document","createElement","value","setAttribute","style","position","left","body","appendChild","select","execCommand","removeChild","Swal","fire","icon","focusConfirm","confirmButtonText","initZoom","imgClass","resultID","img","lens","result","cx","cy","moveLens","e","x","y","preventDefault","window","a","getBoundingClientRect","pageX","pageY","top","pageXOffset","pageYOffset","pos","offsetWidth","offsetHeight","width","height","backgroundPosition","getElementsByClassName","getElementById","img_wrapper","backgroundImage","src","backgroundSize","addEventListener","display"],"mappings":"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"}