JezK
Edit File: sc-subscription-variation-confirm.js.map
{"file":"sc-subscription-variation-confirm.js","mappings":";;;;;;;;;;;;;;;;;;;;AAAA,MAAM,iCAAiC,GAAG,6HAA6H,CAAC;AACxK,6CAAe,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBCsDjC,UAAE;;mBAEJ,UAAE;;eAEJ,UAAE;;;;qHAIuC,UAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/controllers/dashboard/subscription-variation-confirm/sc-subscription-variation-confirm.scss?tag=sc-subscription-variation-confirm","src/components/controllers/dashboard/subscription-variation-confirm/sc-subscription-variation-confirm.tsx"],"sourcesContent":[":host {\n display: block;\n}\n.sc-product-variation-choice-wrap {\n display: flex;\n flex-direction: column;\n gap: var(--sc-variation-gap, 12px);\n}","import { Component, h, Prop, State } from '@stencil/core';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Product, Subscription, Price } from '../../../../types';\nimport { getVariantFromValues } from '../../../../functions/util';\n\n@Component({\n tag: 'sc-subscription-variation-confirm',\n styleUrl: 'sc-subscription-variation-confirm.scss',\n shadow: false,\n})\nexport class ScSubscriptionVariationConfirm {\n @Prop() heading: string;\n @Prop() product: Product;\n @Prop() price: Price;\n @Prop() subscription: Subscription;\n @State() busy: boolean = false;\n @State() variantValues: Array<string> = [];\n\n constructor() {\n // Bind the submit function to the component instance\n this.handleSubmit = this.handleSubmit.bind(this);\n }\n\n componentWillLoad() {\n this.variantValues = this.subscription?.variant_options;\n }\n \n async handleSubmit() {\n this.busy = true;\n \n const selectedVariant = getVariantFromValues({ variants: this.product?.variants?.data, values: this.variantValues });\n \n // confirm ad_hoc amount.\n if (this.price?.ad_hoc) {\n return window.location.assign(\n addQueryArgs(window.location.href, {\n action: 'confirm_amount',\n price_id: this.price?.id,\n variant: selectedVariant?.id,\n }),\n );\n }\n\n return window.location.assign(\n addQueryArgs(window.location.href, {\n action: 'confirm',\n variant: selectedVariant?.id,\n }),\n );\n }\n\n buttonText() {\n if (this.price?.ad_hoc) {\n if (this.price?.id === (this.subscription?.price as Price)?.id) {\n return __('Update Amount', 'surecart');\n }\n return __('Choose Amount', 'surecart');\n }\n return __('Next', 'surecart');\n }\n render() {\n return (\n <sc-dashboard-module heading={this.heading || __('Enter An Amount', 'surecart')} class=\"subscription-switch\">\n <sc-card>\n <sc-form onScSubmit={this.handleSubmit}>\n <div class=\"sc-product-variation-choice-wrap\">\n {(this.product?.variant_options?.data || []).map(({name, values, id }, index) => {\n return (\n <sc-select\n exportparts=\"base:select__base, input, form-control, label, help-text, trigger, panel, caret, menu__base, spinner__base, empty\"\n part=\"name__input\"\n value={this.subscription?.variant_options?.[index] || ''}\n onScChange={(e: any) => {\n this.variantValues[index] = e.detail.value;\n }}\n label={name}\n choices={values?.map(label => ({\n label,\n value: label,\n }))}\n unselect={false}\n key={id}\n />\n );\n })}\n </div>\n <sc-button type=\"primary\" full submit loading={this.busy}>\n {this.buttonText()} <sc-icon name=\"arrow-right\" slot=\"suffix\"></sc-icon>\n </sc-button>\n </sc-form>\n </sc-card>\n {this.busy && <sc-block-ui style={{ zIndex: '9' }}></sc-block-ui>}\n </sc-dashboard-module>\n );\n }\n}\n"],"version":3}