Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /var/www/theprintave/wp-content/themes/pricom/assets/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/theprintave/wp-content/themes/pricom/assets/js/index.js
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "/";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "./src/js/index.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "./src/js/index.js":
/*!*************************!*\
  !*** ./src/js/index.js ***!
  \*************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _modules_tab__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/tab */ \"./src/js/modules/tab.js\");\n/* harmony import */ var _modules_tab__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_modules_tab__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _modules_images_gallery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/images-gallery */ \"./src/js/modules/images-gallery.js\");\n/* harmony import */ var _modules_images_gallery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_modules_images_gallery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _modules_banner_list__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/banner-list */ \"./src/js/modules/banner-list.js\");\n/* harmony import */ var _modules_banner_list__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_modules_banner_list__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _modules_news__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/news */ \"./src/js/modules/news.js\");\n/* harmony import */ var _modules_news__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_modules_news__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _modules_logo_showcase__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/logo-showcase */ \"./src/js/modules/logo-showcase.js\");\n/* harmony import */ var _modules_logo_showcase__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_modules_logo_showcase__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _modules_counter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/counter */ \"./src/js/modules/counter.js\");\n/* harmony import */ var _modules_counter__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_modules_counter__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _modules_countdown__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/countdown */ \"./src/js/modules/countdown.js\");\n/* harmony import */ var _modules_countdown__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_modules_countdown__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _modules_particles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/particles */ \"./src/js/modules/particles.js\");\n/* harmony import */ var _modules_particles__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_modules_particles__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _modules_text_scroll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/text-scroll */ \"./src/js/modules/text-scroll.js\");\n/* harmony import */ var _modules_text_scroll__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_modules_text_scroll__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _modules_timeline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/timeline */ \"./src/js/modules/timeline.js\");\n/* harmony import */ var _modules_timeline__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_modules_timeline__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _modules_testimonial__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/testimonial */ \"./src/js/modules/testimonial.js\");\n/* harmony import */ var _modules_testimonial__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_modules_testimonial__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _modules_team_member__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/team-member */ \"./src/js/modules/team-member.js\");\n/* harmony import */ var _modules_team_member__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_modules_team_member__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _modules_post_featured__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/post-featured */ \"./src/js/modules/post-featured.js\");\n/* harmony import */ var _modules_post_featured__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_modules_post_featured__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _modules_person_featured__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/person-featured */ \"./src/js/modules/person-featured.js\");\n/* harmony import */ var _modules_person_featured__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_modules_person_featured__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _modules_accordion__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/accordion */ \"./src/js/modules/accordion.js\");\n/* harmony import */ var _modules_accordion__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_modules_accordion__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var _modules_search__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/search */ \"./src/js/modules/search.js\");\n/* harmony import */ var _modules_search__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_modules_search__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _modules_woo_search__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/woo-search */ \"./src/js/modules/woo-search.js\");\n/* harmony import */ var _modules_woo_search__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_modules_woo_search__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _modules_video_list_slideshow__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/video-list-slideshow */ \"./src/js/modules/video-list-slideshow.js\");\n/* harmony import */ var _modules_video_list_slideshow__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_modules_video_list_slideshow__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _modules_romeo_slideshow__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/romeo-slideshow */ \"./src/js/modules/romeo-slideshow.js\");\n/* harmony import */ var _modules_romeo_slideshow__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_modules_romeo_slideshow__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var _modules_layla_slideshow__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/layla-slideshow */ \"./src/js/modules/layla-slideshow.js\");\n/* harmony import */ var _modules_layla_slideshow__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_modules_layla_slideshow__WEBPACK_IMPORTED_MODULE_19__);\n/* harmony import */ var _modules_movie_slideshow__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/movie-slideshow */ \"./src/js/modules/movie-slideshow.js\");\n/* harmony import */ var _modules_movie_slideshow__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_modules_movie_slideshow__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _modules_text_animation__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/text-animation */ \"./src/js/modules/text-animation.js\");\n/* harmony import */ var _modules_text_animation__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_modules_text_animation__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var _modules_content_slideshow__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/content-slideshow */ \"./src/js/modules/content-slideshow.js\");\n/* harmony import */ var _modules_content_slideshow__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_modules_content_slideshow__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var _modules_price_calculator__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/price-calculator */ \"./src/js/modules/price-calculator.js\");\n/* harmony import */ var _modules_price_calculator__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_modules_price_calculator__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var _modules_icon_list__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./modules/icon-list */ \"./src/js/modules/icon-list.js\");\n/* harmony import */ var _modules_icon_list__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_modules_icon_list__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var _modules_woo_product_best_seller__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./modules/woo-product-best-seller */ \"./src/js/modules/woo-product-best-seller.js\");\n/* harmony import */ var _modules_woo_product_best_seller__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_modules_woo_product_best_seller__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var _modules_woo_product_top_sale__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./modules/woo-product-top-sale */ \"./src/js/modules/woo-product-top-sale.js\");\n/* harmony import */ var _modules_woo_product_top_sale__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_modules_woo_product_top_sale__WEBPACK_IMPORTED_MODULE_26__);\n/* harmony import */ var _modules_woo_product_top_rated__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./modules/woo-product-top-rated */ \"./src/js/modules/woo-product-top-rated.js\");\n/* harmony import */ var _modules_woo_product_top_rated__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_modules_woo_product_top_rated__WEBPACK_IMPORTED_MODULE_27__);\n/* harmony import */ var _modules_woo_product_slider__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./modules/woo-product-slider */ \"./src/js/modules/woo-product-slider.js\");\n/* harmony import */ var _modules_woo_product_slider__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_modules_woo_product_slider__WEBPACK_IMPORTED_MODULE_28__);\n/* harmony import */ var _modules_woo_ajax_order__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./modules/woo-ajax-order */ \"./src/js/modules/woo-ajax-order.js\");\n/* harmony import */ var _modules_woo_ajax_order__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_modules_woo_ajax_order__WEBPACK_IMPORTED_MODULE_29__);\n/* harmony import */ var _modules_woo_product_variations__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./modules/woo-product-variations */ \"./src/js/modules/woo-product-variations.js\");\n/* harmony import */ var _modules_woo_product_variations__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_modules_woo_product_variations__WEBPACK_IMPORTED_MODULE_30__);\n/* harmony import */ var _modules_woo_cart__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./modules/woo-cart */ \"./src/js/modules/woo-cart.js\");\n/* harmony import */ var _modules_woo_cart__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_modules_woo_cart__WEBPACK_IMPORTED_MODULE_31__);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * @package    HaruTheme\n * @version    1.0.0\n * @author     Administrator <admin@harutheme.com>\n * @copyright  Copyright (c) 2020, HaruTheme\n * @license    http://opensource.org/licenses/gpl-2.0.php GPL v2 or later\n * @link       http://harutheme.com\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Header\n\n// WooCommerce\n\n\n\n\n\n\n\n\nvar Haru = Haru || {};(function ($) {\n  'use strict';\n\n  var $window = $(window),\n      deviceAgent = navigator.userAgent.toLowerCase(),\n      isMobile = deviceAgent.match(/(iphone|ipod|android|iemobile)/),\n      isMobileAlt = deviceAgent.match(/(iphone|ipod|ipad|android|iemobile)/),\n      $body = $('body');\n\n  // Base\n  Haru.base = {\n    init: function init() {\n      Haru.base.themeSwitchMode();\n      Haru.base.haruCarousel();\n      Haru.base.backToTop();\n      Haru.base.stickySidebar();\n      Haru.base.contactForm();\n      Haru.base.newsletterPopup();\n      Haru.base.bottomToolbar();\n    },\n    windowLoad: function windowLoad() {\n      if ($body.hasClass('haru-site-preloader')) {\n        Haru.base.pageLoading();\n      }\n    },\n    pageLoading: function pageLoading() {\n      setTimeout(function () {\n        $('#haru-site-preloader').fadeOut(300);\n      }, 300);\n    },\n    themeSwitchMode: function themeSwitchMode() {\n      if ($('.switch-theme-mode').length > 0) {\n        var text_default = $('.switch-theme-mode').attr('data-text-default');\n        var text_dark = $('.switch-theme-mode').attr('data-text-dark');\n        var text_light = $('.switch-theme-mode').attr('data-text-light');\n\n        $('.button-switch').text(text_default);\n\n        if (typeof Cookies.get('dark-mode') !== 'undefined') {\n          var dark_mode = Cookies.get('dark-mode') == 'true' ? true : false;\n\n          if (dark_mode == true) {\n            $('.switch-theme-mode').addClass('active');\n            $('body').addClass('dark-mode');\n            $('.button-switch').text(text_dark);\n          } else {\n            $('.button-switch').text(text_light);\n          }\n        }\n\n        $('.switch-theme-mode').off().on('click', function (e) {\n          $(this).toggleClass('active');\n\n          if ($(this).hasClass('active')) {\n            Cookies.set('dark-mode', 'true', {\n              expires: 1\n            });\n\n            // May be Clear cache document.location.reload(true)\n            $('body').addClass('dark-mode');\n            $('.button-switch').text(text_dark);\n          } else {\n            Cookies.set('dark-mode', 'false', {\n              expires: 1\n            });\n\n            $('body').removeClass('dark-mode');\n            $('.button-switch').text(text_light);\n          }\n        });\n      }\n\n      // Use for Demo\n      var getUrlParameter = function getUrlParameter(sParam) {\n        var sPageURL = window.location.search.substring(1),\n            sURLVariables = sPageURL.split('&'),\n            sParameterName,\n            i;\n\n        for (i = 0; i < sURLVariables.length; i++) {\n          sParameterName = sURLVariables[i].split('=');\n\n          if (sParameterName[0] === sParam) {\n            return _typeof(sParameterName[1]) === undefined ? true : decodeURIComponent(sParameterName[1]);\n          }\n        }\n        return false;\n      };\n\n      var dark_mode_demo = getUrlParameter('dark-mode');\n      if (dark_mode_demo) {\n        if (dark_mode_demo == 1) {\n          $('body').addClass('dark-mode');\n\n          if ($('.switch-theme-mode').length > 0) {\n            var text_dark = $('.switch-theme-mode').attr('data-text-dark');\n\n            $('.switch-theme-mode').addClass('active');\n            $('.button-switch').text(text_dark);\n          }\n        } else if (dark_mode_demo == 0) {\n          $('body').removeClass('dark-mode');\n\n          if ($('.switch-theme-mode').length > 0) {\n            var text_light = $('.switch-theme-mode').attr('data-text-light');\n\n            $('.switch-theme-mode').removeClass('active');\n            $('.button-switch').text(text_light);\n          }\n        }\n      }\n    },\n    haruCarousel: function haruCarousel() {\n      $('.haru-carousel.owl-carousel').each(function (index, value) {\n        var $self = $(this);\n        var items = parseInt($(this).attr('data-items'));\n        var items_desktop = parseInt($(this).attr('data-items-desktop')) ? parseInt($(this).attr('data-items-desktop')) : items;\n        var items_tablet = parseInt($(this).attr('data-items-tablet'));\n        var items_mobile = parseInt($(this).attr('data-items-mobile'));\n        var margin = parseInt($(this).attr('data-margin'));\n        var margin_tablet = parseInt($(this).attr('data-margin-tablet'));\n        var margin_mobile = parseInt($(this).attr('data-margin-mobile'));\n        var autoplay = $(this).attr('data-autoplay') == 'true' ? true : false;\n        var loop = $(this).attr('data-loop') == 'true' ? true : false;\n        var counter = $(this).attr('data-counter') == 'true' ? true : false;\n        var slide_duration = parseInt($(this).attr('data-slide-duration'));\n\n        setTimeout(function () {\n          // VC Stretch row\n          $self.on('initialized.owl.carousel changed.owl.carousel', function (e) {\n            if (!e.namespace) {\n              return;\n            }\n            var carousel = e.relatedTarget;\n            if (counter) {\n              $('.slider-counter', $self.parent()).text(carousel.relative(carousel.current()) + 1 + '/' + carousel.items().length);\n            }\n          }).owlCarousel({\n            items: items,\n            margin: margin,\n            loop: loop,\n            center: false,\n            mouseDrag: true,\n            touchDrag: true,\n            pullDrag: true,\n            freeDrag: false,\n            stagePadding: 0,\n            merge: false,\n            mergeFit: true,\n            autoWidth: false,\n            startPosition: 0,\n            URLhashListener: false,\n            nav: true,\n            navText: ['', ''],\n            rewind: true,\n            navElement: 'div',\n            slideBy: 1,\n            dots: true,\n            dotsEach: false,\n            lazyLoad: false,\n            lazyContent: false,\n\n            autoplay: autoplay, // autoplay\n            autoplayTimeout: slide_duration,\n            autoplayHoverPause: true,\n\n            smartSpeed: 250,\n            fluidSpeed: false,\n            autoplaySpeed: false,\n            navSpeed: false,\n            dotsSpeed: false,\n            dragEndSpeed: false,\n            responsive: {\n              0: {\n                items: items < items_mobile ? items : items_mobile,\n                margin: margin_mobile ? margin_mobile : margin\n              },\n              500: {\n                items: items < items_mobile ? items : items_mobile,\n                margin: margin_mobile ? margin_mobile : margin\n              },\n              768: {\n                items: items_tablet,\n                margin: margin_tablet ? margin_tablet : margin\n              },\n              991: {\n                items: items_desktop\n              },\n              1200: {\n                items: items\n              },\n              1300: {\n                items: items\n              }\n            },\n            responsiveRefreshRate: 200,\n            responsiveBaseElement: window,\n            video: false,\n            videoHeight: false,\n            videoWidth: false,\n            animateOut: false,\n            animateIn: false,\n            fallbackEasing: 'swing',\n\n            info: false,\n\n            nestedItemSelector: false,\n            itemElement: 'div',\n            stageElement: 'div',\n\n            navContainer: false,\n            dotsContainer: false\n          });\n        }, 10);\n      });\n    },\n    backToTop: function backToTop() {\n      var $backToTop = $('.back-to-top');\n\n      if ($backToTop.length > 0) {\n        $backToTop.on('click', function (e) {\n          event.preventDefault();\n\n          $('html,body').animate({\n            scrollTop: '0px'\n          }, 800);\n        });\n\n        $window.on('scroll', function (e) {\n          var scrollPosition = $window.scrollTop();\n          var windowHeight = $window.height() / 2;\n\n          if (scrollPosition > windowHeight) {\n            $backToTop.addClass('in');\n          } else {\n            $backToTop.removeClass('in');\n          }\n        });\n      }\n    },\n    stickySidebar: function stickySidebar() {\n      if ($('.single-sidebar-right').length > 0) {\n        if ($(window).width() > 767) {\n          var stickySidebar = new StickySidebar('.single-sidebar-right-inner', {\n            topSpacing: 100,\n            bottomSpacing: 0,\n            containerSelector: '.single-sidebar-right',\n            innerWrapperSelector: '.single-sidebar-right-inner'\n          });\n        }\n\n        $('.recruitment-apply-btn').on('click', function (event) {\n          event.preventDefault();\n          $('html,body').animate({\n            scrollTop: $('#recruitement-contact-form').offset().top\n          }, 800);\n        });\n      }\n    },\n    contactForm: function contactForm() {\n      if ($('.contact-form__file').length > 0) {\n        $('.contact-form__file').each(function () {\n          var $file_input = $(this);\n          var files_uploaded = [];\n\n          $file_input.find('.contact-form__file-upload').on('click', function (e) {\n            e.preventDefault();\n\n            $file_input.find('input[type=\"file\"]:hidden').trigger('click');\n          });\n\n          $file_input.find('input[type=\"file\"]:hidden').on('change', function (e) {\n            var files_uploaded_html = '';\n\n            for (var i = 0; i < $(this).get(0).files.length; ++i) {\n              files_uploaded.push($(this).get(0).files[i].name);\n              files_uploaded_html += '<div class=\"contact-form__file-name\">' + $(this).get(0).files[i].name + '</div>';\n            }\n\n            $file_input.find('.contact-form__file-uploaded').empty().append(files_uploaded_html);\n          });\n        });\n      }\n    },\n    newsletterPopup: function newsletterPopup() {\n      // Reference: https://github.com/js-cookie/js-cookie\n      var et_popup_closed = Cookies.get('haru_popup_closed');\n      var popup_effect = $('.haru-popup').data('effect');\n      var popup_delay = $('.haru-popup').data('delay');\n\n      setTimeout(function () {\n        $('.haru-popup').magnificPopup({\n          items: {\n            src: '#haru-popup',\n            type: 'inline'\n          },\n          removalDelay: 500, //delay removal by X to allow out-animation\n          callbacks: {\n            beforeOpen: function beforeOpen() {\n              this.st.mainClass = popup_effect;\n            },\n            beforeClose: function beforeClose() {\n              if ($('#showagain:checked').val() == 'do-not-show') Cookies.set('haru_popup_closed', 'do-not-show', { expires: 1, path: '/' });\n            }\n          }\n          // (optionally) other options\n        });\n\n        if (et_popup_closed != 'do-not-show' && $('.haru-popup').length > 0 && $('body').hasClass('open-popup')) {\n          $('.haru-popup').magnificPopup('open');\n        }\n      }, popup_delay);\n    },\n    bottomToolbar: function bottomToolbar() {\n      if ($('#haru-bottom-toolbar').length > 0) {\n        if ($(window).width() < 991) {\n          $('a.back-to-top').addClass('has-toolbar-sticky');\n          var toolbar_height = $('#haru-bottom-toolbar').height();\n          toolbar_height = toolbar_height <= 60 ? toolbar_height : 60;\n\n          $('body').css('padding-bottom', toolbar_height + 'px');\n        } else {\n          $('body').css('padding-bottom', 0);\n        }\n      }\n    }\n\n    // Blog\n  };Haru.blog = {\n    init: function init() {\n      Haru.blog.jPlayerInit();\n      Haru.blog.loadMore();\n    },\n    jPlayerInit: function jPlayerInit() {\n      $('.jp-jplayer').each(function () {\n        var $this = $(this),\n            url = $this.data('audio'),\n            title = $this.data('title'),\n            type = url.substr(url.lastIndexOf('.') + 1),\n            player = '#' + $this.data('player'),\n            audio = {};\n        audio[type] = url;\n        audio['title'] = title;\n        $this.jPlayer({\n          ready: function ready() {\n            $this.jPlayer('setMedia', audio);\n          },\n          swfPath: '../libraries/jPlayer',\n          cssSelectorAncestor: player\n        });\n      });\n\n      $(window).on('resize', function () {\n        setTimeout(function () {\n          $('.jp-audio .jp-type-playlist').each(function () {\n            var _width = $(this).outerWidth() - $('.jp-play-pause', this).outerWidth() - parseInt($('.jp-play-pause', this).css('margin-left').replace('px', ''), 10) - parseInt($('.jp-progress', this).css('margin-left').replace('px', ''), 10) - $('.jp-volume', this).outerWidth() - parseInt($('.jp-volume', this).css('margin-left').replace('px', ''), 10) - 15;\n            $('.jp-progress', this).width(_width);\n          });\n        }, 100);\n      });\n    },\n    loadMore: function loadMore() {\n      $('.blog-load-more').on('click', function (event) {\n        event.preventDefault();\n\n        var $this = $(this).addClass('loading');\n        var link = $(this).attr('data-href');\n        var contentWrap = '.archive-content-layout';\n        var element = '.archive-content-layout article';\n        var loadMoreText = $(this).text();\n        var loadingText = $(this).attr('data-loading-text');\n\n        $this.text(loadingText);\n\n        $.get(link, function (data) {\n          var next_href = $('.blog-load-more', data).attr('data-href');\n          var $newElems = $(element, data).css({\n            opacity: 0\n          });\n\n          $(contentWrap).append($newElems);\n          $newElems.animate({\n            opacity: 1\n          });\n\n          Haru.base.haruCarousel(); // Maybe don't need\n          Haru.blog.jPlayerInit();\n\n          if (typeof next_href == 'undefined') {\n            $this.parent().remove();\n          } else {\n            $this.removeClass('loading');\n            $this.attr('data-href', next_href);\n            $this.text(loadMoreText);\n          }\n        });\n      });\n    }\n\n    // Shop\n  };Haru.shop = {\n    init: function init() {\n      Haru.shop.shopDefaultLayout();\n      Haru.shop.shopHiddenSidebar();\n      Haru.shop.widgetToggle();\n      Haru.shop.addToCart();\n      Haru.shop.addToWishlist();\n      Haru.shop.compare();\n      Haru.shop.quickView();\n      Haru.shop.productQuantity();\n      Haru.shop.singleProductGuide();\n      Haru.shop.singleProductExtraOptions();\n      Haru.shop.singleProductSticky();\n      Haru.shop.singleProductVideo();\n      Haru.shop.singleProductImages();\n      Haru.shop.singleProductImagesGallery();\n      Haru.shop.singleProductTabs();\n      Haru.shop.addToCartVariation();\n      Haru.shop.productAttribute();\n      Haru.shop.widgetProductCategory();\n      Haru.shop.widgetProductOrder();\n      Haru.shop.printful();\n      Haru.shop.defaultEvents();\n      Haru.shop.ajaxCartUpdate();\n      Haru.shop.tooltipHidden();\n    },\n    shopDefaultLayout: function shopDefaultLayout() {\n      var archive_products = $('.archive-product').find('.products');\n      // Set default layout process by PHP\n      // Change layout when click\n      $('.shop-filter__grid').on('click', function () {\n        $(this).addClass('active');\n        $('.shop-filter__list').removeClass('active');\n        $.cookie('shopDefaultLayout', 'layout-grid', { path: '/' });\n\n        archive_products.removeClass('layout-list');\n        archive_products.addClass('layout-grid');\n\n        return false;\n      });\n\n      $('.shop-filter__list').on('click', function () {\n        $(this).addClass('active');\n        $('.shop-filter__grid').removeClass('active');\n        $.cookie('shopDefaultLayout', 'layout-list', { path: '/' });\n\n        archive_products.removeClass('layout-grid');\n        archive_products.addClass('layout-list');\n\n        return false;\n      });\n    },\n    shopHiddenSidebar: function shopHiddenSidebar() {\n      $('.hidden-sidebar__close, .hidden-sidebar-overlay').on('click', function (event) {\n        event.preventDefault();\n\n        $('html').removeClass('hidden-sidebar-in');\n        $('.archive-sidebar.hidden-sidebar').removeClass('in');\n        $('.hidden-sidebar-overlay').removeClass('in');\n      });\n\n      $('.shop-filter__sidebar-btn').on('click', function (event) {\n        event.preventDefault();\n\n        $('html').toggleClass('hidden-sidebar-in');\n        $('.archive-sidebar.hidden-sidebar').toggleClass('in');\n        $('.hidden-sidebar-overlay').toggleClass('in');\n      });\n\n      $('.shop-filter__sidebar-btn-toggle').on('click', function (event) {\n        event.preventDefault();\n\n        $(this).toggleClass('active');\n        $('.filters-area').slideToggle(300);\n      });\n    },\n    widgetToggle: function widgetToggle() {\n      $('.widget-toggle .widget-title').on('click', function () {\n        $(this).closest('.widget').toggleClass('widget-close');\n        $(this).next().slideToggle(300);\n      });\n    },\n    addToCart: function addToCart() {\n      $('body').on('added_to_cart', function (event, fragments, cart_hash, $thisbutton) {\n        var is_single_product = $thisbutton.hasClass('single_add_to_cart_button');\n\n        if (is_single_product) return;\n\n        setTimeout(function () {\n          var button = $thisbutton,\n              buttonWrap = button.parent(),\n              buttonViewCart = buttonWrap.find('.added_to_cart'),\n              addedTitle = buttonViewCart.text();\n\n          buttonViewCart.html('<span class=\"haru-tooltip button-tooltip\">' + addedTitle + '</span>');\n          buttonViewCart.removeAttr('title');\n        }, 10);\n      });\n    },\n    addToWishlist: function addToWishlist() {\n      $body.on('added_to_wishlist', function (event, fragments, cart_hash, $thisbutton) {\n        Haru.shop.updateWishlist();\n      });\n\n      $body.on('removed_from_wishlist', function (event, fragments, cart_hash, $thisbutton) {\n        Haru.shop.updateWishlist();\n      });\n    },\n    updateWishlist: function updateWishlist() {\n      if (typeof haru_teespace_ajax_url == 'undefined') {\n        return;\n      }\n\n      var wishlist_wrapper = jQuery('.my-wishlist-wrap');\n\n      if (wishlist_wrapper.length == 0) {\n        return;\n      }\n\n      wishlist_wrapper.addClass('loading');\n\n      jQuery.ajax({\n        type: 'POST',\n        url: haru_teespace_ajax_url,\n        data: {\n          action: 'update_woocommerce_wishlist'\n        },\n        success: function success(response) {\n          wishlist_wrapper.find('.total').text(response);\n          wishlist_wrapper.removeClass('loading');\n        }\n      });\n    },\n    compare: function compare() {\n      $('a.compare').on('click', function (event) {\n        event.preventDefault();\n\n        var button = $(this);\n        var tooltip_text = $(this).attr('data-tooltip_text');\n\n        button.addClass('compare-loading');\n\n        $('body').on('yith_woocompare_open_popup', function () {\n          button.html('<span class=\"haru-tooltip button-tooltip\">' + tooltip_text + '</span>');\n          button.removeClass('compare-loading');\n          $('html').addClass('compare-open-popup');\n        });\n\n        $(document).on('click', '#cboxOverlay, #cboxClose', function () {\n          $('html').removeClass('compare-open-popup');\n        });\n      });\n\n      $(document).bind('cbox_load', function () {\n        console.log('cbox load');\n      });\n\n      $(document).bind('cbox_open', function () {\n        console.log('cbox open');\n      });\n\n      $(document).bind('cbox_complete', function () {\n        console.log('cbox complete');\n        setTimeout(function () {\n          $('#colorbox.yith_woocompare_colorbox').addClass('colorbox-loaded');\n        }, 1300);\n      });\n\n      $(document).bind('cbox_cleanup', function () {\n        console.log('cbox cleanup');\n      });\n\n      $(document).bind('cbox_closed', function () {\n        console.log('cbox close');\n        $('#colorbox.yith_woocompare_colorbox').removeClass('colorbox-loaded');\n      });\n    },\n    quickView: function quickView() {\n      // https://dimsemenov.com/plugins/magnific-popup/documentation.html\n      if ($('.product-button--quickview').length > 0) {\n        $(document).on('click', 'a.quickview', function (e) {\n          e.preventDefault();\n\n          $(this).magnificPopup({\n            type: 'ajax',\n            ajax: {\n              settings: null,\n              cursor: 'mfp-ajax-cur', // CSS class that will be added to body during the loading (adds \"progress\" cursor)\n              tError: '<a href=\"%url%\">The content</a> could not be loaded.' //  Error message, can contain %curr% and %total% tags if gallery is enabled\n            },\n            removalDelay: 500, //delay removal by X to allow out-animation\n            fixedContentPos: false,\n            tClose: 'Close (Esc)',\n            tLoading: 'Loading...',\n            callbacks: {\n              beforeOpen: function beforeOpen() {\n                this.st.mainClass = 'mfp-zoom-in mfp-quick-view';\n                $('html').addClass('quickview-open-popup');\n              },\n              beforeClose: function beforeClose() {\n                // Do something\n                $('html').removeClass('quickview-open-popup');\n              },\n              ajaxContentAdded: function ajaxContentAdded() {\n                // Ajax content is loaded and appended to DOM\n                $(this.content).find('form.variations_form').wc_variation_form();\n\n                $(this.content).find('form.variations_form .variations select').change();\n\n                $('body').trigger('wc_fragments_loaded');\n\n                // Re init DragDrop File upload\n                if ($('.product-quick-view .wc-dnd-file-upload').length > 0) {\n                  window.initWcDragDrop();\n                }\n\n                var product_images = $(this.content).find('#product-images');\n                var product_thumbnails = $(this.content).find('#product-thumbnails');\n\n                // Maybe use settimeout to fix\n                product_images.slick();\n                product_thumbnails.slick();\n\n                // Re run addToCartVariation to make it work\n                Haru.shop.addToCartVariation();\n\n                $(document).on('change', '.variations_form .variations select, .variations_form .variation_form_section select, div.select', function () {\n                  var variation_form = $(this).closest('.variations_form');\n                  var current_settings = {},\n                      reset_variations = variation_form.find('.reset_variations');\n\n                  variation_form.find('.variations select,.variation_form_section select').each(function () {\n                    // Encode entities\n                    var value = $(this).val();\n\n                    // Add to settings array\n                    current_settings[$(this).attr('name')] = $(this).val();\n                  });\n\n                  variation_form.find('.variation_form_section div.select input[type=\"hidden\"]').each(function () {\n                    // Encode entities\n                    var value = $(this).val();\n\n                    // Add to settings array\n                    current_settings[$(this).attr('name')] = $(this).val();\n                  });\n\n                  var all_variations = variation_form.data('product_variations');\n                  var variation_id = 0;\n                  var match = true;\n\n                  for (var i = 0; i < all_variations.length; i++) {\n                    match = true;\n                    var variations_attributes = all_variations[i]['attributes'];\n\n                    for (var attr_name in variations_attributes) {\n                      var val1 = variations_attributes[attr_name];\n                      var val2 = current_settings[attr_name];\n\n                      if (val1 == undefined || val2 == undefined) {\n                        match = false;\n                        break;\n                      }\n\n                      if (val1.length == 0) {\n                        continue;\n                      }\n\n                      if (val1 != val2) {\n                        match = false;\n                        break;\n                      }\n                    }\n\n                    if (match) {\n                      variation_id = all_variations[i]['variation_id'];\n                      break;\n                    }\n                  }\n\n                  if (variation_id > 0) {\n                    var index = parseInt(product_images.find('a[data-variation_id*=\"|' + variation_id + '|\"]').data('index'), 10);\n\n                    // Horizontal\n                    if (!isNaN(index)) {\n                      product_images.slick('slickGoTo', index, true);\n                    }\n                  }\n                });\n\n                $('.mfp-quick-view form.variations_form').on('woocommerce_update_variation_values', function () {\n                  $(this).find('ul.variable-attribute-wrap').each(function () {\n                    // ul\n                    var t = $(this).data('attribute_id'),\n                        // data-attribute_id of ul\n                    t = document.getElementById(t),\n                        // select\n                    a = $(t).find('option'),\n                        // option of select\n                    e = $(t).find('option').eq(1),\n                        // option 1 of select\n                    i = $(this).find('li'),\n                        // li of ul\n                    r = $(t).find('option:selected'),\n                        // selected of select\n                    s = [],\n                        o = '';\n\n                    a.each(function () {\n                      '' !== $(this).val() && (s.push($(this).val()), o = (r || e).val());\n                    }), i.each(function () {\n                      // li of ul\n                      var t = this,\n                          a = $(t)\n                      // .find('.variable-item')\n                      .attr('data-value'); // value of li or child of li\n                      $(t).removeClass('selected haru-li-disabled').addClass('haru-li-disabled'), -1 !== s.indexOf(a.toString()) && ($(t).removeClass('haru-li-disabled'), a.toString() == o) && $(t).addClass('selected');\n                    });\n                  });\n                });\n              }\n            }\n          }).magnificPopup('open');\n        });\n      }\n    },\n    productQuantity: function productQuantity() {\n      $(document.body).on('click', '.quantity .input-button', function () {\n        var t = $(this),\n            o = t.siblings('.input-text').val(),\n            min = t.siblings('.input-text').attr('min'),\n            max = t.siblings('.input-text').attr('max'),\n            i = '' === o ? min : parseInt(o, 10);\n\n        if (max) {\n          t.is('.plus') && i < max ? i++ : i > min && t.is('.minus') && i--, t.siblings('.qty').val(i).trigger('change');\n        } else {\n          t.is('.plus') ? i++ : i > min && t.is('.minus') && i--, t.siblings('.qty').val(i).trigger('change');\n        }\n      });\n    },\n    singleProductGuide: function singleProductGuide() {\n      if ($('.single-product-top .product-size-guide').length > 0) {\n        $('[data-fancybox=\"product-guide\"]').fancybox({\n          openEffect: 'none',\n          closeEffect: 'none',\n          buttons: ['zoom', 'share', 'slideShow', 'fullScreen', 'thumbs', 'close'],\n          beforeLoad: function beforeLoad() {\n            $('html').addClass('overflow-hidden');\n          },\n          afterClose: function afterClose() {\n            $('html').removeClass('overflow-hidden');\n          }\n        });\n      }\n    },\n    singleProductExtraOptions: function singleProductExtraOptions() {\n      if ($('.single-product-summary.extra-options-toggle').length > 0) {\n        var heading_text = $('.single-product-summary.extra-options-toggle').attr('data-heading');\n        var extra_options_wrap = $('.wpcpo-wrapper');\n\n        $('<div class=\"single-product-extra-options-heading\">' + heading_text + '</div>').insertBefore(extra_options_wrap);\n\n        $('.single-product-extra-options-heading').on('click', function () {\n          $(this).toggleClass('active');\n\n          $(this).closest('.extra-options-toggle').find('.wpcpo-wrapper').slideToggle(300);\n\n          // Need to check mobile & other sticky\n          if (!isMobile && !isMobileAlt || $(window).width() > 767) {\n            setTimeout(function () {\n              $(document.body).trigger('sticky_kit:recalc');\n              Haru.shop.singleProductSticky();\n            }, 350);\n          }\n        });\n      }\n    },\n    singleProductSticky: function singleProductSticky() {\n      if ($('.single-product-sticky').length > 0) {\n        // May check product style here\n        var productMainWrap = $('.single-product-top .summary-content');\n        var productOffset = productMainWrap.offset().top + productMainWrap.outerHeight(true);\n\n        $(window).on('scroll', function () {\n          if ($(window).width() > 991) {\n            // Conditional\n            if ($(this).scrollTop() > productOffset) {\n              $('.single-product-sticky').addClass('is-sticky');\n              $('a.back-to-top').addClass('has-bottom-sticky');\n            } else {\n              $('.single-product-sticky').removeClass('is-sticky');\n              $('a.back-to-top').removeClass('has-bottom-sticky');\n            }\n\n            // Scroll to bottom\n            if ($(window).scrollTop() + $(window).height() == $(document).height()) {\n              $('.single-product-sticky').removeClass('is-sticky');\n              $('a.back-to-top').removeClass('has-bottom-sticky');\n            }\n          } else {\n            $('a.back-to-top').removeClass('has-bottom-sticky');\n          }\n        });\n\n        // Conditional\n        $('.single-product-sticky__btn .add_to_cart_button.product_type_variable').on('click', function (e) {\n          e.preventDefault();\n\n          $('html,body').animate({\n            scrollTop: $('.single-product-top').offset().top\n          }, 800);\n        });\n      }\n    },\n    singleProductVideo: function singleProductVideo() {\n      if ($('.single-product-top .product-video-link').length > 0) {\n        $('.single-product-top .product-video-link').fancybox({\n          openEffect: 'none',\n          closeEffect: 'none',\n          buttons: ['zoom', 'share', 'slideShow', 'fullScreen', 'thumbs', 'close'],\n          beforeLoad: function beforeLoad() {\n            $('html').addClass('overflow-hidden');\n          },\n          afterClose: function afterClose() {\n            $('html').removeClass('overflow-hidden');\n          }\n        });\n      }\n    },\n    singleProductImages: function singleProductImages() {\n      if ($('.haru-single-product').length) {\n        var product_images = $('#product-images', '.single-product-image-wrap:not(.vertical_gallery):not(.grid_gallery)');\n        var product_thumbnails = $('#product-thumbnails', '.single-product-image-wrap:not(.vertical_gallery):not(.grid_gallery)');\n\n        product_images.slick();\n        product_thumbnails.slick();\n\n        Haru.shop.singleProductImageZoom();\n        Haru.shop.singleProductImageLightbox();\n\n        $(document).on('change', '.variations_form .variations select, .variations_form .variation_form_section select, div.select', function () {\n          var variation_form = $(this).closest('.variations_form');\n          var current_settings = {},\n              reset_variations = variation_form.find('.reset_variations');\n\n          variation_form.find('.variations select,.variation_form_section select').each(function () {\n            // Encode entities\n            var value = $(this).val();\n\n            // Add to settings array\n            current_settings[$(this).attr('name')] = $(this).val();\n          });\n\n          variation_form.find('.variation_form_section div.select input[type=\"hidden\"]').each(function () {\n            // Encode entities\n            var value = $(this).val();\n\n            // Add to settings array\n            current_settings[$(this).attr('name')] = $(this).val();\n          });\n\n          var all_variations = variation_form.data('product_variations');\n          var variation_id = 0;\n          var match = true;\n\n          for (var i = 0; i < all_variations.length; i++) {\n            match = true;\n            var variations_attributes = all_variations[i]['attributes'];\n\n            for (var attr_name in variations_attributes) {\n              var val1 = variations_attributes[attr_name];\n              var val2 = current_settings[attr_name];\n\n              if (val1 == undefined || val2 == undefined) {\n                match = false;\n                break;\n              }\n\n              if (val1.length == 0) {\n                continue;\n              }\n\n              if (val1 != val2) {\n                match = false;\n                break;\n              }\n            }\n\n            if (match) {\n              variation_id = all_variations[i]['variation_id'];\n              break;\n            }\n          }\n\n          if (variation_id > 0) {\n            var index = parseInt($('a[data-variation_id*=\"|' + variation_id + '|\"]', '#product-images').data('index'), 10);\n\n            // Horizontal and vertical\n            if (!$('.single-product-image-wrap').hasClass('vertical_gallery')) {\n              if (!isNaN(index)) {\n                product_images.slick('slickGoTo', index, true);\n              }\n            }\n\n            // Vertical gallery\n            if ($('.single-product-image-wrap').hasClass('vertical_gallery')) {\n              var gallery_index = parseInt($('a[data-variation_id*=\"|' + variation_id + '|\"]', '#product-images').data('index'), 10);\n\n              if (!isNaN(gallery_index)) {\n                var speed = 500,\n                    href = $(this).attr('href'),\n                    target = $('.product-image-item:nth-child(' + (gallery_index + 1) + ')'),\n                    position = target.offset().top;\n\n                $('body').animate({ scrollTop: position }, speed, 'swing');\n                $('html').animate({ scrollTop: position }, speed, 'swing');\n              }\n            }\n          }\n        });\n\n        $('body.single-product form.variations_form').on('woocommerce_update_variation_values', function () {\n          $(this).find('ul.variable-attribute-wrap').each(function () {\n            // ul\n            var t = $(this).data('attribute_id'),\n                // data-attribute_id of ul\n            t = document.getElementById(t),\n                // select\n            a = $(t).find('option'),\n                // option of select\n            e = $(t).find('option').eq(1),\n                // option 1 of select\n            i = $(this).find('li'),\n                // li of ul\n            r = $(t).find('option:selected'),\n                // selected of select\n            s = [],\n                o = '';\n\n            a.each(function () {\n              '' !== $(this).val() && (s.push($(this).val()), o = (r || e).val());\n            }), i.each(function () {\n              // li of ul\n              var t = this,\n                  a = $(t)\n              // .find('.variable-item')\n              .attr('data-value'); // value of li or child of li\n              $(t).removeClass('selected haru-li-disabled').addClass('haru-li-disabled'), -1 !== s.indexOf(a.toString()) && ($(t).removeClass('haru-li-disabled'), a.toString() == o) && $(t).addClass('selected');\n            });\n          });\n        });\n\n        // Variation has same price\n        // $('.variations_form').each(function() {\n        //   var $form = $(this)\n        //   var $price = $form\n        //     .parent()\n        //     .find('> .price')\n        //     .first()\n        //   var priceOriginalHtml = $price.html()\n\n        //   $form.on('show_variation', function(e, variation) {\n        //     $('.woocommerce-variation .woocommerce-variation-price').html(priceOriginalHtml)\n        //   })\n\n        //   $form.on('hide_variation', function() {\n        //     // Do something\n        //   })\n        // })\n\n        // Sticky Slide style\n        if ($('.single-product-image-wrap').hasClass('sticky')) {\n          if ($('#haru-header').hasClass('haru-header--sticky')) {\n            var header = $('#haru-header'),\n                headerHeight = $('#haru-header').height(),\n                adminBarHeight = $('.admin-bar').length ? $('#wpadminbar').height() : 0;\n\n            if ($(window).width() <= 600) {\n              adminBarHeight = 0;\n            }\n\n            var offset_top = headerHeight + adminBarHeight;\n\n            // May be check case sticky menu\n            if (header.hasClass('haru-header--sticky-menu')) {\n              if (header.find('.haru-nav-menu').length > 0) {\n                var stickyMenuSection = header.find('.haru-nav-menu').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n              } else if (header.find('.haru-menu-toggle-popup').length > 0) {\n                var stickyMenuSection = header.find('.haru-menu-toggle-popup').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n              } else if (header.find('.haru-menu-toggle-sidebar').length > 0) {\n                var stickyMenuSection = header.find('.haru-menu-toggle-sidebar').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n              }\n\n              var offset_top = stickyMenuSection ? stickyMenuSection.outerHeight() + adminBarHeight : 0 + adminBarHeight;\n            }\n          }\n\n          $('.single-product-image-content').stick_in_parent({\n            offset_top: offset_top + 20\n          }).on('sticky_kit:stick', function (e) {\n            if ($('#haru-header').hasClass('haru-header--sticky')) {\n              // Do something\n            }\n          }).on('sticky_kit:unstick', function (e) {\n            // Do something\n          });\n\n          // Tab similar on Mobile\n          if (!isMobile && !isMobileAlt || $(window).width() > 767) {\n            $('.haru-woocommerce-tab').each(function (i) {\n              var haru_woo_tab = $(this);\n\n              setTimeout(function () {\n                if (i != 0) {\n                  haru_woo_tab.find('.woocommerce-Tabs-panel').hide();\n                } else {\n                  haru_woo_tab.find('.haru-accordion-title').addClass('active');\n                }\n              }, 100);\n\n              haru_woo_tab.find('.haru-accordion-title').on('click', function (e) {\n                e.preventDefault();\n                var $this = $(this);\n\n                if ($(this).hasClass('active')) {\n                  $(this).removeClass('active');\n                  $(this).parent().find('.woocommerce-Tabs-panel').slideUp(300);\n                } else {\n                  $(this).addClass('active');\n                  $(this).parent().siblings('.haru-woocommerce-tab').find('.haru-accordion-title').removeClass('active');\n                  $(this).parent().siblings('.haru-woocommerce-tab').find('.woocommerce-Tabs-panel').removeClass('active');\n                  $(this).parent().find('.woocommerce-Tabs-panel').slideDown(300);\n                  $(this).parent().siblings('.haru-woocommerce-tab').find('.woocommerce-Tabs-panel').slideUp(300);\n                }\n\n                setTimeout(function () {\n                  $('html, body').animate({\n                    scrollTop: $this.offset().top - $('.haru-header__sticky-holder').outerHeight() - adminBarHeight\n                  }, 300);\n\n                  $(document.body).trigger('sticky_kit:recalc');\n                }, 500);\n              });\n            });\n          }\n        }\n      }\n    },\n    singleProductImagesGallery: function singleProductImagesGallery() {\n      if ($('.single-product-image-wrap.vertical_gallery #product-images').length) {\n        $('#product-thumbnails').onePageNav({\n          currentClass: 'current'\n        });\n\n        if ($('#haru-header').hasClass('haru-header--sticky')) {\n          var header = $('#haru-header'),\n              headerHeight = $('#haru-header').height(),\n              adminBarHeight = $('.admin-bar').length ? $('#wpadminbar').height() : 0;\n\n          if ($(window).width() <= 600) {\n            adminBarHeight = 0;\n          }\n\n          var offset_top = headerHeight + adminBarHeight;\n\n          // May be check case sticky menu\n          if (header.hasClass('haru-header--sticky-menu')) {\n            if (header.find('.haru-nav-menu').length > 0) {\n              var stickyMenuSection = header.find('.haru-nav-menu').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n            } else if (header.find('.haru-menu-toggle-popup').length > 0) {\n              var stickyMenuSection = header.find('.haru-menu-toggle-popup').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n            } else if (header.find('.haru-menu-toggle-sidebar').length > 0) {\n              var stickyMenuSection = header.find('.haru-menu-toggle-sidebar').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n            }\n\n            var offset_top = stickyMenuSection ? stickyMenuSection.outerHeight() + adminBarHeight : 0 + adminBarHeight;\n          }\n        }\n\n        $('#product-thumbnails').stick_in_parent({\n          offset_top: stickyMenuSection ? stickyMenuSection.outerHeight() + 15 : headerHeight + 15\n        }).on('sticky_kit:stick', function (e) {\n          if ($('#haru-header').hasClass('haru-header--sticky')) {\n            // Do something\n          }\n        }).on('sticky_kit:unstick', function (e) {\n          // Do something\n        });\n\n        $('.entry-summary').stick_in_parent({\n          offset_top: stickyMenuSection ? stickyMenuSection.outerHeight() + 15 : headerHeight + 15\n        }).on('sticky_kit:stick', function (e) {\n          if ($('#haru-header').hasClass('haru-header--sticky')) {\n            // Do something\n          }\n        }).on('sticky_kit:unstick', function (e) {\n          // Do something\n        });\n      }\n    },\n    singleProductTabs: function singleProductTabs() {\n      var url = window.location.href;\n      var hash = window.location.hash;\n      var $wc_tabs = $body.find('.wc-tabs, ul.tabs').first();\n      var header_offset = 100;\n\n      if (isMobile && isMobileAlt || $(window).width() < 767) {\n        header_offset = 60;\n\n        $('.haru-woocommerce-tab').each(function () {\n          var haru_woo_tab = $(this);\n\n          setTimeout(function () {\n            haru_woo_tab.find('.woocommerce-Tabs-panel').hide();\n          }, 100);\n\n          haru_woo_tab.find('.haru-accordion-title').on('click', function (e) {\n            e.preventDefault();\n\n            if ($(this).hasClass('active')) {\n              $(this).removeClass('active');\n              $(this).parent().find('.woocommerce-Tabs-panel').slideUp(300);\n            } else {\n              $(this).addClass('active');\n              $(this).parent().siblings('.haru-woocommerce-tab').find('.haru-accordion-title').removeClass('active');\n              $(this).parent().siblings('.haru-woocommerce-tab').find('.woocommerce-Tabs-panel').removeClass('active');\n              $(this).parent().find('.woocommerce-Tabs-panel').slideDown(300);\n              $(this).parent().siblings('.haru-woocommerce-tab').find('.woocommerce-Tabs-panel').slideUp(300);\n            }\n          });\n        });\n      }\n\n      if (!$('.single-product-inner').length > 0) {\n        return;\n      }\n\n      // Fix comment\n      if (hash.toLowerCase().indexOf('comment-') >= 0 || hash === '#reviews' || hash === '#tab-reviews') {\n        $wc_tabs.find('li:first a').click();\n      } else if (url.indexOf('comment-page-') > 0 || url.indexOf('cpage=') > 0) {\n        $wc_tabs.find('li:first a').click();\n      }\n\n      // Go to URL has hash\n      if (hash) {\n        var link = $wc_tabs.find('a[href=\"' + hash + '\"]');\n\n        if (link.length) {\n          setTimeout(function () {\n            link.trigger('click');\n\n            if (isMobile && isMobileAlt || $(window).width() < 767) {\n              $('.haru-woocommerce-tab').find('a[href=\"' + hash + '\"]').addClass('active');\n            }\n\n            $('html, body').animate({\n              scrollTop: $(hash).offset().top - header_offset\n            }, 500);\n          }, 500);\n        }\n      }\n    },\n    singleProductImageZoom: function singleProductImageZoom() {\n      // May be check image width > gallery width same single-product.js\n      if (!isMobile && !isMobileAlt && $(window).width() > 767) {\n        var $image_magnify = 1.5;\n\n        if ($('.haru-single-product .single-product-image-wrap:not(.vertical_gallery):not(.grid_gallery)').length > 0) {\n          $image_magnify = parseFloat($('.haru-single-product .single-product-image-wrap:not(.vertical_gallery):not(.grid_gallery) .product-images-wrap').attr('data-magnify'));\n        }\n\n        $('.haru-single-product .single-product-image-wrap:not(.vertical_gallery):not(.grid_gallery) .product-image-item').zoom({\n          on: 'mouseover',\n          magnify: $image_magnify\n        });\n      }\n    },\n    singleProductImageLightbox: function singleProductImageLightbox() {\n      $('[data-fancybox=\"product-gallery\"]').fancybox({\n        openEffect: 'none',\n        closeEffect: 'none',\n        buttons: ['zoom', 'share', 'slideShow', 'fullScreen', 'thumbs', 'close'],\n        beforeLoad: function beforeLoad() {\n          $('html').addClass('overflow-hidden');\n        },\n        afterClose: function afterClose() {\n          $('html').removeClass('overflow-hidden');\n        }\n      });\n\n      $('.product-gallery-enlarge').on('click', function () {\n        var enlarge = $(this);\n        if (!enlarge.parents('.single-product-image-wrap').hasClass('vertical_gallery') && !enlarge.parents('.single-product-image-wrap').hasClass('grid_gallery')) {\n          // For style use slick\n          enlarge.parents('.product-images-wrap').find('.slick-current .product-image-lightbox').trigger('click');\n        } else {\n          // For style not use slick\n          enlarge.parents('.product-images-wrap').find('.product-image-item:first-child .product-image-lightbox').trigger('click');\n        }\n      });\n    },\n    addToCartVariation: function addToCartVariation() {\n      var searchParams = new URLSearchParams(window.location.search);\n      var singleFormCart = $('.variations_form.cart');\n\n      var _loop = function _loop(param) {\n        if (singleFormCart.length > 0) {\n          setTimeout(function () {\n            singleFormCart.find('select[name=\"' + param[0] + '\"]').trigger('change');\n          }, 300);\n        }\n      };\n\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = searchParams[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var param = _step.value;\n\n          _loop(param);\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n\n      $('.variations_form .variations ul.variable-attribute-wrap').each(function (i, el) {\n        var select = $(this).prev('select');\n        var li = $(this).find('li');\n        $(this).on('click', 'li:not(.selected)', function () {\n          var value = $(this).data('value');\n\n          li.removeClass('selected');\n          select.val('').trigger('change'); // Add to fix VM15713:1 Uncaught TypeError: Cannot read property 'length' of null\n          select.val(value).trigger('change');\n          $(this).addClass('selected');\n        });\n\n        $(this).on('click', 'li.selected', function () {\n          return;\n\n          li.removeClass('selected');\n          select.val('').trigger('change');\n          select.trigger('click');\n          select.trigger('focusin');\n          select.trigger('touchstart');\n        });\n      });\n\n      $('.variations_form .variations').each(function (i, el) {\n        $(this).on('click', '.reset_variations', function () {\n          $('.variations_form .variations').find('li').removeClass('selected');\n        });\n      });\n    },\n    productAttribute: function productAttribute() {\n      $body.on('click', '.haru-variation-image', function (e) {\n        e.preventDefault();\n        $(this).siblings('.haru-variation-image').removeClass('selected');\n        $(this).addClass('selected');\n        var imgSrc = $(this).data('src'),\n            imgSrcSet = $(this).data('src-set'),\n            $mainImages = $(this).parents('.product-item.product').find('.product-thumbnail'),\n            $image = $mainImages.find('img').first(),\n            imgWidth = $image.first().width(),\n            imgHeight = $image.first().height();\n\n        $mainImages.css({\n          width: imgWidth,\n          height: imgHeight,\n          display: 'block'\n        });\n\n        $image.attr('src', imgSrc);\n\n        if (imgSrcSet) {\n          $image.attr('srcset', imgSrcSet);\n        }\n\n        $image.load(function () {\n          $mainImages.removeAttr('style');\n        });\n      });\n    },\n    widgetProductCategory: function widgetProductCategory() {\n      var product_category_data = [];\n      var product_category_control = [];\n\n      $('.haru-woo-ajax-category').each(function () {\n        var element = $(this);\n        var element_id = element.attr('id');\n        var settings = element.data('settings');\n\n        if (settings['product_filter'] != 'hide') {\n          var category = element.find('.product-filter .filter-item:first').attr('data-category');\n          var max_pages = parseInt(element.find('.product-control-item').attr('data-max_pages'));\n          var current_page = parseInt(element.find('.product-control-item').attr('data-current_page'));\n\n          // Save first load to cache\n          var tab_data_index = element_id + '-' + category.toString().split(',').join('-') + '-page-1';\n          var tab_control_index = element_id + '-' + category.toString().split(',').join('-');\n\n          product_category_data[tab_data_index] = element.find('.product-category-content').clone(true);\n          product_category_control[tab_control_index] = [category, max_pages, current_page];\n\n          element.find('.product-filter .filter-item').off().on('click', function () {\n            // Check if already click or loading\n            if ($(this).hasClass('active') || element.find('.product-ajax-content').hasClass('loading')) {\n              return;\n            }\n\n            element.find('.product-filter .filter-item').removeClass('active');\n            $(this).addClass('active');\n\n            // Check cache\n            var category = $(this).data('category');\n            var tab_control_index = element_id + '-' + category.toString().split(',').join('-');\n\n            if (product_category_control[tab_control_index] != undefined) {\n              element.find('.product-category-content').remove();\n\n              var tab_data_index = element_id + '-' + category.toString().split(',').join('-') + '-page-' + product_category_control[tab_control_index][2].toString();\n\n              element.find('.product-ajax-content').append(product_category_data[tab_data_index]);\n              element.find('.product-control .product-control-item').attr('data-category', product_category_control[tab_control_index][0]);\n              element.find('.product-control .product-control-item').attr('data-max_pages', product_category_control[tab_control_index][1]);\n              element.find('.product-control .product-control-item').attr('data-current_page', product_category_control[tab_control_index][2]);\n              // Check show/hide control\n              if (product_category_control[tab_control_index][1] <= 1) {\n                element.find('.product-control').addClass('hide-control');\n              } else {\n                element.find('.product-control').removeClass('hide-control');\n              }\n              // Check last page, first page\n              if (product_category_control[tab_control_index][2] == product_category_control[tab_control_index][1]) {\n                element.find('.product-control .product-control-item[data-action=\"prev\"]').removeClass('disable');\n                element.find('.product-control .product-control-item[data-action=\"next\"]').addClass('disable');\n              } else if (product_category_control[tab_control_index][2] == 1) {\n                element.find('.product-control .product-control-item[data-action=\"prev\"]').addClass('disable');\n                element.find('.product-control .product-control-item[data-action=\"next\"]').removeClass('disable');\n              } else {\n                element.find('.product-control .product-control-item[data-action=\"prev\"]').removeClass('disable');\n                element.find('.product-control .product-control-item[data-action=\"next\"]').removeClass('disable');\n              }\n\n              Haru.shop.quickView();\n              Haru.shop.productAttribute();\n\n              return;\n            }\n\n            // Load content via ajax\n            element.find('.product-ajax-content').addClass('loading');\n\n            $.ajax({\n              type: 'POST',\n              timeout: 30000,\n              url: haru_pricom_ajax_url,\n              data: {\n                action: 'haru_get_product_category',\n                settings: settings,\n                category: category\n              },\n              error: function error(xhr, err) {\n                console.log('Have something wrong! Please try again!');\n              },\n              success: function success(response) {\n                if (response) {\n                  element.find('.product-category-content').remove();\n                  element.find('.product-ajax-content').append(response);\n\n                  // Save cache\n                  var tab_data_index = element_id + '-' + category.toString().split(',').join('-') + '-page-1';\n                  product_category_data[tab_data_index] = response;\n\n                  // Do something\n                  var max_pages = parseInt(element.find('.product-category-content').attr('data-max_pages'));\n                  product_category_control[tab_control_index] = [category, max_pages, 1];\n                  // Check show/hide control\n                  if (max_pages <= 1) {\n                    // Do something\n                    element.find('.product-control').addClass('hide-control');\n                  } else {\n                    element.find('.product-control').removeClass('hide-control');\n                  }\n                  // Set new value for control\n                  element.find('.product-control .product-control-item').attr('data-category', category);\n                  element.find('.product-control .product-control-item').attr('data-max_pages', max_pages);\n                  element.find('.product-control .product-control-item').attr('data-current_page', 1);\n                  // Check last page, first page\n                  element.find('.product-control .product-control-item[data-action=\"prev\"]').addClass('disable');\n                  element.find('.product-control .product-control-item[data-action=\"next\"]').removeClass('disable');\n                }\n                element.find('.product-ajax-content').removeClass('loading');\n\n                Haru.shop.quickView();\n                Haru.shop.productAttribute();\n              }\n            });\n          });\n        } else {\n          var category = element.find('.product-control-item').attr('data-category');\n          var max_pages = parseInt(element.find('.product-control-item').attr('data-max_pages'));\n          var current_page = parseInt(element.find('.product-control-item').attr('data-current_page'));\n\n          // Save first load to cache\n          var tab_data_index = element_id + '-' + category.toString().split(',').join('-') + '-page-1';\n          var tab_control_index = element_id + '-' + category.toString().split(',').join('-');\n\n          product_category_data[tab_data_index] = element.find('.product-category-content').clone(true);\n          product_category_control[tab_control_index] = [category, max_pages, current_page];\n        }\n\n        // Next/Prev control\n        element.find('.product-control .product-control-item').off().on('click', function () {\n          // Check if already click or loading\n          if ($(this).hasClass('disable') || element.find('.product-ajax-content').hasClass('loading')) {\n            return;\n          }\n\n          var category = $(this).attr('data-category');\n          var max_pages = parseInt($(this).attr('data-max_pages'));\n          var action = $(this).attr('data-action');\n\n          if (action == 'next') {\n            var current_page = parseInt($(this).attr('data-current_page'));\n\n            if (current_page + 1 <= max_pages) {\n              // Check cache\n              var tab_data_index = element_id + '-' + category.toString().split(',').join('-') + '-page-' + (current_page + 1);\n              var tab_control_index = element_id + '-' + category.toString().split(',').join('-');\n\n              if (product_category_data[tab_data_index] != undefined) {\n                element.find('.product-category-content').remove();\n                element.find('.product-ajax-content').append(product_category_data[tab_data_index]);\n\n                // Do something\n                element.find('.product-control .product-control-item').attr('data-current_page', current_page + 1);\n                product_category_control[tab_control_index] = [category, max_pages, current_page + 1];\n                // Check last page\n                element.find('.product-control .product-control-item[data-action=\"prev\"]').removeClass('disable');\n                if (current_page + 1 >= max_pages) {\n                  element.find('.product-control .product-control-item[data-action=\"next\"]').addClass('disable');\n                }\n\n                return;\n              }\n\n              // Load content via ajax\n              element.find('.product-ajax-content').addClass('loading');\n\n              $.ajax({\n                type: 'POST',\n                timeout: 30000,\n                url: haru_pricom_ajax_url,\n                data: {\n                  action: 'haru_get_product_category_next',\n                  settings: settings,\n                  category: category,\n                  current_page: current_page\n                },\n                error: function error(xhr, err) {\n                  console.log('Have something wrong! Please try again!');\n                },\n                success: function success(response) {\n                  if (response) {\n                    element.find('.product-category-content').remove();\n                    element.find('.product-ajax-content').append(response);\n\n                    // Save cache\n                    product_category_data[tab_data_index] = response;\n                    product_category_control[tab_control_index] = [category, max_pages, current_page + 1];\n                  }\n                  // Do something\n                  element.find('.product-control .product-control-item').attr('data-current_page', current_page + 1);\n                  element.find('.product-ajax-content').removeClass('loading');\n                  // Check last page\n                  element.find('.product-control .product-control-item[data-action=\"prev\"]').removeClass('disable');\n                  if (current_page + 1 >= max_pages) {\n                    element.find('.product-control .product-control-item[data-action=\"next\"]').addClass('disable');\n                  }\n\n                  Haru.shop.quickView();\n                  Haru.shop.productAttribute();\n                }\n              });\n            } else {\n              return;\n            }\n          } else if (action == 'prev') {\n            var current_page = parseInt($(this).attr('data-current_page'));\n\n            if (current_page == 1) {\n              return;\n            }\n\n            // Check cache\n            var tab_data_index = element_id + '-' + category.toString().split(',').join('-') + '-page-' + (current_page - 1);\n            var tab_control_index = element_id + '-' + category.toString().split(',').join('-');\n\n            if (product_category_data[tab_data_index] != undefined) {\n              element.find('.product-category-content').remove();\n              element.find('.product-ajax-content').append(product_category_data[tab_data_index]);\n\n              // Do something\n              element.find('.product-control .product-control-item').attr('data-current_page', current_page - 1);\n              product_category_control[tab_control_index] = [category, max_pages, current_page - 1];\n            }\n\n            // Check first page\n            element.find('.product-control .product-control-item[data-action=\"next\"]').removeClass('disable');\n            if (current_page - 1 <= 1) {\n              element.find('.product-control .product-control-item[data-action=\"prev\"]').addClass('disable');\n            }\n          }\n        });\n\n        // Scroll control position\n        $(window).on('scroll', function () {\n          var offset = $(window).height() / 2;\n          var scrollTop = $(window).scrollTop();\n          var holderTop = element.offset().top - offset;\n          var btnsHeight = element.find('.product-control .product-control-item').outerHeight();\n          var holderHeight = element.height() - btnsHeight;\n          var holderBottom = holderTop + holderHeight;\n\n          var buttonOffset = scrollTop - holderTop;\n\n          element.find('.product-control .product-control-item').css({\n            top: buttonOffset + 'px'\n          });\n\n          if (scrollTop < holderTop || scrollTop > holderBottom) {\n            element.find('.product-control').removeClass('show-control');\n          } else {\n            element.find('.product-control').addClass('show-control');\n          }\n        });\n      });\n    },\n    widgetProductOrder: function widgetProductOrder() {\n      var product_order_data = [];\n      var product_order_control = [];\n\n      $('.haru-woo-ajax-order').each(function () {\n        var element = $(this);\n        var element_id = element.attr('id');\n        var settings = element.data('settings');\n\n        if (settings['product_filter'] != 'hide') {\n          var order = element.find('.product-filter .filter-item:first').attr('data-order');\n          var max_pages = parseInt(element.find('.product-control-item').attr('data-max_pages'));\n          var current_page = parseInt(element.find('.product-control-item').attr('data-current_page'));\n\n          // Save first load to cache\n          var tab_data_index = element_id + '-' + order.toString().split(',').join('-') + '-page-1';\n          var tab_control_index = element_id + '-' + order.toString().split(',').join('-');\n\n          product_order_data[tab_data_index] = element.find('.product-order-content').clone(true);\n          product_order_control[tab_control_index] = [order, max_pages, current_page];\n\n          // Slick\n          if (element.find('.haru-slick').length > 0) {\n            element.find('.haru-slick').each(function (index) {\n              $(this).slick();\n            });\n\n            if (element.closest('.menu-item-mega-menu').length > 0) {\n              element.closest('.menu-item-mega-menu').on('mouseenter', function () {\n                element.find('.haru-slick').each(function (index) {\n                  $(this).slick('reinit');\n                });\n              });\n            }\n          }\n\n          element.find('.product-filter .filter-item').off().on('click', function () {\n            // Check if already click or loading\n            if ($(this).hasClass('active') || element.find('.product-ajax-content').hasClass('loading')) {\n              return;\n            }\n\n            element.find('.product-filter .filter-item').removeClass('active');\n            $(this).addClass('active');\n\n            // Check cache\n            var order = $(this).data('order');\n            var tab_control_index = element_id + '-' + order.toString().split(',').join('-');\n\n            if (product_order_control[tab_control_index] != undefined) {\n              element.find('.product-order-content').remove();\n\n              var tab_data_index = element_id + '-' + order.toString().split(',').join('-') + '-page-' + product_order_control[tab_control_index][2].toString();\n\n              element.find('.product-ajax-content').append(product_order_data[tab_data_index]);\n              element.find('.product-control .product-control-item').attr('data-order', product_order_control[tab_control_index][0]);\n              element.find('.product-control .product-control-item').attr('data-max_pages', product_order_control[tab_control_index][1]);\n              element.find('.product-control .product-control-item').attr('data-current_page', product_order_control[tab_control_index][2]);\n              // Check show/hide control\n              if (element.hasClass('haru-woo-ajax-order--grid')) {\n                if (product_order_control[tab_control_index][1] <= 1) {\n                  element.find('.product-control').addClass('hide-control');\n                } else {\n                  element.find('.product-control').removeClass('hide-control');\n                }\n              }\n              // Check last page, first page\n              if (product_order_control[tab_control_index][2] == product_order_control[tab_control_index][1]) {\n                element.find('.product-control .product-control-item[data-action=\"prev\"]').removeClass('disable');\n                element.find('.product-control .product-control-item[data-action=\"next\"]').addClass('disable');\n              } else if (product_order_control[tab_control_index][2] == 1) {\n                element.find('.product-control .product-control-item[data-action=\"prev\"]').addClass('disable');\n                element.find('.product-control .product-control-item[data-action=\"next\"]').removeClass('disable');\n              } else {\n                element.find('.product-control .product-control-item[data-action=\"prev\"]').removeClass('disable');\n                element.find('.product-control .product-control-item[data-action=\"next\"]').removeClass('disable');\n              }\n\n              Haru.shop.quickView();\n              Haru.shop.productAttribute();\n\n              // Slick\n              if (element.find('.haru-slick').length > 0) {\n                element.find('.haru-slick').each(function (index) {\n                  if ($(this).hasClass('slick-initialized')) {\n                    $(this).slick('destroy');\n                    $(this).slick();\n                  } else {\n                    $(this).slick();\n                  }\n                });\n\n                if (element.closest('.menu-item-mega-menu').length > 0) {\n                  element.closest('.menu-item-mega-menu').on('mouseenter', function () {\n                    element.find('.haru-slick').each(function (index) {\n                      if ($(this).hasClass('slick-initialized')) {\n                        $(this).slick('destroy');\n                        $(this).slick();\n                      } else {\n                        $(this).slick();\n                      }\n                    });\n                  });\n                }\n              }\n\n              return;\n            }\n\n            // Load content via ajax\n            element.find('.product-ajax-content').addClass('loading');\n\n            $.ajax({\n              type: 'POST',\n              timeout: 30000,\n              url: haru_pricom_ajax_url,\n              data: {\n                action: 'haru_get_product_order',\n                settings: settings,\n                order: order\n              },\n              error: function error(xhr, err) {\n                console.log('Have something wrong! Please try again!');\n              },\n              success: function success(response) {\n                if (response) {\n                  element.find('.product-order-content').remove();\n                  element.find('.product-ajax-content').append(response);\n\n                  // Save cache\n                  var tab_data_index = element_id + '-' + order.toString().split(',').join('-') + '-page-1';\n                  product_order_data[tab_data_index] = response;\n\n                  // Do something\n                  var max_pages = parseInt(element.find('.product-order-content').attr('data-max_pages'));\n\n                  product_order_control[tab_control_index] = [order, max_pages, 1];\n                  // Check show/hide control\n                  if (element.hasClass('haru-woo-ajax-order--grid')) {\n                    if (max_pages <= 1) {\n                      // Do something\n                      element.find('.product-control').addClass('hide-control');\n                    } else {\n                      element.find('.product-control').removeClass('hide-control');\n                    }\n                  }\n\n                  // Set new value for control\n                  element.find('.product-control .product-control-item').attr('data-order', order);\n                  element.find('.product-control .product-control-item').attr('data-max_pages', max_pages);\n                  element.find('.product-control .product-control-item').attr('data-current_page', 1);\n                  // Check last page, first page\n                  element.find('.product-control .product-control-item[data-action=\"prev\"]').addClass('disable');\n                  element.find('.product-control .product-control-item[data-action=\"next\"]').removeClass('disable');\n                }\n                element.find('.product-ajax-content').removeClass('loading');\n\n                Haru.shop.quickView();\n                Haru.shop.productAttribute();\n\n                // Slick\n                if (element.find('.haru-slick').length > 0) {\n                  element.find('.haru-slick').each(function (index) {\n                    $(this).slick();\n                  });\n\n                  if (element.closest('.menu-item-mega-menu').length > 0) {\n                    element.closest('.menu-item-mega-menu').on('mouseenter', function () {\n                      element.find('.haru-slick').each(function (index) {\n                        $(this).slick('reinit');\n                      });\n                    });\n                  }\n                }\n              }\n            });\n          });\n        } else {\n          var order = element.find('.product-control-item').attr('data-order');\n          var max_pages = parseInt(element.find('.product-control-item').attr('data-max_pages'));\n          var current_page = parseInt(element.find('.product-control-item').attr('data-current_page'));\n\n          // Save first load to cache\n          var tab_data_index = element_id + '-' + order.toString().split(',').join('-') + '-page-1';\n          var tab_control_index = element_id + '-' + order.toString().split(',').join('-');\n\n          product_order_data[tab_data_index] = element.find('.product-order-content').clone(true);\n          product_order_control[tab_control_index] = [order, max_pages, current_page];\n        }\n\n        // Next/Prev control\n        element.find('.product-control .product-control-item').off().on('click', function () {\n          // Check if already click or loading\n          if ($(this).hasClass('disable') || element.find('.product-ajax-content').hasClass('loading')) {\n            return;\n          }\n\n          var order = $(this).attr('data-order');\n          var max_pages = parseInt($(this).attr('data-max_pages'));\n          var action = $(this).attr('data-action');\n\n          if (action == 'next') {\n            var current_page = parseInt($(this).attr('data-current_page'));\n\n            if (current_page + 1 <= max_pages) {\n              // Check cache\n              var tab_data_index = element_id + '-' + order.toString().split(',').join('-') + '-page-' + (current_page + 1);\n              var tab_control_index = element_id + '-' + order.toString().split(',').join('-');\n\n              if (product_order_data[tab_data_index] != undefined) {\n                element.find('.product-order-content').remove();\n                element.find('.product-ajax-content').append(product_order_data[tab_data_index]);\n\n                // Do something\n                element.find('.product-control .product-control-item').attr('data-current_page', current_page + 1);\n                product_order_control[tab_control_index] = [order, max_pages, current_page + 1];\n                // Check last page\n                element.find('.product-control .product-control-item[data-action=\"prev\"]').removeClass('disable');\n                if (current_page + 1 >= max_pages) {\n                  element.find('.product-control .product-control-item[data-action=\"next\"]').addClass('disable');\n                }\n\n                return;\n              }\n\n              // Load content via ajax\n              element.find('.product-ajax-content').addClass('loading');\n\n              $.ajax({\n                type: 'POST',\n                timeout: 30000,\n                url: haru_pricom_ajax_url,\n                data: {\n                  action: 'haru_get_product_order_next',\n                  settings: settings,\n                  order: order,\n                  current_page: current_page\n                },\n                error: function error(xhr, err) {\n                  console.log('Have something wrong! Please try again!');\n                },\n                success: function success(response) {\n                  if (response) {\n                    element.find('.product-order-content').remove();\n                    element.find('.product-ajax-content').append(response);\n\n                    // Save cache\n                    product_order_data[tab_data_index] = response;\n                    product_order_control[tab_control_index] = [order, max_pages, current_page + 1];\n                  }\n                  // Do something\n                  element.find('.product-control .product-control-item').attr('data-current_page', current_page + 1);\n                  element.find('.product-ajax-content').removeClass('loading');\n                  // Check last page\n                  element.find('.product-control .product-control-item[data-action=\"prev\"]').removeClass('disable');\n                  if (current_page + 1 >= max_pages) {\n                    element.find('.product-control .product-control-item[data-action=\"next\"]').addClass('disable');\n                  }\n\n                  Haru.shop.quickView();\n                  Haru.shop.productAttribute();\n                }\n              });\n            } else {\n              return;\n            }\n          } else if (action == 'prev') {\n            var current_page = parseInt($(this).attr('data-current_page'));\n\n            if (current_page == 1) {\n              return;\n            }\n\n            // Check cache\n            var tab_data_index = element_id + '-' + order.toString().split(',').join('-') + '-page-' + (current_page - 1);\n            var tab_control_index = element_id + '-' + order.toString().split(',').join('-');\n\n            if (product_order_data[tab_data_index] != undefined) {\n              element.find('.product-order-content').remove();\n              element.find('.product-ajax-content').append(product_order_data[tab_data_index]);\n\n              // Do something\n              element.find('.product-control .product-control-item').attr('data-current_page', current_page - 1);\n              product_order_control[tab_control_index] = [order, max_pages, current_page - 1];\n            }\n\n            // Check first page\n            element.find('.product-control .product-control-item[data-action=\"next\"]').removeClass('disable');\n            if (current_page - 1 <= 1) {\n              element.find('.product-control .product-control-item[data-action=\"prev\"]').addClass('disable');\n            }\n          }\n        });\n\n        // Scroll control position\n        $(window).on('scroll', function () {\n          var offset = $(window).height() / 2;\n          var scrollTop = $(window).scrollTop();\n          var holderTop = element.offset().top - offset;\n          var btnsHeight = element.find('.product-control .product-control-item').outerHeight();\n          var holderHeight = element.height() - btnsHeight;\n          var holderBottom = holderTop + holderHeight;\n\n          var buttonOffset = scrollTop - holderTop;\n          element.find('.product-control .product-control-item').css({\n            top: buttonOffset + 'px'\n          });\n\n          if (scrollTop < holderTop || scrollTop > holderBottom) {\n            element.find('.product-control').removeClass('show-control');\n          } else {\n            element.find('.product-control').addClass('show-control');\n          }\n        });\n      });\n    },\n    printful: function printful() {\n      if ($('.single_variation_wrap > a[onclick]').length > 0) {\n        $('.single_variation_wrap > a[onclick]').on('click', function () {\n          $('html').addClass('printful-modal');\n        });\n\n        $(document).on('click', '.pf-size-guide-modal__close', function () {\n          $('html').removeClass('printful-modal');\n        });\n      }\n\n      if ($('.woocommerce-variation-add-to-cart .button[onclick]').length > 0) {\n        $('.woocommerce-variation-add-to-cart .button[onclick]').on('click', function () {\n          $('html').addClass('printful-modal');\n        });\n\n        $(document).on('click', '.pf-customize-modal > div > div', function () {\n          $('html').removeClass('printful-modal');\n        });\n      }\n    },\n    defaultEvents: function defaultEvents() {\n      $(document).on('updated_cart_totals', function () {\n        Haru.shop.ajaxCartUpdate();\n      });\n    },\n    ajaxCartUpdate: function ajaxCartUpdate() {\n      var timeout;\n      var woo_cart_form = $('.woocommerce-cart-form');\n\n      woo_cart_form.on('change', '.qty', function () {\n        if (undefined != timeout) clearTimeout(timeout);\n\n        if ($(this).val() == '') return;\n\n        timeout = setTimeout(function () {\n          $('[name=\"update_cart\"]', woo_cart_form).trigger('click');\n        }, 1000);\n      });\n    },\n    tooltipHidden: function tooltipHidden() {\n      $('.haru-scroll-widget').find('.attr-tooltip').each(function () {\n        var $this = $(this);\n\n        $this.on('mouseenter', function () {\n          var posTop = $(this).offset().top - $(window).scrollTop();\n          var posLeft = $(this).offset().left;\n          var tooltip_height = $this.find('> .haru-tooltip').outerHeight();\n          var tooltip_width = $this.find('> .haru-tooltip').outerWidth();\n\n          $this.find('> .haru-tooltip').css('position', 'fixed');\n          $this.find('> .haru-tooltip').css('height', tooltip_height);\n          $this.find('> .haru-tooltip').css('max-width', tooltip_width);\n          $this.find('> .haru-tooltip').css('top', posTop - tooltip_height + 2);\n          $this.find('> .haru-tooltip').css('left', posLeft + $this.outerHeight() / 2 - 1); // Depend border\n          $this.find('> .haru-tooltip').css('transition', 'opacity 0.3s');\n          $this.find('> .haru-tooltip').css('z-index', '2');\n        });\n      });\n    }\n\n    // Header\n  };Haru.header = {\n    init: function init() {\n      Haru.header.headerDefault();\n      Haru.header.headerOnLoad();\n      Haru.header.headerSticky();\n      Haru.header.headerMenuToggle();\n      Haru.header.headerMegaMenu();\n      Haru.header.headerMenuPopup();\n      Haru.header.headerMenuSidebar();\n      Haru.header.headerMenuTemplate();\n      Haru.header.headerVerticalMenu();\n      Haru.header.headerMenuOnePage();\n    },\n    headerDefault: function headerDefault() {\n      if ($('.haru-header__sticky-holder').length == 0) {\n        var header_default = $('.haru-header-default');\n\n        $('<div class=\"haru-header__sticky-holder\"></div>').insertBefore(header_default);\n      }\n\n      if ($(window).width() < 992) {\n        $('#header-primary-menu').hide();\n\n        $('.haru-toggle-default').off().on('click', function () {\n          $(this).toggleClass('active');\n          $('#header-primary-menu').slideToggle(500);\n        });\n        $('.haru-main-menu .sub-menu').hide();\n\n        $('.haru-main-menu .menu-item-has-children').each(function () {\n          $(this).find('> a').append('<span class=\"sub-toggle\"></span>');\n        });\n        $(document).on('click touchend', '.sub-toggle', function (e) {\n          e.preventDefault();\n          e.stopPropagation();\n\n          $(this).toggleClass('active');\n\n          $('> ul', $(this).parent().parent()).slideToggle('fast');\n        });\n      }\n    },\n    headerOnLoad: function headerOnLoad() {\n      if ($('body').hasClass('header-footer-onload')) {\n        $('#haru-header').removeClass('haru-header--loading');\n        $('#haru-footer').removeClass('haru-footer--loading');\n        $('#haru-bottom-toolbar').removeClass('haru-toolbar--loading');\n      }\n    },\n    headerSticky: function headerSticky(update) {\n      if ($('#haru-header').hasClass('haru-header--sticky')) {\n        var header = $('#haru-header'),\n            headerHeight = $('#haru-header').height(),\n            adminBarHeight = $('.admin-bar').length ? $('#wpadminbar').height() : 0;\n\n        if ($(window).width() <= 600) {\n          adminBarHeight = 0;\n        }\n\n        var stickyHeaderToTop = '';\n\n        // Process Header Sidebar\n        if (header.hasClass('haru-header--sidebar')) {\n          if (header.hasClass('haru-header--sidebar-hidden-tablet')) {\n            var hidden_width = 1025;\n          } else if (header.hasClass('haru-header--sidebar-hidden-mobile')) {\n            var hidden_width = 768;\n          }\n        }\n\n        // New Elementor change .elementor-top-section to .e-container--row (use last or first). Version 3.8.0 add more .elementor-element.e-con\n        if (!header.hasClass('haru-header--sidebar')) {\n          if (header.hasClass('haru-header--sticky-menu')) {\n            if (header.find('.haru-nav-menu').length > 0) {\n              var stickyMenuSection = header.find('.haru-nav-menu').parents('.e-container--row, .elementor-element.e-con').last();\n            } else if (header.find('.haru-menu-toggle-popup').length > 0) {\n              var stickyMenuSection = header.find('.haru-menu-toggle-popup').parents('.e-container--row, .elementor-element.e-con').last();\n            } else if (header.find('.haru-menu-toggle-sidebar').length > 0) {\n              var stickyMenuSection = header.find('.haru-menu-toggle-sidebar').parents('.e-container--row, .elementor-element.e-con').last();\n            }\n\n            if (stickyMenuSection) {\n              if ($('.haru-header__sticky-holder').length == 0) {\n                $('<div class=\"haru-header__sticky-holder\"></div>').insertBefore(stickyMenuSection);\n              }\n\n              var stickyMenuSectionPrev = stickyMenuSection.prev();\n\n              if (stickyMenuSectionPrev.length > 0) {\n                var stickyMenuSectionToTop = stickyMenuSectionPrev.offset().top + stickyMenuSectionPrev.outerHeight();\n              } else {\n                var stickyMenuSectionToTop = 0;\n              }\n            }\n          } else {\n            if ($('.haru-header__sticky-holder').length == 0) {\n              var header_desktop = $('.haru-header__desktop');\n\n              $('<div class=\"haru-header__sticky-holder\"></div>').insertBefore(header_desktop);\n            }\n          }\n        } else {\n          if (header.hasClass('haru-header--sticky-menu')) {\n            if (header.find('.haru-nav-menu').length > 0) {\n              var stickyMenuSection = header.find('.haru-nav-menu').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n            } else if (header.find('.haru-menu-toggle-popup').length > 0) {\n              var stickyMenuSection = header.find('.haru-menu-toggle-popup').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n            } else if (header.find('.haru-menu-toggle-sidebar').length > 0) {\n              var stickyMenuSection = header.find('.haru-menu-toggle-sidebar').parents('.e-container--row:not(.header-sidebar-section), .elementor-element.e-con:not(.header-sidebar-section)').last();\n            }\n\n            if (stickyMenuSection) {\n              if ($('.haru-header__sticky-holder').length == 0) {\n                $('<div class=\"haru-header__sticky-holder\"></div>').insertBefore(stickyMenuSection);\n              }\n\n              var stickyMenuSectionPrev = stickyMenuSection.prev();\n\n              if (stickyMenuSectionPrev.length > 0) {\n                var stickyMenuSectionToTop = stickyMenuSectionPrev.offset().top + stickyMenuSectionPrev.outerHeight();\n              } else {\n                var stickyMenuSectionToTop = 0;\n              }\n            }\n          } else {\n            if ($('.haru-header__sticky-holder').length == 0) {\n              var header_desktop = $('.haru-header__desktop');\n\n              $('<div class=\"haru-header__sticky-holder\"></div>').insertBefore(header_desktop);\n            }\n          }\n        }\n\n        var time = 300;\n        $('.close-row-wrap').each(function () {\n          var closeBtn = $(this);\n\n          closeBtn.on('click', function () {\n            closeBtn.closest('.e-container--row, .elementor-element.e-con').slideUp(time);\n\n            setTimeout(function () {\n              if (stickyMenuSectionPrev.length > 0) {\n                stickyMenuSectionToTop = stickyMenuSectionPrev.offset().top + stickyMenuSectionPrev.outerHeight();\n              } else {\n                stickyMenuSectionToTop = 0;\n              }\n\n              headerHeight = $('#haru-header').height();\n            }, time + 100);\n          });\n        });\n\n        // New Elementor change .elementor-section-wrap to .elementor\n        $(window).on('scroll', function () {\n          if (!header.hasClass('haru-header--sidebar')) {\n            if (header.hasClass('haru-header--sticky-menu')) {\n              if ($(this).scrollTop() > stickyMenuSectionToTop - adminBarHeight) {\n                header.find('.elementor').first().height(headerHeight);\n                $('.haru-header__sticky-holder').height(stickyMenuSection.height());\n\n                header.addClass('haru-header--sticky-on');\n                stickyMenuSection.addClass('haru-header__sticky-menu animate__hanimated1 animate__hslideInDown1'); // Animate Sticky\n              } else {\n                header.find('.elementor').first().height('auto');\n                $('.haru-header__sticky-holder').height(0);\n\n                header.removeClass('haru-header--sticky-on');\n                stickyMenuSection.removeClass('haru-header__sticky-menu animate__hanimated1 animate__hslideInDown1'); // Animate Sticky\n              }\n            } else {\n              stickyHeaderToTop = header.offset().top;\n\n              if ($(this).scrollTop() > stickyHeaderToTop - adminBarHeight) {\n                header.addClass('haru-header--sticky-on');\n                // Animate Sticky\n                // var header_desktop = $('.haru-header__desktop')\n                // header_desktop.addClass('animate__hanimated1 animate__hslideInDown1')\n\n                $('.haru-header__sticky-holder').height(headerHeight);\n              } else {\n                header.removeClass('haru-header--sticky-on');\n                // Animate Sticky\n                // var header_desktop = $('.haru-header__desktop')\n                // header_desktop.removeClass('animate__hanimated1 animate__hslideInDown1')\n\n                $('.haru-header__sticky-holder').height(0);\n              }\n            }\n          } else {\n            if ($(window).width() < hidden_width) {\n              if (header.hasClass('haru-header--sticky-menu')) {\n                if ($(this).scrollTop() > stickyMenuSectionToTop - adminBarHeight) {\n                  header.find('.elementor').first().height(headerHeight);\n                  $('.haru-header__sticky-holder').height(stickyMenuSection.height());\n\n                  header.addClass('haru-header--sticky-on');\n                  stickyMenuSection.addClass('haru-header__sticky-menu animate__hanimated1 animate__hslideInDown1'); // Animate Sticky\n                } else {\n                  header.find('.elementor').first().height('auto');\n                  $('.haru-header__sticky-holder').height(0);\n\n                  header.removeClass('haru-header--sticky-on');\n                  stickyMenuSection.removeClass('haru-header__sticky-menu animate__hanimated1 animate__hslideInDown1'); // Animate Sticky\n                }\n              } else {\n                stickyHeaderToTop = header.offset().top;\n\n                if ($(this).scrollTop() > stickyHeaderToTop - adminBarHeight) {\n                  header.addClass('haru-header--sticky-on');\n                  $('.haru-header__sticky-holder').height(headerHeight);\n                } else {\n                  header.removeClass('haru-header--sticky-on');\n                  $('.haru-header__sticky-holder').height(0);\n                }\n              }\n            } else {\n              header.find('.elementor').first().height('auto');\n              $('.haru-header__sticky-holder').remove();\n            }\n          }\n        });\n      }\n    },\n    headerMenuToggle: function headerMenuToggle() {\n      $('.elementor-widget-haru-nav-menu .haru-nav-menu--dropdown').hide();\n      $('.haru-menu-toggle').off().on('click', function (e) {\n        $(this).toggleClass('haru-active');\n        $('html').toggleClass('hidden-scroll-y');\n        $(this).closest('.elementor-widget-haru-nav-menu').find('.haru-nav-menu--dropdown').slideToggle('fast');\n\n        if ($(this).closest('.elementor-widget-haru-nav-menu').hasClass('haru-nav-menu--stretch')) {\n          var stretchElement = new elementorModules.frontend.tools.StretchElement({\n            element: $(this).next('.haru-nav-menu__container.haru-nav-menu--dropdown')\n          });\n\n          stretchElement.stretch();\n\n          $('.haru-nav-menu__container.haru-nav-menu--dropdown').css('top', $('.haru-menu-toggle').outerHeight());\n\n          setTimeout(function () {\n            var offsetTopMenu = $('.haru-nav-menu__container.haru-nav-menu--dropdown').offset().top - $(window).scrollTop();\n            $('.haru-nav-menu__container.haru-nav-menu--dropdown').css('max-height', 'calc(100vh - ' + offsetTopMenu + 'px)');\n          }, 500);\n        }\n      });\n\n      $('.haru-nav-menu--dropdown .sub-menu').hide();\n      $('.haru-nav-menu--dropdown .sub-arrow').off().on('click', function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        $(this).toggleClass('active');\n\n        $('> ul', $(this).parent().parent()).slideToggle('fast');\n      });\n    },\n    headerMegaMenu: function headerMegaMenu() {\n      $('.haru-nav-menu--main .menu-item-has-children.menu-item-mega-menu').each(function () {\n        var $this = $(this);\n\n        if ($this.hasClass('menu-item-full-stretch')) {\n          $this.on('mouseenter', function () {\n            var stretchElement = new elementorModules.frontend.tools.StretchElement({\n              element: $('> .sub-menu', $this)\n            });\n\n            stretchElement.stretch();\n          });\n        }\n\n        if ($this.hasClass('menu-item-full-container')) {\n          $this.on('mouseenter', function () {\n            // mouseover\n            var container = $('.elementor-container').first().width(); // Don't use container if fullscreen\n            var position = $('> .sub-menu', $this).offset().left - $(window).scrollLeft();\n            var window_width = $(window).width();\n            var left = (window_width - container) / 2;\n            var last_left = position - left;\n\n            $('> .sub-menu', $this).css({\n              left: -last_left + 'px',\n              width: container + 'px'\n            });\n          });\n\n          $this.on('mouseleave', function () {\n            // mouseout\n            $('> .sub-menu', $this).css({\n              left: '0'\n            });\n          });\n        }\n      });\n\n      $('.haru-nav-menu--main .menu-item-has-children').each(function () {\n        var $this = $(this);\n\n        // Effect List: https://animate.style/\n        // Work All: slideInDown, slideInUp, fadeIn, fadeInDown, fadeInUp, bounceInDown, bounceInUp, bounce, pulse, rubberBand\n        // Full Not Work: slideInLeft, slideInRight, fadeInLeft, fadeInRight, zoomIn, flipInX, flipInY, bounceIn\n        $this.find('.sub-menu').addClass('animate__hanimated animate__hfadeInUp');\n        $this.find('.sub-menu').css('animation-duration', '0.5s');\n      });\n    },\n    headerMenuPopup: function headerMenuPopup() {\n      // Popup Menu\n      $('.haru-menu-toggle-popup').on('click', function () {\n        var popup_effect = $(this).data('effect');\n        var popup_id = $(this).data('id');\n\n        // Issues fixed element changed position: https://github.com/dimsemenov/Magnific-Popup/issues/615\n        $(this).magnificPopup({\n          items: {\n            src: '#' + popup_id,\n            type: 'inline'\n          },\n          removalDelay: 500, //delay removal by X to allow out-animation\n          callbacks: {\n            beforeOpen: function beforeOpen() {\n              this.st.mainClass = 'haru-nav-menu-popup-bg ' + popup_effect;\n            },\n            beforeClose: function beforeClose() {\n              //\n            }\n          },\n          fixedContentPos: true\n          // (optionally) other options\n        }).magnificPopup('open');\n      });\n\n      // Toggle Menu\n      $('.haru-nav-menu-popup .sub-menu').hide();\n      $('.haru-nav-menu-popup .sub-arrow').removeClass('active');\n      $('.haru-nav-menu-popup .sub-arrow').off().on('click', function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        $(this).toggleClass('active');\n\n        $('> ul', $(this).parent().parent()).slideToggle('fast');\n      });\n    },\n    headerMenuSidebar: function headerMenuSidebar() {\n      // Canvas Menu\n      $('.haru-menu-toggle-sidebar').on('click', function () {\n        $('.haru-nav-menu-sidebar-wrap').addClass('canvas-active');\n        $('.haru-canvas-overlay').addClass('canvas-active');\n      });\n\n      $('.haru-canvas-overlay, .haru-canvas-close').on('click', function () {\n        $('.haru-nav-menu-sidebar-wrap').removeClass('canvas-active');\n        $('.haru-canvas-overlay').removeClass('canvas-active');\n      });\n\n      // Toggle Menu\n      $('.haru-nav-menu-sidebar .sub-menu').hide();\n      $('.haru-nav-menu-sidebar .sub-arrow').removeClass('active');\n      $('.haru-nav-menu-sidebar .sub-arrow').off().on('click', function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        $(this).toggleClass('active');\n\n        $('> ul', $(this).parent().parent()).slideToggle('fast');\n      });\n    },\n    headerMenuTemplate: function headerMenuTemplate() {\n      $('.haru-nav-menu-template--dropdown .haru-nav-menu-template .sub-menu').hide();\n      $('.haru-nav-menu-template--dropdown .haru-nav-menu-template .sub-arrow').removeClass('active');\n      $('.haru-nav-menu-template--dropdown .haru-nav-menu-template .sub-arrow').off().on('click', function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        $(this).toggleClass('active');\n\n        $('> ul', $(this).parent().parent()).slideToggle('fast');\n      });\n\n      $('.haru-nav-menu-template--hover .menu-item-has-children').each(function () {\n        var $this = $(this);\n\n        // Effect List: https://animate.style/\n        // Work All: slideInDown, slideInUp, fadeIn, fadeInDown, fadeInUp, bounceInDown, bounceInUp, bounce, pulse, rubberBand\n        // Full Not Work: slideInLeft, slideInRight, fadeInLeft, fadeInRight, zoomIn, flipInX, flipInY, bounceIn\n        $this.find('.sub-menu').addClass('animate__hanimated animate__hfadeInUp');\n        $this.find('.sub-menu').css('animation-duration', '0.5s');\n      });\n    },\n    headerVerticalMenu: function headerVerticalMenu() {\n      // Close or Open Menu on default (can use PHP)\n      $('.haru-nav-menu--layout-vertical').each(function () {\n        var start = $(this).data('start');\n\n        if (start == 'close') {\n          $(this).find('.haru-vertical-menu').hide();\n          $(this).find('.menu-vertical-toggle').hide();\n        }\n      });\n\n      if ($('.haru-vertical-menu').length > 0) {\n        $('.haru-vertical-menu').each(function () {\n          var all_item = 0;\n          var verticalWrap = $(this).closest('.haru-nav-menu--layout-vertical');\n          var items_show = $(this).closest('.haru-nav-menu--layout-vertical').data('items-show') - 1;\n\n          var all_item = $(this).find('>li').length;\n\n          if (all_item > items_show + 1) {\n            verticalWrap.addClass('show-view-more');\n          }\n\n          $(this).find('>li').each(function (i) {\n            all_item = all_item + 1;\n\n            if (i > items_show) {\n              $(this).addClass('menu-item--more');\n            }\n          });\n        });\n      }\n\n      $('.haru-menu-header').off().on('click', function (event) {\n        event.preventDefault();\n        $(this).closest('.haru-nav-menu--layout-vertical').find('.haru-vertical-menu').slideToggle(300);\n\n        if ($(this).closest('.haru-nav-menu--layout-vertical').hasClass('show-view-more')) {\n          $(this).closest('.haru-nav-menu--layout-vertical').find('.menu-vertical-toggle').slideToggle(300);\n        }\n      });\n\n      $(document).on('click', '.vertical-view-more', function () {\n        var $this = $(this);\n        $(this).toggleClass('show-category');\n        $(this).closest('.haru-nav-menu--layout-vertical').find('li.menu-item--more').each(function () {\n          $(this).toggleClass('show');\n        });\n        var open_text = $(this).data('open-text');\n        var close_text = $(this).data('close-text');\n        if ($this.hasClass('show-category')) {\n          $this.html(close_text);\n        } else {\n          $this.html(open_text);\n        }\n      });\n    },\n    headerMenuOnePage: function headerMenuOnePage() {\n      if ($('.haru-nav-menu--onepage .haru-nav-menu').length) {\n        $('.haru-nav-menu--onepage .haru-nav-menu > li.menu-item.current-menu-item > a').addClass('haru-item-active');\n\n        $('.haru-nav-menu--onepage .haru-nav-menu').onePageNav({\n          currentClass: 'current-menu-item',\n          filter: ':not(.external)',\n          begin: function begin() {\n            $('.haru-nav-menu--onepage .haru-nav-menu > li.menu-item').removeClass('active');\n            $('.haru-nav-menu--onepage .haru-nav-menu > li.menu-item > a').removeClass('haru-item-active');\n          },\n          end: function end() {\n            $('.haru-nav-menu--onepage .haru-nav-menu > li.menu-item.current-menu-item > a').addClass('haru-item-active');\n          },\n          scrollChange: function scrollChange($currentListItem) {\n            $('.haru-nav-menu--onepage .haru-nav-menu > li.menu-item > a').removeClass('haru-item-active');\n            $('.haru-nav-menu--onepage .haru-nav-menu > li.menu-item > a').blur();\n            $('.haru-nav-menu--onepage .haru-nav-menu > li.menu-item.current-menu-item > a').addClass('haru-item-active');\n          }\n        });\n      }\n    }\n\n    // Document ready\n  };Haru.onReady = {\n    init: function init() {\n      Haru.base.init();\n      Haru.blog.init();\n      Haru.shop.init();\n      Haru.header.init();\n    }\n\n    // Window resize\n  };Haru.onResize = {\n    init: function init() {\n      Haru.header.init();\n      Haru.shop.singleProductSticky();\n      Haru.base.bottomToolbar();\n    }\n\n    // Window onLoad\n  };Haru.onLoad = {\n    init: function init() {\n      Haru.base.windowLoad();\n    }\n\n    // Window onScroll\n  };Haru.onScroll = {\n    init: function init() {}\n    // Add js Elementor widget: https://developers.elementor.com/creating-a-new-widget/adding-javascript-to-elementor-widgets/\n    // https://code.elementor.com/js-hooks/\n  };$(window).on('elementor/frontend/init', function () {\n    $('#haru-header').removeClass('haru-header--loading');\n    $('#haru-footer').removeClass('haru-footer--loading');\n    $('#haru-bottom-toolbar').removeClass('haru-toolbar--loading');\n\n    // General element\n    elementorFrontend.hooks.addAction('frontend/element_ready/haru-nav-menu.default', function ($scope) {\n      Haru.header.init();\n    });\n  });\n\n  $(window).resize(Haru.onResize.init);\n  $(window).scroll(Haru.onScroll.init);\n  $(document).ready(Haru.onReady.init);\n  $(window).load(Haru.onLoad.init);\n})(jQuery);\n\n//# sourceURL=webpack:///./src/js/index.js?");

