{
  "version": 3,
  "sources": ["/cdn/shop/t/15/assets/custom.js"],
  "sourcesContent": ["/**\n * * end of cart upsell block part\n */\n$(document).ready(function () {\n  const amountFreeProduct = document.querySelector('[data-treshold-product]') ? document.querySelector('[data-treshold-product]').getAttribute('data-treshold-product') : null\n\n  var cart_total = $(\".gb-totals-total-value\").first().text();\n  if (amountFreeProduct > 0 && show_progress_bar) {\n    /*GB! free product added STARTS*/\n    setTimeout(function () {\n      var cart_total = $(\".gb-totals-total-value\").first().text();\n      if (cart_total >= amountFreeProduct) {\n        if ($(\".cart-item\").hasClass(\"gb-find-remove-product\")) {\n          console.log(\"Free product already in cart\");\n        } else {\n          console.log(\"Adding free product\");\n          $(\".gb-free-product-trigger\").trigger(\"click\");\n        }\n      } else {\n        console.log(\"Removing free product - under threshold\");\n        $(\".gb-remove-product\").trigger(\"click\");\n      }\n    }, 3000);\n    $(\"body\").on(\"click\", \".gb-sumbit-free\", function () {\n      setTimeout(function () {\n\n        if (cart_total >= amountFreeProduct) {\n          if ($(\".cart-item\").hasClass(\"gb-find-remove-product\")) {\n          } else {\n            $(\".gb-free-product-trigger\").trigger(\"click\");\n          }\n        } else {\n          $(\".gb-remove-product\").trigger(\"click\");\n        }\n      }, 3000);\n    });\n\n    // $(\"body\").on(\"click\", \".shop-add-to-cart-button\", function () {\n    //   setTimeout(function () {\n    //     var cart_total = $(\".gb-totals-total-value\").first().text();\n    //     if (cart_total >= amount_free_product) {\n    //       if ($(\".cart-item\").hasClass(\"gb-find-remove-product\")) {\n    //       } else {\n    //         $(\".gb-free-product-trigger\").trigger(\"click\");\n    //       }\n    //     } else {\n    //       $(\".gb-remove-product\").trigger(\"click\");\n    //     }\n    //   }, 3000);\n    // });\n  }\n\n  $(\"body\").on(\n    \"click\",\n    \".gb-shipping-protection-button label.switch\",\n    async (e) => {\n      if (e.target.tagName == \"INPUT\") return;\n      const curElem = document.querySelector(\n        \".gb-shipping-protection-button label.switch\"\n      );\n      const curInputElem = document.querySelector(\n        \".gb-shipping-protection-button label.switch input\"\n      );\n      const spinAnim = document.querySelector(\n        \".gb-shipping-protection-button .spin-animation\"\n      );\n      const checkElem = document.querySelector(\n        \".gb-shipping-protection-button .complete-check\"\n      );\n      if (curElem.classList.contains(\"unchecked\") && !curInputElem.checked) {\n        if (spinAnim.style.display == \"block\" || curInputElem.checked) return;\n\n        // $(\".gb-product-shipping-protection-product-tirgger\").trigger(\"click\");\n        const form = document.querySelector(\"form.shipping-protection-form\");\n\n        const formData = new FormData(form);\n        if (!formData.get(\"id\")) {\n          console.error(\n            \"There is no shipping protection product selected. Please select the shipping product in the global theme settings\"\n          );\n          return;\n        }\n\n        spinAnim.style.display = \"block\";\n\n        try {\n          const response = await fetch(routes.cart_add_url, {\n            method: \"POST\",\n            body: formData,\n            headers: {\n              Accept: \"application/json\",\n              \"X-Requested-With\": \"XMLHttpRequest\",\n            },\n          });\n\n          if (response.ok) {\n            spinAnim.style.display = \"none\";\n\n            checkElem.style.display = \"block\";\n          }\n        } catch (err) {\n          console.error(\"error at shipping protection form submission\", err);\n        }\n        fetch(routes.cart_url + \"?view=drawer\")\n          .then((response) => response.text())\n          .then((html) => {\n            const cartDrawer = document.querySelector(\"#CartDrawer\");\n            const parsedCartHtml = parser.parseFromString(html, \"text/html\");\n            const newCartDrawer = parsedCartHtml.querySelector(\"#CartDrawer\");\n            if (cartDrawer && newCartDrawer) {\n              updateCartDrawer(cartDrawer, newCartDrawer, true, () => {\n                curElem.classList.remove(\"unchecked\");\n                curElem.classList.add(\"checked\");\n                curInputElem.checked = true;\n              });\n            }\n          })\n          .catch((_err) => {\n            curElem.classList.remove(\"unchecked\");\n            curElem.classList.add(\"checked\");\n            curInputElem.checked = true;\n          });\n      } else if (\n        curElem.classList.contains(\"checked\") &&\n        curInputElem.checked\n      ) {\n        checkElem.style.display = \"none\";\n        const cartDrawer = document.querySelector(\"#CartDrawer\");\n        const removeButton = cartDrawer.querySelector(\n          `cart-remove-button[data-id=\"${shippingProductId}\"]`\n        );\n        const shippingItemIndex = removeButton?.dataset.index;\n        if (!removeButton || !shippingItemIndex) {\n          return;\n        }\n\n        const cartItems =\n          cartDrawer.querySelector(\"cart-items\") ||\n          cartDrawer.querySelector(\"cart-drawer-items\");\n\n        const event = new CustomEvent(\"remove-shipping-protection\", {\n          detail: null,\n        });\n        cartItems.updateQuantity(shippingItemIndex, 0, event, \"\", \"\", () => {\n          curElem.classList.remove(\"checked\");\n          curElem.classList.add(\"unchecked\");\n          curInputElem.removeAttribute(\"checked\");\n        });\n      }\n    }\n  );\n\n  $(\"body\").on(\"change\", \".gb-change-variant_id\", function () {\n    var id_change = $(this).find(\":selected\").attr(\"data-variant-id\");\n    if (!id_change) {\n      console.error(\"No data-variant-id found on selected option\");\n      return;\n    }\n    $(this)\n      .closest(\".gb-get-main-freq-pro\")\n      .find(\".product-variant-id\")\n      .val(id_change);\n  });\n});\n\ndocument.addEventListener(\"change\", function (e) {\n  if (\n    e.target.matches(\n      \".cart-drawer .gbfrequently-bought-with-main-whole .select__select\"\n    )\n  ) {\n    const parentBlock = e.target.closest(\".gb-get-main-freq-pro\");\n    if (!parentBlock) {\n      console.log(\"Error: Could not find parent block\");\n      return;\n    }\n\n    const allValues = Array.from(\n      parentBlock.querySelectorAll(\".select__select\")\n    )\n      .map((sel) => sel.value)\n      .join(\" / \");\n\n    const variantSelect = parentBlock.querySelector('[name=\"variants\"]');\n    if (!variantSelect) {\n      console.log(\"Error: Could not find variant selector\");\n      return;\n    }\n\n    const matchedOption = Array.from(variantSelect.options).find((option) =>\n      option.text.includes(allValues)\n    );\n\n    const idInput = parentBlock.querySelector('[name=\"id\"]');\n    if (!idInput) {\n      console.log(\"Error: Could not find id input field\");\n      return;\n    }\n\n    if (matchedOption) {\n      console.log(\"Matched variant option value:\", matchedOption.value);\n      idInput.value = matchedOption.value;\n      console.log(\"Set ID input value to:\", idInput.value);\n    } else {\n      console.log(\"No matching variant found for:\", allValues);\n    }\n  }\n});\n\n// Add validation for form submissions to ensure ID parameter is present\ndocument.addEventListener(\"submit\", function (e) {\n  if (e.target.action && e.target.action.includes(\"/cart/add\")) {\n    const idInput = e.target.querySelector('[name=\"id\"]');\n    if (!idInput || !idInput.value) {\n      console.log(\"Preventing submission - missing id parameter\");\n      e.preventDefault();\n      return false;\n    }\n  }\n});\n\n// Improve cart quantity handlers\n$(document).ready(function () {\n  // Ensure all cart quantity changes include product ID\n  $(\".cart-item .quantity__button, .cart-item .quantity__input\").on(\n    \"click change input\",\n    function () {\n      const cartItem = $(this).closest(\".cart-item\");\n      const variantId = $(this)\n        .closest(\".quantity-input\")\n        .find(\".quantity__input\")\n        .data(\"quantity-variant-id\");\n\n      // If this is a form submission, ensure the ID is included\n      if ($(this).closest(\"form\").length > 0) {\n        let idInput = $(this).closest(\"form\").find('input[name=\"id\"]');\n        if (idInput.length === 0 && variantId) {\n          console.log(\"Adding missing ID input to cart form\");\n          $(\"<input>\")\n            .attr({\n              type: \"hidden\",\n              name: \"id\",\n              value: variantId,\n            })\n            .appendTo($(this).closest(\"form\"));\n        } else if (idInput.length > 0 && variantId) {\n          idInput.val(variantId);\n        }\n      }\n    }\n  );\n\n  // Add validation for cart drawer checkout button\n  $(\"#CartDrawer-Checkout\").on(\"click\", function (e) {\n    const form = $(\"#CartDrawer-Form\");\n    if (form.length === 0) return;\n\n    // Check if there are any items in the cart\n    const cartItems = form.find(\".cart-item\");\n    if (cartItems.length === 0) {\n      console.log(\"No items in cart, preventing checkout\");\n      e.preventDefault();\n      return false;\n    }\n\n    console.log(\"Cart checkout with\", cartItems.length, \"items\");\n  });\n\n  /**\n   * * Prevent redirecting to checkout when pressing enter at quantity input\n   */\n  $(document).on(\"keydown\", \".quantity__input\", function (e) {\n    if (e.key === \"Enter\" || e.keyCode === 13) {\n      e.preventDefault();\n      $(this).trigger(\"blur\");\n    }\n  });\n  // * End of handler\n});\n\n// Fix for frequently bought products add to cart\n$(document).ready(function () {\n  // Find all frequently bought product forms or buttons\n  $(\n    \".gbfrequently-bought-with-main-whole button, .gbfrequently-bought-with-main-whole .gb-sumbit-free, .gb-free-product-trigger, .gb-product-shipping-protection-product-tirgger, .gb-product-sticky-add-to-cart-form\"\n  ).on(\"click\", function (e) {\n    const parentBlock = $(this).closest(\".gb-get-main-freq-pro, form\");\n    if (!parentBlock) {\n      console.error(\n        \"Could not find parent block for frequently bought product\"\n      );\n      return;\n    }\n\n    // Find the product ID input or data attribute\n    let productId = null;\n\n    // Check for direct ID input\n    const idInput = parentBlock.find('input[name=\"id\"]');\n    if (idInput.length > 0 && idInput.val()) {\n      productId = idInput.val();\n    }\n    // Check for variant ID on select\n    else if (parentBlock.find(\".gb-change-variant_id\").length > 0) {\n      const selectedOption = parentBlock.find(\n        \".gb-change-variant_id option:selected\"\n      );\n      if (selectedOption.length > 0) {\n        productId = selectedOption.data(\"variant-id\");\n      }\n    }\n    // Check for product-variant-id input\n    else if (parentBlock.find(\".product-variant-id\").length > 0) {\n      productId = parentBlock.find(\".product-variant-id\").val();\n    }\n    // Check for data attributes on the button itself\n    else if ($(this).data(\"variant-id\")) {\n      productId = $(this).data(\"variant-id\");\n    }\n\n    console.log(\"Frequently bought product add to cart - ID:\", productId);\n\n    if (\n      this.classList.contains(\"gb-free-product-trigger\") &&\n      !show_progress_bar\n    )\n      return;\n\n    // If no product ID found, prevent submission\n    if (!productId) {\n      console.error(\"Missing product ID for frequently bought product\");\n      e.preventDefault();\n      return false;\n    }\n\n    // Update or create the ID input\n    if (idInput.length === 0) {\n      console.log(\"Adding missing ID input to frequently bought product form\");\n      $(\"<input>\")\n        .attr({\n          type: \"hidden\",\n          name: \"id\",\n          value: productId,\n        })\n        .appendTo(parentBlock);\n    } else {\n      idInput.val(productId);\n    }\n\n    // Ensure quantity is included\n    let quantityInput = parentBlock.find('input[name=\"quantity\"]');\n    if (quantityInput.length === 0) {\n      console.log(\n        \"Adding default quantity input to frequently bought product form\"\n      );\n      $(\"<input>\")\n        .attr({\n          type: \"hidden\",\n          name: \"quantity\",\n          value: 1,\n        })\n        .appendTo(parentBlock);\n    } else if (!quantityInput.val() || quantityInput.val() < 1) {\n      quantityInput.val(1);\n    }\n  });\n});\n"],
  "mappings": "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",
  "names": ["cart_total"]
}
