PageSourceSearch

https://sdmsoftware.com/wp-content/themes/Divi-Child-Theme/assets/js/sdm.js?ver=1.1

js sdmsoftware.com collected 2026-10-02 14:40:41 UTC 3,093 bytes, 108 lines download raw bytes

1jQuery(document).ready(function($){
2	$('.sdm-posts-slider').slick({
3		slidesToShow: 4,
4		slidesToScroll: 1,
5		autoplay: false,
6		autoplaySpeed: 2000,
7		arrows: true,
8		prevArrow: '<div class="slick-prevs"><i class="fa fa-angle-left"></i></div>',
9		nextArrow: '<div class="slick-nexts"><i class="fa fa-angle-right"></i></div>',
10		responsive: [
11			{
12			  breakpoint: 1100,
13			  settings: {
14			    slidesToShow: 3,
15			  }
16			},
17			{
18			  breakpoint: 767,
19			  settings: {
20			    slidesToShow: 2,
21			  }
22			},
23			{
24			  breakpoint: 480,
25			  settings: {
26			    slidesToShow: 1,
27			  }
28			}
29		]
30	});
31});
32
33
34(function($) {
35    "use strict";
36    $(window).on('load', function() {
37		$(".cx-pageloader").delay(300).fadeOut('fast');
38    });
39
40})(jQuery);
41
42(function ($) {
43	var SLIDER = '.et_pb_slider_0';
44
45	function init() {
46		// Divi loads Magnific in the footer; if it isn't here yet, retry on window load (same trick Divi uses)
47		if (!$.magnificPopup) {
48			$(window).one('load', init);
49			return;
50		}
51
52		var $slider = $(SLIDER);
53		if (!$slider.length) return;
54
55		// No wrapping: Divi's slider needs the <img> to stay a direct child of .et_pb_slide_image
56		// (it toggles an "active" class on it). Magnific can read the source from data-mfp-src instead.
57		var $imgs = $slider.find('.et_pb_slide_image img');
58		$imgs.each(function () {
59			this.setAttribute('data-mfp-src', this.currentSrc || this.src
59);
60		});
61
62		// Same options as Divi's Gallery module: one popup over all slides,
63		// with prev/next arrows, "n of 7" counter, keyboard arrows, and swipe.
64		$slider.magnificPopup({
65			delegate: '.et_pb_slide_image img',
66			type: 'image',
67			removalDelay: 500,
68			mainClass: 'mfp-fade',
69			gallery: {
70				enabled: true,
71				navigateByImgClick: true
72			},
73			zoom: {
74				enabled: true,
75				duration: 500,
76				// Zoom in/out from the image currently visible in the slider. After paging inside the
77				// popup, the matching slide is hidden (display:none) and has no on-screen box, which
78				// would send the close animation to the top-left corner. All slide images share the
79				// same box, so the active slide's image is the right target.
80				opener: function ($el) {
81					var $visible = $slider.find('.et-pb-active-slide .et_pb_slide_image img');
82					return $visible.length ? $visible : $el;
83				}
84			},
85			autoFocusLast: false,
86			callbacks: {
87				// When the popup closes, move the slider to the image the visitor was looking at
88				close: function () {
89					var index  = this.index;
90					var slider = $slider.data('et_pb_simple_slider');
91					var active = $slider.find('.et_pb_slide').index($slider.find('.et-pb-active-slide'));
92					if (slider && typeof slider.et_slider_move_to === 'function' && active !== index) {
93						slider.et_slider_move_to(index);
94					}
95				}
96			}
97		});
98
99		// Touch swipe inside the popup (Divi's gallery does the same; jquery.mobile is already loaded)
100		$('body')
101			.on('swiperight', '.mfp-container', function () { $.magnificPopup.instance.prev(); })
102			.on('swipeleft',  '.mfp-container', function () { $.magnificPopup.instance.next(); });
103	}
104
105	$(init);
106})(jQuery);
107
108

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.