/***/ }),

/***/ "./src/js/modules/accordion.js":
/*!*************************************!*\
  !*** ./src/js/modules/accordion.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruAccordionHandler = function HaruAccordionHandler($scope, $) {\n  var $currentAccordion = $scope.find('.haru-accordion');\n\n  setTimeout(function () {\n    $currentAccordion.find('.haru-tab-content:not(.active)').hide();\n  }, 100);\n\n  $currentAccordion.find('.haru-tab-title').on('click', function (e) {\n    e.preventDefault();\n\n    if ($(this).hasClass('active')) {\n      $(this).removeClass('active');\n      $(this).parent().find('.haru-tab-content').removeClass('active').slideUp(300);\n    } else {\n      $(this).addClass('active');\n      $(this).parent().find('.haru-tab-content').addClass('active').slideDown(300);\n\n      console.log($(this).closest('.haru-accordion').children('.haru-accordion-item'));\n\n      $(this).parent().siblings('.haru-accordion-item').find('.haru-tab-title').removeClass('active');\n      $(this).parent().siblings('.haru-accordion-item').find('.haru-tab-content').removeClass('active').slideUp(300);\n    }\n  });\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-accordion.default', HaruAccordionHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/accordion.js?");

/***/ }),

/***/ "./src/js/modules/banner-list.js":
/*!***************************************!*\
  !*** ./src/js/modules/banner-list.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruBannerListHandler = function HaruBannerListHandler($scope, $) {\n  var $currentBannerList = $scope.find('.haru-banner-list');\n\n  if ($currentBannerList.find('.haru-slick').length > 0) {\n    $currentBannerList.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-banner-list.default', HaruBannerListHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/banner-list.js?");

/***/ }),

