PageSourceSearch

https://premiumprintabletemplates.com/wp-content/plugins/commerceg…mmercegurus-attribute-swatches.js?ver=2.2.2

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

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.