{"version":3,"sources":["main.min.js","main.js"],"names":["$","document","ready","textfieldFocusAnimation","toggleCart","trackVideo","headerScrollYListener","headerZoneMapping","headerSearchMapping","headerLanguageMapping","headerZoneNavMapping","toggleMobileHeader","toggleAccount","toggleSearchbox","toggleLanguage","homeBannerInit","productFilterMapping","toggleProductFilterMobile","toggleProductFilterGroup","activeFirstProductFilterGroupWhenPageLoaded","setProductDetailSliderHeight","productDetailSliderInit","touchspinInit","customRadioInit","customCheckboxInit","MappingListener","selector","mobileWrapper","mobileMethod","desktopWrapper","desktopMethod","breakpoint","watch","error","on","this","toggleClass","parent","addClass","removeClass","scrollTop","hasClass","window","outerWidth","next","Swiper","slidesPerView","spaceBetween","autoplay","speed","effect","navigation","nextEl","prevEl","hideProductFilterButtonWhenScrollIntoFooter","length","offset","top","outerHeight","slideToggle","first","trigger","productThumbs","direction","centeredSlides","slideToClickedSlide","productImages","controller","control","loop","breakpoints","320","992","currentWidth","css","inputSelector","currentValue","val","prev","groupName","children","attr","removeAttr","e","preventDefault","currentCheckbox","is","setTimeout","location","href","onscroll"],"mappings":"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","file":"main.min.js","sourcesContent":[null,"$(document).ready(function () {\n\t//global\n\ttextfieldFocusAnimation();\n\ttoggleCart();\n\ttrackVideo();\n\n\t//Header Mapping\n\theaderScrollYListener();\n\theaderZoneMapping();\n\theaderSearchMapping();\n\theaderLanguageMapping();\n\theaderZoneNavMapping();\n\n\t//Mobile Header\n\ttoggleMobileHeader();\n\ttoggleAccount();\n\n\t//Desktop Header\n\ttoggleSearchbox();\n\ttoggleLanguage();\n\n\t//Banner\n\thomeBannerInit();\n\n\t//ProductList\n\tproductFilterMapping();\n\ttoggleProductFilterMobile();\n\ttoggleProductFilterGroup();\n\tactiveFirstProductFilterGroupWhenPageLoaded();\n\n\t//Product Detail\n\tsetProductDetailSliderHeight();\n\tproductDetailSliderInit();\n\n\t//Checkout\n\ttouchspinInit();\n\tcustomRadioInit();\n\tcustomCheckboxInit();\n});\n\n\nvar headerZoneMapping = function () {\n\ttry {\n\t\treturn new MappingListener({\n\t\t\tselector: '.canhcam-header-1 .header-zone-list',\n\t\t\tmobileWrapper: '.mobile-header',\n\t\t\tmobileMethod: 'appendTo',\n\t\t\tdesktopWrapper: '.canhcam-header-1 .logo',\n\t\t\tdesktopMethod: 'insertAfter',\n\t\t\tbreakpoint: 992\n\t\t}).watch();\n\t} catch (error) {}\n}\n\nvar headerSearchMapping = function () {\n\ttry {\n\t\treturn new MappingListener({\n\t\t\tselector: '.canhcam-header-1 .search',\n\t\t\tmobileWrapper: '.mobile-header .mobile-sidenav',\n\t\t\tmobileMethod: 'prependTo',\n\t\t\tdesktopWrapper: '.desktop-header .hamburger',\n\t\t\tdesktopMethod: 'insertBefore',\n\t\t\tbreakpoint: 992\n\t\t}).watch();\n\t} catch (error) {}\n}\n\nvar headerLanguageMapping = function () {\n\ttry {\n\t\treturn new MappingListener({\n\t\t\tselector: '.language',\n\t\t\tmobileWrapper: '.mobile-header .mobile-sidenav',\n\t\t\tmobileMethod: 'appendTo',\n\t\t\tdesktopWrapper: '.account',\n\t\t\tdesktopMethod: 'insertAfter',\n\t\t\tbreakpoint: 992\n\t\t}).watch();\n\t} catch (error) {}\n}\n\nvar headerZoneNavMapping = function () {\n\ttry {\n\t\treturn new MappingListener({\n\t\t\tselector: '.zone-nav',\n\t\t\tmobileWrapper: '.mobile-header',\n\t\t\tmobileMethod: 'appendTo',\n\t\t\tdesktopWrapper: '.desktop-header',\n\t\t\tdesktopMethod: 'appendTo',\n\t\t\tbreakpoint: 992\n\t\t}).watch();\n\t} catch (error) {}\n}\n\nvar toggleMobileHeader = function () {\n\t$('body').on('click', '.canhcam-header-1 .hamburger', function () {\n\t\t$(this).toggleClass('active');\n\t\t$('.mobile-header').toggleClass('active');\n\t\t$('.header-container').toggleClass('active');\n\t});\n}\n\nvar textfieldFocusAnimation = function () {\n\t$('body').on('focusin', 'input:text, textarea', function () {\n\t\t$(this).parent().addClass('active');\n\t});\n\t$('body').on('focusout', 'input:text, textarea', function () {\n\t\t$(this).parent().removeClass('active');\n\t});\n}\n\nvar headerScrollYListener = function () {\n\tif ($('html, body').scrollTop() > 60) {\n\t\t$('.header-container').removeClass('attop');\n\t} else {\n\t\tif (!$('.header-container').hasClass('attop')) {\n\t\t\t$('.header-container').addClass('attop')\n\t\t}\n\t}\n}\n\nvar toggleSearchbox = function () {\n\t$('body').on('click', '.btn-search', function () {\n\t\t$('.language').removeClass('active');\n\t\t$('.search').toggleClass('active');\n\t});\n}\n\nvar toggleLanguage = function () {\n\t$('body').on('click', '.current-language', function () {\n\t\t$('.search').removeClass('active');\n\t\t$('.language').toggleClass('active');\n\t});\n}\n\nvar toggleAccount = function() {\n\tif($(window).outerWidth() < 992) {\n\t\t$('body').on('click', '.canhcam-header-1 .mdi.mdi-account-circle', function() {\n\t\t\t$(this).next().toggleClass('active');\n\t\t});\n\t}\n}\n\nvar homeBannerInit = function () {\n\treturn new Swiper('.banner-trangchu .swiper-container', {\n\t\tslidesPerView: 1,\n\t\tspaceBetween: 0,\n\t\tautoplay: true,\n\t\tspeed: 4000,\n\t\teffect: 'fade',\n\t\tnavigation: {\n\t\t\tnextEl: '.button-next',\n\t\t\tprevEl: '.button-prev',\n\t\t}\n\t});\n}\n\nvar productFilterMapping = function () {\n\ttry {\n\t\treturn new MappingListener({\n\t\t\tselector: '.product-filter',\n\t\t\tmobileWrapper: '.mobile-filter',\n\t\t\tmobileMethod: 'appendTo',\n\t\t\tdesktopWrapper: '.desktop-filter',\n\t\t\tdesktopMethod: 'appendTo',\n\t\t\tbreakpoint: 992\n\t\t}).watch();\n\t} catch (error) {}\n}\n\nvar hideProductFilterButtonWhenScrollIntoFooter = function () {\n\tif ($('.btn-filter').length) {\n\t\tif (($('html, body').scrollTop()) >= ($('footer').offset().top + $('footer').outerHeight() - $(window).outerHeight())) {\n\t\t\t$('.btn-filter').addClass('hidden');\n\t\t} else {\n\t\t\tif ($('.btn-filter').hasClass('hidden')) {\n\t\t\t\t$('.btn-filter').removeClass('hidden');\n\t\t\t}\n\t\t}\n\t}\n}\n\nvar toggleProductFilterMobile = function () {\n\t$('body').on('click', '.mobile-filter-wrapper .btn-filter', function () {\n\t\t$(this).next().toggleClass('active');\n\t});\n\t$('body').on('click', '.mobile-filter-wrapper .btn-close', function () {\n\t\t$(this).parent().removeClass('active');\n\t});\n}\n\nvar toggleProductFilterGroup = function () {\n\t$('body').on('click', '.product-filter .group span', function () {\n\t\t$(this).next().slideToggle(250);\n\t\t$(this).parent().toggleClass('active');\n\t});\n}\n\nvar activeFirstProductFilterGroupWhenPageLoaded = function () {\n\t$('.product-filter .group span').first().trigger('click');\n}\n\nvar productDetailSliderInit = function () {\n\ttry {\n\t\tvar productThumbs = new Swiper('.product-thumbs .swiper-container', {\n\t\t\tdirection: 'vertical',\n\t\t\tslidesPerView: 5,\n\t\t\tspaceBetween: 10,\n\t\t\tnavigation: {\n\t\t\t\tnextEl: '.swiper-button-next',\n\t\t\t\tprevEl: '.swiper-button-prev',\n\t\t\t},\n\t\t\tcenteredSlides: true,\n\t\t\tslideToClickedSlide: true\n\t\t});\n\t\tvar productImages = new Swiper('.product-images .swiper-container', {\n\t\t\tdirection: 'vertical',\n\t\t\tslidesPerView: 1,\n\t\t\tspaceBetween: 0,\n\t\t});\n\n\t\tproductImages.controller.control = productThumbs;\n\t\tproductThumbs.controller.control = productImages;\n\n\t\tvar productRelated = new Swiper('.product-related .swiper-container', {\n\t\t\tslidesPerView: 4,\n\t\t\tspaceBetween: 30,\n\t\t\tloop: true,\n\t\t\tnavigation: {\n\t\t\t\tnextEl: '.button-next',\n\t\t\t\tprevEl: '.button-prev',\n\t\t\t},\n\t\t\tbreakpoints: {\n\t\t\t\t320: {\n\t\t\t\t\tslidesPerView: 1,\n\t\t\t\t\tspaceBetween: 10\n\t\t\t\t},\n\t\t\t\t992: {\n\t\t\t\t\tslidesPerView: 2\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\n\t}\n}\n\nvar setProductDetailSliderHeight = function () {\n\tvar currentWidth = $('.service-detail .product-images').outerWidth();\n\t$('.service-detail .product-images .swiper-container').css('height', currentWidth);\n\t$('.service-detail .product-images .swiper-slide').css('height', currentWidth);\n}\n\nvar toggleCart = function () {\n\t$('body').on('click', '.btn-cart', function () {\n\t\tif (!$(this).next().hasClass('active')) {\n\t\t\t$(this).next().addClass('active');\n\t\t}\n\t});\n\t$('body').on('click', '.cart .btn-close', function () {\n\t\tif ($(this).parent().parent().hasClass('active')) {\n\t\t\t$(this).parent().parent().removeClass('active');\n\t\t}\n\t});\n}\n\nvar touchspinInit = function () {\n\t$('body').on('click', '.touchspin .minus', function () {\n\t\tvar inputSelector = $(this).next();\n\t\tvar currentValue = +inputSelector.val();\n\t\tinputSelector.val(--currentValue);\n\t\tinputSelector.trigger('change');\n\t});\n\t$('body').on('click', '.touchspin .plus', function () {\n\t\tvar inputSelector = $(this).prev();\n\t\tvar currentValue = +inputSelector.val();\n\t\tinputSelector.val(++currentValue);\n\t\tinputSelector.trigger('change');\n\t});\n}\n\nvar customRadioInit = function () {\n\t$('body').on('click', '.custom-radio', function () {\n\t\tvar groupName = $(this).children('input').attr('name');\n\t\t$(\"input:radio[name='\" + groupName + \"']\").removeAttr('checked');\n\t\t$(this).children('input').attr('checked', '');\n\t\t$(\".custom-radio[data-name='\" + groupName + \"']\").removeClass('active').next().removeClass('active');\n\t\t$(this).addClass('active').next().addClass('active');\n\t\t$(this).children('input').trigger('change');\n\t});\n}\n\nvar customCheckboxInit = function () {\n\t$('body').on('click', '.custom-checkbox', function (e) {\n\t\te.preventDefault();\n\t\tvar currentCheckbox = $(this).children('input');\n\t\tvar isChecked = currentCheckbox.is(':checked');\n\t\tif (isChecked) {\n\t\t\tcurrentCheckbox.removeAttr('checked');\n\t\t\t$(this).removeClass('active');\n\t\t} else {\n\t\t\tcurrentCheckbox.attr('checked', '');\n\t\t\t$(this).addClass('active');\n\t\t}\n\t\tcurrentCheckbox.trigger('change');\n\t});\n}\n\nvar trackVideo = function () {\n\tif ($('.intro-page').length) {\n\t\tif ($(window).outerWidth() >= 992) {\n\t\t\tsetTimeout(function () {\n\t\t\t\twindow.location.href = \"/home\"\n\t\t\t}, 13000)\n\t\t} else {\n\t\t\twindow.location.href = \"/home\"\n\t\t}\n\t}\n}\n\nwindow.onscroll = function () {\n\theaderScrollYListener();\n\thideProductFilterButtonWhenScrollIntoFooter();\n}"]}