PageSourceSearch

https://www.promontoryclub.com/wp-content/plugins/xpro-elementor-a…/assets/js/xpro-widgets.js?ver=1.4.24

js promontoryclub.com collected 2026-09-26 02:26:21 UTC 196,570 bytes, 3,878 lines download raw bytes

1!(function (e) {
2    "use strict";
3    let t = {
4        init: function () {
5            var o, i;
6            let r = {
7                "xpro-advance-gallery.default": t.AdvanceGallery,
8                "xpro-text-marquee.default": t.TextMarquee,
9                "xpro-advance-portfolio.default": t.AdvancePortfolio,
10                "xpro-carousel-gallery.default": t.CarouselGallery,
11                "xpro-carousel-portfolio.default": t.CarouselPortfolio,
12                "xpro-list-portfolio.default": t.ListPortfolio,
13                "xpro-animated-heading.default": t.AnimatedHeading,
14                "xpro-advance-tabs.default": t.AdvanceTabs,
15                "xpro-pricing-carousel.default": t.PricingCarousel,
16                "xpro-pricing-matrix.default": t.PricingMatrix,
17                "xpro-vertical-menu.default": t.VerticalMenu,
18                "xpro-hamburger.default": t.Hamburger,
19                "xpro-peel-card.default": t.PeelCard,
20                "xpro-scratch-card.default": t.ScratchCard,
21                "xpro-bar-chart.default": t.BarChart,
22                "xpro-donut-chart.default": t.DonutChart,
23                "xpro-polar-chart.default": t.PolarChart,
24                "xpro-radar-chart.default": t.RadarChart,
25                "xpro-dark-mode.default": t.DarkMode,
26                "xpro-woo-product-filters.default": t.WooFilters,
27                "xpro-product-view-360.default": t.ProductView360,
28                "xpro-slider.default": t.Slider,
29                "xpro-team-carousel.default": t.TeamCarousel,
30                "xpro-testimonial-carousel.default": t.TestimonialCarousel,
31                "xpro-logo-carousel.default": t.LogoCarousel,
32                "xpro-hover-card.default": t.HoverCard,
33                "xpro-advance-accordion.default": t.AdvanceAccordion,
34                "xpro-countdown.default": t.Countdown,
35                "xpro-post-carousel.default": t.PostCarousel,
36                "xpro-draw-svg.default": t.DrawSVG,
37                "xpro-modal-popup.default": t.ModalPopup,
38                "xpro-image-accordion.default": t.ImageAccordion,
39                "xpro-device-slider.default": t.DeviceSlider,
40                "xpro-google-map.default": t.GoogleMap,
41                "xpro-google-reviews.default": t.GoogleReviews,
42                "xpro-street-map.default": t.StreetMap,
43                "xpro-vertical-timeline.default": t.VerticalTimeline,
44                "xpro-unfold.default": t.Unfold,
45                "xpro-cookies.default": t.Cookies,
46                "xpro-alert-box.default": t.AlertBox,
47                "xpro-preloader.default": t.Preloader,
48                "xpro-video.default": t.Video,
49                "xpro-flip-box.default": t.FlipBox,
50                "xpro-mouse-cursor.default": t.MouseCursor,
51                "xpro-one-page-navigation.default": t.OnePageNavigation,
52                "xpro-ajax-live-search.default": t.AjaxSearch,
53                "xpro-source-code.default": t.SourceCode,
54                "xpro-image-magnify.default": t.ImageMagnify,
55                "xpro-instagram-feed.default": t.InstagramFeed,
56                "xpro-slide-anything.default": t.SlideAnything,
57                "xpro-scroll-to-top.default": t.ScrollToTop,
58                "xpro-split-slider.default": t.SplitSlider,
59                "xpro-audio-player.default": t.AudioPlayer,
60                "xpro-coupon-code.default": t.CouponCode,
61                "xpro-loop-builder.default": t.LoopBuilder,
62                "xpro-loop-carousel.default": t.LoopCarousel,
63                "xpro-mailchimp.default": t.MailChimp,
64                "xpro-mega-menu.default": t.MegaMenu,
65                "xpro-advanced-posts.default": t.AdvancedPosts,
66                "xpro-remote-arrows.default": t.RemoteArrows,
67                "xpro-video-gallery.default": t.VideoGallery,
68                "xpro-video-carousel.default": t.VideoCarousel,
69                "xpro-flip-book-3d.default": t.FlipBook3D,
70            };
71            e.each(r, function (e, t) {
72                elementorFrontend.hooks.addAction("frontend/element_ready/" + e, t);
73            }),
74                (o = e.fn.addClass),
75                (e.fn.addClass = function () {
76                    return o.apply(this, arguments), this.trigger("XproClassChanged"), this;
77                }),
78                (i = e.fn.removeClass),
79                (e.fn.removeClass = function () {
80                    return i.apply(this, arguments), this.trigger("XproClassChanged"), this;
81                }),
82                (e.fn.removeClassRegex = function (t) {
83                    return e(this).removeClass(function (e, o) {
84                        return o
85                            .split(/\s+/)
86                            .filter(function (e) {
87                                return t.test(e);
88                            })
89                            .join(" ");
90                    });
91                }),
92                e("[data-fancybox]").length &&
93                    e("[data-fancybox]").data().fancybox &&
94                    Fancybox.bind("[data-fancybox]", { Hash: !0, Thumbs: !1, Toolbar: !0 });
95        },
96        getElementSettings: function (e, o) {
97            var i = {},
98                r = e.data("model-cid");
99            if (elementorFrontend.isEditMode() && r) {
100                var a = elementorFrontend.config.elements.data[r],
101                    n = a.attributes.widgetType || a.attributes.elType,
102                    l = elementorFrontend.config.elements.keys[n];
103                l ||
104                    ((l = elementorFrontend.config.elements.keys[n] = []),
105                    jQuery.each(a.controls, function (e, t) {
106                        t.frontend_available && l.push(e);
107                    })),
108                    jQuery.each(a.getActiveControls(), function (e) {
109                        -1 !== l.indexOf(e) && (i[e] = a.attributes[e]);
110                    });
111            } else i = e.data("settings") || {};
112            return t.getItems(i, o);
113        },
114        getItems: function (e, t) {
115            if (t) {
116                var o = t.split("."),
117                    i = o.splice(0, 1);
118                if (!o.length) return e[i];
119                if (!e[i]) return;
120                return this.getItems(e[i], o.join("."));
121            }
122            return e;
123        },
124        AdvanceGallery: function (o) {
125            let i = t.getElementSettings(o),
126                r = o.find(".xpro-elementor-gallery-wrapper"),
127                a = o.find(".xpro-elementor-gallery-item"),
128                n = o.find(".xpro-elementor-gallery-filter > ul"),
129                l = o.find(".xpro-gallery-elementor-loadmore"),
130                s = o.find(".xpro-elementor-gallery-filter > ul").attr("data-default-filter"),
131                p = "masonry" === i.gallery_style ? "grid" : i.gallery_style;
132            function d() {
133                if (
134                    "none" !== i.popup &&
135                    (a.lightGallery({
136                        pager: !0,
137                        addClass: "xpro-gallery-popup-style-" + i.popup,
138                        selector: "[data-xpro-lightbox]",
139                        thumbnail: "yes" === i.thumbnail,
140                        exThumbImage: "data-src",
141                        thumbWidth: 130,
142                        thumbMargin: 15,
143                        closable: !1,
144                        showThumbByDefault: "yes" === i.thumbnail_by_default,
145                        thumbContHeight: 150,
146                        subHtmlSelectorRelative: !0,
147                        hideBarsDelay: 99999999,
148                        share: "yes" === i.share,
149                        download: "yes" === i.download,
150                    }),
151                    "3" === i.popup || "4" === i.popup)
152                ) {
153                    var t = null;
154                    a.on("onBeforeSlide.lg", function (o, r, n) {
155                        (t = a.data("lightGallery").$items.eq(n).attr("data-src")),
156                            "album" === i.gallery_type &&
157                                (t =
158                                    n > 0
159                                        ? e(this).find(".xpro-elementor-gallery-preview").eq(n).attr("data-src")
160                                        : e(this).find(".cbp-l-caption-alignCenter").data("src")),
161                            e(".lg-backdrop").addClass("xpro-popup-blur"),
162                            e(".lg-backdrop").css({ "background-image": "url(" + t + ")" });
163                    });
164                }
165            }
166            "simple" === i.gallery_type && (a = r),
167                setTimeout(function () {
168                    r.cubeportfolio({
169                        filters: n,
170                        layoutMode: p,
171                        defaultFilter: s,
172                        animationType: i.filter_animation,
173                        gridAdjustment: "responsive",
174                        lightboxGallery: !1,
175                        mediaQueries: [
176                            {
177                                width: elementorFrontend.config.breakpoints.lg,
178                                cols: i.item_per_row || 3,
179                                options: { gapHorizontal: i.margin.size || 0, gapVertical: i.margin.size || 0 },
180                            },
181                            {
182                                width: elementorFrontend.config.breakpoints.md,
183                                cols: i.item_per_row_tablet || 2,
184                                options: {
185                                    gapHorizontal: i.margin_tablet.size || 0,
186                                    gapVertical: i.margin_tablet.size || 0,
187                                },
188                            },
189                            {
190                                width: 0,
191                                cols: i.item_per_row_mobile || 1,
192                                options: {
193                                    gapHorizontal: i.margin_mobile.size || 0,
194                                    gapVertical: i.margin_mobile.size || 0,
195                                },
196                            },
197                        ],
198                        caption: i.hover_effect || "zoom",
199                        displayType: "sequentially",
200                        displayTypeSpeed: 80,
201                        plugins: {
202                            loadMore: {
203                                element: o.find(".cbp-l-loadMore-button"),
204                                action: i.load_more || "click",
205                                loadItems: i.item_on_load || 3,
206                            },
207                            sort: { element: o.find(".cbp-loadMore-block1") },
208                        },
209                    });
210                }, 500),
211                l.on("XproClassChanged", function () {
212                    a.data("lightGallery") &&
213                        "none" !== i.popup &&
214                        setTimeout(function () {
215                            a.data("lightGallery").destroy(!0), d();
216                        }, 1e3);
217                }),
218                d();
219            let c = o.find(".xpro-filter-dropdown-tablet,.xpro-filter-dropdown-mobile"),
220                u = o.find('[data-filter="' + s + '"]'),
221                m = c.find("li.cbp-filter-item-active").text();
222            c.find(".xpro-select-content").text(m || u.text()),
223                c.on("click", function () {
224                    e(this).toggleClass("active");
225                }),
226                c.find(".cbp-l-filters-button > li").on("click", function () {
227                    c.find(".xpro-select-content").text(e(this).text());
228                });
229        },
230        CarouselGallery: function (o) {
231            let i,
232                r = t.getElementSettings(o),
233                a = o.find(".xpro-elementor-carousel-gallery"),
234                n = o.find(".xpro-elementor-carousel-gallery-item");
235            if (
236                (e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
237                a.owlCarousel({
238                    loop: "yes" === r.loop,
239                    nav: "yes" === r.nav,
240                    navText: ["", ""],
241                    rtl: "yes" === r.rtl,
242                    dots: "yes" === r.dots,
243                    mouseDrag: "yes" === r.mouse_drag,
244                    responsiveBaseElement: i,
245                    autoplay: "yes" === r.autoplay,
246                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
247                    autoplayHoverPause: !0,
248                    smartSpeed: 1e3,
249                    autoHeight: "yes" !== r.item_custom_height,
250                    responsive: {
251                        0: {
252                            items: r.item_per_row_mobile || 1,
253                            margin: r.margin_mobile.size || 0,
254                            stagePadding: (r.margin_mobile.size || 0) / 2,
255                        },
256                        768: {
257                            items: r.item_per_row_tablet || 2,
258                            margin: r.margin_tablet.size || 0,
259                            stagePadding: (r.margin_tablet.size || 0) / 2,
260                        },
261                        1024: {
262                            items: r.item_per_row || 3,
263                            margin: r.margin.size || 0,
264                            stagePadding: (r.margin.size || 0) / 2,
265                        },
266                    },
267                }),
268                "simple" === r.gallery_type && (n = o.find(".xpro-elementor-carou
268sel-gallery")),
269                "none" !== r.popup &&
270                    (n.lightGallery({
271                        pager: !0,
272                        addClass: "xpro-gallery-popup-style-" + r.popup,
273                        selector: "[data-xpro-lightbox]",
274                        thumbnail: "yes" === r.thumbnail,
275                        exThumbImage: "data-src",
276                        thumbWidth: 130,
277                        thumbMargin: 15,
278                        closable: !1,
279                        showThumbByDefault: "yes" === r.thumbnail_by_default,
280                        thumbContHeight: 150,
281                        subHtmlSelectorRelative: !0,
282                        hideBarsDelay: 99999999,
283                        share: "yes" === r.share,
284                        download: "yes" === r.download,
285                    }),
286                    "3" === r.popup || "4" === r.popup))
287            ) {
288                var l = null;
289                n.on("onBeforeSlide.lg", function (t, o, i) {
290                    (l = n.data("lightGallery").$items.eq(i).attr("data-src")),
291                        "album" === r.gallery_type &&
292                            (l =
293                                i > 0
294                                    ? e(this).find(".xpro-elementor-gallery-preview").eq(i).attr("data-src")
295                                    : e(this).find(".xpro-elementor-carousel-gallery-item-inner").data("src")),
296                        e(".lg-backdrop").addClass("xpro-popup-blur"),
297                        e(".lg-backdrop").css({ "background-image": "url(" + l + ")" });
298                });
299            }
300        },
301        AdvancePortfolio: function (o) {
302            let i = t.getElementSettings(o),
303                r = o.find(".xpro-elementor-gallery-wrapper"),
304                a = o.find(".xpro-elementor-gallery-filter > ul"),
305                n = o.find(".xpro-elementor-gallery-filter > ul").attr("data-default-filter"),
306                l = "masonry" === i.gallery_style ? "grid" : i.gallery_style;
307            f(),
308                setTimeout(function () {
309                    r.cubeportfolio({
310                        filters: a,
311                        layoutMode: l,
312                        defaultFilter: n,
313                        animationType: i.filter_animation,
314                        gridAdjustment: "responsive",
315                        lightboxGallery: !1,
316                        mediaQueries: [
317                            {
318                                width: elementorFrontend.config.breakpoints.lg,
319                                cols: i.item_per_row || 3,
320                                options: { gapHorizontal: i.margin.size || 0, gapVertical: i.margin.size || 0 },
321                            },
322                            {
323                                width: elementorFrontend.config.breakpoints.md,
324                                cols: i.item_per_row_tablet || 2,
325                                options: {
326                                    gapHorizontal: i.margin_tablet.size || 0,
327                                    gapVertical: i.margin_tablet.size || 0,
328                                },
329                            },
330                            {
331                                width: 0,
332                                cols: i.item_per_row_mobile || 1,
333                                options: {
334                                    gapHorizontal: i.margin_mobile.size || 0,
335                                    gapVertical: i.margin_mobile.size || 0,
336                                },
337                            },
338                        ],
339                        caption: i.hover_effect || "zoom",
340                        displayType: "sequentially",
341                        displayTypeSpeed: 80,
342                        plugins: {
343                            loadMore: {
344                                element: o.find(".cbp-l-loadMore-button"),
345                                action: i.load_more || "click",
346                                loadItems: i.item_per_row || 3,
347                            },
348                            sort: { element: o.find(".cbp-loadMore-block1") },
349                        },
350                    });
351                }, 500);
352            let s = o.find(".xpro-filter-dropdown-tablet,.xpro-filter-dropdown-mobile"),
353                p = o.find('[data-filter="' + n + '"]'),
354                d = s.find("li.cbp-filter-item-active").text();
355            s.find(".xpro-select-content").text(d || p.text()),
356                s.on("click", function () {
357                    e(this).toggleClass("active");
358                }),
359                s.find(".cbp-l-filters-button > li").on("click", function () {
360                    s.find(".xpro-select-content").text(e(this).text());
361                });
362            var c = null;
363            let u = new TimelineLite();
364            function m(t, r) {
365                let a = e(t).data("title");
366                if ("false" === (c = e(t).data("src-preview"))) return;
367                e(t).siblings().removeClass("xpro-preview-demo-item-open"),
368                    e(t).addClass("xpro-preview-demo-item-open"),
369                    o
370                        .find(".xpro-preview")
371                        .find(".xpro-preview-prev-demo, .xpro-preview-next-demo")
372                        .removeClass("xpro-preview-inactive"),
373                    o
374                        .find(".xpro-preview")
375                        .find(".xpro-preview-prev-thumb, .xpro-preview-next-thumb")
376                        .removeClass("xpro-preview-inactive");
377                let n = e(t).prev("[data-src-preview]");
378                n.length <= 0 &&
379                    (o.find(".xpro-preview .xpro-preview-prev-demo").addClass("xpro-preview-inactive"),
380                    o.find(".xpro-preview .xpro-preview-prev-thumb").addClass("xpro-preview-inactive"));
381                let l = e(t).next("[data-src-preview]");
382                if (
383                    (l.length <= 0 &&
384                        (o.find(".xpro-preview .xpro-preview-next-demo").addClass("xpro-preview-inactive"),
385                        o.find(".xpro-preview .xpro-preview-next-thumb").addClass("xpro-preview-inactive")),
386                    "layout-5" === i.popup_layout || "layout-6" === i.popup_layout)
387                ) {
388                    let e = n.find(".cbp-caption-defaultWrap").attr("data-xpro-thumb"),
389                        t = l.find(".cbp-caption-defaultWrap").attr("data-xpro-thumb");
390                    e &&
391                        o
392                            .find(".xpro-preview-prev-demo .xpro-preview-nav-img")
393                            .css("background-image", "url(" + e + ")"),
394                        t &&
395                            o
396                                .find(".xpro-preview-next-demo .xpro-preview-nav-img")
397                                .css("background-image", "url(" + t + ")");
398                }
399                if ("layout-10" === i.popup_layout) {
400                    let i = n.find(".cbp-caption-defaultWrap").attr("data-xpro-thumb"),
401                        r = e(t).find(".cbp-caption-defaultWrap").attr("data-xpro-thumb"),
402                        a = l.find(".cbp-caption-defaultWrap").attr("data-xpro-thumb");
403                    i &&
404                        o
405                            .find(".xpro-preview-thumbnails .xpro-preview-prev-thumb")
406                            .css("background-image", "url(" + i + ")"),
407                        r &&
408                            o
409                                .find(".xpro-preview-thumbnails .xpro-preview-current-thumb")
410                                .css("background-image", "url(" + r + ")"),
411                        a &&
412                            o
413                                .find(".xpro-preview-thumbnails .xpro-preview-next-thumb")
414                                .css("background-image", "url(" + a + ")");
415                }
416                o.find(".xpro-preview .xpro-preview-header-info").html(""),
417                    a &&
418                        o
419                            .find(".xpro-preview .xpro-preview-header-info")
420                            .append(`<div class="xpro-preview-demo-name">${a}</div>`),
421                    o.find(".xpro-preview .xpro-preview-iframe").attr("src", c),
422                    e("body").addClass("xpro-preview-active"),
423                    o.find(".xpro-preview").addClass("active");
424            }
425            function f() {
426                o.find(".xpro-preview-demo-item").removeClass("xpro-preview-demo-item-open"),
427                    o.find(".xpro-preview .xpro-preview-iframe").removeAttr("src"),
428                    e("body").removeClass("xpro-preview-active"),
429                    o.find(".xpro-preview").removeClass("active");
430            }
431            function g() {
432                "1" === i.popup_animation &&
433                    u.to(o.find(".xpro-portfolio-loader-style-1 li"), {
434                        duration: 0.4,
435                        scaleX: 1,
436                        transformOrigin: "bottom right",
437                    }),
438                    "2" === i.popup_animation &&
439                        u.to(o.find(".xpro-portfolio-loader-style-2 li"), {
440                            duration: 0.4,
441                            scaleX: 1,
442                            transformOrigin: "bottom left",
443                        }),
444                    "3" === i.popup_animation &&
445                        u.to(o.find(".xpro-portfolio-loader-style-3 li"), {
446                            duration: 0.4,
447                            scaleY: 1,
448                            transformOrigin: "top left",
449                            stagger: 0.2,
450                        }),
451                    "4" === i.popup_animation &&
452                        u.to(o.find(".xpro-portfolio-loader-style-4 li"), {
453                            duration: 0.4,
454                            scaleY: 1,
455                            transformOrigin: "bottom left",
456                            stagger: 0.2,
457                        }),
458                    "5" === i.popup_animation &&
459                        u.to(o.find(".xpro-portfolio-loader-style-5 li"), {
460                            duration: 0.4,
461                            scaleX: 1,
462                            transformOrigin: "bottom right",
463                        }),
464                    "6" === i.popup_animation &&
465                        u.to(o.find(".xpro-portfolio-loader-style-6 li"), {
466                            duration: 0.4,
467                            scaleX: 1,
468                            transformOrigin: "bottom left",
469                        }),
470                    "7" === i.popup_animation &&
471                        u.to(o.find(".xpro-portfolio-loader-style-7 li"), {
472                            duration: 0.4,
473                            scaleY: 1,
474                            transformOrigin: "top right",
475                        }),
476                    "8" === i.popup_animation &&
477                        u.to(o.find(".xpro-portfolio-loader-style-8 li"), {
478                            duration: 0.4,
479                            scaleY: 1,
480                            transformOrigin: "bottom right",
481                        }),
482                    setTimeout(function () {
483                        "1" === i.popup_animation &&
484                            u.to(o.find(".xpro-portfolio-loader-style-1 li"), {
485                                duration: 0.4,
486                                scaleX: 0,
487                                transformOrigin: "bottom left",
488                            }),
489                            "2" === i.popup_animation &&
490                                u.to(o.find(".xpro-portfolio-loader-style-2 li"), {
491                                    duration: 0.4,
492                                    scaleX: 0,
493                                    transformOrigin: "bottom right",
494                                }),
495                            "3" === i.popup_animation &&
496                                u.to(o.find(".xpro-portfolio-loader-style-3 li"), {
497                                    duration: 0.4,
498                                    scaleY: 0,
499                                    transformOrigin: "bottom left",
500                                    stagger: 0.2,
501                                }),
502                            "4" === i.popup_animation &&
503                                u.to(o.find(".xpro-portfolio-loader-style-4 li"), {
504                                    duration: 0.4,
505                                    scaleY: 0,
506                                    transformOrigin: "top left",
507                                    stagger: 0.2,
508                                }),
509                            "5" === i.popup_animation &&
510                                u.to(o.find(".xpro-portfolio-loader-style-5 li"), {
511                                    duration: 0.4,
512                                    scaleX: 0,
513                                    transformOrigin: "bottom left",
514                                }),
515                            "6" === i.popup_animation &&
516                                u.to(o.find(".xpro-portfolio-loader-style-6 li"), {
517                                    duration: 0.4,
518                                    scaleX: 0,
519                                    transformOrigin: "bottom right",
520                                }),
521                            "7" === i.popup_animation &&
522                                u.to(o.find(".xpro-portfolio-loader-style-7 li"), {
523                                    duration: 0.4,
524                                    scaleY: 0,
525                                    transformOrigin: "bottom right",
526                                }),
527                            "8" === i.popup_animation &&
528                                u.to(o.find(".xpro-portfolio-loader-style-8 li"), {
529                                    duration: 0.4,
530                                    scaleY: 0,
531                                    transformOrigin: "top right",
532                                });
533                    }, 2500);
534            }
535            u.seek(0).clear(),
536                (u = new TimelineLite()),
537                o.find(".xpro-preview-iframe").on("load", function () {
538                    e(this).addClass("loaded"), e(this).contents().find("html").attr("id", "xpro-portfolio-html-main");
539                }),
540                f(),
541                o.on("click", ".xpro-preview-type-popup", function (t) {
542                    e(t.target).is(".xpro-preview-demo-import-open") || (g(), m(this));
543                }),
544                o.on("click", ".xpro-preview-type-link", function (t) {
545                    let o = "";
546                    return "" !== (o = e(this).data("src-preview")) && window.open(o, i.preview_target), !1;
547                }),
548                o.on("click", ".xpro-preview-type-none", function (e) {
549                    return !1;
550                }),
551                o.on("click", ".xpro-preview-prev-demo", function (e) {
552                    var t = o.find(".xpro-preview-demo-item-open").prev("[data-src-preview]");
553                    t.length > 0 && (g(), m(t)), e.preventDefault();
554                }),
555                o.on("click", ".xpro-preview-next-demo", function (e) {
556                    var t = o.find(".xpro-preview-demo-item-open").next("[data-src-preview]");
557                    t.length > 0 && (g(), m(t)), e.preventDefault();
558                }),
559                o.on("click", ".xpro-preview-close", function (e) {
560                    g(),
561                        e.preventDefault(),
562                        setTimeout(function () {
563                            f();
564                        }, 2e3);
565                });
566        },
567        CarouselPortfolio: function (o) {
568            let i,
569                r = t.getElementSettings(o),
570                a = o.find(".xpro-elementor-carousel-gallery");
571            e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
572                p(),
573                ("simple" === r.carousel_layout || "creative" === r.carousel_layout) &&
574                    a.owlCarousel({
575                        loop: "yes" === r.loop,
576                        lazyLoad: "yes" === r.lazyload,
577                        center: "yes" === r.center,
578                        nav: "yes" === r.nav,
579                        navText: ["", ""],
580                        rtl: "yes" === r.rtl,
581                        dots: "yes" === r.dots,
582                        mouseDrag: "yes" === r.mouse_drag,
583                        autoWidth: "yes" === r.custom_width,
584                        responsiveBaseElement: i,
585                        itemClass: "owl-item xpro-preview-type-" + r.preview_type,
586                        autoplay: "yes" === r.autoplay,
587                        autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
588                        autoplayHoverPause: !0,
589                        autoHeight: r.item_custom_height && "yes" !== r.item_custom_height,
590                        smartSpeed: 1e3,
591                        responsive: {
592                            0: {
593                                items: r.item_per_row_mobile || 1,
594                                margin: r.margin_mobile.size || 0,
595                                stagePadding: (r.margin_mobile.size || 0) / 2,
596                            },
597                            768: {
598                                items: r.item_per_row_tablet || 2,
599                                margin: r.margin_tablet.size || 0,
600                                stagePadding: (r.margin_tablet.size || 0) / 2,
601                            },
602                            1024: {
603                                items: r.item_per_row || 3,
604                                margin: r.margin.size || 0,
605                                stagePadding: (r.margin.size || 0) / 2,
606                            },
607                        },
608                    }),
609                "unique" === r.carousel_layout &&
610                    (o
611                        .find(".xpro-slider-slick-content")
612                        .slick({
613                            infinite: "yes" === r.loop,
614                            pauseOnHover: !0,
615                            slidesToShow: 1,
616                            slidesToScroll: 1,
617                            arrows: !1,
618                            active: !0,
619                            dots: !1,
620                            swipe: "yes" === r.mouse_drag,
621                            asNavFor: o.find(".xpro-slider-slick-image"),
622                        }),
623                    o
624                        .find(".xpro-slider-slick-image")
625                        .slick({
626                            infinite: "yes" === r.loop,
627                            lazyLoad: "yes" === r.loop && "ondemand",
628                            pauseOnHover: !0,
629                            autoplay: "yes" === r.autoplay,
630                            autoplaySpeed: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
631                            vertical: !0,
632                            verticalSwiping: !0,
633                            slidesToShow: 1,
634                            slidesToScroll: 1,
635                            swipe: "yes" === r.mouse_drag,
636                            asNavFor: o.find(".xpro-slider-slick-content"),
637                            dots: !1,
638                            arrows: "yes" === r.nav,
639                            nextArrow: o.find(".slick-nav-next"),
640                            prevArrow: o.find(".slick-nav-prev"),
641                        }));
642            var n = null;
643            let l = new TimelineLite();
644            function s(t, i) {
645                let a = e(t).find(".xpro-elementor-carousel-gallery-item").data("title");
646                if (
647                    ((n = e(t).find(".xpro-elementor-carousel-gallery-item").data("src-preview")),
648                    "unique" === r.carousel_layout && ((n = e(t).data("src-preview")), (a = e(t).data("title"))),
649                    "false" === n)
650                )
651                    return;
652                e(t).siblings().removeClass("xpro-preview-demo-item-open"),
653                    e(t).addClass("xpro-preview-demo-item-open"),
654                    o
655                        .find(".xpro-preview")
656                        .find(".xpro-preview-prev-demo, .xpro-preview-next-demo")
657                        .removeClass("xpro-preview-inactive"),
658                    o
659                        .find(".xpro-preview")
660                        .find(".xpro-preview-prev-thumb, .xpro-preview-next-thumb")
661                        .removeClass("xpro-preview-inactive");
662                let l = e(t).prev(".xpro-preview-type-popup");
663                l.length <= 0 &&
664                    (o.find(".xpro-preview .xpro-preview-prev-demo").addClass("xpro-preview-inactive"),
665                    o.find(".xpro-preview .xpro-preview-prev-thumb").addClass("xpro-preview-inactive"));
666                let s = e(t).next(".xpro-preview-type-popup");
667                if (
668                    (s.length <= 0 &&
669                        (o.find(".xpro-preview .xpro-preview-next-demo").addClass("xpro-preview-inactive"),
670                        o.find(".xpro-preview .xpro-preview-next-thumb").addClass("xpro-preview-inactive")),
671                    "layout-5" === r.popup_layout || "layout-6" === r.popup_layout)
672                ) {
673                    let e = l.find(".xpro-item-img").attr("data-xpro-thumb"),
674                        t = s.find(".xpro-item-img").attr("data-xpro-thumb");
675                    "unique" === r.carousel_layout &&
676                        ((e = l.attr("data-xpro-thumb")), (t = s.attr("data-xpro-thumb"))),
677                        e &&
678                            o
679                                .find(".xpro-preview-prev-demo .xpro-preview-nav-img")
680                                .css("background-image", "url(" + e + ")"),
681                        t &&
682                            o
683                                .find(".xpro-preview-next-demo .xpro-preview-nav-img")
684                                .css("background-image", "url(" + t + ")");
685                }
686                if ("layout-10" === r.popup_layout) {
687                    let i = l.find(".xpro-item-img").attr("data-xpro-thumb"),
688                        a = e(t).find(".xpro-item-img").attr("data-xpro-thumb"),
689                        n = s.find(".xpro-item-img").attr("data-xpro-thumb");
690                    "unique" === r.carousel_layout &&
691                        ((i = l.attr("data-xpro-thumb")),
692                        (a = e(t).attr("data-xpro-thumb")),
693                        (n = s.attr("data-xpro-thumb"))),
694                        i &&
695                            o
696                                .find(".xpro-preview-thumbnails .xpro-preview-prev-thumb")
697                                .css("background-image", "url(" + i + ")"),
698                        a &&
699                            o
700                                .find(".xpro-preview-thumbnails .xpro-preview-current-thumb")
701                                .css("background-image", "url(" + a + ")"),
702                        n &&
703                            o
704                                .find(".xpro-preview-thumbnails .xpro-preview-next-thumb")
705                                .css("background-image", "url(" + n + ")");
706                }
707                o.find(".xpro-preview .xpro-preview-header-info").html(""),
708                    a &&
709                        o
710                            .find(".xpro-preview .xpro-preview-header-info")
711                            .append(`<div class="xpro-preview-demo-name">${a}</div>`),
712                    o.find(".xpro-preview .xpro-preview-iframe").attr("src", n),
713                    e("body").addClass("xpro-preview-active"),
714                    o.find(".xpro-preview").addClass("active");
715            }
716            function p() {
717                o.find(".xpro-preview-demo-item").removeClass("xpro-preview-demo-item-open"),
718                    o.find(".xpro-preview .xpro-preview-iframe").removeAttr("src"),
719                    e("body").removeClass("xpro-preview-active"),
720                    o.find(".xpro-preview").removeClass("active");
721            }
722            function d() {
723                "1" === r.popup_animation &&
724                    l.to(o.find(".xpro-portfolio-loader-style-1 li"), {
725                        duration: 0.4,
726                        scaleX: 1,
727                        transformOrigin: "bottom right",
728                    }),
729                    "2" === r.popup_animation &&
730                        l.to(o.find(".xpro-portfolio-loader-style-2 li"), {
731                            duration: 0.4,
732                            scaleX: 1,
733                            transformOrigin: "bottom left",
734                        }),
735                    "3" === r.popup_animation &&
736                        l.to(o.find(".xpro-portfolio-loader-style-3 li"), {
737                            duration: 0.4,
738                            scaleY: 1,
739                            transformOrigin: "top left",
740                            stagger: 0.2,
741                        }),
742                    "4" === r.popup_animation &&
743                        l.to(o.find(".xpro-portfolio-loader-style-4 li"), {
744                            duration: 0.4,
745                            scaleY: 1,
746                            transformOrigin: "bottom left",
747                            stagger: 0.2,
748                        }),
749                    "5" === r.popup_animation &&
750                        l.to(o.find(".xpro-portfolio-loader-style-5 li"), {
751                            duration: 0.4,
752                            scaleX: 1,
753                            transformOrigin: "bottom right",
754                        }),
755                    "6" === r.popup_animation &&
756                        l.to(o.find(".xpro-portfolio-loader-style-6 li"), {
757                            duration: 0.4,
758                            scaleX: 1,
759                            transformOrigin: "bottom left",
760                        }),
761                    "7" === r.popup_animation &&
762                        l.to(o.find(".xpro-portfolio-loader-style-7 li"), {
763                            duration: 0.4,
764                            scaleY: 1,
765                            transformOrigin: "top right",
766                        }),
767                    "8" === r.popup_animation &&
768                        l.to(o.find(".xpro-portfolio-loader-style-8 li"), {
769                            duration: 0.4,
770                            scaleY: 1,
771                            transformOrigin: "bottom right",
772                        }),
773                    setTimeout(function () {
774                        "1" === r.popup_animation &&
775                            l.to(o.find(".xpro-portfolio-loader-style-1 li"), {
776                                duration: 0.4,
777                                scaleX: 0,
778                                transformOrigin: "bottom left",
779                            }),
780                            "2" === r.popup_animation &&
781                                l.to(o.find(".xpro-portfolio-loader-style-2 li"), {
782                                    duration: 0.4,
783                                    scaleX: 0,
784                                    transformOrigin: "bottom right",
785                                }),
786                            "3" === r.popup_animation &&
787                                l.to(o.find(".xpro-portfolio-loader-style-3 li"), {
788                                    duration: 0.4,
789                                    scaleY: 0,
790                                    transformOrigin: "bottom left",
791                                    stagger: 0.2,
792                                }),
793                            "4" === r.popup_animation &&
794                                l.to(o.find(".xpro-portfolio-loader-style-4 li"), {
795                                    duration: 0.4,
796                                    scaleY: 0,
797                                    transformOrigin: "top left",
798                                    stagger: 0.2,
799                                }),
800                            "5" === r.popup_animation &&
801                                l.to(o.find(".xpro-portfolio-loader-style-5 li"), {
802                                    duration: 0.4,
803                                    scaleX: 0,
804                                    transformOrigin: "bottom left",
805                                }),
806                            "6" === r.popup_animation &&
807                                l.to(o.find(".xpro-portfolio-loader-style-6 li"), {
808                                    duration: 0.4,
809                                    scaleX: 0,
810                                    transformOrigin: "bottom right",
811                                }),
812                            "7" === r.popup_animation &&
813                                l.to(o.find(".xpro-portfolio-loader-style-7 li"), {
814                                    duration: 0.4,
815                                    scaleY: 0,
816                                    transformOrigin: "bottom right",
817                                }),
818                            "8" === r.popup_animation &&
819                                l.to(o.find(".xpro-portfolio-loader-style-8 li"), {
820                                    duration: 0.4,
821                                    scaleY: 0,
822                                    transformOrigin: "top right",
823                                });
824                    }, 2500);
825            }
826            l.seek(0).clear(),
827                (l = new TimelineLite()),
828                o.find(".xpro-preview-iframe").on("load", function () {
829                    e(this).addClass("loaded"), e(this).contents().find("html").attr("id", "xpro-portfolio-html-main");
830                }),
831                o.on("click", ".xpro-preview-type-popup", function (t) {
832                    e(t.target).is(".xpro-preview-demo-import-open") || (d(), s(this));
833                }),
834                o.on("click", ".xpro-preview-type-link", function (t) {
835                    let o = "";
836                    return "unique" === r.carousel_layout
837                        ? ("" === (o = e(this).data("src-preview")) ||
838                              elementorFrontend.isEditMode() ||
839                              window.open(o, r.preview_target),
840                          !1)
841                        : ("" === (o = e(this).find(".xpro-elementor-carou
841sel-gallery-item").data("src-preview")) ||
842                              elementorFrontend.isEditMode() ||
843                              window.open(o, r.preview_target),
844                          !1);
845                }),
846                o.on("click", ".xpro-preview-type-none", function (e) {
847                    return !1;
848                }),
849                o.on("click", ".xpro-preview-prev-demo", function (e) {
850                    var t = o.find(".xpro-preview-demo-item-open").prev(".xpro-preview-type-popup");
851                    t.length > 0 && (d(), s(t)), e.preventDefault();
852                }),
853                o.on("click", ".xpro-preview-next-demo", function (e) {
854                    var t = o.find(".xpro-preview-demo-item-open").next(".xpro-preview-type-popup");
855                    t.length > 0 && (d(), s(t)), e.preventDefault();
856                }),
857                o.on("click", ".xpro-preview-close", function (e) {
858                    d(),
859                        e.preventDefault(),
860                        setTimeout(function () {
861                            p();
862                        }, 2e3);
863                });
864        },
865        ListPortfolio: function (o) {
866            let i = t.getElementSettings(o);
867            o.find(".xpro-list-portfolio-half .xpro-list-portfolio-items > li").hover(function () {
868                e(this).addClass("active").siblings().removeClass("active");
869                let t = e(this).attr("data-xpro-image-id");
870                o.find(".xpro-list-portfolio-image-wrapper > figure").removeClass("active"),
871                    o.find("." + t).addClass("active");
872            }),
873                o.find(".xpro-list-portfolio-full .xpro-list-portfolio-items > li").hover(
874                    function () {
875                        e(this).addClass("active").siblings().removeClass("active");
876                        let t = e(this).attr("data-xpro-image-id"),
877                            i = o.find("." + t + " img").attr("src");
878                        o.find(".xpro-list-portfolio-full").addClass("active");
879                        let r = o.find(".xpro-list-portfolio-full .xpro-list-portfolio-image-wrapper");
880                        r.fadeOut(200, function () {
881                            r.css("background-image", "url(" + i + ")"),
882                                r.css({ "background-image": "url(" + i + ")", "z-index": "3" }),
883                                r.fadeIn(300);
884                        });
885                    },
886                    function () {
887                        o.find(".xpro-list-portfolio-full").removeClass("active"),
888                            o.find(".xpro-list-portfolio-full .xpro-list-portfolio-items > li").removeClass("active"),
889                            o
890                                .find(".xpro-list-portfolio-full .xpro-list-portfolio-image-wrapper")
891                                .css({ "background-image": "none", "z-index": "1" });
892                    }
893                );
894            var r = null;
895            let a = new TimelineLite();
896            function n(t, a) {
897                let n = e(t).data("xpro-title");
898                if ("false" === (r = e(t).data("src-preview"))) return;
899                e(t).siblings().removeClass("xpro-preview-demo-item-open"),
900                    e(t).addClass("xpro-preview-demo-item-open"),
901                    o
902                        .find(".xpro-preview .xpro-preview-prev-demo, .xpro-preview-next-demo")
903                        .removeClass("xpro-preview-inactive"),
904                    o
905                        .find(".xpro-preview .xpro-preview-prev-thumb, .xpro-preview-next-thumb")
906                        .removeClass("xpro-preview-inactive");
907                let l = e(t).prev(".xpro-preview-type-popup");
908                l.length <= 0 &&
909                    (o.find(".xpro-preview .xpro-preview-prev-demo").addClass("xpro-preview-inactive"),
910                    o.find(".xpro-preview .xpro-preview-prev-thumb").addClass("xpro-preview-inactive"));
911                let s = e(t).next(".xpro-preview-type-popup");
912                if (
913                    (s.length <= 0 &&
914                        (o.find(".xpro-preview .xpro-preview-next-demo").addClass("xpro-preview-inactive"),
915                        o.find(".xpro-preview .xpro-preview-next-thumb").addClass("xpro-preview-inactive")),
916                    "layout-5" === i.popup_layout || "layout-6" === i.popup_layout)
917                ) {
918                    let e = l.attr("data-xpro-thumb"),
919                        t = s.attr("data-xpro-thumb");
920                    e &&
921                        o
922                            .find(".xpro-preview-prev-demo .xpro-preview-nav-img")
923                            .css("background-image", "url(" + e + ")"),
924                        t &&
925                            o
926                                .find(".xpro-preview-next-demo .xpro-preview-nav-img")
927                                .css("background-image", "url(" + t + ")");
928                }
929                if ("layout-10" === i.popup_layout) {
930                    let i = l.attr("data-xpro-thumb"),
931                        r = e(t).attr("data-xpro-thumb"),
932                        a = s.attr("data-xpro-thumb");
933                    i &&
934                        o
935                            .find(".xpro-preview-thumbnails .xpro-preview-prev-thumb")
936                            .css("background-image", "url(" + i + ")"),
937                        r &&
938                            o
939                                .find(".xpro-preview-thumbnails .xpro-preview-current-thumb")
940                                .css("background-image", "url(" + r + ")"),
941                        a &&
942                            o
943                                .find(".xpro-preview-thumbnails .xpro-preview-next-thumb")
944                                .css("background-image", "url(" + a + ")");
945                }
946                o.find(".xpro-preview .xpro-preview-header-info").html(""),
947                    n &&
948                        o
949                            .find(".xpro-preview .xpro-preview-header-info")
950                            .append(`<div class="xpro-preview-demo-name">${n}</div>`),
951                    o.find(".xpro-preview .xpro-preview-iframe").attr("src", r),
952                    e("body").addClass("xpro-preview-active"),
953                    o.find(".xpro-preview").addClass("active");
954            }
955            function l() {
956                o.find(".xpro-preview-demo-item").removeClass("xpro-preview-demo-item-open"),
957                    o.find(".xpro-preview .xpro-preview-iframe").removeAttr("src"),
958                    e("body").removeClass("xpro-preview-active"),
959                    o.find(".xpro-preview").removeClass("active");
960            }
961            function s() {
962                "1" === i.popup_animation &&
963                    a.to(o.find(".xpro-portfolio-loader-style-1 li"), {
964                        duration: 0.4,
965                        scaleX: 1,
966                        transformOrigin: "bottom right",
967                    }),
968                    "2" === i.popup_animation &&
969                        a.to(o.find(".xpro-portfolio-loader-style-2 li"), {
970                            duration: 0.4,
971                            scaleX: 1,
972                            transformOrigin: "bottom left",
973                        }),
974                    "3" === i.popup_animation &&
975                        a.to(o.find(".xpro-portfolio-loader-style-3 li"), {
976                            duration: 0.4,
977                            scaleY: 1,
978                            transformOrigin: "top left",
979                            stagger: 0.2,
980                        }),
981                    "4" === i.popup_animation &&
982                        a.to(o.find(".xpro-portfolio-loader-style-4 li"), {
983                            duration: 0.4,
984                            scaleY: 1,
985                            transformOrigin: "bottom left",
986                            stagger: 0.2,
987                        }),
988                    "5" === i.popup_animation &&
989                        a.to(o.find(".xpro-portfolio-loader-style-5 li"), {
990                            duration: 0.4,
991                            scaleX: 1,
992                            transformOrigin: "bottom right",
993                        }),
994                    "6" === i.popup_animation &&
995                        a.to(o.find(".xpro-portfolio-loader-style-6 li"), {
996                            duration: 0.4,
997                            scaleX: 1,
998                            transformOrigin: "bottom left",
999                        }),
1000                    "7" === i.popup_animation &&
1001                        a.to(o.find(".xpro-portfolio-loader-style-7 li"), {
1002                            duration: 0.4,
1003                            scaleY: 1,
1004                            transformOrigin: "top right",
1005                        }),
1006                    "8" === i.popup_animation &&
1007                        a.to(o.find(".xpro-portfolio-loader-style-8 li"), {
1008                            duration: 0.4,
1009                            scaleY: 1,
1010                            transformOrigin: "bottom right",
1011                        }),
1012                    setTimeout(function () {
1013                        "1" === i.popup_animation &&
1014                            a.to(o.find(".xpro-portfolio-loader-style-1 li"), {
1015                                duration: 0.4,
1016                                scaleX: 0,
1017                                transformOrigin: "bottom left",
1018                            }),
1019                            "2" === i.popup_animation &&
1020                                a.to(o.find(".xpro-portfolio-loader-style-2 li"), {
1021                                    duration: 0.4,
1022                                    scaleX: 0,
1023                                    transformOrigin: "bottom right",
1024                                }),
1025                            "3" === i.popup_animation &&
1026                                a.to(o.find(".xpro-portfolio-loader-style-3 li"), {
1027                                    duration: 0.4,
1028                                    scaleY: 0,
1029                                    transformOrigin: "bottom left",
1030                                    stagger: 0.2,
1031                                }),
1032                            "4" === i.popup_animation &&
1033                                a.to(o.find(".xpro-portfolio-loader-style-4 li"), {
1034                                    duration: 0.4,
1035                                    scaleY: 0,
1036                                    transformOrigin: "top left",
1037                                    stagger: 0.2,
1038                                }),
1039                            "5" === i.popup_animation &&
1040                                a.to(o.find(".xpro-portfolio-loader-style-5 li"), {
1041                                    duration: 0.4,
1042                                    scaleX: 0,
1043                                    transformOrigin: "bottom left",
1044                                }),
1045                            "6" === i.popup_animation &&
1046                                a.to(o.find(".xpro-portfolio-loader-style-6 li"), {
1047                                    duration: 0.4,
1048                                    scaleX: 0,
1049                                    transformOrigin: "bottom right",
1050                                }),
1051                            "7" === i.popup_animation &&
1052                                a.to(o.find(".xpro-portfolio-loader-style-7 li"), {
1053                                    duration: 0.4,
1054                                    scaleY: 0,
1055                                    transformOrigin: "bottom right",
1056                                }),
1057                            "8" === i.popup_animation &&
1058                                a.to(o.find(".xpro-portfolio-loader-style-8 li"), {
1059                                    duration: 0.4,
1060                                    scaleY: 0,
1061                                    transformOrigin: "top right",
1062                                });
1063                    }, 2500);
1064            }
1065            a.seek(0).clear(),
1066                (a = new TimelineLite()),
1067                o.find(".xpro-preview-iframe").on("load", function () {
1068                    e(this).addClass("loaded"), e(this).contents().find("html").attr("id", "xpro-portfolio-html-main");
1069                }),
1070                l(),
1071                o.on("click", ".xpro-preview-type-popup", function (t) {
1072                    e(t.target).is(".xpro-preview-demo-import-open") || (s(), n(this));
1073                }),
1074                o.on("click", ".xpro-preview-type-link", function (t) {
1075                    let o = "";
1076                    return "" !== (o = e(this).data("src-preview")) && window.open(o, i.preview_target), !1;
1077                }),
1078                o.on("click", ".xpro-preview-type-none", function (e) {
1079                    return !1;
1080                }),
1081                o.on("click", ".xpro-preview-prev-demo", function (t) {
1082                    var o = e(".xpro-preview-demo-item-open").prev(".xpro-preview-type-popup");
1083                    o.length > 0 && (s(), n(o)), t.preventDefault();
1084                }),
1085                o.on("click", ".xpro-preview-next-demo", function (t) {
1086                    var o = e(".xpro-preview-demo-item-open").next(".xpro-preview-type-popup");
1087                    o.length > 0 && (s(), n(o)), t.preventDefault();
1088                }),
1089                o.on("click", ".xpro-preview-close", function (e) {
1090                    s(),
1091                        e.preventDefault(),
1092                        setTimeout(function () {
1093                            l();
1094                        }, 2e3);
1095                });
1096        },
1097        AnimatedHeading: function (e) {
1098            let o = t.getElementSettings(e),
1099                i = e.find(".xpro-title-focus"),
1100                r = e.find(".xpro-title-focus > span");
1101            o.center_title_animation.includes("typed") ||
1102                o.center_title_animation.includes("svg") ||
1103                i.Morphext({
1104                    animation: o.center_title_animation,
1105                    separator: ",",
1106                    speed: 1e3 * o.center_title_animation_speed.size,
1107                    complete: function () {},
1108                }),
1109                o.center_title_animation.includes("typed") &&
1110                    r.typed({
1111                        strings: i.text().split(","),
1112                        stringsElement: null,
1113                        typeSpeed: 10 * o.center_title_animation_speed.size,
1114                        backSpeed: 20,
1115                        backDelay: 500,
1116                        loop: !0,
1117                        loopCount: !1,
1118                        showCursor: !!o.center_title_animation_cursor,
1119                        cursorChar: o.center_title_animation_cursor ? o.center_title_animation_cursor : "",
1120                        attr: null,
1121                        contentType: "html",
1122                        callback: function () {},
1123                        preStringTyped: function () {},
1124                        onStringTyped: function () {},
1125                        resetCallback: function () {},
1126                    });
1127        },
1128        AdvanceTabs: function (o) {
1129            t.getElementSettings(o);
1130            let i = o.find(".xpro-tab-main").attr("id"),
1131                r = e(".xpro-tab-content-wrapper .xpro-tab-content");
1132            r.each(function (t, o) {
1133                e(o).addClass("active");
1134            }),
1135                setTimeout(() => {
1136                    r.each(function (t, o) {
1137                        e(o).removeClass("active");
1138                    }),
1139                        e(r[0]).addClass("active"),
1140                        o
1141                            .find("#" + i + " > .xpro-tab-list-wrapper > .xpro-tab-list > li:first-child > a")
1142                            .trigger("click");
1143                }, 500),
1144                e("#" + i + " > .xpro-tab-list-wrapper > .xpro-tab-select-option > .xpro-tab-select-content").each(
1145                    function () {
1146                        e(this).text(
1147                            o.find("#" + i + " > .xpro-tab-list-wrapper > .xpro-tab-list > li.active > a > span").text()
1148                        );
1149                    }
1150                ),
1151                e("#" + i + " > .xpro-tab-list-wrapper > .xpro-tab-list > li > a").on("click", function (t) {
1152                    e(this).parent().addClass("active").siblings().removeClass("active");
1153                     o.find("#" + i + " .xpro-tab-paragraph").removeClass("active");
1154                    e(this).closest("li").find(".xpro-tab-paragraph").addClass("active");
1155                    let r = e(this).attr("href");
1156                    return (
1157                        o.find("#" + i + " > .xpro-tab-content-wrapper > .tab-accordion-label").removeClass("active"),
1158                        o
1159                            .find("#" + i + " > .xpro-tab-content-wrapper > .tab-accordion-label[href$=" + r + "]")
1160                            .addClass("active"),
1161                        o
1162                            .find("#" + i + " > .xpro-tab-content-wrapper > .xpro-tab-content.active")
1163                            .removeClass("active"),
1164                        o.find("#" + i + " " + r).addClass("active"),
1165                        o
1166                            .find(
1167                                "#" +
1168                                    i +
1169                                    " >  .xpro-tab-list-wrapper > .xpro-tab-select-option > .xpro-tab-select-content"
1170                            )
1171                            .text(e(this).find("span").text()),
1172                        o.find("#" + i + " > .xpro-tab-list-wrapper").removeClass("active"),
1173                        !1
1174                    );
1175                }),
1176                e("#" + i + " > .xpro-tab-list-wrapper > .xpro-tab-select-option").on("click", function () {
1177                    o.find("#" + i + " > .xpro-tab-list-wrapper").toggleClass("active");
1178                }),
1179                o.find("#" + i + " > .xpro-tab-content-wrapper > .tab-accordion-label").on("click", function (t) {
1180                    e(this).addClass("active").siblings().removeClass("active");
1181                    let r = e(this).attr("href");
1182                    return (
1183                        o.find("#" + i + " > .xpro-tab-list-wrapper > .xpro-tab-list > li").removeClass("active"),
1184                        o
1185                            .find("#" + i + " > .xpro-tab-list-wrapper > .xpro-tab-list > li > a[href$=" + r + "]")
1186                            .parent()
1187                            .addClass("active"),
1188                        o
1189                            .find("#" + i + " > .xpro-tab-content-wrapper > .xpro-tab-content.active")
1190                            .removeClass("active"),
1191                        o.find("#" + i + " " + r).addClass("active"),
1192                        o
1193                            .find("#" + i + " > .xpro-tab-list-wrapper > .xpro-tab-select-content")
1194                            .text(e(this).find("span").text()),
1195                        o.find("#" + i + " > .xpro-tab-list-wrapper").removeClass("active"),
1196                        !1
1197                    );
1198                });
1199        },
1200        PricingCarousel: function (o) {
1201            let i,
1202                r = t.getElementSettings(o),
1203                a = o.find(".xpro-pricing-carousel");
1204            e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
1205                a.owlCarousel({
1206                    loop: "yes" === r.loop,
1207                    lazyLoad: "yes" === r.lazyload,
1208                    center: "yes" === r.center,
1209                    nav: "yes" === r.nav,
1210                    navText: ["", ""],
1211                    rtl: "yes" === r.rtl,
1212                    dots: "yes" === r.dots,
1213                    mouseDrag: "yes" === r.mouse_drag,
1214                    autoWidth: "yes" === r.custom_width,
1215                    responsiveBaseElement: i,
1216                    itemClass: "owl-item xpro-preview-type-" + r.preview_type,
1217                    autoplay: "yes" === r.autoplay,
1218                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
1219                    autoplayHoverPause: !0,
1220                    smartSpeed: 1e3,
1221                    responsive: {
1222                        0: {
1223                            items: r.item_per_row_mobile || 1,
1224                            margin: r.margin_mobile.size || 0,
1225                            stagePadding: (r.margin_mobile.size || 0) / 2,
1226                        },
1227                        768: {
1228                            items: r.item_per_row_tablet || 2,
1229                            margin: r.margin_tablet.size || 0,
1230                            stagePadding: (r.margin_tablet.size || 0) / 2,
1231                        },
1232                        1024: {
1233                            items: r.item_per_row || 3,
1234                            margin: r.margin.size || 0,
1235                            stagePadding: (r.margin.size || 0) / 2,
1236                        },
1237                    },
1238                });
1239        },
1240        PricingMatrix: function (o) {
1241            let i,
1242                r = t.getElementSettings(o),
1243                a = o.find(".xpro-matrix-slider-wrapper");
1244            e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper");
1245            let n = a.owlCarousel({
1246                loop: "yes" === r.loop,
1247                navText: ["", ""],
1248                rtl: "yes" === r.rtl,
1249                dotsData: !0,
1250                dotsContainer: ".xpro-matrix-dots",
1251                mouseDrag: "yes" === r.mouse_drag,
1252                responsiveBaseElement: i,
1253                autoplay: "yes" === r.autoplay,
1254                autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
1255                autoplayHoverPause: !0,
1256                smartSpeed: 1e3,
1257                autoHeight: !0,
1258                responsive: {
1259                    0: {
1260                        nav: -1 !== jQuery.inArray("mobile", r.show_nav_on),
1261                        dots: -1 !== jQuery.inArray("mobile", r.show_dots_on),
1262                        items: r.item_per_row_mobile || 1,
1263                    },
1264                    768: {
1265                        nav: -1 !== jQuery.inArray("tablet", r.show_nav_on),
1266                        dots: -1 !== jQuery.inArray("tablet", r.show_dots_on),
1267                        items: r.item_per_row_tablet || 2,
1268                    },
1269                    1024: {
1270                        nav: -1 !== jQuery.inArray("desktop", r.show_nav_on),
1271                        dots: -1 !== jQuery.inArray("desktop", r.show_dots_on),
1272                        items: r.item_per_row || 3,
1273                    },
1274                },
1275            });
1276            o.find(".owl-dot").on("click", function () {
1277                n.trigger("to.owl.carousel", [e(this).index(), 800]);
1278            });
1279        },
1280        VerticalMenu: function (o) {
1281            let i = t.getElementSettings(o);
1282            if (
1283                ("sliding" === i.layout &&
1284                    (o.find(".xpro-elementor-vertical-menu-layout-sliding .xpro-elementor-vertical-navbar").menu(),
1285                    o.find(".sliding-menu li a.nav").parent("li").addClass("submen-dec")),
1286                "accordion" === i.layout &&
1287                    o
1288                        .find(".xpro-elementor-vertical-menu-layout-accordion li.dropdown > a")
1289                        .on("mouseenter", function (t) {
1290                            t.preventDefault(),
1291                                t.stopPropagation(),
1292                                e(this).toggleClass("active"),
1293                                e(this).next(".xpro-elementor-dropdown-menu").slideToggle();
1294                        }),
1295                o.find(".xpro-elementor-vertical-menu-layout-accordion li.dropdown").on("mouseleave", function () {
1296                    e(this).find("a").toggleClass("active"),
1297                        e(this).find(".xpro-elementor-dropdown-menu").slideToggle();
1298                }),
1299                "default" === i.layout &&
1300                    o.find(".dropdown li").each(function (t) {
1301                        if (e("ul", this).length) {
1302                            let t = e("ul:first", this);
1303                            t.offset().left + t.width() <= e(window).width()
1304                                ? e(this).removeClass("xpro-edge")
1305                                : e(this).addClass("xpro-edge");
1306                        }
1307                    }),
1308                "yes" === i.one_page_navigation)
1309            ) {
1310                function r(t = !1) {
1311                    var r = e(document).scrollTop(),
1312                        a = i.scroll_offset.size || 100;
1313                    o.find(".xpro-elementor-vertical-navbar-nav li").each(function () {
1314                        let i = e(this),
1315                            n = i.find(".xpro-elementor-nav-link").attr("href"),
1316                            l = n.indexOf("#");
1317                        if (-1 !== l) {
1318                            let s = e(n.substring(l));
1319                            t &&
1320                                s.length &&
1321                                o
1322                                    .find(".xpro-elementor-vertical-navbar-nav li:not(:first-child)")
1323                                    .removeClass("current_page_item"),
1324                                s.length &&
1325                                    s.position().top - a <= r &&
1326                                    s.position().top + s.height() > r &&
1327                                    (o.find(".xpro-elementor-vertical-navbar-nav li").removeClass("current_page_item"),
1328                                    i.addClass("current_page_item"));
1329                        }
1330                    });
1331                }
1332                o.find(".xpro-elementor-vertical-navbar-nav li a").on("click", function (t) {
1333                    e(".xpro-elementor-hamburger-wrapper").removeClass("active"),
1334                        e("body").removeClassRegex(/^xpro-hamburger-/);
1335                }),
1336                    r(!0),
1337                    e(document).on("scroll", function () {
1338                        r();
1339                    });
1340            }
1341        },
1342        Hamburger: function (o) {
1343            let i = t.getElementSettings(o),
1344                r = o.find(".xpro-elementor-hamburger-toggle"),
1345                a = o.find(".xpro-elementor-hamburger-close-btn"),
1346                n = o.find(".xpro-elementor-hamburger-overlay"),
1347                l = (o.find(".xpro-elementor-hamburger-inner"), o.find(".xpro-elementor-hamburger-wrapper"));
1348            e("body").addClass("xpro-elementor-hamburger"),
1349                e("body").removeClass("xpro-hamburger-" + i.layout),
1350                r.on("click", function () {
1351                    l.toggleClass("active"), e("body").toggleClass("xpro-hamburger-" + i.layout);
1352                }),
1353                a.on("click", function () {
1354                    l.removeClass("active"), e("body").removeClass("xpro-hamburger-" + i.layout);
1355                }),
1356                n.on("click", function () {
1357                    l.removeClass("active"), e("body").removeClass("xpro-hamburger-" + i.layout);
1358                });
1359        },
1360        PeelCard: function (o) {
1361            const i = t.getElementSettings(o),
1362                r = o.find(".xpro-peel-card"),
1363                a = r.attr("id");
1364            e("body").hasClass("elementor-editor-active") ||
1365                e(".elementor-widget-xpro-peel-card").closest(".e-con, .e-parent").css({ position: "static" }),
1366                e(".elementor-widget-xpro-peel-card").closest(".e-con, .e-parent").css({ position: "static" });
1367            let n = null,
1368                l = null;
1369            const s = "peelSound-" + a;
1370            function p(e) {
1371                "yes" === i.enable_peel_sound &&
1372                    e &&
1373                    ((n && n.playState === createjs.Sound.PLAY_SUCCEEDED) ||
1374                        ((n = createjs.Sound.play(s, { loop: 0, volume: i.sound_volume || 0.5 })),
1375                        clearTimeout(l),
1376                        (l = setTimeout(() => {
1377                            n && (n.stop(), (n = null));
1378                        }, 300))));
1379            }
1380            "yes" === i.enable_peel_sound && createjs.Sound.registerSound(i.peel_sound.url, s);
1381            // Elementor value helpers
1382            const bool = (value) => value === true || value === "true" || value === "yes";
1383
1384            const num = (value, fallback = 0) => {
1385                value = Number(value);
1386                return isNaN(value) ? fallback : value;
1387            };
1388            const d = new Peel(`#${a}`, {
1389                corner: "book" === i.peel_type
1390                    ? Peel.Corners[i.corner_book]
1391                    : Peel.Corners[i.corner],
1392
1393                // Top Shadow
1394                topShadow: bool(i.top_shadow),
1395                topShadowBlur: num(i.top_shadow_blur, 3),
1396                topShadowOffsetX: num(i.top_shadow_offset_x, 0),
1397                topShadowOffsetY: num(i.top_shadow_offset_y, 2),
1398
1399                // Back Shadow
1400                backShadow: bool(i.back_shadow),
1401                backShadowSize: num(i.back_shadow_size, 0.04),
1402                backShadowOffset: num(i.back_shadow_offset, 0),
1403                backShadowDistribute: bool(i.back_shadow_distribute),
1404
1405                // Back Reflection
1406                backReflection: bool(i.back_reflection),
1407                backReflectionSize: num(i.back_reflection_size, 0.02),
1408                backReflectionOffset: num(i.back_reflection_offset, 0),
1409                backReflectionDistribute: bool(i.back_reflection_distribute),
1410
1411                // Bottom Shadow
1412                bottomShadow: bool(i.bottom_shadow),
1413                bottomShadowSize: num(i.bottom_shadow_size, 1.5),
1414                bottomShadowOffset: num(i.bottom_shadow_offset, 0),
1415                bottomShadowDistribute: bool(i.bottom_shadow_distribute),
1416
1417                circle:
1418                    "circle" === i.peel_type
1419                        ? {
1420                            cx: (i.peel_image_width?.size ?? 0) / 2,
1421                            cy: (i.peel_image_height?.size ?? 0) / 2,
1422                            r:
1423                                Math.min(
1424                                    i.peel_image_width?.size ?? 100,
1425                                    i.peel_image_height?.size ?? 100
1426                                ) / 2,
1427                        }
1428                        : null,
1429            });
1430            "yes" === i.enable_init_peel &&
1431                d.setPeelPosition(parseFloat(i.set_peel_on_initx), parseFloat(i.set_peel_on_inity));
1432            const c = (e, t, o) => {
1433                const a = r[0].getBoundingClientRect(),
1434                    n = e.clientX - a.left,
1435                    l = e.clientY - a.top;
1436                d.setPeelPosition(n, l),
1437                    p(!0),
1438                    "yes" === i.stop_on_clipped && 1 === d.getAmountClipped() && (d.removeEvents(), p(!1));
1439            };
1440            switch (i.peel_type) {
1441
1442                // Default (Keep as it is)
1443                case "simple":
1444                    d.handleDrag(c);
1445                    break;
1446
1447                // Standard Drag
1448                case "dragging":
1449                    d.setFadeThreshold(0.35);
1450                    d.handleDrag(c);
1451                    break;
1452
1453                // Soft Fade While Dragging
1454                case "fade-threshold":
1455                    d.setFadeThreshold(i.fade_threshold || 0.55);
1456                    d.handleDrag(c);
1457                    break;
1458
1459                // Book Page Effect
1460                case "book":
1461                    d.setMode("book");
1462                    d.setFadeThreshold(i.fade_threshold || 0.4);
1463                    d.handleDrag(c);
1464                    break;
1465
1466                // Horizontal Peel Path
1467                case "peel-path": {
1468
1469                    d.setFadeThreshold(i.fade_threshold || 0.4);
1470
1471                    const s = {
1472                        x: (i.image_width?.size || 300) / 300,
1473                        y: (i.image_height?.size || 300) / 300,
1474                    };
1475
1476                    d.setPeelPath(
1477                        220 * s.x,
1478                        40 * s.y,
1479                        -220 * s.x,
1480                        260 * s.y
1481                    );
1482
1483                    d.handleDrag((x, y) => {
1484                        d.setTimeAlongPath(
1485                            Math.max(0, Math.min(1, (d.width - x) / d.width))
1486                        );
1487                        p(true);
1488                    });
1489
1490                    break;
1491                }
1492
1493                // Smooth S-Curve
1494                case "peel-curve": {
1495
1496                    d.setMode("book");
1497                    d.setFadeThreshold(i.fade_threshold || 0.45);
1498
1499                    const s = {
1500                        x: (i.image_width?.size || 300) / 300,
1501                        y: (i.image_height?.size || 300) / 300,
1502                    };
1503
1504                    d.setPeelPath(
1505                        240 * s.x, 30 * s.y,
1506                        170 * s.x, 200 * s.y,
1507                        -120 * s.x, 80 * s.y,
1508                        -220 * s.x, 260 * s.y
1509                    );
1510
1511                    d.handleDrag((x) => {
1512                        d.setTimeAlongPath(
1513                            Math.max(0, Math.min(1, x / d.width))
1514                        );
1515                        p(true);
1516                    });
1517
1518                    break;
1519                }
1520
1521                // Click Animation
1522                case "peel-press": {
1523
1524                    d.setMode("book");
1525
1526                    const s = {
1527                        x: (i.image_width?.size || 300) / 300,
1528                        y: (i.image_height?.size || 300) / 300,
1529                    };
1530
1531                    d.setPeelPath(
1532                        250 * s.x, 50 * s.y,
1533                        120 * s.x, 240 * s.y,
1534                        -100 * s.x, 60 * s.y,
1535                        -240 * s.x, 240 * s.y
1536                    );
1537
1538                    d.t = 0;
1539
1540                    const tween = new TweenLite(d, i.peel_press_duration || 1.2, {
1541                        t: 1,
1542                        paused: i.peel_press_paused,
1543                        ease: Power3.easeInOut,
1544                        onUpdate() {
1545                            d.setTimeAlongPath(d.t);
1546                        },
1547                        onComplete() {
1548                            p(false);
1549                        }
1550                    });
1551
1552                    d.handlePress(() => {
1553                        if (tween.progress() >= 1) {
1554                            tween.reverse();
1555                        } else {
1556                            tween.restart();
1557                        }
1558                        p(true);
1559                    });
1560
1561                    break;
1562                }
1563
1564                // Auto Fade Diagonal Animation
1565                case "peel-fade-path": {
1566
1567                    d.setFadeThreshold(i.fade_threshold || 0.65);
1568
1569                    const s = {
1570                        x: (i.image_width?.size || 300) / 300,
1571                        y: (i.image_height?.size || 300) / 300,
1572                    };
1573
1574                    d.setPeelPath(
1575                        200 * s.x,
1576                        0,
1577                        220 * s.x,
1578                        220 * s.y,
1579                        0,
1580                        280 * s.y,
1581                        -220 * s.x,
1582                        80 * s.y
1583                    );
1584
1585                    d.t = 0;
1586
1587                    const tween = new TweenLite(d, i.peel_press_duration || 1.5, {
1588                        t: 1,
1589                        paused: i.peel_press_paused,
1590                        ease: Power2.easeInOut,
1591                        onUpdate() {
1592                            d.setTimeAlongPath(d.t);
1593                        },
1594                        onComplete() {
1595                            p(false);
1596                        }
1597                    });
1598
1599                    d.handlePress(() => {
1600                        tween.restart();
1601                        p(true);
1602                    });
1603
1604                    break;
1605                }
1606            }
1607        },
1608        ScratchCard: function (e) {
1609            let o,
1610                i = t.getElementSettings(e),
1611                r = e.find(".xpro-scratch-card").attr("id");
1612            "yes" === i.enable_scratch_sound && createjs.Sound.registerSound(i.scratch_sound.url, "scratchSound"),
1613                (o =
1614                    void 0 !== i.brush_pattern
1615                        ? "BRUSH" === i.scratch_type && i.brush_pattern
1616                            ? i.brush_pattern
1617                            : null
1618                        : "BRUSH" === i.scratch_type && i.brush_src.url
1619                          ? i.brush_src.url
1620                          : null);
1621            const a = new ScratchCard("#" + r, {
1622                scratchType: SCRATCH_TYPE[i.scratch_type || "SPRAY"],
1623                containerWidth: i.image_width.size || 300,
1624                containerHeight: i.image_height.size || 300,
1625                brushSrc: o,
1626                imageForwardSrc: i.forward_image.url,
1627                imageBackgroundSrc: "yes" === i.enable_template ? "" : i.background_image.url,
1628                clearZoneRadius: i.clear_zone_radius,
1629                nPoints: i.number_of_points,
1630                pointSize: i.point_size,
1631                percentToFinish: i.percent_to_finish,
1632                callback: function () {
1633                if (!i.discount_code || !i.discount_code.trim()) {
1634                    console.warn("Discount code is empty.");
1635                    return;
1636                }
1637                if (
1638                    typeof elementorFrontend !== "undefined" &&
1639                    elementorFrontend.isEditMode()
1640                ) {
1641
1642                    Swal.fire({
1643                        icon: "info",
1644                         toast: i.notification === "true",
1645                            position: i.notic_position,
1646                            showConfirmButton: i.notification !== "true",
1647                            title: `${i.title_before} "${i.discount_code}" ${i.title_after}`,
1648                            timer: i.timer,
1649                    });
1650                    return;
1651                }
1652                navigator.clipboard
1653                    .writeText(i.discount_code)
1654                    .then(function () {
1655                        Swal.fire({
1656                            toast: i.notification === "true",
1657                            position: i.notic_position,
1658                            showConfirmButton: i.notification !== "true",
1659                            title: `${i.title_before} "${i.discount_code}" ${i.title_after}`,
1660                            timer: i.timer,
1661                        });
1662
1663                    })
1664                    .catch(function (err) {
1665                        console.error(err);
1666                    });
1667            }
1668            });
1669            a.init().then(() => {
1670                let e, t;
1671                a.canvas.addEventListener("scratch.move", function () {
1672                    (t && t.playState === createjs.Sound.PLAY_SUCCEEDED) ||
1673                        (t = createjs.Sound.play("scratchSound", { loop: -1, volume: i.sound_volume || 0.5 })),
1674                        clearTimeout(e),
1675                        (e = setTimeout(function () {
1676                            t && t.stop();
1677                        }, 300));
1678                }),
1679                    a.canvas.addEventListener("mouseup", function () {
1680                        t && (t.stop(), clearTimeout(e));
1681                    });
1682            });
1683        },
1684        BarChart: function (e) {
1685            const t = e.find(".xpro-bar-chart-js");
1686            if (!t.length) return;
1687            const o = t[0];
1688            o.xproChart instanceof Chart && o.xproChart.destroy();
1689            const i = o.getContext("2d");
1690            if (!i) return;
1691            let r = t.data("settings");
1692            if ("string" == typeof r)
1693                try {
1694                    r = JSON.parse(r);
1695                } catch (e) {
1696                    return void console.error("Bar Chart JSON Parse Error:", e);
1697                }
1698            if (r && r.data && r.data.datasets && 0 !== r.data.datasets.length) {
1699                r.options &&
1700                    r.options.plugins &&
1701                    r.options.plugins.tooltip &&
1702                    Chart.defaults.set("bar", {
1703                        plugins: {
1704                            tooltip: {
1705                                callbacks: {
1706                                    title: function (e) {
1707                                        return e[0].dataset.label + ": " + e[0].parsed.y;
1708                                    },
1709                                },
1710                            },
1711                        },
1712                    });
1713                try {
1714                    o.xproChart = new Chart(i, r);
1715                } catch (e) {
1716                    console.error("Bar Chart Creation Error:", e);
1717                }
1718            }
1719        },
1720        DonutChart: function (e) {
1721            const t = e.find(".xpro-doughnut-chart-js");
1722            if (!t.length) return;
1723            const o = t[0];
1724            o.xproChart instanceof Chart && o.xproChart.destroy();
1725            const i = o.getContext("2d");
1726            if (!i) return;
1727            let r = t.data("settings");
1728            if ("string" == typeof r)
1729                try {
1730                    r = JSON.parse(r);
1731                } catch (e) {
1732                    return void console.error("Doughnut Chart JSON Parse Error:", e);
1733                }
1734            if (r && r.data && r.data.datasets && 0 !== r.data.datasets.length && 0 !== r.data.datasets[0].data.length)
1735                try {
1736                    o.xproChart = new Chart(i, r);
1737                } catch (e) {
1738                    console.error("Doughnut Chart Creation Error:", e);
1739                }
1740            else console.warn("No data available for doughnut chart");
1741        },
1742        PolarChart: function (e) {
1743            const t = e.find(".xpro-polar-chart-js");
1744            if (!t.length) return;
1745            const o = t[0];
1746            o.xproChart instanceof Chart && o.xproChart.destroy();
1747            const i = o.getContext("2d");
1748            if (!i) return;
1749            let r = t.data("settings");
1750            if ("string" == typeof r)
1751                try {
1752                    r = JSON.parse(r);
1753                } catch (e) {
1754                    return void console.error("Polar Chart JSON Parse Error:", e);
1755                }
1756            if (r && r.data && r.data.datasets && 0 !== r.data.datasets.length && 0 !== r.data.datasets[0].data.length)
1757                try {
1758                    o.xproChart = new Chart(i, r);
1759                } catch (e) {
1760                    console.error("Polar Chart Creation Error:", e);
1761                }
1762            else console.warn("No data available for polar chart");
1763        },
1764        RadarChart: function (e) {
1765            const t = e.find(".xpro-radar-chart-js");
1766            if (!t.length) return;
1767            const o = t[0];
1768            o.xproChart instanceof Chart && o.xproChart.destroy();
1769            const i = o.getContext("2d");
1770            if (!i) return;
1771            let r = t.data("settings");
1772            if ("string" == typeof r)
1773                try {
1774                    r = JSON.parse(r);
1775                } catch (e) {
1776                    return void console.error("Radar Chart JSON Parse Error:", e);
1777                }
1778            if (r && r.data && r.data.datasets && 0 !== r.data.datasets.length)
1779                try {
1780                    o.xproChart = new Chart(i, r);
1781                } catch (e) {
1782                    console.error("Radar Chart Creation Error:", e);
1783                }
1784            else console.warn("No data available for radar chart");
1785        },
1786        DarkMode: function (o) {
1787            let i,
1788                r = t.getElementSettings(o),
1789                a = e("body"),
1790                n = a.find(".darkmode-toggle"),
1791                l = (o.find(".dark-mode-wrapper"), (r.dark_mode_time || 0.5) + "s"),
1792                s = r.dark_mode_mix_color || "#ffffff",
1793                p = r.dark_mode_background_color_activate || "#ffffff",
1794                d = r.dark_mode_mix_blend_type || "difference",
1795                c = "yes" === r.dark_mode_save_in_cookies,
1796                u = "yes" === r.dark_mode_auto_match_os_theme,
1797                m = r.dark_mode_style || "dark_mode_style2",
1798                f = r.dark_mode_type || "dark_mode_type_mix_blend";
1799            a.removeClass(
1800                "dark_mode_style1 dark_mode_style2 dark_mode_style3 " +
1801                "dark_mode_style4 dark_mode_style5 dark_mode_style6"
1802            );
1803            e(".darkmode-toggle, .darkmode-layer, .darkmode-background").remove();
1804            e("#xpro-dark-mode-style").remove();
1805            a.addClass(m);
1806            switch (m) {
1807                case "dark_mode_style2":
1808                    i =
1809                        '\n' +
1810                        '    <input type="checkbox" class="dark-mode-checkbox">\n' +
1811                        '    <span class="dark-mode-slider dark-mode-round"></span>\n';
1812                    break;
1813
1814                case "dark_mode_style3":
1815                    i = "🌙";
1816                    break;
1817
1818                case "dark_mode_style4":
1819                    i = "☀️";
1820                    break;
1821
1822                case "dark_mode_style5":
1823                    i = "🌑";
1824                    break;
1825
1826                case "dark_mode_style6":
1827                    i = "✨";
1828                    break;
1829
1830                default:
1831                    i = "🌓";
1832            }
1833            if (
1834                "dark_mode_type_global_color" !== f &&
1835                "dark_mode_style2" === m
1836            ) {
1837                let style = document.createElement("style");
1838
1839                style.id = "xpro-dark-mode-style";
1840
1841                style.textContent = `
1842                    .darkmode-layer {
1843                        mix-blend-mode: ${d} !important;
1844                    }
1845                `;
1846
1847                document.head.appendChild(style);
1848            }
1849            let g = {
1850                left: "unset",
1851                time: l,
1852                mixColor: s,
1853                backgroundColor: p,
1854                buttonColorDark: "#100f2c",
1855                buttonColorLight: "#fff",
1856                saveInCookies: c,
1857                label: i,
1858                autoMatchOsTheme: u,
1859            };
1860
1861            try {
1862                new Darkmode(g).showWidget();
1863                n = a.find(".darkmode-toggle");
1864
1865                if (a.hasClass("darkmode--activated")) {
1866                    n.addClass("darkmode-toggle--white");
1867                }
1868                if ("dark_mode_type_global_color" === f) {
1869                    e(".darkmode-background, .darkmode-layer").css(
1870                        "background",
1871                        "transparent"
1872                    );
1873                }
1874
1875            } catch (err) {
1876            }
1877            if (!window.xproDarkModeObserver) {
1878
1879                const cleanupXproDarkMode = function () {
1880                    const widgetExists = document.querySelector(
1881                        ".elementor-widget-xpro-dark-mode"
1882                    );
1883                    if (widgetExists) {
1884                        return;
1885                    }
1886                    e(
1887                        ".darkmode-toggle, " +
1888                        ".darkmode-layer, " +
1889                        ".darkmode-background"
1890                    ).remove();
1891                    a.removeClass(
1892                        "darkmode--activated " +
1893                        "dark_mode_style1 " +
1894                        "dark_mode_style2 " +
1895                        "dark_mode_style3 " +
1896                        "dark_mode_style4 " +
1897                        "dark_mode_style5 " +
1898                        "dark_mode_style6"
1899                    );
1900                    e("#xpro-dark-mode-style").remove();
1901                };
1902                window.xproDarkModeObserver = new MutationObserver(
1903                    function () {
1904                        cleanupXproDarkMode();
1905                    }
1906                );
1907                if (document.body) {
1908                    window.xproDarkModeObserver.observe(document.body, {
1909                        childList: true,
1910                        subtree: true
1911                    });
1912                }
1913                cleanupXproDarkMode();
1914            }
1915        },
1916        WooFilters: function (o) {
1917            let i = t.getElementSettings(o),
1918                r = i.toggle_speed && i.toggle_speed.size ? 100 * i.toggle_speed.size : 300,
1919                a = o.find(".xpro-elementor-hamburger-toggle"),
1920                n = o.find(".xpro-elementor-hamburger-close-btn"),
1921                l = o.find(".xpro-elementor-hamburger-overlay"),
1922                s = (o.find(".xpro-elementor-hamburger-inner"), o.find(".xpro-elementor-hamburger-wrapper"));
1923            e("body").addClass("xpro-elementor-hamburger"),
1924                e("body").removeClass("xpro-hamburger-" + i.layout),
1925                a.on("click", function () {
1926                    s.toggleClass("active"), e("body").toggleClass("xpro-hamburger-" + i.layout);
1927                }),
1928                n.on("click", function () {
1929                    s.removeClass("active"), e("body").removeClass("xpro-hamburger-" + i.layout);
1930                }),
1931                l.on("click", function () {
1932                    s.removeClass("active"), e("body").removeClass("xpro-hamburger-" + i.layout);
1933                });
1934            var p = o.find(".xpro-filter");
1935            p.removeClass("active").find(".xpro-accordion-content").hide(),
1936                p.first().addClass("active").find(".xpro-accordion-content").show(),
1937                o.find(".xpro-accordion-header").on("click", function (t) {
1938                    t.preventDefault();
1939                    var o = e(this).closest(".xpro-filter"),
1940                        a = o.find(".xpro-accordion-content");
1941                    "toggle" === i.accordion_type
1942                        ? o.hasClass("active")
1943                            ? (o.removeClass("active"), a.slideUp(r))
1944                            : (p.not(o).removeClass("active").find(".xpro-accordion-content").slideUp(r),
1945                              o.addClass("active"),
1946                              a.slideDown(r))
1947                        : (o.toggleClass("active"), a.slideToggle(r));
1948                });
1949        },
1950        ProductView360: function (o) {
1951            t.getElementSettings(o);
1952            let i = o.find(".xpro-porduct-view-360-wrapper"),
1953                r = o.find(".xpro-product-360-inner"),
1954                a = i.data("settings");
1955            if (!a) return !1;
1956            if ("remote" === a.source_type) {
1957                var n = a.source.split(",").map(function (e) {
1958                    return e.trim();
1959                });
1960                a.source = SpriteSpin.sourceArray(1 === n.length ? n[0] : n, {
1961                    frame: a.frame_limit,
1962                    digits: a.image_digits,
1963                });
1964            }
1965            r.waypoint(
1966                function () {
1967                    e(this.element).spritespin(a);
1968                },
1969                { offset: "bottom-in-view" }
1970            );
1971        },
1972        Slider: function (o) {
1973            let i = t.getElementSettings(o),
1974                r = o.find(".xpro-slider"),
1975                a = o.find(".xpro-slider-thumbs");
1976            var n = r.slick({
1977                speed: i.duration.size || 400,
1978                infinite: "yes" === i.loop,
1979                slidesToShow: 1,
1980                slidesToScroll: 1,
1981                adaptiveHeight: !0,
1982                touchThreshold: 100,
1983                asNavFor: "yes" === i.thumbs && a,
1984                draggable: "yes" === i.mouse_drag,
1985                fade: "fade" === i.slide_animation,
1986                cssEase: "linear",
1987                pauseOnHover: !1,
1988                autoplay: "yes" === i.autoplay,
1989                autoplaySpeed: "yes" === i.autoplay ? 1e3 * i.autoplay_timeout.size : 3e3,
1990                rtl: "vertical" !== i.orientation && "yes" === i.rtl,
1991                dots: "yes" === i.dots,
1992                vertical: "vertical" === i.orientation,
1993                verticalSwiping: "vertical" === i.orientation,
1994                customPaging: function (e, t) {
1995                    return '<span class="slick-dot"></span>';
1996                },
1997                arrows: "yes" === i.nav,
1998                appendArrows: o.find(".xpro-slider-navigation"),
1999                prevArrow: '<button type="button" class="slick-nav-prev"></button>',
2000                nextArrow: '<button type="button" class="slick-nav-next"></button>',
2001            });
2002            if (
2003                ("yes" === i.thumbs &&
2004                    a.slick({
2005                        slidesToShow: i.thumbs_per_row.size || 2,
2006                        slidesToScroll: 1,
2007                        asNavFor: n,
2008                        dots: !1,
2009                        pauseOnHover: !1,
2010                        focusOnSelect: !0,
2011                        arrows: !1,
2012                        vertical: "vertical" === i.thumbs_orientation,
2013                        verticalSwiping: "vertical" === i.thumbs_orientation,
2014                    }),
2015                "yes" === i.mouse_wheel)
2016            ) {
2017                let t = !1,
2018                    o = r.find(".slick-slide").length,
2019                    i = 1;
2020                r.on("wheel", function (r) {
2021                    if (r.originalEvent.deltaY < 0) {
2022                        if (((t = !1), 1 === (i = e(this).slick("slickCurrentSlide") + 1))) return void (t = !0);
2023                        r.preventDefault(), e(this).slick("slickPrev");
2024                    } else {
2025                        if (((t = !1), (i = e(this).slick("slickCurrentSlide") + 1) === o)) return void (t = !0);
2026                        r.preventDefault(), e(this).slick("slickNext");
2027                    }
2028                });
2029            }
2030            n.on("beforeChange", function (t, i, r) {
2031                o.find(".slick-slide:not(.slick-current)")
2032                    .find("[data-settings]")
2033                    .each(function () {
2034                        var t = e(this);
2035                        let o = e(this).data("settings")._animation;
2036                        o && (t.removeClass("animated"), t.removeClass(o), t.css("visibility", "hidden"));
2037                    });
2038            }),
2039                n.on("afterChange", function (t, o, i) {
2040                    e(o.$slides[i])
2041                        .find("[data-settings]")
2042                        .each(function () {
2043                            var t = e(this),
2044                                o = e(this).data("settings")._animation,
2045                                i = e(this).data("settings")._animation_delay || 0;
2046                            if (o) {
2047                                var r = "animated " + o;
2048                                t.css({ "animation-delay": i, "-webkit-animation-delay": i, visibility: "visible" }),
2049                                    t
2050                                        .addClass(r)
2051                                        .one(
2052                                            "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",
2053                                            function () {
2054                                                t.removeClass(r);
2055                                            }
2056                                        );
2057                            }
2058                        });
2059                });
2060        },
2061        TeamCarousel: function (o) {
2062            let i,
2063                r = t.getElementSettings(o),
2064                a = o.find(".xpro-team-wrapper");
2065            if (
2066                (e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
2067                a.owlCarousel({
2068                    loop: "yes" === r.loop,
2069                    nav: "yes" === r.nav,
2070                    navText: ["", ""],
2071                    rtl: "yes" === r.rtl,
2072                    dots: "yes" === r.dots,
2073                    mouseDrag: "yes" === r.mouse_drag,
2074                    responsiveBaseElement: i,
2075                    autoplay: "yes" === r.autoplay,
2076                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
2077                    autoplayHoverPause: !0,
2078                    smartSpeed: 1e3,
2079                    responsive: {
2080                        0: {
2081                            items: r.item_per_row_mobile || 1,
2082                            margin: r.margin_mobile.size || 0,
2083                            stagePadding: (r.margin_mobile.size || 0) / 2,
2084                        },
2085                        768: {
2086                            items: r.item_per_row_tablet || 2,
2087                            margin: r.margin_tablet.size || 0,
2088                            stagePadding: (r.margin_tablet.size || 0) / 2,
2089                        },
2090                        1024: {
2091                            items: r.item_per_row || 3,
2092                            margin: r.margin.size || 0,
2093                            stagePadding: (r.margin.size || 0) / 2,
2094                        },
2095                    },
2096                }),
2097                "3" === r.layout &&
2098                    o.find(".xpro-team-layout-3").hover(
2099                        function () {
2100                            e(this).find(".xpro-team-description").slideDown(300);
2101                        },
2102                        function () {
2103                            e(this).find(".xpro-team-description").slideUp(300);
2104                        }
2105                    ),
2106                "7" === r.layout &&
2107                    o.find(".xpro-team-layout-7").hover(
2108                        function () {
2109                            e(this).find(".xpro-team-description").slideDown(300),
2110                                e(this).find(".xpro-team-social-list").slideDown(500);
2111                        },
2112                        function () {
2113                            e(this).find(".xpro-team-description").slideUp(300),
2114                                e(this).find(".xpro-team-social-list").slideUp(500);
2115                        }
2116                    ),
2117                "8" === r.layout &&
2118                    o.find(".xpro-team-layout-8").hover(
2119                        function () {
2120                            e(this).find(".xpro-team-content").slideDown(300);
2121                        },
2122                        function () {
2123                            e(this).find(".xpro-team-content").slideUp(300);
2124                        }
2125                    ),
2126                "9" === r.layout)
2127            ) {
2128                let e = o.find(".xpro-team-image > img").height(),
2129                    t = o.find(".xpro-team-inner-content").height();
2130                o.find(".xpro-team-inner-content").width(e), o.find(".xpro-team-inner-content").css("left", t + "px");
2131            }
2132            "14" === r.layout &&
2133                o.find(".xpro-team-layout-14").hover(
2134                    function () {
2135                        e(this).find(".xpro-team-description").slideDown(300),
2136                            e(this).find(".xpro-team-social-list").slideDown(500);
2137                    },
2138                    function () {
2139                        e(this).find(".xpro-team-description").slideUp(300),
2140                            e(this).find(".xpro-team-social-list").slideUp(500);
2141                    }
2142                );
2143        },
2144        TestimonialCarousel: function (o) {
2145            let i = t.getElementSettings(o),
2146                r = o.find(".xpro-testimonial-slider"),
2147                a = o.find(".xpro-testimonial-thumbs"),
2148                n = "window";
2149            e(".e-route-panel-editor-content").length && (n = ".elementor-preview-responsive-wrapper");
2150            let l = new Swiper(r[0], {
2151                direction: "horizontal",
2152                breakpointsBase: n,
2153                autoHeight: "yes" === i.auto_height,
2154                allowTouchMove: "yes" === i.mouse_drag,
2155                loop: "yes" === i.loop,
2156                autoplay: "yes" === i.autoplay && { delay: 1e3 * i.autoplay_timeout.size },
2157                pagination: { el: o.find(".swiper-pagination")[0], clickable: !0 },
2158                navigation: { nextEl: o.find(".swiper-button-next")[0], prevEl: o.find(".swiper-button-prev")[0] },
2159                breakpoints:
2160                    i.layout <= 10
2161                        ? {
2162                              320: {
2163                                  slidesPerView: i.item_per_row_mobile || 1,
2164                                  spaceBetween: i.margin_mobile.size || 15,
2165                              },
2166                              768: { slidesPerView: i.item_per_row_tablet || 2, spaceBetween: i.margin.size || 15 },
2167                              1024: { slidesPerView: i.item_per_row || 2, spaceBetween: i.margin.size || 15 },
2168                          }
2169                        : {
2170                              320: {
2171                                  loop: !0,
2172                                  loopedSlides: 3,
2173                                  loopAdditionalSlides: 3,
2174                                  slidesPerView: 1,
2175                                  spaceBetween: i.margin.size || 15,
2176                              },
2177                          },
2178            });
2179            if ("11" === i.layout || "12" === i.layout) {
2180                let e = new Swiper(a[0], {
2181                    spaceBetween: 10,
2182                    centeredSlides: !0,
2183                    slidesPerView: 3,
2184                    touchRatio: 0.2,
2185                    slideToClickedSlide: !0,
2186                    loop: !0,
2187                    loopedSlides: 3,
2188                    loopAdditionalSlides: 3,
2189                });
2190                (l.controller.control = e), (e.controller.control = l);
2191            }
2192        },
2193        LogoCarousel: function (o) {
2194            let i,
2195                r = t.getElementSettings(o),
2196                a = o.find(".xpro-logo-carousel");
2197            e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
2198                a.owlCarousel({
2199                    loop: "yes" === r.loop,
2200                    nav: "yes" === r.nav,
2201                    navText: ["", ""],
2202                    rtl: "yes" === r.rtl,
2203                    dots: "yes" === r.dots,
2204                    mouseDrag: "yes" === r.mouse_drag,
2205                    responsiveBaseElement: i,
2206                    autoplay: "yes" === r.autoplay,
2207                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
2208                    autoplayHoverPause: !0,
2209                    smartSpeed: 1e3,
2210                    responsive: {
2211                        0: {
2212                            items: r.item_per_row_mobile || 1,
2213                            margin: r.margin_mobile.size || 0,
2214                            stagePadding: (r.margin_mobile.size || 0) / 2,
2215                        },
2216                        768: {
2217                            items: r.item_per_row_tablet || 2,
2218                            margin: r.margin_tablet.size || 0,
2219                            stagePadding: (r.margin_tablet.size || 0) / 2,
2220                        },
2221                        1024: {
2222                            items: r.item_per_row || 3,
2223                            margin: r.margin.size || 0,
2224                            stagePadding: (r.margin.size || 0) / 2,
2225                        },
2226                    },
2227                });
2228        },
2229        HoverCard: function (o) {
2230            let i = t.getElementSettings(o);
2231            ("1" === i.layout || "2" === i.layout || "3" === i.layout) &&
2232                o.find(".xpro-hover-card-item-1,.xpro-hover-card-item-2,.xpro-hover-card-item-3").hover(
2233                    function () {
2234                        e(this).find(".xpro-hover-card-description").slideDown(300);
2235                    },
2236                    function () {
2237                        e(this).find(".xpro-hover-card-description").slideUp(300);
2238                    }
2239                ),
2240                ("4" === i.layout || "6" === i.layout) &&
2241                    o.find(".xpro-hover-card-item-4,.xpro-hover-card-item-6").hover(
2242                        function () {
2243                            e(this).find(".xpro-hover-card-sub-title").slideDown(300),
2244                                e(this).find(".xpro-hover-card-description").slideDown(400);
2245                        },
2246                        function () {
2247                            e(this).find(".xpro-hover-card-description").slideUp(400),
2248                                e(this).find(".xpro-hover-card-sub-title").slideUp(300);
2249                        }
2250                    );
2251        },
2252        AdvanceAccordion: function (o) {
2253            let i = t.getElementSettings(o),
2254                r = 100 * i.toggle_speed.size || 100;
2255            o.find(".xpro-accordion-list.active .xpro-accordion-content").slideDown(r),
2256                o.find(".xpro-accordion-header").on("click", function (t) {
2257                    t.preventDefault(),
2258                        "toggle" === i.accordion_type &&
2259                            (e(this).parent().siblings().find(".xpro-accordion-content").slideUp(r),
2260                            e(this).parent().siblings().removeClass("active")),
2261                        e(this).parent().find(".xpro-accordion-content").slideToggle(r),
2262                        e(this).parent().toggleClass("active");
2263                });
2264        },
2265        Countdown: function (e) {
2266            let o = t.getElementSettings(e),
2267                i = e.find(".xpro-countdown"),
2268                r = e.find(".xpro-countdown-content"),
2269                a = e.find(".xpro-flipClock-countDown"),
2270                n = e.find(".xpro-countdown-end-message"),
2271                l = e.hasClass("elementor-element-edit-mode"),
2272                s = new Date().toString().match(/([A-Z]+[\+-][0-9]+.*)/)[1],
2273                p = "https:" === document.location.protocol ? "secure" : "";
2274            if (((document.cookie = "XproLocalTimeZone=" + s + ";SameSite=Strict;" + p), "yes" === o.show_flip_clock)) {
2275                var d = new Date(o.due_date).getTime(),
2276                    c = new Date().getTime(),
2277                    u = Math.floor((d - c) / 1e3);
2278                u < 0 && (u = 0), n.hide();
2279                new FlipClock(a[0], u, {
2280                    clockFace: "DailyCounter",
2281                    countdown: !0,
2282                    language: "Custom",
2283                    autoStart: !0,
2284                    callbacks: {
2285                        stop: function () {
2286                            "message" === o.end_action_type || "template" === o.end_action_type
2287                                ? (a.hide(), n.show())
2288                                : "url" === o.end_action_type &&
2289                                  o.end_redirect_link &&
2290                                  window.location.replace(o.end_redirect_link);
2291                        },
2292                    },
2293                });
2294            } else
2295                i.countdown({
2296                    end: function () {
2297                        "message" === o.end_action_type || "template" === o.end_action_type
2298                            ? (i.css("display", "none"), r.css("display", "block"))
2299                            : "url" === o.end_action_type &&
2300                              void 0 !== o.end_redirect_link &&
2301                              !0 !== l &&
2302                              window.location.replace(o.end_redirect_link);
2303                    },
2304                });
2305        },
2306        PostCarousel: function (o) {
2307            let i,
2308                r = t.getElementSettings(o),
2309                a = o.find(".xpro-post-grid-main");
2310            e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
2311                a.owlCarousel({
2312                    loop: "yes" === r.loop,
2313                    nav: "yes" === r.nav,
2314                    navText: ["", ""],
2315                    rtl: "yes" === r.rtl,
2316                    dots: "yes" === r.dots,
2317                    mouseDrag: "yes" === r.mouse_drag,
2318                    responsiveBaseElement: i,
2319                    autoplay: "yes" === r.autoplay,
2320                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
2321                    autoplayHoverPause: !0,
2322                    smartSpeed: 1e3,
2323                    autoHeight: "yes" === r.autoheight,
2324                    responsive: {
2325                        0: {
2326                            items: r.item_per_row_mobile || 1,
2327                            margin: r.margin_mobile.size || 0,
2328                            stagePadding: (r.margin_mobile.size || 0) / 2,
2329                        },
2330                        768: {
2331                            items: r.item_per_row_tablet || 2,
2332                            margin: r.margin_tablet.size || 0,
2333                            stagePadding: (r.margin_tablet.size || 0) / 2,
2334                        },
2335                        1024: {
2336                            items: r.item_per_row || 3,
2337                            margin: r.margin.size || 15,
2338                            stagePadding: (r.margin.size || 15) / 2,
2339                        },
2340                    },
2341                });
2342        },
2343        DrawSVG: function (e) {
2344            let o = t.getElementSettings(e),
2345                i = e.find(".xpro-draw-svg-wrapper svg");
2346            var r = i.drawsvg({
2347                duration: 1e3 * o.duration.size || 1e3,
2348                stagger: 100 * o.stagger.size || 100,
2349                easing: "swing",
2350                reverse: "yes" === o.reverse,
2351                callback: function () {
2352                    "yes" !== o.hover &&
2353                        "yes" === o.loop &&
2354                        setTimeout(function () {
2355                            r.drawsvg("animate");
2356                        }, 6e3);
2357                },
2358            });
2359            i.elementorWaypoint(
2360                function () {
2361                    r.drawsvg("animate");
2362                },
2363                { offset: "100%" }
2364            ),
2365                "yes" === o.hover &&
2366                    e.find(".xpro-draw-svg-wrapper").mouseenter(function () {
2367                        r.drawsvg("animate");
2368                    });
2369        },
2370        ModalPopup: function (o) {
2371            let i = t.getElementSettings(o),
2372                r = o.find(".xpro-elementor-modal-popup-toggle"),
2373                a = o.find(".xpro-elementor-modal-popup-close-btn"),
2374                n = o.find(".xpro-elementor-modal-popup-overlay"),
2375                l = o.find(".xpro-elementor-modal-popup-wrapper");
2376            const s = i.due_date && i.due_date.size ? 1e3 * i.due_date.size : 1e3;
2377            if (
2378                (a.on("click", function () {
2379                    l.removeClass("active");
2380                }),
2381                r.on("click", function () {
2382                    l.toggleClass("active");
2383                }),
2384                a.on("click", function () {
2385                    l.removeClass("active"), l.addClass("closed");
2386                }),
2387                "yes" === i.overlay_exit &&
2388                    n.on("click", function () {
2389                        l.removeClass("active"), l.addClass("closed");
2390                    }),
2391                "yes" === i.esc_exit &&
2392                    e(document).keyup(function (e) {
2393                        "Escape" === e.key && (l.removeClass("active"), l.addClass("closed"));
2394                    }),
2395                "intent" === i.layout &&
2396                    e(document).on("mouseleave", function (e) {
2397                        (e.clientY <= 0 ||
2398                            e.clientX <= 0 ||
2399                            e.clientX >= window.innerWidth ||
2400                            e.clientY >= window.innerHeight) &&
2401                            !l.hasClass("closed") &&
2402                            l.addClass("active");
2403                    }),
2404                "on_scroll" === i.layout &&
2405                    e(window).scroll(function () {
2406                        e(this).scrollTop() > (i.scroll_offset.size || 100) &&
2407                            !l.hasClass("closed") &&
2408                            l.addClass("active");
2409                    }),
2410                "user_inactive" === i.layout)
2411            ) {
2412                var p = 0;
2413                e(window).mousemove(function (e) {
2414                    p = 0;
2415                });
2416                var d = setInterval(function () {
2417                    ++p > (i.user_inactive_duration.size || 3) &&
2418                        !l.hasClass("closed") &&
2419                        (l.addClass("active"), (p = 0), clearInterval(d));
2420                }, 1e3);
2421            }
2422            if ("on_days" === i.layout) {
2423                const t = new Date().getDay().toString();
2424                i.selected_days &&
2425                    i.selected_days.includes(t) &&
2426                    (setTimeout(function () {
2427                        l.addClass("active");
2428                    }, s),
2429                    i.due_date > 0 && !elementorFrontend.isEditMode()
2430                        ? a.on("click", function () {
2431                              let t = new Date();
2432                              t.setTime(t.getTime() + 36e5 * i.due_time),
2433                                  e.cookie(`xpro-modal-popup-cookies-${o.data("id")}`, "valid", { expires: t });
2434                          })
2435                        : e.removeCookie(`xpro-modal-popup-cookies-${o.data("id")}`));
2436            }
2437            if ("on_date" === i.layout) {
2438                let e = new Date(i.date).toDateString();
2439                new Date().toDateString() !== e ||
2440                    l.hasClass("closed") ||
2441                    setTimeout(
2442                        function () {
2443                            l.addClass("active");
2444                        },
2445                        1e3 * i.splash_after.size || 1e3
2446                    );
2447            }
2448            if (
2449                ("splash" === i.layout &&
2450                    setTimeout(
2451                        function () {
2452                            l.addClass("active");
2453                        },
2454                        1e3 * i.splash_after.size || 1e3
2455                    ),
2456                "custom" === i.layout &&
2457                    "" !== i.modal_custom_class &&
2458                    (e("#" + i.modal_custom_class).on("click", function (e) {
2459                        e.preventDefault(), l.toggleClass("active");
2460                    }),
2461                    e("." + i.modal_custom_class).on("click", function (e) {
2462                        e.preventDefault(), l.toggleClass("active");
2463                    })),
2464                "scroll_to_element" === i.layout && "" !== i.modal_scroll_selector)
2465            ) {
2466                var c = e("#" + i.modal_scroll_selector) || e("." + i.modal_scroll_selector);
2467                if (c.length) {
2468                    var u = c.first().offset().top;
2469                    e(window).on("scroll", function () {
2470                        e(document).scrollTop() > u && !l.hasClass("closed") && l.addClass("active");
2471                    });
2472                }
2473            }
2474            "inline" === i.layout &&
2475                a.on("click", function () {
2476                    e(this).parents(".elementor-widget-xpro-modal-popup").fadeOut(300);
2477                }),
2478                i.due_date > 0 && !elementorFrontend.isEditMode()
2479                    ? a.on("click", function () {
2480                          let t = new Date();
2481                          t.setTime(t.getTime() + 864e5 * i.due_date),
2482                              e.cookie(`xpro-modal-popup-cookies-${o.data("id")}`, "valid", { expires: t });
2483                      })
2484                    : e.removeCookie(`xpro-modal-popup-cookies-${o.data("id")}`);
2485        },
2486        ImageAccordion: function (o) {
2487            t.getElementSettings(o),
2488                o.find(".xpro-image-accordion-wrapper"),
2489                o.find(".xpro-image-accordion-click").on("click", function (t) {
2490                    e(this).addClass("active").siblings().removeClass("active");
2491                });
2492        },
2493        DeviceSlider: function (o) {
2494            let i,
2495                r = t.getElementSettings(o),
2496                a = o.find(".xpro-device-slider");
2497            e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
2498                a.owlCarousel({
2499                    loop: "yes" === r.loop,
2500                    nav: "yes" === r.nav,
2501                    navText: ["", ""],
2502                    dots: "yes" === r.dots,
2503                    mouseDrag: "yes" === r.mouse_drag,
2504                    responsiveBaseElement: i,
2505                    autoplay: "yes" === r.autoplay,
2506                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
2507                    autoplayHoverPause: !0,
2508                    smartSpeed: 1e3,
2509                    responsive: {
2510                        0: { items: r.item_per_row_mobile || 1 },
2511                        768: { items: r.item_per_row_tablet || 1 },
2512                        1024: { items: r.item_per_row || 1 },
2513                    },
2514                });
2515            let n = o.find(".xpro-device-slider-item > video"),
2516                l = 0,
2517                s = 0;
2518            n.each(function () {
2519                (l = e(this).parent().height()), (s = e(this).parent().width()), n.width(s), n.height(l);
2520            });
2521        },
2522        GoogleMap: function (e) {
2523            t.getElementSettings(e);
2524            let o = e.find(".xpro-google-map"),
2525                i = o.data("map_settings"),
2526                r = o.data("map_markers");
2527            if (o.length) {
2528                var a = new GMaps(i);
2529                for (var n in r) a.addMarker(r[n]);
2530                o.data("map_style") &&
2531                    (a.addStyle({ styledMapName: "Custom Map", styles: o.data("map_style"), mapTypeId: "map_style" }),
2532                    a.setStyle("map_style"));
2533            }
2534        },
2535        GoogleReviews: function (e) {
2536            let o = t.getElementSettings(e),
2537                i = e.find(".xpro-business-reviews"),
2538                r = o.nav_prev_icon?.value,
2539                a = o.nav_next_icon?.value;
2540            e.find(".cbp-nav-prev");
2541            r && jQuery(".cbp-nav-controls .cbp-nav-prev").append(`<i class="${r}"></i>`),
2542                a && jQuery(".cbp-nav-controls .cbp-nav-next").append(`<i class="${a}"></i>`),
2543                setTimeout(function () {
2544                    var e = "grid",
2545                        t = jQuery(window).width();
2546                    (e =
2547                        t < elementorFrontend.config.breakpoints.md
2548                            ? o.show_reviews_mobile || "grid"
2549                            : t < elementorFrontend.config.breakpoints.lg
2550                              ? o.show_reviews_tablet || "grid"
2551                              : o.show_reviews || "grid"),
2552                        i.cubeportfolio({
2553                            drag: !0,
2554                            auto: o.show_auto_play,
2555                            displayType: "lazyLoading",
2556                            displayTypeSpeed: 100,
2557                            showNavigation: o.show_directions_icons,
2558                            layoutMode: e,
2559                            mediaQueries: [
2560                                {
2561                                    width: elementorFrontend.config.breakpoints.lg,
2562                                    cols: parseInt(o.column_grid) || 3,
2563                                    options: {
2564                                        gapHorizontal: parseInt(o.space_between?.size) || 0,
2565                                        gapVertical: parseInt(o.space_between?.size) || 0,
2566                                    },
2567                                },
2568                                {
2569                                    width: elementorFrontend.config.breakpoints.md,
2570                                    cols: parseInt(o.column_grid_tablet) || 2,
2571                                    options: {
2572                                        gapHorizontal: parseInt(o.space_between_tablet?.size) || 0,
2573                                        gapVertical: parseInt(o.space_between_tablet?.size) || 0,
2574                                    },
2575                                },
2576                                {
2577                                    width: 0,
2578                                    cols: parseInt(o.column_grid_mobile) || 1,
2579                                    options: {
2580                                        gapHorizontal: parseInt(o.space_between_mobile?.size) || 0,
2581                                        gapVertical: parseInt(o.space_between_mobile?.size) || 0,
2582                                    },
2583                                },
2584                            ],
2585                        });
2586                }, 1e3);
2587        },
2588        StreetMap: function (e) {
2589            t.getElementSettings(e);
2590            let o = e.find(".xpro-open-street-map"),
2591                i = o.data("settings"),
2592                r = o.data("map_markers"),
2593                a = "";
2594            if (o.length) {
2595                var n = L.map(o[0], { zoomControl: i.zoomControl, scrollWheelZoom: !1 }).setView(
2596                    [i.lat, i.lng],
2597                    i.zoom
2598                );
2599                for (var l in ("" !== i.mapboxToken
2600                    ? ((a = "https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=" + i.mapboxToken),
2601                      L.tileLayer(a, {
2602                          maxZoom: 18,
2603                          attribution:
2604                              'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery &copy; <a href="https://www.mapbox.com/">Mapbox</a>',
2605                          id: "mapbox/streets-v11",
2606                          tileSize: 512,
2607                          zoomOffset: -1,
2608                      }).addTo(n))
2609                    : L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
2610                          maxZoom: 18,
2611                          attribution:
2612                              '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
2613                      }).addTo(n),
2614                r))
2615                    if (r[l].iconUrl.length) {
2616                        var s = new (L.Icon.extend({
2617                            options: { iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [2, -41] },
2618                        }))({ iconUrl: r[l].iconUrl });
2619                        L.marker([r[l].lat, r[l].lng], { icon: s }).bindPopup(r[l].infoWindow).addTo(n);
2620                    } else L.marker([r[l].lat, r[l].lng]).bindPopup(r[l].infoWindow).addTo(n);
2621            }
2622        },
2623        VerticalTimeline: function (o) {
2624            function i() {
2625                let t = o.find(".xpro-vertical-timeline-date > div"),
2626                    i = 0;
2627                t.each(function () {
2628                    i = Math.max(i, e(this).outerWidth());
2629                }),
2630                    t.parent().css({ minWidth: i + "px" });
2631            }
2632            t.getElementSettings(o),
2633                i(),
2634                e(window).on("resize", function () {
2635                    setTimeout(function () {
2636                        i();
2637                    }, 500);
2638                }),
2639                "undefined" != typeof AOS && AOS.init(),
2640                e(window).on("scroll resize", function () {
2641                    var t, o;
2642                    (t = e(window).height()),
2643                        (o = e(window).scrollTop()),
2644                        e(".xpro-vertical-timeline-inner").each(function () {
2645                            var i = e(this),
2646                                r = i.offset().top,
2647                                a = i.outerHeight();
2648                            o + t > r + a / 4 && o < r + a
2649                                ? i.addClass("xpro-vertical-active")
2650                                : i.removeClass("xpro-vertical-active");
2651                        });
2652                });
2653        },
2654        Unfold: function (o) {
2655            let i = t.getElementSettings(o);
2656            o.find("xpro-unfold-wrapper"),
2657                o.find(".xpro-unfold-hover .xpro-unfold-content").hover(
2658                    function () {
2659                        let t = e(this).find(".xpro-unfold-content-inner").outerHeight();
2660                        e(this).css({ height: t + "px" }), o.find(".xpro-unfold-btn").addClass("active");
2661                    },
2662                    function () {
2663                        e(this).css({ height: i.unfold_height.size || 100 + i.unfold_height.unit || "px" }),
2664                            o.find(".xpro-unfold-btn").removeClass("active");
2665                    }
2666                ),
2667                o.find(".xpro-unfold-click .xpro-unfold-btn").data("clicks", 0),
2668                o.find(".xpro-unfold-click .xpro-unfold-btn").on("click", function (t) {
2669                    t.preventDefault();
2670                    let r = +e(this).data("clicks"),
2671                        a = o.find(".xpro-unfold-content-inner").outerHeight();
2672                    r % 2 == 0
2673                        ? (o
2674                              .find(".xpro-unfold-content")
2675                              .addClass("active")
2676                              .css({ height: a + "px" }),
2677                          e(this).addClass("active"))
2678                        : (o
2679                              .find(".xpro-unfold-content")
2680                              .removeClass("active")
2681                              .css({ height: i.unfold_height.size || 100 + i.unfold_height.unit || "px" }),
2682                          e(this).removeClass("active")),
2683                        e(this).data("clicks", r + 1);
2684                });
2685        },
2686        Cookies: function (e) {
2687            let o = t.getElementSettings(e).expiry_days.size,
2688                i = e.find(".xpro-cookies-wrapper"),
2689                r = e.find(".xpro-cookies-btn");
2690            function a(e, t, o) {
2691                var i = new Date();
2692                i.setTime(i.getTime() + 864e5 * o);
2693                var r = "expires=" + i.toUTCString();
2694                document.cookie = e + "=" + t + ";" + r + ";path=/";
2695            }
2696            elementorFrontend.isEditMode() &&
2697                (function () {
2698                    for (var e = document.cookie.split(";"), t = 0; t < e.length; t++) a(e[t].split("=")[0], "", -1);
2699                })(),
2700                i.offsetHeight,
2701                !(function (e) {
2702                    for (
2703                        var t = e + "=", o = decodeURIComponent(document.cookie).split(";"), i = 0;
2704                        i < o.length;
2705                        i++
2706                    ) {
2707                        for (var r = o[i]; " " === r.charAt(0); ) r = r.substring(1);
2708                        if (0 === r.indexOf(t)) return r.substring(t.length, r.length);
2709                    }
2710                    return "";
2711                })("XproCookies") && i.addClass("active"),
2712                r.on("click", function (e) {
2713                    e.preventDefault(), a("XproCookies", !0, o), i.removeClass("active");
2714                });
2715        },
2716        AlertBox: function (e) {
2717            let o = t.getElementSettings(e);
2718            t.getElementSettings(e),
2719                e.find(".xpro-alert-box-wrapper"),
2720                e.find(".xpro-alert-box-btn").click(function () {
2721                    e.find(".xpro-alert-box-wrapper").fadeOut("slow");
2722                });
2723            let i = "",
2724                r = e.find("#xpro-alert-box-lottie");
2725            o.lottie_url ? (i = o.lottie_url.url) : o.svg_upload && (i = o.svg_upload.url),
2726                lottie.loadAnimation({
2727                    container: r[0],
2728                    renderer: "svg",
2729                    loop: o.loop || !0,
2730                    autoplay: o.autoplay || !0,
2731                    path: i,
2732                });
2733        },
2734        Preloader: function (o) {
2735            let i = t.getElementSettings(o),
2736                r = 1e3 * i.preloader_animate_timeout.size || 1e3;
2737            (elementorFrontend.isEditMode() && "yes" === i.show_editor) ||
2738                setTimeout(function () {
2739                    o.find(".xpro-preloader").fadeOut(),
2740                        o
2741                            .find(".xpro-preloader-ink")
2742                            .addClass("closing")
2743                            .delay(r)
2744                            .queue(function () {
2745                                e(this).removeClass("visible closing opening").dequeue();
2746                            });
2747                }, r);
2748        },
2749        Video: function (o) {
2750            let i = t.getElementSettings(o);
2751            o.find("xpro-video-wrapper");
2752            let r = new Plyr(o.find(".xpro-player"), {
2753                controls: "yes" === i.controls && [
2754                    "play-large",
2755                    "play",
2756                    "progress",
2757                    "current-time",
2758                    "mute",
2759                    "volume",
2760                    "captions",
2761                    "settings",
2762                    "pip",
2763                    "airplay",
2764                    "fullscreen",
2765                ],
2766                youtube: { noCookie: !1, autoplay: "yes" === i.autoplay },
2767                vimeo: { autoplay: "yes" === i.autoplay },
2768                muted: "yes" === i.muted ? 1 : 0,
2769                loop: "yes" === i.loop ? { active: !0 } : { active: !1 },
2770            });
2771            if (
2772                (o.find(".xpro-sticky-video-overlay-media").on(
2773                    "click",
2774                    function () {
2775                        r.pause(), o.find(".xpro-sticky-video-overlay").removeClass("active").fadeOut();
2776                    },
2777                    function () {
2778                        r.play(), o.find(".xpro-sticky-video-overlay").addClass("active").fadeIn();
2779                    }
2780                ),
2781                "yes" === i.show_sticky)
2782            ) {
2783                let t = i.sticky_video_scroll_height.size || 100;
2784                r.on("play", function () {
2785                    e(window).scroll(function () {
2786                        e(this).scrollTop() > t
2787                            ? o.find(".xpro-video-box:not(.closed)").addClass("sticky")
2788                            : o.find(".xpro-video-box").removeClass("sticky");
2789                    });
2790                });
2791            }
2792            o.find(".sticky-cross-btn").click(function () {
2793                o.find(".xpro-video-box").removeClass("sticky"), o.find(".xpro-video-box").addClass("closed");
2794            });
2795        },
2796        FlipBox: function (o) {
2797            let i = t.getElementSettings(o),
2798                r = "",
2799                a = "",
2800                n = o.find("#xpro-flip-box-lottie-front"),
2801                l = o.find("#xpro-flip-box-lottie-back");
2802            i.lottie_url && i.lottie_url.url
2803                ? (r = i.lottie_url.url)
2804                : i.svg_upload && i.svg_upload.url && (r = i.svg_upload.url),
2805                i.lottie_url_back_media_type && i.lottie_url_back_media_type.url
2806                    ? (a = i.lottie_url_back_media_type.url)
2807                    : i.svg_upload_back_media_type &&
2808                      i.svg_upload_back_media_type.url &&
2809                      (a = i.svg_upload_back_media_type.url),
2810                n.length && r
2811                    ? lottie.loadAnimation({
2812                          container: n.get(0),
2813                          renderer: "svg",
2814                          loop: void 0 === i.loop || i.loop,
2815                          autoplay: void 0 === i.autoplay || i.autoplay,
2816                          path: r,
2817                      })
2818                    : console.error("Front Lottie container not found or invalid path"),
2819                l.length && a
2820                    ? lottie.loadAnimation({
2821                          container: l.get(0),
2822                          renderer: "svg",
2823                          loop: void 0 === i.loop || i.loop,
2824                          autoplay: void 0 === i.autoplay || i.autoplay,
2825                          path: a,
2826                      })
2827                    : console.error("Back Lottie container not found or invalid path", {}),
2828                o.find("xpro-flip-box-wrapper"),
2829                o.find(".xpro-flip-box-wrapper").on("click", function (t) {
2830                    t.preventDefault(),
2831                        e(window).width() <= elementorFrontend.config.breakpoints.lg &&
2832                            (e(this).hasClass("xpro-animate-up") && e(this).toggleClass("xpro-custom-animate-up"),
2833                            e(this).hasClass("xpro-animate-down") && e(this).toggleClass("xpro-custom-animate-down"),
2834                            e(this).hasClass("xpro-animate-left") && e(this).toggleClass("xpro-custom-animate-left"),
2835                            e(this).hasClass("xpro-animate-right") && e(this).toggleClass("xpro-custom-animate-right"),
2836                            e(this).hasClass("xpro-animate-zoom-in") &&
2837                                e(this).toggleClass("xpro-custom-animate-zoom-in"),
2838                            e(this).hasClass("xpro-animate-zoom-out") &&
2839                                e(this).toggleClass("xpro-custom-animate-zoom-out"),
2840                            e(this).hasClass("xpro-animate-skewUp") &&
2841                                e(this).toggleClass("xpro-custom-animate-skewUp"),
2842                            e(this).hasClass("xpro-animate-fade") && e(this).toggleClass("xpro-custom-animate-fade"),
2843                            e(this).hasClass("xpro-animate-rotate-right") &&
2844                                e(this).toggleClass("xpro-custom-animate-rotate-right"),
2845                            e(this).hasClass("xpro-animate-rotate-left") &&
2846                                e(this).toggleClass("xpro-custom-animate-rotate-left"),
2847                            e(this).hasClass("xpro-animate-slide-right") &&
2848                                e(this).toggleClass("xpro-custom-animate-slide-right"),
2849                            e(this).hasClass("xpro-animate-slide-left") &&
2850                                e(this).toggleClass("xpro-custom-animate-slide-left"),
2851                            e(this).hasClass("xpro-animate-slide-top") &&
2852                                e(this).toggleClass("xpro-custom-animate-slide-top"),
2853                            e(this).hasClass("xpro-animate-slide-bottom") &&
2854                                e(this).toggleClass("xpro-custom-animate-slide-bottom"));
2855                });
2856        },
2857        TextMarquee: function (e) {
2858            let o = t.getElementSettings(e),
2859                i = e.find(".xpro-text-marquee-inner").get(0);
2860            ("up" != o.text_marquee_direction && "down" != o.text_marquee_direction) ||
2861                (i.style.height = o.box_height.size + o.box_height.unit);
2862        },
2863        MouseCursor: function (o) {
2864            let i = t.getElementSettings(o),
2865                r = e("body");
2866            o.find(".xpro-mouse-cursor-wrapper"),
2867                ("1" === i.cursor_layout || "3" === i.cursor_layout) &&
2868                    (e("div.xpro-mouse-cursor-wrapper").remove(),
2869                    r.append(
2870                        '<div class="xpro-mouse-cursor-wrapper"><div class="xpro-mouse-cursor-layout-' +
2871                            i.cursor_layout +
2872                            ' "><div class="xpro-cursor-dot xpro-cursor-dot-outline"></div></div></div>'
2873                    ),
2874                    r.css({ cursor: "auto" })),
2875                "1" !== i.cursor_layout &&
2876                    "3" !== i.cursor_layout &&
2877                    (e("div.xpro-mouse-cursor-wrapper").remove(),
2878                    r.append(
2879                        '<div class="xpro-mouse-cursor-wrapper"><div class="xpro-mouse-cursor-layout-' +
2880                            i.cursor_layout +
2881                            ' "><div class="xpro-cursor-dot-outline"></div><div class="xpro-cursor-dot"></div></div></div>'
2882                    ),
2883                    r.css({ cursor: "none" })),
2884                {
2885                    delay: 8,
2886                    _x: 0,
2887                    _y: 0,
2888                    endX: window.innerWidth / 2,
2889                    endY: window.innerHeight / 2,
2890                    cursorVisible: !0,
2891                    cursorEnlarged: !1,
2892                    $dot: document.querySelector(".xpro-cursor-dot"),
2893                    $outline: document.querySelector(".xpro-cursor-dot-outline"),
2894                    init: function () {
2895                        (this.dotSize = this.$dot.offsetWidth),
2896                            (this.outlineSize = this.$outline.offsetWidth),
2897                            this.setupEventListeners(),
2898                            this.animateDotOutline();
2899                    },
2900                    setupEventListeners: function () {
2901                        var e = this;
2902                        document.querySelectorAll("a").forEach(function (t) {
2903                            t.addEventListener("mouseover", function () {
2904                                (e.cursorEnlarged = !0), e.toggleCursorSize();
2905                            }),
2906                                t.addEventListener("mouseout", function () {
2907                                    (e.cursorEnlarged = !1), e.toggleCursorSize();
2908                                });
2909                        }),
2910                            document.addEventListener("mousedown", function () {
2911                                (e.cursorEnlarged = !0), e.toggleCursorSize();
2912                            }),
2913                            document.addEventListener("mouseup", function () {
2914                                (e.cursorEnlarged = !1), e.toggleCursorSize();
2915                            }),
2916                            document.addEventListener("mousemove", function (t) {
2917                                (e.cursorVisible = !0),
2918                                    e.toggleCursorVisibility(),
2919                                    (e.endX = t.pageX),
2920                                    (e.endY = t.pageY),
2921                                    (e.$dot.style.top = e.endY + "px"),
2922                                    (e.$dot.style.left = e.endX + "px");
2923                            }),
2924                            document.addEventListener("mouseenter", function (t) {
2925                                (e.cursorVisible = !0),
2926                                    e.toggleCursorVisibility(),
2927                                    (e.$dot.style.opacity = 1),
2928                                    (e.$outline.style.opacity = 1);
2929                            }),
2930                            document.addEventListener("mouseleave", function (t) {
2931                                (e.cursorVisible = !0),
2932                                    e.toggleCursorVisibility(),
2933                                    (e.$dot.style.opacity = 0),
2934                                    (e.$outline.style.opacity = 0);
2935                            });
2936                    },
2937                    animateDotOutline: function () {
2938                        var e = this;
2939                        (e._x += (e.endX - e._x) / e.delay),
2940                            (e._y += (e.endY - e._y) / e.delay),
2941                            (e.$outline.style.top = e._y + "px"),
2942                            (e.$outline.style.left = e._x + "px"),
2943                            requestAnimationFrame(this.animateDotOutline.b
2943ind(e));
2944                    },
2945                    toggleCursorSize: function () {
2946                        var e = this;
2947                        e.cursorEnlarged
2948                            ? ((e.$dot.style.transform = "translate(-50%, -50%) scale(1.5)"),
2949                              (e.$outline.style.transform = "translate(-50%, -50%) scale(1.5)"))
2950                            : ((e.$dot.style.transform = "translate(-50%, -50%) scale(1)"),
2951                              (e.$outline.style.transform = "translate(-50%, -50%) scale(1)"));
2952                    },
2953                    toggleCursorVisibility: function () {
2954                        var e = this;
2955                        e.cursorVisible
2956                            ? ((e.$dot.style.opacity = 1), (e.$outline.style.opacity = 1))
2957                            : ((e.$dot.style.opacity = 0), (e.$outline.style.opacity = 0));
2958                    },
2959                }.init();
2960        },
2961        OnePageNavigation: function (o) {
2962            let i = t.getElementSettings(o),
2963                r = (o.find(".xpro-one-page-nav-wrapper"), i.scroll_height_page_nav.size || 20),
2964                a = 1e3 * i.transition_duration_page_nav.size || 1e3;
2965            e(document).ready(function () {
2966                e(".xpro-one-page-nav li:first-child a").addClass("active"),
2967                    e(".xpro-one-page-nav li a").on("click", function (t) {
2968                        t.preventDefault();
2969                        var o = this,
2970                            i = this.hash,
2971                            n = e(i);
2972                        e("html, body")
2973                            .stop()
2974                            .animate({ scrollTop: n.offset().top + r }, a, "swing", function () {
2975                                (window.location.hash = i),
2976                                    e(".xpro-one-page-nav li a").removeClass("active"),
2977                                    e(o).addClass("active");
2978                            });
2979                    }),
2980                    e(window).scroll(function (t) {
2981                        var o = e(document).scrollTop();
2982                        0 !== o
2983                            ? e(".xpro-one-page-nav li a").each(function () {
2984                                  var t = e(this),
2985                                      i = e(t.attr("href"));
2986                                  (i.position().top <= o && i.position().top + i.height()) || 0 > o
2987                                      ? (e(".xpro-one-page-nav li a").removeClass("active"), t.addClass("active"))
2988                                      : t.removeClass("active");
2989                              })
2990                            : e(".xpro-one-page-nav li:first-child a").addClass("active");
2991                    });
2992            });
2993        },
2994        AjaxSearch: function (o) {
2995            let i,
2996                r = t.getElementSettings(o),
2997                a = Array.isArray(r.post_type) ? r.post_type.join(",") : r.post_type,
2998                n = Array.isArray(r.exclude_posts) ? r.exclude_posts.join(",") : r.exclude_posts,
2999                l = r.posts_per_page,
3000                s = r.order,
3001                p = r.show_img,
3002                d = r.show_title,
3003                c = r.show_desc,
3004                u = r.search_redirect,
3005                m = "",
3006                f = o.find("form").attr("data-ajaxURL"),
3007                g = o.find("form").attr("data-nonce");
3008            function h() {
3009                let t = {
3010                    action: "xpro_elementor_live_search_data_fetch",
3011                    keyword: o.find(".xpro-search-keyword-cls").val(),
3012                    nonce: g,
3013                    post_type: a,
3014                    exclude_posts: n,
3015                    posts_per_page: l,
3016                    order: s,
3017                    display_img: p,
3018                    display_title: d,
3019                    display_content: c,
3020                };
3021                e.ajax({
3022                    url: f,
3023                    type: "post",
3024                    data: t,
3025                    beforeSend: function () {
3026                        o.find(".xpro-elementor-serch-input-group").addClass("xpro-loading-spinner"),
3027                            o.find(".xpro-ajax-data-fetch-wrapper").css("display", "none");
3028                    },
3029                    complete: function () {
3030                        o.find(".xpro-elementor-search-input-group").removeClass("xpro-loading-spinner");
3031                    },
3032                    success: function (e) {
3033                        e &&
3034                            (o.find("#xpro_elementor_live_search_data_fetch").html(e),
3035                            o.find(".xpro-ajax-data-fetch-wrapper").css("display", "block"));
3036                    },
3037                    error: function (e, t) {
3038                        var o;
3039                        (o =
3040                            0 === e.status
3041                                ? "Not connect.\n Verify Network."
3042                                : 404 == e.status
3043                                  ? "Requested page not found. [404]"
3044                                  : 500 == e.status
3045                                    ? "Internal Server Error [500]."
3046                                    : "parsererror" === t
3047                                      ? "Requested JSON parse failed."
3048                                      : "timeout" === t
3049                                        ? "Time out error."
3050                                        : "abort" === t
3051                                          ? "Ajax request aborted."
3052                                          : "Uncaught Error.\n" + e.responseText),
3053                            console.log(o);
3054                    },
3055                });
3056            }
3057            (m = "yes" === u ? "yes" : "no"),
3058                o.find(".xpro-search-keyword-cls").keyup(function () {
3059                    clearTimeout(i), o.find(".xpro-search-keyword-cls").val() && (i = setTimeout(h, 800));
3060                }),
3061                "no" == m &&
3062                    o.find("#searchsubmit").on("click", function (e) {
3063                        e.preventDefault(), h();
3064                    }),
3065                "no" == m &&
3066                    e(document).ready(function () {
3067                        e(window).keydown(function (e) {
3068                            if (13 == e.keyCode) return e.preventDefault(), !1;
3069                        });
3070                    }),
3071                e("body").click(function () {
3072                    o.find(".xpro-ajax-data-fetch-wrapper").css("display", "none");
3073                }),
3074                ("4" === r.layout || "5" === r.layout) &&
3075                    (o.find(".xpro-elementor-search-button").on("click", function (e) {
3076                        e.preventDefault(),
3077                            e.stopPropagation(),
3078                            o.find(".xpro-elementor-search-layout-4 .xpro-elementor-search-inner").fadeIn(400),
3079                            o.find(".xpro-elementor-search-layout-5 .xpro-elementor-search-inner").slideDown(400);
3080                    }),
3081                    o.find(".xpro-elementor-search-button-close").on("click", function (e) {
3082                        e.preventDefault(),
3083                            e.stopPropagation(),
3084                            o.find(".xpro-elementor-search-layout-4 .xpro-elementor-search-inner").fadeOut(400),
3085                            o.find(".xpro-elementor-search-layout-5 .xpro-elementor-search-inner").slideUp(400);
3086                    }));
3087        },
3088        SourceCode: function (o) {
3089            t.getElementSettings(o);
3090            let i = o.find(".xpro-source-code"),
3091                r = i.data("language-type"),
3092                a = i.data("after-copy"),
3093                n = i.find("code.language-" + r);
3094            o.find(".xpro-source-code-btn").on("click", function () {
3095                var t = e("<textarea>");
3096                e(this).append(t),
3097                    t.val(n.text()).select(),
3098                    document.execCommand("copy"),
3099                    t.remove(),
3100                    a.length && e(this).text(a);
3101            }),
3102                void 0 !== r && void 0 !== n && Prism.highlightElement(n.get(0));
3103        },
3104        ImageMagnify: function (e) {
3105            let o = t.getElementSettings(e);
3106            e.find(".xpro-image-magnify"),
3107                "default" === o.zoomType &&
3108                    e
3109                        .find(".xpro-image-magnify-img")
3110                        .elevateZoom({
3111                            scrollZoom: o.scrollZoom,
3112                            zoomWindowWidth: o.zoomWindowSize.size,
3113                            zoomWindowHeight: o.zoomWindowSize.size,
3114                            zoomWindowOffetx: o.zoomWindowOffetx.size,
3115                            zoomWindowOffety: o.zoomWindowOffety.size,
3116                            zoomWindowPosition: Number(o.zoomWindowPosition) || 1,
3117                            cursor: "crosshair",
3118                            lensFadeIn: 500,
3119                            lensFadeOut: 500,
3120                            zoomWindowFadeIn: 500,
3121                            zoomWindowFadeOut: 500,
3122                            borderSize: 0,
3123                            easing: !0,
3124                        }),
3125                "default" !== o.zoomType &&
3126                    e
3127                        .find(".xpro-image-magnify-img")
3128                        .elevateZoom({
3129                            zoomType: o.zoomType,
3130                            lensShape: "lens" === o.zoomType ? o.lensShape : "",
3131                            lensSize: "lens" === o.zoomType ? o.lensSize.size : "",
3132                            cursor: "crosshair",
3133                            zoomWindowFadeIn: 500,
3134                            zoomWindowFadeOut: 500,
3135                            lensFadeIn: 500,
3136                            lensFadeOut: 500,
3137                            easing: !0,
3138                        });
3139        },
3140        InstagramFeed: function (o) {
3141            let i = t.getElementSettings(o),
3142                r = o.find(".xpro-elementor-gallery-wrapper"),
3143                a = (o.find(".xpro-elementor-gallery-item"), o.find(".xpro-gallery-elementor-loadmore")),
3144                n = "masonry" === i.gallery_style ? "grid" : i.gallery_style;
3145            function l() {
3146                if (
3147                    "none" !== i.popup &&
3148                    (r.lightGallery({
3149                        pager: !0,
3150                        addClass: "xpro-gallery-popup-style-" + i.popup,
3151                        selector: "[data-xpro-lightbox]",
3152                        thumbnail: "yes" === i.thumbnail,
3153                        exThumbImage: "data-src",
3154                        thumbWidth: 130,
3155                        thumbMargin: 15,
3156                        closable: !1,
3157                        showThumbByDefault: "yes" === i.thumbnail_by_default,
3158                        thumbContHeight: 150,
3159                        subHtmlSelectorRelative: !0,
3160                        hideBarsDelay: 99999999,
3161                        share: "yes" === i.share,
3162                        download: "yes" === i.download,
3163                    }),
3164                    "3" === i.popup || "4" === i.popup)
3165                ) {
3166                    var t = null;
3167                    r.on("onBeforeSlide.lg", function (o, a, n) {
3168                        (t = r.data("lightGallery").$items.eq(n).attr("data-src")),
3169                            "album" === i.gallery_type &&
3170                                (t =
3171                                    n > 0
3172                                        ? e(this).find(".xpro-elementor-gallery-preview").eq(n).attr("data-src")
3173                                        : e(this).find(".cbp-l-caption-alignCenter").data("src")),
3174                            e(".lg-backdrop").addClass("xpro-popup-blur"),
3175                            e(".lg-backdrop").css({ "background-image": "url(" + t + ")" });
3176                    });
3177                }
3178            }
3179            r.cubeportfolio({
3180                layoutMode: n,
3181                gridAdjustment: "responsive",
3182                lightboxGallery: !1,
3183                mediaQueries: [
3184                    {
3185                        width: elementorFrontend.config.breakpoints.lg,
3186                        cols: i.item_per_row || 3,
3187                        options: { gapHorizontal: i.margin.size || 0, gapVertical: i.margin.size || 0 },
3188                    },
3189                    {
3190                        width: elementorFrontend.config.breakpoints.md,
3191                        cols: i.item_per_row_tablet || 2,
3192                        options: { gapHorizontal: i.margin_tablet.size || 0, gapVertical: i.margin_tablet.size || 0 },
3193                    },
3194                    {
3195                        width: 0,
3196                        cols: i.item_per_row_mobile || 1,
3197                        options: { gapHorizontal: i.margin_mobile.size || 0, gapVertical: i.margin_mobile.size || 0 },
3198                    },
3199                ],
3200                caption: i.hover_effect || "zoom",
3201                displayType: "sequentially",
3202                displayTypeSpeed: 80,
3203                plugins: {
3204                    loadMore: {
3205                        element: o.find(".cbp-l-loadMore-button"),
3206                        action: i.load_more || "click",
3207                        loadItems: i.item_per_row || 3,
3208                    },
3209                    sort: { element: o.find(".cbp-loadMore-block1") },
3210                },
3211            }),
3212                a.on("XproClassChanged", function () {
3213                    r.data("lightGallery") &&
3214                        "none" !== i.popup &&
3215                        setTimeout(function () {
3216                            r.data("lightGallery").destroy(!0), l();
3217                        }, 1e3);
3218                }),
3219                l();
3220        },
3221        SlideAnything: function (o) {
3222            let i,
3223                r = t.getElementSettings(o),
3224                a = o.find(".xpro-slide-anything");
3225            e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
3226                a.owlCarousel({
3227                    loop: "yes" === r.loop,
3228                    center: "yes" === r.center,
3229                    startPosition: "yes" === r.center && r.start_position ? r.start_position : 0,
3230                    nav: "yes" === r.nav,
3231                    navText: ["", ""],
3232                    rtl: "yes" === r.rtl,
3233                    dots: "yes" === r.dots,
3234                    mouseDrag: "yes" === r.mouse_drag,
3235                    touchDrag: !0,
3236                    autoHeight: !1,
3237                    autoWidth: "yes" === r.custom_width,
3238                    responsiveBaseElement: i,
3239                    autoplay: "yes" === r.autoplay,
3240                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
3241                    autoplayHoverPause: !0,
3242                    smartSpeed: 500,
3243                    responsive: {
3244                        0: {
3245                            items: r.item_per_row_mobile || 1,
3246                            margin: r.margin_mobile.size || 0,
3247                            stagePadding: (r.margin_mobile.size || 0) / 2,
3248                        },
3249                        768: {
3250                            items: r.item_per_row_tablet || 1,
3251                            margin: r.margin_tablet.size || 0,
3252                            stagePadding: (r.margin_tablet.size || 0) / 2,
3253                        },
3254                        1024: {
3255                            items: r.item_per_row || 2,
3256                            margin: r.margin.size || 15,
3257                            stagePadding: (r.margin.size || 0) / 2,
3258                        },
3259                    },
3260                });
3261        },
3262        ScrollToTop: function (o) {
3263            let i = t.getElementSettings(o),
3264                r =
3265                    (o.find(".xpro-elementor-scroll-top-btn"),
3266                    ("fixed" === i.layout && i.scroll_top_offset.size) || 150),
3267                a = 100 * i.animated_duration.size || 100;
3268            e(window).scroll(function () {
3269                e(this).scrollTop() > r
3270                    ? o.find(".xpro-elementor-scroll-top-btn-fixed").show()
3271                    : o.find(".xpro-elementor-scroll-top-btn-fixed").hide();
3272            }),
3273                o.find(".xpro-elementor-scroll-top-btn").click(function () {
3274                    e("html, body").animate({ scrollTop: "0" }, a);
3275                });
3276        },
3277        SplitSlider: function (o) {
3278            let i = t.getElementSettings(o);
3279            if (
3280                (o.find(".xpro-split-slider-1").slick({
3281                    vertical: "vertical" === i.slider_orientation_1,
3282                    verticalSwiping: "vertical" === i.slider_orientation_1,
3283                    slidesToShow: 1,
3284                    slidesToScroll: 1,
3285                    infinite: !1,
3286                    autoplay: "yes" === i.autoplay,
3287                    autoplaySpeed: "yes" === i.autoplay ? 1e3 * i.autoplay_timeout.size : 3e3,
3288                    draggable: "yes" === i.mouse_drag,
3289                    dots: !0,
3290                    speed: 100 * i.speed.size,
3291                    appendDots: o.find(".slider-dots-box"),
3292                    dotsClass: "slick-dots",
3293                    arrows: !1,
3294                    asNavFor: o.find(".xpro-split-slider-2"),
3295                    verticalReverse: !1,
3296                    customPaging: function (e, t) {
3297                        return '<span class="slick-dot"></span>';
3298                    },
3299                }),
3300                o
3301                    .find(".xpro-split-slider-2")
3302                    .slick({
3303                        vertical: "vertical" === i.slider_orientation_2,
3304                        verticalSwiping: "vertical" === i.slider_orientation_2,
3305                        slidesToShow: 1,
3306                        slidesToScroll: 1,
3307                        infinite: !1,
3308                        autoplay: "yes" === i.autoplay,
3309                        autoplaySpeed: "yes" === i.autoplay ? 1e3 * i.autoplay_timeout.size : 3e3,
3310                        draggable: "yes" === i.mouse_drag,
3311                        asNavFor: o.find(".xpro-split-slider-1"),
3312                        arrows: !1,
3313                        speed: 100 * i.speed.size,
3314                        verticalReverse: !1,
3315                    }),
3316                o.find(".slick-nav-prev").click(function () {
3317                    o.find(".xpro-split-slider-2").slick("slickPrev");
3318                }),
3319                o.find(".slick-nav-next").click(function () {
3320                    o.find(".xpro-split-slider-2").slick("slickNext");
3321                }),
3322                "yes" === i.mouse_wheel)
3323            ) {
3324                let t = !1,
3325                    i = o.find(".xpro-split-slider-inner").find(".slick-slide").length,
3326                    r = 1;
3327                o.find(".xpro-split-slider-inner").on("wheel", function (o) {
3328                    if (o.originalEvent.deltaY < 0) {
3329                        if (((t = !1), 1 === (r = e(this).slick("slickCurrentSlide") + 1))) return void (t = !0);
3330                        o.preventDefault(), e(this).slick("slickPrev");
3331                    } else {
3332                        if (((t = !1), (r = e(this).slick("slickCurrentSlide") + 1) === i)) return void (t = !0);
3333                        o.preventDefault(), e(this).slick("slickNext");
3334                    }
3335                });
3336            }
3337        },
3338        AudioPlayer: function (t) {
3339            var o = t.find(".xpro-audio-player > .jp-jplayer"),
3340                i = o.next(".jp-audio").attr("id"),
3341                r = o.data("settings");
3342            o.length &&
3343                e(o).jPlayer({
3344                    ready: function (t) {
3345                        e(this).jPlayer("setMedia", { mp3: r.audio_source }), r.autoplay && e(this).jPlayer("play", 1);
3346                    },
3347                    play: function () {
3348                        e(this).next(".jp-audio").removeClass("xpro-player-played"), e(this).jPlayer("pauseOthers");
3349                    },
3350                    ended: function () {
3351                        e(this).next(".jp-audio").addClass("xpro-player-played");
3352                    },
3353                    timeupdate: function (t) {
3354                        r.time_restrict &&
3355                            t.jPlayer.status.currentTime > r.restrict_duration &&
3356                            e(this).jPlayer("stop");
3357                    },
3358                    cssSelectorAncestor: "#" + i,
3359                    useStateClassSkin: !0,
3360                    autoBlur: r.smooth_show,
3361                    smoothPlayBar: !0,
3362                    keyEnabled: r.keyboard_enable,
3363                    remainingDuration: !0,
3364                    toggleDuration: !0,
3365                    volume: r.volume_level,
3366                    loop: r.loop,
3367                });
3368        },
3369        CouponCode: function (t) {
3370            var o = t.find(".xpro-coupon-code");
3371            if (o.length) {
3372                var i = o.data("settings");
3373                new ClipboardJS(i.couponMsgId, {
3374                    target: function (e) {
3375                        return e.nextElementSibling;
3376                    },
3377                }).on("success", function (t) {
3378                    e(t.trigger).addClass("active"),
3379                        t.clearSelection(),
3380                        setTimeout(function () {
3381                            e(t.trigger).removeClass("active");
3382                        }, 3e3);
3383                }),
3384                    !1 === i.triggerURL ||
3385                        Boolean(elementorFrontend.isEditMode()) ||
3386                        o.on("click", function () {
3387                            setTimeout(function () {
3388                                "" !== i.triggerURL &&
3389                                    window.open(i.triggerURL, !1 !== i.triggerTarget ? "_blank" : "_self");
3390                            }, 1e3);
3391                        });
3392            }
3393        },
3394        LoopBuilder: function (o) {
3395            let i = t.getElementSettings(o),
3396                r = o.find(".xpro-loop-builder-main"),
3397                a = o.find(".xpro-elementor-gallery-filter > ul"),
3398                n =
3399                    (o.find(".xpro-elementor-gallery-filter > ul").attr("data-default-filter"),
3400                    a.find("li.cbp-filter-item").first().attr("data-filter"));
3401            setTimeout(function () {
3402                r.cubeportfolio({
3403                    filters: a,
3404                    layoutMode: "grid",
3405                    defaultFilter: n,
3406                    animationType: i.filter_animation,
3407                    gridAdjustment: "responsive",
3408                    lightboxGallery: !1,
3409                    mediaQueries: [
3410                        {
3411                            width: elementorFrontend.config.breakpoints.lg,
3412                            cols: i.column_grid || 3,
3413                            options: {
3414                                gapHorizontal: i.space_between.size || 0,
3415                                gapVertical: i.space_between.size || 0,
3416                            },
3417                        },
3418                        {
3419                            width: elementorFrontend.config.breakpoints.md,
3420                            cols: i.column_grid_tablet || 2,
3421                            options: {
3422                                gapHorizontal: i.space_between_tablet.size || 0,
3423                                gapVertical: i.space_between_tablet.size || 0,
3424                            },
3425                        },
3426                        {
3427                            width: 0,
3428                            cols: i.column_grid_mobile || 1,
3429                            options: {
3430                                gapHorizontal: i.space_between_mobile.size || 0,
3431                                gapVertical: i.space_between_mobile.size || 0,
3432                            },
3433                        },
3434                    ],
3435                    caption: i.hover_effect || "zoom",
3436                    displayType: "sequentially",
3437                    displayTypeSpeed: 80,
3438                    plugins: {
3439                        loadMore: {
3440                            element: o.find(".cbp-l-loadMore-button"),
3441                            action: i.load_more || "click",
3442                            loadItems: Number(i.column_grid || 3),
3443                        },
3444                        sort: { element: o.find(".cbp-loadMore-block1") },
3445                    },
3446                });
3447            }, 500);
3448            let l = o.find(".xpro-filter-dropdown-tablet,.xpro-filter-dropdown-mobile"),
3449                s = o.find('[data-filter="' + n + '"]'),
3450                p = l.find("li.cbp-filter-item-active").text();
3451            l.find(".xpro-select-content").text(p || s.text()),
3452                l.on("click", function () {
3453                    e(this).toggleClass("active");
3454                }),
3455                l.find(".cbp-l-filters-button > li").on("click", function () {
3456                    l.find(".xpro-select-content").text(e(this).text());
3457                });
3458        },
3459        LoopCarousel: function (o) {
3460            let i,
3461                r = t.getElementSettings(o),
3462                a = o.find(".xpro-loop-builder-main");
3463            e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
3464                a.owlCarousel({
3465                    loop: "yes" === r.loop,
3466                    nav: "yes" === r.nav,
3467                    navText: ["", ""],
3468                    rtl: "yes" === r.rtl,
3469                    dots: "yes" === r.dots,
3470                    mouseDrag: "yes" === r.mouse_drag,
3471                    responsiveBaseElement: i,
3472                    autoplay: "yes" === r.autoplay,
3473                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
3474                    autoplayHoverPause: !0,
3475                    smartSpeed: 1e3,
3476                    autoHeight: "yes" === r.autoheight,
3477                    responsive: {
3478                        0: {
3479                            items: r.item_per_row_mobile || 1,
3480                            margin: r.margin_mobile.size || 0,
3481                            stagePadding: (r.margin_mobile.size || 0) / 2,
3482                        },
3483                        768: {
3484                            items: r.item_per_row_tablet || 2,
3485                            margin: r.margin_tablet.size || 0,
3486                            stagePadding: (r.margin_tablet.size || 0) / 2,
3487                        },
3488                        1024: {
3489                            items: r.item_per_row || 3,
3490                            margin: r.margin.size || 0,
3491                            stagePadding: (r.margin.size || 0) / 2,
3492                        },
3493                    },
3494                });
3495        },
3496        MailChimp: function (o) {
3497            let i = t.getElementSettings(o),
3498                r = o.find(".xpro-mailchimp-form"),
3499                a = o.find(".xpro-mailchimp-subscribe-btn > i"),
3500                n = r.attr("action");
3501            r.on("submit", function (t) {
3502                t.preventDefault(), a.show();
3503                let l = !0,
3504                    s = null;
3505                return (
3506                    o.find('.xpro-mailchimp-fields [required="required"]').each(function (t) {
3507                        "" === e(this).val() && (l = !1);
3508                    }),
3509                    l
3510                        ? i.recaptcha && !captcha
3511                            ? ((s = '<div class="xpro-alert xpro-alert-danger">' + i.captcha_message + "</div>"),
3512                              o.find(".xpro-mailchimp-subscribe-message").hide().html(s).slideDown(),
3513                              void a.hide())
3514                            : (o.find(".xpro-mailchimp-subscribe-message").slideUp(),
3515                              void e
3516                                  .ajax({
3517                                      method: "POST",
3518                                      url: n,
3519                                      data: {
3520                                          fields: e(this).serialize(),
3521                                          apiKey: r.data("api-key"),
3522                                          listId: r.data("list-id"),
3523                                      },
3524                                  })
3525                                  .done(function (e) {
3526                                      e.success
3527                                          ? ((s =
3528                                                '<div class="xpro-alert xpro-alert-success">' +
3529                                                i.success_message +
3530                                                "</div>"),
3531                                            o.find(".xpro-mailchimp-subscribe-message").hide().html(s).slideDown())
3532                                          : ((s =
3533                                                '<div class="xpro-alert xpro-alert-danger">' +
3534                                                i.error_message +
3535                                                "</div>"),
3536                                            o.find(".xpro-mailchimp-subscribe-message").hide().html(s).slideDown()),
3537                                          a.hide();
3538                                  }))
3539                        : ((s = '<div class="xpro-alert xpro-alert-danger">' + i.required_field_message + "</div>"),
3540                          o.find(".xpro-mailchimp-subscribe-message").hide().html(s).slideDown(),
3541                          void a.hide())
3542                );
3543            });
3544        },
3545        MegaMenu: function (o) {
3546            let i = t.getElementSettings(o),
3547                r = o.find(".xpro-mega-menu-toggle-btn"),
3548                a = o.find(".xpro-mega-menu-closed-btn"),
3549                n = o.find(".xpro-mega-menu-overlay"),
3550                l = o.find(".xpro-submenu-indicator-wrap"),
3551                s = o.find(".xpro-menu-dropdown-toggle,.dropdown-item,.xpro-menu-has-megamenu > a");
3552            if (
3553                (o.find(".xpro-mega-menu-layout-horizontal .xpro-megamenu-panel").each(function (t) {
3554                    e(this).parents("li").hasClass("xpro-dropdown-menu-full_width")
3555                        ? e(this).css({
3556                              width: e(window).width(),
3557                              left: Math.floor(e(this).position().left - e(this).offset().left),
3558                          })
3559                        : e(this).css({ maxWidth: e(window).width() });
3560                }),
3561                e(window).resize(function () {
3562                    o.find(
3563                        ".xpro-mega-menu-layout-horizontal li.xpro-dropdown-menu-full_width .xpro-megamenu-panel"
3564                    ).each(function (t) {
3565                        e(this).parents("li").hasClass("xpro-dropdown-menu-full_width")
3566                            ? e(this).css({
3567                                  width: e(window).width(),
3568                                  left: Math.floor(e(this).position().left - e(this).offset().left),
3569                              })
3570                            : e(this).css({ maxWidth: e(window).width() });
3571                    });
3572                }),
3573                o.find(".xpro-submenu-panel > li").each(function (t) {
3574                    if (e("ul", this).length) {
3575                        let t = e("ul:first", this);
3576                        t.offset().left + t.width() <= e(window).width()
3577                            ? e(this).removeClass("xpro-edge")
3578                            : e(this).addClass("xpro-edge");
3579                    }
3580                }),
3581                "none" !== i.responsive_show)
3582            ) {
3583                let t = "tablet" === i.responsive_breakpoint ? 1025 : 768;
3584                r.on("click", function (e) {
3585                    e.preventDefault(),
3586                        o.find(".xpro-mega-menu-inner").toggleClass("active"),
3587                        o.find(".xpro-mega-menu-overlay").toggleClass("active");
3588                }),
3589                    a.on("click", function (e) {
3590                        e.preventDefault(),
3591                            o.find(".xpro-mega-menu-inner").removeClass("active"),
3592                            o.find(".xpro-mega-menu-overlay").removeClass("active");
3593                    }),
3594                    n.on("click", function (t) {
3595                        t.preventDefault(),
3596                            o.find(".xpro-mega-menu-inner").removeClass("active"),
3597                            e(this).removeClass("active");
3598                    }),
3599                    "submenu" === i.action_on_click
3600                        ? s.on("click", function (o) {
3601                              e(window).width() < t &&
3602                                  (o.preventDefault(),
3603                                  o.stopPropagation(),
3604                                  e(this).toggleClass("active"),
3605                                  e(this).parents(".xpro-menu-has-dropdown").hasClass("xpro-mobile-builder
3605-content")
3606                                      ? e(this).next().next(".xpro-megamenu-panel").slideToggle()
3607                                      : e(this).parent().hasClass("xpro-mobile-builder-content")
3608                                        ? e(this)
3609                                              .parents(".xpro-mobile-builder-content")
3610                                              .find(".xpro-megamenu-panel")
3611                                              .slideToggle()
3612                                        : e(this).next(".xpro-submenu-panel").slideToggle());
3613                          })
3614                        : l.on("click", function (o) {
3615                              e(window).width() < t &&
3616                                  (o.preventDefault(),
3617                                  o.stopPropagation(),
3618                                  e(this).parent().toggleClass("active"),
3619                                  e(this).parents(".xpro-menu-has-dropdown").hasClass("xpro-mobile-builder-content")
3620                                      ? e(this).parent().next().next(".xpro-megamenu-panel").slideToggle()
3621                                      : e(this)
3622                                              .parents(".xpro-menu-has-megamenu")
3623                                              .hasClass("xpro-mobile-builder-content")
3624                                        ? e(this)
3625                                              .parents(".xpro-mobile-builder-content")
3626                                              .find(".xpro-megamenu-panel")
3627                                              .slideToggle()
3628                                        : e(this).parent().next(".xpro-submenu-panel").slideToggle());
3629                          }),
3630                    e(window).resize(function () {
3631                        o.find(".xpro-submenu-panel").css("display", ""),
3632                            o.find(".xpro-megamenu-panel").css("display", ""),
3633                            o.find(".xpro-menu-nav-link").removeClass("active"),
3634                            o.find(".xpro-mega-menu-inner").removeClass("active"),
3635                            o.find(".xpro-mega-menu-overlay").removeClass("active");
3636                    });
3637            }
3638        },
3639        AdvancedPosts: function (o) {
3640            let i = t.getElementSettings(o),
3641                r = o.find(".xpro-post-grid-main"),
3642                a = o.find(".xpro-elementor-gallery-filter > ul"),
3643                n = o.find(".xpro-elementor-gallery-filter > ul").attr("data-default-filter");
3644            setTimeout(function () {
3645                r.cubeportfolio({
3646                    filters: a,
3647                    layoutMode: "grid",
3648                    defaultFilter: n,
3649                    animationType: i.filter_animation,
3650                    gridAdjustment: "responsive",
3651                    lightboxGallery: !1,
3652                    mediaQueries: [
3653                        {
3654                            width: elementorFrontend.config.breakpoints.lg,
3655                            cols: i.column_grid || 3,
3656                            options: {
3657                                gapHorizontal: i.space_between.size || 0,
3658                                gapVertical: i.space_between.size || 0,
3659                            },
3660                        },
3661                        {
3662                            width: elementorFrontend.config.breakpoints.md,
3663                            cols: i.column_grid_tablet || 2,
3664                            options: {
3665                                gapHorizontal: i.space_between_tablet.size || 0,
3666                                gapVertical: i.space_between_tablet.size || 0,
3667                            },
3668                        },
3669                        {
3670                            width: 0,
3671                            cols: i.column_grid_mobile || 1,
3672                            options: {
3673                                gapHorizontal: i.space_between_mobile.size || 0,
3674                                gapVertical: i.space_between_mobile.size || 0,
3675                            },
3676                        },
3677                    ],
3678                    caption: i.hover_effect || "zoom",
3679                    displayType: "sequentially",
3680                    displayTypeSpeed: 80,
3681                    plugins: {
3682                        loadMore: {
3683                            element: o.find(".cbp-l-loadMore-button"),
3684                            action: i.load_more || "click",
3685                            loadItems: Number(i.column_grid || 3),
3686                        },
3687                        sort: { element: o.find(".cbp-loadMore-block1") },
3688                    },
3689                });
3690            }, 500);
3691            let l = o.find(".xpro-filter-dropdown-tablet,.xpro-filter-dropdown-mobile"),
3692                s = o.find('[data-filter="' + n + '"]'),
3693                p = l.find("li.cbp-filter-item-active").text();
3694            l.find(".xpro-select-content").text(p || s.text()),
3695                l.on("click", function () {
3696                    e(this).toggleClass("active");
3697                }),
3698                l.find(".cbp-l-filters-button > li").on("click", function () {
3699                    l.find(".xpro-select-content").text(e(this).text());
3700                });
3701        },
3702        RemoteArrows: function (o) {
3703            let i = t.getElementSettings(o),
3704                r = o.find(".xpro-remote-arrow-prev"),
3705                a = o.find(".xpro-remote-arrow-next"),
3706                n =
3707                    o.parents(".elementor-section").find(".owl-carousel").first() ||
3708                    o.parents(".elementor-section:not(.elementor-inner-section)").find(".owl-carousel").first(),
3709                l =
3710                    o.parents(".elementor-section").find(".slick-slider").first() ||
3711                    o.parents(".elementor-section:not(.elementor-inner-section)").find(".slick-slider").first(),
3712                s =
3713                    o.parents(".elementor-section").find(".swiper-container").first() ||
3714                    o.parents(".elementor-section:not(.elementor-inner-section)").find(".swiper-container").first();
3715            n.length || (n = o.parents(".elementor-element").find(".owl-carousel").first()),
3716                l.length || (l = o.parents(".elementor-element").find(".slick-slider").first()),
3717                s.length || (s = o.parents(".elementor-element").find(".swiper-container").first()),
3718                r.on("click", function (t) {
3719                    if ((t.preventDefault(), i.remote_selector && "" !== i.remote_selector)) {
3720                        let t = e(i.remote_selector);
3721                        t.hasClass("owl-carousel") && t.owlCarousel().trigger("prev.owl.carousel"),
3722                            t.find(".owl-carousel").length &&
3723                                t.find(".owl-carousel").first().owlCarousel().trigger("prev.owl.carousel"),
3724                            t.hasClass("swiper-container") && t[0].swiper.slidePrev(),
3725                            t.find(".swiper-container").length &&
3726                                t.find(".swiper-container").first()[0].swiper.slidePrev(),
3727                            t.hasClass("slick-slider") && t.slick("slickPrev"),
3728                            t.find(".slick-slider").length && t.find(".slick-slider").first().slick("slickPrev");
3729                    } else
3730                        console.log(o.parents(".elementor-element").find(".owl-carousel").first()),
3731                            n.length && n.owlCarousel().trigger("prev.owl.carousel"),
3732                            s.length && s[0].swiper.slidePrev(),
3733                            l.length && l.slick("slickPrev");
3734                }),
3735                a.on("click", function (t) {
3736                    if ((t.preventDefault(), i.remote_selector && "" !== i.remote_selector)) {
3737                        let t = e(i.remote_selector);
3738                        t.hasClass("owl-carousel") && t.owlCarousel().trigger("next.owl.carousel"),
3739                            t.find(".owl-carousel").length &&
3740                                t.find(".owl-carousel").first().owlCarousel().trigger("next.owl.carousel"),
3741                            t.hasClass("swiper-container") && t[0].swiper.slideNext(),
3742                            t.find(".swiper-container").length &&
3743                                t.find(".swiper-container").first()[0].swiper.slideNext(),
3744                            t.hasClass("slick-slider") && t.slick("slickNext"),
3745                            t.find(".slick-slider").length && t.find(".slick-slider").first().slick("slickNext");
3746                    } else
3747                        n.length && n.owlCarousel().trigger("next.owl.carousel"),
3748                            s.length && s[0].swiper.slideNext(),
3749                            l.length && l.slick("slickNext");
3750                });
3751        },
3752        VideoGallery: function (o) {
3753            let i = t.getElementSettings(o),
3754                r = o.find(".xpro-elementor-gallery-wrapper"),
3755                a = o.find(".xpro-elementor-gallery-filter > ul"),
3756                n = o.find(".xpro-elementor-gallery-filter > ul").attr("data-default-filter"),
3757                l = "masonry" === i.gallery_style ? "grid" : i.gallery_style;
3758            setTimeout(function () {
3759                r.cubeportfolio({
3760                    filters: a,
3761                    layoutMode: l,
3762                    defaultFilter: n,
3763                    animationType: i.filter_animation,
3764                    gridAdjustment: "responsive",
3765                    lightboxGallery: !1,
3766                    mediaQueries: [
3767                        {
3768                            width: elementorFrontend.config.breakpoints.lg,
3769                            cols: i.item_per_row || 3,
3770                            options: { gapHorizontal: i.margin.size || 0, gapVertical: i.margin.size || 0 },
3771                        },
3772                        {
3773                            width: elementorFrontend.config.breakpoints.md,
3774                            cols: i.item_per_row_tablet || 2,
3775                            options: {
3776                                gapHorizontal: i.margin_tablet.size || 0,
3777                                gapVertical: i.margin_tablet.size || 0,
3778                            },
3779                        },
3780                        {
3781                            width: 0,
3782                            cols: i.item_per_row_mobile || 1,
3783                            options: {
3784                                gapHorizontal: i.margin_mobile.size || 0,
3785                                gapVertical: i.margin_mobile.size || 0,
3786                            },
3787                        },
3788                    ],
3789                    caption: i.hover_effect || "zoom",
3790                    displayType: "sequentially",
3791                    displayTypeSpeed: 80,
3792                    plugins: {
3793                        loadMore: {
3794                            element: o.find(".cbp-l-loadMore-button"),
3795                            action: i.load_more || "click",
3796                            loadItems: i.item_on_load || 3,
3797                        },
3798                        sort: { element: o.find(".cbp-loadMore-block1") },
3799                    },
3800                });
3801            }, 500);
3802            let s = o.find(".xpro-filter-dropdown-tablet,.xpro-filter-dropdown-mobile"),
3803                p = o.find('[data-filter="' + n + '"]'),
3804                d = s.find("li.cbp-filter-item-active").text();
3805            s.find(".xpro-select-content").text(d || p.text()),
3806                s.on("click", function () {
3807                    e(this).toggleClass("active");
3808                }),
3809                s.find(".cbp-l-filters-button > li").on("click", function () {
3810                    s.find(".xpro-select-content").text(e(this).text());
3811                });
3812        },
3813        VideoCarousel: function (o) {
3814            let i,
3815                r = t.getElementSettings(o),
3816                a = o.find(".xpro-elementor-carousel-gallery");
3817            o.find(".xpro-elementor-carousel-gallery-item"),
3818                e(".e-route-panel-editor-content").length && (i = ".elementor-preview-responsive-wrapper"),
3819                a.owlCarousel({
3820                    loop: "yes" === r.loop,
3821                    nav: "yes" === r.nav,
3822                    navText: ["", ""],
3823                    rtl: "yes" === r.rtl,
3824                    dots: "yes" === r.dots,
3825                    mouseDrag: "yes" === r.mouse_drag,
3826                    responsiveBaseElement: i,
3827                    autoplay: "yes" === r.autoplay,
3828                    autoplayTimeout: "yes" === r.autoplay ? 1e3 * r.autoplay_timeout.size : 3e3,
3829                    autoplayHoverPause: !0,
3830                    smartSpeed: 1e3,
3831                    autoHeight: "yes" !== r.item_custom_height,
3832                    responsive: {
3833                        0: {
3834                            items: r.item_per_row_mobile || 1,
3835                            margin: r.margin_mobile.size || 0,
3836                            stagePadding: (r.margin_mobile.size || 0) / 2,
3837                        },
3838                        768: {
3839                            items: r.item_per_row_tablet || 2,
3840                            margin: r.margin_tablet.size || 0,
3841                            stagePadding: (r.margin_tablet.size || 0) / 2,
3842                        },
3843                        1024: {
3844                            items: r.item_per_row || 3,
3845                            margin: r.margin.size || 0,
3846                            stagePadding: (r.margin.size || 0) / 2,
3847                        },
3848                    },
3849                });
3850        },
3851        FlipBook3D: function (o) {
3852            let i = t.getElementSettings(o),
3853                r = o.find(".xpro-flip-book-3d"),
3854                a = o.find(".xpro-flip-book-3d-toggle"),
3855                n = o.find(".xpro-flip-book-poupup-close-btn");
3856            r.FlipBook({
3857                pdf: r.data("file"),
3858                template: {
3859                    html: r.data("widget") + "template/default-book-view.html",
3860                    styles: [r.data("widget") + "css/short-" + i.book_
3860skin + "-book-view.css"],
3861                    links: [{ rel: "stylesheet", href: r.data("fontawesome") }],
3862                    script: r.data("widget") + "js/default-book-view.js",
3863                    sounds: {
3864                        startFlip: r.data("widget") + "sound/start-flip.mp3",
3865                        endFlip: r.data("widget") + "sound/end-flip.mp3",
3866                    },
3867                },
3868            }),
3869                a.on("click", function (t) {
3870                    t.preventDefault(), e(".xpro-flip-book-layout-popup").toggleClass("active");
3871                }),
3872                n.on("click", function (t) {
3873                    t.preventDefault(), e(".xpro-flip-book-layout-popup").removeClass("active");
3874                });
3875        },
3876    };
3877    e(window).on("elementor/frontend/init", t.init);
3878})(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.