ManualPaymentMethods-e5dcf410.js
3 years ago
ManualPaymentMethods-e5dcf410.js.map
3 years ago
_commonjsHelpers-537d719a.js
4 years ago
_commonjsHelpers-537d719a.js.map
3 years ago
add-query-args-17c551b6.js
4 years ago
add-query-args-17c551b6.js.map
3 years ago
address-42b5c61b.js
3 years ago
address-42b5c61b.js.map
3 years ago
animation-registry-58bec802.js
3 years ago
animation-registry-58bec802.js.map
3 years ago
consumer-51f6d265.js
3 years ago
consumer-51f6d265.js.map
3 years ago
countries-0ec7ecdc.js
4 years ago
countries-0ec7ecdc.js.map
3 years ago
fetch-b673a242.js
3 years ago
fetch-b673a242.js.map
3 years ago
form-data-69000afe.js
3 years ago
form-data-69000afe.js.map
3 years ago
functions-77ef3f22.js
4 years ago
functions-77ef3f22.js.map
3 years ago
get-query-arg-53bf21e2.js
4 years ago
get-query-arg-53bf21e2.js.map
3 years ago
getters-52a52d79.js
3 years ago
getters-52a52d79.js.map
3 years ago
getters-6f3470fb.js
3 years ago
getters-6f3470fb.js.map
3 years ago
getters-c8a04b97.js
3 years ago
getters-c8a04b97.js.map
3 years ago
getters-f0455d23.js
3 years ago
getters-f0455d23.js.map
3 years ago
global-6f39d5d2.js
3 years ago
global-6f39d5d2.js.map
3 years ago
index-261b56ec.js
3 years ago
index-261b56ec.js.map
3 years ago
index-2643f18b.js
3 years ago
index-2643f18b.js.map
3 years ago
index-ac77ca60.js
3 years ago
index-ac77ca60.js.map
3 years ago
index-b901844d.js
3 years ago
index-b901844d.js.map
3 years ago
index-cf22257b.js
3 years ago
index-cf22257b.js.map
3 years ago
index.cjs.js
3 years ago
index.cjs.js.map
3 years ago
lazy-bc8baeab.js
4 years ago
lazy-bc8baeab.js.map
3 years ago
library-289cf13f.js
4 years ago
library-289cf13f.js.map
3 years ago
loader.cjs.js
3 years ago
loader.cjs.js.map
3 years ago
media-a7872d6d.js
3 years ago
media-a7872d6d.js.map
3 years ago
mutations-a3ec6490.js
3 years ago
mutations-a3ec6490.js.map
3 years ago
mutations-b8d54585.js
3 years ago
mutations-b8d54585.js.map
3 years ago
page-align-bf197eb4.js
3 years ago
page-align-bf197eb4.js.map
3 years ago
price-d3e21aa4.js
3 years ago
price-d3e21aa4.js.map
3 years ago
pure-5be33f24.js
4 years ago
pure-5be33f24.js.map
3 years ago
sc-address_3.cjs.entry.js
3 years ago
sc-address_3.cjs.entry.js.map
3 years ago
sc-alert.cjs.entry.js
3 years ago
sc-alert.cjs.entry.js.map
3 years ago
sc-avatar.cjs.entry.js
3 years ago
sc-avatar.cjs.entry.js.map
3 years ago
sc-badge-notice.cjs.entry.js
3 years ago
sc-badge-notice.cjs.entry.js.map
3 years ago
sc-block-ui.cjs.entry.js
3 years ago
sc-block-ui.cjs.entry.js.map
3 years ago
sc-breadcrumb.cjs.entry.js
3 years ago
sc-breadcrumb.cjs.entry.js.map
3 years ago
sc-breadcrumbs.cjs.entry.js
3 years ago
sc-breadcrumbs.cjs.entry.js.map
3 years ago
sc-button-group.cjs.entry.js
3 years ago
sc-button-group.cjs.entry.js.map
3 years ago
sc-button_2.cjs.entry.js
3 years ago
sc-button_2.cjs.entry.js.map
3 years ago
sc-cancel-dialog_2.cjs.entry.js
3 years ago
sc-cancel-dialog_2.cjs.entry.js.map
3 years ago
sc-cancel-discount_4.cjs.entry.js
3 years ago
sc-cancel-discount_4.cjs.entry.js.map
3 years ago
sc-card_2.cjs.entry.js
3 years ago
sc-card_2.cjs.entry.js.map
3 years ago
sc-cart-button.cjs.entry.js
3 years ago
sc-cart-button.cjs.entry.js.map
3 years ago
sc-cart-form-submit.cjs.entry.js
3 years ago
sc-cart-form-submit.cjs.entry.js.map
3 years ago
sc-cart-form.cjs.entry.js
3 years ago
sc-cart-form.cjs.entry.js.map
3 years ago
sc-cart-header.cjs.entry.js
3 years ago
sc-cart-header.cjs.entry.js.map
3 years ago
sc-cart-icon.cjs.entry.js
3 years ago
sc-cart-icon.cjs.entry.js.map
3 years ago
sc-cart-loader.cjs.entry.js
3 years ago
sc-cart-loader.cjs.entry.js.map
3 years ago
sc-cart-session-provider_3.cjs.entry.js
3 years ago
sc-cart-session-provider_3.cjs.entry.js.map
3 years ago
sc-cart-submit.cjs.entry.js
3 years ago
sc-cart-submit.cjs.entry.js.map
3 years ago
sc-cart.cjs.entry.js
3 years ago
sc-cart.cjs.entry.js.map
3 years ago
sc-cc-logo_2.cjs.entry.js
3 years ago
sc-cc-logo_2.cjs.entry.js.map
3 years ago
sc-charges-list.cjs.entry.js
3 years ago
sc-charges-list.cjs.entry.js.map
3 years ago
sc-checkbox.cjs.entry.js
3 years ago
sc-checkbox.cjs.entry.js.map
3 years ago
sc-checkout-form-errors.cjs.entry.js
3 years ago
sc-checkout-form-errors.cjs.entry.js.map
3 years ago
sc-checkout-mollie-payment.cjs.entry.js
3 years ago
sc-checkout-mollie-payment.cjs.entry.js.map
3 years ago
sc-checkout-unsaved-changes-warning_7.cjs.entry.js
3 years ago
sc-checkout-unsaved-changes-warning_7.cjs.entry.js.map
3 years ago
sc-checkout.cjs.entry.js
3 years ago
sc-checkout.cjs.entry.js.map
3 years ago
sc-choice-container.cjs.entry.js
3 years ago
sc-choice-container.cjs.entry.js.map
3 years ago
sc-choice.cjs.entry.js
3 years ago
sc-choice.cjs.entry.js.map
3 years ago
sc-choices.cjs.entry.js
3 years ago
sc-choices.cjs.entry.js.map
3 years ago
sc-column_2.cjs.entry.js
3 years ago
sc-column_2.cjs.entry.js.map
3 years ago
sc-compact-address_6.cjs.entry.js
3 years ago
sc-compact-address_6.cjs.entry.js.map
3 years ago
sc-conditional-form.cjs.entry.js
3 years ago
sc-conditional-form.cjs.entry.js.map
3 years ago
sc-consumer.cjs.entry.js
3 years ago
sc-consumer.cjs.entry.js.map
3 years ago
sc-coupon-form.cjs.entry.js
3 years ago
sc-coupon-form.cjs.entry.js.map
3 years ago
sc-custom-order-price-input.cjs.entry.js
3 years ago
sc-custom-order-price-input.cjs.entry.js.map
3 years ago
sc-customer-details.cjs.entry.js
3 years ago
sc-customer-details.cjs.entry.js.map
3 years ago
sc-customer-edit.cjs.entry.js
3 years ago
sc-customer-edit.cjs.entry.js.map
3 years ago
sc-customer-email.cjs.entry.js
3 years ago
sc-customer-email.cjs.entry.js.map
3 years ago
sc-customer-firstname.cjs.entry.js
3 years ago
sc-customer-firstname.cjs.entry.js.map
3 years ago
sc-customer-lastname.cjs.entry.js
3 years ago
sc-customer-lastname.cjs.entry.js.map
3 years ago
sc-customer-name.cjs.entry.js
3 years ago
sc-customer-name.cjs.entry.js.map
3 years ago
sc-customer-phone.cjs.entry.js
3 years ago
sc-customer-phone.cjs.entry.js.map
3 years ago
sc-dashboard-customer-details.cjs.entry.js
3 years ago
sc-dashboard-customer-details.cjs.entry.js.map
3 years ago
sc-dashboard-downloads-list.cjs.entry.js
3 years ago
sc-dashboard-downloads-list.cjs.entry.js.map
3 years ago
sc-dialog.cjs.entry.js
3 years ago
sc-dialog.cjs.entry.js.map
3 years ago
sc-divider.cjs.entry.js
3 years ago
sc-divider.cjs.entry.js.map
3 years ago
sc-donation-choices.cjs.entry.js
3 years ago
sc-donation-choices.cjs.entry.js.map
3 years ago
sc-downloads-list.cjs.entry.js
3 years ago
sc-downloads-list.cjs.entry.js.map
3 years ago
sc-dropdown_4.cjs.entry.js
3 years ago
sc-dropdown_4.cjs.entry.js.map
3 years ago
sc-empty.cjs.entry.js
3 years ago
sc-empty.cjs.entry.js.map
3 years ago
sc-express-payment.cjs.entry.js
3 years ago
sc-express-payment.cjs.entry.js.map
3 years ago
sc-flex.cjs.entry.js
3 years ago
sc-flex.cjs.entry.js.map
3 years ago
sc-form-control_2.cjs.entry.js
3 years ago
sc-form-control_2.cjs.entry.js.map
3 years ago
sc-form-row.cjs.entry.js
3 years ago
sc-form-row.cjs.entry.js.map
3 years ago
sc-form.cjs.entry.js
3 years ago
sc-form.cjs.entry.js.map
3 years ago
sc-format-bytes.cjs.entry.js
3 years ago
sc-format-bytes.cjs.entry.js.map
3 years ago
sc-format-date.cjs.entry.js
3 years ago
sc-format-date.cjs.entry.js.map
3 years ago
sc-format-interval.cjs.entry.js
3 years ago
sc-format-interval.cjs.entry.js.map
3 years ago
sc-format-number.cjs.entry.js
3 years ago
sc-format-number.cjs.entry.js.map
3 years ago
sc-heading_2.cjs.entry.js
3 years ago
sc-heading_2.cjs.entry.js.map
3 years ago
sc-icon.cjs.entry.js
3 years ago
sc-icon.cjs.entry.js.map
3 years ago
sc-image-slider.cjs.entry.js
3 years ago
sc-image-slider.cjs.entry.js.map
3 years ago
sc-invoices-list.cjs.entry.js
3 years ago
sc-invoices-list.cjs.entry.js.map
3 years ago
sc-licenses-list.cjs.entry.js
3 years ago
sc-licenses-list.cjs.entry.js.map
3 years ago
sc-line-item-bump.cjs.entry.js
3 years ago
sc-line-item-bump.cjs.entry.js.map
3 years ago
sc-line-item-total.cjs.entry.js
3 years ago
sc-line-item-total.cjs.entry.js.map
3 years ago
sc-line-item.cjs.entry.js
3 years ago
sc-line-item.cjs.entry.js.map
3 years ago
sc-line-items-provider.cjs.entry.js
3 years ago
sc-line-items-provider.cjs.entry.js.map
3 years ago
sc-line-items.cjs.entry.js
3 years ago
sc-line-items.cjs.entry.js.map
3 years ago
sc-login-form.cjs.entry.js
3 years ago
sc-login-form.cjs.entry.js.map
3 years ago
sc-menu-divider.cjs.entry.js
3 years ago
sc-menu-divider.cjs.entry.js.map
3 years ago
sc-mollie-add-method.cjs.entry.js
3 years ago
sc-mollie-add-method.cjs.entry.js.map
3 years ago
sc-order-confirmation-customer.cjs.entry.js
3 years ago
sc-order-confirmation-customer.cjs.entry.js.map
3 years ago
sc-order-confirmation-details.cjs.entry.js
3 years ago
sc-order-confirmation-details.cjs.entry.js.map
3 years ago
sc-order-confirmation-line-items_2.cjs.entry.js
3 years ago
sc-order-confirmation-line-items_2.cjs.entry.js.map
3 years ago
sc-order-confirmation.cjs.entry.js
3 years ago
sc-order-confirmation.cjs.entry.js.map
3 years ago
sc-order-coupon-form.cjs.entry.js
3 years ago
sc-order-coupon-form.cjs.entry.js.map
3 years ago
sc-order-detail.cjs.entry.js
3 years ago
sc-order-detail.cjs.entry.js.map
3 years ago
sc-order-manual-instructions.cjs.entry.js
3 years ago
sc-order-manual-instructions.cjs.entry.js.map
3 years ago
sc-order-password.cjs.entry.js
3 years ago
sc-order-password.cjs.entry.js.map
3 years ago
sc-order-status-badge.cjs.entry.js
3 years ago
sc-order-status-badge.cjs.entry.js.map
3 years ago
sc-order-submit.cjs.entry.js
3 years ago
sc-order-submit.cjs.entry.js.map
3 years ago
sc-order-summary.cjs.entry.js
3 years ago
sc-order-summary.cjs.entry.js.map
3 years ago
sc-order.cjs.entry.js
3 years ago
sc-order.cjs.entry.js.map
3 years ago
sc-orders-list.cjs.entry.js
3 years ago
sc-orders-list.cjs.entry.js.map
3 years ago
sc-pagination.cjs.entry.js
3 years ago
sc-pagination.cjs.entry.js.map
3 years ago
sc-password-nag.cjs.entry.js
3 years ago
sc-password-nag.cjs.entry.js.map
3 years ago
sc-payment-method-choice_2.cjs.entry.js
3 years ago
sc-payment-method-choice_2.cjs.entry.js.map
3 years ago
sc-payment-methods-list.cjs.entry.js
3 years ago
sc-payment-methods-list.cjs.entry.js.map
3 years ago
sc-payment.cjs.entry.js
3 years ago
sc-payment.cjs.entry.js.map
3 years ago
sc-paypal-add-method.cjs.entry.js
3 years ago
sc-paypal-add-method.cjs.entry.js.map
3 years ago
sc-paypal-buttons_2.cjs.entry.js
3 years ago
sc-paypal-buttons_2.cjs.entry.js.map
3 years ago
sc-phone-input.cjs.entry.js
3 years ago
sc-phone-input.cjs.entry.js.map
3 years ago
sc-premium-tag.cjs.entry.js
3 years ago
sc-premium-tag.cjs.entry.js.map
3 years ago
sc-price-choice-container.cjs.entry.js
3 years ago
sc-price-choice-container.cjs.entry.js.map
3 years ago
sc-price-choice.cjs.entry.js
3 years ago
sc-price-choice.cjs.entry.js.map
3 years ago
sc-price-choices.cjs.entry.js
3 years ago
sc-price-choices.cjs.entry.js.map
3 years ago
sc-price-input.cjs.entry.js
3 years ago
sc-price-input.cjs.entry.js.map
3 years ago
sc-price-range.cjs.entry.js
3 years ago
sc-price-range.cjs.entry.js.map
3 years ago
sc-product-buy-button.cjs.entry.js
3 years ago
sc-product-buy-button.cjs.entry.js.map
3 years ago
sc-product-item-image_3.cjs.entry.js
3 years ago
sc-product-item-image_3.cjs.entry.js.map
3 years ago
sc-product-item-list.cjs.entry.js
3 years ago
sc-product-item-list.cjs.entry.js.map
3 years ago
sc-product-item.cjs.entry.js
3 years ago
sc-product-item.cjs.entry.js.map
3 years ago
sc-product-line-item_2.cjs.entry.js
3 years ago
sc-product-line-item_2.cjs.entry.js.map
3 years ago
sc-product-price-choices.cjs.entry.js
3 years ago
sc-product-price-choices.cjs.entry.js.map
3 years ago
sc-product-price-modal.cjs.entry.js
3 years ago
sc-product-price-modal.cjs.entry.js.map
3 years ago
sc-product-price.cjs.entry.js
3 years ago
sc-product-price.cjs.entry.js.map
3 years ago
sc-product-quantity.cjs.entry.js
3 years ago
sc-product-quantity.cjs.entry.js.map
3 years ago
sc-product-selected-price.cjs.entry.js
3 years ago
sc-product-selected-price.cjs.entry.js.map
3 years ago
sc-product-text.cjs.entry.js
3 years ago
sc-product-text.cjs.entry.js.map
3 years ago
sc-prose.cjs.entry.js
3 years ago
sc-prose.cjs.entry.js.map
3 years ago
sc-provider.cjs.entry.js
3 years ago
sc-provider.cjs.entry.js.map
3 years ago
sc-purchase-downloads-list_2.cjs.entry.js
3 years ago
sc-purchase-downloads-list_2.cjs.entry.js.map
3 years ago
sc-radio-group.cjs.entry.js
3 years ago
sc-radio-group.cjs.entry.js.map
3 years ago
sc-radio.cjs.entry.js
3 years ago
sc-radio.cjs.entry.js.map
3 years ago
sc-rich-text.cjs.entry.js
3 years ago
sc-rich-text.cjs.entry.js.map
3 years ago
sc-skeleton.cjs.entry.js
3 years ago
sc-skeleton.cjs.entry.js.map
3 years ago
sc-stacked-list_2.cjs.entry.js
3 years ago
sc-stacked-list_2.cjs.entry.js.map
3 years ago
sc-stripe-add-method.cjs.entry.js
3 years ago
sc-stripe-add-method.cjs.entry.js.map
3 years ago
sc-stripe-element.cjs.entry.js
3 years ago
sc-stripe-element.cjs.entry.js.map
3 years ago
sc-stripe-payment-element.cjs.entry.js
3 years ago
sc-stripe-payment-element.cjs.entry.js.map
3 years ago
sc-stripe-payment-request.cjs.entry.js
3 years ago
sc-stripe-payment-request.cjs.entry.js.map
3 years ago
sc-subscription-ad-hoc-confirm.cjs.entry.js
3 years ago
sc-subscription-ad-hoc-confirm.cjs.entry.js.map
3 years ago
sc-subscription-details_2.cjs.entry.js
3 years ago
sc-subscription-details_2.cjs.entry.js.map
3 years ago
sc-subscription-payment-method.cjs.entry.js
3 years ago
sc-subscription-payment-method.cjs.entry.js.map
3 years ago
sc-subscription-payment.cjs.entry.js
3 years ago
sc-subscription-payment.cjs.entry.js.map
3 years ago
sc-subscription-switch.cjs.entry.js
3 years ago
sc-subscription-switch.cjs.entry.js.map
3 years ago
sc-subscription.cjs.entry.js
3 years ago
sc-subscription.cjs.entry.js.map
3 years ago
sc-subscriptions-list.cjs.entry.js
3 years ago
sc-subscriptions-list.cjs.entry.js.map
3 years ago
sc-switch.cjs.entry.js
3 years ago
sc-switch.cjs.entry.js.map
3 years ago
sc-tab-group.cjs.entry.js
3 years ago
sc-tab-group.cjs.entry.js.map
3 years ago
sc-tab-panel.cjs.entry.js
3 years ago
sc-tab-panel.cjs.entry.js.map
3 years ago
sc-tab.cjs.entry.js
3 years ago
sc-tab.cjs.entry.js.map
3 years ago
sc-table-head.cjs.entry.js
3 years ago
sc-table-head.cjs.entry.js.map
3 years ago
sc-table_3.cjs.entry.js
3 years ago
sc-table_3.cjs.entry.js.map
3 years ago
sc-tag.cjs.entry.js
3 years ago
sc-tag.cjs.entry.js.map
3 years ago
sc-text.cjs.entry.js
3 years ago
sc-text.cjs.entry.js.map
3 years ago
sc-toggle.cjs.entry.js
3 years ago
sc-toggle.cjs.entry.js.map
3 years ago
sc-toggles.cjs.entry.js
3 years ago
sc-toggles.cjs.entry.js.map
3 years ago
sc-tooltip.cjs.entry.js
3 years ago
sc-tooltip.cjs.entry.js.map
3 years ago
sc-total.cjs.entry.js
3 years ago
sc-total.cjs.entry.js.map
3 years ago
sc-upcoming-invoice.cjs.entry.js
3 years ago
sc-upcoming-invoice.cjs.entry.js.map
3 years ago
sc-upgrade-required.cjs.entry.js
3 years ago
sc-upgrade-required.cjs.entry.js.map
3 years ago
sc-wordpress-password-edit.cjs.entry.js
3 years ago
sc-wordpress-password-edit.cjs.entry.js.map
3 years ago
sc-wordpress-user-edit.cjs.entry.js
3 years ago
sc-wordpress-user-edit.cjs.entry.js.map
3 years ago
sc-wordpress-user.cjs.entry.js
3 years ago
sc-wordpress-user.cjs.entry.js.map
3 years ago
store-79bafee3.js
3 years ago
store-79bafee3.js.map
3 years ago
store-a92c3e74.js
3 years ago
store-a92c3e74.js.map
3 years ago
surecart.cjs.js
3 years ago
surecart.cjs.js.map
3 years ago
tax-39abdb3c.js
3 years ago
tax-39abdb3c.js.map
3 years ago
ui-c6cc5556.js
3 years ago
ui-c6cc5556.js.map
3 years ago
universe-874f42bb.js
3 years ago
universe-874f42bb.js.map
3 years ago
util-872b1a55.js
3 years ago
util-872b1a55.js.map
3 years ago
utils-806dad60.js
3 years ago
utils-806dad60.js.map
3 years ago
watchers-42477f79.js
3 years ago
watchers-42477f79.js.map
3 years ago
watchers-437b71fb.js
3 years ago
watchers-437b71fb.js.map
3 years ago
watchers-503cdd2a.js
3 years ago
watchers-503cdd2a.js.map
3 years ago
watchers-bce289f5.js
3 years ago
watchers-bce289f5.js.map
3 years ago
sc-form.cjs.entry.js
102 lines
| 1 | 'use strict'; |
| 2 | |
| 3 | Object.defineProperty(exports, '__esModule', { value: true }); |
| 4 | |
| 5 | const index = require('./index-ac77ca60.js'); |
| 6 | |
| 7 | /** |
| 8 | * Serializes a form and returns a plain object. If a form control with the same name appears more than once, the |
| 9 | * property will be converted to an array. |
| 10 | */ |
| 11 | function serialize(form) { |
| 12 | const formData = new FormData(form); |
| 13 | const object = {}; |
| 14 | formData.forEach((value, key) => { |
| 15 | object[key] = value; |
| 16 | }); |
| 17 | return object; |
| 18 | } |
| 19 | |
| 20 | const scFormCss = "sc-form{display:block}:host{display:block}::slotted(*:not(:last-child)),sc-form form>*:not(:last-child){margin-bottom:var(--sc-form-row-spacing, 0.75em)}::slotted(*:not(:last-child)).wp-block-spacer,sc-form form>*:not(:last-child).wp-block-spacer{margin-bottom:0}"; |
| 21 | |
| 22 | const ScForm = class { |
| 23 | constructor(hostRef) { |
| 24 | index.registerInstance(this, hostRef); |
| 25 | this.scSubmit = index.createEvent(this, "scSubmit", 7); |
| 26 | this.scFormSubmit = index.createEvent(this, "scFormSubmit", 7); |
| 27 | this.scFormChange = index.createEvent(this, "scFormChange", 7); |
| 28 | this.novalidate = false; |
| 29 | } |
| 30 | /** Serializes all form controls elements and returns a `FormData` object. */ |
| 31 | async getFormData() { |
| 32 | return new FormData(this.formElement); |
| 33 | } |
| 34 | async getFormJson() { |
| 35 | return serialize(this.formElement); |
| 36 | } |
| 37 | async handleChange() { |
| 38 | this.scFormChange.emit(serialize(this.formElement)); |
| 39 | } |
| 40 | async submit() { |
| 41 | return this.submitForm(); |
| 42 | } |
| 43 | /** Gets all form control elements (native and custom). */ |
| 44 | getFormControls() { |
| 45 | return [...this.form.querySelectorAll('*')]; |
| 46 | } |
| 47 | async validate() { |
| 48 | console.log('validate'); |
| 49 | const formControls = this.getFormControls(); |
| 50 | const formControlsThatReport = formControls.filter((el) => typeof el.reportValidity === 'function'); |
| 51 | if (!this.novalidate) { |
| 52 | for (const el of formControlsThatReport) { |
| 53 | // element is hidden, don't client-side validate. |
| 54 | if (!(el.offsetWidth || el.offsetHeight || el.getClientRects().length)) { |
| 55 | continue; |
| 56 | } |
| 57 | const isValid = await el.reportValidity(); |
| 58 | if (!isValid) { |
| 59 | console.log(el); |
| 60 | return false; |
| 61 | } |
| 62 | } |
| 63 | } |
| 64 | return true; |
| 65 | } |
| 66 | submitForm() { |
| 67 | // Calling form.submit() seems to bypass the submit event and constraint validation. Instead, we can inject a |
| 68 | // native submit button into the form, click it, then remove it to simulate a standard form submission. |
| 69 | const button = document.createElement('button'); |
| 70 | if (this.formElement) { |
| 71 | button.type = 'submit'; |
| 72 | button.style.position = 'absolute'; |
| 73 | button.style.width = '0'; |
| 74 | button.style.height = '0'; |
| 75 | button.style.clip = 'rect(0 0 0 0)'; |
| 76 | button.style.clipPath = 'inset(50%)'; |
| 77 | button.style.overflow = 'hidden'; |
| 78 | button.style.whiteSpace = 'nowrap'; |
| 79 | this.formElement.append(button); |
| 80 | button.click(); |
| 81 | button.remove(); |
| 82 | } |
| 83 | } |
| 84 | render() { |
| 85 | return (index.h("div", { part: "base", class: "form", role: "form" }, index.h("form", { part: "form", ref: el => (this.formElement = el), class: "test", onSubmit: async (e) => { |
| 86 | console.log('submitted'); |
| 87 | e.preventDefault(); |
| 88 | const isValid = await this.validate(); |
| 89 | if (!isValid) { |
| 90 | return false; |
| 91 | } |
| 92 | this.scSubmit.emit(); |
| 93 | this.scFormSubmit.emit(); |
| 94 | }, novalidate: this.novalidate }, index.h("slot", null)))); |
| 95 | } |
| 96 | get form() { return index.getElement(this); } |
| 97 | }; |
| 98 | ScForm.style = scFormCss; |
| 99 | |
| 100 | exports.sc_form = ScForm; |
| 101 | |
| 102 | //# sourceMappingURL=sc-form.cjs.entry.js.map |