/***/ "./src/js/modules/content-slideshow.js":
/*!*********************************************!*\
  !*** ./src/js/modules/content-slideshow.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruContentSlideshowHandler = function HaruContentSlideshowHandler($scope, $) {\n  var $currentContentSlideshow = $scope.find('.haru-content-slideshow');\n\n  if ($currentContentSlideshow.find('.haru-slick').length > 0) {\n    $currentContentSlideshow.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-content-slideshow.default', HaruContentSlideshowHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/content-slideshow.js?");

/***/ }),

/***/ "./src/js/modules/countdown.js":
/*!*************************************!*\
  !*** ./src/js/modules/countdown.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruCountdownHandler = function HaruCountdownHandler($scope, $) {\n  var $currentCounter = $scope.find('.haru-countdown');\n  // var $currentCounterNumber = $($currentCounter).find('.haru-countdown__number')\n\n  var counter_id = $currentCounter.attr('data-id');\n  var date = $currentCounter.attr('data-date');\n  var dategmt = $currentCounter.attr('data-dategmt');\n  var strftime = $currentCounter.attr('data-strftime');\n\n  $('#haru-countdown__content-' + counter_id).countdown(dategmt, function (event) {\n    $(this).html(event.strftime(strftime));\n  });\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-countdown.default', HaruCountdownHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/countdown.js?");

/***/ }),

