{"version":3,"file":"quickAddGreetingCard-Csz5H23C.js","sources":["../../../app/javascript/components/listings/QuickAddGreetingCard.vue","../../../app/javascript/modules/quickAddGreetingCard.js"],"sourcesContent":["<template>\n  <div>\n    <overlay v-if=\"loading\" />\n    <h3 class=\"typeset-6 mb-3\">\n      {{ t(\"product.quick-add-greeting-card.title\") }}\n    </h3>\n    <div class=\"radio-button-section mb-6\">\n      <radio-input\n        class=\"mb-3\"\n        :current-value=\"selectedOption\"\n        value=\"leaveBlank\"\n        input-id=\"leaveBlank\"\n        :label=\"t('product.quick-add-greeting-card.leave-blank')\"\n        label-class=\"cursor-pointer typeset-7 gap-x-3\"\n        @input=\"selectedOption = 'leaveBlank'\" />\n      <radio-input\n        :current-value=\"selectedOption\"\n        value=\"customise\"\n        input-id=\"customise\"\n        :label=\"t('product.quick-add-greeting-card.add-message')\"\n        label-class=\"cursor-pointer typeset-7 gap-x-3\"\n        @input=\"selectedOption = 'customise'\" />\n    </div>\n    <div class=\"product-page-cta-container\">\n      <div class=\"mb-4 flex\">\n        <a\n          class=\"btn btn-huge btn-primary btn-block js-listing-customise-cta\"\n          :data-method=\"dataMethod\"\n          :href=\"buttonPath\"\n          @click=\"handleClick\">\n          {{ buttonText }}\n        </a>\n      </div>\n      <div class=\"mb-4 hybrid-show compact-show\">\n        <button\n          class=\"btn btn-huge btn-secondary btn-block js-hybrid-full-details\">\n          {{ t(\"hybrid-pdp.cta-text\") }}\n        </button>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport RadioInput from \"@/app/javascript/components/shared/RadioInput.vue\";\nimport Overlay from \"@/app/javascript/components/shared/Overlay.vue\";\n\nexport default {\n  name: \"QuickAddGreetingCard\",\n\n  components: {\n    RadioInput,\n    Overlay\n  },\n  props: {\n    productId: {\n      type: Number,\n      required: true\n    },\n    customisePath: {\n      type: String,\n      required: true\n    },\n    quickAddPath: {\n      type: String,\n      required: true\n    }\n  },\n  data() {\n    return {\n      selectedOption:\n        sessionStorage.getItem(window.location.href) || \"leaveBlank\",\n      loading: false,\n      quickAddIds: []\n    };\n  },\n  computed: {\n    buttonText() {\n      return this.selectedOption === \"customise\"\n        ? this.t(\"product.quick-add-greeting-card.cta-add-message\")\n        : this.t(\"product.quick-add-greeting-card.cta-leave-blank\");\n    },\n    baseButtonPath() {\n      return this.selectedOption === \"customise\"\n        ? this.customisePath\n        : this.quickAddPath;\n    },\n    buttonPath() {\n      if (this.quickAddIds.length) {\n        const url = new URL(this.baseButtonPath, window.location.origin);\n        this.quickAddIds.forEach(id => {\n          url.searchParams.append(\"quick_add_ids[]\", id);\n        });\n        return url.toString();\n      }\n      return this.baseButtonPath;\n    },\n    dataMethod() {\n      return this.selectedOption === \"customise\" ? \"get\" : \"post\";\n    }\n  },\n  watch: {\n    selectedOption(newVal) {\n      sessionStorage.setItem(window.location.href, newVal);\n    }\n  },\n  mounted() {\n    window.addFavourites();\n    window.addEventListener(\"emitUpsellId\", this.setQuickAddIds);\n  },\n  methods: {\n    setQuickAddIds(e) {\n      const id = e.detail;\n      const index = this.quickAddIds.indexOf(id);\n      if (index > -1) {\n        this.quickAddIds.splice(index, 1);\n      } else {\n        this.quickAddIds.push(id);\n      }\n    },\n    handleClick() {\n      if (this.quickAddId) {\n        analytics.track(\"PDP Quick Upsell Added to Cart\");\n        this.loading = true;\n      }\n      this.loading = true;\n    }\n  }\n};\n</script>\n","import { createApp } from \"vue\";\n\nimport I18n from \"../plugins/i18n\";\nimport QuickAddGreetingCard from \"../components/listings/QuickAddGreetingCard.vue\";\n\nconst quickAddGreetingCard = () => {\n  window.setupQuickAddGreetingCard = () => {\n    const node = document.getElementById(\"quick-add-greeting-cards\");\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(QuickAddGreetingCard, props);\n\n    app.use(I18n, translations);\n\n    app.mount(node);\n    window.vueApps.push(app);\n  };\n\n  window.setupQuickAddGreetingCard();\n};\n\nexport default quickAddGreetingCard;\n"],"names":["_sfc_main","RadioInput","Overlay","url","id","newVal","e","index","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_createElementBlock","$data","_openBlock","_createBlock","_component_overlay","_createCommentVNode","_createElementVNode","_toDisplayString","_ctx","_createVNode","_component_radio_input","$options","args","quickAddGreetingCard","node","props","translations","app","createApp","QuickAddGreetingCard","I18n"],"mappings":"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"}