269 lines
15 KiB
JavaScript
269 lines
15 KiB
JavaScript
/*! elementor - v3.32.0 - 05-10-2025 */
|
|
"use strict";
|
|
(self.webpackChunkelementorFrontend = self.webpackChunkelementorFrontend || []).push([
|
|
[557], {
|
|
628: (e, t, i) => {
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0, i(4846), i(9655);
|
|
class BackgroundSlideshow extends elementorModules.frontend.handlers.SwiperBase {
|
|
getDefaultSettings() {
|
|
return {
|
|
classes: {
|
|
swiperContainer: "elementor-background-slideshow swiper",
|
|
swiperWrapper: "swiper-wrapper",
|
|
swiperSlide: "elementor-background-slideshow__slide swiper-slide",
|
|
swiperPreloader: "swiper-lazy-preloader",
|
|
slideBackground: "elementor-background-slideshow__slide__image",
|
|
kenBurns: "elementor-ken-burns",
|
|
kenBurnsActive: "elementor-ken-burns--active",
|
|
kenBurnsIn: "elementor-ken-burns--in",
|
|
kenBurnsOut: "elementor-ken-burns--out"
|
|
}
|
|
}
|
|
}
|
|
getSwiperOptions() {
|
|
const e = this.getElementSettings(),
|
|
t = {
|
|
grabCursor: !1,
|
|
slidesPerView: 1,
|
|
slidesPerGroup: 1,
|
|
loop: "yes" === e.background_slideshow_loop,
|
|
speed: e.background_slideshow_transition_duration,
|
|
autoplay: {
|
|
delay: e.background_slideshow_slide_duration,
|
|
stopOnLastSlide: !e.background_slideshow_loop
|
|
},
|
|
handleElementorBreakpoints: !0,
|
|
on: {
|
|
slideChange: () => {
|
|
e.background_slideshow_ken_burns && this.handleKenBurns()
|
|
}
|
|
}
|
|
};
|
|
switch ("yes" === e.background_slideshow_loop && (t.loopedSlides = this.getSlidesCount()), e.background_slideshow_slide_transition) {
|
|
case "fade":
|
|
t.effect = "fade", t.fadeEffect = {
|
|
crossFade: !0
|
|
};
|
|
break;
|
|
case "slide_down":
|
|
t.autoplay.reverseDirection = !0, t.direction = "vertical";
|
|
break;
|
|
case "slide_up":
|
|
t.direction = "vertical"
|
|
}
|
|
return "yes" === e.background_slideshow_lazyload && (t.lazy = {
|
|
loadPrevNext: !0,
|
|
loadPrevNextAmount: 1
|
|
}), t
|
|
}
|
|
buildSwiperElements() {
|
|
const e = this.getSettings("classes"),
|
|
t = this.getElementSettings(),
|
|
i = "slide_left" === t.background_slideshow_slide_transition ? "ltr" : "rtl",
|
|
o = jQuery("<div>", {
|
|
class: e.swiperContainer,
|
|
dir: i
|
|
}),
|
|
n = jQuery("<div>", {
|
|
class: e.swiperWrapper
|
|
}),
|
|
s = t.background_slideshow_ken_burns,
|
|
r = "yes" === t.background_slideshow_lazyload;
|
|
let d = e.slideBackground;
|
|
if (s) {
|
|
d += " " + e.kenBurns;
|
|
const i = "in" === t.background_slideshow_ken_burns_zoom_direction ? "kenBurnsIn" : "kenBurnsOut";
|
|
d += " " + e[i]
|
|
}
|
|
r && (d += " swiper-lazy"), this.elements.$slides = jQuery(), t.background_slideshow_gallery.forEach(t => {
|
|
const i = jQuery("<div>", {
|
|
class: e.swiperSlide
|
|
});
|
|
let o;
|
|
if (r) {
|
|
const i = jQuery("<div>", {
|
|
class: e.swiperPreloader
|
|
});
|
|
o = jQuery("<div>", {
|
|
class: d,
|
|
"data-background": t.url
|
|
}), o.append(i)
|
|
} else o = jQuery("<div>", {
|
|
class: d,
|
|
style: 'background-image: url("' + t.url + '");'
|
|
});
|
|
i.append(o), n.append(i), this.elements.$slides = this.elements.$slides.add(i)
|
|
}), o.append(n), this.$element.prepend(o), this.elements.$backgroundSlideShowContainer = o
|
|
}
|
|
async initSlider() {
|
|
if (1 >= this.getSlidesCount()) return;
|
|
const e = this.getElementSettings(),
|
|
t = elementorFrontend.utils.swiper;
|
|
this.swiper = await new t(this.elements.$backgroundSlideShowContainer, this.getSwiperOptions()), this.elements.$backgroundSlideShowContainer.data("swiper", this.swiper), e.background_slideshow_ken_burns && this.handleKenBurns()
|
|
}
|
|
activate() {
|
|
this.buildSwiperElements(), this.initSlider()
|
|
}
|
|
deactivate() {
|
|
this.swiper && (this.swiper.destroy(), this.elements.$backgroundSlideShowContainer.remove())
|
|
}
|
|
run() {
|
|
"slideshow" === this.getElementSettings("background_background") ? this.activate() : this.deactivate()
|
|
}
|
|
onInit() {
|
|
super.onInit(), this.getElementSettings("background_slideshow_gallery") && this.run()
|
|
}
|
|
onDestroy() {
|
|
super.onDestroy(), this.deactivate()
|
|
}
|
|
onElementChange(e) {
|
|
"background_background" === e && this.run()
|
|
}
|
|
}
|
|
t.default = BackgroundSlideshow
|
|
},
|
|
3031: (e, t, i) => {
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0, i(4846), i(6211);
|
|
class BackgroundVideo extends elementorModules.frontend.handlers.Base {
|
|
getDefaultSettings() {
|
|
return {
|
|
selectors: {
|
|
backgroundVideoContainer: ".elementor-background-video-container",
|
|
backgroundVideoEmbed: ".elementor-background-video-embed",
|
|
backgroundVideoHosted: ".elementor-background-video-hosted"
|
|
}
|
|
}
|
|
}
|
|
getDefaultElements() {
|
|
const e = this.getSettings("selectors"),
|
|
t = {
|
|
$backgroundVideoContainer: this.$element.find(e.backgroundVideoContainer)
|
|
};
|
|
return t.$backgroundVideoEmbed = t.$backgroundVideoContainer.children(e.backgroundVideoEmbed), t.$backgroundVideoHosted = t.$backgroundVideoContainer.children(e.backgroundVideoHosted), t
|
|
}
|
|
calcVideosSize(e) {
|
|
let t = "16:9";
|
|
"vimeo" === this.videoType && (t = e[0].width + ":" + e[0].height);
|
|
const i = this.elements.$backgroundVideoContainer.outerWidth(),
|
|
o = this.elements.$backgroundVideoContainer.outerHeight(),
|
|
n = t.split(":"),
|
|
s = n[0] / n[1],
|
|
r = i / o > s;
|
|
return {
|
|
width: r ? i : o * s,
|
|
height: r ? i / s : o
|
|
}
|
|
}
|
|
changeVideoSize() {
|
|
if ("hosted" !== this.videoType && !this.player) return;
|
|
let e;
|
|
if ("youtube" === this.videoType ? e = jQuery(this.player.getIframe()) : "vimeo" === this.videoType ? e = jQuery(this.player.element) : "hosted" === this.videoType && (e = this.elements.$backgroundVideoHosted), !e) return;
|
|
const t = this.calcVideosSize(e);
|
|
e.width(t.width).height(t.height)
|
|
}
|
|
startVideoLoop(e) {
|
|
if (!this.player.getIframe().contentWindow) return;
|
|
const t = this.getElementSettings(),
|
|
i = t.background_video_start || 0,
|
|
o = t.background_video_end;
|
|
if (!t.background_play_once || e) {
|
|
if (this.player.seekTo(i), o) {
|
|
setTimeout(() => {
|
|
this.startVideoLoop(!1)
|
|
}, 1e3 * (o - i + 1))
|
|
}
|
|
} else this.player.stopVideo()
|
|
}
|
|
prepareVimeoVideo(e, t) {
|
|
const i = this.getElementSettings(),
|
|
o = {
|
|
url: t,
|
|
width: this.elements.$backgroundVideoContainer.outerWidth().width,
|
|
autoplay: !0,
|
|
loop: !i.background_play_once,
|
|
transparent: !0,
|
|
background: !0,
|
|
muted: !0
|
|
};
|
|
i.background_privacy_mode && (o.dnt = !0), this.player = new e.Player(this.elements.$backgroundVideoContainer, o), this.handleVimeoStartEndTimes(i), this.player.ready().then(() => {
|
|
jQuery(this.player.element).addClass("elementor-background-video-embed"), this.changeVideoSize()
|
|
})
|
|
}
|
|
handleVimeoStartEndTimes(e) {
|
|
e.background_video_start && this.player.on("play", t => {
|
|
0 === t.seconds && this.player.setCurrentTime(e.background_video_start)
|
|
}), this.player.on("timeupdate", t => {
|
|
e.background_video_end && e.background_video_end < t.seconds && (e.background_play_once ? this.player.pause() : this.player.setCurrentTime(e.background_video_start)), this.player.getDuration().then(i => {
|
|
e.background_video_start && !e.background_video_end && t.seconds > i - .5 && this.player.setCurrentTime(e.background_video_start)
|
|
})
|
|
})
|
|
}
|
|
prepareYTVideo(e, t) {
|
|
const i = this.elements.$backgroundVideoContainer,
|
|
o = this.getElementSettings();
|
|
let n = e.PlayerState.PLAYING;
|
|
window.chrome && (n = e.PlayerState.UNSTARTED);
|
|
const s = {
|
|
videoId: t,
|
|
events: {
|
|
onReady: () => {
|
|
this.player.mute(), this.changeVideoSize(), this.startVideoLoop(!0), this.player.playVideo()
|
|
},
|
|
onStateChange: t => {
|
|
switch (t.data) {
|
|
case n:
|
|
i.removeClass("elementor-invisible elementor-loading");
|
|
break;
|
|
case e.PlayerState.ENDED:
|
|
"function" == typeof this.player.seekTo && this.player.seekTo(o.background_video_start || 0), o.background_play_once && this.player.destroy()
|
|
}
|
|
}
|
|
},
|
|
playerVars: {
|
|
controls: 0,
|
|
rel: 0,
|
|
playsinline: 1,
|
|
cc_load_policy: 0
|
|
}
|
|
};
|
|
o.background_privacy_mode && (s.host = "https://www.youtube-nocookie.com", s.origin = window.location.hostname), i.addClass("elementor-loading elementor-invisible"), this.player = new e.Player(this.elements.$backgroundVideoEmbed[0], s)
|
|
}
|
|
activate() {
|
|
let e, t = this.getElementSettings("background_video_link");
|
|
const i = this.getElementSettings("background_play_once");
|
|
if (-1 !== t.indexOf("vimeo.com") ? (this.videoType = "vimeo", this.apiProvider = elementorFrontend.utils.vimeo) : t.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com)/) && (this.videoType = "youtube", this.apiProvider = elementorFrontend.utils.youtube), this.apiProvider) e = this.apiProvider.getVideoIDFromURL(t), this.apiProvider.onApiReady(i => {
|
|
"youtube" === this.videoType && this.prepareYTVideo(i, e), "vimeo" === this.videoType && this.prepareVimeoVideo(i, t)
|
|
});
|
|
else {
|
|
this.videoType = "hosted";
|
|
const e = this.getElementSettings("background_video_start"),
|
|
o = this.getElementSettings("background_video_end");
|
|
(e || o) && (t += "#t=" + (e || 0) + (o ? "," + o : "")), this.elements.$backgroundVideoHosted.attr("src", t).one("canplay", this.changeVideoSize.bind(this)), i && this.elements.$backgroundVideoHosted.on("ended", () => {
|
|
this.elements.$backgroundVideoHosted.hide()
|
|
})
|
|
}
|
|
elementorFrontend.elements.$window.on("resize elementor/bg-video/recalc", this.changeVideoSize)
|
|
}
|
|
deactivate() {
|
|
"youtube" === this.videoType && this.player.getIframe() || "vimeo" === this.videoType ? this.player.destroy() : this.elements.$backgroundVideoHosted.removeAttr("src").off("ended"), elementorFrontend.elements.$window.off("resize", this.changeVideoSize)
|
|
}
|
|
run() {
|
|
const e = this.getElementSettings();
|
|
(e.background_play_on_mobile || "mobile" !== elementorFrontend.getCurrentDeviceMode()) && ("video" === e.background_background && e.background_video_link ? this.activate() : this.deactivate())
|
|
}
|
|
onInit() {
|
|
super.onInit(...arguments), this.changeVideoSize = this.changeVideoSize.bind(this), this.run()
|
|
}
|
|
onElementChange(e) {
|
|
"background_background" === e && this.run()
|
|
}
|
|
}
|
|
t.default = BackgroundVideo
|
|
}
|
|
}
|
|
]);
|