PageSourceSearch

https://apotek-copenhagen.com/wp-content/plugins/commercegurus-com…mmercegurus-attribute-swatches.js?ver=2.2.6

js apotek-copenhagen.com collected 2026-10-04 15:16:08 UTC 31,199 bytes, 928 lines download raw bytes

1/* JavaScript */
2var ckas_jq = null;
3if( jQuery && typeof jQuery.fn.wc_variation_form == 'function' ){
4	ckas_jq = jQuery;
5} else if( $ && typeof $.fn.wc_variation_form == 'function' ){
6	ckas_jq = $;
7}
8document.addEventListener('click', function(e){
9	var input = e.target;
10	var inputp = input.closest('.cgkit-swatch');
11	if( input.classList.contains('cgkit-swatch') || inputp ) {
12		if( inputp ){
13			input = inputp;
14		}
15		e.preventDefault();
16		e.stopPropagation();
17		if( input.classList.contains('cgkit-disabled') ) {
18			var form = input.closest('form');
19			cgkitResetAttributeSwatches(form);
20			input.classList.remove('cgkit-disabled');
21			var $oos_txt = '';
22			if( input.classList.contains('cgkit-as-outofstock') ) {
23				$oos_txt = ' - ' + input.getAttribute('data-oos-text');
24			} 
25			input.setAttribute('title', input.getAttribute('data-attribute-text') + $oos_txt);
26		}
27		cgkitUpdateAttributeSwatch(input);
28		setTimeout(function(){cgkitUpdateAttributeSwatchImage(input);}, 200);
29	}
30	if( input.classList.contains('reset_variations') ) {
31		e.preventDefault();
32		e.stopPropagation();
33		var form = input.closest('form');
34		cgkitClearAttributeSwatches(form, true);
35	}
36	if( input.classList.contains('cgkit-as-single-atc') ) {
37		var form_parent = input.closest('.product');
38		if( form_parent ){
39			if( input.classList.contains('disabled') ){
40				e.preventDefault();
41				e.stopPropagation();
42			} else {
43				var form = form_parent.querySelector('form.cgkit-swatch-form');
44				if( form ){
45					var single_atc_clk = form_parent.querySelector('.cgkit-as-single-atc-clk');
46					var input_var = form.querySelector('input.variation_id');
47					var variation_id = input_var.value;
48					var out_of_stock = form.querySelector('.stock.out-of-stock');
49					if( variation_id != '' && variation_id != '0' && !out_of_stock && single_atc_clk ){
50						e.preventDefault();
51						e.stopPropagation();
52						single_atc_clk.value = 1;
53						cgkitAutoAddToCartVariation(form);
54					}
55				}
56			}
57		}
58	}
59});
60var cgkit_sel_swatches = document.querySelectorAll('.cgkit-swatch.cgkit-swatch-selected');
61cgkit_sel_swatches.forEach(function(input){
62	cgkitUpdateAttributeSwatch2(input);
63});
64var cgkit_update_called = false;
65if( ckas_jq ){
66	ckas_jq('form.variations_form:not(.cgkit-swatch-form)').on('woocommerce_update_variation_values', function(){
67		if( !cgkit_update_called ){
68			setTimeout(cgkitUpdateAvailableAttributes(this), 200);
69		}
70		cgkit_update_called = true;
71	});
72	ckas_jq('body').on('wc_variation_form', 'form.variations_form.cgkit-swatch-form', function(){
73		this.classList.remove('cgkit-processing');
74		this.classList.add('cgkit-processed');
75		var lip = this.closest('li.product');
76		if( lip ){
77			lip.classList.remove('cgkit-swatch-loading');
78		}
79	});
80}
81var single_forms = document.querySelectorAll('form.variations_form:not(.cgkit-swatch-form)');
82single_forms.forEach(function(single_form){
83	setTimeout(cgkitUpdateAvailableAttributes(single_form), 200);
84});
85function cgkitUpdateAttributeSwatch(input){
86	var form = input.closest('form');
87	var parent = input.closest('.cgkit-attribute-swatches');
88	var attr_name = parent.getAttribute('data-attribute');
89	var no_selection = parent.getAttribute('data-no-selection');
90	var attr_value = input.getAttribute('data-attribute-value');
91	var attr_text = input.getAttribute('data-attribute-text');
92	var swatch_type = input.getAttribute('data-type');
93	var attr_obj = form.querySelector('[name="'+attr_name+'"]');
94	var clear_all = form.querySelector('.reset_variations');
95	if( attr_obj ){
96		if( swatch_type == 'button' ){
97			attr_text = input.innerHTML;
98		}
99		var clone_input = null;
100		var clone_parent = input.closest('tr.cgkit-as-swatches-original');
101		if( !clone_parent ){
102			clone_parent = form.querySelector('tr.cgkit-as-swatches-original');
103		} else {
104			clone_parent = form.querySelector('div.cgkit-as-swatches-clone');
105		}
106		if( clone_parent ){
107			var attr_value2 = attr_value.replace(/"/g, '\\"');
108			attr_value2 = attr_value2.replace(/'/g, "\\'");
109			clone_input = clone_parent.querySelector('[data-attribute-value="'+attr_value2+'"]');
110		}
111		if( input.classList.contains('cgkit-swatch-selected') ) {
112			attr_value = '';
113			input.classList.remove('cgkit-swatch-selected');
114			if( clone_input ){
115				clone_input.classList.remove('cgkit-swatch-selected');
116			}
117		} else {
118			var inputs = parent.querySelectorAll('.cgkit-swatch');
119			inputs.forEach(function(oinput){
120				oinput.classList.remove('cgkit-swatch-selected');
121			});
122			input.classList.add('cgkit-swatch-selected');
123
124			if( clone_parent && clone_input ){
125				var clone_inputs = clone_parent.querySelectorAll('.cgkit-swatch');
126				clone_inputs.forEach(function(clone_oinput){
127					clone_oinput.classList.remove('cgkit-swatch-selected');
128				});
129				clone_input.classList.add('cgkit-swatch-selected');
130			}
131		}
132		var text_tr = input.closest('tr');
133		var text_obj = text_tr ? text_tr.querySelector('.cgkit-chosen-attribute') : null;
134		if( text_obj ){
135			if( attr_value == '' ){
136				text_obj.innerHTML = no_selection;
137				text_obj.classList.add('no-selection');
138			} else {
139				text_obj.innerHTML = attr_text;
140				text_obj.classList.remove('no-selection');
141			}
142		}
143		attr_obj.value = attr_value;
144		if( ckas_jq ){
145			ckas_jq(attr_obj).change();
146		} else {
147			attr_obj.dispatchEvent(new Event('change'));
148		}
149		if( clear_all ) {
150			var select_objs = form.querySelectorAll('.cgkit-swatch.cgkit-swatch-selected');
151			if( select_objs.length > 0 ){
152				clear_all.style.visibility = 'visible';
153			} else {
154				clear_all.style.visibility = 'hidden';
155			}
156		}
157		setTimeout(cgkitUpdateAvailableAttributes(form), 100);
158		if( form.classList.contains('cgkit-swatch-form') ) {
159			setTimeout(cgkitAutoAddToCartVariation(form), 150);
160		}
161	}
162}
163function cgkitUpdateAttributeSwatch2(input){
164	var form = input.closest('form');
165	var parent = input.closest('.cgkit-attribute-swatches');
166	var attr_name = parent.getAttribute('data-attribute');
167	var no_selection = parent.getAttribute('data-no-selection');
168	var attr_value = input.getAttribute('data-attribute-value');
169	var attr_text = input.getAttribute('data-attribute-text');
170	var swatch_type = input.getAttribute('data-type');
171	var attr_obj = form.querySelector('[name="'+attr_name+'"]');
172	if( attr_obj ){
173		if( swatch_type == 'button' ){
174			attr_text = input.innerHTML;
175		}
176		var text_tr = input.closest('tr');
177		var text_obj = text_tr ? text_tr.querySelector('.cgkit-chosen-attribute') : null;
178		if( text_obj ){
179			if( attr_value == '' ){
180				text_obj.innerHTML = no_selection;
181				text_obj.classList.add('no-selection');
182			} else {
183				text_obj.innerHTML = attr_text;
184				text_obj.classList.remove('no-selection');
185			}
186		}
187	}
188	var form_parent = input.closest('.product');
189	if( form_parent ){
190		var single_atc = form_parent.querySelector('.cgkit-as-single-atc');
191		var single_atc_clk = form_parent.querySelector('.cgkit-as-single-atc-clk');
192		if( single_atc && single_atc_clk ) {
193			var input_var = form.querySelector('input.variation_id');
194			var variation_id = input_var.value;
195			var out_of_stock = form.querySelector('.stock.out-of-stock');
196			if( variation_id != '' && !out_of_stock ){
197				single_atc_clk.value = 1;
198			} else if( variation_id != '' && out_of_stock ){
199				single_atc.classList.add('disabled');
200			}
201		}
202	}
203}
204function cgkitClearAttributeSwatches(form, update){
205	var cgkit_swatches = form.querySelectorAll('.cgkit-attribute-swatches');
206	cgkit_swatches.forEach(function(cgkit_swatch){
207		var attr_name = cgkit_swatch.getAttribute('data-attribute');
208		var no_selection = cgkit_swatch.getAttribute('data-no-selection');
209		var inputs = cgkit_swatch.querySelectorAll('.cgkit-swatch');
210		inputs.forEach(function(input){
211			input.classList.remove('cgkit-swatch-selected');
212			input.classList.remove('cgkit-disabled');
213			var $oos_txt = '';
214			if( input.classList.contains('cgkit-as-outofstock') ) {
215				$oos_txt = ' - ' + input.getAttribute('data-oos-text');
216			} 
217			input.setAttribute('title', input.getAttribute('data-attribute-text') + $oos_txt);
218		});
219		var text_tr = cgkit_swatch.closest('tr');
220		var text_obj = text_tr ? text_tr.querySelector('.cgkit-chosen-attribute') : null;
221		if( text_obj ){
222			text_obj.innerHTML = no_selection;
223			text_obj.classList.add('no-selection');
224		}
225		if( !update ){
226			var attr_obj = form.querySelector('[name="'+attr_name+'"]');
227			if( attr_obj ) {
228				attr_obj.value = '';
229				if( ckas_jq ){
230					ckas_jq(attr_obj).change();
231				} else {
232					attr_obj.dispatchEvent(new Event('change'));
233				}
234			}
235		}
236	});
237	if( update ){
238		setTimeout(cgkitUpdateAvailableAttributes(form), 200);
239	}
240	var notice = document.querySelector('#cgkit-as-notice-wrap');
241	if( notice ){
242		notice.style.display = 'none';
243	}
244}
245function cgkitResetAttributeSwatches(form){
246	var clear_all = form.querySelector('.reset_variations');
247	var cgkit_swatches = form.querySelectorAll('.cgkit-attribute-swatches');
248	cgkit_swatches.forEach(function(cgkit_swatch){
249		var attr_name = cgkit_swatch.getAttribute('data-attribute');
250		var no_selection = cgkit_swatch.getAttribute('data-no-selection');
251		var inputs = cgkit_swatch.querySelectorAll('.cgkit-swatch-selected');
252		inputs.forEach(function(input){
253			input.classList.remove('cgkit-swatch-selected');
254			input.classList.remove('cgkit-disabled');
255			var $oos_txt = '';
256			if( input.classList.contains('cgkit-as-outofstock') ) {
257				$oos_txt = ' - ' + input.getAttribute('data-oos-text');
258			} 
259			input.setAttribute('title', input.getAttribute('data-attribute-text') + $oos_txt);
260		});
261		var attr_obj = form.querySelector('[name="'+attr_name+'"]');
262		if( attr_obj ){
263			attr_obj.value = '';
264			if( ckas_jq ){
265				ckas_jq(attr_obj).change();
266			} else {
267				attr_obj.dispatchEvent(new Event('change'));
268			}
269		}
270		var text_tr = cgkit_swatch.closest('tr');
271		var text_obj = text_tr ? text_tr.querySelector('.cgkit-chosen-attribute') : null;
272		if( text_obj ){
273			text_obj.innerHTML = no_selection;
274			text_obj.classList.add('no-selection');
275		}
276	});
277	if( clear_all ) {
278		clear_all.style.visibility = 'hidden';
279	}
280}
281function cgkitUpdateAvailableAttributes(form){
282	var cgkit_swatches = form.querySelectorAll('.cgkit-attribute-swatches');
283	cgkit_swatches.forEach(function(cgkit_swatch){
284		var attr_name = cgkit_swatch.getAttribute('data-attribute');
285		var attr_obj = form.querySelector('[name="'+attr_name+'"]');
286		var attr_obj_val = attr_obj.value;
287		var inputs = cgkit_swatch.querySelectorAll('.cgkit-swatch');
288		inputs.forEach(function(input){
289			var attr_value = input.getAttribute('data-attribute-value');
290			var attr_value2 = attr_value.replace(/"/g, '\\"');
291			attr_value2 = attr_value2.replace(/'/g, "\\'");
292			var find_opt = attr_obj.querySelector('option[value="'+attr_value2+'"]');
293			if( !find_opt ){
294				input.classList.remove('cgkit-swatch-selected');
295				input.classList.add('cgkit-disabled');
296				var $oos_txt = input.getAttribute('data-oos-text');
297				if( $oos_txt ) {
298					$oos_txt = ' - ' + $oos_txt;
299				} 
300				input.setAttribute('title', input.getAttribute('data-attribute-text') + $oos_txt);
301				var inputli = input.closest('li.cgkit-attribute-swatch');
302				if( inputli && ( inputli.classList.contains('cgkit-image') || inputli.classList.contains('cgkit-color') ) ) {
303					inputli.setAttribute('data-cgkit-tooltip', input.getAttribute('data-attribute-text') + $oos_txt);
304				}
305			} else {
306				input.classList.remove('cgkit-disabled');
307				var $oos_txt = '';
308				if( input.classList.contains('cgkit-as-outofstock') ) {
309					$oos_txt = ' - ' + input.getAttribute('data-oos-text');
310				} 
311				input.setAttribute('title', input.getAttribute('data-attribute-text') + $oos_txt);
312				var inputli = input.closest('li.cgkit-attribute-swatch');
313				if( inputli && ( inputli.classList.contains('cgkit-image') || inputli.classList.contains('cgkit-color') ) ) {
314					inputli.setAttribute('data-cgkit-tooltip', input.getAttribute('data-attribute-text') + $oos_txt);
315				}
316				if( attr_value == attr_obj_val ){
317					input.classList.add('cgkit-swatch-selected');
318				} else {
319					input.classList.remove('cgkit-swatch-selected');
320				}
321			}
322		});
323	});
324}
325function cgkitAutoAddToCartVariation(form){
326	var input_var = form.querySelector('input.variation_id');
327	if( input_var ){
328		var variation_id = input_var.value;
329		var product_id = form.getAttribute('data-product_id');
330		var out_of_stock = form.querySelector('.stock.out-of-stock');
331
332		var single_atc = null;
333		var single_atc_clk = null;
334		var single_atc_wrp = null;
335		var single_atc_link = null;
336		var form_parent = form.closest('.product');
337		if( form_parent ){
338			single_atc = form_parent.querySelector('.cgkit-as-single-atc');
339			single_atc_clk = form_parent.querySelector('.cgkit-as-single-atc-clk');
340			single_atc_wrp = form_parent.querySelector('.cgkit-as-single-atc-wrap');
341			if( single_atc ){
342				if( out_of_stock && variation_id != '' ){
343					single_atc.classList.add('disabled');
344				} else {
345					single_atc.classList.remove('disabled');
346				}
347			} else if( single_atc_wrp ){
348				single_atc_link = single_atc_wrp.querySelector('a');
349				if( single_atc_link ){
350					var old_link = single_atc_link.getAttribute('cgkit-atc-href');
351					if( ! old_link ){
352						single_atc_link.setAttribute('cgkit-atc-href', single_atc_link.getAttribute('href'));
353					} else {
354						single_atc_link.setAttribute('href', old_link);
355					}
356				}
357			}
358			if( single_atc && single_atc_clk && single_atc_clk.value != 1 ){
359				return true;
360			}
361			if( single_atc && single_atc_clk && single_atc_clk.value == 1 ){
362				single_atc_clk.value = 0; 
363			}
364		}
365
366		var dis_atc = form.closest('.product.cgkit-disable-atc');
367		if( ! single_atc && ( dis_atc || form.classList.contains('cgkit-disable-atc-form') ) ){
368			var wraps = form.querySelectorAll('table.variations .cgkit-attribute-swatches');
369			var hide_rows = form.querySelectorAll('table.variations tr.cgkit-hide-loop');
370			var vis_row_count = wraps.length - hide_rows.length;
371			var product_url = form.getAttribute('action');
372			var url = product_url.indexOf('?') == -1 ? product_url + '?' : product_url + '&';
373			var params = [];
374			wraps.forEach(function(wrap){
375				var attr_name = wrap.getAttribute('data-attribute');
376				var attr_val = '';
377				var attr_obj = wrap.querySelector('.cgkit-swatch-selected');
378				if( attr_obj ){
379					attr_val = attr_obj.getAttribute('data-attribute-value');
380					if( attr_name && attr_val ){
381						params.push( attr_name + '=' + attr_val ); 
382					}
383				}
384			});
385			if( ( vis_row_count == 1 || vis_row_count == 2 ) && vis_row_count == params.length ){
386				url = url + params.join('&');
387				if( single_atc_link ){
388					single_atc_link.setAttribute('href', url);
389				} else {
390					if( commercekit_as.as_swatch_link == 1 ){
391						window.location.href = url;
392					} else {
393						window.location.href = product_url;
394					}
395				}
396				return;
397			}
398		}
399
400		if( ! single_atc && form.classList.contains('cgkit-disable-atc-form') ){
401			return true;
402		}
403
404		if( variation_id != '' && !out_of_stock ){
405			if( single_atc ){
406				single_atc.classList.add('disabled');
407			}
408			form.classList.add('loading');
409			form.classList.add('cgkit-loading');
410			cgkitHideOtherFormNotices(form);
411			var formData = new FormData();
412			formData.append('product_id', product_id);
413			formData.append('variation_id', variation_id);
414			var wraps = form.querySelectorAll('table.variations .cgkit-attribute-swatches');
415			wraps.forEach(function(wrap){
416				var attr_name = wrap.getAttribute('data-attribute');
417				var attr_val = '';
418				var attr_obj = wrap.querySelector('.cgkit-swatch-selected');
419				if( attr_obj ){
420					attr_val = attr_obj.getAttribute('data-attribute-value');
421					if( attr_name && attr_val ){
422						formData.append('variations['+attr_name+']', attr_val);
423					}
424				}
425			});
426			var data = {};
427			data['quantity'] = 1;
428			data['product_id'] = variation_id;
429			data['product_sku'] = '';
430			var $thisbutton = null;
431			if( ckas_jq ){
432				$thisbutton = ckas_jq(form).find('.single_add_to_cart_button');
433				ckas_jq(document.body).trigger('adding_to_cart', [$thisbutton, data]);
434			}
435			fetch( commercekit_ajs.ajax_url + '=commercekit_ajax_as_add_to_cart', {
436				method: 'POST',
437				body: formData,
438			}).then(response => response.json()).then( json => {
439				if( json.status == 1 ){
440					if( ckas_jq ){
441						ckas_jq(document.body).trigger('added_to_cart', [json.fragments, json.cart_hash, $thisbutton]);
442					}
443					cgkitClearAttributeSwatches(form, false);
444					cgkitClearAttributeSwatchImage(form);
445				} else {
446					if( json.notices != '' ){
447						cgkitAttributeSwatchesNotice(json.notices);
448					}
449				}
450				if( single_atc ){
451					single_atc.classList.remove('disabled');
452				}
453				form.classList.remove('loading');
454				form.classList.remove('cgkit-loading');
455			});
456		} else {
457			setTimeout(function(){
458				var wrap = form.querySelector('.cgkit-swatch-quickwrap');
459				if( wrap ){
460					wrap.style.height = "auto";
461					var height = wrap.clientHeight + "px";
462					wrap.style.height = height;
463				}
464			}, 200);
465		}
466	}
467}
468function cgkitUpdateSwatchesDetails(){
469	if( window.innerWidth > 992 ){
470		var details = document.querySelectorAll('form.cgkit-swatch-form details');
471		details.forEach(function(detail){
472			detail.setAttribute('open', true);
473		});
474	} else {
475		var details = document.querySelectorAll('form.cgkit-swatch-form details');
476		details.forEach(function(detail){
477			if( detail.hasAttribute('open') ){
478				detail.removeAttribute('open');
479			}
480		});
481	}
482}
483function cgkitUpdateAttributeSwatchImage(input){
484	var form = input.closest('form');
485	var form_parent = form.closest('.product');
486	var img_img = form_parent.querySelector('img.wp-post-image-cgas');
487	if( !img_img ){
488		return;
489	}
490	var images = JSON.parse(form.getAttribute('data-images'));
491	if( !images || Object.keys(images).length == 0 ){
492		return;
493	}
494
495	var default_img = false;
496	if( !input.classList.contains('cgkit-swatch-selected') ){
497		var tinput = null;
498		var ninputs = form.querySelectorAll('.cgkit-swatch-selected');
499		ninputs.forEach(function(ninput){
500			var gimg_id1 = ninput.getAttribute('data-gimg_id');
501			var image_id1 = '';
502			if( commercekit_as.cgkit_attr_gal == 1 && gimg_id1 != '' ){
503				image_id1 = gimg_id1;
504			}
505			if( image_id1 != '' ){
506				tinput = ninput;
507				return;
508			}
509		});
510		if( tinput ){
511			input = tinput;
512		} else {
513			default_img = true;
514		}
515	}
516	var gimg_id = input.getAttribute('data-gimg_id');
517	var image_id = '';
518	if( commercekit_as.cgkit_attr_gal == 1 && gimg_id != '' ){
519		image_id = gimg_id;
520	}
521	if( image_id == '' ){
522		var ninputs2 = form.querySelectorAll('.cgkit-swatch-selected');
523		ninputs2.forEach(function(ninput2){
524			var gimg_id2 = ninput2.getAttribute('data-gimg_id');
525			var image_id2 = '';
526			if( commercekit_as.cgkit_attr_gal == 1 && gimg_id2 != '' ){
527				image_id2 = gimg_id2;
528			}
529			if( image_id2 != '' ){
530				image_id = image_id2;
531				return;
532			}
533		});
534		if( image_id == '' ){
535			default_img = true;
536		}
537	}
538	var vimg_id = form.getAttribute('current-image');
539	if( image_id == '' && vimg_id != '' ){
540			image_id = vimg_id;
541			default_img = false;
542	}
543	if( !default_img && image_id != '' && images.hasOwnProperty('img_'+image_id) && commercekit_as.cgkit_attr_gal == 1 ){
544		var img_key = 'img_'+image_id;
545		var img_src = img_img.getAttribute('data-cgas-src');
546		if( !img_src ){
547			img_img.setAttribute('data-cgas-src', img_img.getAttribute('src'));
548			img_img.setAttribute('data-cgas-srcset', '');
549			img_img.setAttribute('data-cgas-sizes', '');
550			var img_srcset = img_img.getAttribute('srcset');
551			var img_sizes = img_img.getAttribute('sizes');
552			if( img_srcset ){
553				img_img.setAttribute('data-cgas-srcset', img_srcset);
554			}
555			if( img_sizes ){
556				img_img.setAttribute('data-cgas-sizes', img_sizes);
557			}
558		}
559		if( images[img_key].srcset ){
560			img_img.setAttribute('srcset', images[img_key].srcset);
561		} else {
562			img_img.setAttribute('srcset', '');
563		}
564		if( images[img_key].sizes ){
565			img_img.setAttribute('sizes', images[img_key].sizes);
566		} else {
567			img_img.setAttribute('sizes', '');
568		}
569		img_img.setAttribute('src', images[img_key].src);
570	} else {
571		cgkitClearAttributeSwatchImage(form);
572	}
573}
574function cgkitClearAttributeSwatchImage(form){
575	var form_parent = form.closest('.product');
576	var img_img = form_parent.querySelector('img.wp-post-image-cgas');
577	if( !img_img ){
578		return;
579	}
580	var img_src = img_img.getAttribute('data-cgas-src');
581	var img_srcset = img_img.getAttribute('data-cgas-srcset');
582	var img_sizes = img_img.getAttribute('data-cgas-sizes');
583	if( img_src ){
584		if( img_srcset ){
585			img_img.setAttribute('srcset', img_srcset);
586		} else {
587			img_img.setAttribute('srcset', '');
588		}
589		if( img_sizes ){
590			img_img.setAttribute('sizes', img_sizes);
591		} else {
592			img_img.setAttribute('sizes', '');
593		}
594		img_img.setAttribute('src', img_src);
595	}
596}
597function cgkitAttributeSwatchesNotice(notice){
598	var cgkit_notice_wrap = document.querySelector('#cgkit-as-notice-wrap');
599	if( cgkit_notice_wrap ){
600		cgkit_notice = cgkit_notice_wrap.querySelector('#cgkit-as-notice');
601		cgkit_notice.innerHTML = notice;
602		cgkit_notice_wrap.style.display = 'block';
603	} else {
604		document.body.insertAdjacentHTML( 'beforeend', '<div id="cgkit-as-notice-wrap"><a href="javascript:;" class="cgkit-as-notice-close">X</a><div id="cgkit-as-notice">'+notice+'</div></div>' );
605	}
606}
607var cgkit_as_product_ids = [];
608var cgkit_swatch_forms = document.querySelectorAll('form.cgkit-swatch-form');
609if( cgkit_swatch_forms.length > 0 ){
610	cgkitProcessAttributeSwatchesForms(cgkit_swatch_forms, 0);
611}
612document.addEventListener('click', function(e){
613	var input = e.target;
614	var inputp = input.closest('.cgkit-as-notice-close');
615	if( input.classList.contains('cgkit-as-notice-close') || inputp ) {
616		if( inputp ){
617			input = inputp;
618		}
619		e.preventDefault();
620		e.stopPropagation();
621		var parent = input.closest('#cgkit-as-notice-wrap');
622		if( parent ){
623			parent.style.display = 'none';
624		}
625	}
626});
627window.addEventListener('resize', function(e){
628	cgkitUpdateSwatchesDetails();
629});
630cgkitUpdateSwatchesDetails();
631function cgkitProcessAttributeSwatchesForms(cgkit_forms, process_all){
632	var product_ids = [];
633	cgkit_forms.forEach(function(as_form){
634		as_form.classList.add('cgkit-processing');
635		as_form.classList.add('variations_form');
636		as_form.classList.add('cart');
637		var hide_attrs = as_form.querySelectorAll('table.variations tr.cgkit-hide-loop');
638		if( hide_attrs.length > 0 && commercekit_as.as_activate_atc == 0 ){
639			as_form.classList.add('cgkit-disable-atc-form');
640		}
641		product_ids.push(as_form.getAttribute('data-product_id'));
642		var frm_parent = as_form.closest('.product');
643		if( frm_parent ) {
644			var img_wrap = frm_parent.querySelector('.woocommerce-image__wrapper');
645			if( img_wrap ){
646				img_wrap.classList.add('images');
647				var img_link = img_wrap.querySelector('a');
648				if( img_link ){
649					img_link.classList.add('woocommerce-product-gallery__image');
650				}
651				var img_img = img_wrap.querySelector('img');
652				if( img_img ){
653					img_img.classList.add('wp-post-image-cgas');
654				}
655			} else {
656				var img_img = frm_parent.querySelector('img.attachment-woocommerce_thumbnail');
657				if( img_img ){
658					img_img.classList.add('wp-post-image-cgas');
659					var img_wrap = document.createElement('span');
660					img_wrap.classList.add('images');
661					var img_link = document.createElement('span');
662					img_link.classList.add('woocommerce-product-gallery__image');
663					img_wrap.appendChild(img_link);
664					img_img.parentNode.insertBefore(img_wrap, img_img);
665					img_link.appendChild(img_img);
666				}
667			}
668			var pic_src = frm_parent.querySelector('picture source');
669			if( pic_src ){
670				pic_src.remove();
671			}
672		}
673
674		vform_observer = new MutationObserver((changes) => {
675			changes.forEach(change => {
676				var blocks = as_form.querySelector('.blockUI.blockOverlay');
677				if( blocks ){
678					var dis_atc = as_form.closest('.product.cgkit-disable-atc');
679					if( dis_atc || as_form.classList.contains('cgkit-disable-atc-form') ){
680						return;
681					} else {
682						as_form.classList.add('loading');
683						cgkitHideOtherFormNotices(as_form);
684					}
685				} else {
686					if( !as_form.classList.contains('cgkit-loading') ){
687						as_form.classList.remove('loading');
688					}
689				}
690			});
691		});
692		vform_observer.observe(as_form, {childList:true, subtree:true});
693
694		var vinput = as_form.querySelector('input.variation_id');
695		if( vinput ){
696			vinput_observer = new MutationObserver((changes) => {
697				changes.forEach(change => {
698					if(change.attributeName.includes('value')){
699						setTimeout(function(){
700							if( vinput.value != '' && vinput.value != '0' && as_form.getAttribute('data-product_variations') == 'false' ){
701								cgkitAutoAddToCartVariation(as_form);
702							}	
703						}, 150);
704					}
705				});
706			});
707			vinput_observer.observe(vinput, {attributes : true});
708		}
709		if( commercekit_as.swatches_ajax != 1 ){
710			setTimeout( function() {
711				as_form.classList.remove('cgkit-no-actions');
712				var var_form = ckas_jq(as_form);
713				var_form.wc_variation_form();
714				cgkitUpdateSwatchesDetails();
715				cgkitPrepareDynamicStyles(as_form);
716			}, 100 );
717		}
718	});
719	var uproduct_ids = product_ids.filter(function(product_id, index){
720		return product_ids.indexOf(product_id) === index;
721	});
722
723	if( process_all == 1 ){
724		var fproduct_ids = uproduct_ids;
725	} else {
726		var fproduct_ids = uproduct_ids.slice(0, 6);
727		cgkit_as_product_ids = uproduct_ids.slice(6);
728	}
729
730	if( commercekit_as.swatches_ajax == 1 ){
731		cgkitGetAjaxAttributeSwatchesVariations(fproduct_ids, 1);
732	}
733}
734var cgkit_body = document.querySelector('body');
735var cgkit_body_observer = new MutationObserver((changes) => {
736	var cgkit_forms = document.querySelectorAll('form.cgkit-swatch-form:not(.cgkit-processed):not(.cgkit-processing)');
737	if( cgkit_forms.length > 0 ){
738		cgkitProcessAttributeSwatchesForms(cgkit_forms, 1);
739	}
740});
741cgkit_body_observer.observe(cgkit_body, {childList:true, subtree:true});
742function cgkitGetAjaxAttributeSwatchesVariations(product_ids, page){
743	var formData = new FormData();
744	formData.append('product_ids', product_ids);
745	fetch( commercekit_ajs.ajax_url + '=commercekit_get_ajax_as_variations', {
746		method: 'POST',
747		body: formData,
748	}).then(response => response.json()).then( json => {
749		if( json.status == 1 && Object.keys(json.variations).length > 0 ){
750			for( var product_id in json.variations ){
751				var forms = document.querySelectorAll('form[data-product_id="'+product_id+'"]');
752				forms.forEach(function(form){
753					if( ckas_jq ) {
754						form.classList.remove('cgkit-no-actions');
755						form.setAttribute('data-product_variations', json.variations[product_id]);
756						form.setAttribute('data-images', json.images[product_id]);
757						var var_form = ckas_jq(form);
758						var_form.removeData('product_variations');
759						var_form.removeData('images');
760						var_form.wc_variation_form();
761						cgkitUpdateSwatchesDetails();
762						cgkitPrepareDynamicStyles(form);
763					}
764				});
765			}
766			
767		}
768		if( page == 2 ){
769			cgkit_as_product_ids = [];
770		}
771	});
772}
773function cgkitHideOtherFormNotices(as_form){
774	var no_matches = document.querySelectorAll('.wc-no-matching-variations');
775	no_matches.forEach(function(no_matche){
776		var tas_form = no_matche.closest('form');
777		if( tas_form ){
778			if( tas_form !== as_form ){
779				no_matche.style.display = 'none';
780			}
781		}
782	});
783	var notices = document.querySelector('#cgkit-as-notice-wrap');
784	if( notices ){
785		notices.style.display = 'none';
786	}
787}
788function cgkitPrepareDynamicStyles(as_form){
789	if( as_form.classList.contains('cgkit-dynamic-style') ){
790		return;
791	}
792	var product_id = as_form.getAttribute('data-product_id');
793	var rows = as_form.querySelectorAll('table.variations tr');
794	var clone = as_form.querySelector('.cgkit-as-swatches-clone');
795	var row_count = 0;
796	var product_height = 0;
797	var margin_top = 0;
798	rows.forEach(function(row){
799		if( !row.classList.contains('cgkit-hide-loop') ){
800			if( row_count != 0 ){
801				row.style.marginTop = margin_top+'px';
802				row.style.display = 'table-row';
803				product_height += row.clientHeight;
804				margin_top = row.clientHeight;
805				row.style.display = '';
806			} else {
807				var original = row.querySelector('.cgkit-as-wrap-plp');
808				if( clone && original ){
809					clone.innerHTML = original.innerHTML;
810					row.classList.add('cgkit-as-swatches-original');
811				}
812			}
813			row_count++;
814		}
815	});
816	if( row_count == 1 ){
817		as_form.classList.add('cgkit-single-attribute');
818	}
819	var dynamic_css = 'ul.products li.post-'+product_id+'.product:not(.product-category):before { padding-bottom: '+product_height+'px; }';
820	var as_css = document.createElement('style');
821	as_css.type = 'text/css';
822	as_css.innerHTML = dynamic_css;
823	as_form.appendChild(as_css);
824	as_form.querySelectorAll('details').forEach((el) => {
825		new CgkitAccordion(el);
826	});
827	as_form.classList.add('cgkit-dynamic-style');
828}
829function loadAS(){
830	var as_forms = document.querySelectorAll('form.cgkit-swatch-form');
831	if( as_forms.length > 0 ){
832		as_forms.forEach(function(as_form){
833			cgkitPrepareDynamicStyles(as_form);
834		});
835	}
836}
837const asUserInteractionEvents = ["mouseover", "keydown", "touchstart", "touchmove", "wheel"];
838asUserInteractionEvents.forEach(function(event) {
839    window.addEventListener(event, triggerASScriptLoader, {
840        passive: !0
841    })
842});
843function triggerASScriptLoader() {
844    loadASScripts();
845    asUserInteractionEvents.forEach(function(event) {
846        window.removeEventListener(event, triggerASScriptLoader, {
847            passive: !0
848        })
849    })
850}
851function loadASScripts() {
852	loadAS();
853	if( commercekit_as.swatches_ajax == 1 ){
854		if( cgkit_as_product_ids.length > 0 ){
855			cgkitGetAjaxAttributeSwatchesVariations(cgkit_as_product_ids, 2);
856		}
857	}
858}
859class CgkitAccordion {
860	constructor(el) {
861		this.el = el;
862		this.summary = el.querySelector('summary');
863		this.content = el.querySelector('.ckit-attributes-wrap');
864		this.animation = null;
865		this.isClosing = false;
866		this.isExpanding = false;
867		this.summary.addEventListener('click', (e) => this.onClick(e));
868	}
869
870	onClick(e) {
871		e.preventDefault();
872		if( this.isClosing || !this.el.open ){
873			this.open();
874		} else if( this.isExpanding || this.el.open ){
875			this.shrink();
876		}
877	}
878
879	shrink() {
880		this.isClosing = true;
881		const startHeight = `${this.el.offsetHeight}px`;
882		const endHeight = `${this.summary.offsetHeight}px`;
883		if (this.animation) {
884			this.animation.cancel();
885		}
886		
887		this.animation = this.el.animate({
888			height: [startHeight, endHeight]
889		}, {
890			duration: 400,
891			easing: 'ease-out'
892		});
893		this.animation.onfinish = () => this.onAnimationFinish(false);
894		this.animation.oncancel = () => this.isClosing = false;
895	}
896
897	open() {
898		this.el.style.height = `${this.el.offsetHeight}px`;
899		this.el.open = true;
900		window.requestAnimationFrame(() => this.expand());
901	}
902	
903	expand() {
904		this.isExpanding = true;
905		const startHeight = `${this.el.offsetHeight}px`;
906		const endHeight = `${this.summary.offsetHeight + this.content.offsetHeight}px`;
907
908		if( this.animation ){
909			this.animation.cancel();
910		}
911		this.animation = this.el.animate({
912			height: [startHeight, endHeight]
913		}, {
914			duration: 400,
915			easing: 'ease-out'
916		});
917		this.animation.onfinish = () => this.onAnimationFinish(true);
918		this.animation.oncancel = () => this.isExpanding = false;
919	}
920
921	onAnimationFinish(open) {
922		this.el.open = open;
923		this.animation = null;
924		this.isClosing = false;
925		this.isExpanding = false;
926		this.el.style.height = '';
927	}
928}

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.