{"version":3,"file":"index-BNk1kzV_.js","sources":["../../../app/components/store/elements/product_content/index.ts"],"sourcesContent":["import { createApp, ref, onMounted } from 'vue';\nimport { createToaster } from '@meforma/vue-toaster';\nimport type { GtmVariant } from '@/types/gtmItem';\nimport { gtmSelectItem, gtmAddToCart } from '@/utils/gtmHelpers';\nimport axios from '@/api/axios';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const productContents = document.querySelectorAll(\n '.c-store-elements-productcontent'\n );\n productContents.forEach(function (productContent) {\n const productId = productContent.getAttribute('data-product-id');\n const firstVariant = document.querySelector(\n '.c-store-elements-productcontent[data-product-id=\"' +\n productId +\n '\"] .product-variants__item.-abled'\n ) as HTMLElement;\n const defaultVariantId = productContent.getAttribute(\n 'data-default-variant-id'\n );\n console.log(defaultVariantId);\n const app = createApp({\n setup() {\n const number = ref(1);\n const selectedVariant = ref();\n const myForm = ref();\n const variant = ref();\n const isFavorite = ref();\n\n onMounted(() => {\n // if (firstVariant == null) {\n // return;\n // }\n // const json = firstVariant.getAttribute('data-variant');\n // const id = firstVariant.getAttribute('data-variant-id');\n // if (id) selectedVariant.value = id;\n // if (json) {\n // variant.value = JSON.parse(json) as GtmVariant;\n // variant.value.quantity = number.value;\n // }\n setDefaultVariant();\n\n isFavorite.value =\n productContent.getAttribute('data-is-favorite') === 'true';\n });\n\n const increment = () => {\n if (number.value >= 10) {\n document\n .getElementsByClassName('increment')[0]\n .classList.add('increment--disabled');\n } else if (number.value >= 1) {\n number.value += 1;\n document\n .getElementsByClassName('decrement')[0]\n .classList.remove('decrement--disabled');\n }\n if (variant.value) variant.value.quantity = number.value;\n };\n\n const decrement = () => {\n if (number.value > 1) {\n number.value -= 1;\n }\n if (number.value == 1) {\n document\n .getElementsByClassName('increment')[0]\n .classList.remove('increment--disabled');\n document\n .getElementsByClassName('decrement')[0]\n .classList.add('decrement--disabled');\n }\n if (variant.value) variant.value.quantity = number.value;\n };\n\n const onSelect = (\n id: string,\n productId: string,\n imageId: string,\n e: Event\n ) => {\n console.log(id);\n selectedVariant.value = id;\n changeSlide(productId, imageId);\n const data = (e.currentTarget as HTMLElement).getAttribute(\n 'data-variant'\n );\n\n if (data) {\n variant.value = JSON.parse(data) as GtmVariant;\n variant.value.quantity = number.value;\n if (variant.value) gtmSelectItem(variant.value);\n }\n };\n\n const changeSlide = (productId: string, imageId: string) => {\n if (imageId == null) return;\n\n const slideIndex = document\n .querySelector('[data-image-id=\"' + imageId + '\"]')\n ?.getAttribute('data-swiper-slide-index');\n const swiperContainer = document.querySelector(\n '[data-product-id=\"' + productId + '\"] .swiper-container'\n ) as HTMLElement;\n const swiperThumbs = document.querySelector(\n '[data-product-id=\"' + productId + '\"] .swiper-thumbs'\n ) as HTMLElement;\n swiperContainer.swiper.slideTo(slideIndex);\n if (swiperThumbs) {\n swiperThumbs.swiper.slideTo(slideIndex);\n }\n };\n\n const toaster = createToaster({\n duration: 8000,\n position: 'top-right',\n });\n\n const onLiked = async (productId: string) => {\n await axios\n .post(`/api/v1/products/${productId}/favorites`)\n .then((res) => {\n if (!res.data) {\n isFavorite.value = false;\n toaster.info('お気に入りから削除しました。');\n } else {\n isFavorite.value = true;\n toaster.info('お気に入り登録しました。');\n }\n });\n };\n\n const onSubmit = () => {\n if (variant.value) gtmAddToCart(variant.value);\n myForm.value?.submit();\n };\n\n const setDefaultVariant = () => {\n if (firstVariant == null) {\n return;\n }\n const json = firstVariant.getAttribute('data-variant');\n const id = firstVariant.getAttribute('data-variant-id');\n console.log(id);\n if (defaultVariantId) {\n selectedVariant.value = defaultVariantId;\n } else if (id) {\n selectedVariant.value = id;\n }\n\n if (json) {\n variant.value = JSON.parse(json) as GtmVariant;\n variant.value.quantity = number.value;\n }\n };\n\n return {\n number,\n isFavorite,\n myForm,\n selectedVariant,\n increment,\n decrement,\n onSelect,\n onLiked,\n onSubmit,\n };\n },\n });\n app.mount(productContent);\n });\n});\n"],"names":["productContent","productId","firstVariant","defaultVariantId","createApp","number","ref","selectedVariant","myForm","variant","isFavorite","onMounted","setDefaultVariant","increment","decrement","onSelect","id","imageId","e","changeSlide","data","gtmSelectItem","slideIndex","_a","swiperContainer","swiperThumbs","toaster","createToaster","onLiked","__async","axios","res","onSubmit","gtmAddToCart","json"],"mappings":"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"}