PageSourceSearch

https://glamourbeauty.hu/wp-content/themes/luchiana/assets/js/add-to-cart-variation-fix.js?ver=5.14

js glamourbeauty.hu collected 2026-10-08 21:17:17 UTC 8,610 bytes, 242 lines download raw bytes

1(function ($, root, undefined) {
2	"use strict";
3	/**
4	 * Sets product images for the chosen variation
5	 */
6	var
7		ideapark_variation_gallery_cache = {},
8		ideapark_variation_default_slider = null,
9		ideapark_variation_default_thumbs = null,
10		ideapark_variation_gallery_loaded = false,
11		ideapark_variation_gallery_timer = null;
12	
13	$.fn.wc_variations_image_update = function (variation) {
14		var $form = this;
15		IdeaparkQueue.enqueue(() => ideapark_variations_image_update($form, variation));
16	};
17	
18	$(document.body).trigger('ideapark-variations-init');
19	
20	var ideapark_variations_image_update = function ($form, variation) {
21		return new Promise((resolve, reject) => {
22			
23			if (variation && variation.has_variation_gallery_images) {
24				if (typeof ideapark_variation_gallery_cache[variation.variation_id] !== 'undefined') {
25					ideapark_switch_variation_gallery(ideapark_variation_gallery_cache[variation.variation_id]);
26					resolve();
27				} else {
28					$.ajax({
29						url    : ideapark_wp_vars.ajaxUrl,
30						type   : 'POST',
31						data   : {
32							action      : 'ideapark_variation_images',
33							variation_id: variation.variation_id,
34							is_quickview: $form.closest('.product').hasClass('c-product--quick-view') ? 1 : 0,
35						},
36						success: function (html) {
37							ideapark_variation_gallery_cache[variation.variation_id] = html;
38							ideapark_switch_variation_gallery(html);
39							resolve();
40						}
41					});
42				}
43			} else {
44				var f = function () {
45					var $product = $form.closest('.product');
46					$product.find('.c-product__slider').each(function(){
47						var $product_gallery = $(this),
48							$product_img_wrap = $product_gallery.find('.c-product__slider-item').first(),
49							$product_img = $product_img_wrap.find('.c-product__slider-img'),
50							$product_link = $product_img_wrap.find('a').first(),
51							$product_zoom = $product_img_wrap.find('.js-product-zoom'),
52							$gallery_img = $product.find('.c-product__thumbs-img').first();
53						
54						if (ideapark_variation_default_slider === null) {
55							ideapark_variation_default_slider = $("<div />").append($product_gallery.clone()).html();
56						}
57						
58						if (variation && variation.image && variation.image.src && variation.image.src.length > 1) {
59							$product_gallery.data('featured', true);
60							
61							$product_img.wc_set_variation_attr('src', variation.image.src);
62							$product_img.wc_set_variation_attr('height', variation.image.src_h);
63							$product_img.wc_set_variation_attr('width', variation.image.src_w);
64							$product_img.wc_set_variation_attr('srcset', variation.image.srcset);
65							$product_img.wc_set_variation_attr('sizes', variation.image.sizes);
66							$product_img.wc_set_variation_attr('title', variation.image.title);
67							$product_img.wc_set_variation_attr('alt', variation.image.alt);
68							$product_img.wc_set_variation_attr('data-src', variation.image.full_src);
69							$product_img.wc_set_variation_attr('data-large_image', variation.image.full_src);
70							$product_img.wc_set_variation_attr('data-large_image_width', variation.image.full_src_w);
71							$product_img.wc_set_variation_attr('data-large_image_height', variation.image.full_src_h);
72							$product_link.wc_set_variation_attr('href', variation.image.full_src);
73							$product_img_wrap.wc_set_variation_attr('data-thumb', variation.image.src);
74							if ($product_zoom.length) {
75								var old_img = $product_zoom.data('img');
76								$product_zoom.wc_set_variation_attr('data-img', variation.image.full_src);
77								$product_zoom.data('img', $product_zoom.attr('data-img'));
78								if (old_img != $product_zoom.data('img')) {
79									$product_zoom.removeClass('init').trigger('zoom.destroy');
80									ideapark_init_zoom();
81								}
82							}
83							
84							$gallery_img.wc_set_variation_attr('srcset', variation.image.srcset);
85							$gallery_img.wc_set_variation_attr('src', variation.image.gallery_thumbnail_src);
86							
87							var $carousel = $('.js-single-product-carousel.owl-loaded');
88							if ($carousel.length === 1) {
89								$carousel.trigger('to.owl.carousel', [0, 100]);
90							}
91						} else {
92							$product_img.wc_reset_variation_attr('src');
93							$product_img.wc_reset_variation_attr('width');
94							$product_img.wc_reset_variation_attr('height');
95							$product_img.wc_reset_variation_attr('srcset');
96							$product_img.wc_reset_variation_attr('sizes');
97							$product_img.wc_reset_variation_attr('title');
98							$product_img.wc_reset_variation_attr('data-caption');
99							$product_img.wc_reset_variation_attr('alt');
100							$product_img.wc_reset_variation_attr('data-src');
101							$product_img.wc_reset_variation_attr('data-large_image');
102							$product_img.wc_reset_variation_attr('data-large_image_width');
103							$product_img.wc_reset_variation_attr('data-large_image_height');
104							$product_img_wrap.wc_reset_variation_attr('data-thumb');
105							if ($product_zoom.length) {
106								$product_zoom.wc_reset_variation_attr('data-img');
107								$product_zoom.data('img', $product_zoom.attr('data-img'));
108								$product_zoom.removeClass('init').trigger('zoom.destroy');
109								ideapark_init_zoom();
110							}
111							$product_link.wc_reset_variation_attr('href');
112							$gallery_img.wc_reset_variation_attr('src');
113							$gallery_img.wc_reset_variation_attr('srcset');
114						}
115					});
116					
117					
118					resolve();
119				};
120				
121				if (ideapark_variation_gallery_loaded) {
122					ideapark_switch_variation_gallery('', f);
123				} else {
124					f();
125				}
126			}
127			
128			window.setTimeout(function () {
129				$(window).trigger('resize');
130			}, 20);
131		});
132	};
133	
134	var ideapark_switch_variation_gallery = function (html, callback) {
135		var is_switch_to_default = false;
136		
137		if (html === '' && ideapark_variation_default_slider) {
138			is_switch_to_default = true;
139			html = ideapark_variation_default_slider;
140			if (ideapark_variation_default_thumbs) {
141				html += ideapark_variation_default_thumbs;
142			}
143		}
144		
145		if (!html) {
146			if (typeof callback === 'function') {
147				callback();
148			}
149			return;
150		}
151		
152		var $slider = $('.c-product__slider'), $thumbs = $('.c-product__thumbs'),
153			$gallery = $('.c-product__gallery');
154		
155		var hash = $slider.data('hash');
156		var result = html.match(/data-hash="([a-f0-9]*)"/);
157		if (hash && result !== null) {
158			var hash_new = Array.from(result)[1];
159			
160			if (hash == hash_new && !$slider.data('featured')) {
161				if (typeof callback === 'function') {
162					callback();
163				}
164				return;
165			}
166			$slider.data('featured', false);
167		}
168		
169		$slider.addClass('h-fade--out');
170		$thumbs.addClass('h-fade--out');
171		
172		var $new = $("<div class='h-hidden' />").append(html);
173		$new.find('.c-play--disabled').removeClass('c-play--disabled');
174		$new.find('.h-fade').addClass('h-fade--out');
175		$new.find('.c-product__thumbs-item').first().addClass('active');
176		
177		if (ideapark_variation_gallery_timer !== null) {
178			clearTimeout(ideapark_variation_gallery_timer);
179			ideapark_variation_gallery_timer = null;
180		}
181		
182		ideapark_variation_gallery_timer = setTimeout(function () {
183			if ($slider.length) {
184				if ($slider.hasClass('owl-carousel')) {
185					$slider
186						.removeClass('owl-carousel')
187						.trigger("destroy.owl.carousel");
188				}
189				$slider
190					.find('.init,.active')
191					.removeClass('init active');
192	
193				if (ideapark_variation_default_slider === null) {
194					ideapark_variation_default_slider = $("<div />").append($slider.clone()).html();
195				}
196				$slider.remove();
197			}
198			
199			if ($thumbs.length) {
200				if ($thumbs.hasClass('owl-carousel')) {
201					$thumbs
202						.removeClass('owl-carousel')
203						.trigger("destroy.owl.carousel");
204				}
205				$thumbs
206					.find('.init,.active')
207					.removeClass('init active');
208				
209				if (ideapark_variation_default_thumbs === null) {
210					ideapark_variation_default_thumbs = $("<div />").append($thumbs.clone()).html();
211				}
212				$thumbs.remove();
213			} else {
214				ideapark_variation_default_thumbs = '';
215			}
216			
217			var $slider_new = $('.c-product__slider', $new), $thumbs_new = $('.c-product__thumbs', $new);
218			
219			if ($slider_new.length) {
220				$slider_new.detach().appendTo($gallery);
221				ideapark_init_product_carousel();
222				ideapark_init_zoom();
223				$slider_new.removeClass('h-fade--out');
224			}
225			
226			if ($thumbs_new.length) {
227				$thumbs_new.detach().appendTo($gallery);
228				ideapark_init_product_thumbs_carousel();
229				$thumbs_new.removeClass('h-fade--out');
230			}
231			
232			$new.remove();
233			
234			ideapark_variation_gallery_loaded = ! is_switch_to_default;
235			
236			if (typeof callback === 'function') {
237				callback();
238			}
239			ideapark_variation_gallery_timer = null;
240		}, 300);
241	};
242})(jQuery, this);

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.