File: /var/www/kevin-demo/wp-content/themes/fitmencook/js/custom.js
"use strict";
function _slicedToArray(arr, i) {
return (
_arrayWithHoles(arr) ||
_iterableToArrayLimit(arr, i) ||
_unsupportedIterableToArray(arr, i) ||
_nonIterableRest()
);
}
function _nonIterableRest() {
throw new TypeError(
"Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
);
}
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _iterableToArrayLimit(arr, i) {
var _i =
null == arr
? null
: ("undefined" != typeof Symbol && arr[Symbol.iterator]) ||
arr["@@iterator"];
if (null != _i) {
var _s,
_e,
_x,
_r,
_arr = [],
_n = !0,
_d = !1;
try {
if (((_x = (_i = _i.call(arr)).next), 0 === i)) {
if (Object(_i) !== _i) return;
_n = !1;
} else
for (
;
!(_n = (_s = _x.call(_i)).done) &&
(_arr.push(_s.value), _arr.length !== i);
_n = !0
);
} catch (err) {
(_d = !0), (_e = err);
} finally {
try {
if (!_n && null != _i.return && ((_r = _i.return()), Object(_r) !== _r))
return;
} finally {
if (_d) throw _e;
}
}
return _arr;
}
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
jQuery(document).ready(function ($) {
// 1st carousel, main
$(".carousel-main").flickity({
prevNextButtons: true,
pageDots: false,
adaptiveHeight: true,
});
// 2nd carousel, navigation
$(".carousel-nav").flickity({
asNavFor: ".carousel-main",
contain: true,
pageDots: false,
prevNextButtons: false,
});
// Search Toggle
$(".fmc_toggle_trigger").click(function () {
$(".fmc_toggle_content").slideToggle();
$(this).toggleClass("fmc_toggle_open");
});
// Nav Search Toggle
$(".search_icon").click(function () {
$(".nav_search").animate({
width: "toggle",
});
$(".fmc_header_right a[aria-label='Cart']").animate({
width: "toggle",
});
$(this).toggleClass("fmc_search_open");
$(".fmc_header_right input.orig").focus();
});
// Full Nav Search Toggle
$(".search_icon2, .fmc_full_screen_close").click(function () {
$(".fmc_full_screen_search").fadeToggle();
});
// Mobile navigation toggle
$(".fmc_mm_trigger").click(function () {
$(".fmc_header").slideToggle();
$(".fmc_mobile_header").toggleClass("fmc_nav_open");
});
// Mobile Menu Behaviour
$(".fmc_header ul li.menu-item-has-children > a").after(
"<span class='fmc_submenu_acitvator'></span>"
);
$(".fmc_submenu_acitvator").click(function () {
$(this).toggleClass("sub-open").siblings(".sub-menu").slideToggle();
});
// Category Carousel
$(".carousel-home").flickity({
// options
pageDots: false,
cellAlign: "left",
watchCSS: true,
wrapAround: true,
prevNextButtons: false,
});
// Category Logos
$(".carousel-logos").flickity({
// options
pageDots: false,
cellAlign: "left",
watchCSS: true,
wrapAround: true,
prevNextButtons: false,
});
// Recipe Video
(function ($) {
var $window = $(window);
var $videoWrap = $(".video-wrap");
var $video = $(".fmc_video");
if ($videoWrap.length && $video.length) {
var videoHeight = $video.outerHeight();
$window.on("scroll", function () {
var windowScrollTop = $window.scrollTop();
var videoBottom = videoHeight + $videoWrap.offset().top;
if (windowScrollTop > videoBottom) {
$videoWrap.height(videoHeight);
$video.addClass("stuck");
} else {
$videoWrap.height("auto");
$video.removeClass("stuck");
}
});
}
})(jQuery);
// Count single product price on quantity change
var quantity = $(".quantity .qty");
var unitPrice = $(".fmc_product_unit_price");
var totalPrice = $(".fmc_product_unit_total-js");
var countProductPrice = function countProductPrice(e) {
var currentValue = $(e.currentTarget).val();
var unitPriceValue = unitPrice.data("unit-price");
var total = parseFloat(currentValue * unitPriceValue).toFixed(2);
totalPrice.html(total);
};
quantity.on("change", countProductPrice);
// Validate comment form
if ($.validator !== undefined) {
var commentForm = $("#commentform");
$.validator.addMethod(
"valueNotEquals",
function (value, element, arg) {
console.log(value);
return arg !== value;
},
"Value must not equal arg."
);
commentForm.validate({
rules: {
author: "required",
email: {
required: true,
email: true,
},
comment: "required",
rateRecipe: {
valueNotEquals: "0",
},
},
messages: {
rateRecipe: {
valueNotEquals: "Please select a rating.",
},
},
errorPlacement: function errorPlacement(error, element) {
if (
element.attr("name") == "rateRecipe" ||
element.attr("name") == "rateRecipe"
) {
error.insertAfter(".recipe_rate-wrapper");
} else {
error.insertAfter(element);
}
},
ignore: [],
});
}
// Show rating if checkbox is checked
var ratingCheckbox = $("#use-rating");
var rating = $(".recipe_rate-wrapper");
var ratingSelect = $("#recipe-rate");
var ratingNameAttr = ratingSelect.attr("name");
if ($("[name=postType]").length === 0) {
ratingSelect.attr("name", "");
}
ratingCheckbox.on("change", function () {
if ($(this).prop("checked") === true) {
rating.removeClass("disabled");
ratingSelect.attr("name", ratingNameAttr);
} else {
rating.addClass("disabled");
ratingSelect.attr("name", "");
var recipeValidationError = $("#recipe-rate-error");
if (recipeValidationError.length) recipeValidationError.remove();
}
});
// Open Reviews tab on single product when review is posted
var hash = window.location.hash;
var tabReviews = $("a[href=#tab-reviews]");
if (hash != "" && $(".product").length) {
tabReviews.parent().addClass("active");
setTimeout(function () {
tabReviews.next().attr("style", "");
}, 500);
}
(function ($) {
var plus = ".plus";
var minus = ".minus";
var body = $("body");
function increseQty() {
var val = parseInt($(this).prev("input").val());
var max = parseInt($(this).prev("input").attr("max"));
if (val < max || !max) {
$(this)
.prev("input")
.val(val + 1)
.trigger("change");
}
}
function decreseQty() {
var val = parseInt($(this).next("input").val());
if (val > 1) {
$(this)
.next("input")
.val(val - 1)
.trigger("change");
}
}
body.on("click", minus, decreseQty);
body.on("click", plus, increseQty);
})(jQuery);
// Delete rating for reply
var reply = $(".reply");
reply.on("click", function () {
$(this).parent().next().find("#recipe-rate").remove();
$(this).parent().next().find(".recipe-rate-label").remove();
$(this).parent().next().find(".rateit").remove();
});
// Replace Multiple Recipe text
$(".fmc_recipe_grid_macros .rg_m_amount").text(function () {
return $(this).text().replace("cal", "");
});
$(".rg_macro.calories .rg_m_title").text(function () {
return $(this).text().replace("Calories", "Cal");
});
$(".video-hide").click(function () {
$(".fmc_video").addClass("removed");
});
$(".recipe_mobile_trigger").click(function () {
$(".recipe_mobile_hidden").slideToggle();
$(this).toggleClass("open").text("Show Full Recipe");
$(".recipe_mobile_trigger.open").text("Hide Full Recipe");
});
});
var observer = new IntersectionObserver(
function (_ref) {
var _ref2 = _slicedToArray(_ref, 1),
e = _ref2[0];
return e.target.toggleAttribute("stuck", e.intersectionRatio < 1);
},
{
threshold: [1],
}
);
jQuery(document).ready(function ($) {
$(".ingredient-add-to-cart").click(function (e) {
e.preventDefault();
var button = $(e.currentTarget);
var data = {
product_id: button.data("product-id"),
quantity: button.data("quantity"),
};
$.ajax({
type: "POST",
url: wc_add_to_cart_params.wc_ajax_url
.toString()
.replace("%%endpoint%%", "add_to_cart"),
data: data,
dataType: "json",
beforeSend: function beforeSend(xhr) {},
complete: function complete(res) {},
success: function success(res) {
$(document.body).trigger("added_to_cart", [
res.fragments,
res.cart_hash,
]);
var viewCartButton = $("<a> </a>");
viewCartButton.attr("href", theme.cartUrl);
viewCartButton.addClass("ingredient-add-to-cart-view-cart");
viewCartButton.text("Added To Cart");
button.replaceWith(viewCartButton);
},
});
});
// Jump to recipe class - Used to change the arrow
// var $element1 = $(".jtr_wrap");
// var $element2 = $(".fmc_recipe_card");
// function checkPosition() {
// var element2Position = $element2.offset().top;
// var scrollPosition = $(window).scrollTop() + $(window).height();
// if (scrollPosition >= element2Position) {
// $element1.addClass("passed");
// } else {
// $element1.removeClass("passed");
// }
// }
// $(window).on("scroll resize", checkPosition);
// // Initial check
// checkPosition();
});
("use strict");
jQuery(document).ready(function ($) {
$(".ingredient-add-to-cart").click(function (e) {
e.preventDefault();
var button = $(e.currentTarget);
var data = {
product_id: button.data("product-id"),
quantity: button.data("quantity"),
};
$.ajax({
type: "POST",
url: wc_add_to_cart_params.wc_ajax_url
.toString()
.replace("%%endpoint%%", "add_to_cart"),
data: data,
dataType: "json",
beforeSend: function beforeSend(xhr) {},
complete: function complete(res) {},
success: function success(res) {
$(document.body).trigger("added_to_cart", [
res.fragments,
res.cart_hash,
]);
var viewCartButton = $("<a> </a>");
viewCartButton.attr("href", theme.cartUrl);
viewCartButton.addClass("ingredient-add-to-cart-view-cart");
viewCartButton.text("Added to Cart");
button.replaceWith(viewCartButton);
},
});
});
});
("use strict");
function _typeof(o) {
"@babel/helpers - typeof";
return (
(_typeof =
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator
? function (o) {
return typeof o;
}
: function (o) {
return o &&
"function" == typeof Symbol &&
o.constructor === Symbol &&
o !== Symbol.prototype
? "symbol"
: typeof o;
}),
_typeof(o)
);
}
function _regeneratorRuntime() {
"use strict";
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime =
function _regeneratorRuntime() {
return e;
};
var t,
e = {},
r = Object.prototype,
n = r.hasOwnProperty,
o =
Object.defineProperty ||
function (t, e, r) {
t[e] = r.value;
},
i = "function" == typeof Symbol ? Symbol : {},
a = i.iterator || "@@iterator",
c = i.asyncIterator || "@@asyncIterator",
u = i.toStringTag || "@@toStringTag";
function define(t, e, r) {
return (
Object.defineProperty(t, e, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0,
}),
t[e]
);
}
try {
define({}, "");
} catch (t) {
define = function define(t, e, r) {
return (t[e] = r);
};
}
function wrap(t, e, r, n) {
var i = e && e.prototype instanceof Generator ? e : Generator,
a = Object.create(i.prototype),
c = new Context(n || []);
return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a;
}
function tryCatch(t, e, r) {
try {
return { type: "normal", arg: t.call(e, r) };
} catch (t) {
return { type: "throw", arg: t };
}
}
e.wrap = wrap;
var h = "suspendedStart",
l = "suspendedYield",
f = "executing",
s = "completed",
y = {};
function Generator() {}
function GeneratorFunction() {}
function GeneratorFunctionPrototype() {}
var p = {};
define(p, a, function () {
return this;
});
var d = Object.getPrototypeOf,
v = d && d(d(values([])));
v && v !== r && n.call(v, a) && (p = v);
var g =
(GeneratorFunctionPrototype.prototype =
Generator.prototype =
Object.create(p));
function defineIteratorMethods(t) {
["next", "throw", "return"].forEach(function (e) {
define(t, e, function (t) {
return this._invoke(e, t);
});
});
}
function AsyncIterator(t, e) {
function invoke(r, o, i, a) {
var c = tryCatch(t[r], t, o);
if ("throw" !== c.type) {
var u = c.arg,
h = u.value;
return h && "object" == _typeof(h) && n.call(h, "__await")
? e.resolve(h.__await).then(
function (t) {
invoke("next", t, i, a);
},
function (t) {
invoke("throw", t, i, a);
}
)
: e.resolve(h).then(
function (t) {
(u.value = t), i(u);
},
function (t) {
return invoke("throw", t, i, a);
}
);
}
a(c.arg);
}
var r;
o(this, "_invoke", {
value: function value(t, n) {
function callInvokeWithMethodAndArg() {
return new e(function (e, r) {
invoke(t, n, e, r);
});
}
return (r = r
? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg)
: callInvokeWithMethodAndArg());
},
});
}
function makeInvokeMethod(e, r, n) {
var o = h;
return function (i, a) {
if (o === f) throw new Error("Generator is already running");
if (o === s) {
if ("throw" === i) throw a;
return { value: t, done: !0 };
}
for (n.method = i, n.arg = a; ; ) {
var c = n.delegate;
if (c) {
var u = maybeInvokeDelegate(c, n);
if (u) {
if (u === y) continue;
return u;
}
}
if ("next" === n.method) n.sent = n._sent = n.arg;
else if ("throw" === n.method) {
if (o === h) throw ((o = s), n.arg);
n.dispatchException(n.arg);
} else "return" === n.method && n.abrupt("return", n.arg);
o = f;
var p = tryCatch(e, r, n);
if ("normal" === p.type) {
if (((o = n.done ? s : l), p.arg === y)) continue;
return { value: p.arg, done: n.done };
}
"throw" === p.type && ((o = s), (n.method = "throw"), (n.arg = p.arg));
}
};
}
function maybeInvokeDelegate(e, r) {
var n = r.method,
o = e.iterator[n];
if (o === t)
return (
(r.delegate = null),
("throw" === n &&
e.iterator.return &&
((r.method = "return"),
(r.arg = t),
maybeInvokeDelegate(e, r),
"throw" === r.method)) ||
("return" !== n &&
((r.method = "throw"),
(r.arg = new TypeError(
"The iterator does not provide a '" + n + "' method"
)))),
y
);
var i = tryCatch(o, e.iterator, r.arg);
if ("throw" === i.type)
return (r.method = "throw"), (r.arg = i.arg), (r.delegate = null), y;
var a = i.arg;
return a
? a.done
? ((r[e.resultName] = a.value),
(r.next = e.nextLoc),
"return" !== r.method && ((r.method = "next"), (r.arg = t)),
(r.delegate = null),
y)
: a
: ((r.method = "throw"),
(r.arg = new TypeError("iterator result is not an object")),
(r.delegate = null),
y);
}
function pushTryEntry(t) {
var e = { tryLoc: t[0] };
1 in t && (e.catchLoc = t[1]),
2 in t && ((e.finallyLoc = t[2]), (e.afterLoc = t[3])),
this.tryEntries.push(e);
}
function resetTryEntry(t) {
var e = t.completion || {};
(e.type = "normal"), delete e.arg, (t.completion = e);
}
function Context(t) {
(this.tryEntries = [{ tryLoc: "root" }]),
t.forEach(pushTryEntry, this),
this.reset(!0);
}
function values(e) {
if (e || "" === e) {
var r = e[a];
if (r) return r.call(e);
if ("function" == typeof e.next) return e;
if (!isNaN(e.length)) {
var o = -1,
i = function next() {
for (; ++o < e.length; )
if (n.call(e, o))
return (next.value = e[o]), (next.done = !1), next;
return (next.value = t), (next.done = !0), next;
};
return (i.next = i);
}
}
throw new TypeError(_typeof(e) + " is not iterable");
}
return (
(GeneratorFunction.prototype = GeneratorFunctionPrototype),
o(g, "constructor", {
value: GeneratorFunctionPrototype,
configurable: !0,
}),
o(GeneratorFunctionPrototype, "constructor", {
value: GeneratorFunction,
configurable: !0,
}),
(GeneratorFunction.displayName = define(
GeneratorFunctionPrototype,
u,
"GeneratorFunction"
)),
(e.isGeneratorFunction = function (t) {
var e = "function" == typeof t && t.constructor;
return (
!!e &&
(e === GeneratorFunction ||
"GeneratorFunction" === (e.displayName || e.name))
);
}),
(e.mark = function (t) {
return (
Object.setPrototypeOf
? Object.setPrototypeOf(t, GeneratorFunctionPrototype)
: ((t.__proto__ = GeneratorFunctionPrototype),
define(t, u, "GeneratorFunction")),
(t.prototype = Object.create(g)),
t
);
}),
(e.awrap = function (t) {
return { __await: t };
}),
defineIteratorMethods(AsyncIterator.prototype),
define(AsyncIterator.prototype, c, function () {
return this;
}),
(e.AsyncIterator = AsyncIterator),
(e.async = function (t, r, n, o, i) {
void 0 === i && (i = Promise);
var a = new AsyncIterator(wrap(t, r, n, o), i);
return e.isGeneratorFunction(r)
? a
: a.next().then(function (t) {
return t.done ? t.value : a.next();
});
}),
defineIteratorMethods(g),
define(g, u, "Generator"),
define(g, a, function () {
return this;
}),
define(g, "toString", function () {
return "[object Generator]";
}),
(e.keys = function (t) {
var e = Object(t),
r = [];
for (var n in e) r.push(n);
return (
r.reverse(),
function next() {
for (; r.length; ) {
var t = r.pop();
if (t in e) return (next.value = t), (next.done = !1), next;
}
return (next.done = !0), next;
}
);
}),
(e.values = values),
(Context.prototype = {
constructor: Context,
reset: function reset(e) {
if (
((this.prev = 0),
(this.next = 0),
(this.sent = this._sent = t),
(this.done = !1),
(this.delegate = null),
(this.method = "next"),
(this.arg = t),
this.tryEntries.forEach(resetTryEntry),
!e)
)
for (var r in this)
"t" === r.charAt(0) &&
n.call(this, r) &&
!isNaN(+r.slice(1)) &&
(this[r] = t);
},
stop: function stop() {
this.done = !0;
var t = this.tryEntries[0].completion;
if ("throw" === t.type) throw t.arg;
return this.rval;
},
dispatchException: function dispatchException(e) {
if (this.done) throw e;
var r = this;
function handle(n, o) {
return (
(a.type = "throw"),
(a.arg = e),
(r.next = n),
o && ((r.method = "next"), (r.arg = t)),
!!o
);
}
for (var o = this.tryEntries.length - 1; o >= 0; --o) {
var i = this.tryEntries[o],
a = i.completion;
if ("root" === i.tryLoc) return handle("end");
if (i.tryLoc <= this.prev) {
var c = n.call(i, "catchLoc"),
u = n.call(i, "finallyLoc");
if (c && u) {
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
} else if (c) {
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
} else {
if (!u) throw new Error("try statement without catch or finally");
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
}
}
}
},
abrupt: function abrupt(t, e) {
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
var o = this.tryEntries[r];
if (
o.tryLoc <= this.prev &&
n.call(o, "finallyLoc") &&
this.prev < o.finallyLoc
) {
var i = o;
break;
}
}
i &&
("break" === t || "continue" === t) &&
i.tryLoc <= e &&
e <= i.finallyLoc &&
(i = null);
var a = i ? i.completion : {};
return (
(a.type = t),
(a.arg = e),
i
? ((this.method = "next"), (this.next = i.finallyLoc), y)
: this.complete(a)
);
},
complete: function complete(t, e) {
if ("throw" === t.type) throw t.arg;
return (
"break" === t.type || "continue" === t.type
? (this.next = t.arg)
: "return" === t.type
? ((this.rval = this.arg = t.arg),
(this.method = "return"),
(this.next = "end"))
: "normal" === t.type && e && (this.next = e),
y
);
},
finish: function finish(t) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var r = this.tryEntries[e];
if (r.finallyLoc === t)
return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
}
},
catch: function _catch(t) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var r = this.tryEntries[e];
if (r.tryLoc === t) {
var n = r.completion;
if ("throw" === n.type) {
var o = n.arg;
resetTryEntry(r);
}
return o;
}
}
throw new Error("illegal catch attempt");
},
delegateYield: function delegateYield(e, r, n) {
return (
(this.delegate = { iterator: values(e), resultName: r, nextLoc: n }),
"next" === this.method && (this.arg = t),
y
);
},
}),
e
);
}
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(_next, _throw);
}
}
function _asyncToGenerator(fn) {
return function () {
var self = this,
args = arguments;
return new Promise(function (resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
};
}
var sendPostUrlKlaviyo = /*#__PURE__*/ (function () {
var _ref = _asyncToGenerator(
/*#__PURE__*/ _regeneratorRuntime().mark(function _callee(userEmail) {
var formData, postUrl, request, response;
return _regeneratorRuntime().wrap(
function _callee$(_context) {
while (1)
switch ((_context.prev = _context.next)) {
case 0:
formData = new FormData();
postUrl = location.href;
formData.append("userEmail", userEmail);
formData.append("postUrl", postUrl);
formData.append("action", "klaviyo_email_send");
formData.append("recipeID", theme.recipeID);
_context.prev = 6;
_context.next = 9;
return fetch(theme.ajaxUrl, {
method: "POST",
body: formData,
});
case 9:
request = _context.sent;
_context.next = 12;
return request.json();
case 12:
response = _context.sent;
if (response) {
if (response.success)
console.log(
"Mail from the newsletter form has been successfully sent!"
);
}
_context.next = 19;
break;
case 16:
_context.prev = 16;
_context.t0 = _context["catch"](6);
console.log(_context.t0);
case 19:
case "end":
return _context.stop();
}
},
_callee,
null,
[[6, 16]]
);
})
);
return function sendPostUrlKlaviyo(_x) {
return _ref.apply(this, arguments);
};
})();
window.addEventListener("klaviyoForms", function (e) {
if (e.detail.type == "submit" && theme.formID == e.detail.formId) {
var userEmail = e.detail.metaData.$email;
sendPostUrlKlaviyo(userEmail);
}
});
("use strict");
jQuery(document).ready(function ($) {
// Woo mini cart
var cartWrapper = $(".woo-mini-cart");
var updaterl = theme.ajaxUrl;
var cartInit = function cartInit() {
// Init update
updateCartData();
$(document.body).on("added_to_cart", function () {
updateCartData();
});
$(document.body).on("removed_from_cart", function () {
updateCartData();
});
$(document.body).on("updated_cart_totals", function () {
updateCartData();
});
$(document.body).on("wc_cart_emptied", function () {
updateCartData();
});
};
var updateCartData = function updateCartData() {
cartWrapper.find(".loader").show();
$.ajax({
type: "GET",
url: updaterl,
data: {
action: "woo_minicart_update",
nonce: theme.nonce,
},
success: function success(response) {
if (response.success) {
// Update cart content
if (
typeof response.data.content !== "undefined" &&
response.data.content
) {
cartWrapper
.find(".woo-mini-cart__content")
.html(response.data.content);
}
// Update cart count
if (typeof response.data.count !== "undefined") {
cartWrapper.find(".woo-mini-cart__count").html(response.data.count);
}
}
},
complete: function complete() {
cartWrapper.find(".loader").hide();
},
});
};
// Init Cart
cartInit();
// ini;
});
// function scrollImages() {
// const bigImages = document.querySelectorAll(".big-products-img");
// const emptySpaces = document.querySelectorAll(".fmc-empty-space");
// if (bigImages.length !== emptySpaces.length || window.innerWidth < 1025) {
// return;
// }
// bigImages.forEach((bigImage, index) => {
// const emptySpace = emptySpaces[index];
// if (bigImage && emptySpace) {
// const bigImageStartOffset =
// bigImage.getBoundingClientRect().top + window.scrollY;
// const emptySpaceStartOffset =
// emptySpace.getBoundingClientRect().bottom + window.scrollY;
// let translateValue = 0;
// let scaleValue = 1;
// let rotationValue = 0;
// console.log(bigImageStartOffset);
// console.log(emptySpaceStartOffset);
// window.addEventListener("scroll", function () {
// const scrollPosition = window.scrollY;
// if (scrollPosition > bigImageStartOffset) {
// if (scrollPosition + bigImage.offsetHeight < emptySpaceStartOffset) {
// translateValue = scrollPosition - bigImageStartOffset;
// const progress =
// (scrollPosition - bigImageStartOffset) /
// (emptySpaceStartOffset - bigImageStartOffset);
// scaleValue = 1 - progress * 0.2; // Smanji skaliranje do 0.8
// rotationValue = -progress * 15; // Rotiraj do -15 stepeni
// } else {
// // Zakucaj sliku na empty-space
// translateValue =
// emptySpaceStartOffset -
// bigImageStartOffset -
// bigImage.offsetHeight;
// scaleValue = 0.8;
// rotationValue = -15;
// }
// } else {
// // Zakucaj sliku na početnu poziciju kada se skroluje nagore
// translateValue = -100;
// scaleValue = 1;
// rotationValue = 0;
// }
// // Postavi transformaciju sa dinamičkim stilovima
// bigImage.style.transform = `translate(-50%, -50%)
// translateY(${translateValue + 100}px)
// rotate(${rotationValue}deg) scale(${scaleValue})`;
// });
// }
// });
// }
// document.addEventListener("DOMContentLoaded", scrollImages);
// function scrollImages() {
// const bigImages = document.querySelectorAll(".big-products-img");
// const emptySpaces = document.querySelectorAll(".fmc-empty-space");
// const scrollY0 = window.scrollY;
// if (bigImages.length !== emptySpaces.length || window.innerWidth < 1025) {
// return;
// }
// bigImages.forEach((bigImage, index) => {
// const emptySpace = emptySpaces[index];
// if (bigImage && emptySpace) {
// const bigImageStartOffset =
// bigImage.getBoundingClientRect().top + scrollY0;
// const emptySpaceStartOffset =
// emptySpace.getBoundingClientRect().bottom + scrollY0;
// let translateValue = 0;
// let scaleValue = 1;
// let rotationValue = 0;
// console.log(bigImageStartOffset);
// console.log(emptySpaceStartOffset);
// window.addEventListener("scroll", function () {
// const scrollPosition = window.scrollY;
// if (scrollPosition > bigImageStartOffset) {
// if (scrollPosition + bigImage.offsetHeight < emptySpaceStartOffset) {
// translateValue = scrollPosition - bigImageStartOffset;
// const progress =
// (scrollPosition - bigImageStartOffset) /
// (emptySpaceStartOffset - bigImageStartOffset);
// scaleValue = 1 - progress * 0.2; // Smanji skaliranje do 0.8
// rotationValue = -progress * 15; // Rotiraj do -15 stepeni
// } else {
// console.log(`USAO U ELSE GRANU`);
// // Zakucaj sliku na empty-space
// translateValue =
// emptySpaceStartOffset -
// bigImageStartOffset -
// bigImage.offsetHeight;
// scaleValue = 0.8;
// rotationValue = -15;
// }
// } else {
// // Zakucaj sliku na početnu poziciju kada se skroluje nagore
// translateValue = -100;
// scaleValue = 1;
// rotationValue = 0;
// }
// // Postavi transformaciju sa dinamičkim stilovima
// bigImage.style.transform = `translate(-50%, -50%)
// translateY(${translateValue + 100}px)
// rotate(${rotationValue}deg) scale(${scaleValue})`;
// });
// }
// });
// }
// document.addEventListener("DOMContentLoaded", scrollImages);
// document.addEventListener("DOMContentLoaded", () => {
// gsap.registerPlugin(ScrollTrigger);
// if (window.innerWidth < 1025) return;
// const bigImages = gsap.utils.toArray(".big-products-img");
// const emptySpaces = gsap.utils.toArray(".fmc-empty-space");
// if (bigImages.length !== emptySpaces.length) return;
// bigImages.forEach((bigImage, i) => {
// const emptySpace = emptySpaces[i];
// gsap
// .timeline({
// scrollTrigger: {
// trigger: bigImage,
// start: "top center",
// endTrigger: emptySpace,
// end: "bottom top",
// scrub: true,
// markers: true,
// },
// })
// .to(bigImage, {
// y: () => {
// console.log();
// const startY = bigImage.getBoundingClientRect().top + window.scrollY;
// const endY =
// emptySpace.getBoundingClientRect().bottom +
// window.scrollY -
// bigImage.offsetHeight;
// return endY - startY;
// },
// scale: 0.8,
// rotation: -15,
// ease: "none",
// });
// });
// });
window.addEventListener("load", () => {
gsap.registerPlugin(ScrollTrigger);
if (window.innerWidth < 1025) return;
const bigImages = gsap.utils.toArray(".big-products-img");
const emptySpaces = gsap.utils.toArray(".fmc-empty-space");
if (bigImages.length !== emptySpaces.length) return;
bigImages.forEach((bigImage, i) => {
const emptySpace = emptySpaces[i];
// 1) Izračun distance
const scrollY = window.scrollY;
const startY = bigImage.getBoundingClientRect().top + scrollY;
const endY =
emptySpace.getBoundingClientRect().bottom +
scrollY -
bigImage.offsetHeight;
const distance = endY - startY;
// 2) Postavi centriranje (umesto CSS-a)
gsap.set(bigImage, {
xPercent: -50,
yPercent: -50,
transformOrigin: "50% 50%",
});
// 3) Kreiraj tween sa preciznim end-om
gsap.to(bigImage, {
y: distance,
scale: 0.8,
rotation: -15,
ease: "none",
scrollTrigger: {
trigger: bigImage,
start: "top center",
end: `+=${distance}`,
scrub: 0,
// markers: true
},
});
});
// osveži unutar load-a da bude sigurno
ScrollTrigger.refresh();
});