PageSourceSearch

https://www.jubilersezam.pl/modules/nxtalwishlist/views/js/1.7/front.js?13.4.3

js jubilersezam.pl collected 2026-09-24 11:21:59 UTC 31,076 bytes, 1,048 lines download raw bytes

1/**
2 * Advanced Wishlist | Favorites | Save for later
3 *
4 * @author    Nxtal <[email protected]>
5 * @copyright Nxtal 2025
6 * @license   https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
7 * @version   3.8.0
8 *
9 */
10
11var nxtalWishListObj = {
12	
13	productCount: 0, 
14	activeRequest: 0,
15	AllproductCount:0,
16	select_object:0,
17	id_product_selected :0,
18	id_product_attr_selected : 0,
19	id_wishlist_selected : 0,
20	
21	init: function() {
22		var obj = this; 
23		
24		obj.removeModal();
25		$("body").on("hidden.bs.modal", "#product-wishlist-modal, #create-wishlist-modal", function () {
26			obj.removeModal();
27		});
28		$("body").on("click", '#product-wishlist-modal .close, #create-wishlist-modal .close', function () {			
29			obj.removeModal();
30		});
31		if (typeof wishlist_count != 'undefined') {
32			obj.productCount = wishlist_count; 
33		}
34		
35		if (typeof wishlist_mobile_link != 'undefined' && wishlist_mobile_link) {
36			var mobileLink = JSON.parse(wishlist_mobile_link);
37			$('#_mobile_user_info').after(mobileLink.icon);
38		}
39		
40		$('.share-links-wishlist-list').on('click', 'a:not([data-toggle="modal"])', function(e){
41			e.preventDefault();
42			window.open($(this).attr('href'), 'share', 'toolbar=0,status=0,width=640,height=445');
43		});
44		
45		$('.share-links-wishlist-list').on('click', 'a[data-toggle="modal"]', function(e){
46			var idWishlistProduct = '';
47			if(typeof $(this).attr('data-id_wishlist_product') !== 'undefined') {
48				idWishlistProduct = $(this).data('id_wishlist_product');
49			}
50			$('#nxtalwishlist-modal .alert').remove();
51			$('#nxtalwishlist-modal input[type="button"]').removeClass('disabled').prop('disabled', false);
52			$('#nxtalwishlist-modal input[name="id_wishlist_product"]').val(idWishlistProduct);
53		});
54
55		obj.refreshTouchspin();
56		
57		$('body').on(
58			'change', '.nxtal-product-list [name="qty"]', function(e){
59				e.stopPropagation();
60				
61				var $this = $(this);
62				var quantity = $(this).val();
63				var id_wishlist_product = $this.data('id_wishlist_product');
64				if (quantity && id_wishlist_product) {
65					$.ajax({
66						method: "POST",
67						dataType: "json",
68						url: nxtalwishlist_ajax_link,
69						data: {
70							ajax: true,
71							action: 'updateQuantity',
72							quantity: quantity,
73							id_wishlist_product: id_wishlist_product,
74						},
75						success: function (res) {
76							if (res.status) { 
77								obj.refreshWishList();
78								obj.refreshTouchspin();
79								obj.showSuccessMessage(res.message);
80							} else {
81								obj.showErrorMessage(res.message);
82							}
83						},
84						error: function () {
85							obj.showErrorMessage(nxtal_error_text);
86						}
87					});
88				}
89			}      
90		);
91		$('body').on(
92			'change', '.product-variants-wishlist input, .product-variants-wishlist select', function(e){
93			e.stopPropagation();
94			var $form = $(this).parents('form');
95			$.ajax({
96				method: "POST",
97				dataType: "json",
98				url: nxtalwishlist_ajax_link,
99				data: {
100					ajax: true,
101					action: 'setVariants',
102					id_wishlist_product: $(this).closest('.cart-item').data('id_wishlist_product'),
103					data: $form.serialize()
104				},
105				success: function (res) {
106					if (res.status) {
107						obj.showSuccessMessage(res.message);
108						obj.refreshWishList();
109					} else {
110						obj.showErrorMessage(res.message);
111					}
112				}
113			});
114		});
115
116		$('#created-wishlist').on('click', '.card-block:not(.active)', function(e) {
117			
118			let $this = $(this);
119
120			$('#created-wishlist .card-block').removeClass('active');
121
122			$this.addClass('active');
123
124			setTimeout(function() {
125				$('html, body').animate({
126scrollTop: $this.offset().top - 120				}, 500);
127			}, 300);
128		});
129		
130		$('#create-wishlist-modal').on('click', '.create-new-wishlist', function(e){
131			e.stopPropagation();
132			var name = $('#wishlist_name').val();
133			var id_product = obj.id_product_selected;
134			var id_wishlist = obj.id_wishlist_selected;
135			 
136			if (typeof id_wishlist != 'undefined')  {
137				$.ajax({
138					method: "POST",
139					dataType: "json",
140					url: nxtalwishlist_ajax_link,
141					data: {
142						ajax: true,
143						action: 'renameList',
144						id_wishlist : id_wishlist,
145						name : name,
146					},
147					beforeSend: function() {
148						$('#create-wishlist-modal').attr('disabled', true);						
149					},
150					success: function (res) {
151
152						if (res.status) {
153							 
154							obj.showSuccessMessage(res.message);
155
156							obj.removeModal();  
157							 
158							$('[data-id_wishlist="'+id_wishlist+'"]').find('h2').text(name);
159							$('[data-id_wishlist="'+id_wishlist+'"]').find('h2').attr('title', name);
160						
161						} else {
162							obj.showErrorMessage(res.message);
163						}
164						$('#wishlist_name').val('');
165					},
166					complete: function() {
167						$('#create-wishlist-modal').removeAttr('disabled');
168					},
169				});
170			} else  {
171				$.ajax({
172					method: "POST",
173					dataType: "json",
174					url: nxtalwishlist_ajax_link,
175					data: {
176						ajax: true,
177						action: 'setNewWishList',
178						id_product : id_product,
179						id_product_attribute : obj.id_product_attr_selected, 
180						name : name,
181						page_name:$('body').attr('id')
182					},
183					beforeSend: function() {
184						$('#create-wishlist-modal').attr('disabled', true);						
185					},
186					success: function (res) {
187						if (res.status) { 
188							obj.showSuccessMessage(res.message);
189							obj.removeModal();
190							if (id_product  && nxtal_enable_multiple) {
191								obj.showModal();
192								if (res.html_modal){
193									$('ul#created-wishlist').append(res.html_modal);
194								}
195							}
196							if (res.html){
197								$('div#created-wishlist').append(res.html);
198							}
199						} else {
200							obj.showErrorMessage(res.message);
201						}
202						$('#wishlist_name').val('');
203					},
204					complete: function() {
205						$('#create-wishlist-modal').removeAttr('disabled');
206					},
207				});
208			}
209		});
210
211		$('#product-wishlist-modal').on('click', '.wishlist-list-item', function(e){
212			e.preventDefault(); 
213		 
214			if (obj.id_wishlist_selected) {
215				obj.addInWishList(obj.id_product_selected, obj.id_product_attr_selected);
216			}
217		});
218		 
219		$('body').on('click', '.nxtal-wishlist-add-to-new, [nxtal-wishlist-list-edit]', function(e){
220			e.preventDefault();
221			obj.removeModal();
222			var wishlist_name = '';
223			obj.id_wishlist_selected = $(this).closest('.nxtal-wishlist-cart').data('id_wishlist');
224			var btnobj = $('#create-wishlist-modal .create-new-wishlist');
225			btnobj.text(btnobj.data('text-create'));
226			$(btnobj).closest('.modal-content').find('.modal-title').text(btnobj.data('text-create'));
227			if (obj.id_wishlist_selected) {
228				btnobj.text(btnobj.data('text-update'));
229				$(btnobj).closest('.modal-content').find('.modal-title').text(btnobj.data('text-update'));
230				wishlist_name = $(this).closest('.card-block').find('.h1').attr('title');
231			} 
232			$('#wishlist_name').val(wishlist_name);
233			obj.showModal("create-wishlist-modal"); 
234		});
235		
236		$('body').on(
237			'click', '.nxtal-wishlist-icon:not(.modals):not([processing])', function(e){
238				e.stopPropagation();
239				var $this = $(this);
240				obj.select_object = $this;
241				var id_product = $this.data('id_product');
242				var id_product_attribute = $this.data('id_product_attribute');
243			
244				if (id_product) {
245					if ($this.hasClass('multiple')) {
246						obj.id_product_selected = id_product;
247						obj.id_product_attr_selected = id_product_attribute;
248
249						$.ajax({
250							method: "POST",
251							dataType: "json",
252							url: nxtalwishlist_ajax_link,
253							
254							data: {
255								ajax: true,
256								action: 'getWishListModal',
257								id_product : obj.id_product_selected,
258								id_product_attribute : obj.id_product_attr_selected
259							},
260							beforeSend: function () {
261								$this.attr('processing', true);
262							},
263							success: function (res) {
264								if (res.status) {                                 
265									obj.showModal();
266								 
267									$('#product-wishlist-modal #created-wishlist').html(res.html);
268								}
269								$this.removeAttr('processing');
270							},
271							error: function () {
272								nxtalWishListObj.showErrorMessage(nxtal_error_text);
273								$this.removeAttr('processing');
274							}
275						});
276					
277						
278					} else {
279						 
280						obj.addInWishList(id_product, id_product_attribute);
281						
282					}
283				
284				}
285			}      
286		);
287
288		$('body').on(
289			'click', '[nxtal-wishlist-list-cart-delete]', function(){
290				
291				var $this = $(this);
292				var id_wishlist_product = $this.data('id_wishlist_product'); 
293				obj.removeWishList(id_wishlist_product, $this); 
294			}      
295		);
296
297		$('body').on(
298			'click', '[nxtal-wishlist-list-delete]', function(){  
299				
300				obj.removeMultyWishList(); 
301			}      
302		);
303
304		$('body').on(
305			'click', '[nxtal-wishlist-list-order-now]:not(.disabled)', function(){            
306				obj.orderNowWishList('', $(this), 0);
307			}
308		);
309		
310		$('.nxtal-product-list').on('click', 'button.add-to-cart', function(){
311				obj.select_object = $(this);
312			  prestashop.emit("handleError", {
313				eventType: "addProductToCart",
314				resp: ''
315			});
316
317		});
318		$('#nxtalwishlist-modal').on(
319			'click', 'input[type="button"]:not(.disabled)', function(){            
320				var $this = $(this);
321				var $form = $(this).parents('form');
322				
323				$.ajax({
324					method: "POST",
325					dataType: "json",
326					url: $form.attr('action'),
327					data: $form.serialize(),
328					beforeSend: function() {
329						$('#nxtalwishlist-modal .alert').remove();
330						$form.find('input, textarea, button').prop('disabled', true);
331					},
332					success: function (res) {
333						if (res.status) {
334							obj.showSuccessMessage(res.message);
335							$("#nxtalwishlist-modal").modal('hide');
336							 
337						} else {
338							$this.removeClass('disabled').prop('disabled', false);
339							$form.before('<div class="alert alert-danger">'+res.message+'</div>');
340						}
341					},
342					error: function () {
343						obj.showErrorMessage(nxtal_error_text);
344					},
345					complete: function () {
346						$form.find('input, textarea, button').prop('disabled', false);
347					}
348				});
349			}
350		);
351		
352		$('[data-action="copy-link"]').on('click', function (e) {
353			e.preventDefault();
354
355			const copyLink = $(this).attr('href');
356
357			if (navigator.clipboard) {
358				navigator.clipboard.writeText(copyLink).then(() => {
359				  $('.share-action').trigger('click');
360				}).catch(err => {
361				 /* console.error('Clipboard copy failed:', err);*/
362				});
363			} else {
364				/* Fallback for older browsers */
365				const $temp = $('<input>');
366				$('body').append($temp);
367				$temp.val(copyLink).select();
368				try {
369				  document.execCommand('copy');
370				  $('.share-action').trigger('click');
371				} catch (err) {
372				  /*console.error('Fallback copy failed:', err);*/
373				}
374				$temp.remove();
375			}
376
377			return false;
378		});
379
380		$('body #created-wishlist').on('click', '.nxtal-wishlist-cart, .wishlist-list-item', function(){
381		 
382			obj.id_wishlist_selected = $(this).data('id_wishlist');
383		 
384		});
385		
386		$('.bulk-action-element').on('click', 'ul a', function(e){
387			
388			e.preventDefault();	
389			
390			var type = $(this).data('type')	;  
391			var wishlistids = $(this).closest('.nxtal-wishlist-cart').find('input[name="checkbox_wishlist"]:checked').map(function() {
392					return $(this).val();
393				}).get();  
394				
395			if (type == '1') {
396
397				var checked = (wishlistids.length) ? false : true;  
398
399				$(this).closest('.nxtal-wishlist-cart').find('.wishlist_checkbox input').prop('checked', checked);
400
401			} else if(type == '2') { 
402
403				if (wishlistids.length) {
404					obj.removeWishList(wishlistids, $(this));
405				} else {
406					nxtalWishListObj.showErrorMessage(nxtal_invalid_product_selection);
407				}
408								
409			} else if(type == '3') {
410				
411				if (wishlistids.length) {
412					obj.orderNowWishList(wishlistids);
413				} else {
414					nxtalWishListObj.showErrorMessage(nxtal_invalid_product_selection);
415				}
416			}  
417			 
418		});
419		
420		if (nxtal_product_list_toggle) {
421			prestashop.on('updateCart', function() {
422                obj.refreshButton()
423            })
424		}
425
426		$(document).ajaxComplete(function( event, xhr, settings ){
427			 
428			if (nxtal_product_list_toggle
429				&& settings.data != null
430				&& (settings.data.indexOf('action=update') > 0 || settings.data.indexOf('action=add-to-cart') > 0)
431			) {
432				obj.refreshWishList();
433			}
434			obj.setIcon();
435			obj.setProductIcon();
436			obj.removeVariantOptions();
437		});
438		obj.setIcon();
439		obj.setProductIcon();
440		obj.removeVariantOptions();
441		
442		obj.refreshButton(); 
443				
444		prestashop.on('updateProductList', function() {
445			setTimeout(function() {
446				obj.refreshButton();
447				},
448				2000
449			);
450		});
451
452	},
453
454	addInWishList : function (id_product, id_product_attribute = 0) {
455		var id_wishlist = this.id_wishlist_selected;
456		 
457		var productElementmodal = '';
458		if (id_wishlist) {
459			productElementmodal = $('[data-id_wishlist="'+id_wishlist+'"]');
460		} 
461		var productElement = $('[data-id_product="'+id_product+'"][data-id_product_attribute="'+id_product_attribute+'"]'); 
462		 
463		$.ajax({
464			method: "POST",
465			dataType: "json",
466			url: nxtalwishlist_ajax_link,
467			data: {
468				ajax: true,
469				action: 'addToWishList',
470				id_product: id_product,
471				id_product_attribute: id_product_attribute,
472				id_wishlist : id_wishlist
473			},
474			beforeSend: function () {
475
476				nxtalWishListObj.activeRequest++; 
477				 
478				if (id_wishlist) {
479					if (productElementmodal.hasClass('active')) {
480
481						isAdded = true;
482
483						productElementmodal.removeClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add')); 
484						
485						nxtalWishListObj.desc();
486
487					} else {
488
489						isAdded = false;
490
491						productElementmodal.addClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
492
493						nxtalWishListObj.asc();
494
495					} 
496					if ($('ul#created-wishlist').find('.wishlist-list-item .active').length > 0){
497						productElement.addClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
498					} else {
499						productElement.removeClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
500					}
501
502				} else {
503
504					if (productElement.hasClass('active')) {
505
506						isAdded = true; 
507
508						productElement.removeClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add')); 
509
510						nxtalWishListObj.desc();
511
512					} else {
513
514						isAdded = false;
515						productElement.addClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
516					 											
517						nxtalWishListObj.asc();
518					}
519
520				}
521				nxtalWishListObj.refreshCount();
522
523				$('#product-wishlist-modal').attr('disabled', true);
524			},
525			success: function (res) {
526				if (res.status) {
527					nxtalWishListObj.showSuccessMessage(res.message); 
528				} else {
529					nxtalWishListObj.showErrorMessage(res.message);
530
531					if (id_wishlist) {
532
533						if (isAdded == true) {
534							nxtalWishListObj.asc(); 
535	
536							productElementmodal.addClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-added'));
537	 
538						} else { 
539	
540							productElementmodal.removeClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
541							
542							nxtalWishListObj.desc();
543						}
544
545					} else {
546						if (isAdded == true) {
547							nxtalWishListObj.asc(); 
548	
549							productElement.addClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-added'));
550	 
551						} else { 
552	
553							productElement.removeClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
554							
555							nxtalWishListObj.desc();
556						}
557					}
558					
559				}
560				nxtalWishListObj.refreshCount();
561			},
562			complete: function() {
563				nxtalWishListObj.activeRequest--;
564				nxtalWishListObj.cartRefresh(id_product, id_product_attribute);
565				 
566				nxtalWishListObj.refreshWishList();
567				$('#product-wishlist-modal').removeAttr('disabled');
568				if (id_wishlist) {
569					if ($('ul#created-wishlist').find('.wishlist-list-item .active').length > 0){
570						productElement.addClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
571					} else {
572						productElement.removeClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
573					}
574				}
575
576			},
577			error: function() {
578				nxtalWishListObj.showErrorMessage(nxtal_error_text); 
579			
580				if (isAdded == true) {
581
582					nxtalWishListObj.asc(); 
583
584					if (id_wishlist) { 
585
586						productElementmodal.addClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-added'));
587
588					} else {
589
590						productElement.addClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-added'));
591
592					}
593				
594				} else {  
595
596					if (id_wishlist) { 
597						productElementmodal.removeClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
598					} else {
599						productElement.removeClass('active').attr('title', nxtalWishListObj.select_object.data('title-to-add'));
600					}
601
602					nxtalWishListObj.desc();
603				}
604				
605				 
606				nxtalWishListObj.refreshCount();
607			}
608		});
609	},
610
611	orderNowWishList: function(wishlistids = '', $this = '', isCheckSelected = 1) {
612
613		if ($this != '') {
614			$this.addClass('disabled');
615		}
616		$.ajax({
617			method: "POST",
618			dataType: "json",
619			url: nxtalwishlist_ajax_link,
620			data: {
621				ajax: true,
622				action: 'orderNow',
623				wishlistids : wishlistids,
624				isCheckSelected : isCheckSelected
625			},
626			success: function (res) {
627				if (res.status) {                                             
628					nxtalWishListObj.showSuccessMessage(res.message);
629				} else {
630					if ($this != '') {
631						$this.removeClass('disabled');
632					}
633					nxtalWishListObj.showErrorMessage(res.message);
634				}
635			},
636			complete: function() {
637			 
638				nxtalWishListObj.cartRefresh();
639				 
640			},
641			error: function () {
642				nxtalWishListObj.showErrorMessage(nxtal_error_text);
643			}
644		});
645
646	},
647	refreshButton: function() {
648		var id_wishlist = this.id_wishlist_selected;
649        var wishlist_products = $('.nxtal-wishlist-icon ').map(function() {
650			if ($(this).data('id_product')) {
651            return {
652                'id_product': $(this).data('id_product'),
653                'id_product_attribute': $(this).data('id_product_attribute'),
654				'id_wishlist':id_wishlist
655            }
656			}
657          
658        }).get();
659		 
660        if (wishlist_products) {
661            $.ajax({
662                method: "POST",
663                dataType: "json",
664                url: nxtalwishlist_ajax_link,
665                data: {
666                    ajax: true,
667                    action: 'validateWishlistProducts',
668                    products: wishlist_products
669                },
670                success: function(res) {
671                    if (res) {
672                        $.each(res, function(i, product) {
673							var list = $('body').find('#created-wishlist .nxtal-wishlist-icon[data-id_product="' + product.id_product + '"][data-id_product_attribute="' + product.id_product_attribute + '"][data-id_wishlist="' + product.id_wishlist + '"], .nxtal-wishlist-icon[data-id_product="' + product.id_product + '"][data-id_product_attribute="' + product.id_product_attribute + '"]');
674							if (id_wishlist) {
675								var list = $('#created-wishlist [data-id_product="'+product.id_product+'"][data-id_product_attribute="'+product.id_product_attribute+'"][data-id_wishlist="'+product.id_wishlist+'"]');
676							 } else {			 
677								var list = $('[data-id_product="'+product.id_product+'"][data-id_product_attribute="'+product.id_product_attribute+'"]');
678							 }
679                            if (product.added) {
680                                list.addClass('active');
681                            } else {
682								list.removeClass('active');
683                            }
684                        })
685                    }
686                }
687            })
688        }
689    },
690 
691	removeWishList: function(id_wishlist_products, $this = '') {
692
693		if (!confirm(nxtal_delete_confirm_text)) {
694			return false;
695		}
696		var id_wishlist = nxtalWishListObj.id_wishlist_selected;
697		 
698		if (id_wishlist_products) {
699			$.ajax({
700				method: "POST",
701				dataType: "json",
702				url: nxtalwishlist_ajax_link,
703				data: {
704					ajax: true,
705					action: 'removeProduct',
706					id_wishlist_product: id_wishlist_products,
707					id_wishlist:id_wishlist
708				},
709				beforeSend: function () {
710					 
711					if (typeof id_wishlist_products == 'object')  {
712						$.each(id_wishlist_products, function(i, id_wishlist_product) {
713							 
714							$('[data-id_wishlist="'+id_wishlist+'"] li.cart-item[data-id_wishlist_product="'+id_wishlist_product+'"]').slideUp("normal");
715						 
716							nxtalWishListObj.desc();
717						});
718					} else {
719					 
720						 $('[data-id_wishlist="'+id_wishlist+'"] li.cart-item[data-id_wishlist_product="'+id_wishlist_products+'"]').slideUp("normal");
721					 
722						nxtalWishListObj.desc();
723					}
724					
725					 
726				},
727				success: function (res) {
728					if (res.status) {
729						 
730						$.each(res, function(id_wishlist_product, product) {
731							 
732							if (typeof product == 'object') {
733
734								if (product.status) {
735 
736									nxtalWishListObj.showSuccessMessage(product.message);
737									
738									 $('[data-id_wishlist="'+id_wishlist+'"] li.cart-item[data-id_wishlist_product="'+id_wishlist_product+'"]').remove();
739
740									 $('[data-id_wishlist="'+id_wishlist+'"] [data-id_product="'+product.id_product+'"][data-id_product_attribute="'+product.id_product_attribute+'"]').removeClass('active').attr('title', function() {
741										
742										if ($this != '') {
743
744											return $this.attr('data-title-to-add');
745
746										}
747										
748									});
749
750								} else {
751
752									nxtalWishListObj.showErrorMessage(product.message);
753
754									$('[data-id_wishlist="'+id_wishlist+'"] li.cart-item[data-id_wishlist_product="'+id_wishlist_product+'"]').slideDown("normal");
755
756									nxtalWishListObj.asc();
757
758								}
759
760							}
761						});
762
763					} else {
764						
765						nxtalWishListObj.showErrorMessage(res.message);
766 
767					}
768				},
769				complete: function() {
770					nxtalWishListObj.refreshCount();
771					nxtalWishListObj.refreshWishList();
772				},
773				error: function() {
774					nxtalWishListObj.showErrorMessage(nxtal_error_text);
775				
776					if (typeof id_wishlist_products == 'object')  {
777						
778						$.each(id_wishlist_products, function(i, id_wishlist_product) {
779							 $('[data-id_wishlist="'+id_wishlist+'"] li.cart-item[data-id_wishlist_product="'+id_wishlist_product+'"]').slideDown("normal");
780							 
781							nxtalWishListObj.asc();
782						});
783
784					} else {
785						 $('[data-id_wishlist="'+id_wishlist+'"] li.cart-item[data-id_wishlist_product="'+id_wishlist_products+'"]').slideDown("normal");
786						 
787						nxtalWishListObj.asc();
788					}
789				}
790			});
791		}
792	},
793
794
795	asc : function () {
796	 
797		var id_wishlist = nxtalWishListObj.id_wishlist_selected;
798		if (typeof nxtalWishListObj.productCount == 'object') {
799			if (typeof nxtalWishListObj.productCount[id_wishlist] == 'undefined') {
800				nxtalWishListObj.productCount[id_wishlist] = 0;
801			}
802			nxtalWishListObj.productCount[id_wishlist]++;
803		} else { 
804			nxtalWishListObj.productCount++; 
805		}
806	},
807
808	countAssign : function (count = 0) {
809		 
810		var id_wishlist = nxtalWishListObj.id_wishlist_selected;
811		if (typeof nxtalWishListObj.productCount == 'object') {
812			if (typeof nxtalWishListObj.productCount[id_wishlist] == 'undefined') {
813				nxtalWishListObj.productCount[id_wishlist] = 0;
814			}
815			nxtalWishListObj.productCount[id_wishlist] = count;
816		} else { 
817			nxtalWishListObj.productCount=count; 
818		}
819	},
820	
821	desc : function () {
822		 
823		var id_wishlist = nxtalWishListObj.id_wishlist_selected;
824		if (typeof nxtalWishListObj.productCount == 'object') {
825		 
826			if (typeof nxtalWishListObj.productCount[id_wishlist] == 'undefined') {
827				nxtalWishListObj.productCount[id_wishlist] = 0;
828			}
829			nxtalWishListObj.productCount[id_wishlist]--;
830			 
831		} else {
832			nxtalWishListObj.productCount--; 
833		}
834	},
835
836	refreshCount: function() {
837		var id_wishlist = nxtalWishListObj.id_wishlist_selected;
838		var count =  nxtalWishListObj.productCount || 0;
839		 
840		if (typeof nxtalWishListObj.productCount == 'object' && typeof id_wishlist != 'undefined') {
841			count =  nxtalWishListObj.productCount[id_wishlist] || 0;
842			
843			var headerCount = Object.values(wishlist_count).reduce((acc, val) => acc + val, 0);
844		} else {
845			var headerCount = count;
846		}
847		$('[data-id_wishlist="'+id_wishlist+'"] .count-wishlist-product').text('('+ count +')');
848		
849		 
850		id_wishlist ? $('.count-wishlist-product.multiple').text('('+ headerCount +')') : $('.count-wishlist-product').text('('+ headerCount +')');  		
851		
852		if (count < 1) {
853			$('[data-id_wishlist="'+id_wishlist+'"] .wishlist-noproduct').removeClass('hide');
854			$('[data-id_wishlist="'+id_wishlist+'"] .nxtal-wishlist-overview .button-actions, #cart [data-id_wishlist="'+id_wishlist+'"] .nxtal-wishlist-cart').addClass('hide');
855		} else {
856			$('[data-id_wishlist="'+id_wishlist+'"] .wishlist-noproduct').addClass('hide');
857			$('[data-id_wishlist="'+id_wishlist+'"] .nxtal-wishlist-overview .button-actions, #cart [data-id_wishlist="'+id_wishlist+'"] .nxtal-wishlist-cart').removeClass('hide');
858		}
859		
860	},
861	cartRefresh : function (idProduct = 0, idProductAttribute = 0) {
862		/*prestashop.emit("updateCart", {reason:{idProduct:idProduct,idProductAttribute:idProductAttribute},resp:{}});*/
863		prestashop.emit("updateCart", {reason:{},resp:{}});
864	},
865
866	removeMultyWishList  : function() {
867		if (! confirm(nxtal_wishlist_delete_confirm_text)) {
868			return false;
869		}
870		var id_wishlist = nxtalWishListObj.id_wishlist_selected;
871		if (id_wishlist) {
872			$.ajax({
873				method: "POST",
874				dataType: "json",
875				url: nxtalwishlist_ajax_link,
876				data: {
877					ajax: true,
878					action: 'removeWishlist',
879					id_wishlist: id_wishlist
880				},
881				beforeSend: function () { 
882					
883					$('[data-id_wishlist="'+id_wishlist+'"]').slideUp("normal");
884					 
885					 
886				},
887				success: function (res) { 
888
889					if (res.status) {
890						nxtalWishListObj.countAssign();
891 
892						nxtalWishListObj.showSuccessMessage(res.message);
893
894						$('[data-id_wishlist="'+id_wishlist+'"]').remove();
895
896					} else {
897
898						nxtalWishListObj.showErrorMessage(res.message);
899
900						$('[data-id_wishlist="'+id_wishlist+'"]').slideDown("normal"); 
901
902					} 
903					 
904				},
905				complete: function() {
906					nxtalWishListObj.refreshCount();
907				},
908				error: function() {
909					nxtalWishListObj.showErrorMessage(nxtal_error_text); 
910
911					$('[data-id_wishlist="'+id_wishlist+'"]').slideDown("normal");
912
913					 
914				}
915			});
916		}
917	},
918
919
920	refreshWishList: function() {
921		 
922		var obj = this;
923		var id_wishlist = nxtalWishListObj.id_wishlist_selected;
924
925		/*if (nxtal_enable_multiple && !id_wishlist) {
926			return false;
927		}*/
928
929		if (obj.activeRequest == 0) {
930			$.ajax({
931				method: "GET",
932				dataType: "json",
933				url: nxtalwishlist_ajax_link,				
934				
935				data: {
936					ajax: true,
937					action: 'refreshWishList',
938					id_wishlist : id_wishlist
939				},
940				success: function (res) {
941					if (res.status) {
942						 
943						obj.countAssign(res.product_count);
944						obj.refreshCount();
945						if (id_wishlist) {
946							 
947							$('#main [data-id_wishlist='+ id_wishlist+'] .nxtal-wishlist-products').html(res.main_html);
948							$('#left-column [data-id_wishlist='+ id_wishlist+'] .nxtal-wishlist-products , #right-column [data-id_wishlist='+ id_wishlist+'] .nxtal-wishlist-products').html(res.column_html);
949						} else {
950		
951							$('#main [data-id_wishlist=0] .nxtal-wishlist-products').html(res.main_html);
952							$('#left-column [data-id_wishlist=0] .nxtal-wishlist-products, #right-column [data-id_wishlist=0] .nxtal-wishlist-products').html(res.column_html);
953						}
954						
955						obj.refreshTouchspin();
956					}
957				}
958			});
959		}
960	},
961	refreshTouchspin: function() {
962		
963		$('.nxtal-product-list [name="qty"][type="text"]').each(function(){
964			$(this).TouchSpin({
965				verticalbuttons:!0,
966				verticalupclass:"material-icons touchspin-up",
967				verticaldownclass:"material-icons touchspin-down",
968				buttondown_class:"btn btn-touchspin js-touchspin js-increase-product-quantity",
969				buttonup_class:"btn btn-touchspin js-touchspin js-decrease-product-quantity",
970				min:parseInt($(this).attr("min"),10),
971				max:1e6
972			});
973		});
974	},
975
976	setIcon: function() {
977		// $('.product-description ._desktop_wishlist_icon').each(function(){
978		// 	$(this).closest('.thumbnail-container').append($(this).detach());
979		// });
980	},
981	setProductIcon: function() {
982	 	// $('#product .product-cover').append($('#product .product-additional-info ._desktop_wishlist_icon').detach());
983		
984		// $('[id^="quickview-modal-"] .product-cover').append($('[id^="quickview-modal-"] .modal-footer ._desktop_wishlist_icon').detach());
985	},
986
987	showSuccessMessage: function(msg) {
988		$.growl.notice({ title: "", message:msg});
989	},
990	
991	showErrorMessage: function(msg) {
992		$.growl.error({ title: "", message:msg});
993	},
994	showModal: function (modal = 'product-wishlist-modal') {	
995		  
996		if (typeof $.fancybox == 'function') {
997			$.fancybox({'href': '#'+modal});
998		} else {		
999			$("#"+modal).modal("show");
1000		}
1001	},
1002	
1003	removeModal: function() {				
1004		if (typeof $.fancybox == 'function') {
1005			$.fancybox.close();
1006		} else {
1007			$("#product-wishlist-modal, #create-wishlist-modal").modal("hide");
1008		}		 
1009	},
1010
1011	removeVariantOptions: function() {				
1012		$('#left-column, #right-column').find('.product-variants-wishlist .control-label').siblings().remove();
1013	},
1014	
1015	
1016};
1017$(document).ready(function() {
1018    nxtalWishListObj.init();
1019});
1020
1021
1022
1023function updateWishlistLabels() {
1024    if ($('body').attr('id') !== 'product') return;
1025
1026    $('.nxtal-wishlist-icon').each(function () {
1027        const $icon = $(this);
1028        const $label = $icon.find('.wishlist-label');
1029
1030        if ($label.length) {
1031            if ($icon.hasClass('active')) {
1032                $label.text($label.attr('data-label-added') || 'Ulubione');
1033            } else {
1034                $label.text($label.attr('data-label-add') || 'Dodaj do ulubionych');
1035            }
1036        }
1037    });
1038}
1039
1040// zmiana po kliknięciu
1041$(document).on('click', '.nxtal-wishlist-icon', function () {
1042    setTimeout(updateWishlistLabels, 150);
1043});
1044
1045// zmiana po AJAX (moduł nadpisuje HTML ⇒ trzeba poprawić)
1046$(document).ajaxComplete(function () {
1047    setTimeout(updateWishlistLabels, 150);
1048});

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.