PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / trunk
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments vtrunk
4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / dist / components / esm / sc-stripe-payment-element.entry.js
surecart / dist / components / esm Last commit date
MockProcessor-5c5e066a.js 2 months ago MockProcessor-5c5e066a.js.map 2 months ago add-query-args-0e2a8393.js 1 year ago add-query-args-0e2a8393.js.map 1 year ago address-b8e2e4c8.js 4 months ago address-b8e2e4c8.js.map 4 months ago animation-registry-de37bd7e.js 3 months ago animation-registry-de37bd7e.js.map 3 months ago app-globals-0eef0276.js 2 months ago app-globals-0eef0276.js.map 2 months ago consumer-f1775a76.js 2 months ago consumer-f1775a76.js.map 2 months ago currency-a0c9bff4.js 1 year ago currency-a0c9bff4.js.map 1 year ago error-c8bf8e3e.js 6 days ago error-c8bf8e3e.js.map 6 days ago fetch-cdff67be.js 1 month ago fetch-cdff67be.js.map 1 month ago floating-ui.dom.esm-8dce4ea1.js 6 months ago floating-ui.dom.esm-8dce4ea1.js.map 6 months ago form-data-76641f16.js 1 year ago form-data-76641f16.js.map 1 year ago functions-4f009ce1.js 3 months ago functions-4f009ce1.js.map 3 months ago geo-permission-62aea8ee.js 1 month ago geo-permission-62aea8ee.js.map 1 month ago getters-1049a6f8.js 2 months ago getters-1049a6f8.js.map 2 months ago getters-1477d792.js 2 months ago getters-1477d792.js.map 2 months ago getters-4bb6cc1b.js 2 months ago getters-4bb6cc1b.js.map 2 months ago getters-7090a9c1.js 6 days ago getters-7090a9c1.js.map 6 days ago getters-9cfeb0de.js 6 days ago getters-9cfeb0de.js.map 6 days ago google-52867ad8.js 6 days ago google-52867ad8.js.map 6 days ago google-e9085e27.js 6 days ago google-e9085e27.js.map 6 days ago google-maps-e8b00ffd.js 3 months ago google-maps-e8b00ffd.js.map 3 months ago index-17aac936.js 1 month ago index-17aac936.js.map 1 month ago index-18f5a1bc.js 2 months ago index-18f5a1bc.js.map 2 months ago index-25e5af33.js 2 months ago index-25e5af33.js.map 2 months ago index-824c562b.js 2 months ago index-824c562b.js.map 2 months ago index-871d88b8.js 1 year ago index-871d88b8.js.map 1 year ago index-a786f689.js 6 days ago index-a786f689.js.map 6 days ago index-c5a96d53.js 2 years ago index-c5a96d53.js.map 2 years ago index-d602bc13.js 1 month ago index-d602bc13.js.map 1 month ago index.js 6 days ago index.js.map 1 month ago inline-c012a0f9.js 1 year ago inline-c012a0f9.js.map 1 year ago lazy-deb42890.js 1 year ago lazy-deb42890.js.map 1 year ago library-1bd957d5.js 2 months ago library-1bd957d5.js.map 2 months ago loader.js 2 weeks ago loader.js.map 1 year ago media-d21119a3.js 1 year ago media-d21119a3.js.map 1 year ago mutations-7458343f.js 2 months ago mutations-7458343f.js.map 2 months ago mutations-9ffd30f4.js 6 days ago mutations-9ffd30f4.js.map 6 days ago mutations-ae7167ad.js 6 days ago mutations-ae7167ad.js.map 6 days ago mutations-b310b068.js 6 days ago mutations-b310b068.js.map 6 days ago page-align-0cdacf32.js 1 year ago page-align-0cdacf32.js.map 1 year ago price-1ff6aa07.js 4 months ago price-1ff6aa07.js.map 4 months ago pure-963214cb.js 1 year ago pure-963214cb.js.map 1 year ago quantity-5c986f3d.js 3 months ago quantity-5c986f3d.js.map 3 months ago razorpay-4c4a3d31.js 3 months ago razorpay-4c4a3d31.js.map 3 months ago remove-query-args-938c53ea.js 1 year ago remove-query-args-938c53ea.js.map 1 year ago sc-address_5.entry.js 2 weeks ago sc-address_5.entry.js.map 2 weeks ago sc-alert.entry.js 1 month ago sc-alert.entry.js.map 1 year ago sc-avatar_2.entry.js 6 days ago sc-avatar_2.entry.js.map 1 month ago sc-badge-notice.entry.js 1 month ago sc-badge-notice.entry.js.map 1 year ago sc-block-ui.entry.js 1 month ago sc-block-ui.entry.js.map 4 months ago sc-breadcrumb.entry.js 1 month ago sc-breadcrumb.entry.js.map 1 year ago sc-breadcrumbs.entry.js 1 month ago sc-breadcrumbs.entry.js.map 1 year ago sc-button-group.entry.js 1 month ago sc-button-group.entry.js.map 1 year ago sc-button_6.entry.js 1 month ago sc-button_6.entry.js.map 1 month ago sc-cancel-dialog_3.entry.js 1 month ago sc-cancel-dialog_3.entry.js.map 1 month ago sc-cancel-discount_4.entry.js 1 month ago sc-cancel-discount_4.entry.js.map 2 months ago sc-card_2.entry.js 1 month ago sc-card_2.entry.js.map 4 months ago sc-cart-button.entry.js 6 days ago sc-cart-button.entry.js.map 1 year ago sc-cart-form-submit.entry.js 2 months ago sc-cart-form-submit.entry.js.map 1 year ago sc-cart-form.entry.js 6 days ago sc-cart-form.entry.js.map 1 month ago sc-cart-header.entry.js 6 days ago sc-cart-header.entry.js.map 1 year ago sc-cart-icon.entry.js 6 days ago sc-cart-icon.entry.js.map 1 year ago sc-cart-loader.entry.js 6 days ago sc-cart-loader.entry.js.map 1 year ago sc-cart-session-provider_3.entry.js 6 days ago sc-cart-session-provider_3.entry.js.map 2 months ago sc-cart-submit.entry.js 2 months ago sc-cart-submit.entry.js.map 1 year ago sc-cart.entry.js 6 days ago sc-cart.entry.js.map 2 months ago sc-cc-logo_2.entry.js 1 month ago sc-cc-logo_2.entry.js.map 1 month ago sc-charges-list.entry.js 1 month ago sc-charges-list.entry.js.map 2 months ago sc-checkout-autofill-provider_11.entry.js 6 days ago sc-checkout-autofill-provider_11.entry.js.map 1 month ago sc-checkout-form-errors.entry.js 2 months ago sc-checkout-form-errors.entry.js.map 1 year ago sc-checkout-mollie-payment_3.entry.js 6 days ago sc-checkout-mollie-payment_3.entry.js.map 2 months ago sc-checkout-product-bundle-component-variants.entry.js 6 days ago sc-checkout-product-bundle-component-variants.entry.js.map 1 month ago sc-checkout-product-price-variant-selector.entry.js 6 days ago sc-checkout-product-price-variant-selector.entry.js.map 3 weeks ago sc-checkout.entry.js 6 days ago sc-checkout.entry.js.map 1 month ago sc-choice-container.entry.js 1 month ago sc-choice-container.entry.js.map 1 year ago sc-choice.entry.js 1 month ago sc-choice.entry.js.map 1 year ago sc-choices.entry.js 1 month ago sc-choices.entry.js.map 1 year ago sc-column_2.entry.js 1 month ago sc-column_2.entry.js.map 1 month ago sc-compact-address_18.entry.js 6 days ago sc-compact-address_18.entry.js.map 1 month ago sc-conditional-form.entry.js 6 days ago sc-conditional-form.entry.js.map 2 months ago sc-consumer.entry.js 2 months ago sc-consumer.entry.js.map 1 year ago sc-coupon-form.entry.js 6 days ago sc-coupon-form.entry.js.map 5 months ago sc-custom-order-price-input.entry.js 1 month ago sc-custom-order-price-input.entry.js.map 2 months ago sc-customer-details.entry.js 1 month ago sc-customer-details.entry.js.map 7 months ago sc-customer-edit.entry.js 1 month ago sc-customer-edit.entry.js.map 2 months ago sc-customer-email.entry.js 6 days ago sc-customer-email.entry.js.map 1 month ago sc-customer-firstname.entry.js 6 days ago sc-customer-firstname.entry.js.map 2 months ago sc-customer-lastname.entry.js 6 days ago sc-customer-lastname.entry.js.map 2 months ago sc-customer-name.entry.js 6 days ago sc-customer-name.entry.js.map 2 months ago sc-dashboard-customer-details.entry.js 1 month ago sc-dashboard-customer-details.entry.js.map 2 months ago sc-dashboard-downloads-list.entry.js 1 month ago sc-dashboard-downloads-list.entry.js.map 2 months ago sc-dialog.entry.js 1 month ago sc-dialog.entry.js.map 4 months ago sc-divider.entry.js 1 month ago sc-divider.entry.js.map 1 year ago sc-donation-choices.entry.js 2 months ago sc-donation-choices.entry.js.map 1 year ago sc-downloads-list.entry.js 1 month ago sc-downloads-list.entry.js.map 1 month ago sc-dropdown_3.entry.js 1 month ago sc-dropdown_3.entry.js.map 6 months ago sc-empty_3.entry.js 1 month ago sc-empty_3.entry.js.map 4 months ago sc-express-payment.entry.js 6 days ago sc-express-payment.entry.js.map 3 months ago sc-feature-demo-banner.entry.js 1 month ago sc-feature-demo-banner.entry.js.map 1 year ago sc-flex.entry.js 1 month ago sc-flex.entry.js.map 1 year ago sc-form-control_2.entry.js 1 month ago sc-form-control_2.entry.js.map 2 months ago sc-form-row.entry.js 1 month ago sc-form-row.entry.js.map 1 year ago sc-form.entry.js 1 month ago sc-form.entry.js.map 1 year ago sc-format-bytes.entry.js 2 months ago sc-format-bytes.entry.js.map 1 year ago sc-format-interval.entry.js 2 months ago sc-format-interval.entry.js.map 1 year ago sc-format-number.entry.js 2 months ago sc-format-number.entry.js.map 1 year ago sc-fulfillment-shipping-status-badge.entry.js 2 months ago sc-fulfillment-shipping-status-badge.entry.js.map 4 months ago sc-fulfillments.entry.js 1 month ago sc-fulfillments.entry.js.map 2 months ago sc-heading_2.entry.js 1 month ago sc-heading_2.entry.js.map 1 year ago sc-image-slider.entry.js 1 month ago sc-image-slider.entry.js.map 1 month ago sc-invoice-status-badge.entry.js 1 month ago sc-invoice-status-badge.entry.js.map 4 months ago sc-invoices-list.entry.js 1 month ago sc-invoices-list.entry.js.map 2 months ago sc-license.entry.js 1 month ago sc-license.entry.js.map 2 months ago sc-licenses-list.entry.js 1 month ago sc-licenses-list.entry.js.map 1 month ago sc-line-item-bump.entry.js 6 days ago sc-line-item-bump.entry.js.map 1 year ago sc-line-item-total.entry.js 6 days ago sc-line-item-total.entry.js.map 6 months ago sc-line-item.entry.js 1 month ago sc-line-item.entry.js.map 1 year ago sc-line-items-provider.entry.js 1 month ago sc-line-items-provider.entry.js.map 1 year ago sc-line-items.entry.js 6 days ago sc-line-items.entry.js.map 1 month ago sc-login-form.entry.js 1 month ago sc-login-form.entry.js.map 2 months ago sc-manual-payment-method_3.entry.js 1 month ago sc-manual-payment-method_3.entry.js.map 3 months ago sc-menu-divider.entry.js 1 month ago sc-menu-divider.entry.js.map 1 year ago sc-menu-label_2.entry.js 1 month ago sc-menu-label_2.entry.js.map 1 month ago sc-mollie-add-method.entry.js 1 month ago sc-mollie-add-method.entry.js.map 2 months ago sc-order-confirmation-customer.entry.js 2 months ago sc-order-confirmation-customer.entry.js.map 1 year ago sc-order-confirmation-details.entry.js 2 months ago sc-order-confirmation-details.entry.js.map 11 months ago sc-order-confirmation-line-items_2.entry.js 1 month ago sc-order-confirmation-line-items_2.entry.js.map 1 month ago sc-order-confirmation.entry.js 1 month ago sc-order-confirmation.entry.js.map 2 months ago sc-order-coupon-form.entry.js 6 days ago sc-order-coupon-form.entry.js.map 2 months ago sc-order-detail.entry.js 2 months ago sc-order-detail.entry.js.map 1 year ago sc-order-fulfillment-badge.entry.js 1 month ago sc-order-fulfillment-badge.entry.js.map 4 months ago sc-order-manual-instructions.entry.js 2 months ago sc-order-manual-instructions.entry.js.map 1 year ago sc-order-password.entry.js 2 months ago sc-order-password.entry.js.map 1 year ago sc-order-return-badge.entry.js 1 month ago sc-order-return-badge.entry.js.map 4 months ago sc-order-shipment-badge.entry.js 2 months ago sc-order-shipment-badge.entry.js.map 4 months ago sc-order-status-badge.entry.js 1 month ago sc-order-status-badge.entry.js.map 4 months ago sc-order-submit.entry.js 6 days ago sc-order-submit.entry.js.map 2 months ago sc-order-summary.entry.js 6 days ago sc-order-summary.entry.js.map 1 month ago sc-order.entry.js 1 month ago sc-order.entry.js.map 1 month ago sc-orders-list.entry.js 1 month ago sc-orders-list.entry.js.map 1 month ago sc-pagination.entry.js 2 months ago sc-pagination.entry.js.map 1 year ago sc-password-nag.entry.js 1 month ago sc-password-nag.entry.js.map 2 months ago sc-password.entry.js 1 month ago sc-password.entry.js.map 1 month ago sc-payment-method-choice_2.entry.js 1 month ago sc-payment-method-choice_2.entry.js.map 1 year ago sc-payment-method-details.entry.js 1 month ago sc-payment-method-details.entry.js.map 1 year ago sc-payment-methods-list.entry.js 1 month ago sc-payment-methods-list.entry.js.map 2 months ago sc-payment.entry.js 6 days ago sc-payment.entry.js.map 3 months ago sc-paypal-add-method.entry.js 1 month ago sc-paypal-add-method.entry.js.map 2 months ago sc-paypal-buttons_2.entry.js 6 days ago sc-paypal-buttons_2.entry.js.map 2 months ago sc-paystack-add-method.entry.js 1 month ago sc-paystack-add-method.entry.js.map 2 months ago sc-pill-option.entry.js 1 month ago sc-pill-option.entry.js.map 1 year ago sc-popover.entry.js 1 month ago sc-popover.entry.js.map 6 months ago sc-premium-tag.entry.js 1 month ago sc-premium-tag.entry.js.map 1 year ago sc-price-choice-container.entry.js 1 month ago sc-price-choice-container.entry.js.map 1 month ago sc-price-choice.entry.js 1 month ago sc-price-choice.entry.js.map 2 months ago sc-price-choices.entry.js 6 days ago sc-price-choices.entry.js.map 1 year ago sc-price-input.entry.js 1 month ago sc-price-input.entry.js.map 1 year ago sc-price-range_4.entry.js 1 month ago sc-price-range_4.entry.js.map 1 year ago sc-price.entry.js 2 months ago sc-price.entry.js.map 11 months ago sc-product-buy-button.entry.js 6 days ago sc-product-buy-button.entry.js.map 2 months ago sc-product-donation-amount-choice.entry.js 6 days ago sc-product-donation-amount-choice.entry.js.map 2 months ago sc-product-donation-choices.entry.js 6 days ago sc-product-donation-choices.entry.js.map 2 months ago sc-product-donation-custom-amount.entry.js 6 days ago sc-product-donation-custom-amount.entry.js.map 2 months ago sc-product-item-list.entry.js 6 days ago sc-product-item-list.entry.js.map 2 months ago sc-product-item.entry.js 1 month ago sc-product-item.entry.js.map 1 year ago sc-product-pills-variant-option.entry.js 6 days ago sc-product-pills-variant-option.entry.js.map 1 year ago sc-product-price-choices.entry.js 6 days ago sc-product-price-choices.entry.js.map 1 year ago sc-product-price-modal.entry.js 6 days ago sc-product-price-modal.entry.js.map 2 months ago sc-product-price.entry.js 6 days ago sc-product-price.entry.js.map 2 months ago sc-product-quantity.entry.js 6 days ago sc-product-quantity.entry.js.map 1 year ago sc-product-selected-price.entry.js 6 days ago sc-product-selected-price.entry.js.map 2 months ago sc-product-text.entry.js 6 days ago sc-product-text.entry.js.map 1 year ago sc-provider.entry.js 2 months ago sc-provider.entry.js.map 1 year ago sc-provisional-banner.entry.js 1 month ago sc-provisional-banner.entry.js.map 11 months ago sc-purchase-downloads-list.entry.js 1 month ago sc-purchase-downloads-list.entry.js.map 1 month ago sc-razorpay-add-method.entry.js 1 month ago sc-razorpay-add-method.entry.js.map 2 months ago sc-recurring-price-choice-container.entry.js 2 months ago sc-recurring-price-choice-container.entry.js.map 1 year ago sc-review-stars.entry.js 2 months ago sc-review-stars.entry.js.map 5 months ago sc-rich-text.entry.js 1 month ago sc-rich-text.entry.js.map 1 month ago sc-skeleton.entry.js 1 month ago sc-skeleton.entry.js.map 1 year ago sc-spacing.entry.js 1 month ago sc-spacing.entry.js.map 1 year ago sc-stripe-add-method.entry.js 1 month ago sc-stripe-add-method.entry.js.map 2 months ago sc-stripe-element.entry.js 6 days ago sc-stripe-element.entry.js.map 2 months ago sc-stripe-payment-element.entry.js 6 days ago sc-stripe-payment-element.entry.js.map 2 months ago sc-stripe-payment-request.entry.js 6 days ago sc-stripe-payment-request.entry.js.map 2 months ago sc-subscription-ad-hoc-confirm.entry.js 1 month ago sc-subscription-ad-hoc-confirm.entry.js.map 6 months ago sc-subscription-details_2.entry.js 1 month ago sc-subscription-details_2.entry.js.map 1 month ago sc-subscription-payment-method.entry.js 1 month ago sc-subscription-payment-method.entry.js.map 2 months ago sc-subscription-payment.entry.js 1 month ago sc-subscription-payment.entry.js.map 2 months ago sc-subscription-switch.entry.js 1 month ago sc-subscription-switch.entry.js.map 2 months ago sc-subscription-variation-confirm.entry.js 1 month ago sc-subscription-variation-confirm.entry.js.map 1 year ago sc-subscription.entry.js 1 month ago sc-subscription.entry.js.map 1 month ago sc-subscriptions-list.entry.js 1 month ago sc-subscriptions-list.entry.js.map 2 months ago sc-summary.entry.js 1 month ago sc-summary.entry.js.map 1 year ago sc-swap.entry.js 6 days ago sc-swap.entry.js.map 2 months ago sc-switch.entry.js 1 month ago sc-switch.entry.js.map 7 months ago sc-tab-group.entry.js 1 month ago sc-tab-group.entry.js.map 1 year ago sc-tab-panel.entry.js 1 month ago sc-tab-panel.entry.js.map 1 year ago sc-tab.entry.js 1 month ago sc-tab.entry.js.map 1 year ago sc-table-head.entry.js 1 month ago sc-table-head.entry.js.map 1 year ago sc-table_3.entry.js 1 month ago sc-table_3.entry.js.map 10 months ago sc-tag.entry.js 1 month ago sc-tag.entry.js.map 4 months ago sc-test-mode-info.entry.js 1 month ago sc-test-mode-info.entry.js.map 6 months ago sc-text.entry.js 1 month ago sc-text.entry.js.map 1 year ago sc-toggle.entry.js 1 month ago sc-toggle.entry.js.map 1 year ago sc-toggles.entry.js 1 month ago sc-toggles.entry.js.map 1 year ago sc-total.entry.js 6 days ago sc-total.entry.js.map 1 year ago sc-upcoming-invoice.entry.js 1 month ago sc-upcoming-invoice.entry.js.map 2 months ago sc-upgrade-required.entry.js 2 months ago sc-upgrade-required.entry.js.map 1 year ago sc-upsell-countdown-timer.entry.js 1 month ago sc-upsell-countdown-timer.entry.js.map 1 year ago sc-upsell-no-thanks-button.entry.js 6 days ago sc-upsell-no-thanks-button.entry.js.map 2 months ago sc-upsell-submit-button.entry.js 6 days ago sc-upsell-submit-button.entry.js.map 2 months ago sc-upsell-totals.entry.js 6 days ago sc-upsell-totals.entry.js.map 2 months ago sc-upsell.entry.js 6 days ago sc-upsell.entry.js.map 2 months ago sc-verification-code.entry.js 1 month ago sc-verification-code.entry.js.map 2 months ago sc-visually-hidden.entry.js 1 month ago sc-visually-hidden.entry.js.map 1 year ago sc-wordpress-password-edit.entry.js 1 month ago sc-wordpress-password-edit.entry.js.map 2 months ago sc-wordpress-user-edit.entry.js 1 month ago sc-wordpress-user-edit.entry.js.map 2 months ago sc-wordpress-user.entry.js 1 month ago sc-wordpress-user.entry.js.map 1 year ago store-289e460c.js 2 months ago store-289e460c.js.map 2 months ago store-ac90a769.js 1 month ago store-ac90a769.js.map 1 month ago store-b1758b00.js 2 months ago store-b1758b00.js.map 2 months ago surecart.js 2 weeks ago surecart.js.map 1 year ago tax-a03623ca.js 1 year ago tax-a03623ca.js.map 1 year ago universe-7bd0ac2b.js 2 months ago universe-7bd0ac2b.js.map 2 months ago util-dfbf863e.js 2 months ago util-dfbf863e.js.map 2 months ago utils-f84b2118.js 3 months ago utils-f84b2118.js.map 3 months ago verification-00df9439.js 1 month ago verification-00df9439.js.map 1 month ago watchers-2d9a1422.js 6 days ago watchers-2d9a1422.js.map 6 days ago watchers-81f32d01.js 6 days ago watchers-81f32d01.js.map 6 days ago watchers-843c3dbe.js 6 days ago watchers-843c3dbe.js.map 6 days ago watchers-c7bbc6b2.js 2 months ago watchers-c7bbc6b2.js.map 2 months ago watchers-df374a91.js 6 days ago watchers-df374a91.js.map 6 days ago
sc-stripe-payment-element.entry.js
364 lines
1 import { r as registerInstance, c as createEvent, h, a as getElement } from './index-25e5af33.js';
2 import { p as pure } from './pure-963214cb.js';
3 import { s as state$2 } from './watchers-c7bbc6b2.js';
4 import { o as onChange, s as state, u as updateFormState } from './mutations-9ffd30f4.js';
5 import { o as onChange$1 } from './store-b1758b00.js';
6 import './watchers-843c3dbe.js';
7 import { s as state$1, g as getProcessorByType } from './getters-9cfeb0de.js';
8 import { c as currentFormState } from './getters-4bb6cc1b.js';
9 import { c as createErrorNotice } from './mutations-7458343f.js';
10 import { b as getResolvedBillingEmail, t as toStripeAddress, d as getResolvedBillingAddress } from './getters-7090a9c1.js';
11 import { a as addQueryArgs } from './add-query-args-0e2a8393.js';
12 import './index-18f5a1bc.js';
13 import './utils-f84b2118.js';
14 import './remove-query-args-938c53ea.js';
15 import './index-c5a96d53.js';
16 import './google-e9085e27.js';
17 import './currency-a0c9bff4.js';
18 import './price-1ff6aa07.js';
19 import './util-dfbf863e.js';
20 import './store-ac90a769.js';
21 import './address-b8e2e4c8.js';
22
23 const scStripePaymentElementCss = "sc-stripe-payment-element{display:block}sc-stripe-payment-element [hidden]{display:none}.loader{display:grid;height:128px;gap:2em}.loader__row{display:flex;align-items:flex-start;justify-content:space-between;gap:1em}.loader__details{display:grid;gap:0.5em}";
24 const ScStripePaymentElementStyle0 = scStripePaymentElementCss;
25
26 const ScStripePaymentElement = class {
27 constructor(hostRef) {
28 registerInstance(this, hostRef);
29 this.scPaid = createEvent(this, "scPaid", 7);
30 this.scSetState = createEvent(this, "scSetState", 7);
31 this.scPaymentInfoAdded = createEvent(this, "scPaymentInfoAdded", 7);
32 this.error = undefined;
33 this.confirming = false;
34 this.isInitializingStripe = false;
35 this.isCreatingUpdatingStripeElement = false;
36 this.loaded = false;
37 this.styles = undefined;
38 }
39 async componentWillLoad() {
40 this.fetchStyles();
41 this.syncCheckoutMode();
42 }
43 async handleStylesChange() {
44 this.createOrUpdateElements();
45 }
46 async fetchStyles() {
47 this.styles = (await this.getComputedStyles());
48 }
49 /**
50 * We wait for our property value to resolve (styles have been loaded)
51 * This prevents the element appearance api being set before the styles are loaded.
52 */
53 getComputedStyles() {
54 return new Promise(resolve => {
55 let checkInterval = setInterval(() => {
56 const styles = window.getComputedStyle(document.body);
57 const color = styles.getPropertyValue('--sc-color-primary-500');
58 if (color) {
59 clearInterval(checkInterval);
60 resolve(styles);
61 }
62 }, 100);
63 });
64 }
65 /** Sync the checkout mode */
66 async syncCheckoutMode() {
67 onChange('checkout', () => {
68 this.initializeStripe();
69 });
70 }
71 async componentDidLoad() {
72 this.initializeStripe();
73 }
74 async initializeStripe() {
75 var _a, _b;
76 if (typeof ((_a = state === null || state === void 0 ? void 0 : state.checkout) === null || _a === void 0 ? void 0 : _a.live_mode) === 'undefined' || ((_b = state$1 === null || state$1 === void 0 ? void 0 : state$1.instances) === null || _b === void 0 ? void 0 : _b.stripe) || this.isInitializingStripe) {
77 return;
78 }
79 this.isInitializingStripe = true;
80 const { processor_data } = getProcessorByType('stripe') || {};
81 try {
82 state$1.instances.stripe = await pure.loadStripe(processor_data === null || processor_data === void 0 ? void 0 : processor_data.publishable_key, { stripeAccount: processor_data === null || processor_data === void 0 ? void 0 : processor_data.account_id });
83 this.error = '';
84 }
85 catch (e) {
86 this.error = (e === null || e === void 0 ? void 0 : e.message) || wp.i18n.__('Stripe could not be loaded', 'surecart');
87 this.isInitializingStripe = false;
88 // don't continue.
89 return;
90 }
91 // create or update elements.
92 this.createOrUpdateElements();
93 this.handleUpdateElement();
94 this.unlistenToCheckout = onChange('checkout', () => {
95 this.fetchStyles();
96 this.createOrUpdateElements();
97 this.handleUpdateElement();
98 });
99 // we need to listen to the form state and pay when the form state enters the paying state.
100 this.unlistenToFormState = onChange$1('formState', () => {
101 var _a;
102 if (!((_a = state === null || state === void 0 ? void 0 : state.checkout) === null || _a === void 0 ? void 0 : _a.payment_method_required))
103 return;
104 if ('paying' === currentFormState()) {
105 this.maybeConfirmOrder();
106 }
107 });
108 this.isInitializingStripe = false;
109 }
110 clearStripeInstances() {
111 var _a, _b, _c, _d;
112 this.isInitializingStripe = false;
113 this.isCreatingUpdatingStripeElement = false;
114 if (this === null || this === void 0 ? void 0 : this.element) {
115 try {
116 (_b = (_a = this.element) === null || _a === void 0 ? void 0 : _a.unmount) === null || _b === void 0 ? void 0 : _b.call(_a); // If Stripe provides this method
117 }
118 catch (e) {
119 console.warn('Could not unmount Stripe element:', e);
120 }
121 this.element = null;
122 }
123 if ((_c = state$1 === null || state$1 === void 0 ? void 0 : state$1.instances) === null || _c === void 0 ? void 0 : _c.stripeElements) {
124 state$1.instances.stripeElements = null;
125 }
126 if ((_d = state$1 === null || state$1 === void 0 ? void 0 : state$1.instances) === null || _d === void 0 ? void 0 : _d.stripe) {
127 state$1.instances.stripe = null;
128 }
129 }
130 disconnectedCallback() {
131 this.unlistenToFormState();
132 this.unlistenToCheckout();
133 this.clearStripeInstances();
134 }
135 getElementsConfig() {
136 var _a, _b, _c, _d;
137 const styles = getComputedStyle(this.el);
138 return {
139 mode: ((_a = state.checkout) === null || _a === void 0 ? void 0 : _a.remaining_amount_due) > 0 ? 'payment' : 'setup',
140 amount: (_b = state.checkout) === null || _b === void 0 ? void 0 : _b.remaining_amount_due,
141 currency: (_c = state.checkout) === null || _c === void 0 ? void 0 : _c.currency,
142 setupFutureUsage: ((_d = state.checkout) === null || _d === void 0 ? void 0 : _d.reusable_payment_method_required) ? 'off_session' : null,
143 appearance: {
144 variables: {
145 colorPrimary: styles.getPropertyValue('--sc-color-primary-500') || 'black',
146 colorText: styles.getPropertyValue('--sc-input-label-color') || 'black',
147 borderRadius: styles.getPropertyValue('--sc-input-border-radius-medium') || '4px',
148 colorBackground: styles.getPropertyValue('--sc-input-background-color') || 'white',
149 fontSizeBase: styles.getPropertyValue('--sc-input-font-size-medium') || '16px',
150 colorLogo: styles.getPropertyValue('--sc-stripe-color-logo') || 'light',
151 colorLogoTab: styles.getPropertyValue('--sc-stripe-color-logo-tab') || 'light',
152 colorLogoTabSelected: styles.getPropertyValue('--sc-stripe-color-logo-tab-selected') || 'light',
153 colorTextPlaceholder: styles.getPropertyValue('--sc-input-placeholder-color') || 'black',
154 },
155 rules: {
156 '.Input': {
157 border: styles.getPropertyValue('--sc-input-border'),
158 },
159 },
160 },
161 };
162 }
163 maybeApplyFilters(options) {
164 var _a, _b, _c;
165 if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.wp) === null || _a === void 0 ? void 0 : _a.hooks) === null || _b === void 0 ? void 0 : _b.applyFilters))
166 return options;
167 return {
168 ...options,
169 paymentMethodOrder: window.wp.hooks.applyFilters('surecart_stripe_payment_element_payment_method_order', [], state.checkout),
170 wallets: window.wp.hooks.applyFilters('surecart_stripe_payment_element_wallets', {}, state.checkout),
171 terms: window.wp.hooks.applyFilters('surecart_stripe_payment_element_terms', {}, state.checkout),
172 fields: window.wp.hooks.applyFilters('surecart_stripe_payment_element_fields', (_c = options.fields) !== null && _c !== void 0 ? _c : {}),
173 };
174 }
175 /** Update the payment element mode, amount and currency when it changes. */
176 createOrUpdateElements() {
177 var _a, _b, _c, _d, _e;
178 // need an order amount, etc.
179 if (!((_a = state === null || state === void 0 ? void 0 : state.checkout) === null || _a === void 0 ? void 0 : _a.payment_method_required))
180 return;
181 if (!state$1.instances.stripe || this.isCreatingUpdatingStripeElement)
182 return;
183 if (((_b = state.checkout) === null || _b === void 0 ? void 0 : _b.status) && ['paid', 'processing'].includes((_c = state.checkout) === null || _c === void 0 ? void 0 : _c.status))
184 return;
185 this.isCreatingUpdatingStripeElement = true;
186 // create the elements if they have not yet been created.
187 if (!state$1.instances.stripeElements) {
188 // we have what we need, load elements.
189 state$1.instances.stripeElements = state$1.instances.stripe.elements(this.getElementsConfig());
190 const address = toStripeAddress(getResolvedBillingAddress());
191 const options = this.maybeApplyFilters({
192 defaultValues: {
193 billingDetails: {
194 ...(((_d = state.checkout) === null || _d === void 0 ? void 0 : _d.name) ? { name: state.checkout.name } : {}),
195 ...(getResolvedBillingEmail() ? { email: getResolvedBillingEmail() } : {}),
196 ...(((_e = state.checkout) === null || _e === void 0 ? void 0 : _e.phone) ? { phone: state.checkout.phone } : {}),
197 ...(address ? { address } : {}),
198 },
199 },
200 fields: {
201 billingDetails: {
202 email: 'never',
203 },
204 },
205 });
206 // create the payment element.
207 state$1.instances.stripeElements.create('payment', options).mount(this.container);
208 this.element = state$1.instances.stripeElements.getElement('payment');
209 this.element.on('ready', () => (this.loaded = true));
210 this.element.on('change', (event) => {
211 var _a, _b, _c, _d, _e, _f, _g;
212 const requiredShippingPaymentTypes = ['cashapp', 'klarna', 'clearpay'];
213 state.paymentMethodRequiresShipping = requiredShippingPaymentTypes.includes((_a = event === null || event === void 0 ? void 0 : event.value) === null || _a === void 0 ? void 0 : _a.type);
214 if (event.complete) {
215 this.scPaymentInfoAdded.emit({
216 checkout_id: (_b = state.checkout) === null || _b === void 0 ? void 0 : _b.id,
217 currency: (_c = state.checkout) === null || _c === void 0 ? void 0 : _c.currency,
218 processor_type: 'stripe',
219 total_amount: (_d = state.checkout) === null || _d === void 0 ? void 0 : _d.total_amount,
220 line_items: (_e = state.checkout) === null || _e === void 0 ? void 0 : _e.line_items,
221 payment_method: {
222 billing_details: {
223 email: (_f = state.checkout) === null || _f === void 0 ? void 0 : _f.email,
224 name: (_g = state.checkout) === null || _g === void 0 ? void 0 : _g.name,
225 },
226 },
227 });
228 }
229 });
230 this.isCreatingUpdatingStripeElement = false;
231 return;
232 }
233 state$1.instances.stripeElements.update(this.getElementsConfig());
234 this.isCreatingUpdatingStripeElement = false;
235 }
236 /** Update the default attributes of the element when they cahnge. */
237 handleUpdateElement() {
238 var _a, _b, _c;
239 if (!this.element)
240 return;
241 if (((_a = state.checkout) === null || _a === void 0 ? void 0 : _a.status) !== 'draft')
242 return;
243 const address = toStripeAddress(getResolvedBillingAddress());
244 const options = this.maybeApplyFilters({
245 defaultValues: {
246 billingDetails: {
247 ...(((_b = state.checkout) === null || _b === void 0 ? void 0 : _b.name) ? { name: state.checkout.name } : {}),
248 ...(getResolvedBillingEmail() ? { email: getResolvedBillingEmail() } : {}),
249 ...(((_c = state.checkout) === null || _c === void 0 ? void 0 : _c.phone) ? { phone: state.checkout.phone } : {}),
250 ...(address ? { address } : {}),
251 },
252 },
253 fields: {
254 billingDetails: {
255 email: 'never',
256 },
257 },
258 });
259 this.element.update(options);
260 }
261 async submit() {
262 // this processor is not selected.
263 if ((state$2 === null || state$2 === void 0 ? void 0 : state$2.id) !== 'stripe')
264 return;
265 // submit the elements.
266 const { error } = await state$1.instances.stripeElements.submit();
267 if (error) {
268 console.error({ error });
269 updateFormState('REJECT');
270 createErrorNotice(error);
271 this.error = error.message;
272 return;
273 }
274 }
275 /**
276 * Watch order status and maybe confirm the order.
277 */
278 async maybeConfirmOrder() {
279 var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
280 // this processor is not selected.
281 if ((state$2 === null || state$2 === void 0 ? void 0 : state$2.id) !== 'stripe')
282 return;
283 // must be a stripe session
284 if (((_b = (_a = state.checkout) === null || _a === void 0 ? void 0 : _a.payment_intent) === null || _b === void 0 ? void 0 : _b.processor_type) !== 'stripe')
285 return;
286 // need an external_type
287 if (!((_f = (_e = (_d = (_c = state.checkout) === null || _c === void 0 ? void 0 : _c.payment_intent) === null || _d === void 0 ? void 0 : _d.processor_data) === null || _e === void 0 ? void 0 : _e.stripe) === null || _f === void 0 ? void 0 : _f.type))
288 return;
289 // we need a client secret.
290 if (!((_k = (_j = (_h = (_g = state.checkout) === null || _g === void 0 ? void 0 : _g.payment_intent) === null || _h === void 0 ? void 0 : _h.processor_data) === null || _j === void 0 ? void 0 : _j.stripe) === null || _k === void 0 ? void 0 : _k.client_secret))
291 return;
292 // confirm the intent.
293 return await this.confirm((_p = (_o = (_m = (_l = state.checkout) === null || _l === void 0 ? void 0 : _l.payment_intent) === null || _m === void 0 ? void 0 : _m.processor_data) === null || _o === void 0 ? void 0 : _o.stripe) === null || _p === void 0 ? void 0 : _p.type);
294 }
295 async confirm(type, args = {}) {
296 var _a, _b, _c, _d, _e, _f;
297 const address = toStripeAddress(getResolvedBillingAddress());
298 const confirmArgs = {
299 elements: state$1.instances.stripeElements,
300 clientSecret: (_d = (_c = (_b = (_a = state.checkout) === null || _a === void 0 ? void 0 : _a.payment_intent) === null || _b === void 0 ? void 0 : _b.processor_data) === null || _c === void 0 ? void 0 : _c.stripe) === null || _d === void 0 ? void 0 : _d.client_secret,
301 confirmParams: {
302 return_url: addQueryArgs(window.location.href, {
303 ...(state.checkout.id ? { checkout_id: state.checkout.id } : {}),
304 }),
305 payment_method_data: {
306 billing_details: {
307 ...(getResolvedBillingEmail() ? { email: getResolvedBillingEmail() } : {}),
308 ...(((_e = state.checkout) === null || _e === void 0 ? void 0 : _e.name) ? { name: state.checkout.name } : {}),
309 ...(((_f = state.checkout) === null || _f === void 0 ? void 0 : _f.phone) ? { phone: state.checkout.phone } : {}),
310 ...(address ? { address } : {}),
311 },
312 },
313 },
314 redirect: 'if_required',
315 ...args,
316 };
317 // prevent possible double-charges
318 if (this.confirming)
319 return;
320 // stripe must be loaded.
321 if (!state$1.instances.stripe)
322 return;
323 try {
324 this.scSetState.emit('PAYING');
325 const response = type === 'setup' ? await state$1.instances.stripe.confirmSetup(confirmArgs) : await state$1.instances.stripe.confirmPayment(confirmArgs);
326 if (response === null || response === void 0 ? void 0 : response.error) {
327 this.error = response.error.message;
328 throw response.error;
329 }
330 else {
331 this.scSetState.emit('PAID');
332 // paid
333 this.scPaid.emit();
334 }
335 }
336 catch (e) {
337 console.error(e);
338 updateFormState('REJECT');
339 createErrorNotice(e);
340 if (e.message) {
341 this.error = e.message;
342 }
343 }
344 finally {
345 this.confirming = false;
346 }
347 }
348 render() {
349 return (h("div", { key: 'c0016a393f1aa445b51da4a530b7edf698e563bf', class: "sc-stripe-payment-element", "data-testid": "stripe-payment-element" }, !!this.error && (h("sc-text", { key: 'c09a6e1d635731857dc31a5fc25ad04935a8913c', style: {
350 'color': 'var(--sc-color-danger-500)',
351 '--font-size': 'var(--sc-font-size-small)',
352 'marginBottom': '0.5em',
353 } }, this.error)), h("div", { key: '57a220e93ee306dc86fc6df7bab71bd346f66783', class: "loader", hidden: this.loaded }, h("div", { key: 'afd6786da88edbf811a375090e4df66ca98846be', class: "loader__row" }, h("div", { key: 'a862e3f18cda04a3c1f1ea7bb075288945099c31', style: { width: '50%' } }, h("sc-skeleton", { key: '61aa058d7abed5538cca62c6db05c76fa1254f67', style: { width: '50%', marginBottom: '0.5em' } }), h("sc-skeleton", { key: '0295966e246a0cd057a3ff94188408051bef066a' })), h("div", { key: 'b22e9fc235cb89d749403ba43b4da200af7d82f9', style: { flex: '1' } }, h("sc-skeleton", { key: '5268d2c1f509a430822806a2d454f1d7d0397674', style: { width: '50%', marginBottom: '0.5em' } }), h("sc-skeleton", { key: '470436ac76f63fa7b5c7120776642f4d8d2a1633' })), h("div", { key: 'aa3e3a12bb063778c0fe5b8335125c929ba1634c', style: { flex: '1' } }, h("sc-skeleton", { key: '5a11fdc0424cec4f5c0ceb8c0f232b7736e51662', style: { width: '50%', marginBottom: '0.5em' } }), h("sc-skeleton", { key: 'ee169a25cc29f740f26c70afa227c30a23564ed0' }))), h("div", { key: '6b6b2038705990671d39c2b79673a9b41a8a3046', class: "loader__details" }, h("sc-skeleton", { key: 'f23185d310d18cfb008de7d8323b79f600faa599', style: { height: '1rem' } }), h("sc-skeleton", { key: '93d333bf62b776b455bc18919150ca005d891dcc', style: { height: '1rem', width: '30%' } }))), h("div", { key: 'ebda57e66939b559a2d8e647bc89c04028c6c037', hidden: !this.loaded, class: "sc-payment-element-container", ref: el => (this.container = el) })));
354 }
355 get el() { return getElement(this); }
356 static get watchers() { return {
357 "styles": ["handleStylesChange"]
358 }; }
359 };
360 ScStripePaymentElement.style = ScStripePaymentElementStyle0;
361
362 export { ScStripePaymentElement as sc_stripe_payment_element };
363
364 //# sourceMappingURL=sc-stripe-payment-element.entry.js.map