{"version":3,"file":"EnvelopesView-DXKipyLY.js","sources":["../../../app/javascript/components/addOns/envelopes/EnvelopeColourControls.vue","../../../app/javascript/components/addOns/envelopes/EnvelopeColours.vue","../../../app/javascript/components/addressList/AddressListCreateModal.vue","../../../app/javascript/components/addressList/AddressForm.vue","../../../app/javascript/components/addressList/ListAddressEditingArea.vue","../../../app/javascript/components/addressList/ListAddress.vue","../../../app/javascript/components/addressList/AddressListEditModal.vue","../../../app/javascript/components/addOns/envelopes/RecipientAddressingModal.vue","../../../app/javascript/components/addOns/envelopes/RecipientAddressing.vue","../../../app/javascript/utils/unprintableCharacters.js","../../../app/javascript/components/addOns/envelopes/ReturnAddressModal.vue","../../../app/javascript/components/addOns/envelopes/ReturnAddressing.vue","../../../app/javascript/components/addOns/envelopes/EnvelopeAddressingSelection.vue","../../../app/javascript/components/addOns/envelopes/EnvelopeColourSelection.vue","../../../app/javascript/components/addOns/envelopes/EnvelopeColourSelectionComplete.vue","../../../app/javascript/components/addOns/envelopes/EnvelopesFlow.vue","../../../app/javascript/components/addOns/EnvelopesView.vue"],"sourcesContent":["<template>\n <div class=\"flex flex-wrap gap-5 items-start mb-4 items-center\">\n <div\n v-for=\"(option, index) in envelopeType.envelope_options\"\n :key=\"option.id\"\n :class=\"{\n 'border border-ink border-2 p-1 active-circle': swatchActive(\n option,\n index\n ),\n 'bg-white border border-paper-5 border-2': !showThumbnail(option),\n 'cursor-pointer': !swatchActive(option, index)\n }\"\n class=\"h-6 w-6 br-circle overflow-hidden relative\"\n @click.stop=\"selectEnvelopeOption(option, index)\">\n <img\n v-if=\"showThumbnail(option)\"\n :src=\"option.thumb_image\"\n :alt=\"option.name\"\n class=\"block aspect-ratio-1x1 br-circle w-full\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\n\nexport default {\n name: \"EnvelopeColourControls\",\n props: {\n envelopeType: {\n type: Object,\n default: () => {}\n },\n swatchIndexSelected: {\n type: Number,\n required: true\n },\n currentEnvelopeTypeIsActive: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"set-swatch-selected\"],\n computed: {\n ...mapGetters({\n isActive: \"isActiveEnvelopeOption\"\n }),\n showThumbnail() {\n return option => !option.thumb_image.includes(\"missing.png\");\n },\n swatchActive() {\n // We want to retain the previously selected swatch / image if the user\n // changes to a difference envelope type. This ensures this\n return (option, index) => {\n if (!this.isActive(option) && !this.currentEnvelopeTypeIsActive) {\n return this.swatchIndexSelected === index;\n }\n\n return this.isActive(option);\n };\n }\n },\n methods: {\n async selectEnvelopeOption(option, index) {\n if (!this.isActive(option)) {\n await this.$store.dispatch(\"setEnvelopeOption\", option.id);\n\n this.$emit(\"set-swatch-selected\", index);\n }\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.active-circle {\n height: 36px;\n width: 36px;\n}\n</style>\n","<template>\n <li\n :class=\"{ 'border-ink': currentEnvelopeTypeIsActive }\"\n class=\"border-paper-2 border bg-paper-2 cursor-pointer flex-1\"\n @click=\"selectEnvelopeOption(types.envelope_options[0])\">\n <div>\n <img\n :src=\"mainImage\"\n class=\"block w-full aspect-ratio-1x1 bg-paper-3 object-contain\"\n @load=\"$store.commit('setLoading', false)\" />\n </div>\n <div class=\"flex px-4 py-5 gap-4 flex-row sm:flex-col md:flex-row\">\n <radio-input\n :input-id=\"types.name\"\n label-class=\"mt-2\"\n :current-value=\"currentEnvelopeTypeIsActive\"\n :value=\"true\" />\n <div>\n <h2 class=\"mb-4 typeset-6 text-ink\">\n {{ heading }}\n </h2>\n <p class=\"mb-4\">{{ subheading }}</p>\n <envelope-colour-controls\n :envelope-type=\"types\"\n :swatch-index-selected=\"swatchIndexSelected\"\n :current-envelope-type-is-active=\"currentEnvelopeTypeIsActive\"\n @set-swatch-selected=\"setSwatchSelected\" />\n <p\n v-if=\"types.price_per_unit.actual.raw > 0\"\n class=\"typeset-6\">\n +{{ types.price_per_unit.actual.formatted\n }}{{ t(\"add-ons.envelopes.totals.each\") }}\n </p>\n <p\n v-else\n class=\"typeset-6\">\n {{ t(\"add-ons.envelopes.totals.free\") }}\n </p>\n </div>\n </div>\n </li>\n</template>\n\n<script>\nimport { mapGetters, mapState } from \"vuex\";\nimport RadioInput from \"../../shared/RadioInput.vue\";\n\nimport EnvelopeColourControls from \"./EnvelopeColourControls.vue\";\n\nexport default {\n name: \"EnvelopeColours\",\n components: {\n EnvelopeColourControls,\n RadioInput\n },\n props: {\n types: {\n type: Object,\n default: () => {}\n }\n },\n data() {\n return {\n swatchIndexSelected: 0\n };\n },\n computed: {\n ...mapGetters({\n isActive: \"isActiveEnvelopeOption\"\n }),\n ...mapState({\n activeOption: state => state.cartItem.current_envelope_option.option,\n cartItem: state => state.cartItem\n }),\n mainImage() {\n if (this.currentEnvelopeTypeIsActive) {\n return this.activeOption.full_image;\n }\n return this.types.envelope_options[this.swatchIndexSelected].full_image;\n },\n currentEnvelopeTypeIsActive() {\n return this.types.envelope_options.some(\n t => t.id === this.activeOption.id\n );\n },\n heading() {\n return this.t(\n `add-ons.envelopes.colour-controls.heading.${this.types.name.split(\" \").join(\"\").toLowerCase()}`\n );\n },\n subheading() {\n return this.t(\n `add-ons.envelopes.colour-controls.subheading.${this.types.name.split(\" \").join(\"\").toLowerCase()}`\n );\n }\n },\n methods: {\n selectEnvelopeOption(option) {\n if (!this.isActive(option)) {\n this.swatchIndexSelected = 0;\n this.$store.dispatch(\"setEnvelopeOption\", option.id);\n }\n },\n setSwatchSelected(index) {\n this.swatchIndexSelected = index;\n }\n }\n};\n</script>\n","<template>\n <div class=\"px-3 pb-3 pt-0\">\n <div class=\"mb-5\">\n <h4 class=\"typeset-6 mb-3\">{{ t(\"address-lists.upload.title\") }}</h4>\n <p\n v-if=\"responsiveMode\"\n class=\"typeset-7 mb-3\">\n {{ t(\"address-lists.upload.mobile-description\") }}\n </p>\n <template v-else>\n <ul class=\"px-4\">\n <li\n v-for=\"number in 4\"\n :key=\"number\"\n class=\"mb-3\">\n {{ t(`address-lists.upload.description.point-${number}`) }}\n </li>\n </ul>\n <p class=\"typeset-7 mb-3\">\n {{ t(\"address-lists.upload.description\") }}\n </p>\n <a\n class=\"btn btn-secondary mr-2\"\n data-cy=\"download-our-template\"\n @click.prevent=\"downloadTemplate\">\n {{ t(\"address-lists.upload.download\") }}\n </a>\n <a\n href=\"#\"\n class=\"btn btn-primary\"\n data-cy=\"upload-a-spreadsheet\"\n @click.prevent=\"openFileInput\">\n {{ t(\"address-lists.upload.upload\") }}\n </a>\n <input\n ref=\"fileupload\"\n type=\"file\"\n class=\"hidden\"\n accept=\".csv, .xlsx\"\n @change=\"handleFile($event.target.files)\" />\n </template>\n </div>\n <div :class=\"{ 'mb-5': extraOptionsAvailable }\">\n <h4 class=\"typeset-6 mb-3\">{{ t(\"address-lists.manually.title\") }}</h4>\n <p class=\"typeset-7 mb-3\">\n {{ t(\"address-lists.manually.description\") }}\n </p>\n <a\n href=\"#\"\n class=\"btn btn-primary\"\n data-cy=\"manually-create-list\"\n @click.prevent=\"createAddressList\">\n {{ t(\"address-lists.manually.cta\") }}\n </a>\n </div>\n <div\n v-if=\"addressLists.length\"\n :class=\"{ 'mb-3': cartItem.addressable_events.length }\">\n <h4 class=\"typeset-6 mb-3\">{{ t(\"address-lists.existing.title\") }}</h4>\n <p class=\"typeset-7 mb-3\">\n {{ t(\"address-lists.existing.description\") }}\n </p>\n <div class=\"use-list-or-event-container pb-3\">\n <div\n v-for=\"list in addressLists\"\n :key=\"list.id\"\n class=\"bg-paper-3 p-3 pr-4 inline-flex flex-col mr-3 cursor-pointer existing-address-list\"\n @click.prevent=\"setAddressList(list)\">\n <h4 class=\"typeset-7 mb-2\">{{ addressListTitle(list) }}</h4>\n <p class=\"typeset-8\">\n {{\n t(\"address-lists.existing.updated\", { time: list.lastUpdatedAt })\n }}\n </p>\n </div>\n </div>\n </div>\n <div v-if=\"cartItem.addressable_events.length\">\n <h4 class=\"typeset-6 mb-3\">\n {{ t(\"address-lists.planner-event.title\") }}\n </h4>\n <p class=\"typeset-7 mb-3\">\n {{ t(\"address-lists.planner-event.description\") }}\n </p>\n <div class=\"use-list-or-event-container pb-3\">\n <div\n v-for=\"event in cartItem.addressable_events\"\n :key=\"event.id\"\n class=\"bg-paper-3 p-3 pr-4 inline-flex flex-col mr-3 cursor-pointer existing-address-list\"\n @click.prevent=\"createAddressListFromEvent(event)\">\n <h4 class=\"typeset-7 mb-2\">{{ event.name }}</h4>\n <p class=\"typeset-8\">{{ addressCount(event.addresses_count) }}</p>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\nimport axios from \"axios\";\n\nexport default {\n name: \"AddressListCreateModal\",\n emits: [\"close-modal\"],\n computed: {\n ...mapState({\n addressLists: state => state.addressLists.addressLists,\n cartItem: state => state.cartItem,\n locale: state => state.locale,\n responsiveMode: state => state.responsiveMode\n }),\n extraOptionsAvailable() {\n return (\n Math.max(\n this.addressLists.length,\n this.cartItem.addressable_events.length\n ) > 0\n );\n },\n addressListTitle() {\n return list => {\n if (list.eventName) {\n return `${list.eventName} - ${this.addressCount(list.addressCount)}`;\n }\n return this.addressCount(list.addressCount);\n };\n },\n addressCount() {\n return count => {\n if (count === 1) {\n return this.t(\"address-lists.existing.count.single\");\n }\n return this.t(\"address-lists.existing.count.plural\", { count });\n };\n }\n },\n methods: {\n createAddressList() {\n this.$emit(\"close-modal\");\n this.$store.dispatch(\"addressLists/createAddressListForCartItem\");\n },\n openFileInput() {\n this.$refs.fileupload.click();\n },\n async handleFile(files) {\n if (!files.length) return;\n analytics.track(\"Uploaded Spreadsheet\", {\n product_id: `PRODUCT-${this.cartItem.analytics_id}`,\n location: \"Add Ons Envelope\"\n });\n\n this.$emit(\"close-modal\");\n const [file] = files;\n const formData = new FormData();\n // append the file to FormData\n formData.append(\"csv_upload\", file, file.name);\n this.$store.dispatch(\"addressLists/batchUpload\", formData);\n },\n setAddressList({ id }) {\n this.$emit(\"close-modal\");\n this.$store.dispatch(\"addressLists/setAddressListForCartItem\", id);\n },\n downloadTemplate() {\n let templateLocale = \"\";\n if (this.locale === \"en-US\") {\n templateLocale = \"us\";\n } else {\n templateLocale = \"en\";\n }\n axios\n .get(\n `https://d1o785do8fyxgx.cloudfront.net/addresses-${templateLocale}.csv`,\n {\n responseType: \"blob\"\n }\n )\n .then(({ data }) => {\n const blob = new Blob([data], { type: \"text/csv\" });\n const link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(blob);\n link.download = \"address_list_template.csv\";\n link.click();\n })\n .catch(error => {\n console.error(error);\n });\n },\n createAddressListFromEvent({ id }) {\n this.$emit(\"close-modal\");\n this.$store.dispatch(\"addressLists/createAddressListFromEvent\", id);\n }\n }\n};\n</script>\n","<template>\n <form\n class=\"checkout-address-form\"\n autocomplete=\"off\">\n <div class=\"grid grid-cols-2 gap-x-4\">\n <div\n v-for=\"lineNumber in 6\"\n :key=\"lineNumber\">\n <text-input\n v-model=\"address[`line_${lineNumber}`]\"\n :label=\"t(`simple-addresses.form.line-${lineNumber}`)\"\n class=\"mb-4\"\n :data-cy=\"`address-line-${lineNumber}`\"\n :input-id=\"`address_line_${lineNumber}`\"\n :errors=\"maxCharacterCounter(lineNumber)\" />\n </div>\n </div>\n <p\n v-if=\"formErrors['line_count']\"\n class=\"text-red-3 typeset-7\"\n data-cy=\"error-message\">\n {{ formErrors[\"line_count\"][0] }}\n </p>\n </form>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport TextInput from \"../shared/TextInput.vue\";\n\nexport default {\n name: \"AddressForm\",\n components: {\n TextInput\n },\n props: {\n address: {\n type: Object,\n required: true\n }\n },\n computed: {\n ...mapState({\n formErrors: state => state.addressLists.addresses.formErrors\n }),\n maxCharacterCounter() {\n return lineNumber => {\n if (this.address[`line_${lineNumber}`]?.length > 65) {\n return [\n this.t(\"add-ons.envelopes.recipient-addressing.wrap-warning\")\n ];\n }\n return [];\n };\n }\n }\n};\n</script>\n","<template>\n <div>\n <div>\n <address-form :address=\"editingAddress\" />\n </div>\n <div class=\"flex justify-between\">\n <a\n v-if=\"showCancel\"\n href=\"#\"\n class=\"btn btn-secondary\"\n @click.prevent=\"$emit('stop-editing')\">\n {{ t(\"account.addresses.cancel\") }}\n </a>\n <btn\n :promise=\"action()\"\n :data-cy=\"`${actionName.replaceAll(' ', '-').toLowerCase()}`\"\n type=\"primary\">\n {{ actionName }}\n </btn>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport AddressForm from \"./AddressForm.vue\";\nimport Btn from \"../shared/Btn.vue\";\n\nexport default {\n name: \"ListAddressEditingArea\",\n components: {\n AddressForm,\n Btn\n },\n props: {\n address: {\n type: Object,\n default: () => {}\n },\n showCancel: {\n type: Boolean,\n default: true\n }\n },\n emits: [\"stop-editing\"],\n data() {\n return {\n editingAddress: null\n };\n },\n computed: {\n ...mapState({\n activeAddressList: state => state.cartItem.address_list\n }),\n isEditing() {\n // Returns whether we're creating a new address or updating an\n // existing one\n return !!this.editingAddress.id;\n },\n actionName() {\n return this.isEditing\n ? this.t(\"account.addresses.update-address\")\n : this.t(\"account.addresses.create-address\");\n }\n },\n beforeMount() {\n // Clone the prop so that our changes aren't immediately shown\n // and the user has to save to have them persisted\n if (this.address) {\n this.editingAddress = JSON.parse(JSON.stringify(this.address));\n } else {\n this.editingAddress = {\n line_1: \"\",\n line_2: \"\",\n line_3: \"\",\n line_4: \"\",\n line_5: \"\",\n line_6: \"\"\n };\n }\n },\n methods: {\n action() {\n return this.isEditing\n ? this.saveForAddressList()\n : this.createForAddressList();\n },\n createForAddressList() {\n return () =>\n this.$store\n .dispatch(\"addressLists/addresses/create\", {\n addressList: this.activeAddressList,\n address: this.editingAddress\n })\n .then(() => {\n this.$emit(\"stop-editing\");\n });\n },\n saveForAddressList() {\n return () =>\n this.$store\n .dispatch(\"addressLists/addresses/update\", {\n addressList: this.activeAddressList,\n newAddress: this.editingAddress,\n address: this.address\n })\n .then(() => {\n this.$emit(\"stop-editing\");\n });\n }\n }\n};\n</script>\n","<template>\n <div>\n <slide-transition :duration=\"300\">\n <div\n v-if=\"canShowForm\"\n class=\"address-list-form-container bg-paper-3 my-3\">\n <list-address-editing-area\n :address=\"address\"\n @stop-editing=\"closeForm\" />\n </div>\n </slide-transition>\n <slide-transition :duration=\"300\">\n <div v-if=\"!canShowForm\">\n <div class=\"sm:flex items-center p-3\">\n <div\n data-cy=\"recipient-address-list\"\n class=\"flex-1 sm:mr-3 mb-2 sm:mb-0\">\n {{ address.summary }}\n </div>\n <div class=\"inline-flex\">\n <div class=\"mr-4 sm:mr-3\">\n <a\n href=\"#\"\n class=\"btn btn-small btn-secondary\"\n data-cy=\"edit-recipient-address\"\n @click.prevent=\"openForm\">\n {{ t(\"account.addresses.edit\") }}\n </a>\n </div>\n <div>\n <a\n href=\"#\"\n class=\"btn btn-small btn-delete\"\n data-cy=\"delete-recipient-address\"\n @click.prevent=\"handleDelete\">\n {{ t(\"account.addresses.delete\") }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </slide-transition>\n </div>\n</template>\n\n<script>\nimport ListAddressEditingArea from \"./ListAddressEditingArea.vue\";\nimport SlideTransition from \"../transitions/SlideTransition.vue\";\n\nexport default {\n name: \"ListAddress\",\n components: {\n ListAddressEditingArea,\n SlideTransition\n },\n props: {\n address: {\n type: Object,\n required: true\n },\n canBeActive: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"set-active-address-id\", \"deleted\"],\n data() {\n return {\n showForm: false\n };\n },\n computed: {\n canShowForm() {\n return this.canBeActive && this.showForm;\n }\n },\n methods: {\n openForm() {\n this.$emit(\"set-active-address-id\", this.address.id);\n this.showForm = true;\n },\n closeForm() {\n this.$emit(\"set-active-address-id\", null);\n this.showForm = false;\n },\n handleDelete() {\n this.$emit(\"deleted\", this.address);\n }\n }\n};\n</script>\n","<template>\n <div class=\"pb-3 pt-0 relative address-list-edit-modal relative\">\n <fade-transition>\n <overlay\n v-if=\"loading\"\n key=\"loader\"\n absolutely-positioned />\n <div\n v-else\n key=\"addressList\">\n <slide-transition>\n <div\n v-if=\"uploadData\"\n class=\"text-center p-2 pt-3 typeset-7 flex justify-center items-center bg-taupe-1\"\n :class=\"successClass(list)\">\n <svg-icon\n name=\"tick\"\n class=\"mr-3 mb-1\"\n height=\"11px\"\n width=\"11px\" />\n {{\n t(\"address-lists.edit.success\", {\n count: uploadData.success_count,\n fileName: importName\n })\n }}\n <span\n v-if=\"uploadData.errored_count\"\n class=\"ml-2\">\n {{\n t(\"address-lists.edit.errors\", {\n count: uploadData.errored_count\n })\n }}\n </span>\n </div>\n </slide-transition>\n <div\n v-if=\"list.eventName\"\n class=\"text-center p-2 pt-3 mb-4 typeset-7 flex justify-center items-center bg-yellow-1\">\n <svg-icon\n name=\"warning\"\n class=\"mr-3 mb-1 text-orange-2\" />\n {{ t(\"address-lists.planner-event.warning\") }}\n </div>\n <div class=\"list-address-list\">\n <list-address\n v-for=\"(address, index) in addresses\"\n :key=\"address.id\"\n :class=\"{ 'bg-paper-3': index % 2 === 0 }\"\n :address=\"address\"\n :can-be-active=\"activeAddressId === address.id\"\n @deleted=\"deleteAddress($event)\"\n @set-active-address-id=\"setActiveAddressId($event)\" />\n </div>\n <p\n v-if=\"!addresses.length\"\n class=\"typeset-6\">\n {{ t(\"address-lists.edit.add-first\") }}\n </p>\n <slide-transition\n :duration=\"300\"\n @after-leave=\"showButton = true\">\n <list-address-editing-area\n v-if=\"canShowAddressForm\"\n :address=\"addressForCreation\"\n :show-cancel=\"addresses.length > 0\"\n class=\"address-list-form-container bg-paper-3 mt-3\"\n @stop-editing=\"stopEditing\" />\n </slide-transition>\n\n <div v-if=\"canShowButton\">\n <a\n href=\"#\"\n class=\"btn btn-tertiary mt-4\"\n data-cy=\"new-address\"\n @click.prevent=\"createAddress\">\n {{ t(\"address-lists.edit.new-address\") }}\n </a>\n </div>\n </div>\n </fade-transition>\n </div>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport ListAddress from \"./ListAddress.vue\";\nimport ListAddressEditingArea from \"./ListAddressEditingArea.vue\";\nimport FadeTransition from \"../transitions/FadeTransition.vue\";\nimport Overlay from \"../shared/Overlay.vue\";\nimport SlideTransition from \"../transitions/SlideTransition.vue\";\nimport SvgIcon from \"../shared/SvgIcon.vue\";\n\nexport default {\n name: \"AddressListEditModal\",\n components: {\n ListAddress,\n ListAddressEditingArea,\n FadeTransition,\n Overlay,\n SlideTransition,\n SvgIcon\n },\n props: {\n list: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n showAddressForm: false,\n addressForCreation: null,\n activeAddressId: null,\n loading: true,\n showButton: true\n };\n },\n computed: {\n ...mapState({\n addresses: state => state.addressLists.addresses.addresses,\n uploadData: state => state.addressLists.uploadData\n }),\n canShowAddressForm() {\n return this.showAddressForm && !this.activeAddressId;\n },\n canShowButton() {\n return this.showButton && !this.activeAddressId;\n },\n importName() {\n return this.uploadData.file_name || this.uploadData.event_name;\n },\n successClass() {\n return list => (list.eventName ? \"mb-3\" : \"mb-4\");\n }\n },\n beforeMount() {\n this.$store.dispatch(\"addressLists/addresses/index\", this.list).then(() => {\n this.loading = false;\n this.showAddressForm = this.addresses.length === 0;\n this.showButton = !(this.addresses.length === 0);\n });\n },\n methods: {\n createAddress() {\n this.showButton = false;\n this.addressForCreation = null;\n this.activeAddressId = null;\n this.showAddressForm = true;\n },\n stopEditing() {\n this.showButton = true;\n this.addressForCreation = null;\n this.activeAddressId = null;\n this.showAddressForm = false;\n },\n deleteAddress(address) {\n if (window.confirm(this.t(\"address-lists.edit.confirm-delete\"))) {\n this.$store.dispatch(\"addressLists/addresses/delete\", {\n addressList: this.list,\n address\n });\n }\n },\n setActiveAddressId(id) {\n this.showAddressForm = !!id;\n this.activeAddressId = id;\n }\n }\n};\n</script>\n\n<style media=\"screen\">\n.button-fade-in {\n transition-delay: 0.3s;\n}\n</style>\n","<template>\n <modal\n :open=\"modalOpen\"\n :size=\"modalWidth\"\n :requires-interaction=\"!!activeAddressList\"\n @closed=\"hideModal\">\n <template #header>\n <h3\n data-cy=\"recipient-addresses-modal-heading\"\n class=\"typeset-2\">\n {{ t(\"add-ons.envelopes.recipient-addressing.modal-title\") }}\n </h3>\n </template>\n <template #body>\n <address-list-edit-modal\n v-if=\"activeAddressList\"\n :list=\"activeAddressList\"\n @complete=\"hideModal\" />\n <address-list-create-modal\n v-else\n @close-modal=\"hideModal\" />\n </template>\n <template\n v-if=\"activeAddressList\"\n #footer>\n <a\n href=\"#\"\n class=\"btn btn-primary\"\n data-cy=\"close-and-save-changes\"\n @click.prevent=\"closeAndSave\">\n {{ t(\"add-ons.envelopes.recipient-addressing.modal-close\") }}\n </a>\n </template>\n </modal>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport AddressListCreateModal from \"../../addressList/AddressListCreateModal.vue\";\nimport AddressListEditModal from \"../../addressList/AddressListEditModal.vue\";\nimport Modal from \"../../shared/Modal.vue\";\n\nexport default {\n name: \"RecipientAddressingModal\",\n components: {\n AddressListCreateModal,\n AddressListEditModal,\n Modal\n },\n props: {\n modalOpen: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"show-modal\", \"hide-modal\"],\n computed: {\n ...mapState({\n cartItem: state => state.cartItem\n }),\n activeAddressList() {\n return this.cartItem.address_list;\n },\n modalWidth() {\n return this.activeAddressList ? \"large\" : \"\";\n }\n },\n watch: {\n activeAddressList(newValue, oldValue) {\n // for reopening the modal after a list has been created\n if (newValue && !oldValue) {\n // i.e. it was null but is now set\n this.$emit(\"show-modal\");\n }\n }\n },\n methods: {\n hideModal() {\n this.$emit(\"hide-modal\");\n },\n closeAndSave() {\n if (this.activeAddressList.addressCount === 0) {\n this.dispatchRemoveAddressList();\n }\n this.hideModal();\n },\n dispatchRemoveAddressList() {\n this.$store.dispatch(\n \"addressLists/removeAddressListForCartItem\",\n this.activeAddressList\n );\n }\n }\n};\n</script>\n","<template>\n <li class=\"bg-paper-2 w-full sm:w-75\">\n <img\n :src=\"envelopeFront\"\n class=\"block w-full aspect-ratio-1x1 bg-paper-3 object-contain\" />\n <div class=\"px-6 py-4\">\n <h2 class=\"typeset-6 mb-4\">\n {{ t(\"add-ons.envelopes.totals.recipient-addressing\") }}\n </h2>\n <div>\n <p class=\"mb-4\">\n {{ t(\"add-ons.envelopes.recipient-addressing.description\") }}\n </p>\n <p class=\"typeset-6 mb-4\">\n {{ formattedPrice }}\n </p>\n <div v-if=\"activeAddressList\">\n <div\n v-if=\"showExcessiveWarning\"\n class=\"relative bg-red text-white p-2 pl-6 typeset-7 mb-3\">\n <svg-icon\n width=\"17px\"\n height=\"15px\"\n class=\"absolute address-list-warning-icon\"\n name=\"warning\" />\n {{\n t(\"add-ons.envelopes.recipient-addressing.too-many-warning\", {\n quantity: cartItem.envelope_quantity\n })\n }}\n </div>\n <div\n v-else-if=\"cartItem.address_list.addressCount > 0\"\n class=\"bg-forest text-white py-2 mb-3 flex items-center\">\n <svg-icon\n name=\"tick\"\n class=\"mx-3\" />\n <p class=\"-mb-1\">{{ addressCountMessage }}</p>\n </div>\n <a\n href=\"#\"\n class=\"btn btn-block btn-tertiary btn-large mb-3\"\n data-cy=\"edit-address-list\"\n @click.prevent=\"showModal\">\n {{ t(\"add-ons.envelopes.recipient-addressing.edit\") }}\n </a>\n <btn\n :promise=\"removeAddressList()\"\n type=\"delete\"\n data-cy=\"remove-recipient-address\"\n class=\"btn-block btn-large\">\n {{ t(\"add-ons.envelopes.recipient-addressing.remove\") }}\n </btn>\n </div>\n <a\n v-else\n href=\"#\"\n :disabled=\"!loggedIn ? 'disabled' : null\"\n class=\"btn btn-secondary btn-block btn-large ab-envelopes-recipient\"\n data-cy=\"add-or-upload-address\"\n @click.prevent=\"showModal\">\n {{ t(\"add-ons.envelopes.recipient-addressing.add\") }}\n </a>\n <div\n v-if=\"!loggedIn\"\n class=\"mt-3 flex gap-2 items-start text-green\">\n <svg-icon\n class=\"flex-no-shrink\"\n name=\"info\"\n height=\"13px\"\n width=\"13px\" />\n <p class=\"typeset-7\">\n This feature is only available to logged in users. Please\n <span\n class=\"underline cursor-pointer\"\n @click=\"triggerLoginModal\">\n log in\n </span>\n or\n <span\n class=\"underline cursor-pointer\"\n @click=\"triggerRegisterModal\">\n create an account\n </span>\n to access it.\n </p>\n </div>\n <teleport to=\"#end-of-body\">\n <recipient-addressing-modal\n :modal-open=\"modalOpen\"\n @show-modal=\"modalOpen = true\"\n @hide-modal=\"modalOpen = false\" />\n </teleport>\n </div>\n </div>\n </li>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport envelopeFront from \"@/app/javascript/images/envelopes/envelope-front.png\";\n\nimport Btn from \"../../shared/Btn.vue\";\nimport SvgIcon from \"../../shared/SvgIcon.vue\";\nimport RecipientAddressingModal from \"./RecipientAddressingModal.vue\";\n\nexport default {\n name: \"RecipientAddressing\",\n components: {\n Btn,\n SvgIcon,\n RecipientAddressingModal\n },\n data() {\n return {\n modalOpen: false,\n envelopeFront\n };\n },\n computed: {\n ...mapState({\n cartItem: state => state.cartItem,\n loggedIn: state => state.loggedIn\n }),\n activeAddressList() {\n return this.cartItem.address_list;\n },\n formattedPrice() {\n if (this.cartItem.recipient_addressing_prices.potential.raw) {\n return `+ ${\n this.cartItem.recipient_addressing_prices.potential.formatted\n }${this.t(\"add-ons.envelopes.recipient-addressing.each\")}`;\n }\n return this.t(\"add-ons.envelopes.totals.free\");\n },\n showExcessiveWarning() {\n return (\n this.cartItem.envelope_quantity <\n this.cartItem.address_list.addressCount\n );\n },\n addressCountMessage() {\n if (this.cartItem.address_list.addressCount === 1) {\n return this.t(\"add-ons.envelopes.recipient-addressing.added.singular\");\n }\n return this.t(\"add-ons.envelopes.recipient-addressing.added.plural\", {\n quantity: this.cartItem.address_list.addressCount\n });\n }\n },\n watch: {\n activeAddressList(newValue, oldValue) {\n // for reopening the modal after a list has been created\n if (newValue && !oldValue) {\n // i.e. it was null but is now set\n this.showModal();\n }\n }\n },\n methods: {\n showModal() {\n this.modalOpen = true;\n },\n removeAddressList() {\n const vm = this;\n return () => vm.dispatchRemoveAddressList();\n },\n triggerLoginModal() {\n const showLoginModalEvent = new Event(\"showLoginModal\");\n window.dispatchEvent(showLoginModalEvent);\n },\n triggerRegisterModal() {\n const showRegisterModalEvent = new Event(\"showRegisterModal\");\n window.dispatchEvent(showRegisterModalEvent);\n },\n dispatchRemoveAddressList() {\n this.$store.dispatch(\n \"addressLists/removeAddressListForCartItem\",\n this.activeAddressList\n );\n }\n }\n};\n</script>\n","const unprintableCharacters =\n \"!\\\"#$%£'()*+:;<=>?@[\\\\]^_`{|}~\\u2028\\u2029\\u200e\\u200f\\u202a\\u202b\\u202c\\u202d\\u202e\";\n\nexport default unprintableCharacters;\n","<template>\n <modal\n key=\"returnAddressModal\"\n :open=\"open\"\n size=\"small\"\n @closed=\"$emit('closed')\">\n <template #header>\n <h3\n data-cy=\"add-return-address-modal-heading\"\n class=\"typeset-2\">\n {{ modalTitle }}\n </h3>\n </template>\n <template\n v-if=\"Object.keys(editingReturnAddress).length > 0\"\n #body>\n <p class=\"typeset-7 text-ink mb-4\">\n {{ t(\"return-address.modal.description\") }}\n </p>\n <text-input\n v-for=\"(property, index) in Object.keys(blankReturnAddress)\"\n :key=\"property\"\n v-model=\"editingReturnAddress[property]\"\n :class=\"{ 'mb-3': index < Object.keys(blankReturnAddress).length - 1 }\"\n :label=\"t('simple-addresses.form.line-label', { line: index + 1 })\"\n :data-cy=\"`address-line-${index}`\"\n :input-id=\"property\"\n :errors=\"inputFieldErrors(property)\" />\n <p\n v-if=\"formErrors['line_count']\"\n data-cy=\"error-message\"\n class=\"text-red-3\">\n {{ formErrors[\"line_count\"][0] }}\n </p>\n </template>\n <template #footer>\n <div>\n <button\n class=\"btn btn-secondary btn-block mb-3\"\n @click=\"$emit('closed')\">\n {{ t(\"return-address.modal.cancel\") }}\n </button>\n <btn\n :promise=\"action()\"\n class=\"btn-block\"\n data-cy=\"apply-button\"\n type=\"primary\">\n {{ t(\"return-address.modal.save\") }}\n </btn>\n </div>\n </template>\n </modal>\n</template>\n\n<script>\nimport { clone } from \"lodash-es\";\nimport { mapState } from \"vuex\";\n\nimport unprintableCharacters from \"@/app/javascript/utils/unprintableCharacters\";\nimport Btn from \"../../shared/Btn.vue\";\nimport Modal from \"../../shared/Modal.vue\";\nimport TextInput from \"../../shared/TextInput.vue\";\n\nexport default {\n name: \"ReturnAddressModal\",\n components: {\n Btn,\n Modal,\n TextInput\n },\n props: {\n open: {\n type: Boolean,\n required: true\n },\n returnAddress: {\n type: Object,\n required: true\n }\n },\n emits: [\"closed\"],\n data() {\n return {\n returnAddressModalOpen: false,\n editingReturnAddress: {},\n blankReturnAddress: {\n line_1: \"\",\n line_2: \"\",\n line_3: \"\",\n line_4: \"\",\n line_5: \"\",\n line_6: \"\"\n }\n };\n },\n computed: {\n ...mapState({\n cartItem: state => state.cartItem,\n formErrors: state => state.returnAddress.formErrors\n }),\n hasReturnAddress() {\n return this.cartItem.return_address;\n },\n modalTitle() {\n return this.hasReturnAddress\n ? this.t(\"return-address.modal.edit-title\")\n : this.t(\"return-address.modal.add-title\");\n },\n inputFieldErrors() {\n return property => {\n const input = this.editingReturnAddress[property];\n if (input.length > 65) {\n return [this.t(\"add-ons.envelopes.totals.wrap-warning\")];\n }\n const isInvalid = input\n .split(\"\")\n .some(char => unprintableCharacters.includes(char));\n if (isInvalid) {\n return [this.t(\"add-ons.envelopes.totals.character-warning\")];\n }\n return [];\n };\n }\n },\n beforeMount() {\n this.editingReturnAddress = clone(this.returnAddress);\n },\n methods: {\n action() {\n return this.hasReturnAddress\n ? this.updateReturnAddress()\n : this.createReturnAddress();\n },\n createReturnAddress() {\n const vm = this;\n return () =>\n vm.$store\n .dispatch(\n \"returnAddress/createReturnAddress\",\n vm.editingReturnAddress\n )\n .then(() => {\n vm.$emit(\"closed\");\n });\n },\n updateReturnAddress() {\n const vm = this;\n return () =>\n vm.$store\n .dispatch(\n \"returnAddress/updateReturnAddress\",\n vm.editingReturnAddress\n )\n .then(() => {\n vm.$emit(\"closed\");\n });\n }\n }\n};\n</script>\n","<template>\n <li class=\"bg-paper-2 w-full sm:w-75\">\n <img\n :src=\"envelopeBack\"\n class=\"block w-full aspect-ratio-1x1 bg-paper-3 object-contain\" />\n <div class=\"px-6 py-4\">\n <h2 class=\"mb-4 typeset-6\">\n {{ t(\"add-ons.envelopes.totals.return-addressing\") }}\n </h2>\n <div>\n <p class=\"typeset-7 mb-4\">{{ t(\"return-address.description\") }}</p>\n <p class=\"mb-4 typeset-6\">\n {{ formattedPrice }}\n </p>\n <div v-if=\"hasReturnAddress\">\n <p class=\"typeset-7 text-ink mb-2\">\n {{ t(\"return-address.current-return-address\") }}\n </p>\n <p class=\"typeset-8 mb-3\">\n <template v-if=\"returnAddress.line_1\">\n {{ returnAddress.line_1 }}\n <br />\n </template>\n <template v-if=\"returnAddress.line_2\">\n {{ returnAddress.line_2 }}\n <br />\n </template>\n <template v-if=\"returnAddress.line_3\">\n {{ returnAddress.line_3 }}\n <br />\n </template>\n <template v-if=\"returnAddress.line_4\">\n {{ returnAddress.line_4 }}\n <br />\n </template>\n <template v-if=\"returnAddress.line_5\">\n {{ returnAddress.line_5 }}\n <br />\n </template>\n <template v-if=\"returnAddress.line_6\">\n {{ returnAddress.line_6 }}\n </template>\n </p>\n </div>\n <fade-transition mode=\"out-in\">\n <button\n v-if=\"!hasReturnAddress\"\n class=\"btn btn-secondary btn-block btn-large ab-envelopes-return\"\n data-cy=\"add-return-address\"\n @click=\"showReturnAddressModal\">\n {{ t(\"return-address.add-address\") }}\n </button>\n <div v-else>\n <button\n class=\"btn btn-block btn-secondary btn-large mb-3\"\n data-cy=\"edit-return-address\"\n @click=\"showReturnAddressModal\">\n {{ t(\"return-address.edit-address\") }}\n </button>\n <btn\n :promise=\"deleteReturnAddress()\"\n type=\"delete\"\n data-cy=\"delete-return-address\"\n class=\"btn-block btn-large\">\n {{ t(\"return-address.delete-address\") }}\n </btn>\n </div>\n </fade-transition>\n\n <teleport to=\"#end-of-body\">\n <return-address-modal\n v-if=\"returnAddressModalShowing\"\n :open=\"returnAddressModalShowing\"\n :return-address=\"returnAddress\"\n @closed=\"hideReturnAddressModal\" />\n </teleport>\n </div>\n </div>\n </li>\n</template>\n\n<script>\nimport { clone } from \"lodash-es\";\nimport { mapState } from \"vuex\";\n\nimport envelopeBack from \"@/app/javascript/images/envelopes/envelope-back.png\";\n\nimport Btn from \"../../shared/Btn.vue\";\nimport FadeTransition from \"../../transitions/FadeTransition.vue\";\nimport ReturnAddressModal from \"./ReturnAddressModal.vue\";\n\nexport default {\n name: \"ReturnAddressing\",\n components: {\n Btn,\n FadeTransition,\n ReturnAddressModal\n },\n data() {\n return {\n returnAddressModalShowing: false,\n returnAddress: {},\n blankReturnAddress: {\n line_1: \"\",\n line_2: \"\",\n line_3: \"\",\n line_4: \"\",\n line_5: \"\",\n line_6: \"\"\n },\n envelopeBack\n };\n },\n computed: {\n ...mapState({\n cartItem: state => state.cartItem\n }),\n hasReturnAddress() {\n return this.cartItem.return_address;\n },\n formattedPrice() {\n if (this.cartItem.return_addressing_prices.potential.raw) {\n return `+ ${\n this.cartItem.return_addressing_prices.potential.formatted\n }${this.t(\"add-ons.envelopes.recipient-addressing.each\")}`;\n }\n return this.t(\"add-ons.envelopes.totals.free\");\n }\n },\n mounted() {\n this.returnAddress =\n this.cartItem.return_address || clone(this.blankReturnAddress);\n },\n methods: {\n showReturnAddressModal() {\n this.returnAddressModalShowing = true;\n },\n hideReturnAddressModal() {\n this.returnAddressModalShowing = false;\n this.returnAddress =\n this.cartItem.return_address || clone(this.blankReturnAddress);\n },\n deleteReturnAddress() {\n return () =>\n this.$store.dispatch(\"returnAddress/deleteReturnAddress\").then(() => {\n this.returnAddress = clone(this.blankReturnAddress);\n });\n }\n }\n};\n</script>\n","<template>\n <div class=\"mt-6\">\n <div class=\"-mx-4 md:flex justify-center pb-3 mb-5\">\n <div class=\"w-full\">\n <ul\n class=\"flex list-unstyled flex-col sm:flex-row justify-center gap-5\">\n <recipient-addressing v-if=\"cartItem.recipient_addressing_enabled\" />\n <return-addressing v-if=\"cartItem.return_addressing_enabled\" />\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport RecipientAddressing from \"./RecipientAddressing.vue\";\nimport ReturnAddressing from \"./ReturnAddressing.vue\";\n\nexport default {\n name: \"EnvelopeAddressingSelection\",\n components: {\n RecipientAddressing,\n ReturnAddressing\n },\n computed: {\n ...mapState({\n cartItem: state => state.cartItem\n })\n }\n};\n</script>\n","<template>\n <div class=\"mt-6\">\n <div class=\"md:flex justify-center pb-3\">\n <div\n class=\"w-full\"\n :class=\"{ 'md:w-3/5': envelopeTypesWithOptions.length < 3 }\">\n <ul\n class=\"flex list-unstyled flex-col sm:flex-row justify-center gap-5\">\n <envelope-colours\n v-for=\"types in envelopeTypesWithOptions\"\n :key=\"types.id\"\n :types=\"types\" />\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport EnvelopeColours from \"./EnvelopeColours.vue\";\n\nexport default {\n name: \"EnvelopeColourSelection\",\n components: {\n EnvelopeColours\n },\n computed: {\n ...mapState({\n envelopeTypes: state => state.cartItem.envelope_types\n }),\n envelopeTypesWithOptions() {\n return this.envelopeTypes.filter(type => type.envelope_options.length);\n },\n ...mapState({\n cartItem: state => state.cartItem\n })\n }\n};\n</script>\n","<template>\n <div class=\"flex sm:justify-end py-2\">\n <div\n class=\"flex sm:gap-4 md:gap-7 items-center relative sm:top-6 sm:absolute mt-4 sm:mt-0\">\n <div class=\"flex items-center gap-4 sm:gap-3 md:gap-4\">\n <div\n class=\"h-6 w-6 br-circle border border-ink border-2 p-1\"\n :class=\"{\n 'bg-white border border-paper-5 border-2':\n !showThumbnail(activeOption)\n }\">\n <img\n v-if=\"showThumbnail(activeOption)\"\n :src=\"activeOption.option.thumb_image\"\n :alt=\"activeOption.option.name\"\n class=\"block aspect-ratio-1x1 br-circle w-full\" />\n </div>\n <div class=\"flex flex-col sm:gap-4 sm:flex-row\">\n <p class=\"typeset-6\">{{ title }}</p>\n <p\n v-if=\"activeOption.type.price_per_unit.actual.raw > 0\"\n class=\"typeset-6\">\n +{{ activeOption.type.price_per_unit.actual.formatted\n }}{{ t(\"add-ons.envelopes.totals.each\") }}\n </p>\n <p\n v-else\n class=\"typeset-6\">\n {{ t(\"add-ons.envelopes.totals.free\") }}\n </p>\n </div>\n </div>\n <button\n class=\"bg-transparent underline p-0 cursor-pointer hidden sm:block text-ink\">\n {{ t(\"add-ons.envelopes.edit\") }}\n </button>\n </div>\n <button\n class=\"bg-transparent underline p-0 cursor-pointer absolute right-5 sm:hidden text-ink\"\n style=\"top: 39px\">\n {{ t(\"add-ons.envelopes.edit\") }}\n </button>\n </div>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nexport default {\n name: \"EnvelopeColourSelectionComplete\",\n emits: [\"envelope-changed\"],\n computed: {\n ...mapState({\n activeOption: state => state.cartItem.current_envelope_option\n }),\n title() {\n return `${this.activeOption.type.name} Envelopes`;\n },\n showThumbnail() {\n return activeOption =>\n !activeOption.option.thumb_image.includes(\"missing.png\");\n }\n }\n};\n</script>\n","<template>\n <div class=\"lg:px-10 m-auto\">\n <a\n :href=\"backToEditor\"\n class=\"my-4 block underline cursor-pointer\">\n {{ t(\"add-ons.back-to-editor\") }}\n </a>\n <h1 class=\"typeset-2 my-4 sm:mb-6\">\n {{ t(\"add-ons.envelopes.title\") }}\n </h1>\n <accordion class=\"relative -mx-4 px-4 sm:px-0 sm:mx-0 sm:mb-7 pb-9 sm:pb-0\">\n <transition-group appear>\n <accordion-section\n v-for=\"(section, index) in sections\"\n :key=\"index\"\n ref=\"accordionSectionChildren\"\n :number=\"index + 1\"\n bg-classes=\"bg-paper-1\"\n :name=\"section.title\"\n :last=\"index + 1 == sections.length\"\n :hide-numbering=\"sections.length === 1\"\n :active=\"active(index)\"\n :complete=\"setComplete(index)\"\n section-clickable\n title-classes=\"mt-3\"\n :can-edit=\"false\"\n :style=\"{ transitionDelay: `${index * 100}ms` }\"\n @edit=\"edit(index)\">\n <slide-transition @after-enter=\"scrollToSection\">\n <component\n :is=\"section.component\"\n v-if=\"active(index)\"\n :active=\"active(index)\" />\n </slide-transition>\n <slide-transition>\n <component\n :is=\"section.completedComponent\"\n v-if=\"setComplete(index)\" />\n </slide-transition>\n </accordion-section>\n </transition-group>\n </accordion>\n <div\n class=\"sticky bottom-0 force-full-width glass flex justify-center items-center py-4\">\n <button\n data-cy=\"complete-section\"\n class=\"btn btn-large btn-primary block sm:inline-block\"\n @click=\"completeSection()\">\n {{ t(`add-ons.envelopes.ctas.${ctaText}`) }}\n </button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport Accordion from \"@/app/javascript/components/shared/Accordion.vue\";\nimport AccordionSection from \"@/app/javascript/components/shared/AccordionSection.vue\";\nimport SlideTransition from \"@/app/javascript/components/transitions/SlideTransition.vue\";\n\nimport EnvelopeColours from \"./EnvelopeColours.vue\";\nimport RecipientAddressing from \"./RecipientAddressing.vue\";\nimport ReturnAddressing from \"./ReturnAddressing.vue\";\nimport EnvelopeAddressingSelection from \"./EnvelopeAddressingSelection.vue\";\nimport EnvelopeColourSelection from \"./EnvelopeColourSelection.vue\";\nimport EnvelopeColourSelectionComplete from \"./EnvelopeColourSelectionComplete.vue\";\n\nexport default {\n name: \"EnvelopesFlow\",\n components: {\n EnvelopeColours,\n RecipientAddressing,\n ReturnAddressing,\n Accordion,\n AccordionSection,\n SlideTransition,\n EnvelopeAddressingSelection,\n EnvelopeColourSelection,\n EnvelopeColourSelectionComplete\n },\n data() {\n return {\n activeIndex: 0,\n shouldSkipUpsells: false\n };\n },\n computed: {\n ...mapState({\n cartItem: state => state.cartItem,\n backToEditor: state => state.cartItem.back_to_editor_path,\n hasRealUpsells: state => state.cartItem.has_real_potential_upsells,\n basketPath: state => state.paths.basketPath\n }),\n topElement() {\n return this.$refs.accordionSectionChildren[0].$refs.accordionSection;\n },\n marginOffset() {\n return parseInt(getComputedStyle(this.topElement).marginBottom, 10);\n },\n closedDrawerHeight() {\n return index => {\n return this.$refs.accordionSectionChildren[\n index\n ].$refs.accordionSection.getBoundingClientRect().height;\n };\n },\n active() {\n return index => {\n return index === this.activeIndex;\n };\n },\n envelopeColourSection() {\n return {\n title: this.t(\"add-ons.envelopes.colour-section.title\"),\n component: \"EnvelopeColourSelection\",\n completedComponent: \"EnvelopeColourSelectionComplete\"\n };\n },\n ctaText() {\n return this.lastSection ? \"next-page\" : \"next-section\";\n },\n lastSection() {\n return this.activeIndex === this.sections.length - 1;\n },\n envelopeAddressSection() {\n return {\n title: this.t(\"add-ons.envelopes.address-section.title\"),\n component: \"EnvelopeAddressingSelection\"\n };\n },\n sections() {\n if (this.cartItem.has_envelope_options) {\n return [this.envelopeColourSection, this.envelopeAddressSection];\n }\n\n return [this.envelopeAddressSection];\n },\n setComplete() {\n return index => {\n // This is a bit fiddly but for a smooth transition in the accordion we need to not show the complete component for index(1)\n // Because it doesn't have a complete component to show\n\n return (\n this.activeIndex > index || (this.activeIndex === 0 && index !== 0)\n );\n };\n }\n },\n mounted() {\n const editFromBasket = localStorage.getItem(\"editFromBasket\");\n if (parseInt(editFromBasket, 10) === this.cartItem.id) {\n this.shouldSkipUpsells = true;\n }\n localStorage.removeItem(\"editFromBasket\");\n },\n methods: {\n handleRoute() {\n if (this.hasRealUpsells && !this.shouldSkipUpsells) {\n this.$router.push(`/cart_items/${this.cartItem.id}/add_ons/extras`);\n window.scrollTo(0, 0);\n } else {\n window.location = this.basketPath;\n }\n },\n scrollToSection() {\n const element =\n this.$refs.accordionSectionChildren[this.activeIndex].$refs\n .accordionSection;\n\n element.scrollIntoView({ behavior: \"smooth\" });\n },\n edit(index) {\n if (this.activeIndex === index) return;\n\n this.activeIndex = index;\n },\n completeSection() {\n if (this.activeIndex + 1 < this.sections.length) {\n this.activeIndex += 1;\n return;\n }\n\n this.handleRoute();\n }\n }\n};\n</script>\n","<template>\n <div v-if=\"canShow\">\n <envelopes-flow />\n </div>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\n\nimport EnvelopesFlow from \"./envelopes/EnvelopesFlow.vue\";\n\nexport default {\n name: \"EnvelopesView\",\n components: {\n EnvelopesFlow\n },\n data() {\n return {\n canShow: false\n };\n },\n computed: {\n ...mapState({\n cartItem: state => state.cartItem,\n responsiveMode: state => state.responsiveMode,\n basketPath: state => state.paths.basketPath\n })\n },\n beforeMount() {\n const editFromBasket = localStorage.getItem(\"editFromBasket\");\n\n if (this.cartItem.can_choose_envelopes) {\n this.canShow = true;\n } else if (parseInt(editFromBasket, 10) === this.cartItem.id) {\n localStorage.removeItem(\"editFromBasket\");\n window.location = this.basketPath;\n } else {\n this.$router.replace(`/cart_items/${this.cartItem.id}/add_ons/extras`);\n }\n }\n};\n</script>\n"],"names":["_sfc_main","mapGetters","option","index","_hoisted_1","_hoisted_2","_hoisted_3","_openBlock","_createElementBlock","_Fragment","_renderList","$props","_normalizeClass","$options","_withModifiers","$event","_createCommentVNode","EnvelopeColourControls","RadioInput","mapState","state","t","_hoisted_4","_cache","_createElementVNode","_ctx","_createVNode","_component_radio_input","_toDisplayString","_component_envelope_colour_controls","$data","_hoisted_5","_hoisted_6","list","count","files","file","formData","id","templateLocale","axios","data","blob","link","error","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","number","args","_hoisted_15","event","TextInput","lineNumber","_a","_component_text_input","AddressForm","Btn","_component_address_form","_component_btn","_withCtx","_createTextVNode","ListAddressEditingArea","SlideTransition","_component_slide_transition","_component_list_address_editing_area","ListAddress","FadeTransition","Overlay","SvgIcon","address","_component_fade_transition","_createBlock","_component_overlay","_component_svg_icon","_component_list_address","AddressListCreateModal","AddressListEditModal","Modal","newValue","oldValue","_component_modal","_createSlots","_component_address_list_edit_modal","_component_address_list_create_modal","RecipientAddressingModal","envelopeFront","vm","showLoginModalEvent","showRegisterModalEvent","_Teleport","_component_recipient_addressing_modal","unprintableCharacters","property","input","char","clone","ReturnAddressModal","envelopeBack","_component_return_address_modal","RecipientAddressing","ReturnAddressing","_component_recipient_addressing","_component_return_addressing","EnvelopeColours","type","types","_component_envelope_colours","activeOption","Accordion","AccordionSection","EnvelopeAddressingSelection","EnvelopeColourSelection","EnvelopeColourSelectionComplete","editFromBasket","_component_accordion","_TransitionGroup","section","_component_accordion_section","_normalizeStyle","_resolveDynamicComponent","EnvelopesFlow","_component_envelopes_flow"],"mappings":"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"}