3951 lines
205 KiB
JavaScript
3951 lines
205 KiB
JavaScript
/*!
|
|
* Creative Elements - live Theme & Page Builder
|
|
* Copyright 2019-2022 WebshopWorks.com & Elementor.com
|
|
*/
|
|
!(function (n) {
|
|
var i = {};
|
|
function o(e) {
|
|
if (i[e]) return i[e].exports;
|
|
var t = (i[e] = { i: e, l: !1, exports: {} });
|
|
return n[e].call(t.exports, t, t.exports, o), (t.l = !0), t.exports;
|
|
}
|
|
(o.m = n),
|
|
(o.c = i),
|
|
(o.d = function (e, t, n) {
|
|
o.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n });
|
|
}),
|
|
(o.r = function (e) {
|
|
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
|
|
}),
|
|
(o.t = function (t, e) {
|
|
if ((1 & e && (t = o(t)), 8 & e)) return t;
|
|
if (4 & e && "object" == typeof t && t && t.__esModule) return t;
|
|
var n = Object.create(null);
|
|
if ((o.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t))
|
|
for (var i in t)
|
|
o.d(
|
|
n,
|
|
i,
|
|
function (e) {
|
|
return t[e];
|
|
}.bind(null, i)
|
|
);
|
|
return n;
|
|
}),
|
|
(o.n = function (e) {
|
|
var t =
|
|
e && e.__esModule
|
|
? function () {
|
|
return e.default;
|
|
}
|
|
: function () {
|
|
return e;
|
|
};
|
|
return o.d(t, "a", t), t;
|
|
}),
|
|
(o.o = function (e, t) {
|
|
return Object.prototype.hasOwnProperty.call(e, t);
|
|
}),
|
|
(o.p = ""),
|
|
o((o.s = 182));
|
|
})({
|
|
1: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = navigator.userAgent;
|
|
t.default = { webkit: -1 !== i.indexOf("AppleWebKit"), firefox: -1 !== i.indexOf("Firefox"), ie: /Trident|MSIE/.test(i), edge: -1 !== i.indexOf("Edge"), mac: -1 !== i.indexOf("Macintosh") };
|
|
},
|
|
5: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
function s(e, t, n) {
|
|
null === e && (e = Function.prototype);
|
|
var i = Object.getOwnPropertyDescriptor(e, t);
|
|
if (void 0 !== i) {
|
|
if ("value" in i) return i.value;
|
|
i = i.get;
|
|
return void 0 !== i ? i.call(n) : void 0;
|
|
}
|
|
if (null !== (i = Object.getPrototypeOf(e))) return s(i, t, n);
|
|
}
|
|
var r = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
var e = this,
|
|
t = n;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (n.__proto__ || Object.getPrototypeOf(n)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(n, [
|
|
{
|
|
key: "__construct",
|
|
value: function (e) {
|
|
var i = this;
|
|
(this.motionFX = e.motionFX),
|
|
(this.runImmediately = this.run),
|
|
(this.run = function () {
|
|
var e, t, n;
|
|
(i.animationFrameRequest = requestAnimationFrame(i.run.bind(i))),
|
|
"page" === i.motionFX.getSettings("range")
|
|
? i.runImmediately()
|
|
: ((t = (n = (e = i.motionFX.getSettings("dimensions")).elementTop - pageYOffset) - innerHeight), (n += e.elementHeight), t <= 0 && 0 <= n && i.runImmediately());
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "runCallback",
|
|
value: function () {
|
|
this.getSettings("callback").apply(void 0, arguments);
|
|
},
|
|
},
|
|
{
|
|
key: "destroy",
|
|
value: function () {
|
|
cancelAnimationFrame(this.animationFrameRequest);
|
|
},
|
|
},
|
|
{
|
|
key: "onInit",
|
|
value: function () {
|
|
s(n.prototype.__proto__ || Object.getPrototypeOf(n.prototype), "onInit", this).call(this), this.run();
|
|
},
|
|
},
|
|
]),
|
|
n
|
|
);
|
|
})(elementorModules.ViewModule);
|
|
t.default = r;
|
|
},
|
|
13: function (e, t, n) {
|
|
"use strict";
|
|
e.exports = function () {
|
|
var o,
|
|
n = Array.prototype.slice,
|
|
a = { actions: {}, filters: {} };
|
|
function i(e, t, n, i) {
|
|
var o, s, r;
|
|
if (a[e][t])
|
|
if (n)
|
|
if (((o = a[e][t]), i)) for (r = o.length; r--; ) (s = o[r]).callback === n && s.context === i && o.splice(r, 1);
|
|
else for (r = o.length; r--; ) o[r].callback === n && o.splice(r, 1);
|
|
else a[e][t] = [];
|
|
}
|
|
function s(e, t, n, i, o) {
|
|
(i = { callback: n, priority: i, context: o }), (o = a[e][t]);
|
|
if (o) {
|
|
var s = !1;
|
|
if (
|
|
(jQuery.each(o, function () {
|
|
if (this.callback === n) return !(s = !0);
|
|
}),
|
|
s)
|
|
)
|
|
return;
|
|
o.push(i),
|
|
(o = (function (e) {
|
|
for (var t, n, i, o = 1, s = e.length; o < s; o++) {
|
|
for (t = e[o], n = o; (i = e[n - 1]) && i.priority > t.priority; ) (e[n] = e[n - 1]), --n;
|
|
e[n] = t;
|
|
}
|
|
return e;
|
|
})(o));
|
|
} else o = [i];
|
|
a[e][t] = o;
|
|
}
|
|
function r(e, t, n) {
|
|
var i,
|
|
o,
|
|
s = a[e][t];
|
|
if (!s) return "filters" === e && n[0];
|
|
if (((o = s.length), "filters" === e)) for (i = 0; i < o; i++) n[0] = s[i].callback.apply(s[i].context, n);
|
|
else for (i = 0; i < o; i++) s[i].callback.apply(s[i].context, n);
|
|
return "filters" !== e || n[0];
|
|
}
|
|
return (o = {
|
|
removeFilter: function (e, t) {
|
|
return "string" == typeof e && i("filters", e, t), o;
|
|
},
|
|
applyFilters: function () {
|
|
var e = n.call(arguments),
|
|
t = e.shift();
|
|
return "string" == typeof t ? r("filters", t, e) : o;
|
|
},
|
|
addFilter: function (e, t, n, i) {
|
|
return "string" == typeof e && "function" == typeof t && s("filters", e, t, (n = parseInt(n || 10, 10)), i), o;
|
|
},
|
|
removeAction: function (e, t) {
|
|
return "string" == typeof e && i("actions", e, t), o;
|
|
},
|
|
doAction: function () {
|
|
var e = n.call(arguments),
|
|
t = e.shift();
|
|
return "string" == typeof t && r("actions", t, e), o;
|
|
},
|
|
addAction: function (e, t, n, i) {
|
|
return "string" == typeof e && "function" == typeof t && s("actions", e, t, (n = parseInt(n || 10, 10)), i), o;
|
|
},
|
|
});
|
|
};
|
|
},
|
|
10: function (e, t, n) {
|
|
var k = jQuery,
|
|
i =
|
|
((window.Sticky = function (e, t) {
|
|
function o(e, t, n) {
|
|
var i = {},
|
|
o = e[0].style;
|
|
n.forEach(function (e) {
|
|
i[e] = void 0 !== o[e] ? o[e] : "";
|
|
}),
|
|
e.data("css-backup-" + t, i);
|
|
}
|
|
function s(e, t, n) {
|
|
var i = getComputedStyle(e[0]),
|
|
o = parseFloat(i[t]),
|
|
s = "height" === t ? ["top", "bottom"] : ["left", "right"],
|
|
e = [];
|
|
return (
|
|
"border-box" !== i.boxSizing && e.push("border", "padding"),
|
|
n && e.push("margin"),
|
|
e.forEach(function (t) {
|
|
s.forEach(function (e) {
|
|
o += parseFloat(i[t + "-" + e]);
|
|
});
|
|
}),
|
|
o
|
|
);
|
|
}
|
|
var r,
|
|
a,
|
|
i = !1,
|
|
l = !1,
|
|
n = !1,
|
|
c = pageYOffset,
|
|
d = {},
|
|
u = { to: "top", offset: 0, effectsOffset: 0, parent: !1, classes: { sticky: "sticky", stickyActive: "sticky-active", stickyEffects: "sticky-effects", spacer: "sticky-spacer" } },
|
|
h = function (e, t) {
|
|
return e.data("css-backup-" + t);
|
|
},
|
|
m = function () {
|
|
o(r, "unsticky", ["position", "width", "margin-top", "margin-bottom", "top", "bottom"]);
|
|
var e = { position: "fixed", width: s(r, "width"), marginTop: 0, marginBottom: 0 };
|
|
(e[a.to] = a.offset), (e["top" === a.to ? "bottom" : "top"] = ""), r.css(e).addClass(a.classes.stickyActive);
|
|
},
|
|
p = function () {
|
|
r.css(h(r, "unsticky")).removeClass(a.classes.stickyActive);
|
|
},
|
|
f = function (e) {
|
|
var t = d.$window.scrollTop(),
|
|
n = s(e, "height"),
|
|
i = innerHeight,
|
|
e = e.offset().top - t,
|
|
t = e - i;
|
|
return { top: { fromTop: e, fromBottom: t }, bottom: { fromTop: e + n, fromBottom: t + n } };
|
|
},
|
|
g = function () {
|
|
(d.$spacer = r.clone().addClass(a.classes.spacer).css({ visibility: "hidden", transition: "none", animation: "none" })),
|
|
r.after(d.$spacer),
|
|
m(),
|
|
(i = !0),
|
|
r.find("input[checked]").prop("checked", !0),
|
|
r.trigger("sticky:stick");
|
|
},
|
|
v = function () {
|
|
p(), d.$spacer.remove(), (i = !1), r.trigger("sticky:unstick");
|
|
},
|
|
y = function () {
|
|
var e,
|
|
t,
|
|
n = f(r),
|
|
i = "top" === a.to;
|
|
l
|
|
? (i ? n.top.fromTop > a.offset : n.bottom.fromBottom < -a.offset) && (d.$parent.css(h(d.$parent, "childNotFollowing")), r.css(h(r, "notFollowing")), (l = !1))
|
|
: ((e = f(d.$parent)),
|
|
(t = getComputedStyle(d.$parent[0])),
|
|
(t = parseFloat(t[i ? "borderBottomWidth" : "borderTopWidth"])),
|
|
(e = i ? e.bottom.fromTop - t : e.top.fromBottom + t),
|
|
(i ? e <= n.bottom.fromTop : e >= n.top.fromBottom) &&
|
|
(o(d.$parent, "childNotFollowing", ["position"]),
|
|
d.$parent.css("position", "relative"),
|
|
o(r, "notFollowing", ["position", "top", "bottom"]),
|
|
((t = { position: "absolute" })[a.to] = ""),
|
|
(t["top" === a.to ? "bottom" : "top"] = 0),
|
|
r.css(t),
|
|
(l = !0)));
|
|
},
|
|
b = function (e) {
|
|
n && -e < a.effectsOffset ? (r.removeClass(a.classes.stickyEffects), (n = !1)) : !n && -e >= a.effectsOffset && (r.addClass(a.classes.stickyEffects), (n = !0));
|
|
},
|
|
_ = function () {
|
|
var e,
|
|
t,
|
|
n = a.offset;
|
|
i
|
|
? ((e = f(d.$spacer)), (e = "top" === a.to ? e.top.fromTop - n : -e.bottom.fromBottom - n), a.parent && y(), 0 < e && v())
|
|
: ((t = f(r)), (e = "top" === a.to ? t.top.fromTop - n : -t.bottom.fromBottom - n) <= 0 && (g(), a.parent && y())),
|
|
b(e);
|
|
},
|
|
w = function () {
|
|
var e;
|
|
i &&
|
|
a.autoHide &&
|
|
((e = a.autoHideOffset.size * ("vh" === a.autoHideOffset.unit ? k(window).height() / 100 : 1)),
|
|
pageYOffset >= e &&
|
|
pageYOffset > c + 10 &&
|
|
r
|
|
.off("transitionend.ceSticky")
|
|
.css({ transition: "transform " + a.autoHideDuration.size + "s", transform: "translateY(calc(-100% - " + a.offset + "px))" })
|
|
.addClass(a.classes.stickyHide),
|
|
(pageYOffset < e || pageYOffset < c - 10) &&
|
|
r
|
|
.removeClass(a.classes.stickyHide)
|
|
.css("transform", "")
|
|
.one("transitionend.ceSticky", function () {
|
|
r.css("transition", "");
|
|
}),
|
|
(c = pageYOffset)),
|
|
_();
|
|
},
|
|
S = function () {
|
|
i && (p(), m(), a.parent && ((l = !1), y()));
|
|
};
|
|
(this.destroy = function () {
|
|
i && v(), d.$window.off("scroll", w).off("resize", S), r.removeClass(a.classes.sticky).css("transform", "").off("transitionend.ceSticky").removeClass(a.classes.stickyHide);
|
|
}),
|
|
(a = jQuery.extend(!0, u, t)),
|
|
(r = k(e).addClass(a.classes.sticky)),
|
|
(d.$window = k(window)),
|
|
a.parent && ("parent" === a.parent ? (d.$parent = r.parent()) : (d.$parent = r.closest(a.parent))),
|
|
d.$window.on({ scroll: w, resize: S }),
|
|
_();
|
|
}),
|
|
(k.fn.sticky = function (n) {
|
|
var i = "string" == typeof n;
|
|
return (
|
|
this.each(function () {
|
|
var e = k(this);
|
|
if (i) {
|
|
var t = e.data("sticky");
|
|
if (!t) throw Error("Trying to perform the `" + n + "` method prior to initialization");
|
|
if (!t[n]) throw ReferenceError("Method `" + n + "` not found in sticky instance");
|
|
t[n].apply(t, Array.prototype.slice.call(arguments, 1)), "destroy" === n && e.removeData("sticky");
|
|
} else e.data("sticky", new Sticky(this, n));
|
|
}),
|
|
this
|
|
);
|
|
}),
|
|
elementorModules.frontend.handlers.Base.extend({
|
|
bindEvents: function () {
|
|
ceFrontend.addListenerOnce(this.getUniqueHandlerID() + "sticky", "resize", this.run);
|
|
},
|
|
unbindEvents: function () {
|
|
ceFrontend.removeListeners(this.getUniqueHandlerID() + "sticky", "resize", this.run);
|
|
},
|
|
isActive: function () {
|
|
return void 0 !== this.$element.data("sticky");
|
|
},
|
|
activate: function () {
|
|
var e = this.getElementSettings(),
|
|
t = {
|
|
to: e.sticky,
|
|
offset: e.sticky_offset,
|
|
effectsOffset: e.sticky_effects_offset,
|
|
autoHide: e.sticky_auto_hide,
|
|
autoHideOffset: e.sticky_auto_hide_offset || { size: 0 },
|
|
autoHideDuration: e.sticky_auto_hide_duration || { size: 0 },
|
|
classes: {
|
|
sticky: "elementor-sticky",
|
|
stickyActive: "elementor-sticky--active elementor-section--handles-inside",
|
|
stickyEffects: "elementor-sticky--effects",
|
|
stickyHide: "ce-sticky--hide",
|
|
spacer: "elementor-sticky__spacer",
|
|
},
|
|
};
|
|
e.sticky_parent && (t.parent = ".elementor-widget-wrap"), this.$element.sticky(t);
|
|
},
|
|
deactivate: function () {
|
|
this.isActive() && this.$element.sticky("destroy");
|
|
},
|
|
run: function (e) {
|
|
var t;
|
|
this.getElementSettings("sticky")
|
|
? ((t = ceFrontend.getCurrentDeviceMode()), -1 !== this.getElementSettings("sticky_on").indexOf(t) ? (!0 === e ? this.reactivate() : this.isActive() || this.activate()) : this.deactivate())
|
|
: this.deactivate();
|
|
},
|
|
reactivate: function () {
|
|
this.deactivate(), this.activate();
|
|
},
|
|
onElementChange: function (e) {
|
|
-1 !== ["sticky", "sticky_on"].indexOf(e) && this.run(!0),
|
|
-1 !== ["sticky_offset", "sticky_effects_offset", "sticky_parent", "sticky_auto_hide", "sticky_auto_hide_offset", "sticky_auto_hide_duration"].indexOf(e) && this.reactivate();
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), this.run();
|
|
},
|
|
onDestroy: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this, arguments), this.deactivate();
|
|
},
|
|
}));
|
|
e.exports = function (e) {
|
|
new i({ $element: e });
|
|
};
|
|
},
|
|
15: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
var s = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
var e = this,
|
|
t = n;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (n.__proto__ || Object.getPrototypeOf(n)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(n, [
|
|
{
|
|
key: "get",
|
|
value: function (t, e) {
|
|
e = e || {};
|
|
var n = void 0;
|
|
try {
|
|
n = e.session ? sessionStorage : localStorage;
|
|
} catch (e) {
|
|
return t ? void 0 : {};
|
|
}
|
|
var i = n.getItem("elementor"),
|
|
o = ((i = i ? JSON.parse(i) : {}).__expiration || (i.__expiration = {}), i.__expiration),
|
|
n = [],
|
|
s = (t ? o[t] && (n = [t]) : (n = Object.keys(o)), !1);
|
|
return (
|
|
n.forEach(function (e) {
|
|
new Date(o[e]) < new Date() && (delete i[e], delete o[e], (s = !0));
|
|
}),
|
|
s && this.save(i, e.session),
|
|
t ? i[t] : i
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "set",
|
|
value: function (e, t, n) {
|
|
var i = this.get(null, (n = n || {}));
|
|
(i[e] = t), n.lifetimeInSeconds && ((t = new Date()).setTime(t.getTime() + 1e3 * n.lifetimeInSeconds), (i.__expiration[e] = t.getTime())), this.save(i, n.session);
|
|
},
|
|
},
|
|
{
|
|
key: "save",
|
|
value: function (e, t) {
|
|
var n = void 0;
|
|
try {
|
|
n = t ? sessionStorage : localStorage;
|
|
} catch (e) {
|
|
return;
|
|
}
|
|
n.setItem("elementor", JSON.stringify(e));
|
|
},
|
|
},
|
|
]),
|
|
n
|
|
);
|
|
})(elementorModules.Module);
|
|
t.default = s;
|
|
},
|
|
16: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
var n = n(1),
|
|
s = (n = n) && n.__esModule ? n : { default: n };
|
|
function r() {
|
|
if (!(this instanceof r)) throw new TypeError("Cannot call a class as a function");
|
|
this.hotKeysHandlers = {};
|
|
}
|
|
i(r, [
|
|
{
|
|
key: "applyHotKey",
|
|
value: function (n) {
|
|
var e = this.hotKeysHandlers[n.which];
|
|
e &&
|
|
jQuery.each(e, function (e, t) {
|
|
(t.isWorthHandling && !t.isWorthHandling(n)) || (!t.allowAltKey && n.altKey) || (n.preventDefault(), t.handle(n));
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "isControlEvent",
|
|
value: function (e) {
|
|
return e[s.default.mac ? "metaKey" : "ctrlKey"];
|
|
},
|
|
},
|
|
{
|
|
key: "addHotKeyHandler",
|
|
value: function (e, t, n) {
|
|
this.hotKeysHandlers[e] || (this.hotKeysHandlers[e] = {}), (this.hotKeysHandlers[e][t] = n);
|
|
},
|
|
},
|
|
{
|
|
key: "bindListener",
|
|
value: function (e) {
|
|
e.on("keydown", this.applyHotKey.bind(this));
|
|
},
|
|
},
|
|
]),
|
|
(t.default = r);
|
|
},
|
|
17: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
function s(e, t, n) {
|
|
null === e && (e = Function.prototype);
|
|
var i = Object.getOwnPropertyDescriptor(e, t);
|
|
if (void 0 !== i) {
|
|
if ("value" in i) return i.value;
|
|
i = i.get;
|
|
return void 0 !== i ? i.call(n) : void 0;
|
|
}
|
|
if (null !== (i = Object.getPrototypeOf(e))) return s(i, t, n);
|
|
}
|
|
var r = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
var e = this,
|
|
t = n;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (n.__proto__ || Object.getPrototypeOf(n)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(n, [
|
|
{
|
|
key: "getDefaultSettings",
|
|
value: function () {
|
|
return { selectors: { elements: ".elementor-element", nestedDocumentElements: ".elementor .elementor-element" }, classes: { editMode: "elementor-edit-mode" } };
|
|
},
|
|
},
|
|
{
|
|
key: "getDefaultElements",
|
|
value: function () {
|
|
var e = this.getSettings("selectors");
|
|
return { $elements: this.$element.find(e.elements).not(this.$element.find(e.nestedDocumentElements)) };
|
|
},
|
|
},
|
|
{
|
|
key: "getDocumentSettings",
|
|
value: function (e) {
|
|
var t,
|
|
n = void 0;
|
|
return (
|
|
this.isEdit
|
|
? ((n = {}),
|
|
(t = elementor.settings.page.model),
|
|
jQuery.each(t.getActiveControls(), function (e) {
|
|
n[e] = t.attributes[e];
|
|
}))
|
|
: (n = this.$element.data("elementor-settings") || {}),
|
|
this.getItems(n, e)
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "runElementsHandlers",
|
|
value: function () {
|
|
this.elements.$elements.each(function (e, t) {
|
|
return ceFrontend.elementsHandler.runReadyTrigger(t);
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "onInit",
|
|
value: function () {
|
|
(this.$element = this.getSettings("$element")),
|
|
s(n.prototype.__proto__ || Object.getPrototypeOf(n.prototype), "onInit", this).call(this),
|
|
(this.isEdit = this.$element.hasClass(this.getSettings("classes.editMode"))),
|
|
this.isEdit ? elementor.settings.page.model.on("change", this.onSettingsChange.bind(this)) : this.runElementsHandlers();
|
|
},
|
|
},
|
|
{ key: "onSettingsChange", value: function () {} },
|
|
]),
|
|
n
|
|
);
|
|
})(elementorModules.ViewModule);
|
|
t.default = r;
|
|
},
|
|
18: function (e, t, n) {
|
|
"use strict";
|
|
e.exports = elementorModules.frontend.handlers.Base.extend({
|
|
$activeContent: null,
|
|
getDefaultSettings: function () {
|
|
return {
|
|
selectors: { tabTitle: ".elementor-tab-title", tabContent: ".elementor-tab-content" },
|
|
classes: { active: "elementor-active" },
|
|
showTabFn: "show",
|
|
hideTabFn: "hide",
|
|
toggleSelf: !0,
|
|
hidePrevious: !0,
|
|
autoExpand: !0,
|
|
};
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors");
|
|
return { $tabTitles: this.findElement(e.tabTitle), $tabContents: this.findElement(e.tabContent) };
|
|
},
|
|
activateDefaultTab: function () {
|
|
var e,
|
|
t = this.getSettings();
|
|
t.autoExpand &&
|
|
("editor" !== t.autoExpand || this.isEdit) &&
|
|
((e = this.getEditSettings("activeItemIndex") || 1), (t = { showTabFn: t.showTabFn, hideTabFn: t.hideTabFn }), this.setSettings({ showTabFn: "show", hideTabFn: "hide" }), this.changeActiveTab(e), this.setSettings(t));
|
|
},
|
|
deactivateActiveTab: function (e) {
|
|
var t = this.getSettings(),
|
|
n = t.classes.active,
|
|
e = e ? '[data-tab="' + e + '"]' : "." + n,
|
|
i = this.elements.$tabTitles.filter(e),
|
|
e = this.elements.$tabContents.filter(e);
|
|
i.add(e).removeClass(n), e[t.hideTabFn]();
|
|
},
|
|
activateTab: function (e) {
|
|
var t = this.getSettings(),
|
|
n = t.classes.active,
|
|
i = this.elements.$tabTitles.filter('[data-tab="' + e + '"]'),
|
|
e = this.elements.$tabContents.filter('[data-tab="' + e + '"]');
|
|
i.add(e).addClass(n), e[t.showTabFn]();
|
|
},
|
|
isActiveTab: function (e) {
|
|
return this.elements.$tabTitles.filter('[data-tab="' + e + '"]').hasClass(this.getSettings("classes.active"));
|
|
},
|
|
bindEvents: function () {
|
|
var t = this;
|
|
this.elements.$tabTitles.on({
|
|
keydown: function (e) {
|
|
"Enter" === e.key && (e.preventDefault(), t.changeActiveTab(e.currentTarget.getAttribute("data-tab")));
|
|
},
|
|
click: function (e) {
|
|
e.preventDefault(), t.changeActiveTab(e.currentTarget.getAttribute("data-tab"));
|
|
},
|
|
});
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), this.activateDefaultTab();
|
|
},
|
|
onEditSettingsChange: function (e) {
|
|
"activeItemIndex" === e && this.activateDefaultTab();
|
|
},
|
|
changeActiveTab: function (e) {
|
|
var t = this.isActiveTab(e),
|
|
n = this.getSettings();
|
|
(!n.toggleSelf && t) || !n.hidePrevious || this.deactivateActiveTab(), !n.hidePrevious && t && this.deactivateActiveTab(e), t || this.activateTab(e);
|
|
},
|
|
});
|
|
},
|
|
90: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var n = n(91),
|
|
i = (n = n) && n.__esModule ? n : { default: n };
|
|
n = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
if (!(this instanceof n)) throw new TypeError("Cannot call a class as a function");
|
|
var e = (function (e, t) {
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
})(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this));
|
|
return (
|
|
ceFrontend.hooks.addAction("frontend/element_ready/global", function (e) {
|
|
ceFrontend.elementsHandler.addHandler(i.default, { $element: e });
|
|
}),
|
|
e
|
|
);
|
|
}
|
|
return (t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)), n;
|
|
})(elementorModules.Module);
|
|
t.default = n;
|
|
},
|
|
91: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var d =
|
|
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator
|
|
? function (e) {
|
|
return typeof e;
|
|
}
|
|
: function (e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
|
|
},
|
|
i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
function s(e, t, n) {
|
|
null === e && (e = Function.prototype);
|
|
var i = Object.getOwnPropertyDescriptor(e, t);
|
|
if (void 0 !== i) {
|
|
if ("value" in i) return i.value;
|
|
i = i.get;
|
|
return void 0 !== i ? i.call(n) : void 0;
|
|
}
|
|
if (null !== (i = Object.getPrototypeOf(e))) return s(i, t, n);
|
|
}
|
|
var n = n(92),
|
|
r = (n = n) && n.__esModule ? n : { default: n };
|
|
n = (function (e) {
|
|
var t = o;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function o() {
|
|
var e = this,
|
|
t = o;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (o.__proto__ || Object.getPrototypeOf(o)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(o, [
|
|
{
|
|
key: "__construct",
|
|
value: function () {
|
|
for (var e, t = arguments.length, n = Array(t), i = 0; i < t; i++) n[i] = arguments[i];
|
|
(e = s(o.prototype.__proto__ || Object.getPrototypeOf(o.prototype), "__construct", this)).call.apply(e, [this].concat(n)), (this.toggle = ceFrontend.debounce(this.toggle, 200));
|
|
},
|
|
},
|
|
{
|
|
key: "bindEvents",
|
|
value: function () {
|
|
ceFrontend.elements.$window.on("resize", this.toggle);
|
|
},
|
|
},
|
|
{
|
|
key: "unbindEvents",
|
|
value: function () {
|
|
ceFrontend.elements.$window.off("resize", this.toggle);
|
|
},
|
|
},
|
|
{
|
|
key: "initEffects",
|
|
value: function () {
|
|
this.effects = {
|
|
translateY: { interaction: "scroll", actions: ["translateY"] },
|
|
translateX: { interaction: "scroll", actions: ["translateX"] },
|
|
rotateZ: { interaction: "scroll", actions: ["rotateZ"] },
|
|
scale: { interaction: "scroll", actions: ["scale"] },
|
|
opacity: { interaction: "scroll", actions: ["opacity"] },
|
|
blur: { interaction: "scroll", actions: ["blur"] },
|
|
mouseTrack: { interaction: "mouseMove", actions: ["translateXY"] },
|
|
tilt: { interaction: "mouseMove", actions: ["tilt"] },
|
|
};
|
|
},
|
|
},
|
|
{
|
|
key: "prepareOptions",
|
|
value: function (r) {
|
|
var a = this,
|
|
l = this.getElementSettings(),
|
|
e = "motion_fx" === r ? "element" : "background",
|
|
c = {},
|
|
t =
|
|
(jQuery.each(l, function (e, t) {
|
|
var i,
|
|
o,
|
|
n,
|
|
s = new RegExp("^" + r + "_(.+?)_effect"),
|
|
e = e.match(s);
|
|
e &&
|
|
t &&
|
|
((i = {}),
|
|
(o = e[1]),
|
|
jQuery.each(l, function (e, t) {
|
|
var n = new RegExp(r + "_" + o + "_(.+)"),
|
|
e = e.match(n);
|
|
e && "effect" !== e[1] && ("object" === (void 0 === t ? "undefined" : d(t)) && (t = Object.keys(t.sizes).length ? t.sizes : t.size), (i[e[1]] = t));
|
|
}),
|
|
(s = a.effects[o]),
|
|
(n = s.interaction),
|
|
c[n] || (c[n] = {}),
|
|
s.actions.forEach(function (e) {
|
|
return (c[n][e] = i);
|
|
}));
|
|
}),
|
|
this.$element),
|
|
n = void 0,
|
|
i = this.getElementType(),
|
|
i =
|
|
("element" == e && "section" !== i && (t = (n = t).find("> " + ("column" === i ? ".elementor-column-wrap" : ".elementor-widget-container"))),
|
|
{
|
|
type: e,
|
|
interactions: c,
|
|
elementSettings: l,
|
|
$element: t,
|
|
$dimensionsElement: n,
|
|
refreshDimensions: this.isEdit,
|
|
range: "viewport",
|
|
classes: {
|
|
element: "elementor-motion-effects-element",
|
|
parent: "elementor-motion-effects-parent",
|
|
backgroundType: "elementor-motion-effects-element-type-background",
|
|
container: "elementor-motion-effects-container",
|
|
layer: "elementor-motion-effects-layer",
|
|
perspective: "elementor-motion-effects-perspective",
|
|
},
|
|
});
|
|
return (
|
|
("page" !== l.motion_fx_range && "fixed" !== this.getCurrentDeviceSetting("_position")) || (i.range = "page"),
|
|
"background" == e && "column" === this.getElementType() && (i.addBackgroundLayerTo = " > .elementor-element-populated"),
|
|
i
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "activate",
|
|
value: function (e) {
|
|
var t = this.prepareOptions(e);
|
|
jQuery.isEmptyObject(t.interactions) || (this[e] = new r.default(t));
|
|
},
|
|
},
|
|
{
|
|
key: "deactivate",
|
|
value: function (e) {
|
|
this[e] && (this[e].destroy(), delete this[e]);
|
|
},
|
|
},
|
|
{
|
|
key: "toggle",
|
|
value: function () {
|
|
var n = this,
|
|
i = ceFrontend.getCurrentDeviceMode(),
|
|
o = this.getElementSettings();
|
|
["motion_fx", "background_motion_fx"].forEach(function (e) {
|
|
var t = o[e + "_devices"];
|
|
(!t || -1 !== t.indexOf(i)) && (o[e + "_motion_fx_scrolling"] || o[e + "_motion_fx_mouse"]) ? (n[e] ? n.refreshInstance(e) : n.activate(e)) : n.deactivate(e);
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "refreshInstance",
|
|
value: function (e) {
|
|
var t = this[e];
|
|
t && ((e = this.prepareOptions(e)), t.setSettings(e), t.refresh());
|
|
},
|
|
},
|
|
{
|
|
key: "onInit",
|
|
value: function () {
|
|
s(o.prototype.__proto__ || Object.getPrototypeOf(o.prototype), "onInit", this).call(this), this.initEffects(), this.toggle();
|
|
},
|
|
},
|
|
{
|
|
key: "onElementChange",
|
|
value: function (e) {
|
|
var t,
|
|
n = this;
|
|
/motion_fx_((scrolling)|(mouse)|(devices))$/.test(e)
|
|
? this.toggle()
|
|
: ((t = e.match(".*?motion_fx")) && ((t = t[0]), this.refreshInstance(t), this[t] || this.activate(t)),
|
|
/^_position/.test(e) &&
|
|
["motion_fx", "background_motion_fx"].forEach(function (e) {
|
|
n.refreshInstance(e);
|
|
}));
|
|
},
|
|
},
|
|
{
|
|
key: "onDestroy",
|
|
value: function () {
|
|
var t = this;
|
|
s(o.prototype.__proto__ || Object.getPrototypeOf(o.prototype), "onDestroy", this).call(this),
|
|
["motion_fx", "background_motion_fx"].forEach(function (e) {
|
|
t.deactivate(e);
|
|
});
|
|
},
|
|
},
|
|
]),
|
|
o
|
|
);
|
|
})(elementorModules.frontend.handlers.Base);
|
|
t.default = n;
|
|
},
|
|
92: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
function s(e, t, n) {
|
|
null === e && (e = Function.prototype);
|
|
var i = Object.getOwnPropertyDescriptor(e, t);
|
|
if (void 0 !== i) {
|
|
if ("value" in i) return i.value;
|
|
i = i.get;
|
|
return void 0 !== i ? i.call(n) : void 0;
|
|
}
|
|
if (null !== (i = Object.getPrototypeOf(e))) return s(i, t, n);
|
|
}
|
|
var r = c(n(93)),
|
|
a = c(n(94)),
|
|
l = c(n(95));
|
|
function c(e) {
|
|
return e && e.__esModule ? e : { default: e };
|
|
}
|
|
n = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
var e = this,
|
|
t = n;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (n.__proto__ || Object.getPrototypeOf(n)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(n, [
|
|
{
|
|
key: "getDefaultSettings",
|
|
value: function () {
|
|
return {
|
|
type: "element",
|
|
$element: null,
|
|
$dimensionsElement: null,
|
|
addBackgroundLayerTo: null,
|
|
interactions: {},
|
|
refreshDimensions: !1,
|
|
range: "viewport",
|
|
classes: {
|
|
element: "motion-fx-element",
|
|
parent: "motion-fx-parent",
|
|
backgroundType: "motion-fx-element-type-background",
|
|
container: "motion-fx-container",
|
|
layer: "motion-fx-layer",
|
|
perspective: "motion-fx-perspective",
|
|
},
|
|
};
|
|
},
|
|
},
|
|
{
|
|
key: "bindEvents",
|
|
value: function () {
|
|
(this.onWindowResize = this.onWindowResize.bind(this)), ceFrontend.elements.$window.on("resize", this.onWindowResize);
|
|
},
|
|
},
|
|
{
|
|
key: "unbindEvents",
|
|
value: function () {
|
|
ceFrontend.elements.$window.off("resize", this.onWindowResize);
|
|
},
|
|
},
|
|
{
|
|
key: "addBackgroundLayer",
|
|
value: function () {
|
|
var e = this.getSettings();
|
|
(this.elements.$motionFXContainer = jQuery("<div>", { class: e.classes.container })),
|
|
(this.elements.$motionFXLayer = jQuery("<div>", { class: e.classes.layer })),
|
|
this.updateBackgroundLayerSize(),
|
|
this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer),
|
|
(e.addBackgroundLayerTo ? this.$element.find(e.addBackgroundLayerTo) : this.$element).prepend(this.elements.$motionFXContainer);
|
|
},
|
|
},
|
|
{
|
|
key: "removeBackgroundLayer",
|
|
value: function () {
|
|
this.elements.$motionFXContainer.remove();
|
|
},
|
|
},
|
|
{
|
|
key: "updateBackgroundLayerSize",
|
|
value: function () {
|
|
var e = this.getSettings(),
|
|
t = { x: 0, y: 0 },
|
|
n = e.interactions.mouseMove,
|
|
e = e.interactions.scroll;
|
|
n && n.translateXY && ((t.x = 10 * n.translateXY.speed), (t.y = 10 * n.translateXY.speed)),
|
|
e && (e.translateX && (t.x = 10 * e.translateX.speed), e.translateY && (t.y = 10 * e.translateY.speed)),
|
|
this.elements.$motionFXLayer.css({ width: 100 + t.x + "%", height: 100 + t.y + "%" });
|
|
},
|
|
},
|
|
{
|
|
key: "defineDimensions",
|
|
value: function () {
|
|
var e = this.getSettings("$dimensionsElement") || this.$element,
|
|
t = e.offset(),
|
|
e = { elementHeight: e.outerHeight(), elementWidth: e.outerWidth(), elementTop: t.top, elementLeft: t.left };
|
|
(e.elementRange = e.elementHeight + innerHeight), this.setSettings("dimensions", e), "background" === this.getSettings("type") && this.defineBackgroundLayerDimensions();
|
|
},
|
|
},
|
|
{
|
|
key: "defineBackgroundLayerDimensions",
|
|
value: function () {
|
|
var e = this.getSettings("dimensions");
|
|
(e.layerHeight = this.elements.$motionFXLayer.height()),
|
|
(e.layerWidth = this.elements.$motionFXLayer.width()),
|
|
(e.movableX = e.layerWidth - e.elementWidth),
|
|
(e.movableY = e.layerHeight - e.elementHeight),
|
|
this.setSettings("dimensions", e);
|
|
},
|
|
},
|
|
{
|
|
key: "initInteractionsTypes",
|
|
value: function () {
|
|
this.interactionsTypes = { scroll: r.default, mouseMove: a.default };
|
|
},
|
|
},
|
|
{
|
|
key: "prepareSpecialActions",
|
|
value: function () {
|
|
var e = this.getSettings(),
|
|
t = !(!e.interactions.mouseMove || !e.interactions.mouseMove.tilt);
|
|
this.elements.$parent.toggleClass(e.classes.perspective, t);
|
|
},
|
|
},
|
|
{
|
|
key: "cleanSpecialActions",
|
|
value: function () {
|
|
var e = this.getSettings();
|
|
this.elements.$parent.removeClass(e.classes.perspective);
|
|
},
|
|
},
|
|
{
|
|
key: "runInteractions",
|
|
value: function () {
|
|
var o = this,
|
|
e = this.getSettings();
|
|
this.actions.setCSSTransformVariables(e.elementSettings),
|
|
this.prepareSpecialActions(),
|
|
jQuery.each(e.interactions, function (e, n) {
|
|
(o.interactions[e] = new o.interactionsTypes[e]({
|
|
motionFX: o,
|
|
callback: function () {
|
|
for (var e = arguments.length, i = Array(e), t = 0; t < e; t++) i[t] = arguments[t];
|
|
jQuery.each(n, function (e, t) {
|
|
var n;
|
|
return (n = o.actions).runAction.apply(n, [e, t].concat(i));
|
|
});
|
|
},
|
|
})),
|
|
o.interactions[e].runImmediately();
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "destroyInteractions",
|
|
value: function () {
|
|
this.cleanSpecialActions(),
|
|
jQuery.each(this.interactions, function (e, t) {
|
|
return t.destroy();
|
|
}),
|
|
(this.interactions = {});
|
|
},
|
|
},
|
|
{
|
|
key: "refresh",
|
|
value: function () {
|
|
this.actions.setSettings(this.getSettings()),
|
|
"background" === this.getSettings("type") && (this.updateBackgroundLayerSize(), this.defineBackgroundLayerDimensions()),
|
|
this.actions.refresh(),
|
|
this.destroyInteractions(),
|
|
this.runInteractions();
|
|
},
|
|
},
|
|
{
|
|
key: "destroy",
|
|
value: function () {
|
|
this.destroyInteractions(), this.actions.refresh();
|
|
var e = this.getSettings();
|
|
this.$element.removeClass(e.classes.element), this.elements.$parent.removeClass(e.classes.parent), "background" === e.type && (this.$element.removeClass(e.classes.backgroundType), this.removeBackgroundLayer());
|
|
},
|
|
},
|
|
{
|
|
key: "onInit",
|
|
value: function () {
|
|
s(n.prototype.__proto__ || Object.getPrototypeOf(n.prototype), "onInit", this).call(this);
|
|
var e = this.getSettings();
|
|
(this.$element = e.$element),
|
|
(this.elements.$parent = this.$element.parent()),
|
|
this.$element.addClass(e.classes.element),
|
|
(this.elements.$parent = this.$element.parent()),
|
|
this.elements.$parent.addClass(e.classes.parent),
|
|
"background" === e.type && (this.$element.addClass(e.classes.backgroundType), this.addBackgroundLayer()),
|
|
this.defineDimensions(),
|
|
(e.$targetElement = "element" === e.type ? this.$element : this.elements.$motionFXLayer),
|
|
(this.interactions = {}),
|
|
(this.actions = new l.default(e)),
|
|
this.initInteractionsTypes(),
|
|
this.runInteractions();
|
|
},
|
|
},
|
|
{
|
|
key: "onWindowResize",
|
|
value: function () {
|
|
this.defineDimensions();
|
|
},
|
|
},
|
|
]),
|
|
n
|
|
);
|
|
})(elementorModules.ViewModule);
|
|
t.default = n;
|
|
},
|
|
93: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
var n = n(5);
|
|
n = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
var e = this,
|
|
t = n;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (n.__proto__ || Object.getPrototypeOf(n)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(n, [
|
|
{
|
|
key: "run",
|
|
value: function () {
|
|
var e, t, n;
|
|
pageYOffset !== this.windowScrollTop &&
|
|
((t = this.motionFX.getSettings()).refreshDimensions && this.motionFX.defineDimensions(),
|
|
(n = void (this.windowScrollTop = pageYOffset)),
|
|
(n =
|
|
"page" === t.range
|
|
? (document.documentElement.scrollTop / (document.body.scrollHeight - innerHeight)) * 100
|
|
: ((e = t.dimensions),
|
|
(t = ((t = t.$element[0]) && ~t.className.indexOf("sticky--active") ? t.getBoundingClientRect().top : e.elementTop - pageYOffset) - innerHeight),
|
|
(100 / e.elementRange) * (-1 * t))),
|
|
this.runCallback(n));
|
|
},
|
|
},
|
|
]),
|
|
n
|
|
);
|
|
})(((n = n) && n.__esModule ? n : { default: n }).default);
|
|
t.default = n;
|
|
},
|
|
94: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
function s(e, t, n) {
|
|
null === e && (e = Function.prototype);
|
|
var i = Object.getOwnPropertyDescriptor(e, t);
|
|
if (void 0 !== i) {
|
|
if ("value" in i) return i.value;
|
|
i = i.get;
|
|
return void 0 !== i ? i.call(n) : void 0;
|
|
}
|
|
if (null !== (i = Object.getPrototypeOf(e))) return s(i, t, n);
|
|
}
|
|
var n = n(5);
|
|
var r = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
var e = this,
|
|
t = n;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (n.__proto__ || Object.getPrototypeOf(n)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(n, [
|
|
{
|
|
key: "bindEvents",
|
|
value: function () {
|
|
n.mouseTracked || (ceFrontend.elements.$window.on("mousemove", n.updateMousePosition), (n.mouseTracked = !0));
|
|
},
|
|
},
|
|
{
|
|
key: "run",
|
|
value: function () {
|
|
var e = n.mousePosition,
|
|
t = this.oldMousePosition;
|
|
(t.x === e.x && t.y === e.y) || ((this.oldMousePosition = { x: e.x, y: e.y }), (t = (100 / innerWidth) * e.x), (e = (100 / innerHeight) * e.y), this.runCallback(t, e));
|
|
},
|
|
},
|
|
{
|
|
key: "onInit",
|
|
value: function () {
|
|
(this.oldMousePosition = {}), s(n.prototype.__proto__ || Object.getPrototypeOf(n.prototype), "onInit", this).call(this);
|
|
},
|
|
},
|
|
]),
|
|
n
|
|
);
|
|
})(((n = n) && n.__esModule ? n : { default: n }).default);
|
|
((t.default = r).mousePosition = {}),
|
|
(r.updateMousePosition = function (e) {
|
|
r.mousePosition = { x: e.clientX, y: e.clientY };
|
|
});
|
|
},
|
|
95: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
var s = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
var e = this,
|
|
t = n;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (n.__proto__ || Object.getPrototypeOf(n)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(n, [
|
|
{
|
|
key: "getMovePointFromPassedPercents",
|
|
value: function (e, t) {
|
|
return +((t / e) * 100).toFixed(2);
|
|
},
|
|
},
|
|
{
|
|
key: "getEffectValueFromMovePoint",
|
|
value: function (e, t) {
|
|
return (e * t) / 100;
|
|
},
|
|
},
|
|
{
|
|
key: "getStep",
|
|
value: function (e, t) {
|
|
return "element" === this.getSettings("type") ? this.getElementStep(e, t) : this.getBackgroundStep(e, t);
|
|
},
|
|
},
|
|
{
|
|
key: "getElementStep",
|
|
value: function (e, t) {
|
|
return -(e - 50) * t.speed;
|
|
},
|
|
},
|
|
{
|
|
key: "getBackgroundStep",
|
|
value: function (e, t) {
|
|
t = this.getSettings("dimensions.movable" + t.axis.toUpperCase());
|
|
return -this.getEffectValueFromMovePoint(t, e);
|
|
},
|
|
},
|
|
{
|
|
key: "getDirectionMovePoint",
|
|
value: function (e, t, n) {
|
|
var i = void 0;
|
|
return (
|
|
e < n.start
|
|
? "out-in" === t
|
|
? (i = 0)
|
|
: "in-out" === t
|
|
? (i = 100)
|
|
: ((i = this.getMovePointFromPassedPercents(n.start, e)), "in-out-in" === t && (i = 100 - i))
|
|
: e < n.end
|
|
? "in-out-in" === t
|
|
? (i = 0)
|
|
: "out-in-out" === t
|
|
? (i = 100)
|
|
: ((i = this.getMovePointFromPassedPercents(n.end - n.start, e - n.start)), "in-out" === t && (i = 100 - i))
|
|
: "in-out" === t
|
|
? (i = 0)
|
|
: "out-in" === t
|
|
? (i = 100)
|
|
: ((i = this.getMovePointFromPassedPercents(100 - n.end, 100 - e)), "in-out-in" === t && (i = 100 - i)),
|
|
i
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "translateX",
|
|
value: function (e, t) {
|
|
(e.axis = "x"), (e.unit = "px"), this.transform("translateX", t, e);
|
|
},
|
|
},
|
|
{
|
|
key: "translateY",
|
|
value: function (e, t) {
|
|
(e.axis = "y"), (e.unit = "px"), this.transform("translateY", t, e);
|
|
},
|
|
},
|
|
{
|
|
key: "translateXY",
|
|
value: function (e, t, n) {
|
|
this.translateX(e, t), this.translateY(e, n);
|
|
},
|
|
},
|
|
{
|
|
key: "tilt",
|
|
value: function (e, t, n) {
|
|
e = { speed: e.speed / 10, direction: e.direction };
|
|
this.rotateX(e, n), this.rotateY(e, 100 - t);
|
|
},
|
|
},
|
|
{
|
|
key: "rotateX",
|
|
value: function (e, t) {
|
|
(e.axis = "x"), (e.unit = "deg"), this.transform("rotateX", t, e);
|
|
},
|
|
},
|
|
{
|
|
key: "rotateY",
|
|
value: function (e, t) {
|
|
(e.axis = "y"), (e.unit = "deg"), this.transform("rotateY", t, e);
|
|
},
|
|
},
|
|
{
|
|
key: "rotateZ",
|
|
value: function (e, t) {
|
|
(e.unit = "deg"), this.transform("rotateZ", t, e);
|
|
},
|
|
},
|
|
{
|
|
key: "scale",
|
|
value: function (e, t) {
|
|
t = this.getDirectionMovePoint(t, e.direction, e.range);
|
|
this.updateRulePart("transform", "scale", 1 + (e.speed * t) / 1e3);
|
|
},
|
|
},
|
|
{
|
|
key: "transform",
|
|
value: function (e, t, n) {
|
|
n.direction && (t = 100 - t), this.updateRulePart("transform", e, this.getStep(t, n) + n.unit);
|
|
},
|
|
},
|
|
{
|
|
key: "setCSSTransformVariables",
|
|
value: function (e) {
|
|
this.CSSTransformVariables = [];
|
|
var n = this;
|
|
jQuery.each(e, function (e, t) {
|
|
e = e.match(/_transform_(.+?)_effect/m);
|
|
e && t && ("perspective" === e[1] ? n.CSSTransformVariables.unshift(e[1]) : n.CSSTransformVariables.includes(e[1]) || n.CSSTransformVariables.push(e[1]));
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "opacity",
|
|
value: function (e, t) {
|
|
(t = this.getDirectionMovePoint(t, e.direction, e.range)), (e = e.level / 10), (e = 1 - e + this.getEffectValueFromMovePoint(e, t));
|
|
this.$element.css("opacity", e);
|
|
},
|
|
},
|
|
{
|
|
key: "blur",
|
|
value: function (e, t) {
|
|
(t = this.getDirectionMovePoint(t, e.direction, e.range)), (e = e.level - this.getEffectValueFromMovePoint(e.level, t));
|
|
this.updateRulePart("filter", "blur", e + "px");
|
|
},
|
|
},
|
|
{
|
|
key: "updateRulePart",
|
|
value: function (e, t, n) {
|
|
this.rulesVariables[e] || (this.rulesVariables[e] = {}), this.rulesVariables[e][t] || ((this.rulesVariables[e][t] = !0), this.updateRule(e)), this.$element[0].style.setProperty("--" + t, n);
|
|
},
|
|
},
|
|
{
|
|
key: "updateRule",
|
|
value: function (e) {
|
|
var t = "";
|
|
(t += this.concatTransformCSSProperties(e)),
|
|
jQuery.each(this.rulesVariables[e], function (e) {
|
|
t += e + "(var(--" + e + "))";
|
|
}),
|
|
this.$element.css(e, t);
|
|
},
|
|
},
|
|
{
|
|
key: "concatTransformCSSProperties",
|
|
value: function (e) {
|
|
var o = "";
|
|
return (
|
|
"transform" === e &&
|
|
jQuery.each(this.CSSTransformVariables, function (e, t) {
|
|
var n = t,
|
|
i = (t = t.startsWith("flip") ? t.replace("flip", "scale") : t).startsWith("rotate") || t.startsWith("skew") ? "deg" : "px",
|
|
i = t.startsWith("scale") ? 1 : 0 + i;
|
|
o += t + "(var(--e-transform-" + n + ", " + i + "))";
|
|
}),
|
|
o
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "runAction",
|
|
value: function (e, t, n) {
|
|
t.affectedRange && (t.affectedRange.start > n && (n = t.affectedRange.start), t.affectedRange.end < n && (n = t.affectedRange.end));
|
|
for (var i = arguments.length, o = Array(3 < i ? i - 3 : 0), s = 3; s < i; s++) o[s - 3] = arguments[s];
|
|
this[e].apply(this, [t, n].concat(o));
|
|
},
|
|
},
|
|
{
|
|
key: "refresh",
|
|
value: function () {
|
|
(this.rulesVariables = {}), (this.CSSTransformVariables = []), this.$element.css({ transform: "", filter: "", opacity: "" });
|
|
},
|
|
},
|
|
{
|
|
key: "onInit",
|
|
value: function () {
|
|
(this.$element = this.getSettings("$targetElement")), this.refresh();
|
|
},
|
|
},
|
|
]),
|
|
n
|
|
);
|
|
})(elementorModules.Module);
|
|
t.default = s;
|
|
},
|
|
100: function (e, t, n) {
|
|
"use strict";
|
|
function c(t, n, e, i, o) {
|
|
function s() {
|
|
var e = c.getTimeRemaining(n);
|
|
o.each(e.parts, function (e) {
|
|
var e = r["$" + e + "Span"],
|
|
t = this.toString();
|
|
1 === t.length && (t = 0 + t), e.length && e.text(t);
|
|
}),
|
|
e.total <= 0 && (clearInterval(l), a());
|
|
}
|
|
var r = { $daysSpan: t.find(".elementor-countdown-days"), $hoursSpan: t.find(".elementor-countdown-hours"), $minutesSpan: t.find(".elementor-countdown-minutes"), $secondsSpan: t.find(".elementor-countdown-seconds") },
|
|
a = function () {
|
|
t.trigger("countdown_expire", t),
|
|
e &&
|
|
e.forEach(function (e) {
|
|
switch (e.type) {
|
|
case "hide":
|
|
t.hide();
|
|
break;
|
|
case "redirect":
|
|
e.redirect_url && !ceFrontend.isEditMode() && (e.redirect_is_external ? window.open(e.redirect_url) : (window.location.href = e.redirect_url));
|
|
break;
|
|
case "message":
|
|
i.show();
|
|
}
|
|
});
|
|
},
|
|
l = setInterval(s, 1e3);
|
|
s();
|
|
}
|
|
(c.getTimeRemaining = function (e) {
|
|
var e = e - new Date(),
|
|
t = Math.floor((e / 1e3) % 60),
|
|
n = Math.floor((e / 1e3 / 60) % 60),
|
|
i = Math.floor((e / 36e5) % 24),
|
|
o = Math.floor(e / 864e5);
|
|
return (o < 0 || i < 0 || n < 0) && (t = n = i = o = 0), { total: e, parts: { days: o, hours: i, minutes: n, seconds: t } };
|
|
}),
|
|
(e.exports = function (e, t) {
|
|
var n = e.find(".elementor-countdown-wrapper"),
|
|
i = new Date(1e3 * n.data("date")),
|
|
o = n.data("expire-actions"),
|
|
e = e.find(".elementor-countdown-expire--message");
|
|
c(n, i, o, e, t);
|
|
});
|
|
},
|
|
108: function (e, t, n) {
|
|
"use strict";
|
|
jQuery.fn.smartmenus &&
|
|
(jQuery.SmartMenus.prototype.isCSSOn = function () {
|
|
return !0;
|
|
});
|
|
var i = elementorModules.frontend.handlers.Base.extend({
|
|
stretchElement: null,
|
|
getDefaultSettings: function () {
|
|
return {
|
|
selectors: {
|
|
menu: ".elementor-nav",
|
|
anchorLink: ".elementor-nav--main .elementor-item-anchor",
|
|
mainMenu: ".elementor-nav__container.elementor-nav--main",
|
|
dropdownMenu: ".elementor-nav__container.elementor-nav--dropdown",
|
|
menuToggle: ".elementor-menu-toggle",
|
|
},
|
|
};
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors"),
|
|
t = {};
|
|
return (
|
|
(t.$menu = this.$element.find(e.menu)),
|
|
(t.$anchorLink = this.$element.find(e.anchorLink)),
|
|
(t.$mainMenu = this.$element.find(e.mainMenu)),
|
|
(t.$dropdownMenu = this.$element.find(e.dropdownMenu)),
|
|
(t.$dropdownMenuFinalItems = t.$dropdownMenu.find(".menu-item:not(.menu-item-has-children) > a")),
|
|
(t.$menuToggle = this.$element.find(e.menuToggle)),
|
|
t
|
|
);
|
|
},
|
|
bindEvents: function () {
|
|
this.elements.$menu.length &&
|
|
(this.elements.$menuToggle.on("click", this.toggleMenu.bind(this)),
|
|
this.getElementSettings("full_width") && this.elements.$dropdownMenuFinalItems.on("click", this.toggleMenu.bind(this, !1)),
|
|
ceFrontend.addListenerOnce(this.$element.data("model-cid"), "resize", this.stretchMenu));
|
|
},
|
|
initStretchElement: function () {
|
|
this.stretchElement = new elementorModules.frontend.tools.StretchElement({ element: this.elements.$dropdownMenu });
|
|
},
|
|
toggleMenu: function (e) {
|
|
var t = this.elements.$menuToggle.hasClass("elementor-active");
|
|
this.elements.$menuToggle.toggleClass("elementor-active", (e = "boolean" != typeof e ? !t : e)), e && this.getElementSettings("full_width") && this.stretchElement.stretch();
|
|
},
|
|
followMenuAnchors: function () {
|
|
var e = this;
|
|
e.elements.$anchorLink.each(function () {
|
|
location.pathname === this.pathname && "" !== this.hash && e.followMenuAnchor(jQuery(this));
|
|
});
|
|
},
|
|
followMenuAnchor: function (t) {
|
|
var e = t[0].hash,
|
|
n = -300,
|
|
i = void 0;
|
|
try {
|
|
i = jQuery(decodeURIComponent(e));
|
|
} catch (e) {
|
|
return;
|
|
}
|
|
i.length &&
|
|
(i.hasClass("elementor-menu-anchor") || ((e = jQuery(window).height() / 2), (n = -i.outerHeight() + e)),
|
|
ceFrontend.waypoint(
|
|
i,
|
|
function (e) {
|
|
"down" === e ? t.addClass("elementor-item-active") : t.removeClass("elementor-item-active");
|
|
},
|
|
{ offset: "50%", triggerOnce: !1 }
|
|
),
|
|
ceFrontend.waypoint(
|
|
i,
|
|
function (e) {
|
|
"down" === e ? t.removeClass("elementor-item-active") : t.addClass("elementor-item-active");
|
|
},
|
|
{ offset: n, triggerOnce: !1 }
|
|
));
|
|
},
|
|
stretchMenu: function () {
|
|
this.getElementSettings("full_width") ? (this.stretchElement.stretch(), this.elements.$dropdownMenu.css("top", this.elements.$menuToggle.outerHeight())) : this.stretchElement.reset();
|
|
},
|
|
onInit: function () {
|
|
var e, t, n;
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments),
|
|
this.elements.$menu.length &&
|
|
((e = this.getElementSettings("align_submenu")),
|
|
(t = "click" === this.getElementSettings("show_submenu_on")),
|
|
this.elements.$menu.smartmenus({ subIndicators: !1, subIndicatorsPos: "append", subMenusMaxWidth: "1000px", noMouseOver: t, rightToLeftSubMenus: e ? "right" === e : ceFrontend.config.is_rtl }),
|
|
t &&
|
|
this.elements.$mainMenu
|
|
.filter(".elementor-langs, .elementor-currencies, .elementor-sign-in")
|
|
.children()
|
|
.on(
|
|
"click",
|
|
"a.elementor-item.has-submenu.highlighted",
|
|
function (e) {
|
|
this.elements.$menu.smartmenus("menuHide", jQuery(e.currentTarget).next()), e.currentTarget.blur(), e.preventDefault();
|
|
}.bind(this)
|
|
),
|
|
"accordion" === this.getElementSettings("animation_dropdown") &&
|
|
(n = this.elements.$dropdownMenu.children().on("click.ce", "a.has-submenu", function () {
|
|
var e = jQuery(this.parentNode).siblings().children("a.highlighted").next();
|
|
e.length && n.smartmenus("menuHide", e);
|
|
})),
|
|
this.initStretchElement(),
|
|
this.stretchMenu(),
|
|
ceFrontend.isEditMode() || this.followMenuAnchors());
|
|
},
|
|
onElementChange: function (e) {
|
|
"full_width" === e && this.stretchMenu();
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
new i({ $element: e });
|
|
};
|
|
},
|
|
122: function (e, t, n) {
|
|
"use strict";
|
|
var i = elementorModules.frontend.handlers.Base.extend({
|
|
getDefaultSettings: function () {
|
|
return {
|
|
selectors: {
|
|
wrapper: ".elementor-search",
|
|
container: ".elementor-search__container",
|
|
icon: ".elementor-search__icon",
|
|
input: ".elementor-search__input",
|
|
clear: ".elementor-search__clear",
|
|
toggle: ".elementor-search__toggle",
|
|
submit: ".elementor-search__submit",
|
|
closeButton: ".dialog-close-button",
|
|
},
|
|
classes: { isFocus: "elementor-search--focus", isTopbar: "elementor-search--topbar", lightbox: "elementor-lightbox" },
|
|
};
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors"),
|
|
t = {};
|
|
return (
|
|
(t.$wrapper = this.$element.find(e.wrapper)),
|
|
(t.$container = this.$element.find(e.container)),
|
|
(t.$input = this.$element.find(e.input)),
|
|
(t.$clear = this.$element.find(e.clear)),
|
|
(t.$icon = this.$element.find(e.icon)),
|
|
(t.$toggle = this.$element.find(e.toggle)),
|
|
(t.$submit = this.$element.find(e.submit)),
|
|
(t.$closeButton = this.$element.find(e.closeButton)),
|
|
t
|
|
);
|
|
},
|
|
bindEvents: function () {
|
|
var e = this,
|
|
t = e.elements.$container,
|
|
n = e.elements.$closeButton,
|
|
i = e.elements.$input,
|
|
o = e.elements.$clear,
|
|
s = e.elements.$wrapper,
|
|
r = e.elements.$icon,
|
|
a = this.getElementSettings("skin"),
|
|
l = this.getSettings("classes");
|
|
i.one("focus", $.proxy(this, "loadAutocomplete")),
|
|
o.on("click", function () {
|
|
i.val("").triggerHandler("keydown"), o.css({ visibility: "", pointerEvents: "" });
|
|
}),
|
|
i.on("input", function () {
|
|
var e = !i.val();
|
|
o.css({ visibility: e ? "" : "visible", pointerEvents: e ? "" : "all" });
|
|
}),
|
|
"topbar" === a
|
|
? (e.elements.$toggle.on("click", function () {
|
|
t.toggleClass(l.isTopbar).toggleClass(l.lightbox), i.focus();
|
|
}),
|
|
n.on("click", function () {
|
|
t.removeClass(l.isTopbar).removeClass(l.lightbox);
|
|
}),
|
|
ceFrontend.elements.$document
|
|
.keyup(function (e) {
|
|
27 === e.keyCode && t.hasClass(l.isTopbar) && t.click();
|
|
})
|
|
.on("click", function (e) {
|
|
t.hasClass(l.isTopbar) && !$(e.target).closest(s).length && t.removeClass(l.isTopbar).removeClass(l.lightbox);
|
|
}))
|
|
: i.on({
|
|
focus: function () {
|
|
s.addClass(l.isFocus);
|
|
},
|
|
blur: function () {
|
|
s.removeClass(l.isFocus);
|
|
},
|
|
}),
|
|
"minimal" === a &&
|
|
r.on("click", function () {
|
|
s.addClass(l.isFocus), i.focus();
|
|
});
|
|
},
|
|
loadAutocomplete: function () {
|
|
var e = window.baseDir || prestashop.urls.base_url,
|
|
t = $.ui ? ($.ui.autocomplete ? "" : "jquery.ui.autocomplete") : "jquery-ui";
|
|
t
|
|
? ($('<link rel="stylesheet">')
|
|
.attr({ href: e + "js/jquery/ui/themes/base/minified/" + t + ".min.css" })
|
|
.appendTo(document.head),
|
|
"jquery-ui" == t &&
|
|
$('<link rel="stylesheet">')
|
|
.attr({ href: e + "js/jquery/ui/themes/base/minified/jquery.ui.theme.min.css" })
|
|
.appendTo(document.head),
|
|
$.ajax({ url: e + "js/jquery/ui/" + t + ".min.js", cache: !0, dataType: "script", success: $.proxy(this, "initAutocomplete") }))
|
|
: this.initAutocomplete();
|
|
},
|
|
initAutocomplete: function () {
|
|
$.fn.ceAjaxSearch ||
|
|
$.widget("ww.ceAjaxSearch", $.ui.autocomplete, {
|
|
_create: function () {
|
|
this._super(),
|
|
this.menu.element.addClass("elementor-search__products"),
|
|
this.element.on("focus" + this.eventNamespace, $.proxy(this, "_openOnFocus")),
|
|
$(document).on("click" + this.eventNamespace, $.proxy(this, "_closeOnDocumentClick")),
|
|
this._off(this.element, "blur"),
|
|
(this.menu.element.outerHeight = function () {
|
|
return window.event && "mouseover" === event.type ? 1 / 0 : $.fn.outerHeight.apply(this, arguments);
|
|
});
|
|
},
|
|
_openOnFocus: function (e) {
|
|
this.menu.element.show(), this._resizeMenu(), this.menu.element.position($.extend({ of: this.element }, this.options.position));
|
|
},
|
|
_closeOnDocumentClick: function (e) {
|
|
$(e.target).closest(this.options.appendTo).length || this._close();
|
|
},
|
|
search: function (e, t) {
|
|
(e = null != e ? e : this._value()), this._super(e, t), e.length < this.options.minLength && this.menu.element.empty();
|
|
},
|
|
_renderItem: function (e, t) {
|
|
var n = this.options.elementSettings,
|
|
i = (t.cover && t.cover.small.url) || prestashop.urls.img_prod_url + prestashop.language.iso_code + "-default-small_default.jpg";
|
|
return $('<li class="elementor-search__product">')
|
|
.html(
|
|
'<a class="elementor-search__product-link" href="' +
|
|
encodeURI(t.url) +
|
|
'">' +
|
|
(n.show_image ? '<img class="elementor-search__product-image" src="' + encodeURI(i) + '" alt="' + t.name.replace(/"/g, """) + '">' : "") +
|
|
'<div class="elementor-search__product-details"><div class="elementor-search__product-name">' +
|
|
t.name +
|
|
"</div>" +
|
|
(n.show_category ? '<div class="elementor-search__product-category">' + t.category_name + "</div>" : "") +
|
|
(n.show_description ? '<div class="elementor-search__product-description">' + (t.description_short || "").replace(/<\/?\w+.*?>/g, "") + "</div>" : "") +
|
|
(n.show_price ? '<div class="elementor-search__product-price">' + (t.has_discount ? "<del>" + t.regular_price + "</del> " : "") + t.price + "</div>" : "") +
|
|
"</div></a>"
|
|
)
|
|
.appendTo(e);
|
|
},
|
|
_resizeMenu: function () {
|
|
this._super(),
|
|
(this.options.position.my = "left top+" + this.menu.element.css("margin-top")),
|
|
setTimeout(
|
|
function () {
|
|
this.menu.element.css({ maxHeight: "calc(100vh - " + (this.menu.element.offset().top - $(window).scrollTop()) + "px)", overflowY: "auto", WebkitOverflowScrolling: "touch" });
|
|
}.bind(this),
|
|
1
|
|
);
|
|
},
|
|
});
|
|
var i = this.elements.$wrapper.prop("action"),
|
|
o = this.elements.$input.prop("name");
|
|
this.elements.$input.ceAjaxSearch({
|
|
appendTo: "topbar" === this.getElementSettings("skin") ? this.elements.$container : this.elements.$wrapper,
|
|
minLength: 3,
|
|
elementSettings: this.getElementSettings(),
|
|
source: function (e, t) {
|
|
var n = { ajax: !0, resultsPerPage: this.options.elementSettings.list_limit || 10 };
|
|
(n[o] = e.term),
|
|
$.post(i, n, null, "json")
|
|
.then(function (e) {
|
|
t(e.products);
|
|
})
|
|
.fail(t);
|
|
},
|
|
select: function (e, t) {
|
|
location.href === t.item.url || ceFrontend.isEditMode() || (location.href = t.item.url);
|
|
},
|
|
});
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
new i({ $element: e });
|
|
};
|
|
},
|
|
123: function (e, t, n) {
|
|
"use strict";
|
|
var i = elementorModules.frontend.handlers.Base.extend({
|
|
svgPaths: {
|
|
circle: ["M325,18C228.7-8.3,118.5,8.3,78,21C22.4,38.4,4.6,54.6,5.6,77.6c1.4,32.4,52.2,54,142.6,63.7 c66.2,7.1,212.2,7.5,273.5-8.3c64.4-16.6,104.3-57.6,33.8-98.2C386.7-4.9,179.4-1.4,126.3,20.7"],
|
|
underline_zigzag: ["M9.3,127.3c49.3-3,150.7-7.6,199.7-7.4c121.9,0.4,189.9,0.4,282.3,7.2C380.1,129.6,181.2,130.6,70,139 c82.6-2.9,254.2-1,335.9,1.3c-56,1.4-137.2-0.3-197.1,9"],
|
|
x: ["M497.4,23.9C301.6,40,155.9,80.6,4,144.4", "M14.1,27.6c204.5,20.3,393.8,74,467.3,111.7"],
|
|
strikethrough: ["M3,75h493.5"],
|
|
curly: [
|
|
"M3,146.1c17.1-8.8,33.5-17.8,51.4-17.8c15.6,0,17.1,18.1,30.2,18.1c22.9,0,36-18.6,53.9-18.6 c17.1,0,21.3,18.5,37.5,18.5c21.3,0,31.8-18.6,49-18.6c22.1,0,18.8,18.8,36.8,18.8c18.8,0,37.5-18.6,49-18.6c20.4,0,17.1,19,36.8,19 c22.9,0,36.8-20.6,54.7-18.6c17.7,1.4,7.1,19.5,33.5,18.8c17.1,0,47.2-6.5,61.1-15.6",
|
|
],
|
|
diagonal: ["M13.5,15.5c131,13.7,289.3,55.5,475,125.5"],
|
|
double: ["M8.4,143.1c14.2-8,97.6-8.8,200.6-9.2c122.3-0.4,287.5,7.2,287.5,7.2", "M8,19.4c72.3-5.3,162-7.8,216-7.8c54,0,136.2,0,267,7.8"],
|
|
double_underline: ["M5,125.4c30.5-3.8,137.9-7.6,177.3-7.6c117.2,0,252.2,4.7,312.7,7.6", "M26.9,143.8c55.1-6.1,126-6.3,162.2-6.1c46.5,0.2,203.9,3.2,268.9,6.4"],
|
|
underline: ["M7.7,145.6C109,125,299.9,116.2,401,121.3c42.1,2.2,87.6,11.8,87.3,25.7"],
|
|
},
|
|
getDefaultSettings: function () {
|
|
var e = { animationDelay: 2500, lettersDelay: 50, typeLettersDelay: 150, selectionDuration: 500, revealDuration: 600, revealAnimationDelay: 1500 };
|
|
return (
|
|
(e.typeAnimationDelay = e.selectionDuration + 800),
|
|
(e.selectors = { headline: ".elementor-headline", dynamicWrapper: ".elementor-headline-dynamic-wrapper" }),
|
|
(e.classes = {
|
|
dynamicText: "elementor-headline-dynamic-text",
|
|
dynamicLetter: "elementor-headline-dynamic-letter",
|
|
textActive: "elementor-headline-text-active",
|
|
textInactive: "elementor-headline-text-inactive",
|
|
letters: "elementor-headline-letters",
|
|
animationIn: "elementor-headline-animation-in",
|
|
typeSelected: "elementor-headline-typing-selected",
|
|
}),
|
|
e
|
|
);
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors");
|
|
return { $headline: this.$element.find(e.headline), $dynamicWrapper: this.$element.find(e.dynamicWrapper) };
|
|
},
|
|
getNextWord: function (e) {
|
|
return e.is(":last-child") ? e.parent().children().eq(0) : e.next();
|
|
},
|
|
switchWord: function (e, t) {
|
|
e.removeClass("elementor-headline-text-active").addClass("elementor-headline-text-inactive"), t.removeClass("elementor-headline-text-inactive").addClass("elementor-headline-text-active");
|
|
},
|
|
singleLetters: function () {
|
|
var i = this.getSettings("classes");
|
|
this.elements.$dynamicText.each(function () {
|
|
var t = jQuery(this),
|
|
e = t.text().split(""),
|
|
n = t.hasClass(i.textActive);
|
|
t.empty(),
|
|
e.forEach(function (e) {
|
|
e = jQuery("<span>", { class: i.dynamicLetter }).text(e);
|
|
n && e.addClass(i.animationIn), t.append(e);
|
|
}),
|
|
t.css("opacity", 1);
|
|
});
|
|
},
|
|
showLetter: function (e, t, n, i) {
|
|
var o = this,
|
|
s = this.getSettings("classes");
|
|
e.addClass(s.animationIn),
|
|
e.is(":last-child")
|
|
? n ||
|
|
setTimeout(function () {
|
|
o.hideWord(t);
|
|
}, o.getSettings("animationDelay"))
|
|
: setTimeout(function () {
|
|
o.showLetter(e.next(), t, n, i);
|
|
}, i);
|
|
},
|
|
hideLetter: function (e, t, n, i) {
|
|
var o = this,
|
|
s = this.getSettings();
|
|
e.removeClass(s.classes.animationIn),
|
|
e.is(":last-child")
|
|
? n &&
|
|
setTimeout(function () {
|
|
o.hideWord(o.getNextWord(t));
|
|
}, o.getSettings("animationDelay"))
|
|
: setTimeout(function () {
|
|
o.hideLetter(e.next(), t, n, i);
|
|
}, i);
|
|
},
|
|
showWord: function (e, t) {
|
|
var n = this,
|
|
i = n.getSettings(),
|
|
o = n.getElementSettings("animation_type");
|
|
"typing" === o
|
|
? (n.showLetter(e.find("." + i.classes.dynamicLetter).eq(0), e, !1, t), e.addClass(i.classes.textActive).removeClass(i.classes.textInactive))
|
|
: "clip" === o &&
|
|
n.elements.$dynamicWrapper.animate({ width: e.width() + 10 }, i.revealDuration, function () {
|
|
setTimeout(function () {
|
|
n.hideWord(e);
|
|
}, i.revealAnimationDelay);
|
|
});
|
|
},
|
|
hideWord: function (e) {
|
|
var t,
|
|
n = this,
|
|
i = n.getSettings(),
|
|
o = i.classes,
|
|
s = "." + o.dynamicLetter,
|
|
r = n.getElementSettings("animation_type"),
|
|
a = n.getNextWord(e);
|
|
"typing" === r
|
|
? (n.elements.$dynamicWrapper.addClass(o.typeSelected),
|
|
setTimeout(function () {
|
|
n.elements.$dynamicWrapper.removeClass(o.typeSelected), e.addClass(i.classes.textInactive).removeClass(o.textActive).children(s).removeClass(o.animationIn);
|
|
}, i.selectionDuration),
|
|
setTimeout(function () {
|
|
n.showWord(a, i.typeLettersDelay);
|
|
}, i.typeAnimationDelay))
|
|
: n.elements.$headline.hasClass(o.letters)
|
|
? ((t = e.children(s).length >= a.children(s).length), n.hideLetter(e.find(s).eq(0), e, t, i.lettersDelay), n.showLetter(a.find(s).eq(0), a, t, i.lettersDelay))
|
|
: "clip" === r
|
|
? n.elements.$dynamicWrapper.animate({ width: "2px" }, i.revealDuration, function () {
|
|
n.switchWord(e, a), n.showWord(a);
|
|
})
|
|
: (n.switchWord(e, a),
|
|
setTimeout(function () {
|
|
n.hideWord(a);
|
|
}, i.animationDelay));
|
|
},
|
|
animateHeadline: function () {
|
|
var t,
|
|
e = this,
|
|
n = e.getElementSettings("animation_type"),
|
|
i = e.elements.$dynamicWrapper;
|
|
"clip" === n
|
|
? i.width(i.width() + 10)
|
|
: "typing" !== n &&
|
|
((t = 0),
|
|
e.elements.$dynamicText.each(function () {
|
|
var e = jQuery(this).width();
|
|
t < e && (t = e);
|
|
}),
|
|
i.css("width", t)),
|
|
setTimeout(function () {
|
|
e.hideWord(e.elements.$dynamicText.eq(0));
|
|
}, e.getSettings("animationDelay"));
|
|
},
|
|
getSvgPaths: function (e) {
|
|
var e = this.svgPaths[e],
|
|
t = jQuery();
|
|
return (
|
|
e.forEach(function (e) {
|
|
t = t.add(jQuery("<path>", { d: e }));
|
|
}),
|
|
t
|
|
);
|
|
},
|
|
fillWords: function () {
|
|
var e,
|
|
t = this.getElementSettings(),
|
|
n = this.getSettings("classes"),
|
|
i = this.elements.$dynamicWrapper;
|
|
"rotate" === t.headline_style
|
|
? (t.rotating_text || "").split("\n").forEach(function (e, t) {
|
|
e = jQuery("<span>", { class: n.dynamicText }).html(e.replace(/ /g, " "));
|
|
t || e.addClass(n.textActive), i.append(e);
|
|
})
|
|
: ((e = jQuery("<span>", { class: n.dynamicText + " " + n.textActive }).text(t.highlighted_text)),
|
|
(t = jQuery("<svg>", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 500 150", preserveAspectRatio: "none" }).html(this.getSvgPaths(t.marker))),
|
|
i.append(e, t[0].outerHTML)),
|
|
(this.elements.$dynamicText = i.children("." + n.dynamicText));
|
|
},
|
|
rotateHeadline: function () {
|
|
var e = this.getSettings();
|
|
this.elements.$headline.hasClass(e.classes.letters) && this.singleLetters(), this.animateHeadline();
|
|
},
|
|
initHeadline: function () {
|
|
"rotate" === this.getElementSettings("headline_style") && this.rotateHeadline();
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), this.fillWords(), this.initHeadline();
|
|
},
|
|
});
|
|
e.exports = function (e, t) {
|
|
new i({ $element: e });
|
|
};
|
|
},
|
|
124: function (e, t, n) {
|
|
"use strict";
|
|
var s = elementorModules.frontend.handlers.Base.extend({
|
|
getDefaultSettings: function () {
|
|
return {
|
|
selectors: { container: ".elementor-cart__container", toggle: ".elementor-cart__toggle .elementor-button", closeButton: ".elementor-cart__close-button" },
|
|
classes: { isShown: "elementor-cart--shown", lightbox: "elementor-lightbox", isHidden: "elementor-cart-hidden" },
|
|
};
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors"),
|
|
t = {};
|
|
return (t.$container = this.$element.find(e.container)), (t.$toggle = this.$element.find(e.toggle)), (t.$closeButton = this.$element.find(e.closeButton)), t;
|
|
},
|
|
bindEvents: function () {
|
|
var n = this,
|
|
c = jQuery,
|
|
i = n.elements.$container,
|
|
e = n.elements.$closeButton,
|
|
o = this.getSettings("classes");
|
|
n.elements.$toggle.on("click", function (e) {
|
|
n.elements.$toggle.hasClass(o.isHidden) || (e.preventDefault(), i.toggleClass(o.isShown));
|
|
}),
|
|
i.on("click", function (e) {
|
|
i.hasClass(o.isShown) && i[0] === e.target && i.removeClass(o.isShown);
|
|
}),
|
|
e.on("click", function () {
|
|
i.removeClass(o.isShown);
|
|
}),
|
|
ceFrontend.elements.$document.keyup(function (e) {
|
|
27 === e.keyCode && i.hasClass(o.isShown) && i.click();
|
|
}),
|
|
i.on("click", ".elementor-cart__product-remove a", function (e) {
|
|
var t = c(this).data();
|
|
(t.linkAction = "delete-from-cart"),
|
|
c(this).closest(".elementor-cart__product").addClass("ce-disabled"),
|
|
e.preventDefault(),
|
|
c
|
|
.ajax({ url: this.href, method: "POST", dataType: "json", data: { ajax: 1, action: "update" } })
|
|
.then(function (e) {
|
|
prestashop.emit("updateCart", { reason: t, resp: e });
|
|
})
|
|
.fail(function (e) {
|
|
prestashop.emit("handleError", { eventType: "updateProductInCart", resp: e, cartAction: t.linkAction });
|
|
});
|
|
}),
|
|
prestashop.on("updateCart", function (e) {
|
|
var t, a, l;
|
|
e &&
|
|
e.resp &&
|
|
e.resp.cart &&
|
|
((t = e.resp.cart),
|
|
(a = i.find(".elementor-cart__products").data("gift")),
|
|
(l = c()),
|
|
n.getElementSettings("action_show_modal") &&
|
|
"add-to-cart" === e.reason.linkAction &&
|
|
!e.resp.hasError &&
|
|
(s.xhr && s.xhr.abort(),
|
|
(s.xhr = c.post(
|
|
n.getElementSettings("modal_url"),
|
|
{ ajax: !0, action: "addToCartModal", id_product: e.reason.idProduct, id_product_attribute: e.reason.idProductAttribute, id_customization: e.reason.idCustomization },
|
|
function (e) {
|
|
c("#blockcart-modal").remove(), c(document.body).append(e.modal).children("#blockcart-modal").modal();
|
|
},
|
|
"json"
|
|
))),
|
|
n.elements.$toggle.find(".elementor-button-text").html(t.subtotals.products.value),
|
|
n.elements.$toggle.find(".elementor-button-icon").attr("data-counter", t.products_count).data("counter", t.products_count),
|
|
t.products.forEach(function (e) {
|
|
var t,
|
|
n = c(
|
|
'<div class="elementor-cart__product"><div class="elementor-cart__product-image"></div><div class="elementor-cart__product-name"><div class="elementor-cart__product-attrs"></div></div><div class="elementor-cart__product-price"></div><div class="elementor-cart__product-remove ceicon-times"></div></div>'
|
|
),
|
|
i = n.find(".elementor-cart__product-attrs"),
|
|
o = e.cover || prestashop.urls.no_picture_image;
|
|
if (e.embedded_attributes && e.embedded_attributes.id_image)
|
|
for (var s = e.embedded_attributes.id_image.split("-").pop(), r = 0; r < e.images.length; r++)
|
|
if (s == e.images[r].id_image) {
|
|
o = e.images[r];
|
|
break;
|
|
}
|
|
for (t in (c("<img>")
|
|
.appendTo(n.find(".elementor-cart__product-image"))
|
|
.attr({ src: (o.bySize.cart_default && o.bySize.cart_default.url) || o.small.url, alt: o.legend }),
|
|
c("<a>").prependTo(n.find(".elementor-cart__product-name")).attr("href", e.url).html(e.name),
|
|
e.attributes))
|
|
c('<div class="elementor-cart__product-attr">')
|
|
.html('<span class="elementor-cart__product-attr-label">' + t + ':</span> <span class="elementor-cart__product-attr-value">' + e.attributes[t] + "</span>")
|
|
.appendTo(i);
|
|
e.customizations &&
|
|
e.customizations.forEach(function (e) {
|
|
e.fields.forEach(function (e) {
|
|
c('<div class="elementor-cart__product-attr">')
|
|
.html(
|
|
'<span class="elementor-cart__product-attr-label">' +
|
|
e.label +
|
|
':</span> <span class="elementor-cart__product-attr-value">' +
|
|
("image" === e.type ? c("<img>").attr("src", e.image.small.url)[0].outerHTML : e.text) +
|
|
"</span>"
|
|
)
|
|
.appendTo(i);
|
|
});
|
|
}),
|
|
n
|
|
.find(".elementor-cart__product-price")
|
|
.html('<span class="elementor-cart__product-quantity">' + e.quantity + "</span> × " + (e.is_gift ? a : e.price) + " ")
|
|
.append(e.has_discount ? c("<del>").html(e.regular_price) : []),
|
|
c("<a>")
|
|
.appendTo(n.find(".elementor-cart__product-remove"))
|
|
.attr({ href: e.remove_from_cart_url, rel: "nofollow", "data-id-product": e.id_product, "data-id-product-attribute": e.id_product_attribute, "data-id-customization": e.id_customization })
|
|
.data({ idProduct: e.id_product, idProductAttribute: e.id_product_attribute, idCustomization: e.id_customization }),
|
|
l.push(n[0]);
|
|
}),
|
|
i.find(".elementor-cart__products").empty().append(l),
|
|
i.find(".elementor-cart__empty-message").toggleClass("elementor-hidden", !!t.products_count),
|
|
i
|
|
.find(".elementor-cart__summary")
|
|
.html(
|
|
'<div class="elementor-cart__summary-label">' +
|
|
t.summary_string +
|
|
'</div><div class="elementor-cart__summary-value">' +
|
|
t.subtotals.products.value +
|
|
'</div><span class="elementor-cart__summary-label">' +
|
|
t.subtotals.shipping.label +
|
|
'</span><span class="elementor-cart__summary-value">' +
|
|
t.subtotals.shipping.value +
|
|
'</span><strong class="elementor-cart__summary-label">' +
|
|
t.totals.total.label +
|
|
'</strong><strong class="elementor-cart__summary-value">' +
|
|
t.totals.total.value +
|
|
"</strong>"
|
|
),
|
|
i
|
|
.find(".elementor-alert-warning")
|
|
.toggleClass("elementor-hidden", !t.minimalPurchaseRequired)
|
|
.html('<span class="elementor-alert-description">' + t.minimalPurchaseRequired + "</span>"),
|
|
i.find(".elementor-button--checkout").toggleClass("ce-disabled", t.minimalPurchaseRequired || !t.products_count),
|
|
n.getElementSettings("action_open_cart") && !n.elements.$container.hasClass(o.isShown) && n.elements.$toggle.triggerHandler("click"));
|
|
});
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
new s({ $element: e });
|
|
};
|
|
},
|
|
182: function (e, t, n) {
|
|
"use strict";
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
var r = s(n(183)),
|
|
a = s(n(16)),
|
|
l = s(n(15)),
|
|
c = s(n(1));
|
|
function s(e) {
|
|
return e && e.__esModule ? e : { default: e };
|
|
}
|
|
var d = n(13),
|
|
u = n(184),
|
|
h = n(196),
|
|
m = n(197),
|
|
p = n(198),
|
|
f = s(n(199)),
|
|
g = s(n(90)),
|
|
n = (function (e) {
|
|
var t = s;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function s() {
|
|
var e = this,
|
|
t = s;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
for (var n = arguments.length, i = Array(n), o = 0; o < n; o++) i[o] = arguments[o];
|
|
t = (function (e, t) {
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
})(this, (e = s.__proto__ || Object.getPrototypeOf(s)).call.apply(e, [this].concat(i)));
|
|
return (t.config = ceFrontendConfig), t;
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(s, [
|
|
{
|
|
key: "getDefaultSettings",
|
|
value: function () {
|
|
return { selectors: { elementor: ".elementor", adminBar: "#wpadminbar" }, classes: { ie: "elementor-msie" } };
|
|
},
|
|
},
|
|
{
|
|
key: "getDefaultElements",
|
|
value: function () {
|
|
var e = {
|
|
window: window,
|
|
$window: jQuery(window),
|
|
$document: jQuery(document),
|
|
$head: jQuery(document.head),
|
|
$body: jQuery(document.body),
|
|
$deviceMode: jQuery("<span>", { id: "elementor-device-mode", class: "elementor-screen-only" }),
|
|
};
|
|
return e.$body.append(e.$deviceMode), e;
|
|
},
|
|
},
|
|
{
|
|
key: "bindEvents",
|
|
value: function () {
|
|
var e = this;
|
|
this.elements.$window.on("resize", function () {
|
|
return e.setDeviceModeData();
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "getElements",
|
|
value: function (e) {
|
|
return this.getItems(this.elements, e);
|
|
},
|
|
},
|
|
{
|
|
key: "getPageSettings",
|
|
value: function (e) {
|
|
var t = this.isEditMode() ? elementor.settings.page.model.attributes : this.config.settings.page;
|
|
return this.getItems(t, e);
|
|
},
|
|
},
|
|
{
|
|
key: "getGeneralSettings",
|
|
value: function (e) {
|
|
var t = this.isEditMode() ? elementor.settings.general.model.attributes : this.config.settings.general;
|
|
return this.getItems(t, e);
|
|
},
|
|
},
|
|
{
|
|
key: "getCurrentDeviceMode",
|
|
value: function () {
|
|
return getComputedStyle(this.elements.$deviceMode[0], ":after").content.replace(/"/g, "");
|
|
},
|
|
},
|
|
{
|
|
key: "getCurrentDeviceSetting",
|
|
value: function (e, t) {
|
|
for (var n = ["desktop", "tablet", "mobile"], i = ceFrontend.getCurrentDeviceMode(), o = n.indexOf(i); 0 < o; ) {
|
|
var s = e[t + "_" + n[o]];
|
|
if (s) return s;
|
|
o--;
|
|
}
|
|
return e[t];
|
|
},
|
|
},
|
|
{
|
|
key: "isEditMode",
|
|
value: function () {
|
|
return this.config.environmentMode.edit;
|
|
},
|
|
},
|
|
{
|
|
key: "isWPPreviewMode",
|
|
value: function () {
|
|
return this.config.environmentMode.wpPreview;
|
|
},
|
|
},
|
|
{
|
|
key: "initDialogsManager",
|
|
value: function () {
|
|
var e = void 0;
|
|
this.getDialogsManager = function () {
|
|
return (e = e || new DialogsManager.Instance());
|
|
};
|
|
},
|
|
},
|
|
{
|
|
key: "initHotKeys",
|
|
value: function () {
|
|
(this.hotKeys = new a.default()), this.hotKeys.bindListener(this.elements.$window);
|
|
},
|
|
},
|
|
{
|
|
key: "initOnReadyComponents",
|
|
value: function () {
|
|
(this.utils = { youtube: new h(), anchors: new m(), lightbox: new p() }), (this.elementsHandler = new u(jQuery)), (this.documentsManager = new r.default()), this.trigger("components:init");
|
|
},
|
|
},
|
|
{
|
|
key: "initOnReadyElements",
|
|
value: function () {
|
|
this.elements.$wpAdminBar = this.elements.$document.find(this.getSettings("selectors.adminBar"));
|
|
},
|
|
},
|
|
{
|
|
key: "addIeCompatibility",
|
|
value: function () {
|
|
var e = "string" == typeof document.createElement("div").style.grid;
|
|
(!c.default.ie && e) ||
|
|
(this.elements.$body.addClass(this.getSettings("classes.ie")),
|
|
(e = '<link rel="stylesheet" id="elementor-frontend-css-msie" href="' + this.config.urls.assets + "css/frontend-msie.min.css?" + this.config.version + '" type="text/css" />'),
|
|
this.elements.$body.append(e));
|
|
},
|
|
},
|
|
{
|
|
key: "setDeviceModeData",
|
|
value: function () {
|
|
this.elements.$body.attr("data-elementor-device-mode", this.getCurrentDeviceMode());
|
|
},
|
|
},
|
|
{
|
|
key: "addListenerOnce",
|
|
value: function (e, t, n, i) {
|
|
(i = i || this.elements.$window), this.isEditMode() ? (this.removeListeners(e, t, i), i instanceof jQuery ? i.on(t + "." + e, n) : i.on(t, n, e)) : i.on(t, n);
|
|
},
|
|
},
|
|
{
|
|
key: "removeListeners",
|
|
value: function (e, t, n, i) {
|
|
(i = i || this.elements.$window) instanceof jQuery ? i.off(t + "." + e, n) : i.off(t, n, e);
|
|
},
|
|
},
|
|
{
|
|
key: "debounce",
|
|
value: function (i, o) {
|
|
var s = void 0;
|
|
return function () {
|
|
var e = this,
|
|
t = arguments,
|
|
n = !s;
|
|
clearTimeout(s),
|
|
(s = setTimeout(function () {
|
|
(s = null), i.apply(e, t);
|
|
}, o)),
|
|
n && i.apply(e, t);
|
|
};
|
|
},
|
|
},
|
|
{
|
|
key: "waypoint",
|
|
value: function (e, t, n) {
|
|
function i() {
|
|
var e = this.element || this,
|
|
e = t.apply(e, arguments);
|
|
return n.triggerOnce && this.destroy && this.destroy(), e;
|
|
}
|
|
n = jQuery.extend({ offset: "100%", triggerOnce: !0 }, n);
|
|
return e.elementorWaypoint ? e.elementorWaypoint(i, n) : e.waypoint(i, n);
|
|
},
|
|
},
|
|
{
|
|
key: "muteMigrationTraces",
|
|
value: function () {
|
|
(jQuery.migrateMute = !0), (jQuery.migrateTrace = !1);
|
|
},
|
|
},
|
|
{
|
|
key: "init",
|
|
value: function () {
|
|
(this.hooks = new d()),
|
|
(this.storage = new l.default()),
|
|
this.addIeCompatibility(),
|
|
this.setDeviceModeData(),
|
|
this.initDialogsManager(),
|
|
this.isEditMode() && this.muteMigrationTraces(),
|
|
(this.modules = { linkActions: new f.default(), motionFX: new g.default() }),
|
|
this.elements.$window.trigger("elementor/frontend/init"),
|
|
this.isEditMode() || this.initHotKeys(),
|
|
this.initOnReadyElements(),
|
|
this.initOnReadyComponents();
|
|
},
|
|
},
|
|
{
|
|
key: "Module",
|
|
get: function () {
|
|
return elementorModules.frontend.handlers.Base;
|
|
},
|
|
},
|
|
]),
|
|
s
|
|
);
|
|
})(elementorModules.ViewModule);
|
|
(window.ceFrontend = new n()),
|
|
ceFrontend.isEditMode() ||
|
|
jQuery(function () {
|
|
return ceFrontend.init();
|
|
});
|
|
},
|
|
183: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
var n = n(17),
|
|
r = (n = n) && n.__esModule ? n : { default: n };
|
|
n = (function (e) {
|
|
var t = s;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function s() {
|
|
var e = this,
|
|
t = s;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
for (var n = arguments.length, i = Array(n), o = 0; o < n; o++) i[o] = arguments[o];
|
|
t = (function (e, t) {
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
})(this, (e = s.__proto__ || Object.getPrototypeOf(s)).call.apply(e, [this].concat(i)));
|
|
return (t.documents = {}), t.initDocumentClasses(), t.attachDocumentsClasses(), t;
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(s, [
|
|
{
|
|
key: "getDefaultSettings",
|
|
value: function () {
|
|
return { selectors: { document: ".elementor" } };
|
|
},
|
|
},
|
|
{
|
|
key: "getDefaultElements",
|
|
value: function () {
|
|
var e = this.getSettings("selectors");
|
|
return { $documents: jQuery(e.document) };
|
|
},
|
|
},
|
|
{
|
|
key: "initDocumentClasses",
|
|
value: function () {
|
|
(this.documentClasses = { base: r.default }), ceFrontend.hooks.doAction("elementor/frontend/documents-manager/init-classes", this);
|
|
},
|
|
},
|
|
{
|
|
key: "addDocumentClass",
|
|
value: function (e, t) {
|
|
this.documentClasses[e] = t;
|
|
},
|
|
},
|
|
{
|
|
key: "attachDocumentsClasses",
|
|
value: function () {
|
|
var n = this;
|
|
this.elements.$documents.each(function (e, t) {
|
|
return n.attachDocumentClass(jQuery(t));
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "attachDocumentClass",
|
|
value: function (e) {
|
|
var t = e.data(),
|
|
n = t.elementorId,
|
|
t = t.elementorType,
|
|
t = this.documentClasses[t] || this.documentClasses.base;
|
|
this.documents[n] = new t({ $element: e, id: n });
|
|
},
|
|
},
|
|
]),
|
|
s
|
|
);
|
|
})(elementorModules.ViewModule);
|
|
t.default = n;
|
|
},
|
|
184: function (e, t, i) {
|
|
"use strict";
|
|
e.exports = function (n) {
|
|
var e = this,
|
|
t = {
|
|
section: i(185),
|
|
"accordion.default": i(186),
|
|
"alert.default": i(187),
|
|
"counter.default": i(188),
|
|
"countdown.default": i(100),
|
|
"product-sale-countdown.default": i(100),
|
|
"nav-menu.default": i(108),
|
|
"language-selector.default": i(108),
|
|
"currency-selector.default": i(108),
|
|
"sign-in.default": i(108),
|
|
"ajax-search.default": i(122),
|
|
"animated-headline.default": i(123),
|
|
"shopping-cart.default": i(124),
|
|
"progress.default": i(189),
|
|
"tabs.default": i(190),
|
|
"toggle.default": i(191),
|
|
"video.default": i(192),
|
|
"image-carousel.default": i(193),
|
|
"testimonial-carousel.default": i(193),
|
|
"product-carousel.default": i(193),
|
|
"trustedshops-reviews.default": i(193),
|
|
"text-editor.default": i(194),
|
|
"contact-form.default": i(200),
|
|
"email-subscription.default": i(200),
|
|
"product-images.default": i(202),
|
|
},
|
|
s = {};
|
|
(this.initHandlers = function () {
|
|
ceFrontend.hooks.addAction("frontend/element_ready/global", i(195)),
|
|
n.each(t, function (e, t) {
|
|
ceFrontend.hooks.addAction("frontend/element_ready/" + e, t);
|
|
}),
|
|
ceFrontend.hooks.addAction("frontend/element_ready/section", i(10)),
|
|
ceFrontend.hooks.addAction("frontend/element_ready/widget", i(10));
|
|
}),
|
|
(this.addHandler = function (e, t) {
|
|
var n = t.$element.data("model-cid"),
|
|
i = void 0,
|
|
o = (n && ((i = e.prototype.getConstructorID()), s[n] || (s[n] = {}), (o = s[n][i]) && o.onDestroy()), new e(t));
|
|
n && (s[n][i] = o);
|
|
}),
|
|
(this.getHandlers = function (e) {
|
|
return e ? t[e] : t;
|
|
}),
|
|
(this.runReadyTrigger = function (e) {
|
|
var e = jQuery(e),
|
|
t = e.attr("data-element_type");
|
|
t &&
|
|
(ceFrontend.hooks.doAction("frontend/element_ready/global", e, n),
|
|
ceFrontend.hooks.doAction("frontend/element_ready/" + t, e, n),
|
|
"widget" === t && ceFrontend.hooks.doAction("frontend/element_ready/" + e.attr("data-widget_type"), e, n));
|
|
}),
|
|
e.initHandlers();
|
|
};
|
|
},
|
|
185: function (e, t, n) {
|
|
"use strict";
|
|
var i = elementorModules.frontend.handlers.Base.extend({
|
|
player: null,
|
|
isYTVideo: null,
|
|
getDefaultSettings: function () {
|
|
return { selectors: { backgroundVideoContainer: ".elementor-background-video-container", backgroundVideoEmbed: ".elementor-background-video-embed", backgroundVideoHosted: ".elementor-background-video-hosted" } };
|
|
},
|
|
getDefaultElements: function () {
|
|
var 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: function () {
|
|
var e = this.elements.$backgroundVideoContainer.outerWidth(),
|
|
t = this.elements.$backgroundVideoContainer.outerHeight(),
|
|
n = "16:9".split(":"),
|
|
n = n[0] / n[1],
|
|
i = n < e / t;
|
|
return { width: i ? e : t * n, height: i ? e / n : t };
|
|
},
|
|
changeVideoSize: function () {
|
|
var e, t;
|
|
(this.isYTVideo && !this.player) || ((e = this.isYTVideo ? jQuery(this.player.getIframe()) : this.elements.$backgroundVideoHosted), (t = this.calcVideosSize()), e.width(t.width).height(t.height));
|
|
},
|
|
startVideoLoop: function () {
|
|
var e,
|
|
t,
|
|
n = this;
|
|
n.player.getIframe().contentWindow &&
|
|
((e = (t = n.getElementSettings()).background_video_start || 0),
|
|
(t = t.background_video_end),
|
|
n.player.seekTo(e),
|
|
t &&
|
|
setTimeout(function () {
|
|
n.startVideoLoop();
|
|
}, 1e3 * (t - e + 1)));
|
|
},
|
|
prepareYTVideo: function (t, e) {
|
|
var n = this,
|
|
i = n.elements.$backgroundVideoContainer,
|
|
o = n.getElementSettings(),
|
|
s = t.PlayerState.PLAYING;
|
|
window.chrome && (s = t.PlayerState.UNSTARTED),
|
|
i.addClass("elementor-loading elementor-invisible"),
|
|
(n.player = new t.Player(n.elements.$backgroundVideoEmbed[0], {
|
|
videoId: e,
|
|
events: {
|
|
onReady: function () {
|
|
n.player.mute(), n.changeVideoSize(), n.startVideoLoop(), n.player.playVideo();
|
|
},
|
|
onStateChange: function (e) {
|
|
switch (e.data) {
|
|
case s:
|
|
i.removeClass("elementor-invisible elementor-loading");
|
|
break;
|
|
case t.PlayerState.ENDED:
|
|
n.player.seekTo(o.background_video_start || 0);
|
|
}
|
|
},
|
|
},
|
|
playerVars: { controls: 0, rel: 0 },
|
|
}));
|
|
},
|
|
activate: function () {
|
|
var t = this,
|
|
e = t.getElementSettings("background_video_link"),
|
|
n = ceFrontend.utils.youtube.getYoutubeIDFromURL(e);
|
|
(t.isYTVideo = !!n),
|
|
n
|
|
? ceFrontend.utils.youtube.onYoutubeApiReady(function (e) {
|
|
setTimeout(function () {
|
|
t.prepareYTVideo(e, n);
|
|
});
|
|
})
|
|
: t.elements.$backgroundVideoHosted.attr("src", e).one("canplay", t.changeVideoSize),
|
|
ceFrontend.elements.$window.on("resize", t.changeVideoSize);
|
|
},
|
|
deactivate: function () {
|
|
this.isYTVideo && this.player.getIframe() ? this.player.destroy() : this.elements.$backgroundVideoHosted.removeAttr("src"), ceFrontend.elements.$window.off("resize", this.changeVideoSize);
|
|
},
|
|
run: function () {
|
|
var e = this.getElementSettings();
|
|
"video" === e.background_background && e.background_video_link ? this.activate() : this.deactivate();
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), this.run();
|
|
},
|
|
onElementChange: function (e) {
|
|
"background_background" === e && this.run();
|
|
},
|
|
}),
|
|
o = elementorModules.frontend.handlers.Base.extend({
|
|
stretchElement: null,
|
|
bindEvents: function () {
|
|
var e = this.getUniqueHandlerID();
|
|
ceFrontend.addListenerOnce(e, "resize", this.stretch), ceFrontend.addListenerOnce(e, "sticky:stick", this.stretch, this.$element), ceFrontend.addListenerOnce(e, "sticky:unstick", this.stretch, this.$element);
|
|
},
|
|
unbindEvents: function () {
|
|
ceFrontend.removeListeners(this.getUniqueHandlerID(), "resize", this.stretch);
|
|
},
|
|
initStretch: function () {
|
|
this.stretchElement = new elementorModules.frontend.tools.StretchElement({ element: this.$element, selectors: { container: this.getStretchContainer() } });
|
|
},
|
|
getStretchContainer: function () {
|
|
return ceFrontend.getGeneralSettings("elementor_stretched_section_container") || document.documentElement;
|
|
},
|
|
stretch: function () {
|
|
this.getElementSettings("stretch_section") && this.stretchElement.stretch();
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), this.initStretch(), this.stretch();
|
|
},
|
|
onElementChange: function (e) {
|
|
"stretch_section" === e && (this.getElementSettings("stretch_section") ? this.stretch() : this.stretchElement.reset());
|
|
},
|
|
onGeneralSettingsChange: function (e) {
|
|
"elementor_stretched_section_container" in e && (this.stretchElement.setSettings("selectors.container", this.getStretchContainer()), this.stretch());
|
|
},
|
|
}),
|
|
s = elementorModules.frontend.handlers.Base.extend({
|
|
getDefaultSettings: function () {
|
|
return { selectors: { container: "> .elementor-shape-%s" }, svgURL: ceFrontend.config.urls.assets + "img/shapes/" };
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = {},
|
|
t = this.getSettings("selectors");
|
|
return (e.$topContainer = this.$element.find(t.container.replace("%s", "top"))), (e.$bottomContainer = this.$element.find(t.container.replace("%s", "bottom"))), e;
|
|
},
|
|
getSvgURL: function (e, t) {
|
|
t = this.getSettings("svgURL") + t + ".svg";
|
|
return (t = elementor.config.additional_shapes && e in elementor.config.additional_shapes ? elementor.config.additional_shapes[e] : t);
|
|
},
|
|
buildSVG: function (e) {
|
|
var t,
|
|
n = "shape_divider_" + e,
|
|
i = this.getElementSettings(n),
|
|
o = this.elements["$" + e + "Container"];
|
|
o.attr("data-shape", i),
|
|
i
|
|
? ((t = i),
|
|
this.getElementSettings(n + "_negative") && (t += "-negative"),
|
|
(n = this.getSvgURL(i, t)),
|
|
jQuery.get(n, function (e) {
|
|
o.empty().append(e.childNodes[0]);
|
|
}),
|
|
this.setNegative(e))
|
|
: o.empty();
|
|
},
|
|
setNegative: function (e) {
|
|
this.elements["$" + e + "Container"].attr("data-negative", !!this.getElementSettings("shape_divider_" + e + "_negative"));
|
|
},
|
|
onInit: function () {
|
|
var t = this;
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(t, arguments),
|
|
["top", "bottom"].forEach(function (e) {
|
|
t.getElementSettings("shape_divider_" + e) && t.buildSVG(e);
|
|
});
|
|
},
|
|
onElementChange: function (e) {
|
|
var t = e.match(/^shape_divider_(top|bottom)$/);
|
|
t ? this.buildSVG(t[1]) : (t = e.match(/^shape_divider_(top|bottom)_negative$/)) && (this.buildSVG(t[1]), this.setNegative(t[1]));
|
|
},
|
|
}),
|
|
r = elementorModules.frontend.handlers.Base.extend({
|
|
isFirstSection: function () {
|
|
return this.$element.is(".elementor-edit-mode .elementor-top-section:first");
|
|
},
|
|
isOverflowHidden: function () {
|
|
return "hidden" === this.$element.css("overflow");
|
|
},
|
|
getOffset: function () {
|
|
if ("body" === elementor.config.document.container) return this.$element.offset().top;
|
|
var e = jQuery(elementor.config.document.container);
|
|
return this.$element.offset().top - e.offset().top;
|
|
},
|
|
setHandlesPosition: function () {
|
|
var e,
|
|
t,
|
|
n = this.isOverflowHidden();
|
|
(n || this.isFirstSection()) &&
|
|
((n = n ? 0 : this.getOffset()),
|
|
(e = this.$element.find("> .elementor-element-overlay > .elementor-editor-section-settings")),
|
|
(t = "elementor-section--handles-inside"),
|
|
n < 25 || this.$element.closest('[data-elementor-type^="product-"]').length ? (this.$element.addClass(t), n < -5 ? e.css("top", -n) : e.css("top", "")) : this.$element.removeClass(t));
|
|
},
|
|
onInit: function () {
|
|
this.setHandlesPosition(), this.$element.on("mouseenter", this.setHandlesPosition);
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
(ceFrontend.isEditMode() || e.hasClass("elementor-section-stretched")) && ceFrontend.elementsHandler.addHandler(o, { $element: e }),
|
|
ceFrontend.isEditMode() && (ceFrontend.elementsHandler.addHandler(s, { $element: e }), ceFrontend.elementsHandler.addHandler(r, { $element: e })),
|
|
ceFrontend.elementsHandler.addHandler(i, { $element: e });
|
|
};
|
|
},
|
|
186: function (e, t, n) {
|
|
"use strict";
|
|
var i = n(18);
|
|
e.exports = function (e) {
|
|
ceFrontend.elementsHandler.addHandler(i, { $element: e, showTabFn: "slideDown", hideTabFn: "slideUp" });
|
|
};
|
|
},
|
|
187: function (e, t, n) {
|
|
"use strict";
|
|
e.exports = function (e, t) {
|
|
e.find(".elementor-alert-dismiss").on("click", function () {
|
|
t(this).parent().fadeOut();
|
|
});
|
|
};
|
|
},
|
|
188: function (e, t, n) {
|
|
"use strict";
|
|
e.exports = function (e, i) {
|
|
ceFrontend.waypoint(e.find(".elementor-counter-number"), function () {
|
|
var e = i(this),
|
|
t = e.data(),
|
|
n = t.toValue.toString().match(/\.(.*)/);
|
|
n && (t.rounding = n[1].length), e.numerator(t);
|
|
});
|
|
};
|
|
},
|
|
189: function (e, t, n) {
|
|
"use strict";
|
|
e.exports = function (e, t) {
|
|
ceFrontend.waypoint(e.find(".elementor-progress-bar"), function () {
|
|
var e = t(this);
|
|
e.css("width", e.data("max") + "%");
|
|
});
|
|
};
|
|
},
|
|
190: function (e, t, n) {
|
|
"use strict";
|
|
var i = n(18);
|
|
e.exports = function (e) {
|
|
ceFrontend.elementsHandler.addHandler(i, { $element: e, toggleSelf: !1 });
|
|
};
|
|
},
|
|
191: function (e, t, n) {
|
|
"use strict";
|
|
var i = n(18);
|
|
e.exports = function (e) {
|
|
ceFrontend.elementsHandler.addHandler(i, { $element: e, showTabFn: "slideDown", hideTabFn: "slideUp", hidePrevious: !1, autoExpand: "editor" });
|
|
};
|
|
},
|
|
192: function (e, t, n) {
|
|
"use strict";
|
|
var i = elementorModules.frontend.handlers.Base.extend({
|
|
getDefaultSettings: function () {
|
|
return { selectors: { imageOverlay: ".elementor-custom-embed-image-overlay", video: ".elementor-video", videoIframe: ".elementor-video-iframe" } };
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors");
|
|
return { $imageOverlay: this.$element.find(e.imageOverlay), $video: this.$element.find(e.video), $videoIframe: this.$element.find(e.videoIframe) };
|
|
},
|
|
getLightBox: function () {
|
|
return ceFrontend.utils.lightbox;
|
|
},
|
|
handleVideo: function () {
|
|
this.getElementSettings("lightbox") || (this.elements.$imageOverlay.remove(), this.playVideo());
|
|
},
|
|
playVideo: function () {
|
|
var e, t;
|
|
this.elements.$video.length ? this.elements.$video[0].play() : ((t = (e = this.elements.$videoIframe).data("lazy-load")) && e.attr("src", t), (t = e[0].src.replace("&autoplay=0", "")), (e[0].src = t + "&autoplay=1"));
|
|
},
|
|
animateVideo: function () {
|
|
this.getLightBox().setEntranceAnimation(this.getCurrentDeviceSetting("lightbox_content_animation"));
|
|
},
|
|
handleAspectRatio: function () {
|
|
this.getLightBox().setVideoAspectRatio(this.getElementSettings("aspect_ratio"));
|
|
},
|
|
bindEvents: function () {
|
|
this.elements.$imageOverlay.on("click", this.handleVideo);
|
|
},
|
|
onElementChange: function (e) {
|
|
var t;
|
|
0 === e.indexOf("lightbox_content_animation")
|
|
? this.animateVideo()
|
|
: ((t = this.getElementSettings("lightbox")), "lightbox" !== e || t ? "aspect_ratio" === e && t && this.handleAspectRatio() : this.getLightBox().getModal().hide());
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
ceFrontend.elementsHandler.addHandler(i, { $element: e });
|
|
};
|
|
},
|
|
193: function (e, t, n) {
|
|
"use strict";
|
|
var i = elementorModules.frontend.handlers.Base.extend({
|
|
getDefaultSettings: function () {
|
|
return { selectors: { carousel: ".elementor-image-carousel" } };
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors");
|
|
return { $carousel: this.$element.find(e.carousel) };
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
|
|
var e = this.getElementSettings(),
|
|
t = +e.slides_to_show || e.default_slides_count,
|
|
n = 1 === t,
|
|
i = e.center_padding && e.center_padding.size + "",
|
|
o = e.center_padding_tablet && e.center_padding_tablet.size + "",
|
|
s = e.center_padding_mobile && e.center_padding_mobile.size + "",
|
|
r = (!n && e.default_slides_count - 1) || 1,
|
|
a = ceFrontend.config.breakpoints,
|
|
t = {
|
|
touchThreshold: 100,
|
|
slidesToShow: t,
|
|
slidesToScroll: +e.slides_to_scroll || 1,
|
|
swipeToSlide: !e.slides_to_scroll,
|
|
variableWidth: "yes" === e.variable_width,
|
|
centerMode: "yes" === e.center_mode,
|
|
centerPadding: i ? i + e.center_padding.unit : void 0,
|
|
autoplay: "yes" === e.autoplay,
|
|
autoplaySpeed: e.autoplay_speed,
|
|
infinite: "yes" === e.infinite,
|
|
pauseOnHover: "yes" === e.pause_on_hover,
|
|
speed: e.speed,
|
|
arrows: -1 !== ["arrows", "both"].indexOf(e.navigation),
|
|
dots: -1 !== ["dots", "both"].indexOf(e.navigation),
|
|
rtl: "rtl" === e.direction,
|
|
responsive: [
|
|
{
|
|
breakpoint: a.lg,
|
|
settings: {
|
|
centerPadding: o ? o + e.center_padding_tablet.unit : void 0,
|
|
slidesToShow: +e.slides_to_show_tablet || r,
|
|
slidesToScroll: +e.slides_to_scroll_tablet || 1,
|
|
swipeToSlide: !e.slides_to_scroll_tablet,
|
|
autoplay: "yes" === e.autoplay_tablet,
|
|
infinite: e.infinite_tablet ? "yes" === e.infinite_tablet : void 0,
|
|
},
|
|
},
|
|
{
|
|
breakpoint: a.md,
|
|
settings: {
|
|
centerPadding: s ? s + e.center_padding_mobile.unit : o ? o + e.center_padding_tablet.unit : void 0,
|
|
slidesToShow: +e.slides_to_show_mobile || 1,
|
|
slidesToScroll: +e.slides_to_scroll_mobile || 1,
|
|
swipeToSlide: !e.slides_to_scroll_mobile,
|
|
autoplay: "yes" === e.autoplay_mobile,
|
|
infinite: e.infinite_mobile ? "yes" === e.infinite_mobile : void 0,
|
|
},
|
|
},
|
|
],
|
|
};
|
|
n && (t.fade = "fade" === e.effect), this.elements.$carousel.slick(t);
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
ceFrontend.elementsHandler.addHandler(i, { $element: e });
|
|
};
|
|
},
|
|
194: function (e, t, n) {
|
|
"use strict";
|
|
var i = elementorModules.frontend.handlers.Base.extend({
|
|
dropCapLetter: "",
|
|
getDefaultSettings: function () {
|
|
return { selectors: { paragraph: "p:first" }, classes: { dropCap: "elementor-drop-cap", dropCapLetter: "elementor-drop-cap-letter" } };
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors"),
|
|
t = this.getSettings("classes"),
|
|
n = jQuery("<span>", { class: t.dropCap }),
|
|
t = jQuery("<span>", { class: t.dropCapLetter });
|
|
return n.append(t), { $paragraph: this.$element.find(e.paragraph), $dropCap: n, $dropCapLetter: t };
|
|
},
|
|
wrapDropCap: function () {
|
|
var e, t, n, i;
|
|
this.getElementSettings("drop_cap")
|
|
? (e = this.elements.$paragraph).length &&
|
|
(n = (t = e.html().replace(/ /g, " ")).match(/^ *([^ ] ?)/)) &&
|
|
"<" !== (i = (n = n[1]).trim()) &&
|
|
((this.dropCapLetter = n),
|
|
this.elements.$dropCapLetter.text(i),
|
|
(i = t.slice(n.length).replace(/^ */, function (e) {
|
|
return new Array(e.length + 1).join(" ");
|
|
})),
|
|
e.html(i).prepend(this.elements.$dropCap))
|
|
: this.dropCapLetter && (this.elements.$dropCap.remove(), this.elements.$paragraph.prepend(this.dropCapLetter), (this.dropCapLetter = ""));
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), this.wrapDropCap();
|
|
},
|
|
onElementChange: function (e) {
|
|
"drop_cap" === e && this.wrapDropCap();
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
ceFrontend.elementsHandler.addHandler(i, { $element: e });
|
|
};
|
|
},
|
|
195: function (e, t, n) {
|
|
"use strict";
|
|
var i = elementorModules.frontend.handlers.Base.extend({
|
|
getWidgetType: function () {
|
|
return "global";
|
|
},
|
|
animate: function () {
|
|
var e,
|
|
t = this.$element,
|
|
n = this.getAnimation();
|
|
"none" === n
|
|
? t.removeClass("elementor-invisible")
|
|
: ((e = (e = this.getElementSettings())._animation_delay || e.animation_delay || 0),
|
|
t.addClass("elementor-invisible").removeClass(n),
|
|
this.currentAnimation && t.removeClass(this.currentAnimation),
|
|
(this.currentAnimation = n),
|
|
setTimeout(function () {
|
|
t.removeClass("elementor-invisible").addClass("animated " + n);
|
|
}, e));
|
|
},
|
|
getAnimation: function () {
|
|
return this.getCurrentDeviceSetting("animation") || this.getCurrentDeviceSetting("_animation");
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), this.getAnimation() && ceFrontend.waypoint(this.$element, this.animate.bind(this));
|
|
},
|
|
onElementChange: function (e) {
|
|
/^_?animation/.test(e) && this.animate();
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
ceFrontend.elementsHandler.addHandler(i, { $element: e });
|
|
};
|
|
},
|
|
196: function (e, t, n) {
|
|
"use strict";
|
|
e.exports = elementorModules.ViewModule.extend({
|
|
getDefaultSettings: function () {
|
|
return { isInserted: !1, APISrc: "https://www.youtube.com/iframe_api", selectors: { firstScript: "script:first" } };
|
|
},
|
|
getDefaultElements: function () {
|
|
return { $firstScript: jQuery(this.getSettings("selectors.firstScript")) };
|
|
},
|
|
insertYTAPI: function () {
|
|
this.setSettings("isInserted", !0), this.elements.$firstScript.before(jQuery("<script>", { src: this.getSettings("APISrc") }));
|
|
},
|
|
onYoutubeApiReady: function (e) {
|
|
var t = this;
|
|
t.getSettings("IsInserted") || t.insertYTAPI(),
|
|
window.YT && YT.loaded
|
|
? e(YT)
|
|
: setTimeout(function () {
|
|
t.onYoutubeApiReady(e);
|
|
}, 350);
|
|
},
|
|
getYoutubeIDFromURL: function (e) {
|
|
e = e.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?vi?=|(?:embed|v|vi|user)\/))([^?&"'>]+)/);
|
|
return e && e[1];
|
|
},
|
|
});
|
|
},
|
|
197: function (e, t, n) {
|
|
"use strict";
|
|
e.exports = elementorModules.ViewModule.extend({
|
|
getDefaultSettings: function () {
|
|
return { scrollDuration: 500, selectors: { links: 'a[href*="#"]', targets: ".elementor-element, .elementor-menu-anchor", scrollable: "html, body" } };
|
|
},
|
|
getDefaultElements: function () {
|
|
return { $scrollable: jQuery(this.getSettings("selectors").scrollable) };
|
|
},
|
|
bindEvents: function () {
|
|
ceFrontend.elements.$document.on("click", this.getSettings("selectors.links"), this.handleAnchorLinks);
|
|
},
|
|
handleAnchorLinks: function (e) {
|
|
var t,
|
|
n = e.currentTarget,
|
|
i = location.pathname === n.pathname,
|
|
o = location.hostname === n.hostname;
|
|
if (o && i && !(n.hash.length < 2)) {
|
|
try {
|
|
t = jQuery(n.hash).filter(this.getSettings("selectors.targets"));
|
|
} catch (e) {
|
|
return;
|
|
}
|
|
t.length &&
|
|
((o = t.offset().top),
|
|
0 < (i = jQuery(".elementor-section.elementor-sticky--active")).length &&
|
|
(o -= Math.max.apply(
|
|
null,
|
|
i
|
|
.map(function () {
|
|
return jQuery(this).outerHeight();
|
|
})
|
|
.get()
|
|
)),
|
|
e.preventDefault(),
|
|
(o = ceFrontend.hooks.applyFilters("frontend/handlers/menu_anchor/scroll_top_distance", o)),
|
|
this.elements.$scrollable.animate({ scrollTop: o }, this.getSettings("scrollDuration")));
|
|
}
|
|
},
|
|
onInit: function () {
|
|
elementorModules.ViewModule.prototype.onInit.apply(this, arguments), this.bindEvents();
|
|
},
|
|
});
|
|
},
|
|
198: function (t, e, n) {
|
|
"use strict";
|
|
t.exports = elementorModules.ViewModule.extend({
|
|
oldAspectRatio: null,
|
|
oldAnimation: null,
|
|
swiper: null,
|
|
getDefaultSettings: function () {
|
|
return {
|
|
classes: {
|
|
aspectRatio: "elementor-aspect-ratio-%s",
|
|
item: "elementor-lightbox-item",
|
|
image: "elementor-lightbox-image",
|
|
videoContainer: "elementor-video-container",
|
|
videoWrapper: "elementor-fit-aspect-ratio",
|
|
playButton: "elementor-custom-embed-play",
|
|
playButtonIcon: "fa",
|
|
playing: "elementor-playing",
|
|
hidden: "elementor-hidden",
|
|
invisible: "elementor-invisible",
|
|
preventClose: "elementor-lightbox-prevent-close",
|
|
slideshow: {
|
|
container: "swiper-container",
|
|
slidesWrapper: "swiper-wrapper",
|
|
prevButton: "elementor-swiper-button elementor-swiper-button-prev",
|
|
nextButton: "elementor-swiper-button elementor-swiper-button-next",
|
|
prevButtonIcon: "ceicon-chevron-left",
|
|
nextButtonIcon: "ceicon-chevron-right",
|
|
slide: "swiper-slide",
|
|
header: "elementor-slideshow__header",
|
|
footer: "elementor-slideshow__footer",
|
|
title: "elementor-slideshow__title",
|
|
description: "elementor-slideshow__description",
|
|
counter: "elementor-slideshow__counter",
|
|
iconZoomIn: "fa fa-search-plus",
|
|
iconZoomOut: "fa fa-search-minus",
|
|
zoomMode: "elementor-slideshow--zoom-mode",
|
|
},
|
|
},
|
|
selectors: { links: "a, [data-elementor-lightbox]", slideshow: { activeSlide: ".swiper-slide-active", prevSlide: ".swiper-slide-prev", nextSlide: ".swiper-slide-next" } },
|
|
modalOptions: { id: "elementor-lightbox", entranceAnimation: "zoomIn", videoAspectRatio: 169, position: { enable: !1 } },
|
|
};
|
|
},
|
|
getModal: function () {
|
|
return t.exports.modal || this.initModal(), t.exports.modal;
|
|
},
|
|
initModal: function () {
|
|
var e = (t.exports.modal = ceFrontend
|
|
.getDialogsManager()
|
|
.createWidget("lightbox", { className: "elementor-lightbox", closeButton: !0, closeButtonClass: "ceicon-close", selectors: { preventClose: "." + this.getSettings("classes.preventClose") }, hide: { onClick: !0 } }));
|
|
e.on("hide", function () {
|
|
e.setMessage("");
|
|
});
|
|
},
|
|
showModal: function (e) {
|
|
var t = this,
|
|
n = t.getDefaultSettings().modalOptions,
|
|
i = (t.setSettings("modalOptions", jQuery.extend(n, e.modalOptions)), t.getModal());
|
|
switch (
|
|
(i.setID(t.getSettings("modalOptions.id")),
|
|
(i.onShow = function () {
|
|
DialogsManager.getWidgetType("lightbox").prototype.onShow.apply(i, arguments), t.setEntranceAnimation();
|
|
}),
|
|
(i.onHide = function () {
|
|
DialogsManager.getWidgetType("lightbox").prototype.onHide.apply(i, arguments), i.getElements("message").removeClass("animated");
|
|
}),
|
|
e.type)
|
|
) {
|
|
case "image":
|
|
t.setImageContent(e.url);
|
|
break;
|
|
case "video":
|
|
t.setVideoContent(e);
|
|
break;
|
|
case "slideshow":
|
|
t.setSlideshowContent(e.slideshow);
|
|
break;
|
|
default:
|
|
t.setHTMLContent(e.html);
|
|
}
|
|
i.show();
|
|
},
|
|
setHTMLContent: function (e) {
|
|
this.getModal().setMessage(e);
|
|
},
|
|
setImageContent: function (e) {
|
|
var t = this.getSettings("classes"),
|
|
n = jQuery("<div>", { class: t.item }),
|
|
e = jQuery("<img>", { src: e, class: t.image + " " + t.preventClose });
|
|
n.append(e), this.getModal().setMessage(n);
|
|
},
|
|
setVideoContent: function (e) {
|
|
var t,
|
|
n = this.getSettings("classes"),
|
|
i = jQuery("<div>", { class: n.videoContainer }),
|
|
n = jQuery("<div>", { class: n.videoWrapper }),
|
|
o = this.getModal(),
|
|
s =
|
|
((e =
|
|
"hosted" === e.videoType
|
|
? ((t = jQuery.extend({ src: e.url, autoplay: "" }, e.videoParams)), jQuery("<video>", t))
|
|
: ((t = e.url.replace("&autoplay=0", "") + "&autoplay=1"), jQuery("<iframe>", { src: t, allowfullscreen: 1 }))),
|
|
i.append(n),
|
|
n.append(e),
|
|
o.setMessage(i),
|
|
this.setVideoAspectRatio(),
|
|
o.onHide);
|
|
o.onHide = function () {
|
|
s(), o.getElements("message").removeClass("elementor-fit-aspect-ratio");
|
|
};
|
|
},
|
|
getSlideshowHeader: function () {
|
|
var e = jQuery,
|
|
t = "yes" === ceFrontend.getGeneralSettings("elementor_lightbox_enable_counter"),
|
|
n = "yes" === ceFrontend.getGeneralSettings("elementor_lightbox_enable_fullscreen"),
|
|
i = "yes" === ceFrontend.getGeneralSettings("elementor_lightbox_enable_zoom"),
|
|
o = "yes" === ceFrontend.getGeneralSettings("elementor_lightbox_enable_share"),
|
|
s = this.getSettings("classes"),
|
|
r = s.slideshow,
|
|
a = this.elements;
|
|
if (t || n || i || o)
|
|
return (
|
|
(a.$header = e("<header>", { class: r.header + " " + s.preventClose })),
|
|
t && ((a.$counter = e("<span>", { class: r.counter })), a.$header.append(a.$counter)),
|
|
n && ((a.$iconExpand = e("<i>", { class: r.iconExpand }).append(e("<span>"), e("<span>"))), a.$iconExpand.on("click", this.toggleFullscreen), a.$header.append(a.$iconExpand)),
|
|
i && ((a.$iconZoom = e("<i>", { class: r.iconZoomIn })), a.$iconZoom.on("click", this.toggleZoomMode), a.$header.append(a.$iconZoom)),
|
|
a.$header
|
|
);
|
|
},
|
|
toggleZoomMode: function () {
|
|
1 !== this.swiper.zoom.scale ? this.deactivateZoom() : this.activateZoom();
|
|
},
|
|
activateZoom: function () {
|
|
var e = this.swiper,
|
|
t = this.elements,
|
|
n = this.getSettings("classes");
|
|
e.zoom.in(), (e.allowSlideNext = !1), (e.allowSlidePrev = !1), (e.allowTouchMove = !1), t.$container.addClass(n.slideshow.zoomMode), t.$iconZoom.removeClass(n.slideshow.iconZoomIn).addClass(n.slideshow.iconZoomOut);
|
|
},
|
|
deactivateZoom: function () {
|
|
var e = this.swiper,
|
|
t = this.elements,
|
|
n = this.getSettings("classes");
|
|
e.zoom.out(), (e.allowSlideNext = !0), (e.allowSlidePrev = !0), (e.allowTouchMove = !0), t.$container.removeClass(n.slideshow.zoomMode), t.$iconZoom.removeClass(n.slideshow.iconZoomOut).addClass(n.slideshow.iconZoomIn);
|
|
},
|
|
getSlideshowFooter: function () {
|
|
var e = jQuery,
|
|
t = this.getSettings("classes"),
|
|
n = e("<footer>", { class: t.slideshow.footer + " " + t.preventClose }),
|
|
i = e("<div>", { class: t.slideshow.title }),
|
|
e = e("<div>", { class: t.slideshow.description });
|
|
return n.append(i, e);
|
|
},
|
|
setSlideshowContent: function (t) {
|
|
var n,
|
|
i,
|
|
o = jQuery,
|
|
s = this,
|
|
r = 1 === t.slides.length,
|
|
e = "" !== ceFrontend.getGeneralSettings("elementor_lightbox_title_src"),
|
|
a = "" !== ceFrontend.getGeneralSettings("elementor_lightbox_description_src"),
|
|
l = e || a,
|
|
c = s.getSettings("classes"),
|
|
d = c.slideshow,
|
|
u = o("<div>", { class: d.container }),
|
|
h = o("<div>", { class: d.slidesWrapper }),
|
|
e =
|
|
(r ||
|
|
((n = o("<div>", { class: d.prevButton + " " + c.preventClose }).html(o("<i>", { class: d.prevButtonIcon }))),
|
|
(i = o("<div>", { class: d.nextButton + " " + c.preventClose }).html(o("<i>", { class: d.nextButtonIcon })))),
|
|
t.slides.forEach(function (e) {
|
|
var t,
|
|
n = d.slide + " " + c.item,
|
|
n = (e.video && (n += " " + c.video), o("<div>", { class: n }));
|
|
e.video
|
|
? (n.attr("data-elementor-slideshow-video", e.video), (t = o("<div>", { class: c.playButton }).html(o("<i>", { class: c.playButtonIcon }))), n.append(t))
|
|
: ((t = o("<div>", { class: "swiper-zoom-container" })),
|
|
(e = o("<img>", { class: c.image + " " + c.preventClose, src: e.image, "data-title": e.title, "data-description": e.description })),
|
|
t.append(e),
|
|
n.append(t)),
|
|
h.append(n);
|
|
}),
|
|
(this.elements.$container = u),
|
|
(this.elements.$header = this.getSlideshowHeader()),
|
|
u.prepend(this.elements.$header).append(h, n, i),
|
|
l && ((this.elements.$footer = this.getSlideshowFooter()), u.append(this.elements.$footer)),
|
|
s.getModal()),
|
|
m = (e.setMessage(u), e.onShow);
|
|
e.onShow = function () {
|
|
m();
|
|
var e = { pagination: { el: "." + d.counter, type: "fraction" }, on: { slideChangeTransitionEnd: s.onSlideChange }, zoom: !0, spaceBetween: 100, grabCursor: !0, runCallbacksOnInit: !1, loop: !r, keyboard: !0 };
|
|
r || (e.navigation = { prevEl: n, nextEl: i }), t.swiper && o.extend(e, t.swiper), (s.swiper = new Swiper(u, e)), s.setVideoAspectRatio(), s.playSlideVideo(), l && s.updateFooterText();
|
|
};
|
|
},
|
|
setVideoAspectRatio: function (e) {
|
|
e = e || this.getSettings("modalOptions.videoAspectRatio");
|
|
var t = this.getModal().getElements("widgetContent"),
|
|
n = this.oldAspectRatio,
|
|
i = this.getSettings("classes.aspectRatio");
|
|
(this.oldAspectRatio = e), n && t.removeClass(i.replace("%s", n)), e && t.addClass(i.replace("%s", e));
|
|
},
|
|
getSlide: function (e) {
|
|
return jQuery(this.swiper.slides).filter(this.getSettings("selectors.slideshow." + e + "Slide"));
|
|
},
|
|
updateFooterText: function () {
|
|
var e, t, n, i;
|
|
this.elements.$footer &&
|
|
((i = this.getSettings("classes")),
|
|
(e = (t = this.getSlide("active").find(".elementor-lightbox-image")).data("title")),
|
|
(t = t.data("description")),
|
|
(n = this.elements.$footer.find("." + i.slideshow.title)),
|
|
(i = this.elements.$footer.find("." + i.slideshow.description)),
|
|
n.text(e || ""),
|
|
i.text(t || ""));
|
|
},
|
|
playSlideVideo: function () {
|
|
var e,
|
|
t,
|
|
n,
|
|
i,
|
|
o = this.getSlide("active"),
|
|
s = o.data("elementor-slideshow-video");
|
|
s &&
|
|
((e = this.getSettings("classes")),
|
|
(t = jQuery("<div>", { class: e.videoContainer + " " + e.invisible })),
|
|
(n = jQuery("<div>", { class: e.videoWrapper })),
|
|
(s = jQuery("<iframe>", { src: s })),
|
|
(i = o.children("." + e.playButton)),
|
|
t.append(n),
|
|
n.append(s),
|
|
o.append(t),
|
|
i.addClass(e.playing).removeClass(e.hidden),
|
|
s.on("load", function () {
|
|
i.addClass(e.hidden), t.removeClass(e.invisible);
|
|
}));
|
|
},
|
|
setEntranceAnimation: function (e) {
|
|
e = e || ceFrontend.getCurrentDeviceSetting(this.getSettings("modalOptions"), "entranceAnimation");
|
|
var t = this.getModal().getElements("message");
|
|
this.oldAnimation && t.removeClass(this.oldAnimation), (this.oldAnimation = e) && t.addClass("animated " + e);
|
|
},
|
|
isLightboxLink: function (e) {
|
|
if ("A" === e.tagName && (e.hasAttribute("download") || !/\.(png|jpe?g|gif|svg|webp)(\?.*)?$/i.test(e.href))) return !1;
|
|
var t = +ceFrontend.getGeneralSettings("elementor_global_image_lightbox"),
|
|
e = e.dataset.elementorOpenLightbox;
|
|
return "yes" === e || (t && "no" !== e);
|
|
},
|
|
getLightBoxImageAttribute: function (e, t) {
|
|
var n = ceFrontend.getGeneralSettings("elementor_lightbox_" + t + "_src");
|
|
switch (n) {
|
|
case "title":
|
|
case "alt":
|
|
return $(e).find("img").prop(n) || "";
|
|
case "caption":
|
|
return $(e).closest("figure").find("figcaption").text() || ($(e).closest('[class*="widget-product"]').length ? $(e).find("img").prop("alt") : "");
|
|
}
|
|
return "";
|
|
},
|
|
openLink: function (e) {
|
|
var t,
|
|
n,
|
|
i,
|
|
o,
|
|
s,
|
|
r = this,
|
|
a = e.currentTarget,
|
|
l = jQuery(e.target),
|
|
c = ceFrontend.isEditMode(),
|
|
l = !!l.closest("#elementor").length;
|
|
this.isLightboxLink(a)
|
|
? (e.preventDefault(),
|
|
(c && !ceFrontend.getGeneralSettings("elementor_enable_lightbox_in_editor")) ||
|
|
((s = {}),
|
|
(s = a.dataset.elementorLightbox ? JSON.parse(a.dataset.elementorLightbox) : s).type && "slideshow" !== s.type
|
|
? this.showModal(s)
|
|
: a.dataset.elementorLightboxSlideshow
|
|
? ((t = a.dataset.elementorLightboxSlideshow),
|
|
(n = jQuery(this.getSettings("selectors.links")).filter(function () {
|
|
return t === this.dataset.elementorLightboxSlideshow;
|
|
})),
|
|
(i = []),
|
|
(o = {}),
|
|
n.each(function () {
|
|
var e = this.dataset.elementorLightboxVideo,
|
|
t = e || this.href;
|
|
o[t] ||
|
|
((o[t] = !0),
|
|
void 0 === (t = this.dataset.elementorLightboxIndex) && (t = n.index(this)),
|
|
(t = { image: this.href, index: t, title: r.getLightBoxImageAttribute(this, "title"), description: r.getLightBoxImageAttribute(this, "description") }),
|
|
e && (t.video = e),
|
|
i.push(t));
|
|
}),
|
|
i.sort(function (e, t) {
|
|
return e.index - t.index;
|
|
}),
|
|
void 0 === (s = a.dataset.elementorLightboxIndex) && (s = n.index(a)),
|
|
this.showModal({ type: "slideshow", modalOptions: { id: "elementor-lightbox-slideshow-" + t }, slideshow: { slides: i, swiper: { initialSlide: +s } } }))
|
|
: this.showModal({ type: "image", url: a.href })))
|
|
: c && l && e.preventDefault();
|
|
},
|
|
bindEvents: function () {
|
|
ceFrontend.elements.$document.on("click", this.getSettings("selectors.links"), this.openLink);
|
|
},
|
|
onSlideChange: function () {
|
|
this.getSlide("prev")
|
|
.add(this.getSlide("next"))
|
|
.add(this.getSlide("active"))
|
|
.find("." + this.getSettings("classes.videoWrapper"))
|
|
.remove(),
|
|
this.playSlideVideo(),
|
|
this.updateFooterText();
|
|
},
|
|
});
|
|
},
|
|
199: function (e, t, n) {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", { value: !0 });
|
|
var i = function (e, t, n) {
|
|
return t && o(e.prototype, t), n && o(e, n), e;
|
|
};
|
|
function o(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
function s(e, t, n) {
|
|
null === e && (e = Function.prototype);
|
|
var i = Object.getOwnPropertyDescriptor(e, t);
|
|
if (void 0 !== i) {
|
|
if ("value" in i) return i.value;
|
|
i = i.get;
|
|
return void 0 !== i ? i.call(n) : void 0;
|
|
}
|
|
if (null !== (i = Object.getPrototypeOf(e))) return s(i, t, n);
|
|
}
|
|
var r = (function (e) {
|
|
var t = n;
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
|
|
function n() {
|
|
var e = this,
|
|
t = n;
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
(e = this), (t = (n.__proto__ || Object.getPrototypeOf(n)).apply(this, arguments));
|
|
if (e) return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
return (
|
|
(t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })),
|
|
e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)),
|
|
i(n, [
|
|
{
|
|
key: "getDefaultSettings",
|
|
value: function () {
|
|
return { selectors: { links: 'a[href^="#ce-action"]' } };
|
|
},
|
|
},
|
|
{
|
|
key: "bindEvents",
|
|
value: function () {
|
|
ceFrontend.elements.$document.on("click", this.getSettings("selectors.links"), this.runLinkAction.bind(this));
|
|
},
|
|
},
|
|
{
|
|
key: "initActions",
|
|
value: function () {
|
|
this.actions = {
|
|
lightbox: function (e) {
|
|
if (!ceFrontend.isEditMode() || ceFrontend.getGeneralSettings("elementor_enable_lightbox_in_editor")) return ceFrontend.utils.lightbox.showModal(e);
|
|
},
|
|
closeLightbox: function () {
|
|
var e = ceFrontend.utils.lightbox.getModal();
|
|
e.isVisible() && e.hide();
|
|
},
|
|
carousel: function (e, t) {
|
|
t = $(
|
|
(function (e, t) {
|
|
var n = (e = e.getBoundingClientRect()).left + e.width / 2,
|
|
i = e.top + e.height / 2,
|
|
o = { d: 1 / 0, elem: null };
|
|
return (
|
|
$(t || document.body)
|
|
.find(".slick-slider")
|
|
.each(function () {
|
|
var e = this.getBoundingClientRect(),
|
|
e = Math.hypot(Math.max(e.left - n, 0, n - e.right), Math.max(e.top - i, 0, i - e.bottom));
|
|
e < o.d && ((o.d = e), (o.elem = this));
|
|
}),
|
|
o.elem
|
|
);
|
|
})((t && t.currentTarget) || document.activeElement, e.selector)
|
|
);
|
|
"goto" === e.action ? t.slick("slickGoTo", e.goto - 1) : t.slick(e.action);
|
|
},
|
|
quickview: function (e) {
|
|
// e = e.id_product
|
|
// ? { idProduct: e.id_product, idProductAttribute: e.id_product_attribute || 0 }
|
|
// : $(document.activeElement).closest("[data-id-product]").data() || { idProduct: $("input[id=product_page_product_id]:last").val() };
|
|
// e.idProduct && (ceFrontend.modules.linkActions.actions.closeLightbox(), prestashop.emit("clickQuickView", { dataset: e }));
|
|
},
|
|
addToCart: function (e) {
|
|
var t = $(document.activeElement).closest("[data-id-product]").data(),
|
|
n = e.id_product || (t && t.idProduct);
|
|
n
|
|
? $.post(prestashop.urls.pages.cart, { add: 1, action: "update", id_product: n, token: prestashop.static_token }, null, "json")
|
|
.then(function (e) {
|
|
prestashop.emit("updateCart", {
|
|
reason: { idProduct: e.id_product || n, idProductAttribute: e.id_product_attribute, idCustomization: e.id_customization, linkAction: "add-to-cart", cart: e.cart },
|
|
resp: e,
|
|
});
|
|
})
|
|
.fail(function (e) {
|
|
prestashop.emit("handleError", { eventType: "addProductToCart", resp: e });
|
|
})
|
|
: $('form[id="add-to-cart-or-refresh"] [data-button-action="add-to-cart"]:last').click(),
|
|
ceFrontend.modules.linkActions.actions.closeLightbox();
|
|
},
|
|
buyNow: function (t) {
|
|
var n = prestashop._events.updateCart;
|
|
delete prestashop._events.updateCart,
|
|
prestashop.once("updateCart", function (e) {
|
|
e.resp && e.resp.success ? (location.href = prestashop.urls.pages[t.redirect || "order"]) : ((prestashop._events.updateCart = n), prestashop.emit("updateCart", e));
|
|
}),
|
|
ceFrontend.modules.linkActions.actions.addToCart(t);
|
|
},
|
|
};
|
|
},
|
|
},
|
|
{
|
|
key: "addAction",
|
|
value: function (e, t) {
|
|
this.actions[e] = t;
|
|
},
|
|
},
|
|
{
|
|
key: "runAction",
|
|
value: function (e, t) {
|
|
e = (e = decodeURIComponent(e)).match(/action=(\w+)(.+)/);
|
|
if (e) {
|
|
var n = this.actions[e[1]];
|
|
if (n) {
|
|
for (var e = JSON.parse(e[2]), i = arguments.length, o = Array(1 < i ? i - 1 : 0), s = 1; s < i; s++) o[s - 1] = arguments[s];
|
|
n.apply(void 0, [e].concat(o), t);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
{
|
|
key: "runLinkAction",
|
|
value: function (e) {
|
|
e.preventDefault(), this.runAction(e.currentTarget.href, e);
|
|
},
|
|
},
|
|
{
|
|
key: "runHashAction",
|
|
value: function () {
|
|
location.hash && this.runAction(location.hash);
|
|
},
|
|
},
|
|
{
|
|
key: "onInit",
|
|
value: function () {
|
|
s(n.prototype.__proto__ || Object.getPrototypeOf(n.prototype), "onInit", this).call(this), this.initActions();
|
|
},
|
|
},
|
|
]),
|
|
n
|
|
);
|
|
})(elementorModules.ViewModule);
|
|
t.default = r;
|
|
},
|
|
200: function (e, t, n) {
|
|
"use strict";
|
|
var i,
|
|
o = ((i = {
|
|
constructor: function (e) {
|
|
(this.$element = e),
|
|
(this.settings = { selectors: { form: "form", submitButton: '[type="submit"]' } }),
|
|
(this.elements = {}),
|
|
(this.elements.$form = this.$element.find(this.settings.selectors.form)),
|
|
(this.elements.$submitButton = this.elements.$form.find(this.settings.selectors.submitButton)),
|
|
this.bindEvents();
|
|
},
|
|
bindEvents: function () {
|
|
this.elements.$form.on("submit", $.proxy(this, "handleSubmit"));
|
|
},
|
|
beforeSend: function () {
|
|
var e = this.elements.$form;
|
|
e.animate({ opacity: "0.45" }, 500).addClass("elementor-form-waiting"),
|
|
e.find(".elementor-message").remove(),
|
|
e.find(".elementor-error").removeClass("elementor-error"),
|
|
e.find("div.elementor-field-group").removeClass("error").find("span.elementor-form-help-inline").remove().end().find(":input").attr("aria-invalid", "false"),
|
|
this.elements.$submitButton.attr("disabled", "disabled").find("> span").prepend('<span class="elementor-button-text elementor-form-spinner"><i class="fa fa-spinner fa-spin"></i> </span>');
|
|
},
|
|
getFormData: function () {
|
|
var e = new FormData(this.elements.$form[0]);
|
|
return e.append(this.elements.$submitButton[0].name, this.elements.$submitButton[0].value), e;
|
|
},
|
|
onSuccess: function (e, t) {
|
|
var n,
|
|
i = this.elements.$form,
|
|
o = "before" === i.data("msg") ? "prepend" : "append";
|
|
this.elements.$submitButton.removeAttr("disabled").find(".elementor-form-spinner").remove(),
|
|
i.animate({ opacity: "1" }, 100).removeClass("elementor-form-waiting"),
|
|
e.success
|
|
? ((n = i.data("success") || e.success),
|
|
i.trigger("submit_success", e),
|
|
i.trigger("form_destruct", e),
|
|
i.trigger("reset"),
|
|
i[o]('<div class="elementor-message elementor-message-success" role="alert">' + n + "</div>"))
|
|
: ((n = i.data("error") || (e.errors && e.errors.join("<br>")) || "Unknown error"), i[o]('<div class="elementor-message elementor-message-danger" role="alert">' + n + "</div>"));
|
|
},
|
|
onError: function (e, t) {
|
|
var n = this.elements.$form;
|
|
n.append('<div class="elementor-message elementor-message-danger" role="alert">' + t + "</div>"),
|
|
this.elements.$submitButton.html(this.elements.$submitButton.text()).removeAttr("disabled"),
|
|
n.animate({ opacity: "1" }, 100).removeClass("elementor-form-waiting"),
|
|
n.trigger("error");
|
|
},
|
|
handleSubmit: function (e) {
|
|
var t = this.elements.$form;
|
|
if ((e.preventDefault(), t.hasClass("elementor-form-waiting"))) return !1;
|
|
this.beforeSend(), $.ajax({ url: t.attr("action"), type: "POST", dataType: "json", data: this.getFormData(), processData: !1, contentType: !1, success: $.proxy(this, "onSuccess"), error: $.proxy(this, "onError") });
|
|
},
|
|
}).constructor.prototype = i).constructor;
|
|
e.exports = function (e, t) {
|
|
new o(e);
|
|
};
|
|
},
|
|
201: function (e, t, n) {
|
|
"use strict";
|
|
e.exports = elementorModules.frontend.handlers.Base.extend({
|
|
getDefaultSettings: function () {
|
|
return { selectors: { mainSwiper: ".elementor-main-swiper", swiperSlide: ".swiper-slide" }, zoom: { enabled: !0, toggle: !1 }, slidesPerView: { desktop: 3, tablet: 2, mobile: 1 } };
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors"),
|
|
t = { $mainSwiper: this.$element.find(e.mainSwiper) };
|
|
return (t.$mainSwiperSlides = t.$mainSwiper.find(e.swiperSlide)), t;
|
|
},
|
|
getSlidesCount: function () {
|
|
return this.elements.$mainSwiperSlides.length;
|
|
},
|
|
getInitialSlide: function () {
|
|
var e = this.getEditSettings();
|
|
return e.activeItemIndex ? e.activeItemIndex - 1 : 0;
|
|
},
|
|
getEffect: function () {
|
|
return this.getElementSettings("effect");
|
|
},
|
|
getDeviceSlidesPerView: function (e) {
|
|
var t = "slides_per_view" + ("desktop" === e ? "" : "_" + e);
|
|
return Math.min(this.getSlidesCount(), +this.getElementSettings(t) || this.getSettings("slidesPerView")[e]);
|
|
},
|
|
getSlidesPerView: function (e) {
|
|
return "slide" === this.getEffect() ? this.getDeviceSlidesPerView(e) : 1;
|
|
},
|
|
getDesktopSlidesPerView: function () {
|
|
return this.getSlidesPerView("desktop");
|
|
},
|
|
getTabletSlidesPerView: function () {
|
|
return this.getSlidesPerView("tablet");
|
|
},
|
|
getMobileSlidesPerView: function () {
|
|
return this.getSlidesPerView("mobile");
|
|
},
|
|
getDeviceSlidesToScroll: function (e) {
|
|
e = "slides_to_scroll" + ("desktop" === e ? "" : "_" + e);
|
|
return Math.min(this.getSlidesCount(), +this.getElementSettings(e) || 1);
|
|
},
|
|
getSlidesToScroll: function (e) {
|
|
return "slide" === this.getEffect() ? this.getDeviceSlidesToScroll(e) : 1;
|
|
},
|
|
getDesktopSlidesToScroll: function () {
|
|
return this.getSlidesToScroll("desktop");
|
|
},
|
|
getTabletSlidesToScroll: function () {
|
|
return this.getSlidesToScroll("tablet");
|
|
},
|
|
getMobileSlidesToScroll: function () {
|
|
return this.getSlidesToScroll("mobile");
|
|
},
|
|
getSpaceBetween: function (e) {
|
|
var t = "space_between",
|
|
e = (e && "desktop" !== e && (t += "_" + e), this.getElementSettings(t));
|
|
return (e && e.size) || 0;
|
|
},
|
|
getSwiperOptions: function () {
|
|
var e,
|
|
t,
|
|
n = this.getElementSettings(),
|
|
i =
|
|
("progress" === n.pagination && (n.pagination = "progressbar"),
|
|
{
|
|
grabCursor: !0,
|
|
initialSlide: this.getInitialSlide(),
|
|
centeredSlides: n.centered_slides,
|
|
slidesPerView: this.getDesktopSlidesPerView(),
|
|
slidesPerGroup: this.getDesktopSlidesToScroll(),
|
|
spaceBetween: this.getSpaceBetween(),
|
|
loop: "yes" === n.loop,
|
|
speed: n.speed,
|
|
effect: this.getEffect(),
|
|
});
|
|
return (
|
|
n.show_arrows && (i.navigation = { prevEl: ".elementor-swiper-button-prev", nextEl: ".elementor-swiper-button-next" }),
|
|
n.pagination && (i.pagination = { el: ".swiper-pagination", type: n.pagination, clickable: !0 }),
|
|
"cube" !== this.getEffect() &&
|
|
(((e = {})[(t = ceFrontend.config.breakpoints).lg - 1] = { slidesPerView: this.getTabletSlidesPerView(), slidesPerGroup: this.getTabletSlidesToScroll(), spaceBetween: this.getSpaceBetween("tablet") }),
|
|
(e[t.md - 1] = { slidesPerView: this.getMobileSlidesPerView(), slidesPerGroup: this.getMobileSlidesToScroll(), spaceBetween: this.getSpaceBetween("mobile") }),
|
|
(i.breakpoints = e)),
|
|
!this.isEdit && n.autoplay && (i.autoplay = { delay: n.autoplay_speed, disableOnInteraction: !!n.pause_on_interaction }),
|
|
i
|
|
);
|
|
},
|
|
updateSpaceBetween: function (e, t) {
|
|
var t = t.match("space_between_(.*)"),
|
|
t = t ? t[1] : "desktop",
|
|
n = this.getSpaceBetween(t),
|
|
i = ceFrontend.config.breakpoints;
|
|
"desktop" !== t ? ((i = { tablet: i.lg - 1, mobile: i.md - 1 }), (e.params.breakpoints[i[t]].spaceBetween = n)) : (e.originalParams.spaceBetween = n), (e.params.spaceBetween = n), e.update();
|
|
},
|
|
onInit: function () {
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), (this.swipers = {}), this.getSlidesCount() <= 1 || (this.swipers.main = new Swiper(this.elements.$mainSwiper, this.getSwiperOptions()));
|
|
},
|
|
onElementChange: function (e) {
|
|
this.getSlidesCount() <= 1 || (0 === e.indexOf("width") && this.swipers.main.update(), 0 === e.indexOf("space_between") && this.updateSpaceBetween(this.swipers.main, e));
|
|
},
|
|
onEditSettingsChange: function (e) {
|
|
this.getSlidesCount() <= 1 || ("activeItemIndex" === e && this.swipers.main.slideToLoop(this.getEditSettings("activeItemIndex") - 1));
|
|
},
|
|
});
|
|
},
|
|
202: function (e, t, n) {
|
|
"use strict";
|
|
var i = n(201),
|
|
o = i.extend({
|
|
slideshowSpecialElementSettings: ["slides_per_view", "slides_per_view_tablet", "slides_per_view_mobile"],
|
|
isSlideshow: function () {
|
|
return "slideshow" === this.getElementSettings("skin");
|
|
},
|
|
getDefaultSettings: function () {
|
|
var e = i.prototype.getDefaultSettings.apply(this, arguments);
|
|
return this.isSlideshow() && ((e.selectors.thumbsSwiper = ".elementor-thumbnails-swiper"), (e.slidesPerView = { desktop: 5, tablet: 4, mobile: 3 })), e;
|
|
},
|
|
getElementSettings: function (e) {
|
|
return -1 !== this.slideshowSpecialElementSettings.indexOf(e) && this.isSlideshow() && (e = "slideshow_" + e), i.prototype.getElementSettings.call(this, e);
|
|
},
|
|
getDefaultElements: function () {
|
|
var e = this.getSettings("selectors"),
|
|
t = i.prototype.getDefaultElements.apply(this, arguments);
|
|
return this.isSlideshow() && (t.$thumbsSwiper = this.$element.find(e.thumbsSwiper)), t;
|
|
},
|
|
getSlidesPerView: function (e) {
|
|
return this.isSlideshow() ? 1 : "coverflow" === this.getEffect() ? this.getDeviceSlidesPerView(e) : i.prototype.getSlidesPerView.apply(this, arguments);
|
|
},
|
|
getThumbSpaceBetween: function (e) {
|
|
var t = "thumb_space_between";
|
|
return e && "desktop" !== e && (t += "_" + e), this.getElementSettings(t).size || 0;
|
|
},
|
|
getSwiperOptions: function () {
|
|
var e = i.prototype.getSwiperOptions.apply(this, arguments);
|
|
return this.isSlideshow() && ((e.loopedSlides = this.getSlidesCount()), delete e.pagination, delete e.breakpoints), e;
|
|
},
|
|
onInit: function () {
|
|
var e, t, n, i, o, s;
|
|
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments),
|
|
(this.swipers = {}),
|
|
this.getSlidesCount() &&
|
|
((e = this.getSwiperOptions()),
|
|
this.isSlideshow() &&
|
|
((t = this.getElementSettings()),
|
|
(n = {}),
|
|
(o = ceFrontend.config.breakpoints),
|
|
(i = this.getSettings("slidesPerView")),
|
|
(n[o.lg - 1] = { slidesPerView: +t.slides_per_view_tablet || i.tablet, spaceBetween: this.getThumbSpaceBetween("tablet") }),
|
|
(n[o.md - 1] = { slidesPerView: +t.slides_per_view_mobile || i.mobile, spaceBetween: this.getThumbSpaceBetween("mobile") }),
|
|
(o = {
|
|
slidesPerView: +t.slides_per_view || i.desktop,
|
|
initialSlide: this.getInitialSlide(),
|
|
slideToClickedSlide: !0,
|
|
spaceBetween: this.getThumbSpaceBetween(),
|
|
threshold: 2,
|
|
watchSlidesVisibility: !0,
|
|
watchSlidesProgress: !0,
|
|
breakpoints: n,
|
|
direction: "bottom" === t.position ? "horizontal" : "vertical",
|
|
}),
|
|
(s = this.swipers.thumbs = new Swiper(this.elements.$thumbsSwiper, o)),
|
|
(e.thumbs = { swiper: this.swipers.thumbs, slideThumbActiveClass: "swiper-slide-active" }),
|
|
(e.on = {
|
|
slideChange: function () {
|
|
setTimeout(function () {
|
|
var e = $(s.slides).filter(".swiper-slide-active");
|
|
s.slides.removeClass("swiper-slide-prev swiper-slide-next"), e.prevAll().addClass("swiper-slide-prev"), e.nextAll().addClass("swiper-slide-next");
|
|
});
|
|
},
|
|
sliderFirstMove: function () {
|
|
this.zoom.out(), this.$el.addClass("ce-swiper-dragging");
|
|
},
|
|
touchEnd: function () {
|
|
this.$el.removeClass("ce-swiper-dragging");
|
|
},
|
|
}),
|
|
this.elements.$mainSwiper.on("mouseenter.ceZoom", ".swiper-zoom-container", this.onZoomIn.bind(this)).on("mouseleave.ceZoom", ".swiper-zoom-container", this.onZoomOut.bind(this))),
|
|
(this.swipers.main = new Swiper(this.elements.$mainSwiper, e)),
|
|
this.swipers.thumbs && (this.swipers.thumbs.main = this.swipers.main));
|
|
},
|
|
onZoomIn: function (e) {
|
|
var t = this.swipers.main.touchEventsData;
|
|
t.isMoved ||
|
|
Date.now() - t.touchStartTime < 200 ||
|
|
(this.swipers.main.zoom.in(),
|
|
this.elements.$mainSwiper.on("mousemove.ceZoom", ".swiper-zoom-container img", function (e) {
|
|
var t = this.parentNode.getBoundingClientRect(),
|
|
n = ((100 * (e.clientX - t.left)) / t.width).toFixed(3),
|
|
e = ((100 * (e.clientY - t.top)) / t.height).toFixed(3);
|
|
(this.style.transformOrigin = n + "% " + e + "%"), (this.style.transitionDuration = "0s");
|
|
}));
|
|
},
|
|
onZoomOut: function () {
|
|
this.swipers.main.zoom.out(), this.elements.$mainSwiper.off("mousemove.ceZoom");
|
|
},
|
|
onElementChange: function (e) {
|
|
this.getSlidesCount() <= 1 ||
|
|
(this.isSlideshow()
|
|
? (0 === e.indexOf("width") && (this.swipers.main.update(), this.swipers.thumbs.update()), 0 === e.indexOf("space_between") && this.updateSpaceBetween(this.swipers.thumbs, e))
|
|
: i.prototype.onElementChange.apply(this, arguments));
|
|
},
|
|
});
|
|
e.exports = function (e) {
|
|
new o({ $element: e });
|
|
};
|
|
},
|
|
}),
|
|
prestashop.on("updateCart", function (e) {
|
|
if (e.resp && e.resp.hasError) return (window.WishlistEventBus && WishlistEventBus.$emit("showToast", { detail: { type: "error", message: e.resp.errors.join(" ") } })) || alert(e.resp.errors.join("\n"));
|
|
e.resp && e.resp.success && (e = $("#add-to-cart-or-refresh > [name=id_product][value=" + e.resp.id_product + "]")[0]) && ceFrontend.refreshProduct(e.form);
|
|
}),
|
|
(ceFrontend.refreshProduct = function (i, e) {
|
|
var t = new FormData(i);
|
|
t.set("refresh", "product"),
|
|
e && t.set("quickview", e),
|
|
t.set("quantity_wanted", t.get("qty")),
|
|
t.delete("qty"),
|
|
this.refreshProduct.xhr && 4 !== this.refreshProduct.xhr.readyState && this.refreshProduct.xhr.abort(),
|
|
(this.refreshProduct.xhr = $.ajax((window.elementor && elementor.config.document.urls.permalink) || prestashop.urls.pages.product, {
|
|
type: "POST",
|
|
data: t,
|
|
processData: !1,
|
|
contentType: !1,
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var t = $(e.product_content),
|
|
n = [
|
|
".elementor-widget-product-quantity",
|
|
".elementor-widget-product-description",
|
|
".elementor-widget-product-description-short",
|
|
".elementor-widget-product-carousel",
|
|
".elementor-widget-product-grid",
|
|
".elementor-widget-product-box",
|
|
].join();
|
|
t.find(".elementor-widget:not(" + n + ") > .elementor-widget-container").each(function () {
|
|
var e = $(this.parentNode).data("id"),
|
|
e = $(".elementor-element-" + e + " > .elementor-widget-container")[0];
|
|
e && ($(e).replaceWith(this), ceFrontend.elementsHandler.runReadyTrigger(this.parentNode));
|
|
}),
|
|
$(i.elements.qty)
|
|
.attr("min", e.product_minimal_quantity)
|
|
.each(function () {
|
|
this.value < e.product_minimal_quantity && (this.value = e.product_minimal_quantity);
|
|
}),
|
|
+e.is_quick_view || prestashop.emit("updatedProduct", e);
|
|
},
|
|
}));
|
|
}),
|
|
$("html")
|
|
.on("click.ce", ".elementor-nav-tabs a", function (e) {
|
|
var i;
|
|
e.preventDefault(),
|
|
~this.className.indexOf("elementor-item-active") ||
|
|
((e = $(this.parentNode).index()),
|
|
(e = $(this).closest(".elementor-container").find("> .elementor-row > .elementor-column").eq(e)),
|
|
(i = ceFrontend.isEditMode()),
|
|
$(this).closest(".elementor-nav").find(".elementor-item-active").removeClass("elementor-item-active"),
|
|
$(this).addClass("elementor-item-active"),
|
|
e.addClass("elementor-active").siblings().removeClass("elementor-active"),
|
|
e
|
|
.find(".animated")
|
|
.addBack(".animated")
|
|
.each(function () {
|
|
var e = $(this),
|
|
t = i ? elementor.helpers.getModelById(e.data("id")).get("settings").attributes : e.data("settings") || {},
|
|
n = e.hasClass("elementor-widget") ? "_animation" : "animation";
|
|
e.addClass("elementor-invisible").removeClass(ceFrontend.getCurrentDeviceSetting(t, n)),
|
|
setTimeout(function () {
|
|
e.removeClass([t[n + "_mobile"] || "", t[n + "_tablet"] || "", t[n] || ""].join(" "));
|
|
}),
|
|
setTimeout(function () {
|
|
e.removeClass("elementor-invisible").addClass(ceFrontend.getCurrentDeviceSetting(t, n));
|
|
}, t[n + "_delay"] || 0);
|
|
}));
|
|
})
|
|
.on("keydown.ce", ".elementor-field[name=qty]", function (e) {
|
|
13 !== e.keyCode || parseInt(this.value, 10) >= parseInt(this.min, 10) || e.preventDefault();
|
|
})
|
|
.on("keyup.ce", ".elementor-field[name=qty]", function (e) {
|
|
13 === e.keyCode && parseInt(this.value, 10) >= parseInt(this.min, 10) && (this.blur(), ceFrontend.modules.linkActions.actions.closeLightbox());
|
|
})
|
|
.on("click.ce", ".ce-add-to-wishlist", function (e) {
|
|
if ((e.preventDefault(), !window.WishlistEventBus)) return alert("Please install & enable the Wishlist module!");
|
|
if (!prestashop.customer.is_logged) return WishlistEventBus.$emit("showLogin");
|
|
var t,
|
|
n = $(this);
|
|
n.hasClass("elementor-active")
|
|
? (t = productsAlreadyTagged.find(function (e) {
|
|
return e.id_product == n.data("productId") && e.id_product_attribute == n.data("productAttributeId");
|
|
})) &&
|
|
$.post(
|
|
this.href,
|
|
{ action: "deleteProductFromWishlist", params: { idWishList: t.id_wishlist, id_product: t.id_product, id_product_attribute: t.id_product_attribute } },
|
|
function (e) {
|
|
$(".ce-add-to-wishlist[data-product-id=" + t.id_product + "][data-product-attribute-id=" + t.id_product_attribute + "]")
|
|
.removeClass("elementor-active")
|
|
.find("i")
|
|
.attr("class", "fa fa-heart-o"),
|
|
(productsAlreadyTagged = productsAlreadyTagged.filter(function (e) {
|
|
return e.id_product != t.id_product && e.id_product_attribute != t.id_product_attribute;
|
|
})),
|
|
WishlistEventBus.$emit("showToast", { detail: { type: e.success ? "success" : "error", message: e.message } });
|
|
},
|
|
"json"
|
|
)
|
|
: WishlistEventBus.$emit("showAddToWishList", { detail: { forceOpen: !0, productId: n.data("productId"), productAttributeId: n.data("productAttributeId") } });
|
|
})
|
|
.on("click.ce", "[data-link-action=quickview]", function (e) {
|
|
e.preventDefault(), e.stopPropagation(), ceFrontend.modules.linkActions.actions.quickview({});
|
|
})
|
|
.on("click.ce-comments", 'a[href="#product-comments-list-header"]', function (e) {
|
|
var t,
|
|
n = $("#product-comments-list-header"),
|
|
i = n.closest(".elementor-section-tabbed");
|
|
i.length &&
|
|
((t = i
|
|
.find("> .elementor-container > .elementor-row > .elementor-column")
|
|
.toArray()
|
|
.find(function (e) {
|
|
return $(e).find(n).length;
|
|
})),
|
|
i.find("> .elementor-container > .elementor-nav-tabs a").eq($(t).index()).click()),
|
|
$("html, body").animate(
|
|
{ scrollTop: $(i[0] || n[0]).offset().top },
|
|
500,
|
|
"swing",
|
|
$(this).hasClass("elementor-button--post-comment")
|
|
? function () {
|
|
$(".post-product-comment").click();
|
|
}
|
|
: void 0
|
|
),
|
|
e.preventDefault();
|
|
})
|
|
.on("change.ce", '[form="add-to-cart-or-refresh"]', function (e) {
|
|
ceFrontend.refreshProduct(this.form, $(this).closest("#ce-product-quick-view").length);
|
|
})
|
|
.on("input.ce", '[form="add-to-cart-or-refresh"][name=qty]', function () {
|
|
clearTimeout(ceFrontend.refreshProduct.timeout),
|
|
"" !== this.value &&
|
|
(ceFrontend.refreshProduct.timeout = setTimeout(
|
|
function () {
|
|
ceFrontend.refreshProduct(this.form, $(this).closest("#ce-product-quick-view").length);
|
|
}.bind(this),
|
|
200
|
|
));
|
|
}),
|
|
$(function () {
|
|
// $("#js-product-list-header").attr("id", "product-list-header"),
|
|
// ceFrontend.config.productQuickView &&
|
|
// (delete prestashop._events.clickQuickView,
|
|
// prestashop.on("clickQuickView", function (e) {
|
|
// $.post(prestashop.urls.pages.product, { ajax: 1, action: "quickview", id_product: e.dataset.idProduct, id_product_attribute: e.dataset.idProductAttribute, id_ce_theme: ceFrontend.config.productQuickView }, null, "json")
|
|
// .then(function (e) {
|
|
// var t = ceFrontend.utils.lightbox,
|
|
// e = $(e.quickview_html),
|
|
// n = e.filter(".elementor").data("elementorSettings"),
|
|
// i = t.getModal(),
|
|
// o = i.getElements();
|
|
// o.message.removeClass(["zoomIn", n.entrance_animation || "", n.entrance_animation_tablet || "", n.entrance_animation_mobile || ""].join(" ")).addClass(ceFrontend.getCurrentDeviceSetting(n, "entrance_animation")),
|
|
// $('[form="add-to-cart-or-refresh"]').attr("form", "ce-add-to-cart-or-refresh"),
|
|
// $("#add-to-cart-or-refresh").attr("id", "ce-add-to-cart-or-refresh"),
|
|
// t.showModal({ modalOptions: { id: "ce-product-quick-view" }, html: e }),
|
|
// i.off("hide").on("hide", function () {
|
|
// $('[form="ce-add-to-cart-or-refresh"]').attr("form", "add-to-cart-or-refresh"),
|
|
// $("#ce-add-to-cart-or-refresh").attr("id", "add-to-cart-or-refresh"),
|
|
// setTimeout(function () {
|
|
// o.closeButton.prependTo(o.widgetContent), o.message.removeClass([n.entrance_animation || "", n.entrance_animation_tablet || "", n.entrance_animation_mobile || ""].join(" ")), i.setMessage("");
|
|
// }, 400);
|
|
// }),
|
|
// o.message
|
|
// .addClass("elementor-lightbox-prevent-close")
|
|
// .prepend("outside" === n.close_button_position ? null : o.closeButton)
|
|
// .find(".elementor-widget")
|
|
// .each(function () {
|
|
// ceFrontend.elementsHandler.runReadyTrigger(this);
|
|
// });
|
|
// })
|
|
// .fail(function (e) {
|
|
// prestashop.emit("handleError", { eventType: "clickQuickView", resp: e });
|
|
// });
|
|
// }
|
|
// )),
|
|
// window.WishlistEventBus &&
|
|
// WishlistEventBus.$on("addedToWishlist", function (e) {
|
|
// var t = productsAlreadyTagged[productsAlreadyTagged.length - 1];
|
|
// $(".ce-add-to-wishlist[data-product-id=" + t.id_product + "][data-product-attribute-id=" + t.id_product_attribute + "]")
|
|
// .addClass("elementor-active")
|
|
// .find("i")
|
|
// .attr("class", "fa fa-heart");
|
|
// });
|
|
});
|