@foxy.io/elements 1.29.0-beta.1 → 1.29.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +1 -1
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-admin-subscription-form.js +1 -0
- package/dist/cdn/foxy-api-browser.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-billing-address-card.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-card.js +1 -1
- package/dist/cdn/foxy-cart-form.js +2 -2
- package/dist/cdn/foxy-client-card.js +1 -1
- package/dist/cdn/foxy-client-form.js +1 -1
- package/dist/cdn/foxy-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-detail-card.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-card.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +1 -1
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-builder.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-discount-detail-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-downloadable-card.js +1 -1
- package/dist/cdn/foxy-downloadable-form.js +1 -1
- package/dist/cdn/foxy-email-template-card.js +1 -1
- package/dist/cdn/foxy-email-template-form.js +1 -1
- package/dist/cdn/foxy-error-entry-card.js +1 -1
- package/dist/cdn/foxy-filter-attribute-card.js +1 -1
- package/dist/cdn/foxy-filter-attribute-form.js +1 -1
- package/dist/cdn/foxy-form-dialog.js +1 -1
- package/dist/cdn/foxy-generate-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n-editor.js +1 -1
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-integration-card.js +1 -1
- package/dist/cdn/foxy-integration-form.js +1 -1
- package/dist/cdn/foxy-item-card.js +1 -1
- package/dist/cdn/foxy-item-category-card.js +1 -1
- package/dist/cdn/foxy-item-category-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +1 -1
- package/dist/cdn/foxy-item-option-card.js +1 -1
- package/dist/cdn/foxy-item-option-form.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-native-integration-card.js +1 -1
- package/dist/cdn/foxy-native-integration-form.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-passkey-card.js +1 -1
- package/dist/cdn/foxy-passkey-form.js +1 -1
- package/dist/cdn/foxy-payment-card-embed.js +1 -1
- package/dist/cdn/foxy-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +2 -2
- package/dist/cdn/foxy-reports-table.js +1 -1
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-container-card.js +1 -1
- package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-shipping-service-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +2 -2
- package/dist/cdn/foxy-store-card.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +1 -1
- package/dist/cdn/foxy-subscription-settings-form.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-table.js +1 -1
- package/dist/cdn/foxy-tax-card.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-config-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-template-set-card.js +1 -1
- package/dist/cdn/foxy-template-set-form.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +1 -1
- package/dist/cdn/foxy-update-payment-method-form.js +1 -1
- package/dist/cdn/foxy-user-card.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/foxy-webhook-card.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/foxy-webhook-log-card.js +1 -1
- package/dist/cdn/foxy-webhook-status-card.js +1 -1
- package/dist/cdn/{shared-5318a742.js → shared-021c7a22.js} +1 -1
- package/dist/cdn/{shared-bedfd929.js → shared-075796e2.js} +1 -1
- package/dist/cdn/{shared-39c40d76.js → shared-10325cda.js} +1 -1
- package/dist/cdn/{shared-83451a72.js → shared-10b5e78f.js} +1 -1
- package/dist/cdn/{shared-ae013b1a.js → shared-12ac8cc6.js} +1 -1
- package/dist/cdn/shared-18cb3cfc.js +1 -0
- package/dist/cdn/{shared-06119334.js → shared-1cf1e1a4.js} +1 -1
- package/dist/cdn/{shared-ee67d0e4.js → shared-2099544a.js} +1 -1
- package/dist/cdn/{shared-6271dae8.js → shared-2a71795e.js} +1 -1
- package/dist/cdn/{shared-704ad583.js → shared-2d723710.js} +1 -1
- package/dist/cdn/{shared-3df30d85.js → shared-2fc671cd.js} +1 -1
- package/dist/cdn/{shared-8d6749b3.js → shared-30221a16.js} +1 -1
- package/dist/cdn/{shared-64d3d924.js → shared-303b428e.js} +1 -1
- package/dist/cdn/{shared-30792d92.js → shared-339bbd50.js} +1 -1
- package/dist/cdn/{shared-9da63461.js → shared-39a33102.js} +1 -1
- package/dist/cdn/{shared-cfe1bd8c.js → shared-3e03c988.js} +1 -1
- package/dist/cdn/{shared-c5a48553.js → shared-3fa791ca.js} +1 -1
- package/dist/cdn/{shared-509a1775.js → shared-4993a79d.js} +1 -1
- package/dist/cdn/shared-4c2d43e6.js +1 -0
- package/dist/cdn/{shared-0b5eb6d1.js → shared-558bc894.js} +1 -1
- package/dist/cdn/shared-588c6b15.js +1 -0
- package/dist/cdn/{shared-1a6877b1.js → shared-5c05ac06.js} +1 -1
- package/dist/cdn/shared-61f4e91a.js +1 -0
- package/dist/cdn/{shared-80bfcae3.js → shared-634b670e.js} +1 -1
- package/dist/cdn/{shared-665965d3.js → shared-644ee296.js} +1 -1
- package/dist/cdn/shared-666bdabd.js +1 -0
- package/dist/cdn/{shared-94ddc918.js → shared-6a4e81ad.js} +1 -1
- package/dist/cdn/{shared-61c0bc51.js → shared-7026fb08.js} +1 -1
- package/dist/cdn/{shared-a3abd1de.js → shared-72c61f43.js} +1 -1
- package/dist/cdn/{shared-59978b05.js → shared-72f41a65.js} +1 -1
- package/dist/cdn/{shared-30e7450c.js → shared-77051754.js} +1 -1
- package/dist/cdn/{shared-cc4dabfb.js → shared-77c4acdd.js} +1 -1
- package/dist/cdn/{shared-bc409d96.js → shared-797ba64a.js} +1 -1
- package/dist/cdn/{shared-94bae3fb.js → shared-7b8ad9c1.js} +1 -1
- package/dist/cdn/shared-7ce91c80.js +1 -0
- package/dist/cdn/{shared-2ae42363.js → shared-7fd9a30f.js} +1 -1
- package/dist/cdn/{shared-9df5667e.js → shared-81d3a9ae.js} +1 -1
- package/dist/cdn/{shared-74a6f365.js → shared-876a4341.js} +1 -1
- package/dist/cdn/shared-8c1df97c.js +1 -0
- package/dist/cdn/{shared-70d41727.js → shared-8f7a31e0.js} +2 -2
- package/dist/cdn/{shared-69a37aba.js → shared-9a90a24e.js} +1 -1
- package/dist/cdn/{shared-088655e0.js → shared-a036e345.js} +1 -1
- package/dist/cdn/{shared-50db6104.js → shared-a159ccff.js} +1 -1
- package/dist/cdn/{shared-248c08ac.js → shared-a6273e4a.js} +1 -1
- package/dist/cdn/{shared-bc0421a7.js → shared-abea5e34.js} +1 -1
- package/dist/cdn/{shared-5ec4c4b3.js → shared-acdcae7e.js} +1 -1
- package/dist/cdn/{shared-5860410a.js → shared-b6814728.js} +2 -2
- package/dist/cdn/{shared-1101a938.js → shared-b731dfc5.js} +1 -1
- package/dist/cdn/shared-b9138e9f.js +1 -0
- package/dist/cdn/{shared-ddde3914.js → shared-b98b8d02.js} +1 -1
- package/dist/cdn/{shared-4f0975c8.js → shared-bdd4fbbb.js} +1 -1
- package/dist/cdn/shared-cbb0e610.js +1 -0
- package/dist/cdn/{shared-67aa8143.js → shared-cc79152c.js} +1 -1
- package/dist/cdn/shared-d393bcd8.js +1 -0
- package/dist/cdn/{shared-c47c9449.js → shared-d464d078.js} +1 -1
- package/dist/cdn/{shared-ef2b5ceb.js → shared-d6010c96.js} +1 -1
- package/dist/cdn/{shared-e5a04929.js → shared-df00a537.js} +1 -1
- package/dist/cdn/{shared-f293f1ae.js → shared-e2a61f69.js} +1 -1
- package/dist/cdn/{shared-c1b96673.js → shared-e5d37737.js} +1 -1
- package/dist/cdn/{shared-f1e4e392.js → shared-e6e84ff5.js} +1 -1
- package/dist/cdn/{shared-730e6ac7.js → shared-f1d2b5bb.js} +1 -1
- package/dist/cdn/{shared-84c5aab1.js → shared-f22f22ae.js} +1 -1
- package/dist/cdn/{shared-9ee0844c.js → shared-f5366dda.js} +1 -1
- package/dist/cdn/shared-f8723f3f.js +1 -0
- package/dist/cdn/{shared-02d9cca5.js → shared-fa9e5c7f.js} +1 -1
- package/dist/cdn/{shared-4b7f8c12.js → shared-fb56178f.js} +1 -1
- package/dist/cdn/{shared-dfab3fb1.js → shared-fe77f6f6.js} +1 -1
- package/dist/cdn/{shared-a917b3e5.js → shared-ff63a551.js} +1 -1
- package/dist/cdn/{shared-b5cd2b39.js → shared-ffd3690b.js} +1 -1
- package/dist/cdn/translations/admin-subscription-form/en.json +1840 -0
- package/dist/cdn/translations/cart-form/en.json +1 -1
- package/dist/cdn/translations/subscription-settings-form/en.json +85 -61
- package/dist/cdn/translations/transaction/en.json +0 -1
- package/dist/elements/internal/InternalDateControl/InternalDateControl.d.ts +4 -1
- package/dist/elements/internal/InternalDateControl/InternalDateControl.js +36 -3
- package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -1
- package/dist/elements/internal/InternalDateControl/getMonthNames.d.ts +1 -0
- package/dist/elements/internal/InternalDateControl/getMonthNames.js +7 -0
- package/dist/elements/internal/InternalDateControl/getMonthNames.js.map +1 -0
- package/dist/elements/internal/InternalDateControl/getWeekdayLongNames.d.ts +1 -0
- package/dist/elements/internal/InternalDateControl/getWeekdayLongNames.js +8 -0
- package/dist/elements/internal/InternalDateControl/getWeekdayLongNames.js.map +1 -0
- package/dist/elements/internal/InternalDateControl/getWeekdayShortNames.d.ts +1 -0
- package/dist/elements/internal/InternalDateControl/getWeekdayShortNames.js +8 -0
- package/dist/elements/internal/InternalDateControl/getWeekdayShortNames.js.map +1 -0
- package/dist/elements/internal/InternalDateControl/index.d.ts +1 -0
- package/dist/elements/internal/InternalDateControl/index.js +1 -0
- package/dist/elements/internal/InternalDateControl/index.js.map +1 -1
- package/dist/elements/internal/InternalDateControl/vaadinStyles.d.ts +1 -0
- package/dist/elements/internal/InternalDateControl/vaadinStyles.js +73 -0
- package/dist/elements/internal/InternalDateControl/vaadinStyles.js.map +1 -0
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.d.ts +1 -0
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +39 -18
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -1
- package/dist/elements/internal/InternalEditableListControl/index.d.ts +1 -0
- package/dist/elements/internal/InternalEditableListControl/index.js +1 -0
- package/dist/elements/internal/InternalEditableListControl/index.js.map +1 -1
- package/dist/elements/internal/InternalForm/InternalForm.js +1 -1
- package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
- package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.d.ts +3 -0
- package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +128 -1
- package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -1
- package/dist/elements/internal/InternalNumberControl/InternalNumberControl.d.ts +4 -1
- package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +101 -1
- package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -1
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +1 -1
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +3 -3
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -1
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +2 -2
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
- package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js +2 -2
- package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js.map +1 -1
- package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.d.ts +1 -0
- package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.js +31 -9
- package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.js.map +1 -1
- package/dist/elements/internal/InternalSwitchControl/index.d.ts +1 -0
- package/dist/elements/internal/InternalSwitchControl/index.js +1 -0
- package/dist/elements/internal/InternalSwitchControl/index.js.map +1 -1
- package/dist/elements/internal/InternalTextControl/InternalTextControl.js +2 -2
- package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -1
- package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.d.ts +14 -0
- package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js +109 -0
- package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js.map +1 -0
- package/dist/elements/public/AdminSubscriptionForm/index.d.ts +13 -0
- package/dist/elements/public/AdminSubscriptionForm/index.js +15 -0
- package/dist/elements/public/AdminSubscriptionForm/index.js.map +1 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/InternalAdminSubscriptionFormError.d.ts +5 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/InternalAdminSubscriptionFormError.js +17 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/InternalAdminSubscriptionFormError.js.map +1 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/index.d.ts +3 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/index.js +5 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/index.js.map +1 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/InternalAdminSubscriptionFormLoadInCartAction.d.ts +8 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/InternalAdminSubscriptionFormLoadInCartAction.js +40 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/InternalAdminSubscriptionFormLoadInCartAction.js.map +1 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/index.d.ts +4 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/index.js +6 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/index.js.map +1 -0
- package/dist/elements/public/AdminSubscriptionForm/types.d.ts +5 -0
- package/dist/elements/public/AdminSubscriptionForm/types.js +2 -0
- package/dist/elements/public/AdminSubscriptionForm/types.js.map +1 -0
- package/dist/elements/public/CartForm/CartForm.d.ts +1 -0
- package/dist/elements/public/CartForm/CartForm.js +23 -21
- package/dist/elements/public/CartForm/CartForm.js.map +1 -1
- package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.js +3 -3
- package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.js.map +1 -1
- package/dist/elements/public/FormDialog/FormDialog.js +2 -3
- package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.d.ts +4 -13
- package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js +105 -115
- package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js.map +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/index.d.ts +4 -4
- package/dist/elements/public/SubscriptionSettingsForm/index.js +4 -4
- package/dist/elements/public/SubscriptionSettingsForm/index.js.map +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/types.d.ts +3 -1
- package/dist/elements/public/SubscriptionSettingsForm/types.js.map +1 -1
- package/dist/elements/public/index.d.ts +1 -0
- package/dist/elements/public/index.defined.d.ts +1 -0
- package/dist/elements/public/index.defined.js +1 -0
- package/dist/elements/public/index.defined.js.map +1 -1
- package/dist/elements/public/index.js +1 -0
- package/dist/elements/public/index.js.map +1 -1
- package/dist/mixins/themeable.js +4 -0
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-3f0e394a.js +0 -1
- package/dist/cdn/shared-4feadd89.js +0 -1
- package/dist/cdn/shared-55b621e8.js +0 -1
- package/dist/cdn/shared-64fcd0da.js +0 -1
- package/dist/cdn/shared-7e39ec54.js +0 -1
- package/dist/cdn/shared-963d252e.js +0 -1
- package/dist/cdn/shared-a636184a.js +0 -1
- package/dist/cdn/shared-b4d20b03.js +0 -1
- package/dist/cdn/shared-d6b4d84f.js +0 -1
- package/dist/cdn/shared-deab9fa5.js +0 -1
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/InternalSubscriptionSettingsFormReattemptBypass.d.ts +0 -12
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/InternalSubscriptionSettingsFormReattemptBypass.js +0 -128
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/InternalSubscriptionSettingsFormReattemptBypass.js.map +0 -1
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.d.ts +0 -2
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js +0 -26
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js.map +0 -1
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.d.ts +0 -7
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.js +0 -13
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../../internal/InternalAsyncListControl/index';
|
|
2
|
+
import '../../internal/InternalFrequencyControl/index';
|
|
3
|
+
import '../../internal/InternalNumberControl/index';
|
|
4
|
+
import '../../internal/InternalDateControl/index';
|
|
5
|
+
import '../../internal/InternalForm/index';
|
|
6
|
+
import '../TransactionCard/index';
|
|
7
|
+
import '../AttributeCard/index';
|
|
8
|
+
import '../AttributeForm/index';
|
|
9
|
+
import '../Transaction/index';
|
|
10
|
+
import './internal/InternalAdminSubscriptionFormLoadInCartAction/index';
|
|
11
|
+
import './internal/InternalAdminSubscriptionFormError/index';
|
|
12
|
+
import { AdminSubscriptionForm } from './AdminSubscriptionForm';
|
|
13
|
+
export { AdminSubscriptionForm };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "../../internal/InternalAsyncListControl/index.js";
|
|
2
|
+
import "../../internal/InternalFrequencyControl/index.js";
|
|
3
|
+
import "../../internal/InternalNumberControl/index.js";
|
|
4
|
+
import "../../internal/InternalDateControl/index.js";
|
|
5
|
+
import "../../internal/InternalForm/index.js";
|
|
6
|
+
import "../TransactionCard/index.js";
|
|
7
|
+
import "../AttributeCard/index.js";
|
|
8
|
+
import "../AttributeForm/index.js";
|
|
9
|
+
import "../Transaction/index.js";
|
|
10
|
+
import "./internal/InternalAdminSubscriptionFormLoadInCartAction/index.js";
|
|
11
|
+
import "./internal/InternalAdminSubscriptionFormError/index.js";
|
|
12
|
+
import { AdminSubscriptionForm } from "./AdminSubscriptionForm.js";
|
|
13
|
+
customElements.define('foxy-admin-subscription-form', AdminSubscriptionForm);
|
|
14
|
+
export { AdminSubscriptionForm };
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/index.ts"],"names":[],"mappings":"AAAA,0DAAuD;AACvD,0DAAuD;AACvD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,qCAAkC;AAClC,mCAAgC;AAChC,mCAAgC;AAChC,iCAA8B;AAE9B,2EAAwE;AACxE,gEAA6D;AAE7D,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAEhE,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalFrequencyControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalDateControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../TransactionCard/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\nimport '../Transaction/index';\n\nimport './internal/InternalAdminSubscriptionFormLoadInCartAction/index';\nimport './internal/InternalAdminSubscriptionFormError/index';\n\nimport { AdminSubscriptionForm } from './AdminSubscriptionForm';\n\ncustomElements.define('foxy-admin-subscription-form', AdminSubscriptionForm);\n\nexport { AdminSubscriptionForm };\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
|
|
2
|
+
import { html, svg } from 'lit-html';
|
|
3
|
+
export class InternalAdminSubscriptionFormError extends InternalControl {
|
|
4
|
+
renderControl() {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
return html `
|
|
7
|
+
<p
|
|
8
|
+
class="flex items-start gap-ds p-ds rounded border border-error-50"
|
|
9
|
+
style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
|
|
10
|
+
>
|
|
11
|
+
${svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="flex-shrink-0 text-error" style="width: 1.25em"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path></svg>`}
|
|
12
|
+
<span>${(_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.error_message}</span>
|
|
13
|
+
</p>
|
|
14
|
+
`;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=InternalAdminSubscriptionFormError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalAdminSubscriptionFormError.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/InternalAdminSubscriptionFormError.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,OAAO,kCAAmC,SAAQ,eAAe;IACrE,aAAa;;QACX,OAAO,IAAI,CAAA;;;;;UAKL,GAAG,CAAA,+VAA+V;gBAC5V,YAAC,IAAI,CAAC,OAAwC,0CAAE,IAAI,0CAAE,aAAa;;KAE9E,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { AdminSubscriptionForm } from '../../AdminSubscriptionForm';\nimport type { TemplateResult } from 'lit-html';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { html, svg } from 'lit-html';\n\nexport class InternalAdminSubscriptionFormError extends InternalControl {\n renderControl(): TemplateResult {\n return html`\n <p\n class=\"flex items-start gap-ds p-ds rounded border border-error-50\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-error\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <span>${(this.nucleon as AdminSubscriptionForm | null)?.data?.error_message}</span>\n </p>\n `;\n }\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import "../../../../internal/InternalControl/index.js";
|
|
2
|
+
import { InternalAdminSubscriptionFormError } from "./InternalAdminSubscriptionFormError.js";
|
|
3
|
+
customElements.define('foxy-internal-admin-subscription-form-error', InternalAdminSubscriptionFormError);
|
|
4
|
+
export { InternalAdminSubscriptionFormError };
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AAEpD,OAAO,EAAE,kCAAkC,EAAE,gDAA6C;AAE1F,cAAc,CAAC,MAAM,CACnB,6CAA6C,EAC7C,kCAAkC,CACnC,CAAC;AAEF,OAAO,EAAE,kCAAkC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\n\nimport { InternalAdminSubscriptionFormError } from './InternalAdminSubscriptionFormError';\n\ncustomElements.define(\n 'foxy-internal-admin-subscription-form-error',\n InternalAdminSubscriptionFormError\n);\n\nexport { InternalAdminSubscriptionFormError };\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PropertyDeclarations } from 'lit-element';
|
|
2
|
+
import type { TemplateResult } from 'lit-html';
|
|
3
|
+
import { InternalControl } from '../../../../internal/InternalControl/InternalControl';
|
|
4
|
+
export declare class InternalAdminSubscriptionFormLoadInCartAction extends InternalControl {
|
|
5
|
+
static get properties(): PropertyDeclarations;
|
|
6
|
+
action: 'cancel' | null;
|
|
7
|
+
renderControl(): TemplateResult;
|
|
8
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
|
|
2
|
+
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
3
|
+
import { html } from 'lit-html';
|
|
4
|
+
export class InternalAdminSubscriptionFormLoadInCartAction extends InternalControl {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.action = null;
|
|
8
|
+
}
|
|
9
|
+
static get properties() {
|
|
10
|
+
return {
|
|
11
|
+
...super.properties,
|
|
12
|
+
action: {},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
renderControl() {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
const form = this.nucleon;
|
|
18
|
+
let href;
|
|
19
|
+
try {
|
|
20
|
+
const url = new URL((_b = (_a = form === null || form === void 0 ? void 0 : form.data) === null || _a === void 0 ? void 0 : _a._links['fx:sub_token_url'].href) !== null && _b !== void 0 ? _b : '');
|
|
21
|
+
if (this.action === 'cancel')
|
|
22
|
+
url.searchParams.set('sub_cancel', 'true');
|
|
23
|
+
href = url.toString();
|
|
24
|
+
}
|
|
25
|
+
catch (_c) {
|
|
26
|
+
href = undefined;
|
|
27
|
+
}
|
|
28
|
+
return html `
|
|
29
|
+
<a
|
|
30
|
+
target="_blank"
|
|
31
|
+
class="rounded font-medium text-primary group focus-outline-none focus-ring-2 focus-ring-primary-50"
|
|
32
|
+
href=${ifDefined(href)}
|
|
33
|
+
>
|
|
34
|
+
<foxy-i18n class="transition-opacity group-hover-opacity-80" infer="" key="caption">
|
|
35
|
+
</foxy-i18n>
|
|
36
|
+
</a>
|
|
37
|
+
`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=InternalAdminSubscriptionFormLoadInCartAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalAdminSubscriptionFormLoadInCartAction.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/InternalAdminSubscriptionFormLoadInCartAction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,6CAA8C,SAAQ,eAAe;IAAlF;;QAQE,WAAM,GAAoB,IAAI,CAAC;IAyBjC,CAAC;IAhCC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAID,aAAa;;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,OAAuC,CAAC;QAC1D,IAAI,IAAwB,CAAC;QAE7B,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,GAAG,aAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,MAAM,CAAC,kBAAkB,EAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACzE,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;SACvB;QAAC,WAAM;YACN,IAAI,GAAG,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAA;;;;eAIA,SAAS,CAAC,IAAI,CAAC;;;;;KAKzB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { AdminSubscriptionForm } from '../../AdminSubscriptionForm';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nexport class InternalAdminSubscriptionFormLoadInCartAction extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n action: {},\n };\n }\n\n action: 'cancel' | null = null;\n\n renderControl(): TemplateResult {\n const form = this.nucleon as AdminSubscriptionForm | null;\n let href: string | undefined;\n\n try {\n const url = new URL(form?.data?._links['fx:sub_token_url'].href ?? '');\n if (this.action === 'cancel') url.searchParams.set('sub_cancel', 'true');\n href = url.toString();\n } catch {\n href = undefined;\n }\n\n return html`\n <a\n target=\"_blank\"\n class=\"rounded font-medium text-primary group focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${ifDefined(href)}\n >\n <foxy-i18n class=\"transition-opacity group-hover-opacity-80\" infer=\"\" key=\"caption\">\n </foxy-i18n>\n </a>\n `;\n }\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import '../../../../internal/InternalControl/index';
|
|
2
|
+
import '../../../I18n/index';
|
|
3
|
+
import { InternalAdminSubscriptionFormLoadInCartAction as Action } from './InternalAdminSubscriptionFormLoadInCartAction';
|
|
4
|
+
export { Action as InternalAdminSubscriptionFormLoadInCartAction };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import "../../../../internal/InternalControl/index.js";
|
|
2
|
+
import "../../../I18n/index.js";
|
|
3
|
+
import { InternalAdminSubscriptionFormLoadInCartAction as Action } from "./InternalAdminSubscriptionFormLoadInCartAction.js";
|
|
4
|
+
customElements.define('foxy-internal-admin-subscription-form-load-in-cart-action', Action);
|
|
5
|
+
export { Action as InternalAdminSubscriptionFormLoadInCartAction };
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AAEpD,gCAA6B;AAE7B,OAAO,EAAE,6CAA6C,IAAI,MAAM,EAAE,2DAAwD;AAE1H,cAAc,CAAC,MAAM,CAAC,2DAA2D,EAAE,MAAM,CAAC,CAAC;AAE3F,OAAO,EAAE,MAAM,IAAI,6CAA6C,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\n\nimport '../../../I18n/index';\n\nimport { InternalAdminSubscriptionFormLoadInCartAction as Action } from './InternalAdminSubscriptionFormLoadInCartAction';\n\ncustomElements.define('foxy-internal-admin-subscription-form-load-in-cart-action', Action);\n\nexport { Action as InternalAdminSubscriptionFormLoadInCartAction };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Data = Resource<Rels.Subscription, { zoom: 'transaction_template' }>;\n"]}
|
|
@@ -44,6 +44,7 @@ export declare class CartForm extends Base<Data> {
|
|
|
44
44
|
get hiddenSelector(): BooleanSelector;
|
|
45
45
|
renderHeaderActions(): TemplateResult;
|
|
46
46
|
renderBody(): TemplateResult;
|
|
47
|
+
private get __paymentMethodUriPlaceholder();
|
|
47
48
|
private get __transactionsWithPaymentsUrl();
|
|
48
49
|
private get __pickerPaymentCardEmbedUrl();
|
|
49
50
|
private get __customerHref();
|
|
@@ -36,33 +36,19 @@ export class CartForm extends Base {
|
|
|
36
36
|
this.coupons = null;
|
|
37
37
|
this.__languagesLoaderId = 'languagesLoader';
|
|
38
38
|
this.__customerLoaderId = 'customerLoader';
|
|
39
|
-
this.__paymentMethodUriGetDisplayValueOptions = (payments
|
|
40
|
-
var _a, _b, _c, _d
|
|
39
|
+
this.__paymentMethodUriGetDisplayValueOptions = (payments) => {
|
|
40
|
+
var _a, _b, _c, _d;
|
|
41
41
|
const payment = (_c = (_b = (_a = payments === null || payments === void 0 ? void 0 : payments._embedded) === null || _a === void 0 ? void 0 : _a['fx:payments']) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : null;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (payment) {
|
|
47
|
-
ccExpMonth = payment.cc_exp_month;
|
|
48
|
-
ccExpYear = payment.cc_exp_year;
|
|
49
|
-
ccLast4 = (_d = payment.cc_number_masked) === null || _d === void 0 ? void 0 : _d.replace(/x/g, '');
|
|
50
|
-
ccType = payment.cc_type;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const customer = this.__customer;
|
|
54
|
-
const defaultPaymentMethod = customer === null || customer === void 0 ? void 0 : customer._embedded['fx:default_payment_method'];
|
|
55
|
-
ccExpMonth = (_e = defaultPaymentMethod === null || defaultPaymentMethod === void 0 ? void 0 : defaultPaymentMethod.cc_exp_month) !== null && _e !== void 0 ? _e : null;
|
|
56
|
-
ccExpYear = (_f = defaultPaymentMethod === null || defaultPaymentMethod === void 0 ? void 0 : defaultPaymentMethod.cc_exp_year) !== null && _f !== void 0 ? _f : null;
|
|
57
|
-
ccLast4 = (_h = (_g = defaultPaymentMethod === null || defaultPaymentMethod === void 0 ? void 0 : defaultPaymentMethod.cc_number_masked) === null || _g === void 0 ? void 0 : _g.replace(/x/g, '')) !== null && _h !== void 0 ? _h : null;
|
|
58
|
-
ccType = (_j = defaultPaymentMethod === null || defaultPaymentMethod === void 0 ? void 0 : defaultPaymentMethod.cc_type) !== null && _j !== void 0 ? _j : null;
|
|
59
|
-
}
|
|
42
|
+
const ccExpMonth = payment === null || payment === void 0 ? void 0 : payment.cc_exp_month;
|
|
43
|
+
const ccExpYear = payment === null || payment === void 0 ? void 0 : payment.cc_exp_year;
|
|
44
|
+
const ccLast4 = (_d = payment === null || payment === void 0 ? void 0 : payment.cc_number_masked) === null || _d === void 0 ? void 0 : _d.replace(/x/g, '');
|
|
45
|
+
const ccType = payment === null || payment === void 0 ? void 0 : payment.cc_type;
|
|
60
46
|
return {
|
|
61
47
|
cc_exp_month: ccExpMonth !== null && ccExpMonth !== void 0 ? ccExpMonth : '',
|
|
62
48
|
cc_exp_year: ccExpYear !== null && ccExpYear !== void 0 ? ccExpYear : '',
|
|
63
49
|
cc_last4: ccLast4 !== null && ccLast4 !== void 0 ? ccLast4 : '',
|
|
64
50
|
cc_type: ccType !== null && ccType !== void 0 ? ccType : '',
|
|
65
|
-
context:
|
|
51
|
+
context: ccLast4 && ccExpMonth && ccExpYear && ccType ? '' : 'empty',
|
|
66
52
|
};
|
|
67
53
|
};
|
|
68
54
|
this.__paymentMethodUriSetValue = (transactionUrl) => {
|
|
@@ -260,6 +246,7 @@ export class CartForm extends Base {
|
|
|
260
246
|
|
|
261
247
|
<foxy-internal-summary-control infer="billing">
|
|
262
248
|
<foxy-internal-resource-picker-control
|
|
249
|
+
placeholder=${this.__paymentMethodUriPlaceholder}
|
|
263
250
|
layout="summary-item"
|
|
264
251
|
first=${ifDefined(this.__transactionsWithPaymentsUrl)}
|
|
265
252
|
infer="payment-method-uri"
|
|
@@ -342,6 +329,21 @@ export class CartForm extends Base {
|
|
|
342
329
|
</foxy-nucleon>
|
|
343
330
|
`;
|
|
344
331
|
}
|
|
332
|
+
get __paymentMethodUriPlaceholder() {
|
|
333
|
+
var _a, _b, _c, _d, _e, _f;
|
|
334
|
+
const defaultPaymentMethod = (_a = this.__customer) === null || _a === void 0 ? void 0 : _a._embedded['fx:default_payment_method'];
|
|
335
|
+
const ccExpMonth = (_b = defaultPaymentMethod === null || defaultPaymentMethod === void 0 ? void 0 : defaultPaymentMethod.cc_exp_month) !== null && _b !== void 0 ? _b : null;
|
|
336
|
+
const ccExpYear = (_c = defaultPaymentMethod === null || defaultPaymentMethod === void 0 ? void 0 : defaultPaymentMethod.cc_exp_year) !== null && _c !== void 0 ? _c : null;
|
|
337
|
+
const ccLast4 = (_e = (_d = defaultPaymentMethod === null || defaultPaymentMethod === void 0 ? void 0 : defaultPaymentMethod.cc_number_masked) === null || _d === void 0 ? void 0 : _d.replace(/x/g, '')) !== null && _e !== void 0 ? _e : null;
|
|
338
|
+
const ccType = (_f = defaultPaymentMethod === null || defaultPaymentMethod === void 0 ? void 0 : defaultPaymentMethod.cc_type) !== null && _f !== void 0 ? _f : null;
|
|
339
|
+
return this.t('billing.payment-method-uri.value', {
|
|
340
|
+
cc_exp_month: ccExpMonth !== null && ccExpMonth !== void 0 ? ccExpMonth : '',
|
|
341
|
+
cc_exp_year: ccExpYear !== null && ccExpYear !== void 0 ? ccExpYear : '',
|
|
342
|
+
cc_last4: ccLast4 !== null && ccLast4 !== void 0 ? ccLast4 : '',
|
|
343
|
+
cc_type: ccType !== null && ccType !== void 0 ? ccType : '',
|
|
344
|
+
context: ccLast4 && ccExpMonth && ccExpYear && ccType ? '' : 'empty',
|
|
345
|
+
});
|
|
346
|
+
}
|
|
345
347
|
get __transactionsWithPaymentsUrl() {
|
|
346
348
|
var _a, _b;
|
|
347
349
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CartForm/CartForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { Type } from '../QueryBuilder/types';\nimport { html } from 'lit-html';\n\nconst NS = 'cart-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing carts (`fx:cart`).\n *\n * @element foxy-cart-form\n * @since 1.21.0\n */\nexport class CartForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentCardEmbedUrl: { attribute: 'payment-card-embed-url' },\n itemCategories: { attribute: 'item-categories' },\n templateSets: { attribute: 'template-sets' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n customers: {},\n countries: {},\n regions: {},\n coupons: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ billing_first_name: v }) => !v || v.length <= 50 || 'billing-first-name:v8n_too_long',\n ({ billing_last_name: v }) => !v || v.length <= 50 || 'billing-last-name:v8n_too_long',\n ({ billing_state: v }) => !v || v.length <= 50 || 'billing-state:v8n_too_long',\n ({ billing_city: v }) => !v || v.length <= 50 || 'billing-city:v8n_too_long',\n ({ billing_phone: v }) => !v || v.length <= 50 || 'billing-phone:v8n_too_long',\n ({ billing_company: v }) => !v || v.length <= 50 || 'billing-company:v8n_too_long',\n ({ billing_address2: v }) => !v || v.length <= 100 || 'billing-address-two:v8n_too_long',\n ({ billing_address1: v }) => !v || v.length <= 100 || 'billing-address-one:v8n_too_long',\n ({ billing_postal_code: v }) => !v || v.length <= 50 || 'billing-postal-code:v8n_too_long',\n ({ shipping_first_name: v }) => !v || v.length <= 50 || 'shipping-first-name:v8n_too_long',\n ({ shipping_last_name: v }) => !v || v.length <= 50 || 'shipping-last-name:v8n_too_long',\n ({ shipping_state: v }) => !v || v.length <= 50 || 'shipping-state:v8n_too_long',\n ({ shipping_city: v }) => !v || v.length <= 50 || 'shipping-city:v8n_too_long',\n ({ shipping_phone: v }) => !v || v.length <= 50 || 'shipping-phone:v8n_too_long',\n ({ shipping_company: v }) => !v || v.length <= 50 || 'shipping-company:v8n_too_long',\n ({ shipping_address2: v }) => !v || v.length <= 100 || 'shipping-address-two:v8n_too_long',\n ({ shipping_address1: v }) => !v || v.length <= 100 || 'shipping-address-one:v8n_too_long',\n ({ shipping_postal_code: v }) => !v || v.length <= 50 || 'shipping-postal-code:v8n_too_long',\n ];\n }\n\n /** Payment Card Embed configuration URL. The form will append template set parameter on its own. */\n paymentCardEmbedUrl: string | null = null;\n\n /** URL of the `fx:item_categories` collection for the store. */\n itemCategories: string | null = null;\n\n /** URL of the `fx:template_sets` collection for the store. */\n templateSets: string | null = null;\n\n /** URL of the `fx:locale_codes` property helper. */\n localeCodes: string | null = null;\n\n /** URL of the `fx:languages` property helper. */\n languages: string | null = null;\n\n /** URL of the `fx:customers` collection for the store. */\n customers: string | null = null;\n\n /** URL of the `fx:countries` property helper. */\n countries: string | null = null;\n\n /** URL of the `fx:regions` property helper. */\n regions: string | null = null;\n\n /** URL of the `fx:coupons` collection for the store. */\n coupons: string | null = null;\n\n private readonly __languagesLoaderId = 'languagesLoader';\n\n private readonly __customerLoaderId = 'customerLoader';\n\n private readonly __paymentMethodUriGetDisplayValueOptions = (\n payments: Resource<Rels.Payments> | null,\n defaultContext: string\n ) => {\n const payment = payments?._embedded?.['fx:payments']?.[0] ?? null;\n\n let ccExpMonth: string | null;\n let ccExpYear: string | null;\n let ccLast4: string | null;\n let ccType: string | null;\n\n if (payment) {\n ccExpMonth = payment.cc_exp_month;\n ccExpYear = payment.cc_exp_year;\n ccLast4 = payment.cc_number_masked?.replace(/x/g, '');\n ccType = payment.cc_type;\n } else {\n const customer = this.__customer;\n const defaultPaymentMethod = customer?._embedded['fx:default_payment_method'];\n\n ccExpMonth = defaultPaymentMethod?.cc_exp_month ?? null;\n ccExpYear = defaultPaymentMethod?.cc_exp_year ?? null;\n ccLast4 = defaultPaymentMethod?.cc_number_masked?.replace(/x/g, '') ?? null;\n ccType = defaultPaymentMethod?.cc_type ?? null;\n }\n\n return {\n cc_exp_month: ccExpMonth ?? '',\n cc_exp_year: ccExpYear ?? '',\n cc_last4: ccLast4 ?? '',\n cc_type: ccType ?? '',\n context: defaultContext || (ccLast4 && ccExpMonth && ccExpYear && ccType ? '' : 'empty'),\n };\n };\n\n private readonly __paymentMethodUriSetValue = (transactionUrl: string) => {\n try {\n // TODO use links instead of constructing the URL manually\n const url = new URL(transactionUrl);\n url.search = '';\n url.pathname += '/payments';\n this.edit({ payment_method_uri: url.toString() });\n } catch (err) {\n this.edit({ payment_method_uri: '' });\n }\n };\n\n private readonly __paymentMethodUriFilters: Option[] = [\n {\n label: 'filter_type',\n type: Type.String,\n path: 'payments:type',\n list: [\n { label: 'filter_type_value_purchase_order', value: 'purchase_order' },\n { label: 'filter_type_value_amazon_mws', value: 'amazon_mws' },\n { label: 'filter_type_value_paypal_ec', value: 'paypal_ec' },\n { label: 'filter_type_value_paypal', value: 'paypal' },\n { label: 'filter_type_value_hosted', value: 'hosted' },\n { label: 'filter_type_value_ogone', value: 'ogone' },\n ],\n },\n {\n label: 'filter_cc_type',\n type: Type.String,\n path: 'payments:cc_type',\n list: [\n { label: 'filter_cc_type_value_mastercard', value: 'mastercard' },\n { label: 'filter_cc_type_value_discover', value: 'discover' },\n { label: 'filter_cc_type_value_unionpay', value: 'unionpay' },\n { label: 'filter_cc_type_value_maestro', value: 'maestro' },\n { label: 'filter_cc_type_value_diners', value: 'diners' },\n { label: 'filter_cc_type_value_visa', value: 'visa' },\n { label: 'filter_cc_type_value_amex', value: 'amex' },\n { label: 'filter_cc_type_value_jcb', value: 'jcb' },\n ],\n },\n {\n label: 'filter_cc_number_masked',\n type: Type.String,\n path: 'payments:cc_number_masked',\n },\n ];\n\n private readonly __customerUriSetValue = (newValue: string) => {\n this.edit({ customer_uri: newValue, customer_email: '' });\n };\n\n private readonly __customerUriOptions: Option[] = [\n { label: 'filter_email', path: 'email', type: Type.String },\n {\n label: 'filter_is_anonymous',\n path: 'is_anonymous',\n type: Type.String,\n list: [\n { value: 'false', label: 'filter_is_anonymous_value_false' },\n { value: 'true', label: 'filter_is_anonymous_value_true' },\n ],\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (this.form.customer_uri) {\n alwaysMatch.unshift('general:customer-email');\n } else {\n alwaysMatch.unshift('billing:payment-method-uri');\n }\n\n if (this.data) {\n if (!this.form.use_customer_shipping_address) {\n alwaysMatch.unshift('shipping:shipping-address');\n }\n } else {\n alwaysMatch.unshift(\n 'applied-coupon-codes',\n 'custom-fields',\n 'attributes',\n 'shipping',\n 'billing',\n 'totals',\n 'items'\n );\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderHeaderActions(): TemplateResult {\n return html`\n <foxy-internal-cart-form-create-session-action infer=\"view-as-customer\">\n </foxy-internal-cart-form-create-session-action>\n `;\n }\n\n renderBody(): TemplateResult {\n const links = this.data?._links;\n const customer = this.__customer;\n const customerAddresses = customer?._links['fx:customer_addresses'].href;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n first=${ifDefined(this.templateSets ?? void 0)}\n infer=\"template-set-uri\"\n item=\"foxy-template-set-card\"\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"language\"\n .options=${this.__languageOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n first=${ifDefined(this.customers ?? void 0)}\n infer=\"customer-uri\"\n item=\"foxy-customer-card\"\n .setValue=${this.__customerUriSetValue}\n .filters=${this.__customerUriOptions}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"customer-email\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n infer=\"items\"\n class=\"min-w-0\"\n first=${ifDefined(this.__itemsHref)}\n alert\n item=\"foxy-item-card\"\n form=\"foxy-item-form\"\n .related=${this.href ? [this.href] : []}\n .itemProps=${{ 'locale-codes': this.localeCodes ?? '' }}\n .formProps=${{\n 'customer-addresses': customerAddresses ?? '',\n 'item-categories': this.itemCategories ?? '',\n 'locale-codes': this.localeCodes ?? '',\n 'coupons': this.coupons ?? '',\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-cart-form-totals-control class=\"min-w-0\" infer=\"totals\">\n </foxy-internal-cart-form-totals-control>\n\n <foxy-internal-async-list-control\n infer=\"applied-coupon-codes\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:applied_coupon_codes'].href)}\n item=\"foxy-applied-coupon-code-card\"\n form=\"foxy-applied-coupon-code-form\"\n alert\n .related=${this.href ? [this.href] : []}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-summary-control infer=\"billing\">\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n first=${ifDefined(this.__transactionsWithPaymentsUrl)}\n infer=\"payment-method-uri\"\n item=\"foxy-internal-cart-form-payment-method-card\"\n form=\"foxy-internal-cart-form-payment-method-form\"\n .getDisplayValueOptions=${this.__paymentMethodUriGetDisplayValueOptions}\n .formProps=${{\n 'default-payment-method': customer?._links['fx:default_payment_method'].href ?? '',\n 'payment-card-embed-url': this.__pickerPaymentCardEmbedUrl ?? '',\n }}\n .setValue=${this.__paymentMethodUriSetValue}\n .filters=${this.__paymentMethodUriFilters}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-cart-form-address-summary-item\n countries=${ifDefined(this.countries ?? void 0)}\n regions=${ifDefined(this.regions ?? void 0)}\n infer=\"billing-address\"\n type=\"billing\"\n .customer=${customer}\n >\n </foxy-internal-cart-form-address-summary-item>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"shipping\">\n <foxy-internal-switch-control infer=\"use-customer-shipping-address\" invert>\n </foxy-internal-switch-control>\n\n <foxy-internal-cart-form-address-summary-item\n countries=${ifDefined(this.countries ?? void 0)}\n regions=${ifDefined(this.regions ?? void 0)}\n infer=\"shipping-address\"\n type=\"shipping\"\n .customer=${customer}\n >\n </foxy-internal-cart-form-address-summary-item>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n infer=\"custom-fields\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:custom_fields'].href)}\n limit=\"5\"\n item=\"foxy-custom-field-card\"\n form=\"foxy-custom-field-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:attributes'].href)}\n limit=\"5\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.languages ?? void 0)}\n id=${this.__languagesLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__customerHref)}\n id=${this.__customerLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __transactionsWithPaymentsUrl() {\n try {\n const url = new URL(this.__customer?._links['fx:transactions'].href ?? '');\n url.searchParams.set('zoom', 'payments');\n return url.toString();\n } catch {\n // ignore\n }\n }\n\n private get __pickerPaymentCardEmbedUrl() {\n try {\n const url = new URL(this.paymentCardEmbedUrl ?? '');\n const id = getResourceId(this.form.template_set_uri ?? '');\n if (id !== null) {\n url.searchParams.set('template_set_id', String(id));\n return url.toString();\n }\n } catch {\n // ignore\n }\n }\n\n private get __customerHref() {\n try {\n const url = new URL(this.form.customer_uri ?? '');\n url.searchParams.set(\n 'zoom',\n 'default_payment_method,default_billing_address,default_shipping_address'\n );\n return url.toString();\n } catch {\n // ignore\n }\n }\n\n private get __itemsHref() {\n try {\n const url = new URL(this.data?._links['fx:items'].href ?? '');\n url.searchParams.set('zoom', 'item_options');\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __languageOptions() {\n type Loader = NucleonElement<Resource<Rels.Languages>>;\n const loader = this.renderRoot.querySelector<Loader>(`#${this.__languagesLoaderId}`);\n const values = Object.entries(loader?.data?.values ?? {});\n return values.map(([value, rawLabel]) => ({ rawLabel, value }));\n }\n\n private get __customer() {\n type Loader = NucleonElement<\n Resource<\n Rels.Customer,\n { zoom: ['default_payment_method', 'default_shipping_address', 'default_billing_address'] }\n >\n >;\n\n return this.renderRoot.querySelector<Loader>(`#${this.__customerLoaderId}`)?.data;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CartForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CartForm/CartForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { Type } from '../QueryBuilder/types';\nimport { html } from 'lit-html';\n\nconst NS = 'cart-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing carts (`fx:cart`).\n *\n * @element foxy-cart-form\n * @since 1.21.0\n */\nexport class CartForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentCardEmbedUrl: { attribute: 'payment-card-embed-url' },\n itemCategories: { attribute: 'item-categories' },\n templateSets: { attribute: 'template-sets' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n customers: {},\n countries: {},\n regions: {},\n coupons: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ billing_first_name: v }) => !v || v.length <= 50 || 'billing-first-name:v8n_too_long',\n ({ billing_last_name: v }) => !v || v.length <= 50 || 'billing-last-name:v8n_too_long',\n ({ billing_state: v }) => !v || v.length <= 50 || 'billing-state:v8n_too_long',\n ({ billing_city: v }) => !v || v.length <= 50 || 'billing-city:v8n_too_long',\n ({ billing_phone: v }) => !v || v.length <= 50 || 'billing-phone:v8n_too_long',\n ({ billing_company: v }) => !v || v.length <= 50 || 'billing-company:v8n_too_long',\n ({ billing_address2: v }) => !v || v.length <= 100 || 'billing-address-two:v8n_too_long',\n ({ billing_address1: v }) => !v || v.length <= 100 || 'billing-address-one:v8n_too_long',\n ({ billing_postal_code: v }) => !v || v.length <= 50 || 'billing-postal-code:v8n_too_long',\n ({ shipping_first_name: v }) => !v || v.length <= 50 || 'shipping-first-name:v8n_too_long',\n ({ shipping_last_name: v }) => !v || v.length <= 50 || 'shipping-last-name:v8n_too_long',\n ({ shipping_state: v }) => !v || v.length <= 50 || 'shipping-state:v8n_too_long',\n ({ shipping_city: v }) => !v || v.length <= 50 || 'shipping-city:v8n_too_long',\n ({ shipping_phone: v }) => !v || v.length <= 50 || 'shipping-phone:v8n_too_long',\n ({ shipping_company: v }) => !v || v.length <= 50 || 'shipping-company:v8n_too_long',\n ({ shipping_address2: v }) => !v || v.length <= 100 || 'shipping-address-two:v8n_too_long',\n ({ shipping_address1: v }) => !v || v.length <= 100 || 'shipping-address-one:v8n_too_long',\n ({ shipping_postal_code: v }) => !v || v.length <= 50 || 'shipping-postal-code:v8n_too_long',\n ];\n }\n\n /** Payment Card Embed configuration URL. The form will append template set parameter on its own. */\n paymentCardEmbedUrl: string | null = null;\n\n /** URL of the `fx:item_categories` collection for the store. */\n itemCategories: string | null = null;\n\n /** URL of the `fx:template_sets` collection for the store. */\n templateSets: string | null = null;\n\n /** URL of the `fx:locale_codes` property helper. */\n localeCodes: string | null = null;\n\n /** URL of the `fx:languages` property helper. */\n languages: string | null = null;\n\n /** URL of the `fx:customers` collection for the store. */\n customers: string | null = null;\n\n /** URL of the `fx:countries` property helper. */\n countries: string | null = null;\n\n /** URL of the `fx:regions` property helper. */\n regions: string | null = null;\n\n /** URL of the `fx:coupons` collection for the store. */\n coupons: string | null = null;\n\n private readonly __languagesLoaderId = 'languagesLoader';\n\n private readonly __customerLoaderId = 'customerLoader';\n\n private readonly __paymentMethodUriGetDisplayValueOptions = (\n payments: Resource<Rels.Payments>\n ) => {\n const payment = payments?._embedded?.['fx:payments']?.[0] ?? null;\n const ccExpMonth = payment?.cc_exp_month;\n const ccExpYear = payment?.cc_exp_year;\n const ccLast4 = payment?.cc_number_masked?.replace(/x/g, '');\n const ccType = payment?.cc_type;\n\n return {\n cc_exp_month: ccExpMonth ?? '',\n cc_exp_year: ccExpYear ?? '',\n cc_last4: ccLast4 ?? '',\n cc_type: ccType ?? '',\n context: ccLast4 && ccExpMonth && ccExpYear && ccType ? '' : 'empty',\n };\n };\n\n private readonly __paymentMethodUriSetValue = (transactionUrl: string) => {\n try {\n // TODO use links instead of constructing the URL manually\n const url = new URL(transactionUrl);\n url.search = '';\n url.pathname += '/payments';\n this.edit({ payment_method_uri: url.toString() });\n } catch (err) {\n this.edit({ payment_method_uri: '' });\n }\n };\n\n private readonly __paymentMethodUriFilters: Option[] = [\n {\n label: 'filter_type',\n type: Type.String,\n path: 'payments:type',\n list: [\n { label: 'filter_type_value_purchase_order', value: 'purchase_order' },\n { label: 'filter_type_value_amazon_mws', value: 'amazon_mws' },\n { label: 'filter_type_value_paypal_ec', value: 'paypal_ec' },\n { label: 'filter_type_value_paypal', value: 'paypal' },\n { label: 'filter_type_value_hosted', value: 'hosted' },\n { label: 'filter_type_value_ogone', value: 'ogone' },\n ],\n },\n {\n label: 'filter_cc_type',\n type: Type.String,\n path: 'payments:cc_type',\n list: [\n { label: 'filter_cc_type_value_mastercard', value: 'mastercard' },\n { label: 'filter_cc_type_value_discover', value: 'discover' },\n { label: 'filter_cc_type_value_unionpay', value: 'unionpay' },\n { label: 'filter_cc_type_value_maestro', value: 'maestro' },\n { label: 'filter_cc_type_value_diners', value: 'diners' },\n { label: 'filter_cc_type_value_visa', value: 'visa' },\n { label: 'filter_cc_type_value_amex', value: 'amex' },\n { label: 'filter_cc_type_value_jcb', value: 'jcb' },\n ],\n },\n {\n label: 'filter_cc_number_masked',\n type: Type.String,\n path: 'payments:cc_number_masked',\n },\n ];\n\n private readonly __customerUriSetValue = (newValue: string) => {\n this.edit({ customer_uri: newValue, customer_email: '' });\n };\n\n private readonly __customerUriOptions: Option[] = [\n { label: 'filter_email', path: 'email', type: Type.String },\n {\n label: 'filter_is_anonymous',\n path: 'is_anonymous',\n type: Type.String,\n list: [\n { value: 'false', label: 'filter_is_anonymous_value_false' },\n { value: 'true', label: 'filter_is_anonymous_value_true' },\n ],\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (this.form.customer_uri) {\n alwaysMatch.unshift('general:customer-email');\n } else {\n alwaysMatch.unshift('billing:payment-method-uri');\n }\n\n if (this.data) {\n if (!this.form.use_customer_shipping_address) {\n alwaysMatch.unshift('shipping:shipping-address');\n }\n } else {\n alwaysMatch.unshift(\n 'applied-coupon-codes',\n 'custom-fields',\n 'attributes',\n 'shipping',\n 'billing',\n 'totals',\n 'items'\n );\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderHeaderActions(): TemplateResult {\n return html`\n <foxy-internal-cart-form-create-session-action infer=\"view-as-customer\">\n </foxy-internal-cart-form-create-session-action>\n `;\n }\n\n renderBody(): TemplateResult {\n const links = this.data?._links;\n const customer = this.__customer;\n const customerAddresses = customer?._links['fx:customer_addresses'].href;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n first=${ifDefined(this.templateSets ?? void 0)}\n infer=\"template-set-uri\"\n item=\"foxy-template-set-card\"\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"language\"\n .options=${this.__languageOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n first=${ifDefined(this.customers ?? void 0)}\n infer=\"customer-uri\"\n item=\"foxy-customer-card\"\n .setValue=${this.__customerUriSetValue}\n .filters=${this.__customerUriOptions}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"customer-email\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n infer=\"items\"\n class=\"min-w-0\"\n first=${ifDefined(this.__itemsHref)}\n alert\n item=\"foxy-item-card\"\n form=\"foxy-item-form\"\n .related=${this.href ? [this.href] : []}\n .itemProps=${{ 'locale-codes': this.localeCodes ?? '' }}\n .formProps=${{\n 'customer-addresses': customerAddresses ?? '',\n 'item-categories': this.itemCategories ?? '',\n 'locale-codes': this.localeCodes ?? '',\n 'coupons': this.coupons ?? '',\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-cart-form-totals-control class=\"min-w-0\" infer=\"totals\">\n </foxy-internal-cart-form-totals-control>\n\n <foxy-internal-async-list-control\n infer=\"applied-coupon-codes\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:applied_coupon_codes'].href)}\n item=\"foxy-applied-coupon-code-card\"\n form=\"foxy-applied-coupon-code-form\"\n alert\n .related=${this.href ? [this.href] : []}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-summary-control infer=\"billing\">\n <foxy-internal-resource-picker-control\n placeholder=${this.__paymentMethodUriPlaceholder}\n layout=\"summary-item\"\n first=${ifDefined(this.__transactionsWithPaymentsUrl)}\n infer=\"payment-method-uri\"\n item=\"foxy-internal-cart-form-payment-method-card\"\n form=\"foxy-internal-cart-form-payment-method-form\"\n .getDisplayValueOptions=${this.__paymentMethodUriGetDisplayValueOptions}\n .formProps=${{\n 'default-payment-method': customer?._links['fx:default_payment_method'].href ?? '',\n 'payment-card-embed-url': this.__pickerPaymentCardEmbedUrl ?? '',\n }}\n .setValue=${this.__paymentMethodUriSetValue}\n .filters=${this.__paymentMethodUriFilters}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-cart-form-address-summary-item\n countries=${ifDefined(this.countries ?? void 0)}\n regions=${ifDefined(this.regions ?? void 0)}\n infer=\"billing-address\"\n type=\"billing\"\n .customer=${customer}\n >\n </foxy-internal-cart-form-address-summary-item>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"shipping\">\n <foxy-internal-switch-control infer=\"use-customer-shipping-address\" invert>\n </foxy-internal-switch-control>\n\n <foxy-internal-cart-form-address-summary-item\n countries=${ifDefined(this.countries ?? void 0)}\n regions=${ifDefined(this.regions ?? void 0)}\n infer=\"shipping-address\"\n type=\"shipping\"\n .customer=${customer}\n >\n </foxy-internal-cart-form-address-summary-item>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n infer=\"custom-fields\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:custom_fields'].href)}\n limit=\"5\"\n item=\"foxy-custom-field-card\"\n form=\"foxy-custom-field-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:attributes'].href)}\n limit=\"5\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.languages ?? void 0)}\n id=${this.__languagesLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__customerHref)}\n id=${this.__customerLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __paymentMethodUriPlaceholder() {\n const defaultPaymentMethod = this.__customer?._embedded['fx:default_payment_method'];\n const ccExpMonth = defaultPaymentMethod?.cc_exp_month ?? null;\n const ccExpYear = defaultPaymentMethod?.cc_exp_year ?? null;\n const ccLast4 = defaultPaymentMethod?.cc_number_masked?.replace(/x/g, '') ?? null;\n const ccType = defaultPaymentMethod?.cc_type ?? null;\n\n return this.t('billing.payment-method-uri.value', {\n cc_exp_month: ccExpMonth ?? '',\n cc_exp_year: ccExpYear ?? '',\n cc_last4: ccLast4 ?? '',\n cc_type: ccType ?? '',\n context: ccLast4 && ccExpMonth && ccExpYear && ccType ? '' : 'empty',\n });\n }\n\n private get __transactionsWithPaymentsUrl() {\n try {\n const url = new URL(this.__customer?._links['fx:transactions'].href ?? '');\n url.searchParams.set('zoom', 'payments');\n return url.toString();\n } catch {\n // ignore\n }\n }\n\n private get __pickerPaymentCardEmbedUrl() {\n try {\n const url = new URL(this.paymentCardEmbedUrl ?? '');\n const id = getResourceId(this.form.template_set_uri ?? '');\n if (id !== null) {\n url.searchParams.set('template_set_id', String(id));\n return url.toString();\n }\n } catch {\n // ignore\n }\n }\n\n private get __customerHref() {\n try {\n const url = new URL(this.form.customer_uri ?? '');\n url.searchParams.set(\n 'zoom',\n 'default_payment_method,default_billing_address,default_shipping_address'\n );\n return url.toString();\n } catch {\n // ignore\n }\n }\n\n private get __itemsHref() {\n try {\n const url = new URL(this.data?._links['fx:items'].href ?? '');\n url.searchParams.set('zoom', 'item_options');\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __languageOptions() {\n type Loader = NucleonElement<Resource<Rels.Languages>>;\n const loader = this.renderRoot.querySelector<Loader>(`#${this.__languagesLoaderId}`);\n const values = Object.entries(loader?.data?.values ?? {});\n return values.map(([value, rawLabel]) => ({ rawLabel, value }));\n }\n\n private get __customer() {\n type Loader = NucleonElement<\n Resource<\n Rels.Customer,\n { zoom: ['default_payment_method', 'default_shipping_address', 'default_billing_address'] }\n >\n >;\n\n return this.renderRoot.querySelector<Loader>(`#${this.__customerLoaderId}`)?.data;\n }\n}\n"]}
|
|
@@ -45,8 +45,8 @@ export class InternalCartFormAddressSummaryItem extends ResponsiveMixin(Internal
|
|
|
45
45
|
<div class="flex flex-col gap-m sm-flex-row items-start leading-xs">
|
|
46
46
|
<div class="flex-1">
|
|
47
47
|
<p class="text-m text-body">${this.label}</p>
|
|
48
|
-
<p class="text-
|
|
49
|
-
<p class="text-
|
|
48
|
+
<p class="text-xs text-secondary">${this.helperText}</p>
|
|
49
|
+
<p class="text-xs text-error" ?hidden=${this.disabled || this.readonly}>
|
|
50
50
|
${this._errorMessage}
|
|
51
51
|
</p>
|
|
52
52
|
</div>
|
|
@@ -125,7 +125,7 @@ export class InternalCartFormAddressSummaryItem extends ResponsiveMixin(Internal
|
|
|
125
125
|
${this.__renderTextField(address.company)} ${this.__renderTextField(address.phone)}
|
|
126
126
|
</foxy-internal-summary-control>
|
|
127
127
|
|
|
128
|
-
<p class="text-
|
|
128
|
+
<p class="text-xs text-secondary">
|
|
129
129
|
<foxy-i18n infer="" key="form_helper_text"></foxy-i18n>
|
|
130
130
|
</p>
|
|
131
131
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalCartFormAddressSummaryItem.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations } from 'lit-element';\nimport type { AddressEntry, ZoomedCustomer } from './types';\nimport type { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { CartForm } from '../../CartForm';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { InternalEditableControl } from '../../../../internal/InternalEditableControl/InternalEditableControl';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { ResponsiveMixin } from '../../../../../mixins/responsive';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../../../utils/class-map';\nimport { style } from './style';\nimport { html } from 'lit-html';\n\nexport class InternalCartFormAddressSummaryItem extends ResponsiveMixin(InternalEditableControl) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n countries: {},\n customer: { type: Object },\n regions: {},\n type: {},\n };\n }\n\n static get styles(): CSSResultArray {\n return [...super.styles, style];\n }\n\n /** URL of the `fx:countries` property helper. */\n countries: string | null = null;\n\n /** Customer resource with billing and shipping address zoomed. */\n customer: ZoomedCustomer | null = null;\n\n /** URL of the `fx:regions` property helper. */\n regions: string | null = null;\n\n /** Type of the address. Billing by default. */\n type: 'billing' | 'shipping' | null = null;\n\n get disabledSelector(): BooleanSelector {\n const alwaysMatch = [super.disabledSelector.toString()];\n if (!this.__regionsLoader?.data) alwaysMatch.unshift('address:state');\n return new BooleanSelector(alwaysMatch.join(' ').toString());\n }\n\n renderControl(): TemplateResult {\n const regionOptions = this.__regionOptions;\n const addressType = this.type ?? 'billing';\n const address = this.__mergedAddress;\n\n return html`\n <div class=\"flex flex-col gap-m sm-flex-row items-start leading-xs\">\n <div class=\"flex-1\">\n <p class=\"text-m text-body\">${this.label}</p>\n <p class=\"text-s text-secondary\">${this.helperText}</p>\n <p class=\"text-s text-error\" ?hidden=${this.disabled || this.readonly}>\n ${this._errorMessage}\n </p>\n </div>\n\n <button\n aria-label=${this.t('edit')}\n class=${classMap({\n 'text-left sm-text-right transition-colors transition-opacity': true,\n 'text-body cursor-pointer hover-opacity-80': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n 'font-medium': !this.readonly,\n })}\n ?disabled=${this.disabled || this.readonly}\n @click=${() => this.__dialog?.showModal()}\n >\n ${this.__isAddressEmpty\n ? html`<foxy-i18n infer=\"\" key=\"not_set\"></foxy-i18n>`\n : html`\n <div>\n ${this.__renderAddressPart(address.first_name)}\n ${this.__renderAddressPart(address.last_name)}\n </div>\n <div>${this.__renderAddressPart(address.company)}</div>\n <div>${this.__renderAddressPart(address.phone)}</div>\n <div>\n ${this.__renderAddressPart(address.address1)}\n ${this.__renderAddressPart(address.address2)}\n ${this.__renderAddressPart(address.city)}\n ${this.__renderAddressPart(address.state)}\n ${this.__renderAddressPart(address.postal_code)}\n ${this.__renderAddressPart(address.country)}\n </div>\n `}\n </button>\n </div>\n\n <dialog id=\"dialog\" class=\"p-m bg-base shadow-xxl space-y-m\">\n <h2 class=\"text-xl font-medium\">\n <foxy-i18n infer=\"\" key=\"label\"></foxy-i18n>\n </h2>\n\n <foxy-internal-summary-control infer=\"name\">\n ${this.__renderTextField(address.first_name)} ${this.__renderTextField(address.last_name)}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"address\">\n ${this.__renderTextField(address.address1)} ${this.__renderTextField(address.address2)}\n ${this.__renderTextField(address.city)}\n\n <foxy-internal-select-control\n placeholder=${ifDefined(this.__getPlaceholder(address.country))}\n property=\"${addressType}_country\"\n layout=\"summary-item\"\n infer=\"country\"\n .options=${this.__countryOptions}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control\n placeholder=${ifDefined(this.__getPlaceholder(address.state))}\n property=\"${addressType}_state\"\n layout=\"summary-item\"\n infer=\"state\"\n .options=${regionOptions}\n >\n </foxy-internal-select-control>\n `\n : this.__renderTextField(address.state)}\n ${this.__renderTextField(address.postal_code)}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"extra\">\n ${this.__renderTextField(address.company)} ${this.__renderTextField(address.phone)}\n </foxy-internal-summary-control>\n\n <p class=\"text-s text-secondary\">\n <foxy-i18n infer=\"\" key=\"form_helper_text\"></foxy-i18n>\n </p>\n\n <div class=\"flex justify-between gap-m\">\n <vaadin-button\n theme=\"error\"\n ?disabled=${this.disabled}\n ?hidden=${this.readonly}\n @click=${() => {\n this.nucleon?.edit({\n [`${addressType}_first_name`]: null,\n [`${addressType}_last_name`]: null,\n [`${addressType}_company`]: null,\n [`${addressType}_address1`]: null,\n [`${addressType}_address2`]: null,\n [`${addressType}_city`]: null,\n [`${addressType}_state`]: null,\n [`${addressType}_postal_code`]: null,\n [`${addressType}_country`]: null,\n [`${addressType}_phone`]: null,\n });\n }}\n >\n <foxy-i18n infer=\"\" key=\"reset\"></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n theme=\"primary\"\n ?disabled=${this.disabled}\n @click=${() => this.__dialog?.close()}\n >\n <foxy-i18n infer=\"\" key=\"done\"></foxy-i18n>\n </vaadin-button>\n </div>\n </dialog>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.countries ?? undefined)}\n id=\"countriesLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__regionsUrl)}\n id=\"regionsLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private __renderAddressPart(entry: AddressEntry) {\n const text = this.__getDisplayText(entry);\n\n return html`\n <span\n class=${classMap({\n 'text-success bg-success-10': entry.modified && !this.disabled,\n 'bg-contrast-5': entry.modified && this.disabled,\n 'inline-block': !!text,\n 'rounded-s': true,\n 'hidden': !text,\n })}\n >\n ${text}\n </span>\n `;\n }\n\n private __renderTextField(entry: AddressEntry) {\n return html`\n <foxy-internal-text-control\n placeholder=${ifDefined(this.__getPlaceholder(entry))}\n property=\"${this.type ?? 'billing'}_${entry.field}\"\n layout=\"summary-item\"\n infer=${entry.field.replace(/_/g, '-').replace('1', '-one').replace('2', '-two')}\n @clear=${() => this.nucleon?.edit({ [`${this.type ?? 'billing'}_${entry.field}`]: null })}\n >\n </foxy-internal-text-control>\n `;\n }\n\n private __getDisplayText(entry: AddressEntry) {\n return entry.value || (entry.modified ? '--' : '');\n }\n\n private __getPlaceholder(entry: AddressEntry) {\n return entry.modified ? this.t('empty_modified_placeholder') : entry.originalValue || void 0;\n }\n\n private get __countriesLoader() {\n type Loader = NucleonElement<Resource<Rels.Countries>>;\n return this.renderRoot.querySelector<Loader>('#countriesLoader');\n }\n\n private get __countryOptions() {\n return Object.values(this.__countriesLoader?.data?.values ?? {}).map(v => ({\n rawLabel: v.default,\n value: v.cc2,\n }));\n }\n\n private get __isAddressEmpty() {\n return Object.values(this.__mergedAddress).every(entry => this.__getDisplayText(entry) === '');\n }\n\n private get __regionOptions() {\n return Object.values(this.__regionsLoader?.data?.values ?? {}).map(v => ({\n rawLabel: v.default,\n value: v.code,\n }));\n }\n\n private get __regionsLoader() {\n type Loader = NucleonElement<Resource<Rels.Regions>>;\n return this.renderRoot.querySelector<Loader>('#regionsLoader');\n }\n\n private get __mergedAddress() {\n type EmbedKey = 'fx:default_billing_address' | 'fx:default_shipping_address';\n\n const cart = (this.nucleon as CartForm | null)?.form;\n const type = this.type === 'shipping' ? 'shipping' : 'billing';\n const defaults = this.customer?._embedded[`fx:default_${type}_address` as EmbedKey] ?? {};\n const addressFields = [\n 'first_name',\n 'last_name',\n 'company',\n 'address1',\n 'address2',\n 'city',\n 'state',\n 'postal_code',\n 'country',\n 'phone',\n ];\n\n const address = addressFields.reduce<Record<string, AddressEntry>>((acc, field) => {\n const cartKey = `${type}_${field}` as keyof typeof cart;\n const cartValue = cart?.[cartKey];\n const defaultKey = (field === 'state' ? 'region' : field) as keyof typeof defaults;\n const defaultValue = defaults?.[defaultKey];\n\n acc[field] = {\n originalValue: String(defaultValue ?? ''),\n modified: cartValue !== null,\n value: String(cartValue ?? defaultValue ?? ''),\n field,\n };\n\n return acc;\n }, {});\n\n return address;\n }\n\n private get __regionsUrl() {\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.__mergedAddress.country.value;\n if (country) regionsURL.searchParams.set('country_code', country);\n return regionsURL.toString();\n } catch {\n // ignore\n }\n }\n\n private get __dialog() {\n return this.renderRoot.querySelector<HTMLDialogElement>('#dialog');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalCartFormAddressSummaryItem.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations } from 'lit-element';\nimport type { AddressEntry, ZoomedCustomer } from './types';\nimport type { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { CartForm } from '../../CartForm';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { InternalEditableControl } from '../../../../internal/InternalEditableControl/InternalEditableControl';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { ResponsiveMixin } from '../../../../../mixins/responsive';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../../../utils/class-map';\nimport { style } from './style';\nimport { html } from 'lit-html';\n\nexport class InternalCartFormAddressSummaryItem extends ResponsiveMixin(InternalEditableControl) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n countries: {},\n customer: { type: Object },\n regions: {},\n type: {},\n };\n }\n\n static get styles(): CSSResultArray {\n return [...super.styles, style];\n }\n\n /** URL of the `fx:countries` property helper. */\n countries: string | null = null;\n\n /** Customer resource with billing and shipping address zoomed. */\n customer: ZoomedCustomer | null = null;\n\n /** URL of the `fx:regions` property helper. */\n regions: string | null = null;\n\n /** Type of the address. Billing by default. */\n type: 'billing' | 'shipping' | null = null;\n\n get disabledSelector(): BooleanSelector {\n const alwaysMatch = [super.disabledSelector.toString()];\n if (!this.__regionsLoader?.data) alwaysMatch.unshift('address:state');\n return new BooleanSelector(alwaysMatch.join(' ').toString());\n }\n\n renderControl(): TemplateResult {\n const regionOptions = this.__regionOptions;\n const addressType = this.type ?? 'billing';\n const address = this.__mergedAddress;\n\n return html`\n <div class=\"flex flex-col gap-m sm-flex-row items-start leading-xs\">\n <div class=\"flex-1\">\n <p class=\"text-m text-body\">${this.label}</p>\n <p class=\"text-xs text-secondary\">${this.helperText}</p>\n <p class=\"text-xs text-error\" ?hidden=${this.disabled || this.readonly}>\n ${this._errorMessage}\n </p>\n </div>\n\n <button\n aria-label=${this.t('edit')}\n class=${classMap({\n 'text-left sm-text-right transition-colors transition-opacity': true,\n 'text-body cursor-pointer hover-opacity-80': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n 'font-medium': !this.readonly,\n })}\n ?disabled=${this.disabled || this.readonly}\n @click=${() => this.__dialog?.showModal()}\n >\n ${this.__isAddressEmpty\n ? html`<foxy-i18n infer=\"\" key=\"not_set\"></foxy-i18n>`\n : html`\n <div>\n ${this.__renderAddressPart(address.first_name)}\n ${this.__renderAddressPart(address.last_name)}\n </div>\n <div>${this.__renderAddressPart(address.company)}</div>\n <div>${this.__renderAddressPart(address.phone)}</div>\n <div>\n ${this.__renderAddressPart(address.address1)}\n ${this.__renderAddressPart(address.address2)}\n ${this.__renderAddressPart(address.city)}\n ${this.__renderAddressPart(address.state)}\n ${this.__renderAddressPart(address.postal_code)}\n ${this.__renderAddressPart(address.country)}\n </div>\n `}\n </button>\n </div>\n\n <dialog id=\"dialog\" class=\"p-m bg-base shadow-xxl space-y-m\">\n <h2 class=\"text-xl font-medium\">\n <foxy-i18n infer=\"\" key=\"label\"></foxy-i18n>\n </h2>\n\n <foxy-internal-summary-control infer=\"name\">\n ${this.__renderTextField(address.first_name)} ${this.__renderTextField(address.last_name)}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"address\">\n ${this.__renderTextField(address.address1)} ${this.__renderTextField(address.address2)}\n ${this.__renderTextField(address.city)}\n\n <foxy-internal-select-control\n placeholder=${ifDefined(this.__getPlaceholder(address.country))}\n property=\"${addressType}_country\"\n layout=\"summary-item\"\n infer=\"country\"\n .options=${this.__countryOptions}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control\n placeholder=${ifDefined(this.__getPlaceholder(address.state))}\n property=\"${addressType}_state\"\n layout=\"summary-item\"\n infer=\"state\"\n .options=${regionOptions}\n >\n </foxy-internal-select-control>\n `\n : this.__renderTextField(address.state)}\n ${this.__renderTextField(address.postal_code)}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"extra\">\n ${this.__renderTextField(address.company)} ${this.__renderTextField(address.phone)}\n </foxy-internal-summary-control>\n\n <p class=\"text-xs text-secondary\">\n <foxy-i18n infer=\"\" key=\"form_helper_text\"></foxy-i18n>\n </p>\n\n <div class=\"flex justify-between gap-m\">\n <vaadin-button\n theme=\"error\"\n ?disabled=${this.disabled}\n ?hidden=${this.readonly}\n @click=${() => {\n this.nucleon?.edit({\n [`${addressType}_first_name`]: null,\n [`${addressType}_last_name`]: null,\n [`${addressType}_company`]: null,\n [`${addressType}_address1`]: null,\n [`${addressType}_address2`]: null,\n [`${addressType}_city`]: null,\n [`${addressType}_state`]: null,\n [`${addressType}_postal_code`]: null,\n [`${addressType}_country`]: null,\n [`${addressType}_phone`]: null,\n });\n }}\n >\n <foxy-i18n infer=\"\" key=\"reset\"></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n theme=\"primary\"\n ?disabled=${this.disabled}\n @click=${() => this.__dialog?.close()}\n >\n <foxy-i18n infer=\"\" key=\"done\"></foxy-i18n>\n </vaadin-button>\n </div>\n </dialog>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.countries ?? undefined)}\n id=\"countriesLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__regionsUrl)}\n id=\"regionsLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private __renderAddressPart(entry: AddressEntry) {\n const text = this.__getDisplayText(entry);\n\n return html`\n <span\n class=${classMap({\n 'text-success bg-success-10': entry.modified && !this.disabled,\n 'bg-contrast-5': entry.modified && this.disabled,\n 'inline-block': !!text,\n 'rounded-s': true,\n 'hidden': !text,\n })}\n >\n ${text}\n </span>\n `;\n }\n\n private __renderTextField(entry: AddressEntry) {\n return html`\n <foxy-internal-text-control\n placeholder=${ifDefined(this.__getPlaceholder(entry))}\n property=\"${this.type ?? 'billing'}_${entry.field}\"\n layout=\"summary-item\"\n infer=${entry.field.replace(/_/g, '-').replace('1', '-one').replace('2', '-two')}\n @clear=${() => this.nucleon?.edit({ [`${this.type ?? 'billing'}_${entry.field}`]: null })}\n >\n </foxy-internal-text-control>\n `;\n }\n\n private __getDisplayText(entry: AddressEntry) {\n return entry.value || (entry.modified ? '--' : '');\n }\n\n private __getPlaceholder(entry: AddressEntry) {\n return entry.modified ? this.t('empty_modified_placeholder') : entry.originalValue || void 0;\n }\n\n private get __countriesLoader() {\n type Loader = NucleonElement<Resource<Rels.Countries>>;\n return this.renderRoot.querySelector<Loader>('#countriesLoader');\n }\n\n private get __countryOptions() {\n return Object.values(this.__countriesLoader?.data?.values ?? {}).map(v => ({\n rawLabel: v.default,\n value: v.cc2,\n }));\n }\n\n private get __isAddressEmpty() {\n return Object.values(this.__mergedAddress).every(entry => this.__getDisplayText(entry) === '');\n }\n\n private get __regionOptions() {\n return Object.values(this.__regionsLoader?.data?.values ?? {}).map(v => ({\n rawLabel: v.default,\n value: v.code,\n }));\n }\n\n private get __regionsLoader() {\n type Loader = NucleonElement<Resource<Rels.Regions>>;\n return this.renderRoot.querySelector<Loader>('#regionsLoader');\n }\n\n private get __mergedAddress() {\n type EmbedKey = 'fx:default_billing_address' | 'fx:default_shipping_address';\n\n const cart = (this.nucleon as CartForm | null)?.form;\n const type = this.type === 'shipping' ? 'shipping' : 'billing';\n const defaults = this.customer?._embedded[`fx:default_${type}_address` as EmbedKey] ?? {};\n const addressFields = [\n 'first_name',\n 'last_name',\n 'company',\n 'address1',\n 'address2',\n 'city',\n 'state',\n 'postal_code',\n 'country',\n 'phone',\n ];\n\n const address = addressFields.reduce<Record<string, AddressEntry>>((acc, field) => {\n const cartKey = `${type}_${field}` as keyof typeof cart;\n const cartValue = cart?.[cartKey];\n const defaultKey = (field === 'state' ? 'region' : field) as keyof typeof defaults;\n const defaultValue = defaults?.[defaultKey];\n\n acc[field] = {\n originalValue: String(defaultValue ?? ''),\n modified: cartValue !== null,\n value: String(cartValue ?? defaultValue ?? ''),\n field,\n };\n\n return acc;\n }, {});\n\n return address;\n }\n\n private get __regionsUrl() {\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.__mergedAddress.country.value;\n if (country) regionsURL.searchParams.set('country_code', country);\n return regionsURL.toString();\n } catch {\n // ignore\n }\n }\n\n private get __dialog() {\n return this.renderRoot.querySelector<HTMLDialogElement>('#dialog');\n }\n}\n"]}
|
|
@@ -59,8 +59,7 @@ export class FormDialog extends Dialog {
|
|
|
59
59
|
this.href = target.href;
|
|
60
60
|
this.closable = !target.in('busy');
|
|
61
61
|
this.editable =
|
|
62
|
-
target.in({ idle: { template: {
|
|
63
|
-
target.in({ idle: { template: { dirty: 'valid' } } }) ||
|
|
62
|
+
target.in({ idle: { template: { dirty: 'valid' } } }) ||
|
|
64
63
|
target.in({ idle: { snapshot: { dirty: 'valid' } } });
|
|
65
64
|
};
|
|
66
65
|
}
|
|
@@ -151,7 +150,7 @@ export class FormDialog extends Dialog {
|
|
|
151
150
|
`;
|
|
152
151
|
}
|
|
153
152
|
async hide(cancelled = false) {
|
|
154
|
-
if (cancelled) {
|
|
153
|
+
if (cancelled && this.editable) {
|
|
155
154
|
const confirm = this.renderRoot.querySelector('#confirm');
|
|
156
155
|
confirm.show();
|
|
157
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../../../../src/elements/public/FormDialog/FormDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { API } from '../NucleonElement/API';\nimport { Dialog } from '../../private/Dialog/Dialog';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { FormRenderer } from './types';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { UpdateEvent } from '../NucleonElement/UpdateEvent';\nimport { spread } from '@open-wc/lit-helpers';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\n\n/**\n * Dialog wrapper for the forms made with NucleonElement.\n *\n * @fires FormDialog#show - Instance of `FormDialog.ShowEvent`. Dispatched after dialog finishes entry transition.\n * @fires FormDialog#hide - Instance of `FormDialog.HideEvent`. Dispatched after dialog finishes exit transition.\n *\n * @element foxy-form-dialog\n * @since 1.1.0\n */\nexport class FormDialog extends Dialog {\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n href: { type: String },\n form: { type: String, noAccessor: true },\n group: { type: String },\n props: { type: Object },\n parent: { type: String },\n related: { type: Array },\n closeOnPatch: { type: Boolean, attribute: 'close-on-patch' },\n keepOpenOnPost: { type: Boolean, attribute: 'keep-open-on-post' },\n keepOpenOnDelete: { type: Boolean, attribute: 'keep-open-on-delete' },\n };\n }\n\n /** If true, FormDialog will automatically close after the associated form updates the resource. */\n closeOnPatch = false;\n\n /** If true, FormDialog won't automatically close after the associated form deletes the resource. */\n keepOpenOnDelete = false;\n\n /** If true, FormDialog won't automatically close after the associated form creates a resource. */\n keepOpenOnPost = false;\n\n /** Optional URI list of the related resources (passed to form). */\n related: string[] = [];\n\n /** Optional URL of the collection this resource belongs to (passed to form). */\n parent = '';\n\n /** Properties to set on the form element using the `spread()` helper. */\n props: Record<string, unknown> = {};\n\n group = '';\n\n /** Optional URL of the resource to load (passed to form). */\n href = '';\n\n private __form: string | null | FormRenderer = null;\n\n private __renderForm: FormRenderer | null = null;\n\n private __handleFetch = (evt: Event) => {\n if (!(evt instanceof FetchEvent)) return;\n\n evt.stopImmediatePropagation();\n evt.preventDefault();\n evt.respondWith(new API(this).fetch(evt.request));\n };\n\n private __handleUpdate = (evt: Event) => {\n if (!(evt instanceof UpdateEvent)) return;\n\n const result = evt.detail?.result;\n const Result = UpdateEvent.UpdateResult;\n const target = evt.currentTarget as NucleonElement<never>;\n\n if (\n (!this.keepOpenOnDelete && result === Result.ResourceDeleted) ||\n (!this.keepOpenOnPost && result === Result.ResourceCreated) ||\n (this.closeOnPatch && result === Result.ResourceUpdated && target.errors.length === 0)\n ) {\n this.open = false;\n }\n\n if (this.parent !== target.parent) this.parent = target.parent;\n if (this.href !== target.href) this.href = target.href;\n\n this.closable = !target.in('busy');\n this.editable =\n target.in({ idle: { template: { clean: 'valid' } } }) ||\n target.in({ idle: { template: { dirty: 'valid' } } }) ||\n target.in({ idle: { snapshot: { dirty: 'valid' } } });\n };\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`submit undo ${super.hiddenSelector}`.trim());\n }\n\n /**\n * Form's custom element tag. Generated custom element will have the following attributes:\n *\n * - `parent` – same as `foxy-form-dialog[parent]`;\n * - `href` – same as `foxy-form-dialog[href]`;\n * - `lang` – same as `foxy-form-dialog[lang]`;\n */\n get form(): string | null | FormRenderer {\n return this.__form;\n }\n\n set form(value: string | null | FormRenderer) {\n this.__form = value;\n\n if (typeof value === 'string') {\n this.__renderForm = new Function(\n 'options',\n `return options.html\\`\n <${value}\n id=\"form\"\n ns=\"$\\{options.dialog.ns} $\\{customElements.get('${value}')?.defaultNS ?? ''}\"\n href=\\${options.dialog.href}\n lang=\\${options.dialog.lang}\n group=\\${options.dialog.group}\n parent=\\${options.dialog.parent}\n disabledcontrols=\\${options.dialog.disabledSelector.toString()}\n readonlycontrols=\\${options.dialog.readonlySelector.toString()}\n hiddencontrols=\\${options.dialog.hiddenSelector.toString()}\n ?disabled=\\${options.dialog.disabled}\n ?readonly=\\${options.dialog.readonly}\n ?hidden=\\${options.dialog.hidden}\n .templates=\\${options.dialog.templates}\n .related=\\${options.dialog.related}\n ...=$\\{options.spread(options.dialog.props)}\n @fetch=\\${options.handleFetch}\n @update=\\${options.handleUpdate}\n >\n </${value}>\\``\n ) as FormRenderer;\n } else {\n this.__renderForm = value;\n }\n\n this.requestUpdate();\n }\n\n /** @readonly */\n render(): TemplateResult {\n return html`\n <foxy-internal-confirm-dialog\n message=\"undo_message\"\n confirm=\"undo_confirm\"\n cancel=\"undo_cancel\"\n header=\"undo_header\"\n theme=\"error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && super.hide(true)}\n >\n </foxy-internal-confirm-dialog>\n\n ${super.render(() => {\n return html`${this.__renderForm?.({\n handleUpdate: this.__handleUpdate,\n handleFetch: this.__handleFetch,\n spread: spread,\n dialog: this,\n html,\n })}`;\n })}\n `;\n }\n\n async hide(cancelled = false): Promise<void> {\n if (cancelled) {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show();\n } else {\n return super.hide(cancelled);\n }\n }\n\n /** Submits the form. */\n async save(): Promise<void> {\n (this.renderRoot.querySelector('#form') as NucleonElement<never>).submit();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../../../../src/elements/public/FormDialog/FormDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { API } from '../NucleonElement/API';\nimport { Dialog } from '../../private/Dialog/Dialog';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { FormRenderer } from './types';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { UpdateEvent } from '../NucleonElement/UpdateEvent';\nimport { spread } from '@open-wc/lit-helpers';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\n\n/**\n * Dialog wrapper for the forms made with NucleonElement.\n *\n * @fires FormDialog#show - Instance of `FormDialog.ShowEvent`. Dispatched after dialog finishes entry transition.\n * @fires FormDialog#hide - Instance of `FormDialog.HideEvent`. Dispatched after dialog finishes exit transition.\n *\n * @element foxy-form-dialog\n * @since 1.1.0\n */\nexport class FormDialog extends Dialog {\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n href: { type: String },\n form: { type: String, noAccessor: true },\n group: { type: String },\n props: { type: Object },\n parent: { type: String },\n related: { type: Array },\n closeOnPatch: { type: Boolean, attribute: 'close-on-patch' },\n keepOpenOnPost: { type: Boolean, attribute: 'keep-open-on-post' },\n keepOpenOnDelete: { type: Boolean, attribute: 'keep-open-on-delete' },\n };\n }\n\n /** If true, FormDialog will automatically close after the associated form updates the resource. */\n closeOnPatch = false;\n\n /** If true, FormDialog won't automatically close after the associated form deletes the resource. */\n keepOpenOnDelete = false;\n\n /** If true, FormDialog won't automatically close after the associated form creates a resource. */\n keepOpenOnPost = false;\n\n /** Optional URI list of the related resources (passed to form). */\n related: string[] = [];\n\n /** Optional URL of the collection this resource belongs to (passed to form). */\n parent = '';\n\n /** Properties to set on the form element using the `spread()` helper. */\n props: Record<string, unknown> = {};\n\n group = '';\n\n /** Optional URL of the resource to load (passed to form). */\n href = '';\n\n private __form: string | null | FormRenderer = null;\n\n private __renderForm: FormRenderer | null = null;\n\n private __handleFetch = (evt: Event) => {\n if (!(evt instanceof FetchEvent)) return;\n\n evt.stopImmediatePropagation();\n evt.preventDefault();\n evt.respondWith(new API(this).fetch(evt.request));\n };\n\n private __handleUpdate = (evt: Event) => {\n if (!(evt instanceof UpdateEvent)) return;\n\n const result = evt.detail?.result;\n const Result = UpdateEvent.UpdateResult;\n const target = evt.currentTarget as NucleonElement<never>;\n\n if (\n (!this.keepOpenOnDelete && result === Result.ResourceDeleted) ||\n (!this.keepOpenOnPost && result === Result.ResourceCreated) ||\n (this.closeOnPatch && result === Result.ResourceUpdated && target.errors.length === 0)\n ) {\n this.open = false;\n }\n\n if (this.parent !== target.parent) this.parent = target.parent;\n if (this.href !== target.href) this.href = target.href;\n\n this.closable = !target.in('busy');\n this.editable =\n target.in({ idle: { template: { dirty: 'valid' } } }) ||\n target.in({ idle: { snapshot: { dirty: 'valid' } } });\n };\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`submit undo ${super.hiddenSelector}`.trim());\n }\n\n /**\n * Form's custom element tag. Generated custom element will have the following attributes:\n *\n * - `parent` – same as `foxy-form-dialog[parent]`;\n * - `href` – same as `foxy-form-dialog[href]`;\n * - `lang` – same as `foxy-form-dialog[lang]`;\n */\n get form(): string | null | FormRenderer {\n return this.__form;\n }\n\n set form(value: string | null | FormRenderer) {\n this.__form = value;\n\n if (typeof value === 'string') {\n this.__renderForm = new Function(\n 'options',\n `return options.html\\`\n <${value}\n id=\"form\"\n ns=\"$\\{options.dialog.ns} $\\{customElements.get('${value}')?.defaultNS ?? ''}\"\n href=\\${options.dialog.href}\n lang=\\${options.dialog.lang}\n group=\\${options.dialog.group}\n parent=\\${options.dialog.parent}\n disabledcontrols=\\${options.dialog.disabledSelector.toString()}\n readonlycontrols=\\${options.dialog.readonlySelector.toString()}\n hiddencontrols=\\${options.dialog.hiddenSelector.toString()}\n ?disabled=\\${options.dialog.disabled}\n ?readonly=\\${options.dialog.readonly}\n ?hidden=\\${options.dialog.hidden}\n .templates=\\${options.dialog.templates}\n .related=\\${options.dialog.related}\n ...=$\\{options.spread(options.dialog.props)}\n @fetch=\\${options.handleFetch}\n @update=\\${options.handleUpdate}\n >\n </${value}>\\``\n ) as FormRenderer;\n } else {\n this.__renderForm = value;\n }\n\n this.requestUpdate();\n }\n\n /** @readonly */\n render(): TemplateResult {\n return html`\n <foxy-internal-confirm-dialog\n message=\"undo_message\"\n confirm=\"undo_confirm\"\n cancel=\"undo_cancel\"\n header=\"undo_header\"\n theme=\"error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && super.hide(true)}\n >\n </foxy-internal-confirm-dialog>\n\n ${super.render(() => {\n return html`${this.__renderForm?.({\n handleUpdate: this.__handleUpdate,\n handleFetch: this.__handleFetch,\n spread: spread,\n dialog: this,\n html,\n })}`;\n })}\n `;\n }\n\n async hide(cancelled = false): Promise<void> {\n if (cancelled && this.editable) {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show();\n } else {\n return super.hide(cancelled);\n }\n }\n\n /** Submits the form. */\n async save(): Promise<void> {\n (this.renderRoot.querySelector('#form') as NucleonElement<never>).submit();\n }\n}\n"]}
|