/***/ "./src/js/modules/counter.js":
/*!***********************************!*\
  !*** ./src/js/modules/counter.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruCounterHandler = function HaruCounterHandler($scope, $) {\n  var $currentCounter = $scope.find('.haru-counter');\n  var $currentCounterNumber = $($currentCounter).find('.haru-counter__number');\n\n  var duration = parseInt($currentCounterNumber.attr('data-duration'));\n  var to = parseInt($currentCounterNumber.attr('data-to-value'));\n  var from = parseInt($currentCounterNumber.attr('data-from-value'));\n  var delimiter = $currentCounterNumber.attr('data-delimiter');\n\n  // Appear\n  if (!$('.gr-animated').length) return;\n\n  $('.gr-animated').appear();\n\n  $(document.body).on('appear', '.gr-animated', function () {\n    $(this).addClass('go');\n  });\n\n  $(document.body).on('disappear', '.gr-animated', function () {\n    // $(this).removeClass('go')\n  });\n\n  // Counter\n  if (!$('.gr-number-counter').length) return;\n  $('.gr-number-counter').appear(); // require jquery-appear\n\n  $('body').on('appear', '.gr-number-counter', function () {\n    var counter = $(this);\n    if (!counter.hasClass('count-complete')) {\n      $($currentCounterNumber).numerator({\n        easing: 'swing',\n        duration: duration,\n        delimiter: delimiter,\n        toValue: to,\n        fromValue: delimiter,\n        onComplete: function onComplete() {\n          counter.addClass('count-complete');\n        }\n      });\n    }\n  });\n\n  $('body').on('disappear', '.gr-number-counter', function () {\n    // $(this).removeClass('count-complete')\n  });\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-counter.default', HaruCounterHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/counter.js?");

/***/ }),

