{"version":3,"file":"UpsellModal-U0Sol_sj.js","sources":["../../../app/javascript/components/addOns/extras/multiple/UpsellModal.vue"],"sourcesContent":["<template>\n <modal\n :open=\"!!upsell\"\n @closed=\"closeModal\">\n <template\n v-if=\"upsell\"\n #header>\n <h3 class=\"typeset-3\">{{ t(\"stock-items.upsells.quick-view\") }}</h3>\n </template>\n <template\n v-if=\"upsell\"\n #body>\n <div class=\"-mx-4\">\n <div class=\"sm:px-8 px-4 m-auto pb-4\">\n <div\n ref=\"imageCarousel\"\n class=\"upsell-carousel relative\">\n <div\n v-for=\"image in upsell.carousel_images\"\n :key=\"image.id\"\n class=\"carousel-cell mb-3\">\n <img\n :src=\"image.full\"\n :alt=\"upsell.name\"\n class=\"product-page-carousel-img img-responsive bg-paper\" />\n </div>\n <div\n v-if=\"upsell.quantity && upsell.quantity > 0\"\n class=\"border-2 border-green absolute top-0 left-0 right-0 bottom-3 z-2 pointer-events-none\">\n <div\n class=\"flex items-center text-white bg-green w-full py-2 justify-center\">\n <svg-icon\n name=\"tick-circle\"\n height=\"12\"\n width=\"12\"\n class=\"mr-3\" />\n <p>\n {{\n t(\"add-ons.flash-messages.added-multiple\", {\n count: upsell.quantity\n })\n }}\n </p>\n </div>\n </div>\n </div>\n </div>\n <div\n v-if=\"perfectPartners || quickView\"\n class=\"text-center mt-3 mb-6\">\n <a\n class=\"underline\"\n :href=\"upsell.slug\">\n {{ t(\"stock-items.upsells.view-full-link\") }}\n </a>\n </div>\n <div class=\"m-auto px-4\">\n <div class=\"flex justify-between items-start mb-5\">\n <div>\n <h2 class=\"typeset-6 mr-3 flex-no-shrink\">{{ upsell.name }}</h2>\n <h2 class=\"typeset-7 mr-3 flex-no-shrink\">\n {{ upsell.product_type_name }}\n </h2>\n </div>\n <div class=\"flex items-center\">\n <h2\n v-if=\"upsell.price.has_discount\"\n class=\"typeset-7 strikethrough bg-sunflower flex-no-shrink p-2 mr-2\">\n {{ upsell.price.base }}\n </h2>\n <h2\n v-if=\"!upsell.painted_door\"\n class=\"typeset-6 mr-3 flex-no-shrink\">\n {{ upsell.price.actual }}\n </h2>\n </div>\n </div>\n </div>\n <h2\n v-if=\"upsells.length > 1\"\n class=\"typeset-6 mr-3 flex-no-shrink px-4 mt-4\">\n {{ t(\"stock-items.upsells.colours\") }}\n </h2>\n <div\n v-if=\"upsells.length > 1\"\n class=\"grid-cols-7 mb-6 grid gap-3 overflow-x-auto px-4\">\n <div\n v-for=\"(variableUpsell, index) in upsells\"\n :key=\"index\">\n <div\n :class=\"{ 'border border-ink': upsell.id === variableUpsell.id }\"\n class=\"variant-attribute-custom-radio relative cursor-pointer border-ink\">\n <div class=\"aspect-ratio-1x1\">\n <div class=\"block h-full w-full object-contain\">\n <img\n :src=\"variableUpsell.image\"\n class=\"img-responsive\"\n :alt=\"variableUpsell.name\"\n @click=\"handleImageClick(index)\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n v-if=\"upsell.highlights\"\n class=\"flex-wrap mb-4 items-end parsed-markdown px-4\">\n <h2 class=\"typeset-6 mr-3 flex-no-shrink mt-4\">\n {{ t(\"product.highlights\") }}\n </h2>\n <p\n class=\"typeset-7\"\n v-html=\"upsell.highlights\"></p>\n </div>\n <div class=\"px-4\">\n <slot></slot>\n </div>\n </div>\n </template>\n </modal>\n</template>\n<script>\nimport Flickity from \"flickity\";\n\nimport Modal from \"../../../shared/Modal.vue\";\nimport SvgIcon from \"../../../shared/SvgIcon.vue\";\n\nexport default {\n name: \"UpsellModal\",\n components: {\n Modal,\n SvgIcon\n },\n props: {\n upsells: {\n type: Array,\n default: () => []\n },\n upsell: {\n type: Object,\n required: true\n },\n closeModal: {\n type: Function,\n default: () => {}\n },\n setCurrentModalImageIndex: {\n type: Function,\n default: () => {}\n },\n perfectPartners: {\n type: Boolean,\n default: false\n },\n quickView: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n flickity: null\n };\n },\n mounted() {\n this.setupCarousel();\n },\n methods: {\n handleImageClick(index) {\n this.setCurrentModalImageIndex(index);\n this.setupCarousel();\n },\n setupCarousel() {\n const carousel = this.$refs.imageCarousel;\n const options = {\n pageDots: true,\n prevNextButtons: true,\n imagesLoaded: true,\n cellSelector: \".carousel-cell\",\n\n // These events work around ios 11.3+ bug\n // https://github.com/metafizzy/flickity/issues/740\n on: {\n dragStart() {\n document.ontouchmove = e => {\n e.preventDefault();\n };\n },\n dragEnd() {\n document.ontouchmove = () => {\n return true;\n };\n }\n }\n };\n\n if (this.flickity) {\n this.flickity.destroy();\n }\n\n setTimeout(() => {\n this.flickity = new Flickity(carousel, options);\n this.flickity.resize();\n }, 10);\n }\n }\n};\n</script>\n"],"names":["_sfc_main","Modal","SvgIcon","index","carousel","options","Flickity","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_5","_hoisted_7","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_23","_hoisted_24","_hoisted_25","_createBlock","_component_modal","$props","_createSlots","_withCtx","_createElementVNode","_toDisplayString","_ctx","_hoisted_4","_openBlock","_createElementBlock","_Fragment","_renderList","image","_hoisted_6","_createVNode","_component_svg_icon","_createCommentVNode","_hoisted_8","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","variableUpsell","_normalizeClass","$event","$options","_hoisted_22","_renderSlot"],"mappings":"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"}