{
  "version": 3,
  "sources": ["../../javascript/entrypoints/update-kit-total.js"],
  "sourcesContent": ["import centsToPrice from \"../utilities/centsToPrice\"\n\nimport parseNumber from \"../utilities/parseNumber\"\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  const variants = document.querySelectorAll(\".kit-variant-selector__checkbox\")\n  const checkboxes = document.querySelectorAll(\".kit-checkboxes__checkbox\")\n  const kitTotalEl = document.getElementById(\"kit-total-price\")\n  const currency = kitTotalEl.dataset.currency\n\n  let selectedVariant\n\n  variants.forEach((variant) => {\n    if (variant.querySelector(\"input\").checked) {\n      selectedVariant = variant\n    }\n  })\n\n  variants.forEach((variant) => {\n    variant.addEventListener(\"click\", () => {\n      updateTotalPrice(variant, kitTotalEl)\n\n      if (variant.querySelector(\"input\").checked) {\n        selectedVariant = variant\n      }\n    })\n  })\n\n  checkboxes.forEach((checkbox) => {\n    checkbox.addEventListener(\"click\", () =>\n      updateTotalPrice(selectedVariant, kitTotalEl)\n    )\n  })\n\n  function updateTotalPrice(variant, kitTotalEl) {\n    const variantRadio = variant.querySelector(\"input\")\n    const variantOnSale =\n      variantRadio.dataset.originalPrice !== undefined ? true : false\n    const variantInStock =\n      variantRadio.dataset.inStock === \"true\" ? true : false\n    let accessoriesTotal = 0\n\n    checkboxes.forEach((checkbox) => {\n      if (checkbox.querySelector(\"input\").checked) {\n        const accessoryPrice = parseNumber(\n          checkbox.querySelector(\".kit-checkboxes__price\").innerText.trim(),\n          currency\n        )\n        accessoriesTotal += accessoryPrice\n      }\n    })\n\n    if (variantOnSale && variantInStock) {\n      const variantOriginalPrice = parseNumber(\n        variantRadio.dataset.originalPrice,\n        currency\n      )\n      const variantDiscountedPrice = parseNumber(\n        variantRadio.dataset.discountedPrice,\n        currency\n      )\n\n      const totalOriginalPrice = getTotalPrice(\n        variantOriginalPrice,\n        accessoriesTotal,\n        currency\n      )\n      const totalDiscountedPrice = getTotalPrice(\n        variantDiscountedPrice,\n        accessoriesTotal,\n        currency\n      )\n\n      const discountPercentage = Math.round(\n        (1 - totalDiscountedPrice / totalOriginalPrice) * 100\n      )\n\n      showDiscountElements(\n        totalOriginalPrice,\n        totalDiscountedPrice,\n        discountPercentage,\n        currency\n      )\n      hideOutOfStockNotice()\n      document\n        .querySelector(\".kit-total-price__price-total\")\n        .classList.remove(\"hidden\")\n      document.querySelector(\".product-submit\").classList.remove(\"hidden\")\n      document.querySelector(\".product-trust-icons\").classList.remove(\"hidden\")\n      document\n        .querySelector(\".kit-total-price__selling-price\")\n        .classList.add(\"hidden\")\n    } else if (variantInStock) {\n      hideDiscountElements()\n      hideOutOfStockNotice()\n      document\n        .querySelector(\".kit-total-price__price-total\")\n        .classList.remove(\"hidden\")\n      document.querySelector(\".product-submit\").classList.remove(\"hidden\")\n      document.querySelector(\".product-trust-icons\").classList.remove(\"hidden\")\n      document\n        .querySelector(\".kit-total-price__selling-price\")\n        .classList.remove(\"hidden\")\n\n      const variantPrice = parseNumber(variantRadio.dataset.price, currency)\n      const totalPrice = getTotalPrice(variantPrice, accessoriesTotal, currency)\n      kitTotalEl.innerText = centsToPrice(totalPrice, currency)\n    } else {\n      showOutOfStockNotice()\n      document\n        .querySelector(\".kit-total-price__price-total\")\n        .classList.add(\"hidden\")\n      document.querySelector(\".product-submit\").classList.add(\"hidden\")\n      document.querySelector(\".product-trust-icons\").classList.add(\"hidden\")\n    }\n  }\n})\n\nfunction showDiscountElements(\n  totalOriginalPrice,\n  totalDiscountedPrice,\n  discountPercentage,\n  currency\n) {\n  document.querySelector(\".kit-total-price__original-price\").innerHTML =\n    centsToPrice(totalOriginalPrice, currency)\n  document.querySelector(\".kit-total-price__sale-price\").innerHTML =\n    centsToPrice(totalDiscountedPrice, currency)\n  document.querySelector(\".kit-total-price__savings span\").innerHTML =\n    discountPercentage + \"%\"\n\n  document\n    .querySelector(\".kit-total-price__original-price\")\n    .classList.remove(\"hidden\")\n  document\n    .querySelector(\".kit-total-price__sale-price\")\n    .classList.remove(\"hidden\")\n  document.querySelector(\".kit-total-price__savings\").classList.remove(\"hidden\")\n}\n\nfunction hideDiscountElements() {\n  document\n    .querySelector(\".kit-total-price__original-price\")\n    .classList.add(\"hidden\")\n  document.querySelector(\".kit-total-price__sale-price\").classList.add(\"hidden\")\n  document.querySelector(\".kit-total-price__savings\").classList.add(\"hidden\")\n}\n\nfunction showOutOfStockNotice() {\n  document\n    .querySelector(\".kit-total-price__out-of-stock-notice\")\n    .classList.remove(\"hidden\")\n  document.querySelector(\".product-out-of-stock\").classList.remove(\"hidden\")\n}\n\nfunction hideOutOfStockNotice() {\n  document\n    .querySelector(\".kit-total-price__out-of-stock-notice\")\n    .classList.add(\"hidden\")\n  document.querySelector(\".product-out-of-stock\").classList.add(\"hidden\")\n}\n\nfunction getTotalPrice(variantPrice, accessoriesTotal, currency) {\n  const price = variantPrice + accessoriesTotal\n  return currency === \"JPY\" ? price : price * 100\n}\n"],
  "mappings": "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",
  "names": ["variants", "checkboxes", "kitTotalEl", "currency", "selectedVariant", "variant", "updateTotalPrice", "checkbox", "variantRadio", "variantOnSale", "variantInStock", "accessoriesTotal", "parseNumber_default", "variantOriginalPrice", "variantDiscountedPrice", "totalOriginalPrice", "getTotalPrice", "totalDiscountedPrice", "discountPercentage", "showDiscountElements", "hideOutOfStockNotice", "hideDiscountElements", "variantPrice", "totalPrice", "centsToPrice_default", "showOutOfStockNotice", "price"]
}