/***/ "./src/js/modules/icon-list.js":
/*!*************************************!*\
  !*** ./src/js/modules/icon-list.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruIconListHandler = function HaruIconListHandler($scope, $) {\n  var $currentIconList = $scope.find('.haru-icon-list');\n\n  if ($currentIconList.find('.haru-slick').length > 0) {\n    $currentIconList.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-icon-list.default', HaruIconListHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/icon-list.js?");

/***/ }),

/***/ "./src/js/modules/images-gallery.js":
/*!******************************************!*\
  !*** ./src/js/modules/images-gallery.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruImagesGalleryHandler = function HaruImagesGalleryHandler($scope, $) {\n  var $currentImagesGallery = $scope.find('.haru-images-gallery');\n\n  if ($currentImagesGallery.find('.haru-slick').length > 0) {\n    $currentImagesGallery.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n\n  $currentImagesGallery.find('.gallery-popup-link').magnificPopup({\n    type: 'image',\n    gallery: {\n      enabled: true\n    }\n    // other options\n  });\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-images-gallery.default', HaruImagesGalleryHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/images-gallery.js?");

/***/ }),

/***/ "./src/js/modules/layla-slideshow.js":
/*!*******************************************!*\
  !*** ./src/js/modules/layla-slideshow.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruLaylaSlideshowHandler = function HaruLaylaSlideshowHandler($scope, $) {\n  var $element = $scope.find('.haru-layla-slideshow'),\n      $slideImgsWrapper = $element.find('.slide-img-wrap'),\n      $slideImgs = $element.find('.slide-img'),\n      $titleWrapper = $element.find('.title-wrap'),\n      $slideTitles = $element.find('.title-wrap .slide-title'),\n      $counterProject = $element.find('.project-counter .counter'),\n      $bulletWrapper = $element.find('.bullet-wrap');\n\n  $slideImgs.find('img').each(function () {\n    var srcLoad = $(this).attr('data-src');\n    $(this).attr('src', srcLoad);\n  });\n\n  $slideTitles.find('a').on('mouseenter', function (e) {\n    var $atitle = $(this),\n        $title = $atitle.closest('.slide-title'),\n        id = $title.attr('data-id'),\n        $toActiveImg = $slideImgs.filter(':nth-child(' + id + ')'),\n        slider_type = $element.data('slider-type');\n\n    $slideTitles.removeClass('active');\n\n    $title.addClass('active');\n\n    $slideImgs.removeClass('active');\n    $toActiveImg.addClass('active');\n\n    if (slider_type == 'videos') {\n      $toActiveImg.find('video')[0].play();\n    }\n\n    $counterProject.html(id);\n\n    // Bullet active\n    $bulletWrapper.find('.slide-bullet[data-id=\"' + id + '\"]').addClass('active').siblings('.slide-bullet').removeClass('active');\n  });\n\n  // Bullet Click\n  $bulletWrapper.find('.slide-bullet ').on('touchstart click', function (event) {\n    preIndex = parseInt($bulletWrapper.find('.slide-bullet.active').attr('data-id'));\n    counterIndex = parseInt($(this).attr('data-id'));\n\n    $(this).addClass('active').siblings('.slide-bullet').removeClass('active');\n\n    $titleWrapper.find('.slide-title[data-id=\"' + counterIndex + '\"] a').trigger('mouseenter');\n    // May be smooth scroll, check long text issue\n    var title_height = $titleWrapper.find('.slide-title').height();\n    $titleWrapper[0].scrollTop = title_height * (counterIndex - 1);\n  });\n\n  if (window.matchMedia('screen and ( max-width: 991px )').matches) {\n    $slideTitles.find('a').attr('onClick', 'return false');\n    $slideTitles.find('a').on('click', function () {\n      $slideTitles.find('a').attr('onClick', 'return false');\n      if ($(this).parent().hasClass('active')) $(this).attr('onClick', '');else {\n        $(this).attr('onClick', 'return false');\n      }\n    });\n  }\n\n  $element.find('.slide-title').addClass('animate__hanimated animate__hfadeInUp');\n  $element.find('.slide-title').css('animation-duration', '0.5s');\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-layla-slideshow.default', HaruLaylaSlideshowHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/layla-slideshow.js?");

/***/ }),

