PageSourceSearch

https://www.promontoryclub.com/wp-content/plugins/xpro-elementor-addons/assets/js/xpro-widgets.js?ver=1.7.9

js promontoryclub.com collected 2026-09-26 02:26:19 UTC 57,866 bytes, 1,149 lines download raw bytes

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