PageSourceSearch

https://blackparakeetztoo.com/wp-content/themes/woodmart/js/scripts/global/helpers.js?ver=7.3.1

js blackparakeetztoo.com collected 2026-10-08 08:10:02 UTC 9,065 bytes, 303 lines download raw bytes

1var woodmartThemeModule = {};
2/* global woodmart_settings */
3
4(function($) {
5	woodmartThemeModule.supports_html5_storage = false;
6
7	try {
8		woodmartThemeModule.supports_html5_storage = ('sessionStorage' in window && window.sessionStorage !== null);
9		window.sessionStorage.setItem('wd', 'test');
10		window.sessionStorage.removeItem('wd');
11	}
12	catch (err) {
13		woodmartThemeModule.supports_html5_storage = false;
14	}
15
16	woodmartThemeModule.$window = $(window);
17
18	woodmartThemeModule.$document = $(document);
19
20	woodmartThemeModule.$body = $('body');
21
22	woodmartThemeModule.windowWidth = woodmartThemeModule.$window.width();
23
24	woodmartThemeModule.removeURLParameter = function(url, parameter) {
25		var urlParts = url.split('?');
26
27		if (urlParts.length >= 2) {
28			var prefix = encodeURIComponent(parameter) + '=';
29			var pars = urlParts[1].split(/[&;]/g);
30
31			for (var i = pars.length; i-- > 0;) {
32				if (pars[i].lastIndexOf(prefix, 0) !== -1) {
33					pars.splice(i, 1);
34				}
35			}
36
37			return urlParts[0] + (pars.length > 0 ? '?' + pars.join('&') : '');
38		}
39
40		return url;
41	};
42
43	woodmartThemeModule.removeDuplicatedStylesFromHTML = function(html, callback) {
44		var $data = $('<div class="temp-wrapper"></div>').append(html);
45		var $links = $data.find('link');
46		var counter = 0;
47		var timeout = false;
48
49		if (0 === $links.length) {
50			callback(html);
51			return;
52		}
53
54		setTimeout(function() {
55			if (counter <= $links.length && !timeout) {
56				callback($($data.html()));
57				timeout = true;
58			}
59		}, 500);
60
61		$links.each(function() {
62			if ( 'undefined' !== typeof $(this).attr('id') && $(this).attr('id').indexOf('theme_settings_') !== -1) {
63				$('head').find('link[id*="theme_settings_"]:not([id*="theme_settings_default"])').remove();
64			}
65		});
66
67		$links.each(function() {
68			var $link = $(this);
69			var id = $link.attr('id');
70			var href = $link.attr('href');
71
72			if ( 'undefined' === typeof id ) {
73				return;
74			}
75
76			var isThemeSettings = id.indexOf('theme_settings_') !== -1;
77			var isThemeSettingsDefault = id.indexOf('theme_settings_default') !== -1;
78
79			$link.remove();
80
81			if ('undefined' === typeof woodmart_page_css[id] && ! isThemeSettingsDefault) {
82				$('head').append($link.on('load', function() {
83					counter++;
84
85					if (!isThemeSettings) {
86						woodmart_page_css[id] = href;
87					}
88
89					if (counter >= $links.length && !timeout) {
90						callback($($data.html()));
91						timeout = true;
92					}
93				}));
94			} else {
95				counter++;
96
97				if (counter >= $links.length && !timeout) {
98					callback($($data.html()));
99					timeout = true;
100				}
101			}
102		});
103	};
104
105	woodmartThemeModule.debounce = function(func, wait, immediate) {
106		var timeout;
107		return function() {
108			var context = this;
109			var args = arguments;
110			var later = function() {
111				timeout = null;
112
113				if (!immediate) {
114					func.apply(context, args);
115				}
116			};
117			var callNow = immediate && !timeout;
118
119			clearTimeout(timeout);
120			timeout = setTimeout(later, wait);
121
122			if (callNow) {
123				func.apply(context, args);
124			}
125		};
126	};
127
128	woodmartThemeModule.wdElementorAddAction = function(name, callback) {
129		woodmartThemeModule.$window.on('elementor/frontend/init', function() {
130			if (!elementorFrontend.isEditMode()) {
131				return;
132			}
133
134			elementorFrontend.hooks.addAction(name, callback);
135		});
136	};
137
138	woodmartThemeModule.wdElementorAddAction('frontend/element_ready/global', function($wrapper) {
139		if ($wrapper.attr('style') && $wrapper.attr('style').indexOf('transform:translate3d') === 0 && !$wrapper.hasClass('wd-parallax-on-scroll')) {
140			$wrapper.attr('style', '');
141		}
142		$wrapper.removeClass('wd-animated');
143		$wrapper.data('wd-waypoint', '');
144		$wrapper.removeClass('wd-anim-ready');
145		woodmartThemeModule.$document.trigger('wdElementorGlobalReady');
146	});
147
148	$.each([
149		'frontend/element_ready/column',
150		'frontend/element_ready/container'
151	], function(index, value) {
152		woodmartThemeModule.wdElementorAddAction(value, function($wrapper) {
153			if ($wrapper.attr('style') && $wrapper.attr('style').indexOf('transform:translate3d') === 0 && !$wrapper.hasClass('wd-parallax-on-scroll')) {
154				$wrapper.attr('style', '');
155			}
156			$wrapper.removeClass('wd-animated');
157			$wrapper.data('wd-waypoint', '');
158			$wrapper.removeClass('wd-anim-ready');
159
160			setTimeout(function() {
161				woodmartThemeModule.$document.trigger('wdElementorColumnReady');
162			}, 100);
163		});
164	});
165
166	woodmartThemeModule.setupMainCarouselArg = function() {
167		woodmartThemeModule.$mainCarouselWrapper = $('.woocommerce-product-gallery');
168		var items = 1;
169
170		if ( woodmartThemeModule.$mainCarouselWrapper.hasClass('thumbs-position-centered') || woodmartThemeModule.$mainCarouselWrapper.hasClass('thumbs-position-carousel_two_columns') ) {
171			items = 2;
172		}
173
174		woodmartThemeModule.mainCarouselArg = {
175			rtl            : woodmartThemeModule.$body.hasClass('rtl'),
176			items          : items,
177			autoplay       : woodmart_settings.product_slider_autoplay,
178			autoplayTimeout: 3000,
179			loop           : woodmart_settings.product_slider_autoplay,
180			center         : woodmartThemeModule.$mainCarouselWrapper.hasClass('thumbs-position-centered'),
181			startPosition  : woodmartThemeModule.$mainCarouselWrapper.hasClass('thumbs-position-centered') ? woodmart_settings.centered_gallery_start : 0,
182			dots           : 'yes' === woodmart_settings.product_slider_dots || woodmartThemeModule.$mainCarouselWrapper.find('.woocommerce-product-gallery__wrapper').data('hide_pagination_control') && 'yes' !== woodmartThemeModule.$mainCarouselWrapper.find('.woocommerce-product-gallery__wrapper').data('hide_pagination_control'),
183			nav            : true,
184			autoHeight     : woodmart_settings.product_slider_auto_height === 'yes',
185			navText        : false,
186			navClass       : [
187				'owl-prev wd-btn-arrow',
188				'owl-next wd-btn-arrow'
189			]
190		};
191	}
192
193	woodmartThemeModule.shopLoadMoreBtn = '.wd-products-load-more.load-on-scroll';
194
195	woodmartThemeModule.$window.on('elementor/frontend/init', function() {
196		if (!elementorFrontend.isEditMode()) {
197			return;
198		}
199
200		if ('enabled' === woodmart_settings.elementor_no_gap) {
201			$.each([
202				'frontend/element_ready/section',
203				'frontend/element_ready/container'
204			], function(index, value) {
205				woodmartThemeModule.wdElementorAddAction(value, function($wrapper) {
206					if ($wrapper.attr('style') && $wrapper.attr('style').indexOf('transform:translate3d') === 0 && !$wrapper.hasClass('wd-parallax-on-scroll')) {
207						$wrapper.attr('style', '');
208					}
209
210					$wrapper.removeClass('wd-animated');
211					$wrapper.data('wd-waypoint', '');
212					$wrapper.removeClass('wd-anim-ready');
213					woodmartThemeModule.$document.trigger('wdElementorSectionReady');
214				});
215
216				elementorFrontend.hooks.addAction(value, function($wrapper) {
217					var cid = $wrapper.data('model-cid');
218
219					if (typeof elementorFrontend.config.elements.data[cid] !== 'undefined') {
220						var size = '';
221
222						if ('undefined' !== typeof elementorFrontend.config.elements.data[cid].attributes.elType) {
223							if ('container' === elementorFrontend.config.elements.data[cid].attributes.elType) {
224								size = elementorFrontend.config.elements.data[cid].attributes.boxed_width.size;
225							} else if ('section' === elementorFrontend.config.elements.data[cid].attributes.elType) {
226								size = elementorFrontend.config.elements.data[cid].attributes.content_width.size;
227							}
228						}
229
230						if (!size) {
231							$wrapper.addClass('wd-negative-gap');
232						}
233					}
234				});
235			});
236
237			elementor.channels.editor.on('change:section change:container', function(view) {
238				var changed = view.elementSettingsModel.changed;
239				if (typeof changed.content_width !== 'undefined' || typeof changed.boxed_width !== 'undefined') {
240					var size = [];
241
242					if ( typeof changed.content_width !== 'undefined' ) {
243						size = changed.content_width.size;
244					} else if ( typeof changed.boxed_width !== 'undefined' ) {
245						size = changed.boxed_width.size
246					}
247
248					var sectionId = view._parent.model.id;
249					var $section = $('.elementor-element-' + sectionId);
250
251					if (size) {
252						$section.removeClass('wd-negative-gap');
253					} else {
254						$section.addClass('wd-negative-gap');
255					}
256				}
257			});
258		}
259	});
260
261	woodmartThemeModule.$window.on('load', function() {
262		$('.wd-preloader').delay(parseInt(woodmart_settings.preloader_delay)).addClass('preloader-hide');
263		$('.wd-preloader-style').remove();
264		setTimeout(function() {
265			$('.wd-preloader').remove();
266		}, 200);
267	});
268
269	woodmartThemeModule.googleMapsCallback = function () {
270		return '';
271	};
272})(jQuery);
273
274window.onload = function() {
275	var events = [
276		'keydown',
277		'scroll',
278		'mouseover',
279		'touchmove',
280		'touchstart',
281		'mousedown',
282		'mousemove'
283	];
284
285	var triggerListener = function(e) {
286		jQuery(window).trigger('wdEventStarted');
287		removeListener();
288	};
289
290	var removeListener = function() {
291		events.forEach(function(eventName) {
292			window.removeEventListener(eventName, triggerListener);
293		});
294	};
295
296	var addListener = function(eventName) {
297		window.addEventListener(eventName, triggerListener);
298	};
299
300	events.forEach(function(eventName) {
301		addListener(eventName);
302	});
303};

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.