PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta1
4.7.0 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 / cjs / sc-subscription-switch.cjs.entry.js
surecart / dist / components / cjs Last commit date
MockProcessor-48b83649.js 2 years ago MockProcessor-48b83649.js.map 2 years ago add-query-args-49dcb630.js 2 years ago add-query-args-49dcb630.js.map 2 years ago address-4c70d641.js 2 years ago address-4c70d641.js.map 2 years ago animation-registry-f7f1a08b.js 2 years ago animation-registry-f7f1a08b.js.map 2 years ago app-globals-9f96f14c.js 2 years ago app-globals-9f96f14c.js.map 2 years ago consumer-9f4ee0e3.js 2 years ago consumer-9f4ee0e3.js.map 2 years ago countries-367b507a.js 2 years ago countries-367b507a.js.map 2 years ago currency-71fce0f0.js 2 years ago currency-71fce0f0.js.map 2 years ago error-b46e23c3.js 2 years ago error-b46e23c3.js.map 2 years ago fetch-6192c074.js 2 years ago fetch-6192c074.js.map 2 years ago form-data-0da9940f.js 2 years ago form-data-0da9940f.js.map 2 years ago functions-b63256c8.js 2 years ago functions-b63256c8.js.map 2 years ago getters-305b8266.js 2 years ago getters-305b8266.js.map 2 years ago getters-36e9dc10.js 2 years ago getters-36e9dc10.js.map 2 years ago getters-3f9f8286.js 2 years ago getters-3f9f8286.js.map 2 years ago getters-810d572b.js 2 years ago getters-810d572b.js.map 2 years ago getters-f6bbfe30.js 2 years ago getters-f6bbfe30.js.map 2 years ago google-03835677.js 2 years ago google-03835677.js.map 2 years ago google-59d23803.js 2 years ago google-59d23803.js.map 2 years ago index-252211ea.js 2 years ago index-252211ea.js.map 2 years ago index-6c7d178b.js 2 years ago index-6c7d178b.js.map 2 years ago index-8acc3c89.js 2 years ago index-8acc3c89.js.map 2 years ago index-adacfa36.js 2 years ago index-adacfa36.js.map 2 years ago index-bcdafe6e.js 2 years ago index-bcdafe6e.js.map 2 years ago index-fb76df07.js 2 years ago index-fb76df07.js.map 2 years ago index.cjs.js 2 years ago index.cjs.js.map 2 years ago inline-aa15f113.js 2 years ago inline-aa15f113.js.map 2 years ago lazy-2b509fa7.js 2 years ago lazy-2b509fa7.js.map 2 years ago library-b4e9d7e3.js 2 years ago library-b4e9d7e3.js.map 2 years ago loader.cjs.js 2 years ago loader.cjs.js.map 2 years ago media-43b85f3d.js 2 years ago media-43b85f3d.js.map 2 years ago mutations-11c8f9a8.js 2 years ago mutations-11c8f9a8.js.map 2 years ago mutations-14b05e96.js 2 years ago mutations-14b05e96.js.map 2 years ago mutations-35e01219.js 2 years ago mutations-35e01219.js.map 2 years ago mutations-76f337c0.js 2 years ago mutations-76f337c0.js.map 2 years ago mutations-a920eef8.js 2 years ago mutations-a920eef8.js.map 2 years ago page-align-5a2ab493.js 2 years ago page-align-5a2ab493.js.map 2 years ago price-653ec1cb.js 2 years ago price-653ec1cb.js.map 2 years ago pure-bd6f0a6e.js 2 years ago pure-bd6f0a6e.js.map 2 years ago quantity-bff7f892.js 2 years ago quantity-bff7f892.js.map 2 years ago remove-query-args-b57e8cd3.js 2 years ago remove-query-args-b57e8cd3.js.map 2 years ago sc-address_3.cjs.entry.js 2 years ago sc-address_3.cjs.entry.js.map 2 years ago sc-alert_13.cjs.entry.js 2 years ago sc-alert_13.cjs.entry.js.map 2 years ago sc-avatar.cjs.entry.js 2 years ago sc-avatar.cjs.entry.js.map 2 years ago sc-badge-notice.cjs.entry.js 2 years ago sc-badge-notice.cjs.entry.js.map 2 years ago sc-breadcrumb.cjs.entry.js 2 years ago sc-breadcrumb.cjs.entry.js.map 2 years ago sc-breadcrumbs.cjs.entry.js 2 years ago sc-breadcrumbs.cjs.entry.js.map 2 years ago sc-button-group.cjs.entry.js 2 years ago sc-button-group.cjs.entry.js.map 2 years ago sc-cancel-dialog_2.cjs.entry.js 2 years ago sc-cancel-dialog_2.cjs.entry.js.map 2 years ago sc-cancel-discount_4.cjs.entry.js 2 years ago sc-cancel-discount_4.cjs.entry.js.map 2 years ago sc-card.cjs.entry.js 2 years ago sc-card.cjs.entry.js.map 2 years ago sc-cart-button.cjs.entry.js 2 years ago sc-cart-button.cjs.entry.js.map 2 years ago sc-cart-form-submit.cjs.entry.js 2 years ago sc-cart-form-submit.cjs.entry.js.map 2 years ago sc-cart-form.cjs.entry.js 2 years ago sc-cart-form.cjs.entry.js.map 2 years ago sc-cart-header.cjs.entry.js 2 years ago sc-cart-header.cjs.entry.js.map 2 years ago sc-cart-icon.cjs.entry.js 2 years ago sc-cart-icon.cjs.entry.js.map 2 years ago sc-cart-loader.cjs.entry.js 2 years ago sc-cart-loader.cjs.entry.js.map 2 years ago sc-cart-session-provider_3.cjs.entry.js 2 years ago sc-cart-session-provider_3.cjs.entry.js.map 2 years ago sc-cart-submit.cjs.entry.js 2 years ago sc-cart-submit.cjs.entry.js.map 2 years ago sc-cart.cjs.entry.js 2 years ago sc-cart.cjs.entry.js.map 2 years ago sc-cc-logo_2.cjs.entry.js 2 years ago sc-cc-logo_2.cjs.entry.js.map 2 years ago sc-charges-list.cjs.entry.js 2 years ago sc-charges-list.cjs.entry.js.map 2 years ago sc-checkout-form-errors.cjs.entry.js 2 years ago sc-checkout-form-errors.cjs.entry.js.map 2 years ago sc-checkout-mollie-payment_2.cjs.entry.js 2 years ago sc-checkout-mollie-payment_2.cjs.entry.js.map 2 years ago sc-checkout-product-price-variant-selector.cjs.entry.js 2 years ago sc-checkout-product-price-variant-selector.cjs.entry.js.map 2 years ago sc-checkout-stock-alert_8.cjs.entry.js 2 years ago sc-checkout-stock-alert_8.cjs.entry.js.map 2 years ago sc-checkout.cjs.entry.js 2 years ago sc-checkout.cjs.entry.js.map 2 years ago sc-choice-container.cjs.entry.js 2 years ago sc-choice-container.cjs.entry.js.map 2 years ago sc-choice.cjs.entry.js 2 years ago sc-choice.cjs.entry.js.map 2 years ago sc-choices.cjs.entry.js 2 years ago sc-choices.cjs.entry.js.map 2 years ago sc-column_2.cjs.entry.js 2 years ago sc-column_2.cjs.entry.js.map 2 years ago sc-compact-address_11.cjs.entry.js 2 years ago sc-compact-address_11.cjs.entry.js.map 2 years ago sc-conditional-form.cjs.entry.js 2 years ago sc-conditional-form.cjs.entry.js.map 2 years ago sc-consumer.cjs.entry.js 2 years ago sc-consumer.cjs.entry.js.map 2 years ago sc-coupon-form.cjs.entry.js 2 years ago sc-coupon-form.cjs.entry.js.map 2 years ago sc-custom-order-price-input.cjs.entry.js 2 years ago sc-custom-order-price-input.cjs.entry.js.map 2 years ago sc-customer-details.cjs.entry.js 2 years ago sc-customer-details.cjs.entry.js.map 2 years ago sc-customer-edit.cjs.entry.js 2 years ago sc-customer-edit.cjs.entry.js.map 2 years ago sc-customer-email.cjs.entry.js 2 years ago sc-customer-email.cjs.entry.js.map 2 years ago sc-customer-firstname.cjs.entry.js 2 years ago sc-customer-firstname.cjs.entry.js.map 2 years ago sc-customer-lastname.cjs.entry.js 2 years ago sc-customer-lastname.cjs.entry.js.map 2 years ago sc-customer-name.cjs.entry.js 2 years ago sc-customer-name.cjs.entry.js.map 2 years ago sc-customer-phone.cjs.entry.js 2 years ago sc-customer-phone.cjs.entry.js.map 2 years ago sc-dashboard-customer-details.cjs.entry.js 2 years ago sc-dashboard-customer-details.cjs.entry.js.map 2 years ago sc-dashboard-downloads-list.cjs.entry.js 2 years ago sc-dashboard-downloads-list.cjs.entry.js.map 2 years ago sc-divider.cjs.entry.js 2 years ago sc-divider.cjs.entry.js.map 2 years ago sc-donation-choices.cjs.entry.js 2 years ago sc-donation-choices.cjs.entry.js.map 2 years ago sc-downloads-list.cjs.entry.js 2 years ago sc-downloads-list.cjs.entry.js.map 2 years ago sc-dropdown_3.cjs.entry.js 2 years ago sc-dropdown_3.cjs.entry.js.map 2 years ago sc-empty.cjs.entry.js 2 years ago sc-empty.cjs.entry.js.map 2 years ago sc-express-payment.cjs.entry.js 2 years ago sc-express-payment.cjs.entry.js.map 2 years ago sc-feature-demo-banner.cjs.entry.js 2 years ago sc-feature-demo-banner.cjs.entry.js.map 2 years ago sc-form-control_2.cjs.entry.js 2 years ago sc-form-control_2.cjs.entry.js.map 2 years ago sc-form-row.cjs.entry.js 2 years ago sc-form-row.cjs.entry.js.map 2 years ago sc-form.cjs.entry.js 2 years ago sc-form.cjs.entry.js.map 2 years ago sc-format-bytes.cjs.entry.js 2 years ago sc-format-bytes.cjs.entry.js.map 2 years ago sc-format-interval.cjs.entry.js 2 years ago sc-format-interval.cjs.entry.js.map 2 years ago sc-fulfillment-shipping-status-badge.cjs.entry.js 2 years ago sc-fulfillment-shipping-status-badge.cjs.entry.js.map 2 years ago sc-fulfillments.cjs.entry.js 2 years ago sc-fulfillments.cjs.entry.js.map 2 years ago sc-heading_2.cjs.entry.js 2 years ago sc-heading_2.cjs.entry.js.map 2 years ago sc-image-slider.cjs.entry.js 2 years ago sc-image-slider.cjs.entry.js.map 2 years ago sc-invoices-list.cjs.entry.js 2 years ago sc-invoices-list.cjs.entry.js.map 2 years ago sc-license.cjs.entry.js 2 years ago sc-license.cjs.entry.js.map 2 years ago sc-licenses-list.cjs.entry.js 2 years ago sc-licenses-list.cjs.entry.js.map 2 years ago sc-line-item-bump.cjs.entry.js 2 years ago sc-line-item-bump.cjs.entry.js.map 2 years ago sc-line-item-total.cjs.entry.js 2 years ago sc-line-item-total.cjs.entry.js.map 2 years ago sc-line-item.cjs.entry.js 2 years ago sc-line-item.cjs.entry.js.map 2 years ago sc-line-items-provider.cjs.entry.js 2 years ago sc-line-items-provider.cjs.entry.js.map 2 years ago sc-line-items.cjs.entry.js 2 years ago sc-line-items.cjs.entry.js.map 2 years ago sc-login-form.cjs.entry.js 2 years ago sc-login-form.cjs.entry.js.map 2 years ago sc-manual-payment-method_3.cjs.entry.js 2 years ago sc-manual-payment-method_3.cjs.entry.js.map 2 years ago sc-menu-divider.cjs.entry.js 2 years ago sc-menu-divider.cjs.entry.js.map 2 years ago sc-menu-label_2.cjs.entry.js 2 years ago sc-menu-label_2.cjs.entry.js.map 2 years ago sc-mollie-add-method.cjs.entry.js 2 years ago sc-mollie-add-method.cjs.entry.js.map 2 years ago sc-order-confirmation-customer.cjs.entry.js 2 years ago sc-order-confirmation-customer.cjs.entry.js.map 2 years ago sc-order-confirmation-details.cjs.entry.js 2 years ago sc-order-confirmation-details.cjs.entry.js.map 2 years ago sc-order-confirmation-line-items_2.cjs.entry.js 2 years ago sc-order-confirmation-line-items_2.cjs.entry.js.map 2 years ago sc-order-confirmation.cjs.entry.js 2 years ago sc-order-confirmation.cjs.entry.js.map 2 years ago sc-order-coupon-form.cjs.entry.js 2 years ago sc-order-coupon-form.cjs.entry.js.map 2 years ago sc-order-detail.cjs.entry.js 2 years ago sc-order-detail.cjs.entry.js.map 2 years ago sc-order-fulfillment-badge.cjs.entry.js 2 years ago sc-order-fulfillment-badge.cjs.entry.js.map 2 years ago sc-order-manual-instructions.cjs.entry.js 2 years ago sc-order-manual-instructions.cjs.entry.js.map 2 years ago sc-order-password.cjs.entry.js 2 years ago sc-order-password.cjs.entry.js.map 2 years ago sc-order-return-badge.cjs.entry.js 2 years ago sc-order-return-badge.cjs.entry.js.map 2 years ago sc-order-shipment-badge.cjs.entry.js 2 years ago sc-order-shipment-badge.cjs.entry.js.map 2 years ago sc-order-status-badge.cjs.entry.js 2 years ago sc-order-status-badge.cjs.entry.js.map 2 years ago sc-order-submit.cjs.entry.js 2 years ago sc-order-submit.cjs.entry.js.map 2 years ago sc-order-summary.cjs.entry.js 2 years ago sc-order-summary.cjs.entry.js.map 2 years ago sc-order.cjs.entry.js 2 years ago sc-order.cjs.entry.js.map 2 years ago sc-orders-list.cjs.entry.js 2 years ago sc-orders-list.cjs.entry.js.map 2 years ago sc-pagination.cjs.entry.js 2 years ago sc-pagination.cjs.entry.js.map 2 years ago sc-password-nag.cjs.entry.js 2 years ago sc-password-nag.cjs.entry.js.map 2 years ago sc-password.cjs.entry.js 2 years ago sc-password.cjs.entry.js.map 2 years ago sc-payment-method-choice_2.cjs.entry.js 2 years ago sc-payment-method-choice_2.cjs.entry.js.map 2 years ago sc-payment-method-details.cjs.entry.js 2 years ago sc-payment-method-details.cjs.entry.js.map 2 years ago sc-payment-methods-list.cjs.entry.js 2 years ago sc-payment-methods-list.cjs.entry.js.map 2 years ago sc-payment.cjs.entry.js 2 years ago sc-payment.cjs.entry.js.map 2 years ago sc-paypal-add-method.cjs.entry.js 2 years ago sc-paypal-add-method.cjs.entry.js.map 2 years ago sc-paypal-buttons_2.cjs.entry.js 2 years ago sc-paypal-buttons_2.cjs.entry.js.map 2 years ago sc-paystack-add-method.cjs.entry.js 2 years ago sc-paystack-add-method.cjs.entry.js.map 2 years ago sc-phone-input.cjs.entry.js 2 years ago sc-phone-input.cjs.entry.js.map 2 years ago sc-pill-option.cjs.entry.js 2 years ago sc-pill-option.cjs.entry.js.map 2 years ago sc-premium-tag.cjs.entry.js 2 years ago sc-premium-tag.cjs.entry.js.map 2 years ago sc-price-choice-container.cjs.entry.js 2 years ago sc-price-choice-container.cjs.entry.js.map 2 years ago sc-price-choice.cjs.entry.js 2 years ago sc-price-choice.cjs.entry.js.map 2 years ago sc-price-choices.cjs.entry.js 2 years ago sc-price-choices.cjs.entry.js.map 2 years ago sc-price-input.cjs.entry.js 2 years ago sc-price-input.cjs.entry.js.map 2 years ago sc-price-range.cjs.entry.js 2 years ago sc-price-range.cjs.entry.js.map 2 years ago sc-price.cjs.entry.js 2 years ago sc-price.cjs.entry.js.map 2 years ago sc-product-buy-button.cjs.entry.js 2 years ago sc-product-buy-button.cjs.entry.js.map 2 years ago sc-product-donation-amount-choice.cjs.entry.js 2 years ago sc-product-donation-amount-choice.cjs.entry.js.map 2 years ago sc-product-donation-choices.cjs.entry.js 2 years ago sc-product-donation-choices.cjs.entry.js.map 2 years ago sc-product-donation-custom-amount.cjs.entry.js 2 years ago sc-product-donation-custom-amount.cjs.entry.js.map 2 years ago sc-product-item-image_3.cjs.entry.js 2 years ago sc-product-item-image_3.cjs.entry.js.map 2 years ago sc-product-item-list.cjs.entry.js 2 years ago sc-product-item-list.cjs.entry.js.map 2 years ago sc-product-item.cjs.entry.js 2 years ago sc-product-item.cjs.entry.js.map 2 years ago sc-product-line-item_2.cjs.entry.js 2 years ago sc-product-line-item_2.cjs.entry.js.map 2 years ago sc-product-pills-variant-option.cjs.entry.js 2 years ago sc-product-pills-variant-option.cjs.entry.js.map 2 years ago sc-product-price-choices.cjs.entry.js 2 years ago sc-product-price-choices.cjs.entry.js.map 2 years ago sc-product-price-modal.cjs.entry.js 2 years ago sc-product-price-modal.cjs.entry.js.map 2 years ago sc-product-price.cjs.entry.js 2 years ago sc-product-price.cjs.entry.js.map 2 years ago sc-product-quantity.cjs.entry.js 2 years ago sc-product-quantity.cjs.entry.js.map 2 years ago sc-product-selected-price.cjs.entry.js 2 years ago sc-product-selected-price.cjs.entry.js.map 2 years ago sc-product-text.cjs.entry.js 2 years ago sc-product-text.cjs.entry.js.map 2 years ago sc-provider.cjs.entry.js 2 years ago sc-provider.cjs.entry.js.map 2 years ago sc-provisional-banner.cjs.entry.js 2 years ago sc-provisional-banner.cjs.entry.js.map 2 years ago sc-purchase-downloads-list.cjs.entry.js 2 years ago sc-purchase-downloads-list.cjs.entry.js.map 2 years ago sc-recurring-price-choice-container.cjs.entry.js 2 years ago sc-recurring-price-choice-container.cjs.entry.js.map 2 years ago sc-rich-text.cjs.entry.js 2 years ago sc-rich-text.cjs.entry.js.map 2 years ago sc-spacing.cjs.entry.js 2 years ago sc-spacing.cjs.entry.js.map 2 years ago sc-stacked-list_2.cjs.entry.js 2 years ago sc-stacked-list_2.cjs.entry.js.map 2 years ago sc-stripe-add-method.cjs.entry.js 2 years ago sc-stripe-add-method.cjs.entry.js.map 2 years ago sc-stripe-element.cjs.entry.js 2 years ago sc-stripe-element.cjs.entry.js.map 2 years ago sc-stripe-payment-element.cjs.entry.js 2 years ago sc-stripe-payment-element.cjs.entry.js.map 2 years ago sc-stripe-payment-request.cjs.entry.js 2 years ago sc-stripe-payment-request.cjs.entry.js.map 2 years ago sc-subscription-ad-hoc-confirm.cjs.entry.js 2 years ago sc-subscription-ad-hoc-confirm.cjs.entry.js.map 2 years ago sc-subscription-details_2.cjs.entry.js 2 years ago sc-subscription-details_2.cjs.entry.js.map 2 years ago sc-subscription-payment-method.cjs.entry.js 2 years ago sc-subscription-payment-method.cjs.entry.js.map 2 years ago sc-subscription-payment.cjs.entry.js 2 years ago sc-subscription-payment.cjs.entry.js.map 2 years ago sc-subscription-switch.cjs.entry.js 2 years ago sc-subscription-switch.cjs.entry.js.map 2 years ago sc-subscription-variation-confirm.cjs.entry.js 2 years ago sc-subscription-variation-confirm.cjs.entry.js.map 2 years ago sc-subscription.cjs.entry.js 2 years ago sc-subscription.cjs.entry.js.map 2 years ago sc-subscriptions-list.cjs.entry.js 2 years ago sc-subscriptions-list.cjs.entry.js.map 2 years ago sc-summary.cjs.entry.js 2 years ago sc-summary.cjs.entry.js.map 2 years ago sc-switch.cjs.entry.js 2 years ago sc-switch.cjs.entry.js.map 2 years ago sc-tab-group.cjs.entry.js 2 years ago sc-tab-group.cjs.entry.js.map 2 years ago sc-tab-panel.cjs.entry.js 2 years ago sc-tab-panel.cjs.entry.js.map 2 years ago sc-tab.cjs.entry.js 2 years ago sc-tab.cjs.entry.js.map 2 years ago sc-table-head.cjs.entry.js 2 years ago sc-table-head.cjs.entry.js.map 2 years ago sc-table_3.cjs.entry.js 2 years ago sc-table_3.cjs.entry.js.map 2 years ago sc-tag.cjs.entry.js 2 years ago sc-tag.cjs.entry.js.map 2 years ago sc-toggle.cjs.entry.js 2 years ago sc-toggle.cjs.entry.js.map 2 years ago sc-toggles.cjs.entry.js 2 years ago sc-toggles.cjs.entry.js.map 2 years ago sc-total.cjs.entry.js 2 years ago sc-total.cjs.entry.js.map 2 years ago sc-upcoming-invoice.cjs.entry.js 2 years ago sc-upcoming-invoice.cjs.entry.js.map 2 years ago sc-upgrade-required.cjs.entry.js 2 years ago sc-upgrade-required.cjs.entry.js.map 2 years ago sc-upsell-countdown-timer.cjs.entry.js 2 years ago sc-upsell-countdown-timer.cjs.entry.js.map 2 years ago sc-upsell-no-thanks-button.cjs.entry.js 2 years ago sc-upsell-no-thanks-button.cjs.entry.js.map 2 years ago sc-upsell-submit-button.cjs.entry.js 2 years ago sc-upsell-submit-button.cjs.entry.js.map 2 years ago sc-upsell-totals.cjs.entry.js 2 years ago sc-upsell-totals.cjs.entry.js.map 2 years ago sc-upsell.cjs.entry.js 2 years ago sc-upsell.cjs.entry.js.map 2 years ago sc-visually-hidden.cjs.entry.js 2 years ago sc-visually-hidden.cjs.entry.js.map 2 years ago sc-wordpress-password-edit.cjs.entry.js 2 years ago sc-wordpress-password-edit.cjs.entry.js.map 2 years ago sc-wordpress-user-edit.cjs.entry.js 2 years ago sc-wordpress-user-edit.cjs.entry.js.map 2 years ago sc-wordpress-user.cjs.entry.js 2 years ago sc-wordpress-user.cjs.entry.js.map 2 years ago store-34d62f12.js 2 years ago store-34d62f12.js.map 2 years ago store-7e035943.js 2 years ago store-7e035943.js.map 2 years ago store-d24717c6.js 2 years ago store-d24717c6.js.map 2 years ago surecart.cjs.js 2 years ago surecart.cjs.js.map 2 years ago tax-736ff458.js 2 years ago tax-736ff458.js.map 2 years ago universe-0cf1168a.js 2 years ago universe-0cf1168a.js.map 2 years ago util-b877b2bd.js 2 years ago util-b877b2bd.js.map 2 years ago utils-ee1bb9d3.js 2 years ago utils-ee1bb9d3.js.map 2 years ago watchers-2ad3abd1.js 2 years ago watchers-2ad3abd1.js.map 2 years ago watchers-758e6979.js 2 years ago watchers-758e6979.js.map 2 years ago watchers-cb566474.js 2 years ago watchers-cb566474.js.map 2 years ago watchers-dc559477.js 2 years ago watchers-dc559477.js.map 2 years ago watchers-fb1bab08.js 2 years ago watchers-fb1bab08.js.map 2 years ago
sc-subscription-switch.cjs.entry.js
241 lines
1 'use strict';
2
3 Object.defineProperty(exports, '__esModule', { value: true });
4
5 const index = require('./index-8acc3c89.js');
6 const fetch = require('./fetch-6192c074.js');
7 const lazy = require('./lazy-2b509fa7.js');
8 const price = require('./price-653ec1cb.js');
9 const addQueryArgs = require('./add-query-args-49dcb630.js');
10 require('./remove-query-args-b57e8cd3.js');
11 require('./currency-71fce0f0.js');
12
13 const scSubscriptionSwitchCss = ":host{display:block;position:relative}[hidden]{display:none !important}.subscriptions-switch{display:grid;gap:0.5em}.subscriptions-switch__switcher{background:rgba(0, 0, 0, 0.035);padding:2px;line-height:1;border-radius:var(--sc-border-radius-small)}";
14 const ScSubscriptionSwitchStyle0 = scSubscriptionSwitchCss;
15
16 const ScSubscriptionSwitch = class {
17 constructor(hostRef) {
18 index.registerInstance(this, hostRef);
19 this.query = undefined;
20 this.heading = undefined;
21 this.productGroupId = undefined;
22 this.productId = undefined;
23 this.subscription = undefined;
24 this.filterAbove = 4;
25 this.successUrl = window.location.href;
26 this.selectedPrice = undefined;
27 this.products = [];
28 this.prices = undefined;
29 this.filter = 'month';
30 this.hasFilters = undefined;
31 this.showFilters = undefined;
32 this.loading = undefined;
33 this.busy = undefined;
34 this.error = undefined;
35 }
36 componentWillLoad() {
37 lazy.onFirstVisible(this.el, async () => {
38 try {
39 this.loading = true;
40 await Promise.all([this.getGroup(), this.getProductPrices()]);
41 }
42 catch (e) {
43 console.error(e);
44 if (e === null || e === void 0 ? void 0 : e.message) {
45 this.error = e.message;
46 }
47 else {
48 this.error = wp.i18n.__('Something went wrong', 'surecart');
49 }
50 }
51 finally {
52 this.loading = false;
53 }
54 });
55 this.handleSubscriptionChange();
56 }
57 handleProductsChange() {
58 var _a;
59 this.prices = this.products
60 .map(product => { var _a; return (_a = product === null || product === void 0 ? void 0 : product.prices) === null || _a === void 0 ? void 0 : _a.data; })
61 .flat()
62 .filter((v, i, a) => a.findIndex(t => t.id === v.id) === i) // remove duplicates.
63 .filter(price => !(price === null || price === void 0 ? void 0 : price.archived)) // remove archived
64 .filter(price => price.portal_subscription_update_enabled); // only show prices that can be upgraded to.
65 this.showFilters = ((_a = this.prices) === null || _a === void 0 ? void 0 : _a.length) > this.filterAbove;
66 }
67 handlePricesChange(val, prev) {
68 if (!(prev === null || prev === void 0 ? void 0 : prev.length) && (val === null || val === void 0 ? void 0 : val.length)) {
69 this.selectedPrice = val.find(price => { var _a, _b; return price.id === ((_b = (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.price) === null || _b === void 0 ? void 0 : _b.id); });
70 }
71 this.hasFilters = {
72 ...this.hasFilters,
73 split: this.prices.some(price => !!(price === null || price === void 0 ? void 0 : price.recurring_period_count) && !(price === null || price === void 0 ? void 0 : price.archived)),
74 month: this.prices.some(price => price.recurring_interval === 'month' && !(price === null || price === void 0 ? void 0 : price.recurring_period_count) && !(price === null || price === void 0 ? void 0 : price.archived)),
75 year: this.prices.some(price => price.recurring_interval === 'year' && !(price === null || price === void 0 ? void 0 : price.recurring_period_count) && !(price === null || price === void 0 ? void 0 : price.archived)),
76 never: this.prices.some(price => (price.recurring_interval === 'never' || !price.recurring_interval) && !(price === null || price === void 0 ? void 0 : price.archived)),
77 };
78 }
79 handleSubscriptionChange() {
80 var _a, _b;
81 this.filter = ((_b = (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.price) === null || _b === void 0 ? void 0 : _b.recurring_interval) || 'month';
82 }
83 /** Get all subscriptions */
84 async getGroup() {
85 if (!this.productGroupId)
86 return;
87 const products = (await await fetch.apiFetch({
88 path: addQueryArgs.addQueryArgs(`surecart/v1/products/`, {
89 product_group_ids: [this.productGroupId],
90 expand: ['prices'],
91 ...this.query,
92 }),
93 }));
94 this.products = [...this.products, ...products];
95 }
96 /** Get the product's prices. */
97 async getProductPrices() {
98 if (!this.productId)
99 return;
100 const product = (await await fetch.apiFetch({
101 path: addQueryArgs.addQueryArgs(`surecart/v1/products/${this.productId}`, {
102 expand: ['prices'],
103 }),
104 }));
105 this.products = [...this.products, ...[product]];
106 }
107 async handleSubmit(e) {
108 var _a, _b, _c, _d, _e, _f, _g, _h;
109 const { plan } = await e.target.getFormJson();
110 const price = this.prices.find(p => p.id === plan);
111 const currentPlan = (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.price;
112 if ((price === null || price === void 0 ? void 0 : price.id) === currentPlan.id && !(price === null || price === void 0 ? void 0 : price.ad_hoc) && !((_c = (_b = this.subscription) === null || _b === void 0 ? void 0 : _b.variant_options) === null || _c === void 0 ? void 0 : _c.length))
113 return;
114 // confirm product variation.
115 if ((_e = (_d = this.subscription) === null || _d === void 0 ? void 0 : _d.variant_options) === null || _e === void 0 ? void 0 : _e.length) {
116 this.busy = true;
117 return window.location.assign(addQueryArgs.addQueryArgs(this.successUrl, {
118 action: 'confirm_variation',
119 price_id: plan,
120 ...(((_f = this.subscription) === null || _f === void 0 ? void 0 : _f.live_mode) === false ? { live_mode: false } : {}),
121 }));
122 }
123 // confirm ad_hoc amount.
124 if (price === null || price === void 0 ? void 0 : price.ad_hoc) {
125 this.busy = true;
126 return window.location.assign(addQueryArgs.addQueryArgs(this.successUrl, {
127 action: 'confirm_amount',
128 price_id: plan,
129 ...(((_g = this.subscription) === null || _g === void 0 ? void 0 : _g.live_mode) === false ? { live_mode: false } : {}),
130 }));
131 }
132 // confirm plan.
133 this.busy = true;
134 window.location.assign(addQueryArgs.addQueryArgs(this.successUrl, {
135 action: 'confirm',
136 price_id: plan,
137 ...(((_h = this.subscription) === null || _h === void 0 ? void 0 : _h.live_mode) === false ? { live_mode: false } : {}),
138 }));
139 }
140 renderSwitcher() {
141 const hasMultipleFilters = Object.values(this.hasFilters || {}).filter(v => !!v).length > 1;
142 if (!hasMultipleFilters)
143 return;
144 if (!this.showFilters)
145 return;
146 return (index.h("sc-flex", { slot: "end", class: "subscriptions-switch__switcher" }, this.hasFilters.month && (index.h("sc-button", { onClick: () => (this.filter = 'month'), size: "small", type: this.filter === 'month' ? 'default' : 'text' }, wp.i18n.__('Monthly', 'surecart'))), this.hasFilters.week && (index.h("sc-button", { onClick: () => (this.filter = 'week'), size: "small", type: this.filter === 'week' ? 'default' : 'text' }, wp.i18n.__('Weekly', 'surecart'))), this.hasFilters.year && (index.h("sc-button", { onClick: () => (this.filter = 'year'), size: "small", type: this.filter === 'year' ? 'default' : 'text' }, wp.i18n.__('Yearly', 'surecart'))), this.hasFilters.never && (index.h("sc-button", { onClick: () => (this.filter = 'never'), size: "small", type: this.filter === 'never' ? 'default' : 'text' }, wp.i18n.__('Lifetime', 'surecart'))), this.hasFilters.split && (index.h("sc-button", { onClick: () => (this.filter = 'split'), size: "small", type: this.filter === 'split' ? 'default' : 'text' }, wp.i18n.__('Payment Plan', 'surecart')))));
147 }
148 renderLoading() {
149 return (index.h("sc-choice", { name: "loading", disabled: true }, index.h("sc-skeleton", { style: { width: '60px', display: 'inline-block' } }), index.h("sc-skeleton", { style: { width: '80px', display: 'inline-block' }, slot: "price" }), index.h("sc-skeleton", { style: { width: '120px', display: 'inline-block' }, slot: "description" })));
150 }
151 /** Is the price hidden or not */
152 isHidden(price) {
153 // don't hide if no filters.
154 if (!this.showFilters)
155 return false;
156 // hide if the filter does not match the recurring interval.
157 let hidden = this.filter !== price.recurring_interval;
158 // if filter is never, show prices with non-recurring interval.
159 if (this.filter === 'never' && !(price === null || price === void 0 ? void 0 : price.recurring_interval)) {
160 hidden = false;
161 }
162 // if filter is split, show prices with a recurring_period_count.
163 if (this.filter === 'split' && (price === null || price === void 0 ? void 0 : price.recurring_period_count)) {
164 hidden = false;
165 }
166 return hidden;
167 }
168 renderContent() {
169 if (this.loading) {
170 return this.renderLoading();
171 }
172 return (index.h("sc-choices", { required: true }, index.h("div", null, (this.prices || [])
173 .filter(price => !price.archived)
174 .filter(price => { var _a; return (price === null || price === void 0 ? void 0 : price.currency) === ((_a = this.subscription) === null || _a === void 0 ? void 0 : _a.currency); })
175 .sort((a, b) => a.amount - b.amount)
176 .map(price$1 => {
177 var _a, _b;
178 const currentPlan = ((_b = (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.price) === null || _b === void 0 ? void 0 : _b.id) === (price$1 === null || price$1 === void 0 ? void 0 : price$1.id);
179 const product = this.products.find(product => product.id === (price$1 === null || price$1 === void 0 ? void 0 : price$1.product));
180 return (index.h("sc-choice", { key: price$1 === null || price$1 === void 0 ? void 0 : price$1.id, checked: currentPlan, name: "plan", value: price$1 === null || price$1 === void 0 ? void 0 : price$1.id, hidden: this.isHidden(price$1), onScChange: e => {
181 if (e.detail) {
182 this.selectedPrice = this.prices.find(p => p.id === (price$1 === null || price$1 === void 0 ? void 0 : price$1.id));
183 }
184 } }, index.h("div", null, index.h("strong", null, product === null || product === void 0 ? void 0 :
185 product.name, " ", (price$1 === null || price$1 === void 0 ? void 0 : price$1.name) && index.h(index.Fragment, null, " \u2014 ", price$1 === null || price$1 === void 0 ? void 0 :
186 price$1.name))), index.h("div", { slot: "description" }, (price$1 === null || price$1 === void 0 ? void 0 : price$1.ad_hoc) ? (`${wp.i18n.__('Custom amount', 'surecart')} ${price.intervalString(price$1)}`) : (index.h(index.Fragment, null, index.h("sc-format-number", { type: "currency", currency: (price$1 === null || price$1 === void 0 ? void 0 : price$1.currency) || 'usd', value: price$1 === null || price$1 === void 0 ? void 0 : price$1.amount }), " ", price.intervalString(price$1, { showOnce: true })))), currentPlan && (index.h("sc-tag", { type: "warning", slot: "price" }, wp.i18n.__('Current Plan', 'surecart')))));
187 }))));
188 }
189 buttonText() {
190 var _a, _b, _c, _d, _e, _f, _g, _h, _j;
191 if ((_b = (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.variant_options) === null || _b === void 0 ? void 0 : _b.length) {
192 if (((_c = this.selectedPrice) === null || _c === void 0 ? void 0 : _c.id) === ((_e = (_d = this.subscription) === null || _d === void 0 ? void 0 : _d.price) === null || _e === void 0 ? void 0 : _e.id)) {
193 return wp.i18n.__('Update Options', 'surecart');
194 }
195 else {
196 return wp.i18n.__('Choose Options', 'surecart');
197 }
198 }
199 if ((_f = this.selectedPrice) === null || _f === void 0 ? void 0 : _f.ad_hoc) {
200 if (((_g = this.selectedPrice) === null || _g === void 0 ? void 0 : _g.id) === ((_j = (_h = this.subscription) === null || _h === void 0 ? void 0 : _h.price) === null || _j === void 0 ? void 0 : _j.id)) {
201 return wp.i18n.__('Update Amount', 'surecart');
202 }
203 else {
204 return wp.i18n.__('Choose Amount', 'surecart');
205 }
206 }
207 return wp.i18n.__('Next', 'surecart');
208 }
209 buttonDisabled() {
210 var _a, _b, _c, _d, _e;
211 if ((_a = this.subscription) === null || _a === void 0 ? void 0 : _a.variant_options) {
212 return false;
213 }
214 return ((_c = (_b = this.subscription) === null || _b === void 0 ? void 0 : _b.price) === null || _c === void 0 ? void 0 : _c.id) === ((_d = this.selectedPrice) === null || _d === void 0 ? void 0 : _d.id) && !((_e = this.selectedPrice) === null || _e === void 0 ? void 0 : _e.ad_hoc);
215 }
216 render() {
217 var _a, _b, _c, _d, _e, _f;
218 // we are not loading and we don't have enough prices to switch.
219 if (!this.loading && ((_a = this.prices) === null || _a === void 0 ? void 0 : _a.length) < 2) {
220 if (!((_c = (_b = this.prices) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.ad_hoc) && !((_e = (_d = this.subscription) === null || _d === void 0 ? void 0 : _d.variant_options) === null || _e === void 0 ? void 0 : _e.length)) {
221 return null;
222 }
223 }
224 // subscription is a payment plan.
225 if ((_f = this.subscription) === null || _f === void 0 ? void 0 : _f.finite) {
226 return (index.h("sc-alert", { type: "info", open: true }, wp.i18n.__('To make changes to your payment plan, please contact us.', 'surecart')));
227 }
228 return (index.h("sc-dashboard-module", { heading: this.heading || wp.i18n.__('Update Plan', 'surecart'), class: "subscription-switch", error: this.error }, index.h("span", { slot: "end" }, this.renderSwitcher()), index.h("sc-form", { class: "subscriptions-switch", onScFormSubmit: e => this.handleSubmit(e) }, this.renderContent(), index.h("sc-button", { type: "primary", full: true, submit: true, loading: this.loading || this.busy, disabled: this.buttonDisabled() }, this.buttonText(), " ", index.h("sc-icon", { name: "arrow-right", slot: "suffix" })), this.busy && index.h("sc-block-ui", { style: { zIndex: '9' } }))));
229 }
230 get el() { return index.getElement(this); }
231 static get watchers() { return {
232 "products": ["handleProductsChange"],
233 "prices": ["handlePricesChange"],
234 "subscription": ["handleSubscriptionChange"]
235 }; }
236 };
237 ScSubscriptionSwitch.style = ScSubscriptionSwitchStyle0;
238
239 exports.sc_subscription_switch = ScSubscriptionSwitch;
240
241 //# sourceMappingURL=sc-subscription-switch.cjs.entry.js.map