/***/ "./src/js/modules/logo-showcase.js":
/*!*****************************************!*\
  !*** ./src/js/modules/logo-showcase.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruLogoShowcaseHandler = function HaruLogoShowcaseHandler($scope, $) {\n  var $currentLogoShowcase = $scope.find('.haru-logo-showcase');\n\n  if ($($currentLogoShowcase).find('.haru-slick').length > 0) {\n    $currentLogoShowcase.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-logo-showcase.default', HaruLogoShowcaseHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/logo-showcase.js?");

/***/ }),

/***/ "./src/js/modules/movie-slideshow.js":
/*!*******************************************!*\
  !*** ./src/js/modules/movie-slideshow.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruMovieSlideshowHandler = function HaruMovieSlideshowHandler($scope, $) {\n  var $currentMovieSlideshow = $scope.find('.haru-movie-slideshow');\n\n  if ($($currentMovieSlideshow).find('.movie-list').length > 0) {\n    $currentMovieSlideshow.find('.movie-list').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-movie-slideshow.default', HaruMovieSlideshowHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/movie-slideshow.js?");

/***/ }),

/***/ "./src/js/modules/news.js":
/*!********************************!*\
  !*** ./src/js/modules/news.js ***!
  \********************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruNewsHandler = function HaruNewsHandler($scope, $) {\n  var $currentNews = $scope.find('.haru-news');\n\n  if ($($currentNews).find('.haru-slick').length > 0) {\n    $currentNews.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-news.default', HaruNewsHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/news.js?");

/***/ }),

/***/ "./src/js/modules/particles.js":
/*!*************************************!*\
  !*** ./src/js/modules/particles.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruParticlesHandler = function HaruParticlesHandler($scope, $) {\n  var $currentParticles = $scope.find('.haru-particles');\n\n  var particles_id = $currentParticles.attr('data-id');\n  var number_value = $currentParticles.attr('data-number-value');\n  var number_density = $currentParticles.attr('data-number-density');\n  var color_value = $currentParticles.attr('data-color-value');\n  var shape_type = $currentParticles.attr('data-shape-type');\n  var size_value = $currentParticles.attr('data-size-value');\n  var size_random = $currentParticles.attr('data-size-random');\n  var move_enable = $currentParticles.attr('data-move-enable');\n  var move_speed = $currentParticles.attr('data-move-speed');\n  var move_direction = $currentParticles.attr('data-move-direction');\n\n  if (color_value == '') {\n    return;\n  }\n\n  color_value = color_value.split(',');\n\n  particlesJS(particles_id, {\n    particles: {\n      number: {\n        value: number_value,\n        density: number_density\n      },\n      color: {\n        value: color_value\n      },\n      shape: {\n        type: shape_type\n        // stroke: {\n        //   width: 0,\n        //   color: \"#000000\",\n        // },\n        // polygon: {\n        //   nb_sides: 5,\n        // },\n      },\n      // opacity: {\n      //   value: 0.5,\n      //   random: false,\n      //   anim: {\n      //     enable: false,\n      //     speed: 0.1,\n      //     opacity_min: 0.1,\n      //     sync: false,\n      //   },\n      // },\n      size: {\n        value: size_value,\n        random: size_random,\n        anim: {\n          enable: true,\n          speed: 1,\n          size_min: 35,\n          sync: false\n        }\n      },\n      // line_linked: {\n      //   enable: true,\n      //   distance: 150,\n      //   color: \"#ffffff\",\n      //   opacity: 0.4,\n      //   width: 1,\n      // },\n      move: {\n        enable: move_enable,\n        speed: move_speed,\n        direction: move_direction,\n        random: true,\n        straight: false,\n        out_mode: 'out',\n        bounce: false,\n        attract: {\n          enable: false,\n          rotateX: 600,\n          rotateY: 1200\n        }\n      }\n    },\n    interactivity: {},\n    retina_detect: true,\n    asBG: true\n  });\n};\n\n// function() {\n//   // let el = document.querySelector('#' + particles_id + ' .particles-js-canvas-el')\n//   // el.setAttribute('height', '300px')\n// }\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-particles.default', HaruParticlesHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/particles.js?");

/***/ }),

/***/ "./src/js/modules/person-featured.js":
/*!*******************************************!*\
  !*** ./src/js/modules/person-featured.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruPersonFeaturedHandler = function HaruPersonFeaturedHandler($scope, $) {\n  var $currentPersonFeatured = $scope.find('.haru-person-featured');\n\n  if ($($currentPersonFeatured).find('.haru-slick').length > 0) {\n    $currentPersonFeatured.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-person-featured.default', HaruPersonFeaturedHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/person-featured.js?");

/***/ }),

/***/ "./src/js/modules/post-featured.js":
/*!*****************************************!*\
  !*** ./src/js/modules/post-featured.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruPostFeaturedHandler = function HaruPostFeaturedHandler($scope, $) {\n  var $currentPostFeatured = $scope.find('.haru-post-featured');\n\n  if ($($currentPostFeatured).find('.haru-slick').length > 0) {\n    $currentPostFeatured.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-post-featured.default', HaruPostFeaturedHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/post-featured.js?");

/***/ }),

/***/ "./src/js/modules/price-calculator.js":
/*!********************************************!*\
  !*** ./src/js/modules/price-calculator.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruPriceCalculatorHandler = function HaruPriceCalculatorHandler($scope, $) {\n  var $currentPriceCalculator = $scope.find('.haru-price-calculator');\n  // $currentPriceCalculatorId = '#' + $currentPriceCalculator.attr('id').toString()\n\n  if ($currentPriceCalculator.hasClass('haru-price-calculator--style-1')) {\n    var price_base = $currentPriceCalculator.find('.haru-price-calculator__item.active').first().data('price');\n    var price_option = $currentPriceCalculator.find('.haru-price-calculator__option.active').first().data('price');\n    var price_calculated = price_base + price_option;\n\n    $currentPriceCalculator.find('.haru-price-calculator__price-calculated-value').text(price_calculated);\n    $currentPriceCalculator.find('.haru-price-calculator__price-base-value').text(price_base);\n    // console.log(price_base)\n    // console.log(price_option)\n    // console.log(price_calculated)\n\n    $currentPriceCalculator.find('.haru-price-calculator__option').on('click', function (e) {\n      e.preventDefault();\n\n      if ($(this).hasClass('active')) {\n        return;\n      } else {\n        $(this).addClass('active');\n\n        $(this).siblings('.haru-price-calculator__option').removeClass('active');\n      }\n\n      var price_option_selected = $(this).data('price');\n      var price_base_selected = $currentPriceCalculator.find('.haru-price-calculator__item.active').first().data('price');\n\n      var price_selected = price_option_selected + price_base_selected;\n      $currentPriceCalculator.find('.haru-price-calculator__price-calculated-value').text(price_selected);\n    });\n\n    $currentPriceCalculator.find('.haru-price-calculator__item').on('click', function (e) {\n      e.preventDefault();\n\n      if ($(this).hasClass('active')) {\n        return;\n      } else {\n        $(this).addClass('active');\n\n        $(this).siblings('.haru-price-calculator__item').removeClass('active');\n      }\n\n      var price_base_selected = $(this).data('price');\n      var price_option_selected = $currentPriceCalculator.find('.haru-price-calculator__option.active').first().data('price');\n\n      var price_selected = price_base_selected + price_option_selected;\n      $currentPriceCalculator.find('.haru-price-calculator__price-calculated-value').text(price_selected);\n      $currentPriceCalculator.find('.haru-price-calculator__price-base-value').text(price_base_selected);\n    });\n  }\n\n  if ($currentPriceCalculator.hasClass('haru-price-calculator--style-2')) {\n    var active_url = $currentPriceCalculator.find('.haru-price-calculator__item.active').first().data('url');\n    var active_text = $currentPriceCalculator.find('.haru-price-calculator__item.active').first().data('url_text');\n    var button_html = '';\n\n    if (active_url.url) {\n      button_html = '<a class=\"haru-button haru-button--style-1 haru-button--bg-primary haru-button--size-large haru-button--round-normal\" href=\"' + active_url.url + '\">' + active_text + '</a>';\n\n      $currentPriceCalculator.find('.haru-price-calculator__button').html(button_html);\n    }\n\n    $currentPriceCalculator.find('.haru-price-calculator__item').on('click', function (e) {\n      e.preventDefault();\n\n      if ($(this).hasClass('active')) {\n        return;\n      } else {\n        $(this).addClass('active');\n\n        $(this).siblings('.haru-price-calculator__item').removeClass('active');\n      }\n\n      active_url = $(this).data('url');\n      active_text = $(this).data('url_text');\n      $currentPriceCalculator.find('.haru-price-calculator__button').html();\n\n      if (active_url.url) {\n        button_html = '<a class=\"haru-button haru-button--style-1 haru-button--bg-primary haru-button--size-large haru-button--round-normal\" href=\"' + active_url.url + '\">' + active_text + '</a>';\n\n        $currentPriceCalculator.find('.haru-price-calculator__button').html(button_html);\n      }\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-price-calculator.default', HaruPriceCalculatorHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/price-calculator.js?");

/***/ }),

/***/ "./src/js/modules/romeo-slideshow.js":
/*!*******************************************!*\
  !*** ./src/js/modules/romeo-slideshow.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruRomeoSlideshowHandler = function HaruRomeoSlideshowHandler($scope, $) {\n  var $element = $scope.find('.haru-romeo-slideshow');\n\n  if ($($element).length > 0) {\n    var processScroll = function processScroll(e) {\n      var $toActivate = $titleWrapper.find('.slide-title:eq(' + counterIndex + ')');\n      $element.attr('data-counter-index', counterIndex);\n      $toActivate.find('a').trigger('romeo-active-title');\n    };\n\n    var processClick = function processClick(e) {\n      var $toActivate = $titleWrapper.find('.slide-title:eq(' + counterIndex + ')');\n      $element.attr('data-counter-index', counterIndex);\n      $toActivate.find('a').trigger('romeo-active-title');\n\n      // Process position of title May be check height not fix 100\n      $titleWrapper[0].scrollTop = 100 * counterIndex - 200;\n    };\n\n    ;$slideImgsWrapper = $element.find('.slide-img-wrap'), $slideImgs = $element.find('.slide-img'), $bulletWrapper = $element.find('.bullet-wrap'), $titleWrapper = $element.find('.title-wrap'), $slideTitles = $element.find('.title-wrap .slide-title'), $counterProject = $element.find('.project-counter .counter');\n\n    // Setup isScrolling variable\n    var scrollDebounce = true;\n    var counterIndex = 2;\n    var timeout, anim;\n    var preIndex = null;\n\n    if (window.matchMedia('screen and ( min-width: 992px )').matches) {\n      // Listen for scroll events\n      window.addEventListener('wheel', function (event) {\n        if (timeout) {\n          clearTimeout(timeout);\n          window.cancelAnimationFrame(anim);\n        }\n\n        timeout = setTimeout(function () {\n          anim = window.requestAnimationFrame(function () {\n            counterIndex = event.deltaY < 0 ? counterIndex - 1 : counterIndex + 1;\n\n            if (counterIndex < 0) counterIndex = 0;\n            if (counterIndex > $slideTitles.length - 1) counterIndex = $slideTitles.length - 1;\n\n            processScroll(event);\n            $titleWrapper[0].scrollTop = 100 * counterIndex - 200;\n          });\n        }, 100);\n      }, false);\n    }\n\n    $slideImgs.find('img').each(function () {\n      var srcLoad = $(this).attr('data-src');\n      $(this).attr('src', srcLoad);\n    });\n\n    $slideTitles.find('a').on('romeo-active-title', function (e) {\n      var $atitle = $(this),\n          $title = $atitle.closest('.slide-title'),\n          id = $title.attr('data-id'),\n          slider_type = $element.attr('data-slider-type'),\n          $toActiveImg = $slideImgs.filter(':eq(' + id + ')');\n\n      $slideTitles.removeClass('active');\n      $title.addClass('active');\n\n      $slideImgs.removeClass('active');\n      $toActiveImg.addClass('active');\n\n      if (slider_type == 'videos') {\n        $slideImgs.find('video').each(function () {\n          var video = $(this)[0];\n          video.pause();\n        });\n        $toActiveImg.find('video')[0].play();\n      }\n\n      $counterProject.html(parseInt(id) + 1);\n\n      // Bullet active\n      $bulletWrapper.find('.slide-bullet[data-id=\"' + id + '\"]').addClass('active').siblings('.slide-bullet').removeClass('active');\n    });\n\n    // if ($(window).width() < 991) {\n    if (window.matchMedia('screen and ( max-width: 991px )').matches) {\n      $slideTitles.find('a').attr('onClick', 'return false');\n      $slideTitles.find('a').on('click', function () {\n        $slideTitles.find('a').attr('onClick', 'return false');\n        if (!$(this).parent().hasClass('active')) {\n          $(this).attr('onClick', '');\n          $(this).trigger('romeo-active-title');\n        } else {\n          $(this).attr('onClick', 'return false');\n        }\n      });\n    }\n\n    // Bullet Click\n    $bulletWrapper.find('.slide-bullet ').on('touchstart click', function (event) {\n      // alert('bullet')\n      preIndex = parseInt($bulletWrapper.find('.slide-bullet.active').attr('data-id'));\n      counterIndex = parseInt($(this).attr('data-id'));\n      processClick(event);\n\n      $(this).addClass('active').siblings('.slide-bullet').removeClass('active');\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-romeo-slideshow.default', HaruRomeoSlideshowHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/romeo-slideshow.js?");

/***/ }),

