@foxy.io/elements 1.27.0-beta.6 → 1.27.0-beta.8
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 +5 -5
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-api-browser.js +2 -2
- 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 +1 -1
- 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-api.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 +13 -13
- package/dist/cdn/foxy-customer.js +6 -6
- 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 +7 -7
- 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 -0
- 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 +2 -2
- 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-nucleon-element.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-element.js +1 -0
- 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-payments-api.js +1 -1
- package/dist/cdn/foxy-query-builder.js +64 -1
- package/dist/cdn/foxy-report-form.js +2 -2
- package/dist/cdn/foxy-reports-table.js +3 -3
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +1 -1
- 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 -0
- 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-205721a3.js → shared-0062cab1.js} +1 -1
- package/dist/cdn/{shared-c5f57aa8.js → shared-036b25a3.js} +1 -1
- package/dist/cdn/shared-04d8a434.js +1 -0
- package/dist/cdn/{shared-065dbdf6.js → shared-0aa511d0.js} +1 -1
- package/dist/cdn/shared-102dfbe0.js +1 -0
- package/dist/cdn/shared-12e531b8.js +1 -0
- package/dist/cdn/{shared-f7a5b12a.js → shared-15fe01fe.js} +1 -1
- package/dist/cdn/{shared-cc723108.js → shared-1ab8b12e.js} +1 -1
- package/dist/cdn/{shared-f2a8fb36.js → shared-1d12db26.js} +1 -1
- package/dist/cdn/{shared-0e5ea9cf.js → shared-25fc0ceb.js} +1 -1
- package/dist/cdn/shared-272e7269.js +1 -0
- package/dist/cdn/{shared-8def6325.js → shared-2808f43a.js} +1 -1
- package/dist/cdn/{shared-61f67b16.js → shared-292585a0.js} +1 -1
- package/dist/cdn/shared-2e2d45c4.js +1 -0
- package/dist/cdn/{shared-48b76c74.js → shared-2f2b5a28.js} +1 -1
- package/dist/cdn/{shared-bfa30d93.js → shared-30143820.js} +1 -1
- package/dist/cdn/{shared-4329ffa1.js → shared-328e5fdc.js} +1 -1
- package/dist/cdn/{shared-80eb1fee.js → shared-337f2fe9.js} +1 -1
- package/dist/cdn/{shared-039de1fd.js → shared-34f4330c.js} +1 -1
- package/dist/cdn/shared-37391934.js +1 -0
- package/dist/cdn/shared-39fc8fed.js +1 -0
- package/dist/cdn/{shared-11014aad.js → shared-3c58ddf1.js} +1 -1
- package/dist/cdn/{shared-589e5d06.js → shared-40cbbbae.js} +1 -1
- package/dist/cdn/{shared-da7a0bfb.js → shared-4128d453.js} +1 -1
- package/dist/cdn/{shared-850e2ae1.js → shared-41e9ef02.js} +2 -2
- package/dist/cdn/{shared-f03dacf5.js → shared-432d66f4.js} +1 -1
- package/dist/cdn/{shared-6e977271.js → shared-4885670b.js} +1 -1
- package/dist/cdn/{shared-5c542149.js → shared-550608b8.js} +1 -1
- package/dist/cdn/shared-5758adbc.js +1 -0
- package/dist/cdn/{shared-bb08b5ce.js → shared-5a18985c.js} +2 -2
- package/dist/cdn/{shared-dccfe5e7.js → shared-5e9395ec.js} +1 -1
- package/dist/cdn/{shared-845f8bf1.js → shared-62f3fc5a.js} +1 -1
- package/dist/cdn/{shared-fd041b18.js → shared-66a515e3.js} +1 -1
- package/dist/cdn/shared-66d2a0d7.js +1 -0
- package/dist/cdn/{shared-b81aa01c.js → shared-68aebcc4.js} +1 -1
- package/dist/cdn/{shared-1d6beb48.js → shared-6dfb57b1.js} +1 -1
- package/dist/cdn/{shared-85979316.js → shared-739a8fe4.js} +1 -1
- package/dist/cdn/{shared-e966f1ef.js → shared-7535b32d.js} +1 -1
- package/dist/cdn/{shared-931db653.js → shared-7c819ebc.js} +1 -1
- package/dist/cdn/{shared-9a5da74d.js → shared-84215d13.js} +1 -1
- package/dist/cdn/{shared-b30f9b10.js → shared-8452c492.js} +1 -1
- package/dist/cdn/{shared-5f09205d.js → shared-8540c2c7.js} +1 -1
- package/dist/cdn/shared-8874ec69.js +1 -0
- package/dist/cdn/{shared-208e37af.js → shared-8c5b4c81.js} +1 -1
- package/dist/cdn/{shared-5dbb9630.js → shared-8d7e2e2c.js} +1 -1
- package/dist/cdn/{shared-ca15d510.js → shared-8e59a71e.js} +1 -1
- package/dist/cdn/shared-8e75c372.js +1 -0
- package/dist/cdn/shared-90ddf541.js +1 -0
- package/dist/cdn/{shared-e35297c9.js → shared-91009494.js} +1 -1
- package/dist/cdn/shared-9f5c636a.js +1 -0
- package/dist/cdn/{shared-fda63db8.js → shared-a30fcaf6.js} +4 -4
- package/dist/cdn/shared-a33be18f.js +6 -0
- package/dist/cdn/{shared-7e201abd.js → shared-a911ab73.js} +1 -1
- package/dist/cdn/{shared-fe7b3ed2.js → shared-b1c7300a.js} +1 -1
- package/dist/cdn/{shared-bc95d87e.js → shared-b2ce84fa.js} +1 -1
- package/dist/cdn/{shared-1a9e80fa.js → shared-b55f1de3.js} +1 -1
- package/dist/cdn/{shared-8cd0f36d.js → shared-b6c1aa47.js} +1 -1
- package/dist/cdn/{shared-fb8c09b8.js → shared-b73fd633.js} +1 -1
- package/dist/cdn/{shared-a0cbfb2f.js → shared-b99daf13.js} +1 -1
- package/dist/cdn/{shared-1d257548.js → shared-bac00622.js} +1 -1
- package/dist/cdn/{shared-6af480b8.js → shared-bd99107c.js} +1 -1
- package/dist/cdn/{shared-2c70f0b6.js → shared-c0b1a51d.js} +1 -1
- package/dist/cdn/shared-c5106605.js +1 -0
- package/dist/cdn/{shared-0e8dceb8.js → shared-cb732375.js} +1 -1
- package/dist/cdn/shared-cd96ff03.js +1 -0
- package/dist/cdn/{shared-93812e51.js → shared-da2a367a.js} +1 -1
- package/dist/cdn/{shared-a73e7be4.js → shared-e075ca81.js} +1 -1
- package/dist/cdn/{shared-d04c2e0c.js → shared-e10b5dca.js} +1 -1
- package/dist/cdn/{shared-cab2aa63.js → shared-e2cbc382.js} +1 -1
- package/dist/cdn/{shared-bba8ae80.js → shared-e4403332.js} +1 -1
- package/dist/cdn/{shared-befe135a.js → shared-e5f6ca48.js} +1 -1
- package/dist/cdn/{shared-56addb06.js → shared-e989e47e.js} +2 -2
- package/dist/cdn/{shared-683145e5.js → shared-ecb7a183.js} +1 -1
- package/dist/cdn/{shared-e48fbf50.js → shared-f090c63a.js} +1 -1
- package/dist/cdn/{shared-4877ed05.js → shared-f14856e0.js} +1 -1
- package/dist/cdn/{shared-abf72e2f.js → shared-f2721fae.js} +1 -1
- package/dist/cdn/{shared-d4322854.js → shared-f548d023.js} +1 -1
- package/dist/cdn/{shared-724e9a20.js → shared-fd95cd52.js} +1 -1
- package/dist/cdn/translations/customer/en.json +149 -2
- package/dist/cdn/translations/customer-portal/README.md +4 -0
- package/dist/cdn/translations/customer-portal/de.json +1063 -113
- package/dist/cdn/translations/customer-portal/en.json +151 -5
- package/dist/cdn/translations/customer-portal/es.json +1072 -123
- package/dist/cdn/translations/customer-portal/fr.json +1084 -134
- package/dist/cdn/translations/customer-portal/nl.json +1085 -135
- package/dist/cdn/translations/customer-portal/pl.json +1092 -142
- package/dist/cdn/translations/customer-portal/sv.json +1173 -0
- package/dist/cdn/translations/customer-portal/zh-hk.json +1110 -160
- package/dist/cdn/translations/gift-card-code-card/en.json +10 -0
- package/dist/cdn/translations/gift-card-code-form/en.json +86 -0
- package/dist/cdn/translations/gift-card-form/en.json +638 -397
- package/dist/cdn/translations/payment-card-embed/en.json +48 -0
- package/dist/cdn/translations/payment-method-card/en.json +149 -2
- package/dist/cdn/translations/payments-api-payment-method-form/en.json +2 -2
- package/dist/cdn/translations/update-payment-method-form/en.json +140 -0
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +15 -7
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
- package/dist/elements/internal/InternalBulkAddActionControl/InternalBulkAddActionControl.d.ts +10 -0
- package/dist/elements/{public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.js → internal/InternalBulkAddActionControl/InternalBulkAddActionControl.js} +9 -9
- package/dist/elements/internal/InternalBulkAddActionControl/InternalBulkAddActionControl.js.map +1 -0
- package/dist/elements/internal/InternalBulkAddActionControl/index.d.ts +6 -0
- package/dist/elements/internal/InternalBulkAddActionControl/index.js +8 -0
- package/dist/elements/internal/InternalBulkAddActionControl/index.js.map +1 -0
- package/dist/elements/internal/InternalForm/InternalForm.js +2 -0
- package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +16 -0
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +167 -0
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -0
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.d.ts +14 -0
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js +40 -0
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js.map +1 -0
- package/dist/elements/internal/InternalResourcePickerControl/index.d.ts +6 -0
- package/dist/elements/internal/InternalResourcePickerControl/index.js +10 -0
- package/dist/elements/internal/InternalResourcePickerControl/index.js.map +1 -0
- package/dist/elements/public/CouponForm/CouponForm.js +6 -4
- package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
- package/dist/elements/public/CouponForm/index.d.ts +1 -1
- package/dist/elements/public/CouponForm/index.js +1 -1
- package/dist/elements/public/CouponForm/index.js.map +1 -1
- package/dist/elements/public/CouponForm/types.d.ts +1 -10
- package/dist/elements/public/CouponForm/types.js.map +1 -1
- package/dist/elements/public/Customer/Customer.d.ts +5 -0
- package/dist/elements/public/Customer/Customer.js +13 -6
- package/dist/elements/public/Customer/Customer.js.map +1 -1
- package/dist/elements/public/Customer/index.d.ts +1 -0
- package/dist/elements/public/Customer/index.js +1 -0
- package/dist/elements/public/Customer/index.js.map +1 -1
- package/dist/elements/public/CustomerPortal/CustomerPortal.d.ts +14 -0
- package/dist/elements/public/CustomerPortal/CustomerPortal.js +23 -6
- package/dist/elements/public/CustomerPortal/CustomerPortal.js.map +1 -1
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.d.ts +1 -0
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js +7 -2
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js.map +1 -1
- package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js +0 -6
- package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js.map +1 -1
- package/dist/elements/public/DownloadableForm/DownloadableForm.js.map +1 -1
- package/dist/elements/public/FormDialog/FormDialog.d.ts +2 -0
- package/dist/elements/public/FormDialog/FormDialog.js +8 -4
- package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
- package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.d.ts +21 -0
- package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.js +78 -0
- package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.js.map +1 -0
- package/dist/elements/public/GiftCardCodeCard/index.d.ts +5 -0
- package/dist/elements/public/GiftCardCodeCard/index.js +7 -0
- package/dist/elements/public/GiftCardCodeCard/index.js.map +1 -0
- package/dist/elements/public/GiftCardCodeCard/types.d.ts +3 -0
- package/dist/elements/public/GiftCardCodeCard/types.js +2 -0
- package/dist/elements/public/GiftCardCodeCard/types.js.map +1 -0
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +12 -0
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +69 -4
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
- package/dist/elements/public/GiftCardCodeForm/index.d.ts +2 -0
- package/dist/elements/public/GiftCardCodeForm/index.js +2 -0
- package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -1
- package/dist/elements/public/GiftCardCodeForm/types.d.ts +5 -1
- package/dist/elements/public/GiftCardCodeForm/types.js.map +1 -1
- package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +22 -28
- package/dist/elements/public/GiftCardForm/GiftCardForm.js +183 -633
- package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
- package/dist/elements/public/GiftCardForm/index.d.ts +13 -12
- package/dist/elements/public/GiftCardForm/index.js +13 -12
- package/dist/elements/public/GiftCardForm/index.js.map +1 -1
- package/dist/elements/public/GiftCardForm/types.d.ts +2 -27
- package/dist/elements/public/GiftCardForm/types.js.map +1 -1
- package/dist/elements/public/NucleonElement/NucleonElement.js +7 -1
- package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
- package/dist/elements/public/NucleonElement/UpdateEvent.d.ts +3 -1
- package/dist/elements/public/NucleonElement/UpdateEvent.js +2 -0
- package/dist/elements/public/NucleonElement/UpdateEvent.js.map +1 -1
- package/dist/elements/public/PaymentCardEmbedElement/PaymentCardEmbedElement.d.ts +47 -0
- package/dist/elements/public/PaymentCardEmbedElement/PaymentCardEmbedElement.js +198 -0
- package/dist/elements/public/PaymentCardEmbedElement/PaymentCardEmbedElement.js.map +1 -0
- package/dist/elements/public/PaymentCardEmbedElement/index.d.ts +4 -0
- package/dist/elements/public/PaymentCardEmbedElement/index.js +6 -0
- package/dist/elements/public/PaymentCardEmbedElement/index.js.map +1 -0
- package/dist/elements/public/PaymentMethodCard/PaymentMethodCard.d.ts +14 -4
- package/dist/elements/public/PaymentMethodCard/PaymentMethodCard.js +79 -10
- package/dist/elements/public/PaymentMethodCard/PaymentMethodCard.js.map +1 -1
- package/dist/elements/public/PaymentMethodCard/index.d.ts +2 -0
- package/dist/elements/public/PaymentMethodCard/index.js +2 -0
- package/dist/elements/public/PaymentMethodCard/index.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +66 -56
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js +1 -0
- package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js.map +1 -1
- package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
- package/dist/elements/public/UpdatePaymentMethodForm/UpdatePaymentMethodForm.d.ts +37 -0
- package/dist/elements/public/UpdatePaymentMethodForm/UpdatePaymentMethodForm.js +142 -0
- package/dist/elements/public/UpdatePaymentMethodForm/UpdatePaymentMethodForm.js.map +1 -0
- package/dist/elements/public/UpdatePaymentMethodForm/index.d.ts +8 -0
- package/dist/elements/public/UpdatePaymentMethodForm/index.js +10 -0
- package/dist/elements/public/UpdatePaymentMethodForm/index.js.map +1 -0
- package/dist/elements/public/{CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.d.ts → UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/InternalUpdatePaymentMethodFormCcTokenControl.d.ts} +3 -3
- package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/InternalUpdatePaymentMethodFormCcTokenControl.js +46 -0
- package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/InternalUpdatePaymentMethodFormCcTokenControl.js.map +1 -0
- package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/index.d.ts +6 -0
- package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/index.js +8 -0
- package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/index.js.map +1 -0
- package/dist/elements/public/UpdatePaymentMethodForm/types.d.ts +13 -0
- package/dist/elements/public/UpdatePaymentMethodForm/types.js +2 -0
- package/dist/elements/public/UpdatePaymentMethodForm/types.js.map +1 -0
- package/dist/elements/public/index.d.ts +3 -0
- package/dist/elements/public/index.defined.d.ts +3 -0
- package/dist/elements/public/index.defined.js +3 -0
- package/dist/elements/public/index.defined.js.map +1 -1
- package/dist/elements/public/index.js +3 -0
- package/dist/elements/public/index.js.map +1 -1
- package/dist/mixins/themeable.js +45 -0
- package/dist/mixins/themeable.js.map +1 -1
- package/dist/mixins/translatable.js +89 -79
- package/dist/mixins/translatable.js.map +1 -1
- package/package.json +2 -2
- package/dist/cdn/shared-03ccfd62.js +0 -1
- package/dist/cdn/shared-07d5e225.js +0 -1
- package/dist/cdn/shared-250e652f.js +0 -1
- package/dist/cdn/shared-29f2468c.js +0 -6
- package/dist/cdn/shared-3ab0306f.js +0 -1
- package/dist/cdn/shared-400240f8.js +0 -1
- package/dist/cdn/shared-5e35c5a5.js +0 -1
- package/dist/cdn/shared-6c4affb9.js +0 -1
- package/dist/cdn/shared-77fd8dae.js +0 -1
- package/dist/cdn/shared-8a04bea3.js +0 -1
- package/dist/cdn/shared-bfeff3bb.js +0 -1
- package/dist/cdn/shared-e07b24ca.js +0 -1
- package/dist/cdn/shared-e84be1c2.js +0 -64
- package/dist/cdn/translations/customer-portal/se.json +0 -223
- package/dist/elements/private/EditableList/EditableList.d.ts +0 -23
- package/dist/elements/private/EditableList/EditableList.js +0 -127
- package/dist/elements/private/EditableList/EditableList.js.map +0 -1
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.js.map +0 -1
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.d.ts +0 -6
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.js +0 -8
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.js.map +0 -1
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.d.ts +0 -20
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js +0 -99
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js.map +0 -1
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.d.ts +0 -18
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js +0 -50
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js.map +0 -1
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.d.ts +0 -18
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js +0 -53
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map +0 -1
|
@@ -59,6 +59,11 @@ export class Customer extends Base {
|
|
|
59
59
|
constructor() {
|
|
60
60
|
super(...arguments);
|
|
61
61
|
this.templates = {};
|
|
62
|
+
/**
|
|
63
|
+
* Configuration URL for the Payment Card Embed. If provided, this element will allow
|
|
64
|
+
* the customer to update their default payment method using the Payment Card Embed.
|
|
65
|
+
*/
|
|
66
|
+
this.embedUrl = null;
|
|
62
67
|
/** Customer Portal settings for use in Customer mode. */
|
|
63
68
|
this.settings = null;
|
|
64
69
|
// #region header
|
|
@@ -314,22 +319,23 @@ export class Customer extends Base {
|
|
|
314
319
|
// #endregion
|
|
315
320
|
// #region payment-methods
|
|
316
321
|
this.__renderPaymentMethodsList = () => {
|
|
317
|
-
var _a, _b
|
|
322
|
+
var _a, _b;
|
|
318
323
|
const cardId = 'payment-methods:list:card';
|
|
319
324
|
return html `
|
|
320
325
|
<div data-testid="payment-methods:list">
|
|
321
326
|
${this.renderTemplateOrSlot('payment-methods:list:before')}
|
|
322
327
|
|
|
323
328
|
<foxy-payment-method-card
|
|
324
|
-
readonlycontrols=${this.readonlySelector.zoom(cardId)
|
|
325
|
-
disabledcontrols=${this.disabledSelector.zoom(cardId)
|
|
326
|
-
hiddencontrols=${this.hiddenSelector.zoom(cardId)
|
|
329
|
+
readonlycontrols=${this.readonlySelector.zoom(cardId)}
|
|
330
|
+
disabledcontrols=${this.disabledSelector.zoom(cardId)}
|
|
331
|
+
hiddencontrols=${this.hiddenSelector.zoom(cardId)}
|
|
327
332
|
data-testid=${cardId}
|
|
333
|
+
embed-url=${ifDefined((_a = this.embedUrl) !== null && _a !== void 0 ? _a : void 0)}
|
|
328
334
|
group=${this.group}
|
|
329
335
|
class="w-payment-method-card border-radius-overflow-fix rounded-t-l rounded-b-l overflow-hidden"
|
|
330
|
-
href=${(_b =
|
|
336
|
+
href=${ifDefined((_b = this.data) === null || _b === void 0 ? void 0 : _b._links['fx:default_payment_method'].href)}
|
|
331
337
|
lang=${this.lang}
|
|
332
|
-
ns="${this.ns}
|
|
338
|
+
ns="${this.ns} payment-method-card"
|
|
333
339
|
.templates=${this.getNestedTemplates(cardId)}
|
|
334
340
|
>
|
|
335
341
|
</foxy-payment-method-card>
|
|
@@ -692,6 +698,7 @@ export class Customer extends Base {
|
|
|
692
698
|
return {
|
|
693
699
|
...super.properties,
|
|
694
700
|
settings: { type: Object },
|
|
701
|
+
embedUrl: { attribute: 'embed-url' },
|
|
695
702
|
};
|
|
696
703
|
}
|
|
697
704
|
static get styles() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Customer.js","sourceRoot":"","sources":["../../../../src/elements/public/Customer/Customer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Attributes, CustomerAddresses, Data, Settings, Tab, Templates } from './types';\nimport { CSSResultArray, TemplateResult, html, PropertyDeclarations } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { Data as Attribute } from '../AttributeCard/types';\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { Column } from '../Table/types';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { Data as CustomerAddress } from '../AddressCard/types';\nimport { FormDialog } from '../FormDialog/FormDialog';\nimport { Group } from '../../private/index';\nimport { ItemRenderer } from '../CollectionPage/types';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { PageRenderer } from '../CollectionPages/types';\nimport { Skeleton } from '../../private/Skeleton/Skeleton';\nimport { Data as Subscriptions } from '../SubscriptionsTable/types';\nimport { SubscriptionsTable } from '../SubscriptionsTable/SubscriptionsTable';\nimport { Tabs } from '../../private/Tabs/Tabs';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { styles } from './styles';\n\nconst NS = 'customer';\nconst Base = ScopedElementsMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * All-in-one element for customer management.\n *\n * @slot header:before - **new in v1.4.0**\n * @slot header:after - **new in v1.4.0**\n * @slot header:actions:before - **new in v1.4.0**\n * @slot header:actions:after - **new in v1.4.0**\n * @slot header:actions:edit:before - **new in v1.4.0**\n * @slot header:actions:edit:after - **new in v1.4.0**\n *\n * @slot addresses:before - **new in v1.4.0**\n * @slot addresses:after - **new in v1.4.0**\n * @slot addresses:actions:before - **new in v1.4.0**\n * @slot addresses:actions:after - **new in v1.4.0**\n * @slot addresses:actions:create:before - **new in v1.4.0**\n * @slot addresses:actions:create:after - **new in v1.4.0**\n * @slot addresses:list:before - **new in v1.4.0**\n * @slot addresses:list:after - **new in v1.4.0**\n *\n * @slot payment-methods:before - **new in v1.4.0**\n * @slot payment-methods:after - **new in v1.4.0**\n * @slot payment-methods:list:before - **new in v1.4.0**\n * @slot payment-methods:list:after - **new in v1.4.0**\n *\n * @slot attributes:before - **new in v1.4.0**\n * @slot attributes:after - **new in v1.4.0**\n * @slot attributes:actions:before - **new in v1.4.0**\n * @slot attributes:actions:after - **new in v1.4.0**\n * @slot attributes:actions:create:before - **new in v1.4.0**\n * @slot attributes:actions:create:after - **new in v1.4.0**\n * @slot attributes:list:before - **new in v1.4.0**\n * @slot attributes:list:after - **new in v1.4.0**\n *\n * @slot transactions:before - **new in v1.4.0**\n * @slot transactions:after - **new in v1.4.0**\n *\n * @slot subscriptions:before - **new in v1.4.0**\n * @slot subscriptions:after - **new in v1.4.0**\n *\n * @element foxy-customer\n * @since 1.2.0\n */\nexport class Customer extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-payment-method-card': customElements.get('foxy-payment-method-card'),\n 'foxy-transactions-table': customElements.get('foxy-transactions-table'),\n 'foxy-collection-pages': customElements.get('foxy-collection-pages'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-attribute-card': customElements.get('foxy-attribute-card'),\n 'foxy-address-card': customElements.get('foxy-address-card'),\n 'foxy-form-dialog': customElements.get('foxy-form-dialog'),\n 'vaadin-button': customElements.get('vaadin-button'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-table': customElements.get('foxy-table'),\n 'x-skeleton': Skeleton,\n 'iron-icon': customElements.get('iron-icon'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-group': Group,\n 'x-tabs': Tabs,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n settings: { type: Object },\n };\n }\n\n static get styles(): CSSResultArray {\n return [super.styles, styles];\n }\n\n templates: Templates = {};\n\n /** Customer Portal settings for use in Customer mode. */\n settings: Settings | null = null;\n\n // #region header\n\n private readonly __renderHeaderActionsEdit = () => {\n const { readonlySelector, disabledSelector, hiddenSelector } = this;\n\n const actionId = 'header:actions:edit';\n const formId = 'header:actions:edit:form';\n const dialogId = 'customer-dialog';\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isEditActionDisabled = !isLoaded || disabledSelector.matches(actionId, true);\n\n return html`\n ${this.renderTemplateOrSlot('header:actions:edit:before')}\n\n <foxy-form-dialog\n data-testid=\"header:actions:edit:form\"\n header=\"update\"\n parent=${this.parent}\n group=${this.group}\n href=${this.href}\n form=\"foxy-customer-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=${dialogId}\n readonlycontrols=${readonlySelector.zoom(formId).toString()}\n disabledcontrols=${disabledSelector.zoom(formId).toString()}\n hiddencontrols=${hiddenSelector.zoom(formId).toString()}\n .templates=${this.getNestedTemplates('header:actions:edit:form')}\n .props=${{ '.settings': this.settings }}\n >\n </foxy-form-dialog>\n\n <vaadin-button\n data-testid=\"header:actions:edit\"\n aria-label=${this.t('update').toString()}\n class=\"px-xs rounded-full\"\n theme=\"icon\"\n ?disabled=${isEditActionDisabled}\n @click=${(evt: Event) => {\n const dialog = this.renderRoot.querySelector(`#${dialogId}`) as FormDialog;\n dialog.show(evt.currentTarget as HTMLElement);\n }}\n >\n <iron-icon icon=\"editor:mode-edit\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('header:actions:edit:after')}\n `;\n };\n\n private readonly __renderHeaderActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('header:actions');\n\n return html`\n <div class=\"flex\" data-testid=\"header:actions\">\n ${this.renderTemplateOrSlot('header:actions:before')}\n ${hiddenSelector.matches('edit', true) ? '' : this.__renderHeaderActionsEdit()}\n ${this.renderTemplateOrSlot('header:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderHeader = () => {\n const variant = ifDefined(this.in('busy') ? undefined : 'static');\n\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <header\n class=\"flex items-center justify-between space-x-m pb-s border-b border-contrast-10\"\n data-testid=\"header\"\n >\n <h1 class=\"text-xxl font-medium truncate min-w-0 flex-1\">\n ${this.in({ idle: 'snapshot' })\n ? html`${this.data.first_name} ${this.data.last_name}`\n : html`<x-skeleton class=\"w-full\" variant=${variant}> </x-skeleton>`}\n </h1>\n\n ${this.hiddenSelector.matches('header:actions', true) ? '' : this.__renderHeaderActions()}\n </header>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n };\n\n // #endregion\n\n // #region addresses\n\n private readonly __renderAddressesActionsCreate = () => {\n const { data, lang, ns } = this;\n\n const disabledSelector = this.disabledSelector.zoom('addresses:actions');\n const readonlySelector = this.readonlySelector.zoom('addresses:actions');\n const hiddenSelector = this.hiddenSelector.zoom('addresses:actions');\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isDisabled = !isLoaded || disabledSelector.matches('create', true);\n\n return html`\n ${this.renderTemplateOrSlot('addresses:actions:create:before')}\n\n <vaadin-button\n data-testid=\"addresses:actions:create\"\n aria-label=${this.t('create').toString()}\n class=\"px-xs rounded-full\"\n theme=\"small icon\"\n ?disabled=${isDisabled}\n @click=${(evt: Event) => {\n if (data === null) return;\n const button = evt.target as HTMLButtonElement;\n const dialog = button.firstElementChild as FormDialog;\n dialog.show(button);\n }}\n >\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('create:form').toString()}\n disabledcontrols=${disabledSelector.zoom('create:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('create:form').toString()}\n data-testid=\"addresses:actions:create:form\"\n parent=${data?._links['fx:customer_addresses'].href ?? ''}\n header=\"create\"\n group=${this.group}\n form=\"foxy-address-form\"\n lang=${lang}\n ns=${ns}\n id=\"address-dialog\"\n .templates=${this.getNestedTemplates('addresses:actions:create:form')}\n >\n </foxy-form-dialog>\n\n <iron-icon slot=\"suffix\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('addresses:actions:create:after')}\n `;\n };\n\n private readonly __renderAddressesActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('addresses:actions');\n\n return html`\n <div data-testid=\"addresses:actions\">\n ${this.renderTemplateOrSlot('addresses:actions:before')}\n ${hiddenSelector.matches('create', true) ? '' : this.__renderAddressesActionsCreate()}\n ${this.renderTemplateOrSlot('addresses:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderAddressesListCard: ItemRenderer<CustomerAddress> = ctx => {\n const handleClick = (evt: Event) => {\n if (ctx.data === null) return;\n\n const button = evt.target as HTMLButtonElement;\n const root = button.getRootNode() as Element | DocumentFragment;\n const form = root.querySelector('#addresses-list-form') as FormDialog;\n\n form.href = ctx.data._links.self.href;\n form.show(button);\n };\n\n const computedClass = classMap({\n 'snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0': true,\n 'border border-contrast-10': true,\n 'hover-border-contrast-30 focus-outline-none focus-border-primary': ctx.data !== null,\n });\n\n const isReadonly = this.readonlySelector.matches('addresses:list:card', true);\n const isDisabled = this.disabledSelector.matches('addresses:list:card', true);\n\n return html`\n <button\n data-testclass=\"addresses:list:card\"\n class=${computedClass}\n ?disabled=${!ctx.data || isReadonly || isDisabled}\n @click=${handleClick}\n >\n <foxy-address-card\n hiddencontrols=${ctx.hiddenControls.toString()}\n parent=${ctx.parent}\n class=\"w-tile\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-address-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-address-card>\n </button>\n `;\n };\n\n private readonly __renderAddressesListPage: PageRenderer<CustomerAddresses> = ctx => {\n return ctx.html`\n <foxy-collection-page\n hiddencontrols=${ctx.hiddenControls.toString()}\n class=\"space-x-m flex\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=${ctx.ns}\n .item=${this.__renderAddressesListCard}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderAddressesList = () => {\n const formId = 'addresses:list:form';\n const cardId = 'addresses:list:card';\n\n return html`\n ${this.renderTemplateOrSlot('addresses:list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testid=\"addresses:list:form\"\n parent=${this.data?._links['fx:customer_addresses'].href ?? ''}\n header=\"update\"\n group=${this.group}\n form=\"foxy-address-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"addresses-list-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n hiddencontrols=${this.hiddenSelector.zoom(cardId).toString()}\n data-testid=\"addresses:list\"\n first=${this.data?._links['fx:customer_addresses'].href ?? ''}\n class=\"snap-x-mandatory flex items-center space-x-m overflow-auto\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderAddressesListPage}\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('addresses:list:after')}\n `;\n };\n\n private readonly __renderAddresses = () => {\n const { lang, ns } = this;\n const hiddenSelector = this.hiddenSelector.zoom('addresses');\n\n return html`\n ${this.renderTemplateOrSlot('addresses:before')}\n\n <section class=\"pt-m\" data-testid=\"addresses\">\n <header class=\"space-x-m flex items-center mb-s\">\n <h2 class=\"text-l font-medium\">\n <foxy-i18n ns=${ns} lang=${lang} key=\"address_plural\"></foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('actions', true) ? '' : this.__renderAddressesActions()}\n </header>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderAddressesList()}\n </section>\n\n ${this.renderTemplateOrSlot('addresses:after')}\n `;\n };\n\n // #endregion\n\n // #region payment-methods\n\n private readonly __renderPaymentMethodsList = () => {\n const cardId = 'payment-methods:list:card';\n\n return html`\n <div data-testid=\"payment-methods:list\">\n ${this.renderTemplateOrSlot('payment-methods:list:before')}\n\n <foxy-payment-method-card\n readonlycontrols=${this.readonlySelector.zoom(cardId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(cardId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(cardId).toString()}\n data-testid=${cardId}\n group=${this.group}\n class=\"w-payment-method-card border-radius-overflow-fix rounded-t-l rounded-b-l overflow-hidden\"\n href=${this.data?._links['fx:default_payment_method'].href ?? ''}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-payment-method-card')?.defaultNS ?? ''}\"\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-payment-method-card>\n\n ${this.renderTemplateOrSlot('payment-methods:list:after')}\n </div>\n `;\n };\n\n private readonly __renderPaymentMethods = () => {\n const hiddenSelector = this.hiddenSelector.zoom('payment-methods');\n\n return html`\n ${this.renderTemplateOrSlot('payment-methods:before')}\n\n <div class=\"pt-m\" data-testid=\"payment-methods\">\n <h2 class=\"text-l font-medium mb-s\">\n <foxy-i18n\n data-testclass=\"i18n\"\n lang=${this.lang}\n key=\"payment_method_plural\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderPaymentMethodsList()}\n </div>\n\n ${this.renderTemplateOrSlot('payment-methods:after')}\n `;\n };\n\n // #endregion\n\n // #region attributes\n\n private readonly __renderAttributesActionsCreate = () => {\n const { data, lang, ns } = this;\n\n const disabledSelector = this.disabledSelector.zoom('attributes:actions');\n const readonlySelector = this.readonlySelector.zoom('attributes:actions');\n const hiddenSelector = this.hiddenSelector.zoom('attributes:actions');\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isDisabled = !isLoaded || disabledSelector.matches('create', true);\n\n return html`\n ${this.renderTemplateOrSlot('attributes:actions:create:before')}\n\n <vaadin-button\n data-testid=\"attributes:actions:create\"\n aria-label=${this.t('create').toString()}\n class=\"px-xs rounded-full\"\n theme=\"small icon\"\n ?disabled=${isDisabled}\n @click=${(evt: Event) => {\n if (data === null) return;\n const button = evt.target as HTMLButtonElement;\n const dialog = button.firstElementChild as FormDialog;\n dialog.show(button);\n }}\n >\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('create:form').toString()}\n disabledcontrols=${disabledSelector.zoom('create:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('create:form').toString()}\n data-testid=\"attributes:actions:create:form\"\n parent=${data?._links['fx:attributes'].href ?? ''}\n header=\"create\"\n group=${this.group}\n form=\"foxy-attribute-form\"\n lang=${lang}\n ns=${ns}\n .templates=${this.getNestedTemplates('attributes:actions:create:form')}\n >\n </foxy-form-dialog>\n\n <iron-icon slot=\"suffix\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('attributes:actions:create:after')}\n `;\n };\n\n private readonly __renderAttributesActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('attributes:actions');\n\n return html`\n <div data-testid=\"attributes:actions\">\n ${this.renderTemplateOrSlot('attributes:actions:before')}\n ${hiddenSelector.matches('create', true) ? '' : this.__renderAttributesActionsCreate()}\n ${this.renderTemplateOrSlot('attributes:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderAttributesListCard: ItemRenderer<Attribute> = ctx => {\n const handleClick = (evt: Event) => {\n if (ctx.data === null) return;\n\n const button = evt.target as HTMLButtonElement;\n const root = button.getRootNode() as Element | DocumentFragment;\n const form = root.querySelector('#attributes-list-form') as FormDialog;\n\n form.href = ctx.data._links.self.href;\n form.show(button);\n };\n\n const computedClass = classMap({\n 'snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0 border border-contrast-10':\n true,\n 'hover-border-contrast-30 focus-outline-none focus-border-primary': ctx.data !== null,\n });\n\n return ctx.html`\n <button \n data-testclass=\"attributes:list:card\"\n class=${computedClass}\n ?disabled=${ctx.data === null}\n @click=${handleClick}\n >\n <foxy-attribute-card\n hiddencontrols=${ctx.hiddenControls.toString()}\n parent=${ctx.parent}\n group=${ctx.group}\n class=\"w-tile\"\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-attribute-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-attribute-card>\n </button>\n `;\n };\n\n private readonly __renderAttributesListPage: PageRenderer<Attributes> = ctx => {\n return html`\n <foxy-collection-page\n hiddencontrols=${ctx.hiddenControls.toString()}\n class=\"space-x-m flex\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=${ctx.ns}\n .item=${this.__renderAttributesListCard}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderAttributesList = () => {\n const formId = 'attributes:list:form';\n const cardId = 'attributes:list:card';\n\n return html`\n ${this.renderTemplateOrSlot('attributes:list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testclass=\"i18n\"\n data-testid=\"attributes:list:form\"\n parent=${this.data?._links['fx:attributes'].href ?? ''}\n header=\"update\"\n group=${this.group}\n form=\"foxy-attribute-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"attributes-list-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n hiddencontrols=${this.hiddenControls.zoom(cardId).toString()}\n data-testid=\"attributes:list\"\n first=${this.data?._links['fx:attributes'].href ?? ''}\n class=\"snap-x-mandatory flex items-center space-x-m overflow-auto\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderAttributesListPage}\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('attributes:list:after')}\n `;\n };\n\n private readonly __renderAttributes = () => {\n const { lang, ns } = this;\n const hiddenSelector = this.hiddenSelector.zoom('attributes');\n\n return html`\n ${this.renderTemplateOrSlot('attributes:before')}\n\n <section class=\"pt-m\" data-testid=\"attributes\">\n <header class=\"space-x-m flex items-center mb-s\">\n <h2 class=\"text-l font-medium\">\n <foxy-i18n ns=${ns} lang=${lang} key=\"attribute_plural\"></foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('actions', true) ? '' : this.__renderAttributesActions()}\n </header>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderAttributesList()}\n </section>\n\n ${this.renderTemplateOrSlot('attributes:after')}\n `;\n };\n\n // #endregion\n\n // #region transactions\n\n private readonly __renderTransactions = () => {\n let transactionsLink = '';\n\n if (this.in({ idle: 'snapshot' })) {\n const transactionsURL = new URL(this.data._links['fx:transactions'].href);\n transactionsURL.searchParams.set('zoom', 'items');\n transactionsLink = transactionsURL.toString();\n }\n\n return html`\n ${this.renderTemplateOrSlot('transactions:before')}\n\n <x-group frame>\n <foxy-collection-pages\n data-testid=\"transactions\"\n spinner=\"foxy-spinner\"\n first=${transactionsLink}\n class=\"divide-y divide-contrast-10 block mx-m\"\n group=${this.group}\n page=\"foxy-transactions-table\"\n lang=${this.lang}\n ns=${this.ns}\n .templates=${this.getNestedTemplates('transactions:table')}\n >\n </foxy-collection-pages>\n </x-group>\n\n ${this.renderTemplateOrSlot('transactions:after')}\n `;\n };\n\n // #endregion\n\n // #region subscriptions\n\n private readonly __subscriptionsTableColumns: Column<Subscriptions>[] = [\n SubscriptionsTable.priceColumn,\n SubscriptionsTable.summaryColumn,\n SubscriptionsTable.statusColumn,\n {\n cell: ({ html, lang, data }) => html`\n <vaadin-button\n data-testclass=\"edit\"\n theme=\"small tertiary-inline\"\n @click=${(evt: Event) => {\n const link = new URL(data._links.self.href);\n const form = this.renderRoot.querySelector('#subscriptions-form') as FormDialog;\n const button = evt.target as ButtonElement;\n\n link.searchParams.set('zoom', 'transaction_template:items');\n form.href = link.toString();\n form.show(button);\n }}\n >\n <foxy-i18n class=\"text-m\" lang=${lang} key=\"update\" ns=${this.ns}></foxy-i18n>\n </vaadin-button>\n `,\n },\n ];\n\n private readonly __renderSubscriptionsPage: PageRenderer<Subscriptions> = ({ html, ...ctx }) => {\n return html`\n <foxy-table\n data-testclass=\"subscriptions:pages:table\"\n group=${ctx.group}\n href=${ctx.href}\n lang=${ctx.lang}\n ns=\"${ctx.ns} subscriptions-table\"\n .columns=${this.__subscriptionsTableColumns}\n .templates=${ctx.templates}\n >\n </foxy-table>\n `;\n };\n\n private readonly __renderSubscriptions = () => {\n const formId = 'subscriptions:form';\n let subscriptionsLink = '';\n\n if (this.in({ idle: 'snapshot' })) {\n const subscriptionsURL = new URL(this.data._links['fx:subscriptions'].href);\n subscriptionsURL.searchParams.set('zoom', 'transaction_template:items');\n subscriptionsLink = subscriptionsURL.toString();\n }\n\n return html`\n <div data-testid=\"subscriptions\">\n ${this.renderTemplateOrSlot('subscriptions:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testid=${formId}\n header=\"update\"\n group=${this.group}\n form=\"foxy-subscription-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"subscriptions-form\"\n .templates=${this.getNestedTemplates(formId)}\n .props=${{ '.settings': this.settings }}\n >\n </foxy-form-dialog>\n\n <x-group frame>\n <foxy-collection-pages\n data-testid=\"subscriptions:pages\"\n spinner=\"foxy-spinner\"\n first=${subscriptionsLink}\n class=\"divide-y divide-contrast-10 block mx-m\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderSubscriptionsPage}\n .templates=${this.getNestedTemplates('subscriptions:table')}\n >\n </foxy-collection-pages>\n </x-group>\n\n ${this.renderTemplateOrSlot('subscriptions:after')}\n </div>\n `;\n };\n\n // #endregion\n\n // #region tabs\n\n private readonly __renderTabs = (tabs: Tab[]) => {\n return html`\n <div class=\"pt-m\">\n <x-tabs size=${tabs.length} ?disabled=${!this.in({ idle: 'snapshot' })}>\n ${tabs.map(\n (tab, index) => html`\n <foxy-i18n\n data-testclass=\"i18n\"\n slot=\"tab-${index}\"\n lang=${this.lang}\n key=${tab.title}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <div slot=\"panel-${index}\">${tab.content}</div>\n `\n )}\n </x-tabs>\n </div>\n `;\n };\n\n // #endregion\n\n render(): TemplateResult {\n const { hiddenSelector, lang, ns } = this;\n const isLoaded = this.in({ idle: 'snapshot' });\n const isBusy = this.in('busy');\n const tabs: Tab[] = [];\n\n if (!hiddenSelector.matches('transactions', true)) {\n tabs.push({ title: 'transaction_plural', content: this.__renderTransactions() });\n }\n\n if (!hiddenSelector.matches('subscriptions', true)) {\n tabs.push({ title: 'subscription_plural', content: this.__renderSubscriptions() });\n }\n\n return html`\n <div class=\"relative\" data-testid=\"wrapper\" aria-busy=${isBusy} aria-live=\"polite\">\n <div\n class=${classMap({\n 'font-lumo text-body text-m leading-m space-y-s': true,\n 'opacity-50': !isLoaded,\n })}\n >\n ${hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${hiddenSelector.matches('default', true) ? '' : this.renderTemplateOrSlot()}\n ${hiddenSelector.matches('addresses', true) ? '' : this.__renderAddresses()}\n ${hiddenSelector.matches('payment-methods', true) ? '' : this.__renderPaymentMethods()}\n ${hiddenSelector.matches('attributes', true) ? '' : this.__renderAttributes()}\n ${tabs.length === 0 ? '' : this.__renderTabs(tabs)}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': isLoaded,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : isBusy ? 'busy' : 'empty'}\n lang=${lang}\n ns=\"${ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Customer.js","sourceRoot":"","sources":["../../../../src/elements/public/Customer/Customer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Attributes, CustomerAddresses, Data, Settings, Tab, Templates } from './types';\nimport { CSSResultArray, TemplateResult, html, PropertyDeclarations } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { Data as Attribute } from '../AttributeCard/types';\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { Column } from '../Table/types';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { Data as CustomerAddress } from '../AddressCard/types';\nimport { FormDialog } from '../FormDialog/FormDialog';\nimport { Group } from '../../private/index';\nimport { ItemRenderer } from '../CollectionPage/types';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { PageRenderer } from '../CollectionPages/types';\nimport { Skeleton } from '../../private/Skeleton/Skeleton';\nimport { Data as Subscriptions } from '../SubscriptionsTable/types';\nimport { SubscriptionsTable } from '../SubscriptionsTable/SubscriptionsTable';\nimport { Tabs } from '../../private/Tabs/Tabs';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { styles } from './styles';\n\nconst NS = 'customer';\nconst Base = ScopedElementsMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * All-in-one element for customer management.\n *\n * @slot header:before - **new in v1.4.0**\n * @slot header:after - **new in v1.4.0**\n * @slot header:actions:before - **new in v1.4.0**\n * @slot header:actions:after - **new in v1.4.0**\n * @slot header:actions:edit:before - **new in v1.4.0**\n * @slot header:actions:edit:after - **new in v1.4.0**\n *\n * @slot addresses:before - **new in v1.4.0**\n * @slot addresses:after - **new in v1.4.0**\n * @slot addresses:actions:before - **new in v1.4.0**\n * @slot addresses:actions:after - **new in v1.4.0**\n * @slot addresses:actions:create:before - **new in v1.4.0**\n * @slot addresses:actions:create:after - **new in v1.4.0**\n * @slot addresses:list:before - **new in v1.4.0**\n * @slot addresses:list:after - **new in v1.4.0**\n *\n * @slot payment-methods:before - **new in v1.4.0**\n * @slot payment-methods:after - **new in v1.4.0**\n * @slot payment-methods:list:before - **new in v1.4.0**\n * @slot payment-methods:list:after - **new in v1.4.0**\n *\n * @slot attributes:before - **new in v1.4.0**\n * @slot attributes:after - **new in v1.4.0**\n * @slot attributes:actions:before - **new in v1.4.0**\n * @slot attributes:actions:after - **new in v1.4.0**\n * @slot attributes:actions:create:before - **new in v1.4.0**\n * @slot attributes:actions:create:after - **new in v1.4.0**\n * @slot attributes:list:before - **new in v1.4.0**\n * @slot attributes:list:after - **new in v1.4.0**\n *\n * @slot transactions:before - **new in v1.4.0**\n * @slot transactions:after - **new in v1.4.0**\n *\n * @slot subscriptions:before - **new in v1.4.0**\n * @slot subscriptions:after - **new in v1.4.0**\n *\n * @element foxy-customer\n * @since 1.2.0\n */\nexport class Customer extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-payment-method-card': customElements.get('foxy-payment-method-card'),\n 'foxy-transactions-table': customElements.get('foxy-transactions-table'),\n 'foxy-collection-pages': customElements.get('foxy-collection-pages'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-attribute-card': customElements.get('foxy-attribute-card'),\n 'foxy-address-card': customElements.get('foxy-address-card'),\n 'foxy-form-dialog': customElements.get('foxy-form-dialog'),\n 'vaadin-button': customElements.get('vaadin-button'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-table': customElements.get('foxy-table'),\n 'x-skeleton': Skeleton,\n 'iron-icon': customElements.get('iron-icon'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-group': Group,\n 'x-tabs': Tabs,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n settings: { type: Object },\n embedUrl: { attribute: 'embed-url' },\n };\n }\n\n static get styles(): CSSResultArray {\n return [super.styles, styles];\n }\n\n templates: Templates = {};\n\n /**\n * Configuration URL for the Payment Card Embed. If provided, this element will allow\n * the customer to update their default payment method using the Payment Card Embed.\n */\n embedUrl: string | null = null;\n\n /** Customer Portal settings for use in Customer mode. */\n settings: Settings | null = null;\n\n // #region header\n\n private readonly __renderHeaderActionsEdit = () => {\n const { readonlySelector, disabledSelector, hiddenSelector } = this;\n\n const actionId = 'header:actions:edit';\n const formId = 'header:actions:edit:form';\n const dialogId = 'customer-dialog';\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isEditActionDisabled = !isLoaded || disabledSelector.matches(actionId, true);\n\n return html`\n ${this.renderTemplateOrSlot('header:actions:edit:before')}\n\n <foxy-form-dialog\n data-testid=\"header:actions:edit:form\"\n header=\"update\"\n parent=${this.parent}\n group=${this.group}\n href=${this.href}\n form=\"foxy-customer-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=${dialogId}\n readonlycontrols=${readonlySelector.zoom(formId).toString()}\n disabledcontrols=${disabledSelector.zoom(formId).toString()}\n hiddencontrols=${hiddenSelector.zoom(formId).toString()}\n .templates=${this.getNestedTemplates('header:actions:edit:form')}\n .props=${{ '.settings': this.settings }}\n >\n </foxy-form-dialog>\n\n <vaadin-button\n data-testid=\"header:actions:edit\"\n aria-label=${this.t('update').toString()}\n class=\"px-xs rounded-full\"\n theme=\"icon\"\n ?disabled=${isEditActionDisabled}\n @click=${(evt: Event) => {\n const dialog = this.renderRoot.querySelector(`#${dialogId}`) as FormDialog;\n dialog.show(evt.currentTarget as HTMLElement);\n }}\n >\n <iron-icon icon=\"editor:mode-edit\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('header:actions:edit:after')}\n `;\n };\n\n private readonly __renderHeaderActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('header:actions');\n\n return html`\n <div class=\"flex\" data-testid=\"header:actions\">\n ${this.renderTemplateOrSlot('header:actions:before')}\n ${hiddenSelector.matches('edit', true) ? '' : this.__renderHeaderActionsEdit()}\n ${this.renderTemplateOrSlot('header:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderHeader = () => {\n const variant = ifDefined(this.in('busy') ? undefined : 'static');\n\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <header\n class=\"flex items-center justify-between space-x-m pb-s border-b border-contrast-10\"\n data-testid=\"header\"\n >\n <h1 class=\"text-xxl font-medium truncate min-w-0 flex-1\">\n ${this.in({ idle: 'snapshot' })\n ? html`${this.data.first_name} ${this.data.last_name}`\n : html`<x-skeleton class=\"w-full\" variant=${variant}> </x-skeleton>`}\n </h1>\n\n ${this.hiddenSelector.matches('header:actions', true) ? '' : this.__renderHeaderActions()}\n </header>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n };\n\n // #endregion\n\n // #region addresses\n\n private readonly __renderAddressesActionsCreate = () => {\n const { data, lang, ns } = this;\n\n const disabledSelector = this.disabledSelector.zoom('addresses:actions');\n const readonlySelector = this.readonlySelector.zoom('addresses:actions');\n const hiddenSelector = this.hiddenSelector.zoom('addresses:actions');\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isDisabled = !isLoaded || disabledSelector.matches('create', true);\n\n return html`\n ${this.renderTemplateOrSlot('addresses:actions:create:before')}\n\n <vaadin-button\n data-testid=\"addresses:actions:create\"\n aria-label=${this.t('create').toString()}\n class=\"px-xs rounded-full\"\n theme=\"small icon\"\n ?disabled=${isDisabled}\n @click=${(evt: Event) => {\n if (data === null) return;\n const button = evt.target as HTMLButtonElement;\n const dialog = button.firstElementChild as FormDialog;\n dialog.show(button);\n }}\n >\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('create:form').toString()}\n disabledcontrols=${disabledSelector.zoom('create:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('create:form').toString()}\n data-testid=\"addresses:actions:create:form\"\n parent=${data?._links['fx:customer_addresses'].href ?? ''}\n header=\"create\"\n group=${this.group}\n form=\"foxy-address-form\"\n lang=${lang}\n ns=${ns}\n id=\"address-dialog\"\n .templates=${this.getNestedTemplates('addresses:actions:create:form')}\n >\n </foxy-form-dialog>\n\n <iron-icon slot=\"suffix\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('addresses:actions:create:after')}\n `;\n };\n\n private readonly __renderAddressesActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('addresses:actions');\n\n return html`\n <div data-testid=\"addresses:actions\">\n ${this.renderTemplateOrSlot('addresses:actions:before')}\n ${hiddenSelector.matches('create', true) ? '' : this.__renderAddressesActionsCreate()}\n ${this.renderTemplateOrSlot('addresses:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderAddressesListCard: ItemRenderer<CustomerAddress> = ctx => {\n const handleClick = (evt: Event) => {\n if (ctx.data === null) return;\n\n const button = evt.target as HTMLButtonElement;\n const root = button.getRootNode() as Element | DocumentFragment;\n const form = root.querySelector('#addresses-list-form') as FormDialog;\n\n form.href = ctx.data._links.self.href;\n form.show(button);\n };\n\n const computedClass = classMap({\n 'snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0': true,\n 'border border-contrast-10': true,\n 'hover-border-contrast-30 focus-outline-none focus-border-primary': ctx.data !== null,\n });\n\n const isReadonly = this.readonlySelector.matches('addresses:list:card', true);\n const isDisabled = this.disabledSelector.matches('addresses:list:card', true);\n\n return html`\n <button\n data-testclass=\"addresses:list:card\"\n class=${computedClass}\n ?disabled=${!ctx.data || isReadonly || isDisabled}\n @click=${handleClick}\n >\n <foxy-address-card\n hiddencontrols=${ctx.hiddenControls.toString()}\n parent=${ctx.parent}\n class=\"w-tile\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-address-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-address-card>\n </button>\n `;\n };\n\n private readonly __renderAddressesListPage: PageRenderer<CustomerAddresses> = ctx => {\n return ctx.html`\n <foxy-collection-page\n hiddencontrols=${ctx.hiddenControls.toString()}\n class=\"space-x-m flex\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=${ctx.ns}\n .item=${this.__renderAddressesListCard}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderAddressesList = () => {\n const formId = 'addresses:list:form';\n const cardId = 'addresses:list:card';\n\n return html`\n ${this.renderTemplateOrSlot('addresses:list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testid=\"addresses:list:form\"\n parent=${this.data?._links['fx:customer_addresses'].href ?? ''}\n header=\"update\"\n group=${this.group}\n form=\"foxy-address-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"addresses-list-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n hiddencontrols=${this.hiddenSelector.zoom(cardId).toString()}\n data-testid=\"addresses:list\"\n first=${this.data?._links['fx:customer_addresses'].href ?? ''}\n class=\"snap-x-mandatory flex items-center space-x-m overflow-auto\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderAddressesListPage}\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('addresses:list:after')}\n `;\n };\n\n private readonly __renderAddresses = () => {\n const { lang, ns } = this;\n const hiddenSelector = this.hiddenSelector.zoom('addresses');\n\n return html`\n ${this.renderTemplateOrSlot('addresses:before')}\n\n <section class=\"pt-m\" data-testid=\"addresses\">\n <header class=\"space-x-m flex items-center mb-s\">\n <h2 class=\"text-l font-medium\">\n <foxy-i18n ns=${ns} lang=${lang} key=\"address_plural\"></foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('actions', true) ? '' : this.__renderAddressesActions()}\n </header>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderAddressesList()}\n </section>\n\n ${this.renderTemplateOrSlot('addresses:after')}\n `;\n };\n\n // #endregion\n\n // #region payment-methods\n\n private readonly __renderPaymentMethodsList = () => {\n const cardId = 'payment-methods:list:card';\n\n return html`\n <div data-testid=\"payment-methods:list\">\n ${this.renderTemplateOrSlot('payment-methods:list:before')}\n\n <foxy-payment-method-card\n readonlycontrols=${this.readonlySelector.zoom(cardId)}\n disabledcontrols=${this.disabledSelector.zoom(cardId)}\n hiddencontrols=${this.hiddenSelector.zoom(cardId)}\n data-testid=${cardId}\n embed-url=${ifDefined(this.embedUrl ?? void 0)}\n group=${this.group}\n class=\"w-payment-method-card border-radius-overflow-fix rounded-t-l rounded-b-l overflow-hidden\"\n href=${ifDefined(this.data?._links['fx:default_payment_method'].href)}\n lang=${this.lang}\n ns=\"${this.ns} payment-method-card\"\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-payment-method-card>\n\n ${this.renderTemplateOrSlot('payment-methods:list:after')}\n </div>\n `;\n };\n\n private readonly __renderPaymentMethods = () => {\n const hiddenSelector = this.hiddenSelector.zoom('payment-methods');\n\n return html`\n ${this.renderTemplateOrSlot('payment-methods:before')}\n\n <div class=\"pt-m\" data-testid=\"payment-methods\">\n <h2 class=\"text-l font-medium mb-s\">\n <foxy-i18n\n data-testclass=\"i18n\"\n lang=${this.lang}\n key=\"payment_method_plural\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderPaymentMethodsList()}\n </div>\n\n ${this.renderTemplateOrSlot('payment-methods:after')}\n `;\n };\n\n // #endregion\n\n // #region attributes\n\n private readonly __renderAttributesActionsCreate = () => {\n const { data, lang, ns } = this;\n\n const disabledSelector = this.disabledSelector.zoom('attributes:actions');\n const readonlySelector = this.readonlySelector.zoom('attributes:actions');\n const hiddenSelector = this.hiddenSelector.zoom('attributes:actions');\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isDisabled = !isLoaded || disabledSelector.matches('create', true);\n\n return html`\n ${this.renderTemplateOrSlot('attributes:actions:create:before')}\n\n <vaadin-button\n data-testid=\"attributes:actions:create\"\n aria-label=${this.t('create').toString()}\n class=\"px-xs rounded-full\"\n theme=\"small icon\"\n ?disabled=${isDisabled}\n @click=${(evt: Event) => {\n if (data === null) return;\n const button = evt.target as HTMLButtonElement;\n const dialog = button.firstElementChild as FormDialog;\n dialog.show(button);\n }}\n >\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('create:form').toString()}\n disabledcontrols=${disabledSelector.zoom('create:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('create:form').toString()}\n data-testid=\"attributes:actions:create:form\"\n parent=${data?._links['fx:attributes'].href ?? ''}\n header=\"create\"\n group=${this.group}\n form=\"foxy-attribute-form\"\n lang=${lang}\n ns=${ns}\n .templates=${this.getNestedTemplates('attributes:actions:create:form')}\n >\n </foxy-form-dialog>\n\n <iron-icon slot=\"suffix\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('attributes:actions:create:after')}\n `;\n };\n\n private readonly __renderAttributesActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('attributes:actions');\n\n return html`\n <div data-testid=\"attributes:actions\">\n ${this.renderTemplateOrSlot('attributes:actions:before')}\n ${hiddenSelector.matches('create', true) ? '' : this.__renderAttributesActionsCreate()}\n ${this.renderTemplateOrSlot('attributes:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderAttributesListCard: ItemRenderer<Attribute> = ctx => {\n const handleClick = (evt: Event) => {\n if (ctx.data === null) return;\n\n const button = evt.target as HTMLButtonElement;\n const root = button.getRootNode() as Element | DocumentFragment;\n const form = root.querySelector('#attributes-list-form') as FormDialog;\n\n form.href = ctx.data._links.self.href;\n form.show(button);\n };\n\n const computedClass = classMap({\n 'snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0 border border-contrast-10':\n true,\n 'hover-border-contrast-30 focus-outline-none focus-border-primary': ctx.data !== null,\n });\n\n return ctx.html`\n <button \n data-testclass=\"attributes:list:card\"\n class=${computedClass}\n ?disabled=${ctx.data === null}\n @click=${handleClick}\n >\n <foxy-attribute-card\n hiddencontrols=${ctx.hiddenControls.toString()}\n parent=${ctx.parent}\n group=${ctx.group}\n class=\"w-tile\"\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-attribute-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-attribute-card>\n </button>\n `;\n };\n\n private readonly __renderAttributesListPage: PageRenderer<Attributes> = ctx => {\n return html`\n <foxy-collection-page\n hiddencontrols=${ctx.hiddenControls.toString()}\n class=\"space-x-m flex\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=${ctx.ns}\n .item=${this.__renderAttributesListCard}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderAttributesList = () => {\n const formId = 'attributes:list:form';\n const cardId = 'attributes:list:card';\n\n return html`\n ${this.renderTemplateOrSlot('attributes:list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testclass=\"i18n\"\n data-testid=\"attributes:list:form\"\n parent=${this.data?._links['fx:attributes'].href ?? ''}\n header=\"update\"\n group=${this.group}\n form=\"foxy-attribute-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"attributes-list-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n hiddencontrols=${this.hiddenControls.zoom(cardId).toString()}\n data-testid=\"attributes:list\"\n first=${this.data?._links['fx:attributes'].href ?? ''}\n class=\"snap-x-mandatory flex items-center space-x-m overflow-auto\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderAttributesListPage}\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('attributes:list:after')}\n `;\n };\n\n private readonly __renderAttributes = () => {\n const { lang, ns } = this;\n const hiddenSelector = this.hiddenSelector.zoom('attributes');\n\n return html`\n ${this.renderTemplateOrSlot('attributes:before')}\n\n <section class=\"pt-m\" data-testid=\"attributes\">\n <header class=\"space-x-m flex items-center mb-s\">\n <h2 class=\"text-l font-medium\">\n <foxy-i18n ns=${ns} lang=${lang} key=\"attribute_plural\"></foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('actions', true) ? '' : this.__renderAttributesActions()}\n </header>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderAttributesList()}\n </section>\n\n ${this.renderTemplateOrSlot('attributes:after')}\n `;\n };\n\n // #endregion\n\n // #region transactions\n\n private readonly __renderTransactions = () => {\n let transactionsLink = '';\n\n if (this.in({ idle: 'snapshot' })) {\n const transactionsURL = new URL(this.data._links['fx:transactions'].href);\n transactionsURL.searchParams.set('zoom', 'items');\n transactionsLink = transactionsURL.toString();\n }\n\n return html`\n ${this.renderTemplateOrSlot('transactions:before')}\n\n <x-group frame>\n <foxy-collection-pages\n data-testid=\"transactions\"\n spinner=\"foxy-spinner\"\n first=${transactionsLink}\n class=\"divide-y divide-contrast-10 block mx-m\"\n group=${this.group}\n page=\"foxy-transactions-table\"\n lang=${this.lang}\n ns=${this.ns}\n .templates=${this.getNestedTemplates('transactions:table')}\n >\n </foxy-collection-pages>\n </x-group>\n\n ${this.renderTemplateOrSlot('transactions:after')}\n `;\n };\n\n // #endregion\n\n // #region subscriptions\n\n private readonly __subscriptionsTableColumns: Column<Subscriptions>[] = [\n SubscriptionsTable.priceColumn,\n SubscriptionsTable.summaryColumn,\n SubscriptionsTable.statusColumn,\n {\n cell: ({ html, lang, data }) => html`\n <vaadin-button\n data-testclass=\"edit\"\n theme=\"small tertiary-inline\"\n @click=${(evt: Event) => {\n const link = new URL(data._links.self.href);\n const form = this.renderRoot.querySelector('#subscriptions-form') as FormDialog;\n const button = evt.target as ButtonElement;\n\n link.searchParams.set('zoom', 'transaction_template:items');\n form.href = link.toString();\n form.show(button);\n }}\n >\n <foxy-i18n class=\"text-m\" lang=${lang} key=\"update\" ns=${this.ns}></foxy-i18n>\n </vaadin-button>\n `,\n },\n ];\n\n private readonly __renderSubscriptionsPage: PageRenderer<Subscriptions> = ({ html, ...ctx }) => {\n return html`\n <foxy-table\n data-testclass=\"subscriptions:pages:table\"\n group=${ctx.group}\n href=${ctx.href}\n lang=${ctx.lang}\n ns=\"${ctx.ns} subscriptions-table\"\n .columns=${this.__subscriptionsTableColumns}\n .templates=${ctx.templates}\n >\n </foxy-table>\n `;\n };\n\n private readonly __renderSubscriptions = () => {\n const formId = 'subscriptions:form';\n let subscriptionsLink = '';\n\n if (this.in({ idle: 'snapshot' })) {\n const subscriptionsURL = new URL(this.data._links['fx:subscriptions'].href);\n subscriptionsURL.searchParams.set('zoom', 'transaction_template:items');\n subscriptionsLink = subscriptionsURL.toString();\n }\n\n return html`\n <div data-testid=\"subscriptions\">\n ${this.renderTemplateOrSlot('subscriptions:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testid=${formId}\n header=\"update\"\n group=${this.group}\n form=\"foxy-subscription-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"subscriptions-form\"\n .templates=${this.getNestedTemplates(formId)}\n .props=${{ '.settings': this.settings }}\n >\n </foxy-form-dialog>\n\n <x-group frame>\n <foxy-collection-pages\n data-testid=\"subscriptions:pages\"\n spinner=\"foxy-spinner\"\n first=${subscriptionsLink}\n class=\"divide-y divide-contrast-10 block mx-m\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderSubscriptionsPage}\n .templates=${this.getNestedTemplates('subscriptions:table')}\n >\n </foxy-collection-pages>\n </x-group>\n\n ${this.renderTemplateOrSlot('subscriptions:after')}\n </div>\n `;\n };\n\n // #endregion\n\n // #region tabs\n\n private readonly __renderTabs = (tabs: Tab[]) => {\n return html`\n <div class=\"pt-m\">\n <x-tabs size=${tabs.length} ?disabled=${!this.in({ idle: 'snapshot' })}>\n ${tabs.map(\n (tab, index) => html`\n <foxy-i18n\n data-testclass=\"i18n\"\n slot=\"tab-${index}\"\n lang=${this.lang}\n key=${tab.title}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <div slot=\"panel-${index}\">${tab.content}</div>\n `\n )}\n </x-tabs>\n </div>\n `;\n };\n\n // #endregion\n\n render(): TemplateResult {\n const { hiddenSelector, lang, ns } = this;\n const isLoaded = this.in({ idle: 'snapshot' });\n const isBusy = this.in('busy');\n const tabs: Tab[] = [];\n\n if (!hiddenSelector.matches('transactions', true)) {\n tabs.push({ title: 'transaction_plural', content: this.__renderTransactions() });\n }\n\n if (!hiddenSelector.matches('subscriptions', true)) {\n tabs.push({ title: 'subscription_plural', content: this.__renderSubscriptions() });\n }\n\n return html`\n <div class=\"relative\" data-testid=\"wrapper\" aria-busy=${isBusy} aria-live=\"polite\">\n <div\n class=${classMap({\n 'font-lumo text-body text-m leading-m space-y-s': true,\n 'opacity-50': !isLoaded,\n })}\n >\n ${hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${hiddenSelector.matches('default', true) ? '' : this.renderTemplateOrSlot()}\n ${hiddenSelector.matches('addresses', true) ? '' : this.__renderAddresses()}\n ${hiddenSelector.matches('payment-methods', true) ? '' : this.__renderPaymentMethods()}\n ${hiddenSelector.matches('attributes', true) ? '' : this.__renderAttributes()}\n ${tabs.length === 0 ? '' : this.__renderTabs(tabs)}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': isLoaded,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : isBusy ? 'busy' : 'empty'}\n lang=${lang}\n ns=\"${ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -4,6 +4,7 @@ import '@polymer/iron-icons/editor-icons';
|
|
|
4
4
|
import '@vaadin/vaadin-button';
|
|
5
5
|
import '../../internal/InternalSandbox/index';
|
|
6
6
|
import '../PaymentMethodCard/index';
|
|
7
|
+
import '../UpdatePaymentMethodForm/index';
|
|
7
8
|
import '../SubscriptionForm/index';
|
|
8
9
|
import '../FormDialog/index';
|
|
9
10
|
import '../TransactionsTable/index';
|
|
@@ -4,6 +4,7 @@ import '@polymer/iron-icons/editor-icons';
|
|
|
4
4
|
import '@vaadin/vaadin-button';
|
|
5
5
|
import "../../internal/InternalSandbox/index.js";
|
|
6
6
|
import "../PaymentMethodCard/index.js";
|
|
7
|
+
import "../UpdatePaymentMethodForm/index.js";
|
|
7
8
|
import "../SubscriptionForm/index.js";
|
|
8
9
|
import "../FormDialog/index.js";
|
|
9
10
|
import "../TransactionsTable/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/Customer/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,uBAAuB,CAAC;AAC/B,iDAA8C;AAC9C,uCAAoC;AACpC,sCAAmC;AACnC,gCAA6B;AAC7B,uCAAoC;AACpC,qCAAkC;AAClC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAChC,kCAA+B;AAC/B,iCAA8B;AAC9B,iCAA8B;AAC9B,6BAA0B;AAC1B,2BAAwB;AACxB,0BAAuB;AAEvB,OAAO,EAAE,QAAQ,EAAE,sBAAmB;AAEtC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["import '@polymer/iron-icon';\nimport '@polymer/iron-icons';\nimport '@polymer/iron-icons/editor-icons';\nimport '@vaadin/vaadin-button';\nimport '../../internal/InternalSandbox/index';\nimport '../PaymentMethodCard/index';\nimport '../SubscriptionForm/index';\nimport '../FormDialog/index';\nimport '../TransactionsTable/index';\nimport '../CollectionPages/index';\nimport '../CollectionPage/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\nimport '../CustomerForm/index';\nimport '../AddressCard/index';\nimport '../AddressForm/index';\nimport '../Spinner/index';\nimport '../Table/index';\nimport '../I18n/index';\n\nimport { Customer } from './Customer';\n\ncustomElements.define('foxy-customer', Customer);\n\nexport { Customer };\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/Customer/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,uBAAuB,CAAC;AAC/B,iDAA8C;AAC9C,uCAAoC;AACpC,6CAA0C;AAC1C,sCAAmC;AACnC,gCAA6B;AAC7B,uCAAoC;AACpC,qCAAkC;AAClC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAChC,kCAA+B;AAC/B,iCAA8B;AAC9B,iCAA8B;AAC9B,6BAA0B;AAC1B,2BAAwB;AACxB,0BAAuB;AAEvB,OAAO,EAAE,QAAQ,EAAE,sBAAmB;AAEtC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["import '@polymer/iron-icon';\nimport '@polymer/iron-icons';\nimport '@polymer/iron-icons/editor-icons';\nimport '@vaadin/vaadin-button';\nimport '../../internal/InternalSandbox/index';\nimport '../PaymentMethodCard/index';\nimport '../UpdatePaymentMethodForm/index';\nimport '../SubscriptionForm/index';\nimport '../FormDialog/index';\nimport '../TransactionsTable/index';\nimport '../CollectionPages/index';\nimport '../CollectionPage/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\nimport '../CustomerForm/index';\nimport '../AddressCard/index';\nimport '../AddressForm/index';\nimport '../Spinner/index';\nimport '../Table/index';\nimport '../I18n/index';\n\nimport { Customer } from './Customer';\n\ncustomElements.define('foxy-customer', Customer);\n\nexport { Customer };\n"]}
|
|
@@ -10,6 +10,20 @@ export declare class CustomerPortal extends CustomerPortal_base {
|
|
|
10
10
|
static get properties(): PropertyDeclarations;
|
|
11
11
|
/** Same as `.columns` property on `foxy-transactions-table`. Sets columns of that table. */
|
|
12
12
|
transactionsTableColumns: TransactionsTable['columns'];
|
|
13
|
+
/**
|
|
14
|
+
* URL of the Payment Card Embed for updating payment method.
|
|
15
|
+
* When set, the payment method will be editable. Otherwise, the customers
|
|
16
|
+
* will only be able to view and delete it.
|
|
17
|
+
*
|
|
18
|
+
* ```html
|
|
19
|
+
* <foxy-customer-portal
|
|
20
|
+
* embed-url="https://embed.foxy.io/v1.html?template_set=123"
|
|
21
|
+
* base="https://demo.foxycart.com/s/customer/"
|
|
22
|
+
* >
|
|
23
|
+
* </foxy-customer-portal>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
embedUrl: string | null;
|
|
13
27
|
/** Rumour group. Elements in different groups will not share updates. Empty by default. */
|
|
14
28
|
group: string;
|
|
15
29
|
render(): TemplateResult;
|
|
@@ -17,6 +17,20 @@ export class CustomerPortal extends TranslatableMixin(ThemeableMixin(CustomerApi
|
|
|
17
17
|
TransactionsTable.dateColumn,
|
|
18
18
|
TransactionsTable.receiptColumn,
|
|
19
19
|
];
|
|
20
|
+
/**
|
|
21
|
+
* URL of the Payment Card Embed for updating payment method.
|
|
22
|
+
* When set, the payment method will be editable. Otherwise, the customers
|
|
23
|
+
* will only be able to view and delete it.
|
|
24
|
+
*
|
|
25
|
+
* ```html
|
|
26
|
+
* <foxy-customer-portal
|
|
27
|
+
* embed-url="https://embed.foxy.io/v1.html?template_set=123"
|
|
28
|
+
* base="https://demo.foxycart.com/s/customer/"
|
|
29
|
+
* >
|
|
30
|
+
* </foxy-customer-portal>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
this.embedUrl = null;
|
|
20
34
|
/** Rumour group. Elements in different groups will not share updates. Empty by default. */
|
|
21
35
|
this.group = '';
|
|
22
36
|
}
|
|
@@ -24,24 +38,27 @@ export class CustomerPortal extends TranslatableMixin(ThemeableMixin(CustomerApi
|
|
|
24
38
|
return {
|
|
25
39
|
...super.properties,
|
|
26
40
|
transactionsTableColumns: { attribute: false },
|
|
41
|
+
embedUrl: { attribute: 'embed-url' },
|
|
27
42
|
group: { type: String },
|
|
28
43
|
};
|
|
29
44
|
}
|
|
30
45
|
render() {
|
|
31
|
-
|
|
46
|
+
var _a;
|
|
47
|
+
let settingsHref;
|
|
32
48
|
try {
|
|
33
|
-
|
|
49
|
+
settingsHref = new URL('./customer_portal_settings', this.base);
|
|
34
50
|
}
|
|
35
|
-
catch (
|
|
36
|
-
|
|
51
|
+
catch (_b) {
|
|
52
|
+
settingsHref = undefined;
|
|
37
53
|
}
|
|
38
54
|
return this.api.storage.getItem(API.SESSION)
|
|
39
55
|
? html `
|
|
40
56
|
<foxy-internal-customer-portal-logged-in-view
|
|
57
|
+
embed-url=${ifDefined((_a = this.embedUrl) !== null && _a !== void 0 ? _a : void 0)}
|
|
41
58
|
customer=${this.base}
|
|
42
59
|
class="h-full"
|
|
43
60
|
infer=""
|
|
44
|
-
href=${ifDefined(
|
|
61
|
+
href=${ifDefined(settingsHref === null || settingsHref === void 0 ? void 0 : settingsHref.toString())}
|
|
45
62
|
.transactionsTableColumns=${this.transactionsTableColumns}
|
|
46
63
|
>
|
|
47
64
|
</foxy-internal-customer-portal-logged-in-view>
|
|
@@ -50,7 +67,7 @@ export class CustomerPortal extends TranslatableMixin(ThemeableMixin(CustomerApi
|
|
|
50
67
|
<foxy-internal-customer-portal-logged-out-view
|
|
51
68
|
class="h-full"
|
|
52
69
|
infer=""
|
|
53
|
-
href=${ifDefined(
|
|
70
|
+
href=${ifDefined(settingsHref === null || settingsHref === void 0 ? void 0 : settingsHref.toString())}
|
|
54
71
|
>
|
|
55
72
|
</foxy-internal-customer-portal-logged-out-view>
|
|
56
73
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomerPortal.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/CustomerPortal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,sCAAmC;AACzD,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,iBAAiB,EAAE,kDAA+C;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,MAAM,OAAO,cAAe,SAAQ,iBAAiB,CACnD,cAAc,CAAC,WAAW,CAAC,EAC3B,iBAAiB,CAClB;IAHD;;
|
|
1
|
+
{"version":3,"file":"CustomerPortal.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/CustomerPortal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,sCAAmC;AACzD,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,iBAAiB,EAAE,kDAA+C;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,MAAM,OAAO,cAAe,SAAQ,iBAAiB,CACnD,cAAc,CAAC,WAAW,CAAC,EAC3B,iBAAiB,CAClB;IAHD;;QAaE,4FAA4F;QAC5F,6BAAwB,GAAiC;YACvD,iBAAiB,CAAC,WAAW;YAC7B,iBAAiB,CAAC,aAAa;YAC/B,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,QAAQ;YAC1B,iBAAiB,CAAC,UAAU;YAC5B,iBAAiB,CAAC,aAAa;SAChC,CAAC;QAEF;;;;;;;;;;;;WAYG;QACH,aAAQ,GAAkB,IAAI,CAAC;QAE/B,2FAA2F;QAC3F,UAAK,GAAG,EAAE,CAAC;IAgCb,CAAC;IAnEC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,wBAAwB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAC9C,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;YACpC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IA8BD,MAAM;;QACJ,IAAI,YAA6B,CAAC;QAElC,IAAI;YACF,YAAY,GAAG,IAAI,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACjE;QAAC,WAAM;YACN,YAAY,GAAG,SAAS,CAAC;SAC1B;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAA;;wBAEY,SAAS,OAAC,IAAI,CAAC,QAAQ,mCAAI,KAAK,CAAC,CAAC;uBACnC,IAAI,CAAC,IAAI;;;mBAGb,SAAS,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,GAAG;wCACd,IAAI,CAAC,wBAAwB;;;SAG5D;YACH,CAAC,CAAC,IAAI,CAAA;;;;mBAIO,SAAS,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,GAAG;;;SAG7C,CAAC;IACR,CAAC;CACF","sourcesContent":["import { PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { API } from '@foxy.io/sdk/customer';\nimport { CustomerApi } from '../CustomerApi/CustomerApi';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TransactionsTable } from '../TransactionsTable/TransactionsTable';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nexport class CustomerPortal extends TranslatableMixin(\n ThemeableMixin(CustomerApi),\n 'customer-portal'\n) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n transactionsTableColumns: { attribute: false },\n embedUrl: { attribute: 'embed-url' },\n group: { type: String },\n };\n }\n\n /** Same as `.columns` property on `foxy-transactions-table`. Sets columns of that table. */\n transactionsTableColumns: TransactionsTable['columns'] = [\n TransactionsTable.priceColumn,\n TransactionsTable.summaryColumn,\n TransactionsTable.statusColumn,\n TransactionsTable.idColumn,\n TransactionsTable.dateColumn,\n TransactionsTable.receiptColumn,\n ];\n\n /**\n * URL of the Payment Card Embed for updating payment method.\n * When set, the payment method will be editable. Otherwise, the customers\n * will only be able to view and delete it.\n *\n * ```html\n * <foxy-customer-portal\n * embed-url=\"https://embed.foxy.io/v1.html?template_set=123\"\n * base=\"https://demo.foxycart.com/s/customer/\"\n * >\n * </foxy-customer-portal>\n * ```\n */\n embedUrl: string | null = null;\n\n /** Rumour group. Elements in different groups will not share updates. Empty by default. */\n group = '';\n\n render(): TemplateResult {\n let settingsHref: URL | undefined;\n\n try {\n settingsHref = new URL('./customer_portal_settings', this.base);\n } catch {\n settingsHref = undefined;\n }\n\n return this.api.storage.getItem(API.SESSION)\n ? html`\n <foxy-internal-customer-portal-logged-in-view\n embed-url=${ifDefined(this.embedUrl ?? void 0)}\n customer=${this.base}\n class=\"h-full\"\n infer=\"\"\n href=${ifDefined(settingsHref?.toString())}\n .transactionsTableColumns=${this.transactionsTableColumns}\n >\n </foxy-internal-customer-portal-logged-in-view>\n `\n : html`\n <foxy-internal-customer-portal-logged-out-view\n class=\"h-full\"\n infer=\"\"\n href=${ifDefined(settingsHref?.toString())}\n >\n </foxy-internal-customer-portal-logged-out-view>\n `;\n }\n}\n"]}
|
|
@@ -13,6 +13,7 @@ export declare class InternalCustomerPortalLoggedInView extends Base<Data> {
|
|
|
13
13
|
static get properties(): PropertyDeclarations;
|
|
14
14
|
templates: Templates;
|
|
15
15
|
customer: string;
|
|
16
|
+
embedUrl: string | null;
|
|
16
17
|
loggingOutState: 'idle' | 'busy' | 'fail';
|
|
17
18
|
transactionsTableColumns: TransactionsTable['columns'];
|
|
18
19
|
loggingOutStateResetTimeout: NodeJS.Timeout | null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BooleanSelector } from '@foxy.io/sdk/core';
|
|
2
2
|
import { TranslatableMixin } from "../../../mixins/translatable.js";
|
|
3
3
|
import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
|
|
4
|
+
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
4
5
|
import { html } from 'lit-html';
|
|
5
6
|
import { API } from "../NucleonElement/API.js";
|
|
6
7
|
const Base = TranslatableMixin(InternalForm);
|
|
@@ -9,6 +10,7 @@ export class InternalCustomerPortalLoggedInView extends Base {
|
|
|
9
10
|
super(...arguments);
|
|
10
11
|
this.templates = {};
|
|
11
12
|
this.customer = '';
|
|
13
|
+
this.embedUrl = null;
|
|
12
14
|
this.loggingOutState = 'idle';
|
|
13
15
|
this.transactionsTableColumns = [];
|
|
14
16
|
this.loggingOutStateResetTimeout = null;
|
|
@@ -121,19 +123,21 @@ export class InternalCustomerPortalLoggedInView extends Base {
|
|
|
121
123
|
return {
|
|
122
124
|
...super.properties,
|
|
123
125
|
customer: { type: String },
|
|
126
|
+
embedUrl: { attribute: 'embed-url' },
|
|
124
127
|
loggingOutState: { attribute: false },
|
|
125
128
|
transactionsTableColumns: { attribute: false },
|
|
126
129
|
loggingOutStateResetTimeout: { attribute: false },
|
|
127
130
|
};
|
|
128
131
|
}
|
|
129
132
|
renderBody() {
|
|
130
|
-
var _a, _b;
|
|
133
|
+
var _a, _b, _c;
|
|
131
134
|
const hiddenSelector = this.hiddenSelector.zoom('customer');
|
|
132
135
|
const customerHiddenControls = new BooleanSelector([
|
|
133
136
|
'attributes',
|
|
134
137
|
'transactions',
|
|
135
138
|
'subscriptions',
|
|
136
139
|
'addresses:actions:create',
|
|
140
|
+
'payment-methods:list:card:actions:update:form:template-set',
|
|
137
141
|
'header:actions:edit:form:is-anonymous',
|
|
138
142
|
'header:actions:edit:form:forgot-password',
|
|
139
143
|
'header:actions:edit:form:create',
|
|
@@ -178,10 +182,11 @@ export class InternalCustomerPortalLoggedInView extends Base {
|
|
|
178
182
|
disabledcontrols=${this.disabledSelector.zoom('customer').toString()}
|
|
179
183
|
hiddencontrols=${customerHiddenControls}
|
|
180
184
|
data-testid="customer"
|
|
185
|
+
embed-url=${ifDefined((_a = this.embedUrl) !== null && _a !== void 0 ? _a : void 0)}
|
|
181
186
|
group=${this.group}
|
|
182
187
|
href=${this.customer}
|
|
183
188
|
lang=${this.lang}
|
|
184
|
-
ns="${this.ns} ${(
|
|
189
|
+
ns="${this.ns} ${(_c = (_b = customElements.get('foxy-customer')) === null || _b === void 0 ? void 0 : _b.defaultNS) !== null && _c !== void 0 ? _c : ''}"
|
|
185
190
|
id="customer"
|
|
186
191
|
.templates=${templates}
|
|
187
192
|
.settings=${this.data}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalCustomerPortalLoggedInView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { TransactionsTable } from '../TransactionsTable/TransactionsTable';\nimport type { Templates as CustomerTemplates } from '../Customer/types';\nimport type { Templates } from './types';\nimport type { Renderer } from '../../../mixins/configurable';\nimport type { Customer } from '../Customer/Customer';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/customer';\n\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\nimport { API } from '../NucleonElement/API';\n\nconst Base = TranslatableMixin(InternalForm);\ntype Data = Resource<Rels.CustomerPortalSettings>;\n\nexport class InternalCustomerPortalLoggedInView extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customer: { type: String },\n loggingOutState: { attribute: false },\n transactionsTableColumns: { attribute: false },\n loggingOutStateResetTimeout: { attribute: false },\n };\n }\n\n templates: Templates = {};\n\n customer = '';\n\n loggingOutState: 'idle' | 'busy' | 'fail' = 'idle';\n\n transactionsTableColumns: TransactionsTable['columns'] = [];\n\n loggingOutStateResetTimeout: NodeJS.Timeout | null = null;\n\n private readonly __renderHeaderActionsSignOut = () => {\n const scope = 'customer:header:actions:sign-out';\n const state = this.loggingOutState;\n\n const isDisabled =\n this.disabledSelector.matches(scope) ||\n !this.__customerElement?.in({ idle: 'snapshot' }) ||\n state !== 'idle';\n\n const handleClick = async () => {\n try {\n this.loggingOutState = 'busy';\n await new API(this).fetch('foxy://customer-api/session', { method: 'DELETE' });\n this.loggingOutState = 'idle';\n } catch {\n this.loggingOutState = 'fail';\n this.loggingOutStateResetTimeout = setTimeout(() => {\n this.loggingOutState = 'idle';\n this.loggingOutStateResetTimeout = null;\n }, 1000);\n }\n };\n\n const style = {\n 'border-radius': '100%',\n 'padding': 'var(--lumo-space-xs)',\n 'display': 'flex',\n 'margin': '0',\n 'cursor': isDisabled ? 'default' : 'pointer',\n };\n\n return html`\n <div style=\"display: flex; margin-left: var(--lumo-space-m)\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <vaadin-button\n data-testid=\"sign-out\"\n aria-label=${this.t('sign_out').toString()}\n style=${Object.entries(style).reduce((p, [k, v]) => `${p}${k}:${v};`, '')}\n theme=\"icon\"\n ?disabled=${isDisabled}\n @click=${handleClick}\n >\n ${state === 'idle'\n ? html`<iron-icon icon=\"icons:exit-to-app\"></iron-icon>`\n : html`\n <foxy-spinner\n layout=\"no-label\"\n state=${state === 'fail' ? 'error' : 'busy'}\n style=\"margin: auto\"\n lang=${this.lang}\n ns=${[\n this.ns,\n customElements.get('foxy-customer')?.defaultNS ?? '',\n customElements.get('foxy-spinner')?.defaultNS ?? '',\n ].join(' ')}\n >\n </foxy-spinner>\n `}\n </vaadin-button>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSubscriptions: Renderer<Customer> = (html, host) => {\n const scope = 'customer:subscriptions';\n\n return html`\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-subscriptions\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(scope).toString()}\n group=${host.group}\n lang=${host.lang}\n ns=${host.ns}\n .templates=${this.getNestedTemplates(scope)}\n .settings=${this.data}\n .customer=${host.data}\n >\n </foxy-internal-customer-portal-subscriptions>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n `;\n };\n\n private readonly __renderTransactions: Renderer<Customer> = (html, host) => {\n const scope = 'customer:transactions';\n\n return html`\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-transactions\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(scope).toString()}\n group=${host.group}\n lang=${host.lang}\n ns=${host.ns}\n .templates=${this.getNestedTemplates(scope)}\n .customer=${host.data}\n .columns=${this.transactionsTableColumns}\n >\n </foxy-internal-customer-portal-transactions>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n `;\n };\n\n renderBody(): TemplateResult {\n const hiddenSelector = this.hiddenSelector.zoom('customer');\n const customerHiddenControls = new BooleanSelector(\n [\n 'attributes',\n 'transactions',\n 'subscriptions',\n 'addresses:actions:create',\n 'header:actions:edit:form:is-anonymous',\n 'header:actions:edit:form:forgot-password',\n 'header:actions:edit:form:create',\n 'header:actions:edit:form:delete',\n hiddenSelector.toString(),\n ].join(' ')\n ).toString();\n\n const templates: CustomerTemplates = this.getNestedTemplates('customer');\n const originalHeaderActionsAfterTemplate = templates['header:actions:after'];\n const originalDefaultTemplate = templates['default'];\n\n templates['header:actions:after'] = (html, host) => {\n const isSignOutHidden = hiddenSelector.matches('header:actions:sign-out', true);\n return html`\n <div style=\"display:flex\">\n ${isSignOutHidden ? '' : this.__renderHeaderActionsSignOut()}\n ${originalHeaderActionsAfterTemplate?.(html, host)}\n </div>\n `;\n };\n\n templates['default'] = (html, host) => {\n const renderSubscriptions = this.__renderSubscriptions;\n const renderTransactions = this.__renderTransactions;\n\n return html`\n <style>\n .space-y-m > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(var(--lumo-space-m, 1rem) * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(var(--lumo-space-m, 1rem) * var(--tw-space-y-reverse));\n }\n </style>\n\n ${hiddenSelector.matches('default', true) ? '' : originalDefaultTemplate?.(html, host)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('subscriptions', true) ? '' : renderSubscriptions(html, host)}\n ${hiddenSelector.matches('transactions', true) ? '' : renderTransactions(html, host)}\n </div>\n `;\n };\n\n return html`\n <foxy-customer\n readonlycontrols=${this.readonlySelector.zoom('customer').toString()}\n disabledcontrols=${this.disabledSelector.zoom('customer').toString()}\n hiddencontrols=${customerHiddenControls}\n data-testid=\"customer\"\n group=${this.group}\n href=${this.customer}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-customer')?.defaultNS ?? ''}\"\n id=\"customer\"\n .templates=${templates}\n .settings=${this.data}\n @update=${() => this.requestUpdate()}\n >\n </foxy-customer>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.loggingOutStateResetTimeout) clearTimeout(this.loggingOutStateResetTimeout);\n }\n\n private get __customerElement() {\n return this.renderRoot.querySelector<Customer>('#customer');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalCustomerPortalLoggedInView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { TransactionsTable } from '../TransactionsTable/TransactionsTable';\nimport type { Templates as CustomerTemplates } from '../Customer/types';\nimport type { Templates } from './types';\nimport type { Renderer } from '../../../mixins/configurable';\nimport type { Customer } from '../Customer/Customer';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/customer';\n\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\nimport { API } from '../NucleonElement/API';\n\nconst Base = TranslatableMixin(InternalForm);\ntype Data = Resource<Rels.CustomerPortalSettings>;\n\nexport class InternalCustomerPortalLoggedInView extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customer: { type: String },\n embedUrl: { attribute: 'embed-url' },\n loggingOutState: { attribute: false },\n transactionsTableColumns: { attribute: false },\n loggingOutStateResetTimeout: { attribute: false },\n };\n }\n\n templates: Templates = {};\n\n customer = '';\n\n embedUrl: string | null = null;\n\n loggingOutState: 'idle' | 'busy' | 'fail' = 'idle';\n\n transactionsTableColumns: TransactionsTable['columns'] = [];\n\n loggingOutStateResetTimeout: NodeJS.Timeout | null = null;\n\n private readonly __renderHeaderActionsSignOut = () => {\n const scope = 'customer:header:actions:sign-out';\n const state = this.loggingOutState;\n\n const isDisabled =\n this.disabledSelector.matches(scope) ||\n !this.__customerElement?.in({ idle: 'snapshot' }) ||\n state !== 'idle';\n\n const handleClick = async () => {\n try {\n this.loggingOutState = 'busy';\n await new API(this).fetch('foxy://customer-api/session', { method: 'DELETE' });\n this.loggingOutState = 'idle';\n } catch {\n this.loggingOutState = 'fail';\n this.loggingOutStateResetTimeout = setTimeout(() => {\n this.loggingOutState = 'idle';\n this.loggingOutStateResetTimeout = null;\n }, 1000);\n }\n };\n\n const style = {\n 'border-radius': '100%',\n 'padding': 'var(--lumo-space-xs)',\n 'display': 'flex',\n 'margin': '0',\n 'cursor': isDisabled ? 'default' : 'pointer',\n };\n\n return html`\n <div style=\"display: flex; margin-left: var(--lumo-space-m)\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <vaadin-button\n data-testid=\"sign-out\"\n aria-label=${this.t('sign_out').toString()}\n style=${Object.entries(style).reduce((p, [k, v]) => `${p}${k}:${v};`, '')}\n theme=\"icon\"\n ?disabled=${isDisabled}\n @click=${handleClick}\n >\n ${state === 'idle'\n ? html`<iron-icon icon=\"icons:exit-to-app\"></iron-icon>`\n : html`\n <foxy-spinner\n layout=\"no-label\"\n state=${state === 'fail' ? 'error' : 'busy'}\n style=\"margin: auto\"\n lang=${this.lang}\n ns=${[\n this.ns,\n customElements.get('foxy-customer')?.defaultNS ?? '',\n customElements.get('foxy-spinner')?.defaultNS ?? '',\n ].join(' ')}\n >\n </foxy-spinner>\n `}\n </vaadin-button>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSubscriptions: Renderer<Customer> = (html, host) => {\n const scope = 'customer:subscriptions';\n\n return html`\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-subscriptions\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(scope).toString()}\n group=${host.group}\n lang=${host.lang}\n ns=${host.ns}\n .templates=${this.getNestedTemplates(scope)}\n .settings=${this.data}\n .customer=${host.data}\n >\n </foxy-internal-customer-portal-subscriptions>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n `;\n };\n\n private readonly __renderTransactions: Renderer<Customer> = (html, host) => {\n const scope = 'customer:transactions';\n\n return html`\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-transactions\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(scope).toString()}\n group=${host.group}\n lang=${host.lang}\n ns=${host.ns}\n .templates=${this.getNestedTemplates(scope)}\n .customer=${host.data}\n .columns=${this.transactionsTableColumns}\n >\n </foxy-internal-customer-portal-transactions>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n `;\n };\n\n renderBody(): TemplateResult {\n const hiddenSelector = this.hiddenSelector.zoom('customer');\n const customerHiddenControls = new BooleanSelector(\n [\n 'attributes',\n 'transactions',\n 'subscriptions',\n 'addresses:actions:create',\n 'payment-methods:list:card:actions:update:form:template-set',\n 'header:actions:edit:form:is-anonymous',\n 'header:actions:edit:form:forgot-password',\n 'header:actions:edit:form:create',\n 'header:actions:edit:form:delete',\n hiddenSelector.toString(),\n ].join(' ')\n ).toString();\n\n const templates: CustomerTemplates = this.getNestedTemplates('customer');\n const originalHeaderActionsAfterTemplate = templates['header:actions:after'];\n const originalDefaultTemplate = templates['default'];\n\n templates['header:actions:after'] = (html, host) => {\n const isSignOutHidden = hiddenSelector.matches('header:actions:sign-out', true);\n return html`\n <div style=\"display:flex\">\n ${isSignOutHidden ? '' : this.__renderHeaderActionsSignOut()}\n ${originalHeaderActionsAfterTemplate?.(html, host)}\n </div>\n `;\n };\n\n templates['default'] = (html, host) => {\n const renderSubscriptions = this.__renderSubscriptions;\n const renderTransactions = this.__renderTransactions;\n\n return html`\n <style>\n .space-y-m > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(var(--lumo-space-m, 1rem) * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(var(--lumo-space-m, 1rem) * var(--tw-space-y-reverse));\n }\n </style>\n\n ${hiddenSelector.matches('default', true) ? '' : originalDefaultTemplate?.(html, host)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('subscriptions', true) ? '' : renderSubscriptions(html, host)}\n ${hiddenSelector.matches('transactions', true) ? '' : renderTransactions(html, host)}\n </div>\n `;\n };\n\n return html`\n <foxy-customer\n readonlycontrols=${this.readonlySelector.zoom('customer').toString()}\n disabledcontrols=${this.disabledSelector.zoom('customer').toString()}\n hiddencontrols=${customerHiddenControls}\n data-testid=\"customer\"\n embed-url=${ifDefined(this.embedUrl ?? void 0)}\n group=${this.group}\n href=${this.customer}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-customer')?.defaultNS ?? ''}\"\n id=\"customer\"\n .templates=${templates}\n .settings=${this.data}\n @update=${() => this.requestUpdate()}\n >\n </foxy-customer>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.loggingOutStateResetTimeout) clearTimeout(this.loggingOutStateResetTimeout);\n }\n\n private get __customerElement() {\n return this.renderRoot.querySelector<Customer>('#customer');\n }\n}\n"]}
|
|
@@ -156,18 +156,12 @@ export class CustomerPortalSettingsForm extends Base {
|
|
|
156
156
|
({ allowedOrigins: v = [] }) => {
|
|
157
157
|
return v.every(isOrigin) || 'allowed-origins:v8n_invalid';
|
|
158
158
|
},
|
|
159
|
-
// TODO remove this once SDK types are fixed
|
|
160
|
-
// @ts-expect-error SDK types are incorrect
|
|
161
159
|
({ jwtSharedSecret: v }) => {
|
|
162
160
|
return !v || /^[a-z0-9-]+$/.test(v) || 'jwt-shared-secret:v8n_invalid';
|
|
163
161
|
},
|
|
164
|
-
// TODO remove this once SDK types are fixed
|
|
165
|
-
// @ts-expect-error SDK types are incorrect
|
|
166
162
|
({ jwtSharedSecret: v }) => {
|
|
167
163
|
return !v || v.length >= 40 || 'jwt-shared-secret:v8n_too_short';
|
|
168
164
|
},
|
|
169
|
-
// TODO remove this once SDK types are fixed
|
|
170
|
-
// @ts-expect-error SDK types are incorrect
|
|
171
165
|
({ jwtSharedSecret: v }) => {
|
|
172
166
|
return !v || v.length <= 100 || 'jwt-shared-secret:v8n_too_long';
|
|
173
167
|
},
|