PageSourceSearch

https://nydalaklostertradgard.se/wp-content/plugins/xpro-elementor-addons/assets/js/xpro-widgets.js?ver=1.6.0

js nydalaklostertradgard.se collected 2026-09-24 10:17:41 UTC 50,366 bytes, 916 lines download raw bytes

1!(function (e, t) {
2    "use strict";
3    let o = {
4        init: function () {
5            let t = {
6                widget: o.BackgroundOverlay,
7                "xpro-simple-gallery.default": o.SimpleGallery,
8                "xpro-simple-portfolio.default": o.SimplePortfolio,
9                "xpro-progress-bar.default": o.ProgressBar,
10                "xpro-pie-chart.default": o.PieChart,
11                "xpro-line-chart.default": o.LineChart,
12                "xpro-counter.default": o.Counter,
13                "xpro-social-chat.default": o.SocialChat,
14                "xpro-horizontal-menu.default": o.HorizontalMenu,
15                "xpro-team.default": o.Team,
16                "xpro-before-after.default": o.BeforeAfter,
17                "xpro-content-toggle.default": o.ContentToggle,
18                "xpro-news-ticker.default": o.NewsTicker,
19                "xpro-table.default": o.Table,
20                "xpro-icon-box.default": o.IconBox,
21                "xpro-post-grid.default": o.PostGrid,
22                "xpro-hot-spot.default": o.HotSpot,
23                "xpro-image-scroller.default": o.ImageScroller,
24                "xpro-horizontal-timeline.default": o.HorizontalTimeline,
25                "xpro-contact-form.default": o.ContactForm,
26                "xpro-search.default": o.Search,
27                "xpro-course-grid.default": o.CourseGrid,
28                "xpro-woo-product-grid.default": o.ProductGrid,
29                "xpro-hero-slider.default": o.HeroSlider,
30            };
31            e.each(t, function (e, t) {
32                elementorFrontend.hooks.addAction("frontend/element_ready/" + e, t);
33            }),
34                e("body").on("click.onWrapperLink", "[data-xpro-element-link]", function () {
35                    var t,
36                        o,
37                        i = e(this),
38                        n = i.data("xpro-element-link"),
39                        r = i.data("id"),
40                        a = document.createElement("a");
41                        // safety check
42                        if (!n || !n.url) return;
43                        if (!/^https?:\/\//i.test(n.url)) {
44                            n.url = "https://" + n.url;
45                        }
46                    (a.id = "xpro-addons-wrapper-link-" + r),
47                        (a.href = n.url),
48                        (a.target = n.is_external ? "_blank" : "_self"),
49                        (a.rel = n.nofollow ? "nofollow noreferer" : ""),
50                        (a.style.display = "none"),
51                        document.body.appendChild(a),
52                        (t = document.getElementById(a.id)).click(),
53                        (o = setTimeout(function () {
54                            document.body.removeChild(t), clearTimeout(o);
55                        }));
56                }),
57                e("[data-xpro-equal-height]").each(function () {
58                    var t = e(this),
59                        o = e(this).data("xpro-equal-height");
60                    if ("widgets" === o) {
61                        let i = e(this).find(".elementor-widget"),
62                            n = 0;
63                        i.each(function () {
64                            n = Math.max(n, e(this).outerHeight());
65                        }),
66                            i.css({ minHeight: n + "px" });
67                    } else {
68                        let r = 0;
69                        setTimeout(function () {
70                            t.find(o).each(function () {
71                                r = Math.max(r, e(this).outerHeight());
72                            }),
73                                t.find(o).css({ minHeight: r + "px" });
74                        }, 100);
75                    }
76                });
77        },
78        BackgroundOverlay: function e(t) {
79            t.hasClass("elementor-element-edit-mode") && t.addClass("xpro-widget-bg-overlay");
80        },
81        getElementSettings: function (e, t) {
82            var i = {},
83                n = e.data("model-cid");
84            if (elementorFrontend.isEditMode() && n) {
85                var r = elementorFrontend.config.elements.data[n],
86                    a = r.attributes.widgetType || r.attributes.elType,
87                    l = elementorFrontend.config.elements.keys[a];
88                l ||
89                    ((l = elementorFrontend.config.elements.keys[a] = []),
90                    jQuery.each(r.controls, function (e, t) {
91                        t.frontend_available && l.push(e);
92                    })),
93                    jQuery.each(r.getActiveControls(), function (e) {
94                        -1 !== l.indexOf(e) && (i[e] = r.attributes[e]);
95                    });
96            } else i = e.data("settings") || {};
97            return o.getItems(i, t);
98        },
99        getItems: function (e, t) {
100            if (t) {
101                var o = t.split("."),
102                    i = o.splice(0, 1);
103                if (!o.length) return e[i];
104                if (!e[i]) return;
105                return this.getItems(e[i], o.join("."));
106            }
107            return e;
108        },
109        SimpleGallery: function (t) {
110            let i = o.getElementSettings(t),
111                n = t.find(".xpro-elementor-gallery-wrapper"),
112                r = t.find(".xpro-elementor-gallery-filter > ul"),
113                a = r.attr("data-default-filter");
114            setTimeout(function () {
115                n.cubeportfolio({
116                    filters: r,
117                    layoutMode: "grid",
118                    defaultFilter: a,
119                    animationType: i.filter_animation,
120                    gridAdjustment: "responsive",
121                    mediaQueries: [
122                        { width: elementorFrontend.config.breakpoints.lg, cols: i.item_per_row || 3, options: { gapHorizontal: i.margin.size || 0, gapVertical: i.margin.size || 0 } },
123                        { width: elementorFrontend.config.breakpoints.md, cols: i.item_per_row_tablet || 2, options: { gapHorizontal: i.margin_tablet.size || 0, gapVertical: i.margin_tablet.size || 0 } },
124                        { width: 0, cols: i.item_per_row_mobile || 1, options: { gapHorizontal: i.margin_mobile.size || 0, gapVertical: i.margin_mobile.size || 0 } },
125                    ],
126                    caption: i.hover_effect || "zoom",
127                    displayType: "sequentially",
128                    displayTypeSpeed: 80,
129                });
130            }, 500),
131                "none" !== i.popup &&
132                    n.lightGallery({
133                        pager: !0,
134                        addClass: "xpro-gallery-popup-style-" + i.popup,
135                        selector: "[data-xpro-lightbox]",
136                        thumbnail: "yes" === i.thumbnail,
137                        exThumbImage: "data-src",
138                        thumbWidth: 130,
139                        thumbMargin: 15,
140                        closable: !1,
141                        showThumbByDefault: "yes" === i.thumbnail_by_default,
142                        thumbContHeight: 150,
143                        subHtmlSelectorRelative: !0,
144                        hideBarsDelay: 99999999,
145                        share: "yes" === i.share,
146                        download: "yes" === i.download,
147                    });
148            let l = t.find(".xpro-filter-dropdown-tablet,.xpro-filter-dropdown-mobile"),
149                s = t.find('[data-filter="' + a + '"]'),
150                p = l.find("li.cbp-filter-item-active").text();
151            l.find(".xpro-select-content").text(p || s.text()),
152                l.on("click", function () {
153                    e(this).toggleClass("active");
154                }),
155                l.find(".cbp-l-filters-button > li").on("click", function () {
156                    l.find(".xpro-select-content").text(e(this).text());
157                });
158        },
159        SimplePortfolio: function (t) {
160            let i = o.getElementSettings(t),
161                n = t.find(".xpro-elementor-gallery-wrapper"),
162                r = t.find(".xpro-elementor-gallery-filter > ul"),
163                a = r.attr("data-default-filter");
164            u(),
165                setTimeout(function () {
166                    n.cubeportfolio({
167                        filters: r,
168                        layoutMode: "grid",
169                        defaultFilter: a,
170                        animationType: i.filter_animation,
171                        gridAdjustment: "responsive",
172                        lightboxGallery: !1,
173                        mediaQueries: [
174                            { width: elementorFrontend.config.breakpoints.lg, cols: i.item_per_row || 3, options: { gapHorizontal: i.margin.size || 0, gapVertical: i.margin.size || 0 } },
175                            { width: elementorFrontend.config.breakpoints.md, cols: i.item_per_row_tablet || 2, options: { gapHorizontal: i.margin_tablet.size || 0, gapVertical: i.margin_tablet.size || 0 } },
176                            { width: 0, cols: i.item_per_row_mobile || 1, options: { gapHorizontal: i.margin_mobile.size || 0, gapVertical: i.margin_mobile.size || 0 } },
177                        ],
178                        caption: i.hover_effect || "zoom",
179                        displayType: "sequentially",
180                        displayTypeSpeed: 80,
181                    });
182                }, 500);
183            let l = t.find(".xpro-filter-dropdown-tablet,.xpro-filter-dropdown-mobile"),
184                s = t.find('[data-filter="' + a + '"]'),
185                p = l.find("li.cbp-filter-item-active").text();
186            l.find(".xpro-select-content").text(p || s.text()),
187                l.on("click", function () {
188                    e(this).toggleClass("active");
189                }),
190                l.find(".cbp-l-filters-button > li").on("click", function () {
191                    l.find(".xpro-select-content").text(e(this).text());
192                });
193            var d = null;
194            let c = new TimelineLite();
195            function f(o, i) {
196                let n = e(o).data("title");
197                "false" !== (d = e(o).data("src-preview")) &&
198                    (e(o).siblings().removeClass("xpro-preview-demo-item-open"),
199                    e(o).addClass("xpro-preview-demo-item-open"),
200                    t.find(".xpro-preview .xpro-preview-prev-demo,.xpro-preview .xpro-preview-next-demo").removeClass("xpro-preview-inactive"),
201                    e(o).prev("[data-src-preview]").length <= 0 && t.find(".xpro-preview .xpro-preview-prev-demo").addClass("xpro-preview-inactive"),
202                    e(o).next("[data-src-preview]").length <= 0 && t.find(".xpro-preview .xpro-preview-next-demo").addClass("xpro-preview-inactive"),
203                    t.find(".xpro-preview .xpro-preview-header-info").html(""),
204                    n && t.find(".xpro-preview .xpro-preview-header-info").append(`<div class="xpro-preview-demo-name">${n}</div>`),
205                    t.find(".xpro-preview .xpro-preview-iframe").attr("src", d),
206                    e("body").addClass("xpro-preview-active"),
207                    t.find(".xpro-preview").addClass("active"));
208            }
209            function u() {
210                t.find(".xpro-preview-demo-item").removeClass("xpro-preview-demo-item-open"),
211                    t.find(".xpro-preview .xpro-preview-iframe").removeAttr("src"),
212                    e("body").removeClass("xpro-preview-active"),
213                    t.find(".xpro-preview").removeClass("active");
214            }
215            function m() {
216                "1" === i.popup_animation && c.to(t.find(".xpro-portfolio-loader-style-1 li"), { duration: 0.4, scaleX: 1, transformOrigin: "bottom right" }),
217                    "2" === i.popup_animation && c.to(t.find(".xpro-portfolio-loader-style-2 li"), { duration: 0.4, scaleX: 1, transformOrigin: "bottom left" }),
218                    setTimeout(function () {
219                        "1" === i.popup_animation && c.to(t.find(".xpro-portfolio-loader-style-1 li"), { duration: 0.4, scaleX: 0, transformOrigin: "bottom left" }),
220                            "2" === i.popup_animation && c.to(t.find(".xpro-portfolio-loader-style-2 li"), { duration: 0.4, scaleX: 0, transformOrigin: "bottom right" });
221                    }, 2500);
222            }
223            c.seek(0).clear(),
224                (c = new TimelineLite()),
225                t.find(".xpro-preview-iframe").on("load", function () {
226                    e(this).addClass("loaded"), e(this).contents().find("html").attr("id", "xpro-portfolio-html-main");
227                }),
228                t.on("click", ".xpro-preview-type-popup", function (t) {
229                    e(t.target).is(".xpro-preview-demo-import-open") || (m(), f(this, t));
230                }),
231                t.on("click", ".xpro-preview-type-link", function (t) {
232                    let o = "";
233                    return "" !== (o = e(this).data("src-preview")) && window.open(o, i.preview_target), !1;
234                }),
235                t.on("click", ".xpro-preview-type-none", function (e) {
236                    return !1;
237                }),
238                t.on("click", ".xpro-preview-prev-demo", function (e) {
239                    var o = t.find(".xpro-preview-demo-item-open").prev("[data-src-preview]");
240                    o.length > 0 && (m(), f(o, e)), e.preventDefault();
241                }),
242                t.on("click", ".xpro-preview-next-demo", function (e) {
243                    var o = t.find(".xpro-preview-demo-item-open").next("[data-src-preview]");
244                    o.length > 0 && (m(), f(o, e)), e.preventDefault();
245                }),
246                t.on("click", ".xpro-preview-close", function (e) {
247                    e.preventDefault(),
248                        e.stopPropagation(),
249                        m(),
250                        setTimeout(function () {
251                            u();
252                        }, 2e3);
253                });
254        },
255        ProgressBar: function (t) {
256            let i = o.getElementSettings(t),
257                n = t.find(".xpro-progress-count"),
258                r = t.find(".xpro-progress-track");
259            t.find(".xpro-progress-bar").waypoint(
260                function () {
261                    "yes" === i.show_count &&
262                        n.animate(
263                            { Counter: i.value },
264                            {
265                                duration: 1e3 * i.duration.size || 3e3,
266                                easing: "swing",
267                                step: function (t) {
268                                    e(this).text(Math.ceil(t)),
269                                        e(this)
270                                            .parents(".xpro-progress-counter")
271                                            .find(".xpro-progress-count-less")
272                                            .text(100 - Math.ceil(t));
273                                },
274                            }
275                        ),
276                        r.animate({ width: i.value + "%" }, 1e3 * i.duration.size || 3e3);
277                },
278                { offset: "100%" }
279            );
280        },
281        PieChart: function (t) {
282            let i = o.getElementSettings(t);
283            t.find(".xpro-pie-chart").easyPieChart({
284                scaleColor: "transparent",
285                lineWidth: i.chart_bar_size.size,
286                lineCap: i.layout,
287                barColor: function () {
288                    var e = this.renderer.getCtx(),
289                        t = this.renderer.getCanvas(),
290                        o = e.createLinearGradient(0, 0, t.width, 0);
291                    return o.addColorStop(0, i.bar_color_1 || "#6ec1e4"), o.addColorStop(1, i.bar_color_2 || "#6ec1e4"), o;
292                },
293                trackColor: i.track_color || "#f5f5f5",
294                size: i.chart_size.size,
295                rotate: 0,
296                animate: 1e3 * i.duration.size || 2e3,
297            }),
298            t.find(".xpro-pie-chart").waypoint(
299                    function () {
300                        t.find(".xpro-pie-chart-count").animate(
301                            { Counter: i.value },
302                            {
303                                duration: 1e3 * i.duration.size || 2e3,
304                                easing: "swing",
305                                step: function (t) {
306                                    e(this).text(Math.ceil(t) + "%");
307                                },
308                            }
309                        ),
310                            t.find(".xpro-pie-chart").data("easyPieChart").update(i.value);
311                    },
312                    { offset: "100%" }
313                );
314        },
315
316        LineChart: function (t) {
317            const $canvas = t.find('.xpro-line-chart-js');
318            if (!$canvas.length) {
319                return;
320            }
321            const canvas = $canvas[0];
322            if (canvas.xproChart instanceof Chart) {
323                canvas.xproChart.destroy();
324            }
325            const ctx = canvas.getContext('2d');
326            if (!ctx) {
327                return;
328            }
329            let settings = $canvas.data('settings');
330            if (typeof settings === 'string') {
331                try {
332                    settings = JSON.parse(settings);
333                } catch (error) {
334                    console.error('Line Chart JSON Parse Error:', error);
335                    return;
336                }
337            }
338            if (
339                !settings ||
340                !settings.data ||
341                !settings.data.datasets ||
342                settings.data.datasets.length === 0
343            ) {
344                console.warn('No data available for line chart');
345                return;
346            }
347            try {
348                canvas.xproChart = new Chart(ctx, settings);
349            } catch (error) {
350                console.error('Line Chart Creation Error:', error);
351            }
352        },
353
354        Counter: function (t) {
355            let i = o.getElementSettings(t);
356            let r = "";
357            let a = t.find(".xpro-counter-lottie-animation");
358            i.lottie_url ? (r = i.lottie_url.url) : i.svg_upload && (r = i.svg_upload.url),
359            lottie.loadAnimation({ container: a[0], renderer: "svg", loop: i.loop || !0, autoplay: i.autoplay || !0, path: r });
360            "yes" === i.animate_counter &&
361                new Waypoint({
362                    element: t.find(".xpro-counter-wrapper")[0],
363                    handler: function () {
364                        t.find(".xpro-counter-item > .value").animate(
365                            { Counter: i.value },
366                            {
367                                duration: 1e3 * i.duration.size || 2e3,
368                                easing: "swing",
369                                step: function (t) {
370                                    e(this).text(Math.ceil(t));
371                                },
372                            }
373                        ),
374                            this.destroy();
375                    },
376                    offset: "100%",
377                });
378        },
379        SocialChat: function (e) {
380            let t = o.getElementSettings(e);
381            let widget = e.find('.xpro-social-chat-widget');
382            let mainBtn = e.find('.xpro-social-chat-main-btn');
383            let channels = e.find('.xpro-social-chat-channel');
384             const triggerType = t.xpro_fab_trigger || 'click';
385             console.log('Trigger Type:', triggerType);
386             console.log('t.xpro_fab_trigger:', t.xpro_fab_trigger);
387            if (triggerType === 'click') {
388                mainBtn.on('click', function (event) {
389                    event.preventDefault();
390                    widget.toggleClass('active');
391                });
392            }
393            if (triggerType === 'hover') {
394                widget.on('mouseenter', function () {
395                    widget.addClass('active');
396                });
397                widget.on('mouseleave', function () {
398                    widget.removeClass('active');
399                });
400            }
401            jQuery(document).on('click', function (event) {
402                if (!widget.is(event.target) && widget.has(event.target).length === 0) {
403                    widget.removeClass('active');
404                }
405            });
406        },
407        HorizontalMenu: function (t) {
408            let i = o.getElementSettings(t),
409                n = t.find(".xpro-elementor-horizontal-menu-toggler"),
410                r = t.find(".xpro-elementor-horizontal-menu-close"),
411                a = t.find(".xpro-elementor-horizontal-menu-overlay"),
412                l = t.find(".dropdown > a > .xpro-dropdown-menu-toggle");
413                e(".xpro-elementor-nav-link").on("click", function (t) {
414                    r.click();
415                });
416            if (
417                (t.find(".dropdown li").each(function (t) {
418                    if (e("ul", this).length) {
419                        let o = e("ul:first", this);
420                        o.offset().left + o.width() <= e(window).width() ? e(this).removeClass("xpro-edge") : e(this).addClass("xpro-edge");
421                    }
422                }),
423                "yes" === i.one_page_navigation)
424            ) {
425                function s(o = !1) {
426                    var n = e(document).scrollTop(),
427                        r = i.scroll_offset.size || 100;
428                    t.find(".xpro-elementor-horizontal-navbar-nav li").each(function () {
429                        let i = e(this),
430                            a = i.find(".xpro-elementor-nav-link").attr("href"),
431                            l = a.indexOf("#");
432                        if (-1 !== l) {
433                            let s = e(a.substring(l));
434                            o && s.length && t.find(".xpro-elementor-horizontal-navbar-nav li:not(:first-child)").removeClass("current_page_item"),
435                                s.length && s.position().top - r <= n && s.position().top + s.height() > n && (t.find(".xpro-elementor-horizontal-navbar-nav li").removeClass("current_page_item"), i.addClass("current_page_item"));
436                        }
437                    });
438                }
439                e(".xpro-elementor-nav-link").on("click", function (t) {
440                    r.click();
441                    let o = e(this).attr("href"),
442                        n = o.indexOf("#");
443                    if (-1 !== n) {
444                        let r = e(o.substring(n));
445                        if (r.length) {
446                            var a = this.hash;
447                            t.stopPropagation(),
448                                e("html, body").animate({ scrollTop: e(r).offset().top - (i.scroll_offset.size || 100) + 20 }, 500, function () {
449                                    window.location.hash = a;
450                                });
451                        }
452                    }
453                }),
454                    s(!0),
455                    e(document).on("scroll", function () {
456                        s();
457                    });
458            }
459            if ("none" !== i.responsive_show) {
460                let p = "tablet" === i.responsive_show ? 1025 : 768;
461                n.on("click", function (e) {
462                    e.preventDefault(), t.find(".xpro-elementor-horizontal-navbar-wrapper").toggleClass("active"), t.find(".xpro-elementor-horizontal-menu-overlay").toggleClass("active");
463                }),
464                    r.on("click", function (e) {
465                        e.preventDefault(), t.find(".xpro-elementor-horizontal-navbar-wrapper").removeClass("active"), t.find(".xpro-elementor-horizontal-menu-overlay").removeClass("active");
466                    }),
467                    a.on("click", function (o) {
468                        o.preventDefault(), t.find(".xpro-elementor-horizontal-navbar-wrapper").removeClass("active"), e(this).removeClass("active");
469                    }),
470                    l.on("click", function (t) {
471                        e(window).width() < p && (t.preventDefault(), t.stopPropagation(), e(this).parent().toggleClass("active"), e(this).parent().next(".xpro-elementor-dropdown-menu").slideToggle());
472                    }),
473                    e(window).resize(function () {
474                        e(window).width() > p ? t.find(".xpro-elementor-dropdown-menu").show() : t.find(".xpro-elementor-dropdown-menu").hide(),
475                            t.find(".xpro-elementor-horizontal-navbar-wrapper").removeClass("active"),
476                            t.find(".xpro-elementor-horizontal-menu
476-overlay").removeClass("active"),
477                            t.find(".dropdown > a").removeClass("active");
478                    });
479            }
480        },
481        Team: function (t) {
482            let i = o.getElementSettings(t);
483            if (
484                ("3" === i.layout &&
485                    t.find(".xpro-team-layout-3").hover(
486                        function () {
487                            e(this).find(".xpro-team-description").slideDown(200);
488                        },
489                        function () {
490                            e(this).find(".xpro-team-description").slideUp(200);
491                        }
492                    ),
493                "7" === i.layout &&
494                    t.find(".xpro-team-layout-7").hover(
495                        function () {
496                            e(this).find(".xpro-team-description").slideDown(200), e(this).find(".xpro-team-social-list").slideDown(250);
497                        },
498                        function () {
499                            e(this).find(".xpro-team-description").slideUp(200), e(this).find(".xpro-team-social-list").slideUp(250);
500                        }
501                    ),
502                "8" === i.layout &&
503                    t.find(".xpro-team-layout-8").hover(
504                        function () {
505                            e(this).find(".xpro-team-content").slideDown(200);
506                        },
507                        function () {
508                            e(this).find(".xpro-team-content").slideUp(200);
509                        }
510                    ),
511                "9" === i.layout)
512            ) {
513                let n = t.find(".xpro-team-image > img").height(),
514                    r = t.find(".xpro-team-inner-content").height();
515                t.find(".xpro-team-inner-content").width(n), t.find(".xpro-team-inner-content").css("left", r + "px");
516            }
517            "14" === i.layout &&
518                t.find(".xpro-team-layout-14").hover(
519                    function () {
520                        e(this).find(".xpro-team-description").slideDown(200), e(this).find(".xpro-team-social-list").slideDown(250);
521                    },
522                    function () {
523                        e(this).find(".xpro-team-description").slideUp(200), e(this).find(".xpro-team-social-list").slideUp(250);
524                    }
525                );
526        },
527        BeforeAfter: function (e) {
528            let t = o.getElementSettings(e);
529            e.find(".xpro-compare-item").XproCompare({
530                default_offset_pct: t.visible_ratio.size / 100 || 0.5,
531                orientation: t.orientation,
532                is_wiggle: "yes" === t.wiggle,
533                wiggle_timeout: t.wiggle ? 1e3 * t.wiggle_timeout.size : 1e3,
534                move_on_hover: "yes" === t.mouse_move,
535            });
536        },
537        ContentToggle: function (t) {
538            o.getElementSettings(t),
539                t.find(".xpro-content-toggle-button").on("click", function (t) {
540                    t.preventDefault(), e(this).parents(".xpro-content-toggle-button-wrapper").toggleClass("active");
541                });
542        },
543        NewsTicker: function (t) {
544            let i = o.getElementSettings(t),
545                n = t.find(".xpro-news-ticker"),
546                r;
547                
548            e(".e-route-panel-editor-content").length && (r = ".elementor-preview-responsive-wrapper"),
549                n.owlCarousel({
550                    items: 1,
551                    smartSpeed: 1e3,
552                    loop: !0,
553                    nav: !1,
554                    dots: !1,
555                    mouseDrag: !1,
556                    touchDrag: !1,
557                    rtl: "rtl" === i.direction,
558                    responsiveBaseElement: r,
559                    autoplay: "yes" === i.autoplay,
560                    autoplayTimeout: "yes" === i.autoplay ? 1e3 * i.autoplay_timeout.size : 3e3,
561                    animateOut: "fade" === i.effect && "fadeOut",
562                    animateIn: "fade" === i.effect && "fadeIn",
563                }),
564                t.find(".xpro-news-ticker-next").click(function () {
565                    n.trigger("next.owl.carousel", [1e3]),
566                        t.find(".xpro-news-ticker-pause").find("i").removeClass("fa-pause"),
567                        t.find(".xpro-news-ticker-pause").find("i").addClass("fa-play"),
568                        t.find(".xpro-news-ticker-pause").addClass("active"),
569                        n.trigger("stop.owl.autoplay");
570                }),
571                t.find(".xpro-news-ticker-prev").click(function () {
572                    n.trigger("prev.owl.carousel", [1e3]),
573                        t.find(".xpro-news-ticker-pause").find("i").removeClass("fa-pause"),
574                        t.find(".xpro-news-ticker-pause").find("i").addClass("fa-play"),
575                        t.find(".xpro-news-ticker-pause").addClass("active"),
576                        n.trigger("stop.owl.autoplay");
577                }),
578                t.find(".xpro-news-ticker-close").click(function () {
579                    t.find(".xpro-news-ticker-wrapper").fadeOut("slow");
580                });
581        },
582        Table: function (t) {
583            let o = t.find(".xpro-table-head-column-cell");
584            t.find(".xpro-table-body-row").each(function (t, i) {
585                e(i)
586                    .find(".xpro-table-body-row-cell")
587                    .each(function (t, i) {
588                        e(i).prev().prop("colspan") > 1 && 0 !== e(i).prop("colspan") && (t += e(i).prev().prop("colspan") - 1), e(i).prepend('<div class="xpro-table-head-column-cell">' + o.eq(t).html() + "</div>");
589                    });
590            });
591        },
592        IconBox: function (e) {
593            let t = o.getElementSettings(e),
594                i = e.find(".elementor-widget-xpro-icon-box"),
595                n = e.find(".xpro-box-icon-item"),
596                r = "",
597                a = e.find("#xpro-icon-box-lottie");
598            "" !== t.hover_animation &&
599                i.hover(
600                    function () {
601                        n.addClass("animated " + t.icon_hover_animation);
602                    },
603                    function () {
604                        n.removeClass("animated " + t.icon_hover_animation);
605                    }
606                ),
607                t.lottie_url ? (r = t.lottie_url.url) : t.svg_upload && (r = t.svg_upload.url),
608                lottie.loadAnimation({ container: a[0], renderer: "svg", loop: t.loop || !0, autoplay: t.autoplay || !0, path: r });
609        },
610        PostGrid: function (e) {
611            let t = o.getElementSettings(e),
612                i = e.find(".xpro-post-grid-main");
613            e.find(".xpro-post-grid-item"),
614                i.cubeportfolio({
615                    layoutMode: "grid",
616                    gridAdjustment: "responsive",
617                    lightboxGallery: !1,
618                    mediaQueries: [
619                        { width: elementorFrontend.config.breakpoints.lg, cols: t.column_grid || 3, options: { gapHorizontal: t.space_between.size, gapVertical: t.space_between.size } },
620                        { width: elementorFrontend.config.breakpoints.md, cols: t.column_grid_tablet || 2, options: { gapHorizontal: t.space_between_tablet.size || 0, gapVertical: t.space_between_tablet.size || 0 } },
621                        { width: 0, cols: t.column_grid_mobile || 1, options: { gapHorizontal: t.space_between_mobile.size || 0, gapVertical: t.space_between_mobile.size || 0 } },
622                    ],
623                    displayType: "default",
624                    displayTypeSpeed: 0,
625                });
626        },
627        HotSpot: function (t) {
628           let i= o.getElementSettings(t);
629                t.find(".xpro-post-grid-main"),
630                t.find(".xpro-hotspot-type-click").on("click", function (t) {
631                    t.preventDefault(), e(this).find(".xpro-hotspot-tooltip-text").toggleClass("active");
632                });
633                function showTooltipsSequentially() {
634                var tooltips = t.find(".xpro-hotspot-animations");
635                var index = 0;
636                var duration =  3 * 1000;
637                tooltips.css({ opacity: 0 });
638                function showNextTooltip() {
639                    tooltips.stop(true, true).css({ opacity: 0 });
640                    var currentTooltip = jQuery(tooltips[index]);
641                        currentTooltip.stop(true, true).animate({ opacity: 1 }, 500, function () {
642                                setTimeout(function () {
643                                    currentTooltip.animate({ opacity: 0 }, 500, function () {
644                                        index = (index + 1) % tooltips.length;
645                                        showNextTooltip();
646                                    });
647                                }, duration);
648                            });
649                        }
650                    showNextTooltip();
651                }
652                setTimeout(showTooltipsSequentially, 500);
653        },
654        ImageScroller: function (e) {
655            let t = o.getElementSettings(e),
656                i = e.find(".xpro-scroll-image-inner"),
657                n = e.find(".xpro-image-scroll-img > img"),
658                r = 0;
659            "mouse-hover" === t.trigger_type &&
660                i.imagesLoaded(function () {
661                    (r = "vertical" === t.direction_type ? n.height() - i.height() : n.width() - i.width()),
662                        "yes" === t.reverse
663                            ? (n.css("transform", ("vertical" === t.direction_type ? "translateY" : "translateX") + "( -" + r + "px)"),
664                              i.hover(
665                                  function () {
666                                      n.css("transform", ("vertical" === t.direction_type ? "translateY" : "translateX") + "(0px)");
667                                  },
668                                  function () {
669                                      n.css("transform", ("vertical" === t.direction_type ? "translateY" : "translateX") + "( -" + r + "px)");
670                                  }
671                              ))
672                            : i.hover(
673                                  function () {
674                                      n.css("transform", ("vertical" === t.direction_type ? "translateY" : "translateX") + "( -" + r + "px)");
675                                  },
676                                  function () {
677                                      n.css("transform", ("vertical" === t.direction_type ? "translateY" : "translateX") + "(0px)");
678                                  }
679                              );
680                });
681        },
682        HorizontalTimeline: function (t) {
683            let i = o.getElementSettings(t),
684                n = t.find(".xpro-horizontal-timeline"),
685                r,
686                a = 767;
687            function l() {
688                if ("yes" === i.reverse && e(window).width() >= a) {
689                    let o = t.find(".xpro-horiz-equal-height > div"),
690                        n = 0;
691                    o.each(function () {
692                        n = Math.max(n, e(this).outerHeight());
693                    }),
694                        o.parent().css({ minHeight: n + "px" });
695                } else {
696                    let r = t.find(".xpro-horizontal-timeline-content > div"),
697                        l = 0;
698                    r.each(function () {
699                        l = Math.max(l, e(this).outerHeight());
700                    }),
701                        r.parent().css({ minHeight: l + "px" });
702                    let s = t.find(".xpro-horizontal-timeline-date > div"),
703                        p = 0;
704                    s.each(function () {
705                        p = Math.max(p, e(this).outerHeight());
706                    }),
707                        s.parent().css({ minHeight: p + "px" });
708                }
709            }
710            e(".e-route-panel-editor-content").length && (r = ".elementor-preview-responsive-wrapper"),
711                e(".elementor-editor-active").length && (a = 750),
712                n.owlCarousel({
713                    loop: "yes" === i.loop,
714                    center: "yes" === i.center,
715                    nav: "yes" === i.nav,
716                    navText: ["", ""],
717                    dots: "yes" === i.dots,
718                    mouseDrag: "yes" === i.mouse_drag,
719                    rtl: "yes" === i.rtl,
720                    touchDrag: !0,
721                    autoHeight: !1,
722                    autoWidth: "yes" === i.custom_width,
723                    responsiveBaseElement: r,
724                    autoplay: "yes" === i.autoplay,
725                    autoplayTimeout: "yes" === i.autoplay ? 1e3 * i.autoplay_timeout.size : 3e3,
726                    autoplayHoverPause: !0,
727                    smartSpeed: 500,
728                    responsive: { 0: { items: i.item_per_row_mobile || 1 }, 768: { items: i.item_per_row_tablet || 1 }, 1024: { items: i.item_per_row || 2 } },
729                }),
730                setTimeout(function () {
731                    l();
732                }, 300),
733                e(window).on("resize", function () {
734                    setTimeout(function () {
735                        l();
736                    }, 500);
737                });
738        },
739        ContactForm: function (t) {
740            let i = o.getElementSettings(t),
741                n = t.find(".xpro-contact-form"),
742                r = (t.find(".xpro-contact-form-submit-button"), t.find(".xpro-contact-form-submit-button > i")),
743                a = !1,
744                l = n.attr("action");
745                function safe_tags(str) {
746                    return str.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;') ;
747                }
748            n.on("submit", function (o) {
749                o.preventDefault(), r.show();
750                let s = n.serializeArray(),
751                    p = [],
752                    d = !0,
753                    c = null,
754                    f = "",
755                    u = 0;
756                if (
757                    (i.recaptcha && (a = t.find(".g-recaptcha-response").val()),
758                    e.each(s, function (e, o) {
759                        "" !== o.value && "g-recaptcha-response" !== o.name && ((p[u] = { name: t.find("label[for=" + o.name.replaceAll("[]", "") + "]").text() || "", value: o.value }), u++);
760                    }),
761                    p.length ? (f = p.map((e) => Object.entries(e).reduce((e, t, o) => `${e}${o > 0 ? "&&" : ""}${t[0]}=${t[1]}`, ""))) : (d = !1),
762                    t.find('.xpro-contact-form-require [required="required"]').each(function (t) {
763                        "" === e(this).val() && (d = !1);
764                    }),
765                    !d)
766                ) {
767                    (c = '<div class="xpro-alert xpro-alert-danger">' + safe_tags(i.required_field_message) + "</div>"), t.find(".xpro-contact-form-message").hide().html(c).slideDown(), r.hide();
768                    return;
769                }
770                if (i.recaptcha && !a) {
771                    (c = '<div class="xpro-alert xpro-alert-danger">' + safe_tags(i.captcha_message) + "</div>"), t.find(".xpro-contact-form-message").hide().html(c).slideDown(), r.hide();
772                    return;
773                }
774                t.find(".xpro-contact-form-message").slideUp(),
775                    e.ajax({ method: "POST", url: l, data: { postData: JSON.stringify(f), formName: i.form_name, formSubject: i.form_subject, captcha: a } }).done(function (e) {
776                        e.success
777                            ? ((c = '<div class="xpro-alert xpro-alert-success">' + safe_tags(i.success_message) + "</div>"), t.find(".xpro-contact-form-message").hide().html(c).slideDown())
778                            : ((c = '<div class="xpro-alert xpro-alert-danger">' + safe_tags(i.error_message) + "</div>"), t.find(".xpro-contact-form-message").hide().html(c).slideDown()),
779                            r.hide(),
780                            i.recaptcha && grecaptcha.reset();
781                    });
782            });
783        },
784        Search: function (e) {
785            let t = o.getElementSettings(e);
786            ("4" === t.layout || "5" === t.layout) &&
787                (e.find(".xpro-elementor-search-button").on("click", function (t) {
788                    t.preventDefault(), t.stopPropagation(), e.find(".xpro-elementor-search-layout-4 .xpro-elementor-search-inner").fadeIn(400), e.find(".xpro-elementor-search-layout-5 .xpro-elementor-search-inner").slideDown(400);
789                }),
790                e.find(".xpro-elementor-search-button-close").on("click", function (t) {
791                    t.preventDefault(), t.stopPropagation(), e.find(".xpro-elementor-search-layout-4 .xpro-elementor-search-inner").fadeOut(400), e.find(".xpro-elementor-search-layout-5 .xpro-elementor-search-inner").slideUp(400);
792                }));
793        },
794        CourseGrid: function (e) {
795            let t = o.getElementSettings(e),
796                i = e.find(".xpro-post-grid-main");
797            e.find(".xpro-post-grid-item"),
798                i.cubeportfolio({
799                    layoutMode: "grid",
800                    gridAdjustment: "responsive",
801                    mediaQueries: [
802                        { width: elementorFrontend.config.breakpoints.lg, cols: t.column_grid || 3, options: { gapHorizontal: t.space_between.size, gapVertical: t.space_between.size } },
803                        { width: elementorFrontend.config.breakpoints.md, cols: t.column_grid_tablet || 2, options: { gapHorizontal: t.space_between_tablet.size || 0, gapVertical: t.space_between_tablet.size || 0 } },
804                        { width: 0, cols: t.column_grid_mobile || 1, options: { gapHorizontal: t.space_between_mobile.size || 0, gapVertical: t.space_between_mobile.size || 0 } },
805                    ],
806                    displayType: "default",
807                    displayTypeSpeed: 0,
808                });
809        },
810        ProductGrid: function (t) {
811            let i = o.getElementSettings(t),
812                n = t.find(".xpro-woo-product-grid-main");
813            t.find(".xpro-woo-product-grid-item"),
814                t.find(".xpro-hv-qv-btn").click(function (o) {
815                    o.preventDefault();
816                    let i = e(this).attr("id"),
817                        n = { action: "load_quick_view_product_data", nonce: XproElementorAddons.nonce, id: i };
818                    e.ajax({
819                        url: XproElementorAddons.ajax_url,
820                        type: "post",
821                        data: n,
822                        dataType: "html",
823                        cache: !1,
824                        beforeSend: function () {
825                            t.find(".xpro-qv-loader-wrapper").css("display", "unset"), t.find(".xpro-qv-popup-wrapper").css("display", "none");
826                        },
827                        complete: function () {
828                            t.find(".xpro-qv-loader-wrapper").css("display", "none"), t.find(".xpro-qv-popup-wrapper").css("display", "unset"), t.find(".xpro-qv-popup-overlay").css({ opacity: "1", visibility: "visible" });
829                        },
830                        success: function (o) {
831                            t.find("#xpro_elementor_fetch_qv_data").html(o),
832                                e(".xpro-woo-qv-content-sec .variations_form").wc_variation_form().find(".variations select:eq(0)").trigger("change"),
833                                e(".xpro-woo-qv-content-sec .variations_form").trigger("wc_variation_form");
834                        },
835                    });
836                }),
837                t.on("click", ".xpro-woo-qv-cross", function (e) {
838                    e.preventDefault(), t.find(".xpro-qv-popup-wrapper").css("display", "none"), t.find(".xpro-qv-popup-overlay").css({ opacity: "0", visibility: "hidden" });
839                }),
840                t.on("click", ".xpro-qv-popup-overlay", function (e) {
841                    e.preventDefault(), t.find(".xpro-qv-popup-wrapper").css("display", "none"), t.find(".xpro-qv-popup-overlay").css({ opacity: "0", visibility: "hidden" });
842                }),
843                e(document).keyup(function (e) {
844                    27 === e.keyCode && (t.find(".xpro-qv-popup-wrapper").css("display", "none"), t.find(".xpro-qv-popup-overlay").css({ opacity: "0", visibility: "hidden" }));
845                }),
846                t.on("click", "#xpro_elementor_fetch_qv_data .single_add_to_cart_button:not(.disabled)", function (o) {
847                    if ((o.preventDefault(), "" !== e(this).parents("form").attr("action"))) return (window.location.href = e(this).parents("form").attr("action")), !1;
848                    let i = e(this).closest("form");
849                    if (!i[0].checkValidity()) return i[0].reportValidity(), !1;
850                    let n = e(this),
851                        r = e(this).val();
852                    if ((e('input[name="variation_id"]').val(), e('input[name="quantity"]').val(), t.find(".woocommerce-grouped-product-list-item").length)) {
853                        let a = e("input.qty"),
854                            l = [];
855                        e.each(a, function (t, o) {
856                            let i = e(this).attr("name");
857                            (i = (i = i.replace("quantity[", "")).replace("]", "")), (i = parseInt(i)), e(this).val() && (l[i] = e(this).val());
858                        });
859                    }
860                    let s = i.serialize();
861                    n.is(".single_add_to_cart_button") &&
862                        (n.removeClass("added"),
863                        n.addClass("loading"),
864                        e.ajax({
865                            url: XproElementorAddons.ajax_url,
866                            type: "POST",
867                            data: "action=add_cart_single_product_ajax&product_id=" + r + "&nonce=" + XproElementorAddons.nonce + "&" + s,
868                            success: function (t) {
869                                e(document.body).trigger("wc_fragment_refresh"), n.removeClass("loading"), n.addClass("added");
870                            },
871                        }));
872                }),
873                n.cubeportfolio({
874                    layoutMode: "grid",
875                    gridAdjustment: "responsive",
876                    mediaQueries: [
877                        { width: elementorFrontend.config.breakpoints.lg, cols: i.column_grid || 3, options: { gapHorizontal: i.space_between.size, gapVertical: i.space_between.size } },
878                        { width: elementorFrontend.config.breakpoints.md, cols: i.column_grid_tablet || 2, options: { gapHorizontal: i.space_between_tablet.size || 0, gapVertical: i.space_between_tablet.size || 0 } },
879                        { width: 0, cols: i.column_grid_mobile || 1, options: { gapHorizontal: i.space_between_mobile.size || 0, gapVertical: i.space_between_mobile.size || 0 } },
880                    ],
881                    displayType: "default",
882                    displayTypeSpeed: 0,
883                });
884        },
885        HeroSlider: function (t) {
886            o.getElementSettings(t);
887            var i = t.find(".xpro-hero-slider").data("xpro-hero-slider-setting");
888            new Swiper(t.find(".xpro-hero-slider")[0], {
889                parallax: !0,
890                speed: 100 * i.slide_speed,
891                spaceBetween: 0,
892                effect: i.slide_effect,
893                fadeEffect: { crossFade: !0 },
894                loop: i.loop,
895                autoplay: { enabled: i.autoplay, disableOnInteraction: !0, delay: i.autoplay_timeout ? 1e3 * i.autoplay_timeout : 3e3 },
896                pagination: { el: t.find(".swiper-pagination")[0], clickable: !0 },
897                navigation: { nextEl: t.find(".swiper-button-next")[0], prevEl: t.find(".swiper-button-prev")[0] },
898                allowTouchMove: i.mouse_drag,
899            }).on("slideChangeTransitionStart", function () {
900                var t = this;
901                e(t.slides[t.activeIndex])
902                    .find("[data-animation]")
903                    .each(function () {
904                        var o = e(this),
905                            i = "animated " + o.data("animation");
906                        o.addClass(i).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function () {
907                            o.removeClass(i);
908                        }),
909                            e(t.slides).removeClass("xpro-animation-init"),
910                            e(t.slides[t.activeIndex]).addClass("xpro-animation-init");
911                    });
912            });
913        },
914    };
915    e(window).on("elementor/frontend/init", o.init);
916})(jQuery, window.elementorFrontend);

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.