JezK
Edit File: sc-order-coupon-form.entry.js.map
{"file":"sc-order-coupon-form.entry.js","mappings":";;;;;;;;;;;;;;;;;AAAA,MAAM,oBAAoB,GAAG,ypBAAypB,CAAC;AACvrB,gCAAe,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBC6CzB,eAAO,CACL,UAAE;;;;;;;8QAaiE,UAAE;;;;;;;;+IAYpD,UAAE;;iDAYS,UAAE;;;;;;;","names":[],"sources":["src/components/controllers/checkout-form/order-coupon-form/sc-order-coupon-form.scss?tag=sc-order-coupon-form&encapsulation=shadow","src/components/controllers/checkout-form/order-coupon-form/sc-order-coupon-form.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.coupon-form {\n position: relative;\n}\n// .coupon-tag {\n// margin-bottom: 4px;\n// }\n\n// sc-input {\n// margin-bottom: var(--sc-spacing-small);\n// }\n\n.form {\n opacity: 0;\n visibility: hidden;\n height: 0;\n transition: opacity var(--sc-transition-fast) ease-in-out;\n}\n\n.coupon-form--is-open {\n .form {\n opacity: 1;\n visibility: visible;\n height: auto;\n margin-top: var(--sc-spacing-small);\n display: grid;\n gap: var(--sc-spacing-small);\n }\n\n .trigger {\n color: var(--sc-input-label-color);\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.trigger {\n cursor: pointer;\n font-size: var(--sc-font-size-small);\n color: var(--sc-color-gray-500);\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.order-coupon-form--is-rtl {\n .trigger {\n &,\n &:hover {\n text-align: right;\n }\n }\n}\n","import { Component, State, h, Prop } from '@stencil/core';\nimport { state as checkoutState } from '@store/checkout';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { isRtl } from '../../../../functions/page-align';\nimport { formBusy } from '@store/form/getters';\nimport { createOrUpdateCheckout } from '@services/session';\nimport { Checkout } from 'src/types';\nimport { updateFormState } from '@store/form/mutations';\nimport { speak } from '@wordpress/a11y';\n\n@Component({\n tag: 'sc-order-coupon-form',\n styleUrl: 'sc-order-coupon-form.scss',\n shadow: true,\n})\nexport class ScOrderCouponForm {\n private couponForm: HTMLScCouponFormElement;\n @Prop() label: string;\n @Prop() loading: boolean;\n @Prop() collapsed: boolean;\n @Prop() placeholder: string;\n @Prop() buttonText: string;\n\n @State() open: boolean;\n @State() value: string;\n @State() error: string;\n\n async handleCouponApply(e) {\n const promotion_code = e?.detail || null;\n\n try {\n this.error = null;\n updateFormState('FETCH');\n\n checkoutState.checkout = (await createOrUpdateCheckout({\n id: checkoutState.checkout.id,\n data: {\n discount: {\n ...(promotion_code ? { promotion_code } : {}),\n },\n },\n })) as Checkout;\n\n if (promotion_code) {\n speak(\n // translators: %1$s is the coupon code, %2$s is the discount amount, %3$s is the order total\n sprintf(\n __('Coupon code %1$s applied, discount is %2$s and now order total is %3$s', 'surecart'),\n promotion_code,\n checkoutState.checkout?.discounts_display_amount,\n checkoutState.checkout?.total_display_amount,\n ),\n 'assertive',\n );\n }\n\n updateFormState('RESOLVE');\n await this.couponForm?.triggerFocus();\n } catch (error) {\n console.error(error);\n this.error = error?.additional_errors?.[0]?.message || error?.message || __('Something went wrong', 'surecart');\n updateFormState('REJECT');\n }\n }\n\n render() {\n // Do any line items have a recurring price?\n const hasRecurring = checkoutState?.checkout?.line_items?.data?.some(item => item?.price?.recurring_interval);\n\n return (\n <sc-coupon-form\n ref={el => (this.couponForm = el as HTMLScCouponFormElement)}\n label={this.label || __('Add Coupon Code', 'surecart')}\n collapsed={this.collapsed}\n placeholder={this.placeholder}\n loading={formBusy() && !checkoutState.checkout?.line_items?.data?.length}\n busy={formBusy()}\n discount={checkoutState.checkout?.discount}\n discounts-display-amount={checkoutState.checkout?.discounts_display_amount}\n currency={checkoutState.checkout?.currency}\n discount-amount={checkoutState.checkout?.discount_amount}\n class={{\n 'order-coupon-form--is-rtl': isRtl(),\n }}\n button-text={this.buttonText || __('Apply', 'surecart')}\n show-interval={hasRecurring}\n onScApplyCoupon={e => this.handleCouponApply(e)}\n error={this.error}\n ></sc-coupon-form>\n );\n }\n}\n"],"version":3}