PageSourceSearch

https://thecupcakegirls.org/wp-content/themes/uncode/library/js/woocommerce-uncode.js?ver=331599765

js thecupcakegirls.org collected 2026-10-02 18:49:29 UTC 25,909 bytes, 836 lines download raw bytes

1(function($) {
2	"use strict";
3
4	function get_cart() {
5		if (window.wc_add_to_cart_params != undefined) {
6			$.post({
7				url: wc_add_to_cart_params.ajax_url,
8				dataType: 'JSON',
9				data: {
10					action: 'woomenucart_ajax'
11				},
12				success: function(data, textStatus, XMLHttpRequest) {
13					$('.uncode-cart-dropdown').html(data.cart);
14					if (data != '') {
15						if ($('.uncode-cart .badge, .mobile-shopping-cart .badge').length) {
16							if (data.articles > 0) {
17								$('.uncode-cart .badge, .mobile-shopping-cart .badge').html(data.articles);
18								$('.uncode-cart .badge, .mobile-shopping-cart .badge').show();
19							} else {
20								$('.uncode-cart .badge, .mobile-shopping-cart .badge').hide();
21							}
22						} else $('.uncode-cart .cart-icon-container').append('<span class="badge">' + data.articles + '</span>'); //$('.uncode-cart .badge').html(data.articles);
23					}
24				}
25			});
26		}
27
28	}
29
30	function remove_from_cart() {
31		$(document).on('click', '.uncode-cart-dropdown a.remove', function(e){
32
33			var $remove = $(this),
34				product_id = $remove.attr("data-product_id"),
35				item_key = $remove.attr("data-item_key"),
36				$li = $remove.parents('.cart-item-list').eq(0).addClass('removing-item').animate({
37					opacity: .5
38				},150);
39
40			$.post({
41				dataType: 'json',
42				url: wc_add_to_cart_params.ajax_url,
43				data: {
44					action: "woomenucart_remove_ajax",
45					item_key: item_key
46				},
47				success: function(html){
48					$li.slideUp(200, function(){
49						get_cart();
50					});
51				}
52			});
53
54			return false;
55		});
56	}
57
58	function change_images(event, variation) {
59		UNCODE.single_product_variation_already_changed = true;
60		if (variation.image_src !== '') {
61			var get_href = $('a.woocommerce-main-image'),
62				$col_bg = $('.uncol-featured-image .background-inner'),
63				image_variable = $('> img', get_href),
64				image_thumb = variation.image.thumb_src,
65				image_srcset = variation.thumb_srcset,
66				getLightbox = UNCODE.lightboxArray[get_href.data('lbox')];
67			get_href.data('options', "thumbnail: '" + variation.image_src + "'");
68			image_variable.attr('src', variation.image_src);
69			if (image_variable.hasClass('async-done')) {
70				image_variable.attr('data-path', variation.uncode_image_path);
71				image_variable.attr('data-guid', variation.uncode_image_guid);
72				image_variable.removeClass('async-done').addClass('adaptive-async');
73				UNCODE.adaptive();
74			}
75			if (getLightbox != undefined) getLightbox.refresh();
76			$(window).trigger('focus');
77
78			if ( $('.woocommerce-product-gallery-nav').length ) {
79				$('.woocommerce-product-gallery-nav .woocommerce-product-gallery__wrapper-nav li.woocommerce-product-gallery__first-thumb img')
80					.attr('src', image_thumb)
81					.attr('srcset', image_srcset);
82			}
83
84			if ( $col_bg.length ) {
85				var objImg = new Image(),
86					bg_img_src;
87				if ( $col_bg.hasClass( 'async-done') ) {
88					bg_img_src = variation.image_link;
89				} else {
90					bg_img_src = variation.image_src;
91				}
92				objImg.src = bg_img_src;
93				objImg.onload = function() {
94					$col_bg.animate({ opacity: 0 }, 100, function(){
95						$col_bg.css({'background-image':'url('+bg_img_src+')'});
96						$col_bg.animate({ opacity: 1 }, 250);
97					});
98				}
99			}
100		}
101	}
102
103	function reset_data(event) {
104		if ( UNCODE.single_product_variation_already_changed ) {
105			var $col_bg = $('.uncol-featured-image .background-inner'),
106				$first_thumb = $('.woocommerce-product-gallery__first-thumb img'),
107				bg_img_src,
108				bg_img_srcset,
109				objImg = new Image();
110
111			if ( $col_bg.length ) {
112				bg_img_src = $col_bg.attr('data-o_src');
113				objImg = new Image();
114				objImg.src = bg_img_src;
115				objImg.onload = function() {
116					$col_bg.animate({ opacity: 0 }, 100, function(){
117						$col_bg.css({'background-image':'url('+bg_img_src+')'});
118						$col_bg.animate({ opacity: 1 }, 250);
119					});
120				}
121			} else if ( $first_thumb.length ) {
122				bg_img_src = $first_thumb.attr('data-o_src');
123				bg_img_srcset = $first_thumb.attr('data-o_srcset');
124				objImg = new Image();
125				objImg.src = bg_img_src;
126				objImg.onload = function() {
127					$first_thumb
128						.attr('src', bg_img_src)
129						.attr('srcset', bg_img_srcset);
130				}
131			}
132		}
133	}
134
135	function check_variation_values(event) {
136		var $selects = $(event.currentTarget).find('select'),
137			checkSelectValues = false;
138		$selects.each(function(){
139			var $select = $(this);
140			if ( $select.val() !== '' ) {
141				checkSelectValues = true;
142			}
143		});
144
145		if ( checkSelectValues ) {
146			$(event.currentTarget).removeClass('hide-clear');
147		} else {
148			$(event.currentTarget).addClass('hide-clear');
149		}
150	}
151
152	function reloadVariations() {
153		remove_from_cart();
154		$('body').on("added_to_cart wc_fragments_refreshed removed_from_cart", get_cart);
155		$('.variations_form')
156			.on("show_variation", change_images)
157			.on("reset_data", reset_data)
158			.on("check_variations", check_variation_values);
159	}
160
161	$(document).ready(reloadVariations);
162	$(document).on('uncode-quick-view-loaded', reloadVariations);
163
164	function handleRatings() {
165		if ( $('#rating').length ) {
166			setTimeout(function(){
167				$('.comment-form-rating').each(function(){
168					var $wrap = $(this),
169						$stars = $('p.stars', $wrap).remove();
170					$( 'select[name="rating"]', $wrap ).hide().before( '<p class="stars"><span><a class="star-1" href="#">1</a><a class="star-2" href="#">2</a><a class="star-3" href="#">3</a><a class="star-4" href="#">4</a><a class="star-5" href="#">5</a></span></p>' );
171				});
172			}, 10);
173		}
174	}
175
176	$(document).ready(handleRatings);
177	$(document).on('vc-uncode_single_product_reviews', handleRatings);
178
179	$(document).on('vc-uncode_single_product_reviews', function(e, el) {
180		if ( el !== 'undefined' ) {
181			var $tabContainer = $(el).closest('.tab-container');
182			$tabContainer.addClass('wootabs');
183		}
184	} );
185
186	var scrollToReviews = function(){
187		if ( $('.wootabs, .wpb_accordion').length ) {
188
189			var hash = window.location.hash,
190				url = window.location.href,
191				$tabs = $( this ).find( 'ul.nav-tabs' ).first(),
192				$accordion = $( this ).find('.panel-group').first(),
193				scrollAction = false,
194				$tabs_wrapper = $tabs.closest('.wootabs'),
195				$both_wrapper,
196				$li, $panel, $click_trigger = false;
197
198			var scrollToReviewsInside = function( clicked ){
199
200				if ( $tabs.length && $('#reviews', $tabs_wrapper).length ) {
201					var tab_reviews = $('#reviews', $tabs_wrapper).first().closest('.tab-pane').attr('id');
202					$('[data-tab-id="' + tab_reviews + '"]', $tabs).addClass('reviews_tab');
203					$li = $('.reviews_tab', $tabs);
204					$both_wrapper = $tabs_wrapper;
205					$click_trigger = true;
206				} else if ( $accordion.length && $('#reviews', $accordion).length ) {
207					var tab_reviews = $('#reviews', $accordion).first().closest('.tab-pane').attr('id');
208					$panel = $('#reviews', $accordion).first().closest('.panel');
209					$li = $('.panel-title', $panel);
210					$both_wrapper = $accordion;
211					$click_trigger = true;
212				} else if ( $('div#reviews').length && clicked ) {
213					$both_wrapper = $('div#reviews');
214					scrollAction = true;
215				} else {
216					return false;
217				}
218
219				if ( $click_trigger && ( hash.toLowerCase().indexOf( 'comment-' ) >= 0 || hash === '#reviews' || hash === '#tab-reviews' ) ) {
220					$( 'a', $li ).click();
221					scrollAction = true;
222				} else if ( $click_trigger && ( url.indexOf( 'comment-page-' ) > 0 || url.indexOf( 'cpage=' ) > 0 ) ) {
223					$( 'a', $li ).click();
224					scrollAction = true;
225				}
226
227				if ( scrollAction ) {
228					var body = $("html, body"),
229						bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'],
230						delta = bodyTop - ($both_wrapper.length ? $both_wrapper.offset().top : 0),
231						getOffset = UNCODE.get_scroll_offset();
232					if ( typeof $both_wrapper.offset() === 'undefined' )
233						return;
234					scrollTo = $both_wrapper.offset().top - 27;
235					scrollTo -= getOffset;
236
237					var scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed;
238					if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000;
239
240					if (scrollSpeed == 0) {
241						body.scrollTop((delta > 0) ? scrollTo - 0.1 : scrollTo);
242					} else {
243						body.animate({
244							scrollTop: (delta > 0) ? scrollTo - 0.1 : scrollTo
245						}, scrollSpeed, 'easeInOutQuad');
246					}
247				} else {
248					return false;
249				}
250			};
251
252			scrollToReviewsInside( false );
253
254			$('a.woocommerce-review-link').on('click', function(e) {
255				e.preventDefault();
256				hash = '#reviews';
257				scrollToReviewsInside( true );
258			});
259
260		}
261	}
262	$(document).ready(scrollToReviews);
263
264	var qtyPlusMinus = function(){
265		$('.qty-inset:not(.qty-inset-active)').each(function(){
266			var $qtyInsets = $(this).addClass('qty-inset-active'),
267				$input = $('input.qty', $qtyInsets),
268				$minus = $('.qty-minus', $qtyInsets),
269				$plus = $('.qty-plus', $qtyInsets),
270				value = parseFloat( $input.val() );
271
272			if ( isNaN(value) ) {
273				value = 0;
274				$input.val( value );
275			}
276
277			$minus.on('click', function(){
278				value = parseFloat( $input.val() ) > 0 ? parseFloat( $input.val() ) -1 : 0;
279				$input.val( value ).trigger( 'change' );
280			});
281
282			$plus.on('click', function(){
283				value = parseFloat( $input.val() );
284				$input.val( value + 1 ).trigger( 'change' );
285			});
286		});
287
288		window.dispatchEvent(new CustomEvent('vc-resize'));
289
290	};
291
292	$(document.body).on('updated_cart_totals', qtyPlusMinus);
293	$(document).ready(qtyPlusMinus);
294	$(document).on('vc-frontend:vc_button', qtyPlusMinus);
295
296	var woocommerce_product_gallery = function() {
297		$( 'body:not(.single-uncodeblock) .woocommerce-product-gallery' ).each( function() {
298
299	  		var $slider = $(this),
300				$parent = $slider.closest('.uncode-wrapper').length ? $slider.closest('.uncode-wrapper') : $slider.closest('.uncont'),
301				cols = parseFloat( $slider.attr('data-columns') ),
302				dots = $parent.attr('data-dots') == 'true',
303				gutter = $parent.length && typeof $parent.attr('data-gutter') !== 'undefined' ? parseFloat( $parent.attr('data-gutter') ) : 18,
304				$main = $('.woocommerce-product-gallery__wrapper', $parent),
305				mainL = $main.find('.woocommerce-product-gallery__image').length,
306				$thumbs = $('.woocommerce-product-gallery__wrapper-nav', $parent),
307				thumbsL = $thumbs.find('li').length;
308
309			if ( mainL > 1 && $slider.hasClass('owl-carousel-wrapper') ) {
310				$main.owlCarousel({
311					items: 1,
312					autoHeight: true,
313					dots: dots,
314					responsiveRefreshRate: 200,
315				}).on('changed.owl.carousel', function(event) {
316					if (event.namespace && event.property.name === 'position') {
317						var target = event.relatedTarget.relative(event.property.value, true);
318						syncPosition(target);
319					}
320				});
321				$main.on('translate.owl.carousel', function(event) {
322					$(event.currentTarget).addClass('owl-translating');
323				});
324				$main.on('translated.owl.carousel', function(event) {
325					$(event.currentTarget).removeClass('owl-translating');
326				});
327				$thumbs.on('initialized.owl.carousel', function(event) {
328					$thumbs.closest('.woocommerce-product-gallery-nav-wrapper').css({
329						opacity: 1
330					});
331				}).owlCarousel({
332					items: cols,
333					margin: gutter,
334					autoHeight: true,
335					nav: true,
336					mouseDrag: cols < thumbsL,
337					navText: ['<div class="owl-nav-container btn-default btn-hover-nobg"><i class="fa fa-fw fa-angle-left"></i></div>', '<div class="owl-nav-container btn-default btn-hover-nobg"><i class="fa fa-fw fa-angle-right"></i></div>'],
338					responsiveRefreshRate: 100,
339				});
340				$(window).on('load uncode-quick-view-first-hover', function(){
341					$main.trigger('refresh.owl.carousel');
342					$thumbs.trigger('refresh.owl.carousel');
343				});
344			}
345
346			function syncPosition(target){
347				var data = $thumbs.data('owl.carousel');
348				if ( ! $('.owl-item', $thumbs).eq( target ).hasClass('active') ) {
349					$thumbs.owlCarousel( 'to', target, 300, true );
350				}
351			}
352
353			$thumbs.on( 'click', '.owl-item', function(e){
354				e.preventDefault();
355				var number = $(this).index();
356				$main.owlCarousel( 'to', number, 300, true );
357			});
358
359
360			if ($.fn.zoom && $('body').hasClass('wc-zoom-enabled') ) {
361				var $zoomTrgt = $('.woocommerce-product-gallery__image', $slider);
362
363				if ( $('.thumbnails', $slider).length )
364					$zoomTrgt = $zoomTrgt.first();
365
366				$zoomTrgt.trigger( 'zoom.destroy' );
367				$zoomTrgt.zoom();
368
369				var checkForZoom = function(){
370					$('.woocommerce-product-gallery__image').each(function(){
371						var $wrap = $(this),
372							$zoomImg = $('.zoomImg', $wrap);
373
374						if (UNCODE.isMobile || !$zoomImg.length) {
375							$wrap.addClass('mouse-moving');
376						}
377					});
378
379					var galleryWidth = $zoomTrgt.width(),
380						zoom_options = {
381							touch: true,
382							callback: function(){
383								$('.woocommerce-product-gallery__image').each(function(){
384									var $wrap = $(this),
385										$zoomImg = $('.zoomImg', $wrap),
386										$overZoom = $('.zoom-overlay', $wrap),
387										$imageIL = $('a[data-lbox]', $wrap),
388										$carousel = $wrap.closest('.owl-carousel');
389
390									$wrap.prepend($zoomImg);
391									if (UNCODE.isMobile || !$zoomImg.length) {
392										$wrap.addClass('mouse-moving');
393										$zoomImg.css({
394											'visibility':'hidden'
395										});
396									}
397
398									/* Make work everything on touch events */
399									var onlongtouch,
400										timer,
401										now,
402										touchduration = 500,
403										startX = 0, startY, newX, newY;
404
405									$wrap.parent().on('mousemove.zoom', function(){
406										if ( ! $wrap.hasClass('mouse-moving') ) {
407											if ( startX == 0 ) {
408												startX = event.clientX;
409												startY = event.clientY;
410											}
411											newX = event.clientX;
412											newY = event.clientY;
413											if ( Math.abs( newX - startX ) > 50 && Math.abs( newY - startY ) > 50 ) {
414												$wrap.addClass('mouse-moving');
415											}
416										}
417									});
418
419									$overZoom.on('touchstart.zoom', function (e) {
420										now = new Date().getTime();
421									}).on('touchmove.zoom', function (e) {
422										setTimeout(function(){
423											$zoomImg.css({
424												'visibility':'visible'
425											});
426										}, 100);
427									}).on('touchend.zoom', function (e) {
428										var newTap = new Date().getTime();
429										if ( newTap - now < 75 && ! $('body').hasClass('ilightbox-noscroll') ) {
430											$imageIL.trigger('itap.iL');
431										}
432										if (UNCODE.isMobile) {
433											$zoomImg.css({
434												'visibility':'hidden'
435											});
436										}
437									});
438
439								});
440							}
441						};
442
443					if ( 'ontouchstart' in window ) {
444						zoom_options.on = 'click';
445					}
446
447					$zoomTrgt.trigger( 'zoom.destroy' );
448					$zoomTrgt.each(function(){
449						var $thisTrgt = $(this),
450							$img = $('img', $thisTrgt);
451
452						if ( $img.data( 'large_image_width' ) > galleryWidth ) {
453							$thisTrgt.zoom(zoom_options);
454						} else {
455							$thisTrgt.trigger( 'zoom.destroy' );
456						}
457
458					});
459				};
460				checkForZoom();
461
462				var setCheckForZoom;
463				$(window).on( 'resize', function(){
464					clearTimeout(setCheckForZoom);
465					setCheckForZoom = setTimeout( checkForZoom, 500 );
466				});
467			}
468
469		} );
470
471		$(window).on('unmodal-open', function(){
472			$('#unmodal-content .woocommerce-product-gallery__image').removeClass('mouse-moving');
473		})
474		$(document).on('unmodal-close', function(){
475			$('#unmodal-content .woocommerce-product-gallery__image').removeClass('mouse-moving');
476		})
477	}
478
479	woocommerce_product_gallery();
480
481	/************************************************************
482	 * Redirect to custom empty cart page
483	 ************************************************************/
484
485	$(document.body).on('wc_cart_emptied', redirect_to_custom_empty_cart);
486
487	function redirect_to_custom_empty_cart() {
488		if (UncodeWCParameters.empty_cart_url !== '') {
489			window.location.replace(UncodeWCParameters.empty_cart_url);
490		}
491	}
492
493	/************************************************************
494	 * Make the variation price inherit the font family from main price
495	************************************************************/
496
497	function variation_price_font() {
498
499		var $forms = $('form.variations_form');
500
501		$forms.each(function(){
502			var $form = $(this);
503
504			$form.on('woocommerce_variation_has_changed wc_variation_form', function(){
505				var $var_price = $('.woocommerce-variation-price .woocommerce-Price-amount'),
506					$row = $form.closest('.vc_row'),
507					$main_price = $('.heading-text .woocommerce-Price-amount', $row);
508
509				if ( $main_price.length ) {
510					var $price_wrap = $main_price.closest('.heading-text'),
511						$price_nest = $('> *:first-child', $price_wrap),
512						font_class = $price_nest.attr('class').split(' '),
513						i;
514
515					for ( i = 0; i < font_class.length; i++ ) {
516						if ( font_class[i].indexOf('font') !== -1 && font_class[i].indexOf('fontsize') === -1 ) {
517							$var_price.addClass( font_class[i] );
518						}
519					}
520				}
521			});
522		});
523	}
524
525	$(document).ready(function() {
526		variation_price_font();
527	});
528
529	/************************************************************
530	 * Show minicart when adding something
531	************************************************************/
532
533	var cartShow, cartHover;
534
535	var minicart_notify = function(){
536		var $body = $('body');
537
538		if ( ! $body.hasClass('minicart-notification') ) {
539			return false;
540		}
541
542		var $sidecart = $('#uncode_sidecart'),
543			$miniCart = $('.menu-smart .uncode-cart-dropdown'),
544			$smartMenu = $miniCart.closest('.menu-smart');
545
546		$miniCart.on('hover', function(){
547			clearTimeout(cartHover);
548		});
549
550		var show_added_to_cart = function(e){
551			clearTimeout(cartShow);
552			clearTimeout(cartHover);
553
554
555			$sidecart.imagesLoaded().done( function( instance ) {
556				setTimeout(function(){
557					$body.addClass('uncode-sidecart-open');
558					$(window).trigger('uncode-sidecart-open');
559				}, 500);
560			});
561
562			var show_added_to_cart_timeout = function(){
563				cartShow = setTimeout(function(){
564					$miniCart.imagesLoaded().done( function( instance ) {
565						$smartMenu.smartmenus('itemActivate', $('.uncode-cart > a'));
566						cartHover = setTimeout(function(){
567							$smartMenu.smartmenus('menuHideAll');
568						}, 4000);
569					});
570				}, 500);
571			};
572
573			if ( e == 'uncode-wc-added-to-cart' ) {
574				show_added_to_cart_timeout();
575			} else {
576				$( document.body ).on( 'wc_fragments_loaded', function(){
577					show_added_to_cart_timeout();
578				});
579			}
580		};
581		$( document.body ).on( 'added_to_cart', show_added_to_cart );
582
583		$(document).ready(function() {
584			if ( $('body').hasClass('uncode-wc-added-to-cart')) {
585				show_added_to_cart('uncode-wc-added-to-cart');
586			}
587		});
588
589	};
590
591	minicart_notify();
592
593	/************************************************************
594	 * View Cart Button
595	************************************************************/
596	$( document.body ).on( 'wc_cart_button_updated', function(e, $button){
597		if ( $(document.body).hasClass('minicart-notification') ) {
598			return false;
599		}
600
601		$button
602			.attr('href', wc_add_to_cart_params.cart_url )
603			.addClass('added_and_noted')
604			.removeClass('ajax_add_to_cart')
605			.find('.added_to_cart')
606			.text( wc_add_to_cart_params.i18n_view_cart );
607	});
608
609	/************************************************************
610	 * Side Cart
611	************************************************************/
612	var init_sidecart = function(){
613		var $body = $('body.uncode-sidecart-enabled');
614		if ( ! $body.length ) {
615			return false;
616		}
617
618		var $cart_icon = $('.mobile-shopping-cart, .uncode-cart.menu-item-link > a'),
619			$sidecart = $('#uncode_sidecart'),
620			$view_cart = $('a.wc-forward:not(.checkout)', $sidecart).removeClass('btn-sm'),
621			$checkout = $('a.checkout', $sidecart).removeClass('btn-sm').addClass('btn-flat'),
622			$overlay = $('#uncode_sidecart_overlay'),
623			$close_cart = $('.close-mini-cart', $sidecart),
624			sidecart_hover = false;
625
626		$cart_icon.on('click', function( e ){
627			if ( ! ( $(this).closest('.overlay').length && UNCODE.wwidth > UNCODE.mediaQuery ) && ( ! ( $body.hasClass('uncode-sidecart-mobile-disabled') && UNCODE.wwidth <= UNCODE.mediaQuery ) ) ) {
628				e.preventDefault();
629				e.stopPropagation();
630				$body.addClass('uncode-sidecart-open');
631				$(window).trigger('uncode-sidecart-open');
632			}
633		});
634
635		$sidecart.on('mouseover',function(){
636			sidecart_hover = true;
637		}).on('mouseout', function(){
638			sidecart_hover = false;
639		});
640
641		$body.on('click', function( e ){
642			if ( $body.hasClass('uncode-sidecart-open') && !sidecart_hover ) {
643				$body.removeClass('uncode-sidecart-open');
644				$(window).trigger('uncode-sidecart-closed');
645			}
646		});
647
648		$close_cart.on('click', function( e ){
649			e.preventDefault();
650			$body.removeClass('uncode-sidecart-open');
651			$(window).trigger('uncode-sidecart-closed');
652		});
653	};
654	$(document).ready(function(){
655		init_sidecart();
656	});
657	$( document.body ).on("wc_fragments_refreshed added_to_cart removed_from_cart", function(){
658		init_sidecart();
659		requestTimeout( init_sidecart, 1 );
660	});
661
662	var sidecart_size = function(){
663		var $body = $('body.uncode-sidecart-enabled'),
664			$widget_cart = $('.widget_shopping_cart_content'),
665			$mini_cart_item = $('.mini_cart_item', $widget_cart);
666
667		if ( $widget_cart.length ) {
668			$mini_cart_item.each(function(){
669				var $this = $(this),
670 					$img_product = $('.attachment-woocommerce_thumbnail', $this),
671 					imgH = $img_product.height();
672
673 				$this.css({
674 					'min-height': imgH+6
675 				})
676
677			});
678		}
679		if ( $body.length ) {
680
681			var $sidecart = $('#uncode_sidecart'),
682				$cart_header = $('.woocommerce-mini-cart-header', $sidecart),
683				headerH = $cart_header.outerHeight(),
684				$cart_footer = $('.woocommerce-mini-cart-footer', $sidecart),
685				footerH = $cart_footer.outerHeight(),
686				$cart_body = $('.woocommerce-mini-cart-body', $sidecart);
687
688			$cart_body.css({
689				'padding-top':headerH,
690				'padding-bottom':footerH
691			});
692
693		}
694	};
695	$(document).ready(function(){
696		var setCTA;
697		sidecart_size();
698		requestTimeout(function(){
699			$(window).on( 'resize', function(){
700				clearRequestTimeout(setCTA);
701				setCTA = requestTimeout( sidecart_size, 100 );
702			});
703		}, 400);
704	});
705	$( document.body ).on("wc_fragments_refreshed added_to_cart removed_from_cart", function(){
706		sidecart_size();
707		requestTimeout( sidecart_size, 1 );
708	});
709
710	/************************************************************
711	 * Quick view
712	 ************************************************************/
713
714	var modal_quick_view_content = $('.quick-view-content');
715	var last_viewed_product_id;
716
717	$(document).off('click', '.quick-view-button').on('click', '.quick-view-button', function() {
718		var _this = $(this);
719		var product_id = _this.data('post-id');
720		var post_type = _this.data('post-type');
721
722		if (last_viewed_product_id === product_id && modal_quick_view_content.find('#product-' + product_id).length > 0) {
723			$(document).trigger('uncode-unmodal-show-content');
724
725			// Re-open the open the modal instead of regenerating it
726			return false;
727		}
728
729		// Empty modal
730		if (modal_quick_view_content.length > 0) {
731			modal_quick_view_content.html('');
732		}
733
734		// Get quick view content via AJAX
735		$.ajax({
736			url: woocommerce_params.ajax_url,
737			data: {
738				action: 'uncode_load_ajax_quick_view',
739				post_id: product_id,
740				post_type: post_type,
741			},
742			type: 'post',
743			error: function(data) {
744				if (SiteParameters.enable_debug == true) {
745					// This console log is disabled by default
746					// So nothing is printed in a typical installation
747					//
748					// It can be enabled for debugging purposes setting
749					// the 'uncode_enable_debug_on_js_scripts' filter to true
750					console.log('AJAX error on quick view response');
751				}
752			},
753			success: function(response) {
754				if (response && response.success === false) {
755					if (SiteParameters.enable_debug == true) {
756						// This console log is disabled by default
757						// So nothing is printed in a typical installation
758						//
759						// It can be enabled for debugging purposes setting
760						// the 'uncode_enable_debug_on_js_scripts' filter to true
761						if (response.data.error) {
762							console.log(response.data.error);
763						} else {
764							console.log('Unknown error on quick view response');
765						}
766					}
767				} else {
768					var html = response.data.html;
769
770					if (modal_quick_view_content.length > 0) {
771						modal_quick_view_content.html(html);
772					}
773
774					last_viewed_product_id = product_id;
775
776					modal_quick_view_content.imagesLoaded().done( function( instance ) {
777						$(document).trigger('uncode-unmodal-show-content');
778						$(document).trigger('uncode-quick-view-loaded');
779						window.dispatchEvent(new CustomEvent('uncode-quick-view-loaded'));
780
781						setTimeout(function(){
782							modal_quick_view_content.one('mousemove', function(){
783								window.dispatchEvent(new CustomEvent('uncode-quick-view-first-hover'));
784							});
785						}, 10);
786					});
787				}
788			}
789		});
790
791		return false;
792	});
793
794	$(document).on('uncode-quick-view-loaded', function() {
795		var form_variation = modal_quick_view_content.find('.variations_form');
796
797		form_variation.each(function() {
798			$(this).wc_variation_form();
799		});
800
801		form_variation.trigger('check_variations');
802		form_variation.trigger('reset_image');
803
804		if( typeof $.fn.wc_product_gallery !== 'undefined' ) {
805			modal_quick_view_content.find('.woocommerce-product-gallery').each(function(){
806				$(this).wc_product_gallery();
807			});
808		}
809
810		$( '#unmodal-content' ).on( 'change', '.quantity .qty', function() {
811			jQuery( this ).closest('form.cart').find('.add_to_cart_button').attr( 'data-quantity', jQuery( this ).val() );
812		});
813
814		woocommerce_product_gallery();
815		variation_price_font();
816		qtyPlusMinus();
817
818		UNCODE.preventDoubleTransition();
819		UNCODE.utils();
820		UNCODE.okvideo();
821		UNCODE.tapHover();
822		UNCODE.isotopeLayout();
823		UNCODE.justifiedGallery();
824		UNCODE.lightbox();
825		UNCODE.carousel($('body'));
826		UNCODE.lettering();
827		UNCODE.animations();
828		UNCODE.stickyElements();
829		UNCODE.twentytwenty();
830		UNCODE.disableHoverScroll();
831		uncode_progress_bar();
832		UNCODE.filters();
833		UNCODE.widgets();
834
835	});
836})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.