HEX
Server: Apache/2.4.68 (Debian)
System: Linux as-cs-widget-demo-us-central1 6.1.0-44-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
User: root (0)
PHP: 8.2.32
Disabled: NONE
Upload Files
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();
});