/***/ "./src/js/modules/search.js":
/*!**********************************!*\
  !*** ./src/js/modules/search.js ***!
  \**********************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruSearchHandler = function HaruSearchHandler($scope, $) {\n  var $currentSearch = $scope.find('.haru-search');\n  var $currentSearchToggle = $scope.find('.haru-search__toggle');\n\n  $currentSearchToggle.on('click', function () {\n    var popup_effect = $(this).data('effect');\n\n    // Issues fixed element changed position: https://github.com/dimsemenov/Magnific-Popup/issues/615\n    $(this).magnificPopup({\n      items: {\n        src: $currentSearch.find('.haru-search__form'),\n        type: 'inline'\n      },\n      removalDelay: 500, //delay removal by X to allow out-animation\n      callbacks: {\n        beforeOpen: function beforeOpen() {\n          this.st.mainClass = 'haru-search__popup ' + popup_effect;\n        },\n        beforeClose: function beforeClose() {\n          //\n        }\n      },\n      fixedContentPos: true\n      // (optionally) other options\n    }).magnificPopup('open');\n  });\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-search.default', HaruSearchHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/search.js?");

/***/ }),

/***/ "./src/js/modules/tab.js":
/*!*******************************!*\
  !*** ./src/js/modules/tab.js ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruTabHandler = function HaruTabHandler($scope, $) {\n  var $currentTab = $scope.find('.haru-tab'),\n      $currentTabId = '#' + $currentTab.attr('id').toString();\n\n  $($currentTabId + ' .haru-tab__nav ul li').each(function (index) {\n    if ($(this).hasClass('active-default')) {\n      $($currentTabId + ' .haru-tab__nav > ul li').removeClass('active').addClass('inactive');\n      $(this).removeClass('inactive');\n    } else {\n      if (index == 0) {\n        $(this).removeClass('inactive').addClass('active');\n      }\n    }\n  });\n\n  $($currentTabId + ' .haru-tab__content div').each(function (index) {\n    if ($(this).hasClass('active-default')) {\n      $($currentTabId + ' .haru-tab__content > div').removeClass('active');\n    } else {\n      if (index == 0) {\n        $(this).removeClass('inactive').addClass('active');\n      }\n    }\n  });\n\n  $($currentTabId + ' .haru-tab__nav ul li').click(function () {\n    var currentTabIndex = $(this).index();\n    var tabsContainer = $(this).closest('.haru-tab');\n    var tabsNav = $(tabsContainer).children('.haru-tab__nav').children('ul').children('li');\n    var tabsContent = $(tabsContainer).children('.haru-tab__content').children('div');\n    $(this).parent('li').addClass('active');\n    $(tabsNav).removeClass('active active-default').addClass('inactive');\n    $(this).addClass('active').removeClass('inactive');\n    $(tabsContent).removeClass('active').addClass('inactive');\n    $(tabsContent).eq(currentTabIndex).addClass('active').removeClass('inactive');\n\n    var $imagesGallery = tabsContent.eq(currentTabIndex).find('.haru-images-gallery');\n\n    if ($imagesGallery.length) {\n      var sectionTop = $imagesGallery.parents('.elementor-top-section');\n\n      if (sectionTop.hasClass('elementor-section-stretched')) {\n        var stretchElement = new elementorModules.frontend.tools.StretchElement({\n          element: sectionTop\n        });\n      }\n    }\n\n    tabsContent.eq(currentTabIndex).find('.elementor-top-section').each(function () {\n      var $stretchSection = $(this);\n\n      if ($stretchSection.hasClass('elementor-section-stretched')) {\n        var stretchSection = new elementorModules.frontend.tools.StretchElement({\n          element: $stretchSection\n        });\n\n        stretchSection.stretch();\n      }\n    });\n\n    $(tabsContent).eq(currentTabIndex).find('.haru-slick').each(function (index) {\n      if ($(this).hasClass('slick-initialized')) {\n        $(this).slick('destroy');\n        $(this).slick();\n      } else {\n        $(this).slick();\n      }\n    });\n\n    $(tabsContent).each(function (index) {\n      $(this).removeClass('active-default');\n    });\n  });\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-tabs.default', HaruTabHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/tab.js?");

/***/ }),

/***/ "./src/js/modules/team-member.js":
/*!***************************************!*\
  !*** ./src/js/modules/team-member.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruTeamMemberHandler = function HaruTeamMemberHandler($scope, $) {\n  var $currentTeamMember = $scope.find('.haru-team-member');\n\n  if ($($currentTeamMember).find('.haru-slick').length > 0) {\n    $currentTeamMember.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-team-member.default', HaruTeamMemberHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/team-member.js?");

/***/ }),

/***/ "./src/js/modules/testimonial.js":
/*!***************************************!*\
  !*** ./src/js/modules/testimonial.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruTestimonialHandler = function HaruTestimonialHandler($scope, $) {\n  var $currentTestimonial = $scope.find('.haru-testimonial');\n\n  if ($($currentTestimonial).find('.haru-slick').length > 0) {\n    $currentTestimonial.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n\n  if ($($currentTestimonial).hasClass('haru-testimonial--scroll')) {\n    // https://codepen.io/jonathan/pen/vDhKE\n    // https://greensock.com/docs/v2/TimelineMax\n\n    // speed of ticker\n    var tickerSpeed = $currentTestimonial.attr('data-speed');\n    var flickity = null;\n    var isPaused = false;\n    var testimonialID = $currentTestimonial.attr('data-id');\n    var rtl = $currentTestimonial.attr('data-rtl') == 'yes' ? true : false;\n    var testimonialEl = document.getElementById(testimonialID);\n\n    // functions\n    var update = function update() {\n      if (isPaused) return;\n      if (flickity.slides) {\n        flickity.x = (flickity.x - tickerSpeed) % flickity.slideableWidth;\n        flickity.selectedIndex = flickity.dragEndRestingSelect();\n        flickity.updateSelectedSlide();\n        flickity.settle(flickity.x);\n      }\n      window.requestAnimationFrame(update);\n    };\n\n    var pause = function pause() {\n      isPaused = true;\n    };\n\n    var play = function play() {\n      if (isPaused) {\n        isPaused = false;\n        window.requestAnimationFrame(update);\n      }\n    };\n\n    // create flickity instance\n    flickity = new Flickity(testimonialEl, {\n      cellAlign: 'left',\n      setGallerySize: true,\n      dragThreshold: 25,\n      pageDots: false,\n      prevNextButtons: false,\n      autoPlay: false,\n      draggable: true,\n      wrapAround: true,\n      selectedAttraction: 0.015,\n      friction: 0.25,\n      rightToLeft: rtl\n    });\n    flickity.x = 0;\n\n    // event listeners\n    testimonialEl.addEventListener('mouseenter', pause, false);\n    testimonialEl.addEventListener('focusin', pause, false);\n    testimonialEl.addEventListener('mouseleave', play, false);\n    testimonialEl.addEventListener('focusout', play, false);\n\n    flickity.on('dragStart', function () {\n      isPaused = true;\n    });\n\n    // start ticker\n    update();\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-testimonial.default', HaruTestimonialHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/testimonial.js?");

/***/ }),

/***/ "./src/js/modules/text-animation.js":
/*!******************************************!*\
  !*** ./src/js/modules/text-animation.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruTextAnimationHandler = function HaruTextAnimationHandler($scope, $) {\n  var $currentTextAnimation = $scope.find('.haru-text-animation');\n\n  if ($($currentTextAnimation).length > 0) {\n    var TxtType = function TxtType(el, toRotate, period) {\n      this.toRotate = toRotate;\n      this.el = el;\n      this.loopNum = 0;\n      this.period = parseInt(period, 10) || 2000;\n      this.txt = '';\n      this.tick();\n      this.isDeleting = false;\n    };\n\n    TxtType.prototype.tick = function () {\n      var i = this.loopNum % this.toRotate.length;\n      var fullTxt = this.toRotate[i];\n\n      if (this.isDeleting) {\n        this.txt = fullTxt.substring(0, this.txt.length - 1);\n      } else {\n        this.txt = fullTxt.substring(0, this.txt.length + 1);\n      }\n\n      this.el.innerHTML = '<span class=\"haru-text-animation__typewrap\">' + this.txt + '</span>';\n\n      var that = this;\n      var delta = 200 - Math.random() * 100;\n\n      if (this.isDeleting) {\n        delta /= 2;\n      }\n\n      if (!this.isDeleting && this.txt === fullTxt) {\n        delta = this.period;\n        this.isDeleting = true;\n      } else if (this.isDeleting && this.txt === '') {\n        this.isDeleting = false;\n        this.loopNum++;\n        delta = 500;\n      }\n\n      setTimeout(function () {\n        that.tick();\n      }, delta);\n    };\n\n    $(document).ready(function () {\n      var elements = $($currentTextAnimation).find('.haru-text-animation__typewrite');\n\n      for (var i = 0; i < elements.length; i++) {\n        var toRotate = elements[i].getAttribute('data-type');\n        // console.log(toRotate)\n        var period = elements[i].getAttribute('data-period');\n        if (toRotate) {\n          new TxtType(elements[i], JSON.parse(toRotate), period);\n        }\n      }\n      // INJECT CSS\n      var css = document.createElement('style');\n      css.type = 'text/css';\n      css.innerHTML = '.haru-text-animation__typewrite > .haru-text-animation__typewrap { }';\n      document.body.appendChild(css);\n    });\n\n    // $(document).ready(function() {\n    //   var elements = document.getElementsByClassName('haru-text-animation__typewrite')\n\n    //   for (var i = 0; i < elements.length; i++) {\n    //     var toRotate = elements[i].getAttribute('data-type')\n    //     // console.log(toRotate)\n    //     var period = elements[i].getAttribute('data-period')\n    //     if (toRotate) {\n    //       new TxtType(elements[i], JSON.parse(toRotate), period)\n    //     }\n    //   }\n    //   // INJECT CSS\n    //   var css = document.createElement('style')\n    //   css.type = 'text/css'\n    //   css.innerHTML = '.haru-text-animation__typewrite > .haru-text-animation__typewrap { }'\n    //   document.body.appendChild(css)\n    // })\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-text-animation.default', HaruTextAnimationHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/text-animation.js?");

/***/ }),

/***/ "./src/js/modules/text-scroll.js":
/*!***************************************!*\
  !*** ./src/js/modules/text-scroll.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruTextScrollHandler = function HaruTextScrollHandler($scope, $) {\n  var $currentTextScroll = $scope.find('.haru-text-scroll');\n\n  if ($($currentTextScroll).length > 0) {\n    // https://codepen.io/jonathan/pen/vDhKE\n    // https://greensock.com/docs/v2/TimelineMax\n\n    // speed of ticker\n    var tickerSpeed = $currentTextScroll.attr('data-speed');\n    var flickity = null;\n    var isPaused = false;\n    var slideshowID = $currentTextScroll.attr('data-id');\n    var rtl = $currentTextScroll.attr('data-rtl') == 'yes' ? true : false;\n    var slideshowEl = document.getElementById(slideshowID);\n\n    // functions\n    var update = function update() {\n      if (isPaused) return;\n      if (flickity.slides) {\n        flickity.x = (flickity.x - tickerSpeed) % flickity.slideableWidth;\n        flickity.selectedIndex = flickity.dragEndRestingSelect();\n        flickity.updateSelectedSlide();\n        flickity.settle(flickity.x);\n      }\n      window.requestAnimationFrame(update);\n    };\n\n    var pause = function pause() {\n      isPaused = true;\n    };\n\n    var play = function play() {\n      if (isPaused) {\n        isPaused = false;\n        window.requestAnimationFrame(update);\n      }\n    };\n\n    // create flickity instance\n    flickity = new Flickity(slideshowEl, {\n      cellAlign: 'left',\n      setGallerySize: true,\n      dragThreshold: 25,\n      pageDots: false,\n      prevNextButtons: false,\n      autoPlay: false,\n      draggable: true,\n      wrapAround: true,\n      selectedAttraction: 0.015,\n      friction: 0.25,\n      rightToLeft: rtl\n    });\n    flickity.x = 0;\n\n    // event listeners\n    slideshowEl.addEventListener('mouseenter', pause, false);\n    slideshowEl.addEventListener('focusin', pause, false);\n    slideshowEl.addEventListener('mouseleave', play, false);\n    slideshowEl.addEventListener('focusout', play, false);\n\n    flickity.on('dragStart', function () {\n      isPaused = true;\n    });\n\n    // start ticker\n    update();\n\n    // mega menu: https://github.com/metafizzy/flickity/issues/150\n    if ($($currentTextScroll).closest('.menu-item-mega-menu').length > 0) {\n      $($currentTextScroll).closest('.menu-item-mega-menu').on('mouseenter', function () {\n        flickity.resize();\n      });\n    }\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-text-scroll.default', HaruTextScrollHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/text-scroll.js?");

/***/ }),

/***/ "./src/js/modules/timeline.js":
/*!************************************!*\
  !*** ./src/js/modules/timeline.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruTimelineHandler = function HaruTimelineHandler($scope, $) {\n  var $currentTimeline = $scope.find('.haru-timeline');\n\n  if ($($currentTimeline).length > 0) {\n    $currentTimeline.each(function (index) {\n      var timeline_content = $(this).find('.timeline-slider-nav');\n      var timeline_thumb = $(this).find('.timeline-slider-for');\n\n      timeline_content.slick();\n      timeline_thumb.slick();\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-timeline.default', HaruTimelineHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/timeline.js?");

/***/ }),

/***/ "./src/js/modules/video-list-slideshow.js":
/*!************************************************!*\
  !*** ./src/js/modules/video-list-slideshow.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruVideoListSlideshowHandler = function HaruVideoListSlideshowHandler($scope, $) {\n  var $currentListSlideshow = $scope.find('.haru-video-list-slideshow');\n\n  if ($($currentListSlideshow).find('.haru-slick').length > 0) {\n    $currentListSlideshow.find('.haru-slick').each(function (index) {\n      $(this).slick({\n        // dots: true,\n      });\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-video-list-slideshow.default', HaruVideoListSlideshowHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/video-list-slideshow.js?");

/***/ }),

/***/ "./src/js/modules/woo-ajax-order.js":
/*!******************************************!*\
  !*** ./src/js/modules/woo-ajax-order.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruWooAjaxOrderHandler = function HaruWooAjaxOrderHandler($scope, $) {\n  // Use for display only on Editor Mode\n  if ($('body').hasClass('elementor-editor-active')) {\n    var $currentAjaxOrder = $scope.find('.haru-woo-ajax-order');\n\n    if ($($currentAjaxOrder).find('.haru-slick').length > 0) {\n      $currentAjaxOrder.find('.haru-slick').each(function (index) {\n        if (!$(this).hasClass('slick-initialized')) {\n          $(this).slick();\n        }\n      });\n    }\n\n    if ($($currentAjaxOrder).closest('.menu-item-mega-menu').length > 0) {\n      $($currentAjaxOrder).closest('.menu-item-mega-menu').on('mouseenter', function () {\n        $currentAjaxOrder.find('.haru-slick').each(function (index) {\n          if ($(this).hasClass('slick-initialized')) {\n            $(this).slick('destroy');\n            $(this).slick();\n          } else {\n            $(this).slick();\n          }\n        });\n      });\n    }\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-woo-ajax-order.default', HaruWooAjaxOrderHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/woo-ajax-order.js?");

/***/ }),

/***/ "./src/js/modules/woo-cart.js":
/*!************************************!*\
  !*** ./src/js/modules/woo-cart.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruWooCartHandler = function HaruWooCartHandler($scope, $) {\n  var $currentCart = $scope.find('.haru-cart');\n  var timeoutCart = 0;\n\n  if ($currentCart.hasClass('haru-cart--side')) {\n    $('.cart-mask-overlay').on('click', function (e) {\n      $('.cart-side-widget').removeClass('in');\n      $('.cart-mask-overlay').removeClass('in');\n    });\n\n    $currentCart.find('.haru-cart-opener').on('click', function (e) {\n      if (!isCart() && !isCheckout()) {\n        e.preventDefault();\n\n        $currentCart.find('.cart-side-widget').addClass('in');\n        $currentCart.find('.cart-mask-overlay').addClass('in');\n      }\n    });\n\n    $currentCart.find('.cart-side-close').on('click', function (e) {\n      e.preventDefault();\n\n      $currentCart.find('.cart-side-widget').removeClass('in');\n      $currentCart.find('.cart-mask-overlay').removeClass('in');\n    });\n\n    $currentCart.find('.cart-side-widget').on('click', function (e) {\n      clearTimeout(timeoutCart);\n    });\n\n    $('body').on('added_to_cart', function () {\n      var $cartOpener = $('.haru-cart-icon');\n      if ($cartOpener.length > 0) {\n        $cartOpener.first().trigger('click');\n      }\n\n      clearTimeout(timeoutCart);\n\n      var auto_close = $currentCart.attr('data-close');\n      var close_time = parseInt($currentCart.attr('data-close-time'));\n\n      if ('yes' == auto_close) {\n        timeoutCart = setTimeout(function () {\n          $currentCart.find('.cart-side-widget').removeClass('in');\n          $currentCart.find('.cart-mask-overlay').removeClass('in');\n        }, close_time);\n      }\n    });\n  }\n\n  // WooCommerce update fragments fix\n  // $('body').on('added_to_cart removed_from_cart', function(e, fragments) {\n  //   if (fragments) {\n  //     $.each(fragments, function(key, value) {\n  //       $(key).replaceWith(value)\n  //     })\n  //   }\n  // })\n\n  // if (typeof wc_cart_fragments_params !== 'undefined') {\n  //   $('body').on('wc_fragments_refreshed wc_fragments_loaded', function() {\n  //     var wc_fragments = JSON.parse(sessionStorage.getItem(wc_cart_fragments_params.fragment_name))\n\n  //     if (wc_fragments) {\n  //       $.each(wc_fragments, function(key, value) {\n  //         $(key).replaceWith(value)\n  //       })\n  //     }\n  //   })\n  // }\n\n  var isCart = function isCart() {\n    return $('body').hasClass('woocommerce-cart');\n  };\n\n  var isCheckout = function isCheckout() {\n    return $('body').hasClass('woocommerce-checkout');\n  };\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-woo-cart.default', HaruWooCartHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/woo-cart.js?");

/***/ }),

/***/ "./src/js/modules/woo-product-best-seller.js":
/*!***************************************************!*\
  !*** ./src/js/modules/woo-product-best-seller.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruWooProductBestSellerHandler = function HaruWooProductBestSellerHandler($scope, $) {\n  var $currentWooProductBestSeller = $scope.find('.haru-product-best-seller');\n\n  if ($($currentWooProductBestSeller).find('.haru-slick').length > 0) {\n    $currentWooProductBestSeller.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n\n  if ($($currentWooProductBestSeller).closest('.menu-item-mega-menu').length > 0) {\n    $($currentWooProductBestSeller).closest('.menu-item-mega-menu').on('mouseenter', function () {\n      $currentWooProductBestSeller.find('.haru-slick').each(function (index) {\n        $(this).slick('reinit');\n      });\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-woo-product-best-seller.default', HaruWooProductBestSellerHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/woo-product-best-seller.js?");

/***/ }),

