{"version":3,"file":"perfectPartners-CiKd8Ak9.js","sources":["../../../app/javascript/api/perfectPartners.js","../../../app/javascript/components/shared/HeartFilledSvg.vue","../../../app/javascript/components/shared/HeartSvg.vue","../../../app/javascript/components/shared/PerfectPartners.vue","../../../app/javascript/modules/perfectPartners.js"],"sourcesContent":["import api from \"./index\";\n\nexport default {\n  async index(isStockItem, listingId, productTypeNameId) {\n    return api.post(\"/perfect_partners.json\", {\n      is_stock_item: isStockItem,\n      listing_id: listingId,\n      product_type_name_id: productTypeNameId\n    });\n  }\n};\n","<template>\n  <svg\n    class=\"icon-faveheart-filled\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"16\"\n    height=\"16\"\n    viewBox=\"0 0 256 256\">\n    <path\n      d=\"M240,102c0,70-103.79,126.66-108.21,129a8,8,0,0,1-7.58,0C119.79,228.66,16,172,16,102A62.07,62.07,0,0,1,78,40c20.65,0,38.73,8.88,50,23.89C139.27,48.88,157.35,40,178,40A62.07,62.07,0,0,1,240,102Z\" />\n  </svg>\n</template>\n","<template>\n  <svg\n    class=\"icon-faveheart\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"16\"\n    height=\"16\"\n    fill=\"currentColor\"\n    viewBox=\"0 0 256 256\">\n    <path\n      d=\"M178,40c-20.65,0-38.73,8.88-50,23.89C116.73,48.88,98.65,40,78,40a62.07,62.07,0,0,0-62,62c0,70,103.79,126.66,108.21,129a8,8,0,0,0,7.58,0C136.21,228.66,240,172,240,102A62.07,62.07,0,0,0,178,40ZM128,214.8C109.74,204.16,32,155.69,32,102A46.06,46.06,0,0,1,78,56c19.45,0,35.78,10.36,42.6,27a8,8,0,0,0,14.8,0c6.82-16.67,23.15-27,42.6-27a46.06,46.06,0,0,1,46,46C224,155.61,146.24,204.15,128,214.8Z\" />\n  </svg>\n</template>\n","<template>\n  <div\n    class=\"js-impression-list\"\n    data-situation=\"pdp_add_ons_carousel\"\n    :class=\"{\n      'border-b border-ink-1':\n        perfectPartners.length > 3 && location === 'basket'\n    }\"\n    :data-listing-id=\"analyticsId\">\n    <div\n      v-if=\"perfectPartners.length > 3\"\n      class=\"-mx-4 sm:mx-0 py-7\">\n      <p class=\"typeset-3 md:typeset-2 mb-6 px-4 sm:px-0\">\n        {{ t(\"stock-items.perfect-partners.more-to-love\") }}\n      </p>\n      <div\n        :class=\"`md:grid-cols-${perfectPartners.length}`\"\n        class=\"flex md:grid gap-5 overflow-x-auto md:overflow-hidden px-4 sm:px-0\">\n        <div\n          v-for=\"upsell in perfectPartners\"\n          :key=\"upsell.id\"\n          class=\"flex flex-col flex-no-shrink w-2/5 sm:w-4/5 md:w-auto\">\n          <div\n            class=\"product flex flex-col text-center h-full\"\n            :data-id=\"upsell.analytics_id\">\n            <div class=\"relative mb-3 bg-paper-3\">\n              <div\n                v-tippy=\"favouriteTippy(upsell)\"\n                :class=\"{ active: isFavourited(upsell) }\"\n                class=\"flex absolute favourite-product-container js-favourite-container favourite-listing-container p-3 items-center justify-center text-ink z-1 cursor-pointer bottom-0 right-0\"\n                :data-id=\"upsell.id\"\n                :data-analytics-id=\"`${upsell.id}`\"\n                data-cy=\"favourite-heart\"\n                :data-price=\"upsell.price.formatted_raw_price\"\n                data-type=\"StockItem\">\n                <heart-filled-svg v-if=\"isFavourited(upsell)\" />\n                <heart-svg v-else />\n              </div>\n              <img\n                :src=\"upsell.image\"\n                class=\"img-responsive mb-3 cursor-pointer aspect-ratio-1x1\"\n                @click.prevent=\"openModal(upsell)\" />\n            </div>\n            <div class=\"flex flex-col h-full justify-between\">\n              <h3 class=\"mb-1 typeset-6\">\n                {{ upsell.name }}\n              </h3>\n              <div>\n                <div class=\"flex flex-no-wrap justify-center gap-3 mb-4\">\n                  <h2 class=\"typeset-6 flex-no-shrink\">\n                    {{ upsell.price.actual }}\n                  </h2>\n                  <h2\n                    v-if=\"upsell.price.has_discount\"\n                    class=\"strikethrough bg-sunflower flex-no-shrink px-2 py-1\">\n                    {{ upsell.price.base }}\n                  </h2>\n                </div>\n                <div class=\"mb-4\">\n                  <a\n                    href=\"#\"\n                    class=\"underline inline-flex\"\n                    :aria-label=\"`Find out more about ${upsell.name}`\"\n                    @click.prevent=\"openModal(upsell)\">\n                    {{ t(\"stock-items.perfect-partners.find-out-more\") }}\n                  </a>\n                </div>\n                <btn\n                  :promise=\"addStockItem(upsell)\"\n                  type=\"secondary\"\n                  :aria-label=\"`Add ${upsell.name} to basket`\"\n                  class=\"btn-block px-3 w-full\">\n                  {{ t(\"stock-items.perfect-partners.add-to-basket\") }}\n                </btn>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <upsell-modal\n        v-if=\"modalOpen\"\n        :upsells=\"[activePartner]\"\n        :upsell=\"activePartner\"\n        :close-modal=\"closeModal\"\n        perfect-partners>\n        <btn\n          :promise=\"addStockItem(activePartner)\"\n          class=\"btn-block btn btn-large\">\n          {{ t(\"stock-items.perfect-partners.add-to-basket\") }}\n        </btn>\n      </upsell-modal>\n    </div>\n  </div>\n</template>\n\n<script>\nimport stockItem from \"@/app/javascript/api/stockItem\";\n\nimport Btn from \"@/app/javascript/components/shared/Btn.vue\";\nimport UpsellModal from \"@/app/javascript/components/addOns/extras/multiple/UpsellModal.vue\";\nimport perfectPartners from \"@/app/javascript/api/perfectPartners\";\nimport HeartFilledSvg from \"./HeartFilledSvg.vue\";\nimport HeartSvg from \"./HeartSvg.vue\";\n\nexport default {\n  name: \"PerfectPartners\",\n  components: {\n    Btn,\n    UpsellModal,\n    HeartFilledSvg,\n    HeartSvg\n  },\n  props: {\n    isStockItem: {\n      type: Boolean,\n      default: false\n    },\n    listingId: {\n      type: Number,\n      required: false\n    },\n    analyticsId: {\n      type: String,\n      required: true\n    },\n    productTypeNameId: {\n      type: Number,\n      required: false\n    },\n    location: {\n      type: String,\n      required: false\n    }\n  },\n  data() {\n    return {\n      perfectPartners: [],\n      activePartner: null,\n      favouritedListings: [],\n      modalOpen: false\n    };\n  },\n  computed: {\n    isFavourited() {\n      return item => {\n        return this.favouritedListings.some(\n          ([type, id]) => type === \"StockItem\" && id === parseInt(item.id, 10)\n        );\n      };\n    },\n    favouriteTippy() {\n      return upsell => {\n        return {\n          content: this.tippyText(upsell),\n          theme: \"dark\",\n          placement: \"top\",\n          arrow: true,\n          animation: \"shift-away\",\n          touch: false\n        };\n      };\n    },\n    tippyText() {\n      return upsell => {\n        return this.isFavourited(upsell)\n          ? this.t(\"favourites.remove-from-favourites\")\n          : this.t(\"favourites.add-to-favourites\");\n      };\n    },\n    currentPartner() {\n      return this.perfectPartners.find(\n        partner => partner.id === this.currentPartnerId\n      );\n    }\n  },\n  mounted() {\n    this.fetchPerfectPartners().then(() => {\n      this.$nextTick(() => {\n        const htmlChanged = new Event(\"htmlChanged\");\n        window.dispatchEvent(htmlChanged);\n      });\n    });\n    this.setUpFavouritesListener();\n  },\n  methods: {\n    setUpFavouritesListener() {\n      window.addEventListener(\n        \"addedFavourite\",\n        this.updateFavourites.bind(this)\n      );\n      window.addEventListener(\n        \"removedFavourite\",\n        this.updateFavourites.bind(this)\n      );\n    },\n    updateFavourites() {\n      this.favouritedListings = [...window.favouritedListings];\n    },\n    async fetchPerfectPartners() {\n      const response = await perfectPartners.index(\n        this.isStockItem,\n        this.listingId,\n        this.productTypeNameId\n      );\n      this.perfectPartners = response.data.perfect_partners;\n      this.setCurrentPartner();\n      window.resetFavourites();\n      this.favouritedListings = window.favouritedListings;\n    },\n    setActivePartner(partner) {\n      analytics.track(\"Perfect Partner Open Modal\", {\n        stock_item_id: partner.id\n      });\n      this.activePartner = partner;\n      setTimeout(window.setUpUpsellFlickity, 100);\n    },\n    openModal(upsell) {\n      this.setActivePartner(upsell);\n      this.modalOpen = true;\n    },\n    closeModal() {\n      this.modalOpen = false;\n    },\n    addStockItem(partner) {\n      return () => {\n        return new Promise(resolve => {\n          analytics.track(\"Perfect Partner Add To Cart\", {\n            stock_item_id: partner.id\n          });\n          stockItem\n            .addToCart({\n              stockItem: partner,\n              quantity: 1,\n              isPerfectPartner: true,\n              analyticsId: this.analyticsId\n            })\n            .then(({ data }) => {\n              this.closeModal();\n              if (data.require_login) {\n                const showLoginModalEvent = new Event(\"showLoginModal\");\n                window.dispatchEvent(showLoginModalEvent);\n              } else if (this.location === \"basket\") {\n                window.history.scrollRestoration = \"manual\";\n              } else {\n                window.history.scrollRestoration = \"auto\";\n              }\n              window.location.reload();\n              resolve();\n            });\n        });\n      };\n    },\n    setCurrentPartner() {\n      [this.currentPartnerId] = this.perfectPartners.map(partner => partner.id);\n    }\n  }\n};\n</script>\n","import { createApp } from \"vue\";\n\nimport VueTippy from \"vue-tippy\";\nimport I18n from \"../plugins/i18n\";\nimport PerfectPartners from \"../components/shared/PerfectPartners.vue\";\n\nconst perfectPartners = () => {\n  window.setupPerfectPartners = () => {\n    const node = document.getElementById(\"perfect-partners\");\n    if (!node) return;\n    if (node.hasAttribute(\"data-v-app\")) return;\n\n    const props = JSON.parse(node.dataset.props);\n    const translations = JSON.parse(node.dataset.translations);\n\n    const app = createApp(PerfectPartners, props);\n\n    app.use(I18n, translations);\n    app.use(VueTippy);\n\n    app.mount(node);\n    window.vueApps.push(app);\n  };\n\n  window.setupPerfectPartners();\n};\n\nexport default perfectPartners;\n"],"names":["perfectPartners$1","isStockItem","listingId","productTypeNameId","api","_hoisted_1","_sfc_render","_ctx","_cache","_openBlock","_createElementBlock","_sfc_main","Btn","UpsellModal","HeartFilledSvg","HeartSvg","item","type","id","upsell","partner","htmlChanged","response","perfectPartners","resolve","stockItem","data","showLoginModalEvent","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_13","_hoisted_14","_normalizeClass","$data","$props","_hoisted_2","_createElementVNode","_toDisplayString","_Fragment","_renderList","$options","_createBlock","_component_heart_filled_svg","_component_heart_svg","_directive_tippy","_withModifiers","$event","_hoisted_12","_createCommentVNode","_createVNode","_component_btn","_withCtx","_createTextVNode","_component_upsell_modal","node","props","translations","app","createApp","PerfectPartners","I18n","VueTippy"],"mappings":"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"}