{"version":3,"file":"OneClickUpgrade.4423efe1.js","sources":["../../../resources/js/components/OneClickSubscription.vue","../../../resources/js/mixins/OneClickUpgrade.js"],"sourcesContent":["\n \n \n {{ plan.display }}\n \n \n {{ plan.description }}\n \n \n\n\n\n\n\n","import { mapGetters, mapState } from 'vuex'\nimport { dangerToast } from '../helpers/toasts'\n\nexport default {\n computed: {\n ...mapGetters({\n isLoggedIn: 'user/isLoggedIn',\n hasSubscription: 'subscription/hasSubscription',\n hasPlans: 'subscription/hasPlans',\n publishing: 'document/onpublishing',\n }),\n ...mapState(['user', 'subscription', 'document']),\n current_plan() {\n return this.getPlan(this.subscription.one_click_content.plan_category) ?? {}\n },\n sisterSite() {\n return !this.subscription.has_other_site_subscription\n ? ''\n : this.subscription.has_other_site_subscription == 'CH'\n ? `My Crossword Maker`\n : `My Word Search`\n },\n sisterSiteUrl() {\n return !this.subscription.has_other_site_subscription\n ? ''\n : this.subscription.has_other_site_subscription == 'CH'\n ? window.crossword_url\n : window.wordsearch_url\n },\n },\n data() {\n return {\n frequency_change_success: false,\n subscription_status_loading: false,\n one_click_upgrade: {\n plan: null,\n subscriptionCycle: 'yearly',\n success_feedback:\n 'Your plan has been updated and will begin automatically when your current subscription ends. You can continue to use all features, but won’t be charged until your next scheduled billing date.',\n renewal_msg: '',\n },\n }\n },\n methods: {\n getPriceDifferential(plan) {\n const new_plan = this.getPlan(plan)\n\n if (Object.keys(this.current_plan).length === 0)\n return `$${this.subscriptionAmount(new_plan.amount_in_cents / 100)}`\n\n if (new_plan?.name?.toLowerCase() === this.current_plan?.name?.toLowerCase())\n return `$${this.subscriptionAmount(new_plan.amount_in_cents / 100)}`\n\n const diff = this.current_plan.amount_in_cents - new_plan.amount_in_cents\n\n return diff > 0\n ? `$${this.subscriptionAmount(Math.abs(diff) / 100)} less`\n : `$${this.subscriptionAmount(Math.abs(diff) / 100)} extra`\n },\n getPlan(plan) {\n if (!plan) return null\n\n if (this.subscription_status_loading) return {}\n\n let brand = this.brand\n if (this.brand?.toLowerCase() == 'flashcard') brand = 'flashcards'\n if (this.brand?.toLowerCase() == 'account') brand = 'worksheet'\n\n if (['basic', 'standard'].includes(plan.toLowerCase()))\n return this.subscription.plans[plan][brand][this.subscription.one_click_content.plan_frequency]\n if (plan.toLowerCase() == 'premium')\n return this.subscription.plans[plan][this.subscription.one_click_content.plan_frequency]\n\n return this.subscription.plans[plan]\n },\n setUpgradeOption(option) {\n if (this.subscription_status_loading) return {}\n\n const plan = this.getPlan(option.type)\n return {\n ...option,\n ...{\n description: option.description\n .replaceAll('[price]', this.getPriceDifferential(option.type))\n .replaceAll(\n '[frequency]',\n this.subscription.one_click_content.plan_frequency == 'yearly' ? 'year' : 'month',\n ),\n },\n id: plan.id,\n }\n },\n setPlanDetails(description) {\n if (this.subscription_status_loading) return ''\n\n if (Object.keys(this.current_plan).length === 0) return description.replaceAll('[site_name]', this.sisterSite)\n\n return description\n .replaceAll('[price]', `$${this.subscriptionAmount(this.current_plan.amount_in_cents / 100)}`)\n .replaceAll('[frequency]', this.subscription.one_click_content.plan_frequency == 'yearly' ? 'year' : 'month')\n .replaceAll('[date]', this.subscription.current_period_end)\n .replaceAll('[site_name]', this.sisterSite)\n },\n swapPlan(payload) {\n this.subscription_status_loading = true\n this.$store\n .dispatch('subscription/changeFrequency', payload)\n .then((response) => {\n this.one_click_upgrade.success_feedback = this.setPlanDetails(payload.desc)\n this.$store.dispatch('subscription/setOneClickUpgrade', this.one_click_upgrade)\n this.$store.dispatch('user/getPayments').then(() => {\n this.showSuccess()\n })\n this.subscription_status_loading = false\n })\n .catch((err) => {\n this.subscription_status_loading = false\n if (!this.document.is_published) return\n this.$bvToast.toast('There was an error updating your subscription.', dangerToast)\n })\n },\n showPlans() {\n this.resetOneClickUpgrade()\n this.goPremium()\n },\n changePlan(payload) {\n this.one_click_upgrade.plan = this.getPlan(payload.plan)\n this.one_click_upgrade.subscriptionCycle = this.subscription.one_click_content.plan_frequency\n\n if (payload.plan == 'lifetime') this.one_click_upgrade.subscriptionCycle = payload.plan\n\n this.$store.dispatch('subscription/setOneClickUpgrade', this.one_click_upgrade).then(() => {\n if (this.hasSubscription && payload.plan != 'lifetime') {\n return this.swapPlan({\n plan: this.one_click_upgrade.plan.id,\n downgrade: payload.downgrade,\n desc: payload.desc,\n })\n }\n\n this.goPremium()\n })\n },\n showSuccess(action = 'change-plan') {\n if (action === 'change-plan') {\n if (this.publishing) this.$bvModal.hide('printable-modal')\n this.$bvModal.hide('paywall-modal')\n }\n this.$bvModal.show('success-modal')\n },\n resetOneClickUpgrade() {\n this.one_click_upgrade = {\n plan: null,\n subscriptionCycle: this.subscription.one_click_content.plan_frequency,\n success_feedback:\n 'Your plan has been updated and will begin automatically when your current subscription ends. You can continue to use all features, but won’t be charged until your next scheduled billing date.',\n renewal_msg: '',\n }\n\n this.$store.dispatch('subscription/setOneClickUpgrade', this.one_click_upgrade)\n },\n purchase() {\n this.one_click_upgrade.plan = this.getPlan('single')\n this.one_click_upgrade.subscriptionCycle = this.subscription.one_click_content.plan_frequency\n this.$store.dispatch('subscription/setOneClickUpgrade', this.one_click_upgrade).then(() => {\n this.showCheckoutModal(true)\n this.$bvModal.hide('printable-modal')\n })\n },\n async resumePlan() {\n await this.$store.dispatch('subscription/resumeSubscription')\n },\n async cancelSubscription() {\n try {\n this.$bvModal.hide('cancel-subscription')\n await this.$store.dispatch('subscription/cancelSubscription')\n this.showSuccess('cancel-plan')\n } catch (error) {\n console.error(error)\n this.$bvToast.toast(`We were unable to cancel your subscription`, dangerToast)\n }\n },\n },\n}\n"],"names":["defineComponent","props","plan","type","Object","default","computed","mapGetters","plan_category","methods","handleClick","this","resumePlan","changePlan","$emit","downgrade","desc","downgrade_desc","OneClickUpgrade","isLoggedIn","hasSubscription","hasPlans","publishing","mapState","current_plan","_a","getPlan","subscription","one_click_content","sisterSite","has_other_site_subscription","sisterSiteUrl","window","crossword_url","wordsearch_url","data","frequency_change_success","subscription_status_loading","one_click_upgrade","subscriptionCycle","success_feedback","renewal_msg","getPriceDifferential","new_plan","keys","length","subscriptionAmount","amount_in_cents","name","toLowerCase","_c","_b","diff","Math","abs","brand","includes","plans","plan_frequency","setUpgradeOption","option","description","replaceAll","id","setPlanDetails","current_period_end","swapPlan","payload","$store","dispatch","then","response","showSuccess","catch","err","document","is_published","$bvToast","toast","dangerToast","showPlans","resetOneClickUpgrade","goPremium","action","$bvModal","hide","show","purchase","showCheckoutModal","cancelSubscription","error","console"],"mappings":"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"}
{{ plan.description }}