/***/ "./src/js/modules/woo-product-slider.js":
/*!**********************************************!*\
  !*** ./src/js/modules/woo-product-slider.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruWooProductSliderHandler = function HaruWooProductSliderHandler($scope, $) {\n  var $currentProductSlider = $scope.find('.haru-woo-product-slider');\n\n  if ($($currentProductSlider).find('.haru-slick').length > 0) {\n    $currentProductSlider.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n\n  if ($($currentProductSlider).closest('.menu-item-mega-menu').length > 0) {\n    $($currentProductSlider).closest('.menu-item-mega-menu').on('mouseenter', function () {\n      $currentProductSlider.find('.haru-slick').each(function (index) {\n        $(this).slick('reinit');\n      });\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-woo-product-slider.default', HaruWooProductSliderHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/woo-product-slider.js?");

/***/ }),

/***/ "./src/js/modules/woo-product-top-rated.js":
/*!*************************************************!*\
  !*** ./src/js/modules/woo-product-top-rated.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruWooProductTopRatedHandler = function HaruWooProductTopRatedHandler($scope, $) {\n  var $currentWooProductTopRated = $scope.find('.haru-product-top-rated');\n\n  if ($($currentWooProductTopRated).find('.haru-slick').length > 0) {\n    $currentWooProductTopRated.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n\n  if ($($currentWooProductTopRated).closest('.menu-item-mega-menu').length > 0) {\n    $($currentWooProductTopRated).closest('.menu-item-mega-menu').on('mouseenter', function () {\n      $currentWooProductTopRated.find('.haru-slick').each(function (index) {\n        $(this).slick('reinit');\n      });\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-woo-product-top-rated.default', HaruWooProductTopRatedHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/woo-product-top-rated.js?");

/***/ }),

/***/ "./src/js/modules/woo-product-top-sale.js":
/*!************************************************!*\
  !*** ./src/js/modules/woo-product-top-sale.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruWooProductTopSaleHandler = function HaruWooProductTopSaleHandler($scope, $) {\n  var $currentWooProductTopSale = $scope.find('.haru-product-top-sale');\n\n  if ($($currentWooProductTopSale).find('.haru-slick').length > 0) {\n    $currentWooProductTopSale.find('.haru-slick').each(function (index) {\n      $(this).slick();\n    });\n  }\n\n  if ($($currentWooProductTopSale).closest('.menu-item-mega-menu').length > 0) {\n    $($currentWooProductTopSale).closest('.menu-item-mega-menu').on('mouseenter', function () {\n      $currentWooProductTopSale.find('.haru-slick').each(function (index) {\n        $(this).slick('reinit');\n      });\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-woo-product-top-sale.default', HaruWooProductTopSaleHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/woo-product-top-sale.js?");

/***/ }),

/***/ "./src/js/modules/woo-product-variations.js":
/*!**************************************************!*\
  !*** ./src/js/modules/woo-product-variations.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruWooProductVariationsHandler = function HaruWooProductVariations($scope, $) {\n  var $currentProductVariations = $scope.find('.haru-woo-product-variations');\n  var $currentProductVariationsPopup = $scope.find('.product-variations-popup');\n  var $currentProductVariationsBtn = $scope.find('.product-variations-btn');\n\n  $currentProductVariationsBtn.on('click', function (e) {\n    e.preventDefault();\n\n    var popup_effect = $(this).data('effect');\n\n    // Issues fixed element changed position: https://github.com/dimsemenov/Magnific-Popup/issues/615\n    $(this).magnificPopup({\n      items: {\n        src: $currentProductVariationsPopup,\n        type: 'inline'\n      },\n      removalDelay: 100, //delay removal by X to allow out-animation\n      callbacks: {\n        beforeOpen: function beforeOpen() {\n          this.st.mainClass = 'haru-woo-product-variations ' + popup_effect;\n        },\n        beforeClose: function beforeClose() {\n          //\n        }\n      },\n      fixedContentPos: true\n      // (optionally) other options\n    }).magnificPopup('open');\n  });\n\n  var popup_id = $scope.find('.product-variations-btn').attr('data-popup-id');\n  var current_step = 1;\n  var next_step = 2;\n  var prev_step = 0;\n  var total_step = $('#' + popup_id + ' .variation-step-control').attr('data-total-step');\n  var upload_step = 1;\n\n  // Init\n  $('#' + popup_id + ' .variation-slide-step[data-step=\"' + current_step + '\"]').show();\n  $('#' + popup_id + ' .variation-step-prev').addClass('disable');\n\n  // Select file\n  // $('input[type=\"file\"].wc-drag-n-drop-file').on('change', function() {\n  $(document).on('change', '#' + popup_id + ' input[type=\"file\"].wc-drag-n-drop-file', function () {\n    // console.log($(this).val())\n\n    // setTimeout(function() {\n    if ($(this).closest('.wc-dnd-file-upload').find('.codedropz--results .has-error').length > 0) {\n      // console.log('error')\n      $('#' + popup_id + ' .variation-step-next[data-next=\"' + (upload_step + 1) + '\"]').addClass('disable');\n    } else {\n      // console.log('ok')\n      $('#' + popup_id + ' .variation-step-next[data-next=\"' + (upload_step + 1) + '\"]').removeClass('disable');\n    }\n    // }, 500)\n\n    // Add then delete all then add -> BUG\n  });\n\n  $(document).on('click', '#' + popup_id + ' .remove-file', function () {\n    // console.log('remove')\n\n    // setTimeout(function() {\n    if ($(this).closest('.wc-dnd-file-upload').find('.codedropz--results .has-error').length > 0) {\n      // console.log('error')\n      $('#' + popup_id + ' .variation-step-next[data-next=\"' + (upload_step + 1) + '\"]').addClass('disable');\n    } else {\n      // console.log('ok')\n      $('#' + popup_id + ' .variation-step-next[data-next=\"' + (upload_step + 1) + '\"]').removeClass('disable');\n    }\n    // }, 500)\n\n    setTimeout(function () {\n      // Default is 2\n      if ($currentProductVariationsPopup.find('.codedropz--results:empty').length > 0) {\n        $('#' + popup_id + ' .variation-step-next[data-next=\"' + (upload_step + 1) + '\"]').addClass('disable');\n      }\n    }, 500);\n  });\n\n  // Select attribute\n  $('#' + popup_id + ' .variation-slide-step.slide-attribute').each(function () {\n    var slide_attribute = $(this);\n    var slide_current = '';\n\n    // Default value\n    if (slide_attribute.find('select').val()) {\n      slide_attribute.addClass('variation-selected');\n\n      if (slide_current == '1') {\n        $('#' + popup_id + ' .variation-step-control').find('.variation-step-next').removeClass('disable');\n      } else if (slide_current == parseInt(total_step)) {\n        $('#' + popup_id + ' .variation-step-control');\n        //   .find('.variation-step-next')\n        //   .addClass('disable')\n      } else {\n        $('#' + popup_id + ' .variation-step-control').find('.variation-step-next').removeClass('disable');\n      }\n    }\n\n    // Change value\n    slide_attribute.find('select').on('change', function () {\n      slide_current = slide_attribute.attr('data-step');\n      // console.log(slide_current)\n\n      if (this.value == '') {\n        slide_attribute.removeClass('variation-selected');\n\n        // console.log('no')\n        if (slide_current == '1') {\n          $('#' + popup_id + ' .variation-step-control').find('.variation-step-next').addClass('disable');\n        } else if (slide_current == parseInt(total_step)) {\n          // $('.variation-step-control')\n          //   .find('.variation-step-next')\n          //   .addClass('disable')\n        } else {\n          // $('.variation-step-control')\n          //   .find('.variation-step-prev')\n          //   .removeClass('disable')\n\n          $('#' + popup_id + ' .variation-step-control').find('.variation-step-next').addClass('disable');\n        }\n      } else {\n        slide_attribute.addClass('variation-selected');\n\n        if (slide_current == '1') {\n          $('#' + popup_id + ' .variation-step-control').find('.variation-step-next').removeClass('disable');\n        } else if (slide_current == parseInt(total_step)) {\n          $('#' + popup_id + ' .variation-step-control');\n          //   .find('.variation-step-next')\n          //   .addClass('disable')\n        } else {\n          $('#' + popup_id + ' .variation-step-control').find('.variation-step-next').removeClass('disable');\n        }\n      }\n    });\n  });\n\n  // Click Next\n  $('#' + popup_id + ' .variation-step-next').on('click', function () {\n    next_step = $(this).attr('data-next');\n\n    $(this).attr('data-next', parseInt(next_step) + 1);\n    $('#' + popup_id + ' .variation-slide-step').hide();\n    $('#' + popup_id + ' .variation-slide-step[data-step=\"' + next_step + '\"]').show();\n\n    // Check if step already set\n    if (!$('#' + popup_id + ' .variation-slide-step[data-step=\"' + next_step + '\"]').hasClass('variation-selected')) {\n      $(this).addClass('disable');\n    }\n\n    current_step = next_step;\n    // console.log(current_step)\n\n    // Step list\n    $('#' + popup_id + ' .step-list li').removeClass('step-active');\n    $('#' + popup_id + ' .step-list li[data-step=\"' + current_step + '\"]').addClass('step-active');\n\n    // Enable Prev\n    if (current_step >= 2 && current_step < total_step) {\n      $('#' + popup_id + ' .variation-step-prev').attr('data-prev', parseInt(current_step));\n      $('#' + popup_id + ' .variation-step-prev').removeClass('disable');\n    }\n\n    // Check Show/Hide\n    if (next_step < total_step) {\n      $('#' + popup_id + ' .variation-step-next').attr('data-next', parseInt(current_step) + 1);\n\n      $('#' + popup_id + ' .variation-step-prev').attr('data-prev', parseInt(current_step) - 1);\n      $('#' + popup_id + ' .variation-step-prev').removeClass('disable');\n    } else {\n      $('#' + popup_id + ' .variation-step-next').attr('data-next', parseInt(current_step));\n      $('#' + popup_id + ' .variation-step-next').addClass('disable');\n\n      $('#' + popup_id + ' .variation-step-prev').attr('data-prev', parseInt(current_step) - 1);\n      $('#' + popup_id + ' .variation-step-prev').removeClass('disable');\n    }\n  });\n\n  // Click Prev\n  $('#' + popup_id + ' .variation-step-prev').on('click', function () {\n    prev_step = $(this).attr('data-prev');\n\n    $('#' + popup_id + ' .variation-slide-step').hide();\n    $('#' + popup_id + ' .variation-slide-step[data-step=\"' + prev_step + '\"]').show();\n\n    current_step = prev_step;\n    // console.log(current_step)\n\n    // Step list\n    $('#' + popup_id + ' .step-list li').removeClass('step-active');\n    $('#' + popup_id + ' .step-list li[data-step=\"' + current_step + '\"]').addClass('step-active');\n\n    // Check Show/Hide\n    if (prev_step > 1) {\n      $('#' + popup_id + ' .variation-step-prev').attr('data-prev', parseInt(current_step) - 1);\n\n      $('#' + popup_id + ' .variation-step-next').attr('data-next', parseInt(current_step) + 1);\n      $('#' + popup_id + ' .variation-step-next').removeClass('disable');\n    } else {\n      $('#' + popup_id + ' .variation-step-prev').attr('data-prev', parseInt(current_step));\n      $('#' + popup_id + ' .variation-step-prev').addClass('disable');\n\n      $('#' + popup_id + ' .variation-step-next').attr('data-next', parseInt(current_step) + 1);\n      $('#' + popup_id + ' .variation-step-next').removeClass('disable');\n    }\n  });\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-woo-product-variations.default', HaruWooProductVariationsHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/woo-product-variations.js?");

/***/ }),

/***/ "./src/js/modules/woo-search.js":
/*!**************************************!*\
  !*** ./src/js/modules/woo-search.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var HaruWooSearchHandler = function HaruWooSearchHandler($scope, $) {\n  var $currentSearch = $scope.find('.haru-woo-search__form');\n  var $currentSearchToggle = $scope.find('.haru-woo-search__toggle');\n\n  $currentSearchToggle.on('click', function () {\n    var popup_effect = $(this).data('effect');\n\n    // Issues fixed element changed position: https://github.com/dimsemenov/Magnific-Popup/issues/615\n    $(this).magnificPopup({\n      items: {\n        src: $currentSearch,\n        type: 'inline'\n      },\n      removalDelay: 500, //delay removal by X to allow out-animation\n      callbacks: {\n        beforeOpen: function beforeOpen() {\n          this.st.mainClass = 'haru-woo-search__popup ' + popup_effect;\n        },\n        beforeClose: function beforeClose() {\n          //\n        }\n      },\n      fixedContentPos: true\n      // (optionally) other options\n    }).magnificPopup('open');\n  });\n\n  if ($currentSearch.hasClass('ajax-search')) {\n\n    // Process keyword\n    var HaruWooSearch_ajax_callback = function HaruWooSearch_ajax_callback($currentSearch) {\n      var keyword = $('.haru-woo-search__input', $currentSearch).val();\n      var search_count = $currentSearch.attr('data-search-count');\n\n      if (keyword.length < 3) {\n        var hint_message = $currentSearch.attr('data-hint-message');\n\n        $('.haru-woo-search__ajax-result', $currentSearch).html('<ul><li class=\"search-no-result\">' + hint_message + '</li></ul>');\n        return;\n      }\n      // Process icon-search\n      $('.haru-woo-search__icon', $currentSearch).addClass('loading-search'); // Move to\n      if (!$('.haru-woo-search__icon .fa-spin', $currentSearch).length > 0) {\n        $('.haru-woo-search__icon', $currentSearch).append('<i class=\"fa-spinner fa fa-spin\"></i>');\n      }\n\n      // Process icon-submit\n      $('.haru-woo-search__submit', $currentSearch).addClass('loading-search'); // Move to\n      if (!$('.haru-woo-search__submit .fa-spin', $currentSearch).length > 0) {\n        $('.haru-woo-search__submit', $currentSearch).append('<i class=\"fa-spinner fa fa-spin\"></i>');\n      }\n\n      // Ajax result\n      $.ajax({\n        type: 'POST',\n        data: 'action=haru_woo_search_ajax&keyword=' + keyword + '&search_count=' + search_count,\n        url: haru_pricom_ajax_url,\n        success: function success(data) {\n          $('.haru-woo-search__icon', $currentSearch).removeClass('loading-search');\n          $('.haru-woo-search__submit', $currentSearch).removeClass('loading-search');\n\n          if (data) {\n            $('.haru-woo-search__ajax-result', $currentSearch).html(data);\n            $('.haru-woo-search__ajax-result', $currentSearch).scrollTop(0);\n          }\n\n          // Click product\n          var $item = $('li.product-search-item', $currentSearch);\n\n          $item.on('click', function () {\n            window.location = $item.find('a').attr('href');\n          });\n        },\n        error: function error(data) {\n          $('.haru-woo-search__icon', $currentSearch).removeClass('loading-search');\n          $('.haru-woo-search__submit', $currentSearch).removeClass('loading-search');\n        }\n      });\n    };\n\n    var HaruWooSearch_search_up = function HaruWooSearch_search_up($currentSearch) {\n      var $item = $('li.selected', $currentSearch);\n\n      if ($('li', $currentSearch).length < 2) return; // Only one item\n      var $prev_item = $item.prev();\n\n      $item.removeClass('selected');\n      if ($prev_item.length) {\n        $prev_item.addClass('selected');\n      } else {\n        $('li:last', $currentSearch).addClass('selected');\n        $prev_item = $('li:last', $currentSearch);\n      }\n      if ($prev_item.position().top < $('.haru-woo-search__ajax-result', $currentSearch).scrollTop()) {\n        $('.haru-woo-search__ajax-result', $currentSearch).scrollTop($prev_item.position().top);\n      } else if ($prev_item.position().top + $prev_item.outerHeight() > $('.haru-woo-search__ajax-result', $currentSearch).scrollTop() + $('.haru-woo-search__ajax-result', $currentSearch).height()) {\n        $('.haru-woo-search__ajax-result', $currentSearch).scrollTop($prev_item.position().top - $('.haru-woo-search__ajax-result', $currentSearch).height() + $prev_item.outerHeight());\n      }\n    };\n\n    var HaruWooSearch_search_down = function HaruWooSearch_search_down($currentSearch) {\n      var $item = $('li.selected', $currentSearch);\n\n      if ($('li', $currentSearch).length < 2) return; // Only one item\n      var $next_item = $item.next();\n\n      $item.removeClass('selected');\n      if ($next_item.length) {\n        $next_item.addClass('selected');\n      } else {\n        $('li:first', $currentSearch).addClass('selected');\n        $next_item = $('li:first', $currentSearch);\n      }\n      if ($next_item.position().top < $('.haru-woo-search__ajax-result', $currentSearch).scrollTop()) {\n        $('.haru-woo-search__ajax-result', $currentSearch).scrollTop($next_item.position().top);\n      } else if ($next_item.position().top + $next_item.outerHeight() > $('.haru-woo-search__ajax-result', $currentSearch).scrollTop() + $('.haru-woo-search__ajax-result', $currentSearch).height()) {\n        $('.haru-woo-search__ajax-result', $currentSearch).scrollTop($next_item.position().top - $('.haru-woo-search__ajax-result', $currentSearch).height() + $next_item.outerHeight());\n      }\n    };\n\n    var HaruWooSearch_search_enter = function HaruWooSearch_search_enter($currentSearch) {\n      var $item = $('li.selected a', $currentSearch);\n\n      if ($item.length > 0) {\n        window.location = $item.attr('href');\n      }\n    };\n\n    // Clear or close all state when closed search\n    $(document).on('click', function (e) {\n      // Enter trigger click then submit so need timeout\n      setTimeout(function () {\n        if ($(e.target).closest('.haru-woo-search__ajax-result', $currentSearch).length == 0) {\n          $currentSearch.find('.haru-woo-search__ajax-result').html('');\n          $currentSearch.find('.haru-woo-search__input').val('');\n        }\n      }, 100);\n    });\n\n    // Don't allow submit form\n    $currentSearch.find('.haru-woo-search__form ').on('submit', function () {\n      return false;\n    });\n\n    // Process when typing\n    $currentSearch.find('.haru-woo-search__input').on('keyup', function (e) {\n      var s_timeOut_search = null;\n\n      if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {\n        return;\n      }\n\n      var keys = ['Control', 'Alt', 'Shift'];\n      if (keys.indexOf(e.key) != -1) return;\n      switch (e.which) {\n        case 27:\n          // Press ESC key\n          $('.haru-woo-search__ajax-result', $currentSearch).html('');\n          $(this).val('');\n          break;\n        case 38:\n          // Press UP key\n          HaruWooSearch_search_up($currentSearch);\n          break;\n        case 40:\n          // Press DOWN key\n          HaruWooSearch_search_down($currentSearch);\n          break;\n        case 13:\n          // Press ENTER key\n          var $item = $('li.selected a', $currentSearch);\n          if ($item.length == 0) {\n            e.preventDefault();\n            return false;\n          }\n          HaruWooSearch_search_enter($currentSearch);\n          break;\n        default:\n          clearTimeout(s_timeOut_search);\n          s_timeOut_search = setTimeout(function () {\n            HaruWooSearch_ajax_callback($currentSearch);\n          }, 1000);\n          break;\n      }\n    });\n  }\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n  elementorFrontend.hooks.addAction('frontend/element_ready/haru-woo-search.default', HaruWooSearchHandler);\n});\n\n//# sourceURL=webpack:///./src/js/modules/woo-search.js?");

/***/ })

/******/ });

Spamworldpro Mini