@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalForm/InternalForm.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,cAAc,EAAE,sDAAmD;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,IAAI,GAAG,iBAAiB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,OAAO,YAA4C,SAAQ,IAAW;IAA5E;;QAWE,yFAAyF;QACzF,WAAM,GAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"InternalForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalForm/InternalForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { TemplateResult } from 'lit-html';\nimport type { Status } from './types';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { NucleonElement } from '../../public/NucleonElement/NucleonElement';\nimport { getResourceId } from '@foxy.io/sdk/core';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst Base = ConfigurableMixin(ThemeableMixin(NucleonElement));\n\n/**\n * An internal base class for any nucleon-powered form. Renders create/delete\n * buttons and timestamps by default, displays a spinner in non-idle states.\n *\n * @element foxy-internal-form\n * @since 1.17.0\n */\nexport class InternalForm<TData extends HALJSONResource> extends Base<TData> {\n /** Validation errors with this prefix will show up at the top of the form. */\n static generalErrorPrefix = 'error:';\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n status: { type: Object },\n };\n }\n\n /** Status message to render at the top of the form. If `null`, the message is hidden. */\n status: null | Status = null;\n\n /**\n * Renders header actions when the optional header is rendered.\n * Empty by default.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n renderHeaderActions(data: TData): TemplateResult | null {\n return null;\n }\n\n /**\n * Renders optional form header with ID, last update timestamp and actions list (snapshot-only).\n * Customize which actions are rendered with `.renderHeaderActions()` method.\n */\n renderHeader(): TemplateResult {\n const data = this.data;\n const actions = data ? this.renderHeaderActions(data) : null;\n const id = data ? getResourceId(data._links.self.href) : '';\n\n return html`\n <h2>\n <span class=\"flex items-center gap-s leading-xs text-xxl font-medium break-all\">\n <foxy-i18n infer=\"header\" key=${data ? 'title_existing' : 'title_new'} .options=${{ id }}>\n </foxy-i18n>\n ${data\n ? html`\n <foxy-copy-to-clipboard infer=\"header\" class=\"text-m\" text=${id}>\n </foxy-copy-to-clipboard>\n `\n : ''}\n </span>\n ${data\n ? html`\n <foxy-i18n\n infer=\"header\"\n class=\"text-l text-secondary\"\n key=\"subtitle\"\n .options=${data}\n >\n </foxy-i18n>\n ${actions ? html`<div class=\"mt-xs flex gap-m\">${actions}</div>` : ''}\n `\n : ''}\n </h2>\n `;\n }\n\n /**\n * Renders form body. This is the method you should implement in your forms\n * instead of `.render()`. If you'd like to keep the submit button and the timestamps,\n * don't forget to add `super.renderBody()` to your template.\n */\n renderBody(): TemplateResult {\n return this.data\n ? html`\n <foxy-internal-timestamps-control infer=\"timestamps\"></foxy-internal-timestamps-control>\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `\n : html`<foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>`;\n }\n\n /**\n * Renders the entire form. You should probably implement `.renderBody()`\n * instead of this method in your form to keep the spinner and the common layout features.\n */\n render(): TemplateResult {\n const isSpinnerVisible = !this.in('idle') && (!this.in({ busy: 'fetching' }) || !this.data);\n\n return html`\n <div aria-busy=${this.in('busy')} aria-live=\"polite\" class=\"relative\">\n <div\n class=${classMap({\n 'space-y-m': true,\n 'transition-opacity': true,\n 'opacity-0 pointer-events-none': isSpinnerVisible,\n })}\n >\n ${this.__generalErrors.map(err => this.__renderGeneralError(err))}\n ${this.status ? this.__renderStatus(this.status) : ''} ${this.renderBody()}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'flex flex-col items-center justify-center gap-m': true,\n 'transition-opacity absolute inset-0': true,\n 'opacity-0 pointer-events-none': !isSpinnerVisible,\n })}\n >\n <foxy-spinner\n layout=${this.in('fail') ? 'vertical' : 'no-label'}\n state=${this.in('fail') ? 'error' : 'busy'}\n infer=\"spinner\"\n >\n </foxy-spinner>\n ${this.href && this.in('fail')\n ? html`\n <vaadin-button theme=\"small contrast\" @click=${() => this.refresh()}>\n <foxy-i18n infer=\"spinner\" key=\"refresh\"></foxy-i18n>\n </vaadin-button>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n private get __generalErrors() {\n const prefix = (this.constructor as typeof InternalForm).generalErrorPrefix;\n return this.errors.filter(v => v.startsWith(prefix));\n }\n\n private __renderGeneralError(err: string) {\n return html`\n <foxy-i18n\n class=\"leading-xs text-body rounded bg-error-10 block\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n infer=\"error\"\n key=${err.replace('error:', '')}\n >\n </foxy-i18n>\n `;\n }\n\n private __renderStatus({ key, options }: Status) {\n if (this.hiddenSelector.matches('status', true)) return;\n return html`\n <p\n data-testid=\"status\"\n class=\"leading-xs text-body rounded bg-success-10 flex items-start gap-m\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <foxy-i18n class=\"flex-1\" infer=\"status\" key=${key} .options=${options}></foxy-i18n>\n <vaadin-button\n class=\"flex-shrink-0\"\n theme=\"success tertiary-inline\"\n @click=${() => (this.status = null)}\n >\n <foxy-i18n class=\"flex-1\" infer=\"status\" key=\"close\"></foxy-i18n>\n </vaadin-button>\n </p>\n `;\n }\n}\n"]}
|
package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
2
|
+
import type { Option } from '../../public/QueryBuilder/types';
|
|
3
|
+
import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
|
|
4
|
+
export declare class InternalResourcePickerControl extends InternalEditableControl {
|
|
5
|
+
static get properties(): PropertyDeclarations;
|
|
6
|
+
virtualHost: string;
|
|
7
|
+
filters: Option[];
|
|
8
|
+
first: string | null;
|
|
9
|
+
item: string | null;
|
|
10
|
+
private readonly __getItemRenderer;
|
|
11
|
+
renderControl(): TemplateResult;
|
|
12
|
+
updated(changes: Map<keyof this, unknown>): void;
|
|
13
|
+
private __handleFetchEvent;
|
|
14
|
+
private __handleEmpty;
|
|
15
|
+
private __handleSelect;
|
|
16
|
+
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
|
|
2
|
+
import { FetchEvent } from "../../public/NucleonElement/FetchEvent.js";
|
|
3
|
+
import { classMap } from "../../../utils/class-map.js";
|
|
4
|
+
import { uniqueId } from 'lodash-es';
|
|
5
|
+
import { spread } from '@open-wc/lit-helpers';
|
|
6
|
+
import { html } from 'lit-html';
|
|
7
|
+
import memoize from 'lodash-es/memoize';
|
|
8
|
+
export class InternalResourcePickerControl extends InternalEditableControl {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.virtualHost = uniqueId('internal-resource-picker-control-');
|
|
12
|
+
this.filters = [];
|
|
13
|
+
this.first = null;
|
|
14
|
+
this.item = null;
|
|
15
|
+
this.__getItemRenderer = memoize((item) => {
|
|
16
|
+
return new Function('ctx', `return ctx.html\`
|
|
17
|
+
<${item !== null && item !== void 0 ? item : 'foxy-null'}
|
|
18
|
+
related=\${JSON.stringify(ctx.related)}
|
|
19
|
+
parent=\${ctx.parent}
|
|
20
|
+
infer="card"
|
|
21
|
+
href=$\{ctx.href}
|
|
22
|
+
...=\${ctx.spread(ctx.props)}
|
|
23
|
+
>
|
|
24
|
+
</${item !== null && item !== void 0 ? item : 'foxy-null'}>\``);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
static get properties() {
|
|
28
|
+
return {
|
|
29
|
+
...super.properties,
|
|
30
|
+
virtualHost: {},
|
|
31
|
+
filters: { type: Array },
|
|
32
|
+
first: {},
|
|
33
|
+
item: {},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
renderControl() {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
return html `
|
|
39
|
+
<foxy-form-dialog
|
|
40
|
+
parent="foxy://${this.virtualHost}/select"
|
|
41
|
+
infer="dialog"
|
|
42
|
+
form="foxy-internal-resource-picker-control-form"
|
|
43
|
+
alert
|
|
44
|
+
.props=${{
|
|
45
|
+
'.selectionProps': {
|
|
46
|
+
'.filters': this.filters,
|
|
47
|
+
'.first': this.first,
|
|
48
|
+
'.item': this.item,
|
|
49
|
+
},
|
|
50
|
+
}}
|
|
51
|
+
@fetch=${this.__handleFetchEvent}
|
|
52
|
+
>
|
|
53
|
+
</foxy-form-dialog>
|
|
54
|
+
|
|
55
|
+
<div class="block group">
|
|
56
|
+
<div
|
|
57
|
+
class=${classMap({
|
|
58
|
+
'transition-colors mb-xs font-medium text-s': true,
|
|
59
|
+
'text-secondary group-hover-text-body': !this.disabled && !this.readonly,
|
|
60
|
+
'text-secondary': this.readonly,
|
|
61
|
+
'text-disabled': this.disabled,
|
|
62
|
+
})}
|
|
63
|
+
>
|
|
64
|
+
${this.label}
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<button
|
|
68
|
+
class=${classMap({
|
|
69
|
+
'block w-full rounded text-left transition-colors': true,
|
|
70
|
+
'border border-dashed': true,
|
|
71
|
+
'border-transparent': !this.readonly,
|
|
72
|
+
'cursor-pointer bg-contrast-5 hover-bg-contrast-10': !this.disabled && !this.readonly,
|
|
73
|
+
'cursor-default bg-contrast-5': this.disabled,
|
|
74
|
+
'cursor-default border-contrast-30': this.readonly,
|
|
75
|
+
'focus-outline-none focus-ring-2 focus-ring-primary-50': true,
|
|
76
|
+
})}
|
|
77
|
+
style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
|
|
78
|
+
?disabled=${this.disabled || this.readonly}
|
|
79
|
+
@click=${(evt) => {
|
|
80
|
+
const button = evt.currentTarget;
|
|
81
|
+
const dialog = this.renderRoot.querySelector('foxy-form-dialog');
|
|
82
|
+
dialog.href = '';
|
|
83
|
+
dialog.show(button);
|
|
84
|
+
}}
|
|
85
|
+
>
|
|
86
|
+
<div class=${classMap({ 'transition-opacity': true, 'opacity-50': this.disabled })}>
|
|
87
|
+
${this.__getItemRenderer(this.item)({
|
|
88
|
+
html,
|
|
89
|
+
data: null,
|
|
90
|
+
href: this._value || '',
|
|
91
|
+
related: [],
|
|
92
|
+
parent: '',
|
|
93
|
+
props: {},
|
|
94
|
+
spread: spread,
|
|
95
|
+
simplifyNsLoading: this.simplifyNsLoading,
|
|
96
|
+
disabled: this.disabled,
|
|
97
|
+
disabledControls: this.disabledControls,
|
|
98
|
+
readonly: this.readonly,
|
|
99
|
+
readonlyControls: this.readonlyControls,
|
|
100
|
+
hidden: this.hidden,
|
|
101
|
+
hiddenControls: this.hiddenControls,
|
|
102
|
+
templates: this.templates,
|
|
103
|
+
previous: null,
|
|
104
|
+
next: null,
|
|
105
|
+
group: (_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.group) !== null && _b !== void 0 ? _b : '',
|
|
106
|
+
lang: this.lang,
|
|
107
|
+
ns: this.ns,
|
|
108
|
+
})}
|
|
109
|
+
</div>
|
|
110
|
+
</button>
|
|
111
|
+
|
|
112
|
+
<div
|
|
113
|
+
class=${classMap({
|
|
114
|
+
'transition-colors mt-xs text-xs': true,
|
|
115
|
+
'text-secondary group-hover-text-body': !this.disabled && !this.readonly,
|
|
116
|
+
'text-secondary': this.readonly,
|
|
117
|
+
'text-disabled': this.disabled,
|
|
118
|
+
})}
|
|
119
|
+
?hidden=${!this.helperText}
|
|
120
|
+
>
|
|
121
|
+
${this.helperText}
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<div
|
|
125
|
+
class="mt-xs text-xs leading-xs text-error"
|
|
126
|
+
?hidden=${!this._errorMessage || this.disabled || this.readonly}
|
|
127
|
+
>
|
|
128
|
+
${this._errorMessage}
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
`;
|
|
132
|
+
}
|
|
133
|
+
updated(changes) {
|
|
134
|
+
var _a, _b;
|
|
135
|
+
super.updated(changes);
|
|
136
|
+
if (changes.has('item'))
|
|
137
|
+
(_b = (_a = this.__getItemRenderer.cache).clear) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
138
|
+
}
|
|
139
|
+
__handleFetchEvent(event) {
|
|
140
|
+
if (!(event instanceof FetchEvent))
|
|
141
|
+
return;
|
|
142
|
+
if (event.defaultPrevented)
|
|
143
|
+
return;
|
|
144
|
+
const { url, method } = event.request;
|
|
145
|
+
if (url === `foxy://${this.virtualHost}/select` && method === 'POST') {
|
|
146
|
+
return event.respondWith(this.__handleSelect(event.request));
|
|
147
|
+
}
|
|
148
|
+
if (url === `foxy://${this.virtualHost}/empty` && method === 'GET') {
|
|
149
|
+
return event.respondWith(this.__handleEmpty());
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async __handleEmpty() {
|
|
153
|
+
return new Response(JSON.stringify({
|
|
154
|
+
_links: { self: { href: `foxy://${this.virtualHost}/empty` } },
|
|
155
|
+
message: 'Resource selected.',
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
async __handleSelect(request) {
|
|
159
|
+
const body = (await request.clone().json());
|
|
160
|
+
this._value = body.selection;
|
|
161
|
+
return new Response(JSON.stringify({
|
|
162
|
+
_links: { self: { href: `foxy://${this.virtualHost}/empty` } },
|
|
163
|
+
message: 'Resource selected.',
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=InternalResourcePickerControl.js.map
|
package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalResourcePickerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { FormDialog } from '../../public/FormDialog/FormDialog';\nimport type { Option } from '../../public/QueryBuilder/types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { FetchEvent } from '../../public/NucleonElement/FetchEvent';\nimport { classMap } from '../../../utils/class-map';\nimport { uniqueId } from 'lodash-es';\nimport { spread } from '@open-wc/lit-helpers';\nimport { html } from 'lit-html';\n\nimport memoize from 'lodash-es/memoize';\n\nexport class InternalResourcePickerControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n virtualHost: {},\n filters: { type: Array },\n first: {},\n item: {},\n };\n }\n\n virtualHost = uniqueId('internal-resource-picker-control-');\n\n filters: Option[] = [];\n\n first: string | null = null;\n\n item: string | null = null;\n\n private readonly __getItemRenderer = memoize((item: string | null) => {\n return new Function(\n 'ctx',\n `return ctx.html\\`\n <${item ?? 'foxy-null'}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n infer=\"card\"\n href=$\\{ctx.href}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item ?? 'foxy-null'}>\\``\n ) as ItemRenderer;\n });\n\n renderControl(): TemplateResult {\n return html`\n <foxy-form-dialog\n parent=\"foxy://${this.virtualHost}/select\"\n infer=\"dialog\"\n form=\"foxy-internal-resource-picker-control-form\"\n alert\n .props=${{\n '.selectionProps': {\n '.filters': this.filters,\n '.first': this.first,\n '.item': this.item,\n },\n }}\n @fetch=${this.__handleFetchEvent}\n >\n </foxy-form-dialog>\n\n <div class=\"block group\">\n <div\n class=${classMap({\n 'transition-colors mb-xs font-medium text-s': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n >\n ${this.label}\n </div>\n\n <button\n class=${classMap({\n 'block w-full rounded text-left transition-colors': true,\n 'border border-dashed': true,\n 'border-transparent': !this.readonly,\n 'cursor-pointer bg-contrast-5 hover-bg-contrast-10': !this.disabled && !this.readonly,\n 'cursor-default bg-contrast-5': this.disabled,\n 'cursor-default border-contrast-30': this.readonly,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n })}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n ?disabled=${this.disabled || this.readonly}\n @click=${(evt: MouseEvent) => {\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.renderRoot.querySelector('foxy-form-dialog') as FormDialog;\n\n dialog.href = '';\n dialog.show(button);\n }}\n >\n <div class=${classMap({ 'transition-opacity': true, 'opacity-50': this.disabled })}>\n ${this.__getItemRenderer(this.item)({\n html,\n data: null,\n href: (this._value as string | undefined) || '',\n related: [],\n parent: '',\n props: {},\n spread: spread,\n simplifyNsLoading: this.simplifyNsLoading,\n disabled: this.disabled,\n disabledControls: this.disabledControls,\n readonly: this.readonly,\n readonlyControls: this.readonlyControls,\n hidden: this.hidden,\n hiddenControls: this.hiddenControls,\n templates: this.templates,\n previous: null,\n next: null,\n group: this.nucleon?.group ?? '',\n lang: this.lang,\n ns: this.ns,\n })}\n </div>\n </button>\n\n <div\n class=${classMap({\n 'transition-colors mt-xs text-xs': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${!this.helperText}\n >\n ${this.helperText}\n </div>\n\n <div\n class=\"mt-xs text-xs leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n </div>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('item')) this.__getItemRenderer.cache.clear?.();\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n\n const { url, method } = event.request;\n\n if (url === `foxy://${this.virtualHost}/select` && method === 'POST') {\n return event.respondWith(this.__handleSelect(event.request));\n }\n\n if (url === `foxy://${this.virtualHost}/empty` && method === 'GET') {\n return event.respondWith(this.__handleEmpty());\n }\n }\n\n private async __handleEmpty(): Promise<Response> {\n return new Response(\n JSON.stringify({\n _links: { self: { href: `foxy://${this.virtualHost}/empty` } },\n message: 'Resource selected.',\n })\n );\n }\n\n private async __handleSelect(request: Request): Promise<Response> {\n const body = (await request.clone().json()) as { selection: string };\n this._value = body.selection;\n return new Response(\n JSON.stringify({\n _links: { self: { href: `foxy://${this.virtualHost}/empty` } },\n message: 'Resource selected.',\n })\n );\n }\n}\n"]}
|
package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
2
|
+
import type { HALJSONResource, NucleonV8N } from '../../public/NucleonElement/types';
|
|
3
|
+
import { InternalForm } from '../InternalForm/InternalForm';
|
|
4
|
+
declare type Data = HALJSONResource & {
|
|
5
|
+
selection: string;
|
|
6
|
+
query: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class InternalResourcePickerControlForm extends InternalForm<Data> {
|
|
9
|
+
static get properties(): PropertyDeclarations;
|
|
10
|
+
static get v8n(): NucleonV8N<Data>;
|
|
11
|
+
selectionProps: Record<PropertyKey, unknown>;
|
|
12
|
+
renderBody(): TemplateResult;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { InternalForm } from "../InternalForm/InternalForm.js";
|
|
2
|
+
import { spread } from '@open-wc/lit-helpers';
|
|
3
|
+
import { html } from 'lit-html';
|
|
4
|
+
export class InternalResourcePickerControlForm extends InternalForm {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.selectionProps = {};
|
|
8
|
+
}
|
|
9
|
+
static get properties() {
|
|
10
|
+
return {
|
|
11
|
+
...super.properties,
|
|
12
|
+
selectionProps: { attribute: false },
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
static get v8n() {
|
|
16
|
+
return [({ selection: v }) => (v === undefined ? 'silent:selection_required' : true)];
|
|
17
|
+
}
|
|
18
|
+
renderBody() {
|
|
19
|
+
return html `
|
|
20
|
+
<h2 class="leading-xs text-xxl font-medium break-all">
|
|
21
|
+
<foxy-i18n infer="" key="header"></foxy-i18n>
|
|
22
|
+
</h2>
|
|
23
|
+
|
|
24
|
+
<foxy-internal-async-list-control
|
|
25
|
+
infer="selection"
|
|
26
|
+
form="foxy-null"
|
|
27
|
+
hide-delete-button
|
|
28
|
+
hide-create-button
|
|
29
|
+
@itemclick=${(evt) => {
|
|
30
|
+
evt.preventDefault();
|
|
31
|
+
this.edit({ selection: evt.detail });
|
|
32
|
+
this.submit();
|
|
33
|
+
}}
|
|
34
|
+
...=${spread(this.selectionProps)}
|
|
35
|
+
>
|
|
36
|
+
</foxy-internal-async-list-control>
|
|
37
|
+
`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=InternalResourcePickerControlForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalResourcePickerControlForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,wCAAqC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIhC,MAAM,OAAO,iCAAkC,SAAQ,YAAkB;IAAzE;;QAYE,mBAAc,GAAiC,EAAE,CAAC;IAuBpD,CAAC;IAlCC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC;IAID,UAAU;QACR,OAAO,IAAI,CAAA;;;;;;;;;;qBAUM,CAAC,GAAwB,EAAE,EAAE;YACxC,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;cACK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;;;KAGpC,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { HALJSONResource, NucleonV8N } from '../../public/NucleonElement/types';\n\nimport { InternalForm } from '../InternalForm/InternalForm';\nimport { spread } from '@open-wc/lit-helpers';\nimport { html } from 'lit-html';\n\ntype Data = HALJSONResource & { selection: string; query: string };\n\nexport class InternalResourcePickerControlForm extends InternalForm<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n selectionProps: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [({ selection: v }) => (v === undefined ? 'silent:selection_required' : true)];\n }\n\n selectionProps: Record<PropertyKey, unknown> = {};\n\n renderBody(): TemplateResult {\n return html`\n <h2 class=\"leading-xs text-xxl font-medium break-all\">\n <foxy-i18n infer=\"\" key=\"header\"></foxy-i18n>\n </h2>\n\n <foxy-internal-async-list-control\n infer=\"selection\"\n form=\"foxy-null\"\n hide-delete-button\n hide-create-button\n @itemclick=${(evt: CustomEvent<string>) => {\n evt.preventDefault();\n this.edit({ selection: evt.detail });\n this.submit();\n }}\n ...=${spread(this.selectionProps)}\n >\n </foxy-internal-async-list-control>\n `;\n }\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import '../InternalAsyncListControl/index';
|
|
2
|
+
import '../InternalEditableControl/index';
|
|
3
|
+
import '../InternalForm/index';
|
|
4
|
+
import '../../public/FormDialog/index';
|
|
5
|
+
import { InternalResourcePickerControl } from './InternalResourcePickerControl';
|
|
6
|
+
export { InternalResourcePickerControl };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "../InternalAsyncListControl/index.js";
|
|
2
|
+
import "../InternalEditableControl/index.js";
|
|
3
|
+
import "../InternalForm/index.js";
|
|
4
|
+
import "../../public/FormDialog/index.js";
|
|
5
|
+
import { InternalResourcePickerControlForm } from "./InternalResourcePickerControlForm.js";
|
|
6
|
+
import { InternalResourcePickerControl } from "./InternalResourcePickerControl.js";
|
|
7
|
+
customElements.define('foxy-internal-resource-picker-control-form', InternalResourcePickerControlForm);
|
|
8
|
+
customElements.define('foxy-internal-resource-picker-control', InternalResourcePickerControl);
|
|
9
|
+
export { InternalResourcePickerControl };
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAC3C,6CAA0C;AAC1C,kCAA+B;AAE/B,0CAAuC;AAEvC,OAAO,EAAE,iCAAiC,EAAE,+CAA4C;AACxF,OAAO,EAAE,6BAA6B,EAAE,2CAAwC;AAEhF,cAAc,CAAC,MAAM,CACnB,4CAA4C,EAC5C,iCAAiC,CAClC,CAAC;AAEF,cAAc,CAAC,MAAM,CAAC,uCAAuC,EAAE,6BAA6B,CAAC,CAAC;AAE9F,OAAO,EAAE,6BAA6B,EAAE,CAAC","sourcesContent":["import '../InternalAsyncListControl/index';\nimport '../InternalEditableControl/index';\nimport '../InternalForm/index';\n\nimport '../../public/FormDialog/index';\n\nimport { InternalResourcePickerControlForm } from './InternalResourcePickerControlForm';\nimport { InternalResourcePickerControl } from './InternalResourcePickerControl';\n\ncustomElements.define(\n 'foxy-internal-resource-picker-control-form',\n InternalResourcePickerControlForm\n);\n\ncustomElements.define('foxy-internal-resource-picker-control', InternalResourcePickerControl);\n\nexport { InternalResourcePickerControl };\n"]}
|
|
@@ -250,19 +250,21 @@ export class CouponForm extends Base {
|
|
|
250
250
|
}
|
|
251
251
|
renderHeaderActions(data) {
|
|
252
252
|
return html `
|
|
253
|
-
<foxy-internal-
|
|
253
|
+
<foxy-internal-bulk-add-action-control
|
|
254
254
|
parent=${data._links['fx:generate_codes'].href}
|
|
255
255
|
infer="generate"
|
|
256
256
|
form="foxy-generate-codes-form"
|
|
257
|
+
.related=${[data._links['fx:coupon_codes'].href]}
|
|
257
258
|
>
|
|
258
|
-
</foxy-internal-
|
|
259
|
+
</foxy-internal-bulk-add-action-control>
|
|
259
260
|
|
|
260
|
-
<foxy-internal-
|
|
261
|
+
<foxy-internal-bulk-add-action-control
|
|
261
262
|
parent=${data._links['fx:coupon_codes'].href}
|
|
262
263
|
infer="import"
|
|
263
264
|
form="foxy-coupon-codes-form"
|
|
265
|
+
.related=${[data._links['fx:coupon_codes'].href]}
|
|
264
266
|
>
|
|
265
|
-
</foxy-internal-
|
|
267
|
+
</foxy-internal-bulk-add-action-control>
|
|
266
268
|
|
|
267
269
|
${super.renderHeaderActions(data)}
|
|
268
270
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CouponForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/CouponForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult, PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Action } from '../../internal/InternalAsyncListControl/types';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { Operator, Type } from '../QueryBuilder/types';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'coupon-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing coupons (`fx:coupon`).\n *\n * @slot import:before\n * @slot import:after\n *\n * @slot generate:before\n * @slot generate:after\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot rules:before\n * @slot rules:after\n *\n * @slot coupon-codes:before\n * @slot coupon-codes:after\n *\n * @slot item-option-restrictions:before\n * @slot item-option-restrictions:after\n *\n * @slot product-code-restrictions:before\n * @slot product-code-restrictions:after\n *\n * @slot category-restrictions:before\n * @slot category-restrictions:after\n *\n * @slot number-of-uses-allowed:before\n * @slot number-of-uses-allowed:after\n *\n * @slot number-of-uses-allowed-per-customer:before\n * @slot number-of-uses-allowed-per-customer:after\n *\n * @slot number-of-uses-allowed-per-code:before\n * @slot number-of-uses-allowed-per-code:after\n *\n * @slot start-date:before\n * @slot start-date:after\n *\n * @slot end-date:before\n * @slot end-date:after\n *\n * @slot inclusive-tax-rate:before\n * @slot inclusive-tax-rate:after\n *\n * @slot options:before\n * @slot options:after\n *\n * @slot customer-subscription-restrictions:before\n * @slot customer-subscription-restrictions:after\n *\n * @slot customer-attribute-restrictions:before\n * @slot customer-attribute-restrictions:after\n *\n * @slot attributes:before\n * @slot attributes:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n *\n * @element foxy-coupon-form\n * @since 1.15.0\n */\nexport class CouponForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n __couponCodesActions: { type: Array },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n ({ inclusive_tax_rate: v }) => !v || v >= 0 || 'inclusive-tax-rate:v8n_too_small',\n ({ inclusive_tax_rate: v }) => !v || v <= 1 || 'inclusive-tax-rate:v8n_too_big',\n ({ number_of_uses_allowed: v }) => !v || v >= 0 || 'number-of-uses-allowed:v8n_too_small',\n ({ coupon_discount_details: v }) => !!v || 'rules:v8n_required',\n ({ coupon_discount_details: v }) => !v || v.length <= 200 || 'rules:v8n_too_long',\n ({ item_option_restrictions: v }) => {\n return !v || JSON.stringify(v).length <= 6000 || 'item-option-restrictions:v8n_too_long';\n },\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ({ customer_attribute_restrictions: v }) => {\n return !v || v.length <= 2000 || 'customer-attribute-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_code: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-code:v8n_too_small';\n },\n ({ customer_subscription_restrictions: v }) => {\n return !v || v.length <= 200 || 'customer-subscription-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_customer: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-customer:v8n_too_small';\n },\n ];\n }\n\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n private readonly __customerSubscriptionRestrictionsGetValue = () => {\n const items = this.form.customer_subscription_restrictions\n ?.split(',')\n .map(value => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .map(value => ({ value }));\n\n return items ?? [];\n };\n\n private readonly __customerSubscriptionRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n customer_subscription_restrictions: newValue\n .map(({ value }) => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .join(),\n });\n\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __itemOptionRestrictionsOperators = [Operator.In];\n\n private readonly __itemOptionRestrictionsGetValue = () => {\n const query = new URLSearchParams();\n const rules = this.form.item_option_restrictions ?? {};\n\n for (const key in rules) {\n query.set(`${key}:in`, rules[key].join(','));\n }\n\n return query.toString();\n };\n\n private readonly __itemOptionRestrictionsSetValue = (newValue: string) => {\n const rules = Object.fromEntries(\n Array.from(new URLSearchParams(newValue).entries()).map(([key, value]) => {\n return [key.replace(':in', ''), value.split(',').filter(v => !!v.trim())];\n })\n );\n\n this.edit({ item_option_restrictions: rules });\n };\n\n private readonly __optionsGetValue = () => {\n const value: string[] = [];\n\n if (this.form.multiple_codes_allowed) value.push('multiple_codes_allowed');\n if (this.form.combinable) value.push('combinable');\n if (this.form.exclude_category_discounts) value.push('exclude_category_discounts');\n if (this.form.exclude_line_item_discounts) value.push('exclude_line_item_discounts');\n if (this.form.is_taxable) value.push('is_taxable');\n if (this.form.shared_codes_allowed) value.push('shared_codes_allowed');\n if (this.form.customer_auto_apply) value.push('customer_auto_apply');\n\n return value;\n };\n\n private readonly __optionsSetValue = (newValue: string[]) => {\n this.edit({\n multiple_codes_allowed: newValue.includes('multiple_codes_allowed'),\n combinable: newValue.includes('combinable'),\n exclude_category_discounts: newValue.includes('exclude_category_discounts'),\n exclude_line_item_discounts: newValue.includes('exclude_line_item_discounts'),\n is_taxable: newValue.includes('is_taxable'),\n shared_codes_allowed: newValue.includes('shared_codes_allowed'),\n customer_auto_apply: newValue.includes('customer_auto_apply'),\n });\n };\n\n private readonly __optionsOptions = [\n { value: 'multiple_codes_allowed', label: 'option_multiple_codes_allowed' },\n { value: 'combinable', label: 'option_combinable' },\n { value: 'exclude_category_discounts', label: 'option_exclude_category_discounts' },\n { value: 'exclude_line_item_discounts', label: 'option_exclude_line_item_discounts' },\n { value: 'is_taxable', label: 'option_is_taxable' },\n { value: 'shared_codes_allowed', label: 'option_shared_codes_allowed' },\n { value: 'customer_auto_apply', label: 'option_customer_auto_apply' },\n ];\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'used_codes', path: 'number_of_uses_to_date', type: Type.Number },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __couponCodesActions: Action<Resource<Rels.CouponCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__couponCodesActions[0].state = 'busy';\n this.__couponCodesActions = [...this.__couponCodesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__couponCodesActions[0].state = 'end';\n } catch {\n this.__couponCodesActions[0].state = 'error';\n } finally {\n this.__couponCodesActions = [...this.__couponCodesActions];\n setTimeout(() => {\n this.__couponCodesActions[0].state = 'idle';\n this.__couponCodesActions = [...this.__couponCodesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('coupon-codes', 'category-restrictions', 'attributes');\n }\n\n if (!this.form.customer_auto_apply) {\n alwaysMatch.push('customer-attribute-restrictions', 'customer-subscription-restrictions');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-coupon-form-bulk-add-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n >\n </foxy-internal-coupon-form-bulk-add-control>\n\n <foxy-internal-coupon-form-bulk-add-control\n parent=${data._links['fx:coupon_codes'].href}\n infer=\"import\"\n form=\"foxy-coupon-codes-form\"\n >\n </foxy-internal-coupon-form-bulk-add-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:coupon_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <foxy-internal-coupon-form-rules-control infer=\"rules\">\n </foxy-internal-coupon-form-rules-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"coupon-codes\"\n item=\"foxy-coupon-code-card\"\n form=\"foxy-coupon-code-form\"\n alert\n .formProps=${{ '.getTransactionPageHref': this.getTransactionPageHref }}\n .actions=${this.__couponCodesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-query-builder-control\n infer=\"item-option-restrictions\"\n disable-or\n .operators=${this.__itemOptionRestrictionsOperators}\n .getValue=${this.__itemOptionRestrictionsGetValue}\n .setValue=${this.__itemOptionRestrictionsSetValue}\n >\n </foxy-internal-query-builder-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"coupon_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:coupon_item_categories\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:coupon_item_categories'].href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <div class=\"grid gap-l sm-grid-cols-3\">\n <foxy-internal-integer-control infer=\"number-of-uses-allowed\" min=\"0\" show-controls>\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-customer\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-code\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n </div>\n\n <div class=\"grid gap-l sm-grid-cols-2\">\n <foxy-internal-date-control infer=\"start-date\"></foxy-internal-date-control>\n <foxy-internal-date-control infer=\"end-date\"></foxy-internal-date-control>\n </div>\n\n <foxy-internal-number-control min=\"0\" max=\"1\" infer=\"inclusive-tax-rate\">\n </foxy-internal-number-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"options\"\n theme=\"vertical\"\n .getValue=${this.__optionsGetValue}\n .setValue=${this.__optionsSetValue}\n .options=${this.__optionsOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-editable-list-control\n infer=\"customer-subscription-restrictions\"\n .getValue=${this.__customerSubscriptionRestrictionsGetValue}\n .setValue=${this.__customerSubscriptionRestrictionsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-query-builder-control infer=\"customer-attribute-restrictions\">\n </foxy-internal-query-builder-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CouponForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/CouponForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult, PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Action } from '../../internal/InternalAsyncListControl/types';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { Operator, Type } from '../QueryBuilder/types';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'coupon-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing coupons (`fx:coupon`).\n *\n * @slot import:before\n * @slot import:after\n *\n * @slot generate:before\n * @slot generate:after\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot rules:before\n * @slot rules:after\n *\n * @slot coupon-codes:before\n * @slot coupon-codes:after\n *\n * @slot item-option-restrictions:before\n * @slot item-option-restrictions:after\n *\n * @slot product-code-restrictions:before\n * @slot product-code-restrictions:after\n *\n * @slot category-restrictions:before\n * @slot category-restrictions:after\n *\n * @slot number-of-uses-allowed:before\n * @slot number-of-uses-allowed:after\n *\n * @slot number-of-uses-allowed-per-customer:before\n * @slot number-of-uses-allowed-per-customer:after\n *\n * @slot number-of-uses-allowed-per-code:before\n * @slot number-of-uses-allowed-per-code:after\n *\n * @slot start-date:before\n * @slot start-date:after\n *\n * @slot end-date:before\n * @slot end-date:after\n *\n * @slot inclusive-tax-rate:before\n * @slot inclusive-tax-rate:after\n *\n * @slot options:before\n * @slot options:after\n *\n * @slot customer-subscription-restrictions:before\n * @slot customer-subscription-restrictions:after\n *\n * @slot customer-attribute-restrictions:before\n * @slot customer-attribute-restrictions:after\n *\n * @slot attributes:before\n * @slot attributes:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n *\n * @element foxy-coupon-form\n * @since 1.15.0\n */\nexport class CouponForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n __couponCodesActions: { type: Array },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n ({ inclusive_tax_rate: v }) => !v || v >= 0 || 'inclusive-tax-rate:v8n_too_small',\n ({ inclusive_tax_rate: v }) => !v || v <= 1 || 'inclusive-tax-rate:v8n_too_big',\n ({ number_of_uses_allowed: v }) => !v || v >= 0 || 'number-of-uses-allowed:v8n_too_small',\n ({ coupon_discount_details: v }) => !!v || 'rules:v8n_required',\n ({ coupon_discount_details: v }) => !v || v.length <= 200 || 'rules:v8n_too_long',\n ({ item_option_restrictions: v }) => {\n return !v || JSON.stringify(v).length <= 6000 || 'item-option-restrictions:v8n_too_long';\n },\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ({ customer_attribute_restrictions: v }) => {\n return !v || v.length <= 2000 || 'customer-attribute-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_code: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-code:v8n_too_small';\n },\n ({ customer_subscription_restrictions: v }) => {\n return !v || v.length <= 200 || 'customer-subscription-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_customer: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-customer:v8n_too_small';\n },\n ];\n }\n\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n private readonly __customerSubscriptionRestrictionsGetValue = () => {\n const items = this.form.customer_subscription_restrictions\n ?.split(',')\n .map(value => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .map(value => ({ value }));\n\n return items ?? [];\n };\n\n private readonly __customerSubscriptionRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n customer_subscription_restrictions: newValue\n .map(({ value }) => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .join(),\n });\n\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __itemOptionRestrictionsOperators = [Operator.In];\n\n private readonly __itemOptionRestrictionsGetValue = () => {\n const query = new URLSearchParams();\n const rules = this.form.item_option_restrictions ?? {};\n\n for (const key in rules) {\n query.set(`${key}:in`, rules[key].join(','));\n }\n\n return query.toString();\n };\n\n private readonly __itemOptionRestrictionsSetValue = (newValue: string) => {\n const rules = Object.fromEntries(\n Array.from(new URLSearchParams(newValue).entries()).map(([key, value]) => {\n return [key.replace(':in', ''), value.split(',').filter(v => !!v.trim())];\n })\n );\n\n this.edit({ item_option_restrictions: rules });\n };\n\n private readonly __optionsGetValue = () => {\n const value: string[] = [];\n\n if (this.form.multiple_codes_allowed) value.push('multiple_codes_allowed');\n if (this.form.combinable) value.push('combinable');\n if (this.form.exclude_category_discounts) value.push('exclude_category_discounts');\n if (this.form.exclude_line_item_discounts) value.push('exclude_line_item_discounts');\n if (this.form.is_taxable) value.push('is_taxable');\n if (this.form.shared_codes_allowed) value.push('shared_codes_allowed');\n if (this.form.customer_auto_apply) value.push('customer_auto_apply');\n\n return value;\n };\n\n private readonly __optionsSetValue = (newValue: string[]) => {\n this.edit({\n multiple_codes_allowed: newValue.includes('multiple_codes_allowed'),\n combinable: newValue.includes('combinable'),\n exclude_category_discounts: newValue.includes('exclude_category_discounts'),\n exclude_line_item_discounts: newValue.includes('exclude_line_item_discounts'),\n is_taxable: newValue.includes('is_taxable'),\n shared_codes_allowed: newValue.includes('shared_codes_allowed'),\n customer_auto_apply: newValue.includes('customer_auto_apply'),\n });\n };\n\n private readonly __optionsOptions = [\n { value: 'multiple_codes_allowed', label: 'option_multiple_codes_allowed' },\n { value: 'combinable', label: 'option_combinable' },\n { value: 'exclude_category_discounts', label: 'option_exclude_category_discounts' },\n { value: 'exclude_line_item_discounts', label: 'option_exclude_line_item_discounts' },\n { value: 'is_taxable', label: 'option_is_taxable' },\n { value: 'shared_codes_allowed', label: 'option_shared_codes_allowed' },\n { value: 'customer_auto_apply', label: 'option_customer_auto_apply' },\n ];\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'used_codes', path: 'number_of_uses_to_date', type: Type.Number },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __couponCodesActions: Action<Resource<Rels.CouponCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__couponCodesActions[0].state = 'busy';\n this.__couponCodesActions = [...this.__couponCodesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__couponCodesActions[0].state = 'end';\n } catch {\n this.__couponCodesActions[0].state = 'error';\n } finally {\n this.__couponCodesActions = [...this.__couponCodesActions];\n setTimeout(() => {\n this.__couponCodesActions[0].state = 'idle';\n this.__couponCodesActions = [...this.__couponCodesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('coupon-codes', 'category-restrictions', 'attributes');\n }\n\n if (!this.form.customer_auto_apply) {\n alwaysMatch.push('customer-attribute-restrictions', 'customer-subscription-restrictions');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:coupon_codes'].href}\n infer=\"import\"\n form=\"foxy-coupon-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:coupon_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <foxy-internal-coupon-form-rules-control infer=\"rules\">\n </foxy-internal-coupon-form-rules-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"coupon-codes\"\n item=\"foxy-coupon-code-card\"\n form=\"foxy-coupon-code-form\"\n alert\n .formProps=${{ '.getTransactionPageHref': this.getTransactionPageHref }}\n .actions=${this.__couponCodesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-query-builder-control\n infer=\"item-option-restrictions\"\n disable-or\n .operators=${this.__itemOptionRestrictionsOperators}\n .getValue=${this.__itemOptionRestrictionsGetValue}\n .setValue=${this.__itemOptionRestrictionsSetValue}\n >\n </foxy-internal-query-builder-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"coupon_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:coupon_item_categories\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:coupon_item_categories'].href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <div class=\"grid gap-l sm-grid-cols-3\">\n <foxy-internal-integer-control infer=\"number-of-uses-allowed\" min=\"0\" show-controls>\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-customer\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-code\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n </div>\n\n <div class=\"grid gap-l sm-grid-cols-2\">\n <foxy-internal-date-control infer=\"start-date\"></foxy-internal-date-control>\n <foxy-internal-date-control infer=\"end-date\"></foxy-internal-date-control>\n </div>\n\n <foxy-internal-number-control min=\"0\" max=\"1\" infer=\"inclusive-tax-rate\">\n </foxy-internal-number-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"options\"\n theme=\"vertical\"\n .getValue=${this.__optionsGetValue}\n .setValue=${this.__optionsSetValue}\n .options=${this.__optionsOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-editable-list-control\n infer=\"customer-subscription-restrictions\"\n .getValue=${this.__customerSubscriptionRestrictionsGetValue}\n .setValue=${this.__customerSubscriptionRestrictionsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-query-builder-control infer=\"customer-attribute-restrictions\">\n </foxy-internal-query-builder-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import '../../internal/InternalAsyncResourceLinkListControl/index';
|
|
2
2
|
import '../../internal/InternalCheckboxGroupControl/index';
|
|
3
|
+
import '../../internal/InternalBulkAddActionControl/index';
|
|
3
4
|
import '../../internal/InternalEditableListControl/index';
|
|
4
5
|
import '../../internal/InternalQueryBuilderControl/index';
|
|
5
6
|
import '../../internal/InternalIntegerControl/index';
|
|
@@ -15,7 +16,6 @@ import '../CouponCodeForm/index';
|
|
|
15
16
|
import '../NucleonElement/index';
|
|
16
17
|
import '../AttributeForm/index';
|
|
17
18
|
import '../AttributeCard/index';
|
|
18
|
-
import './internal/InternalCouponFormBulkAddControl/index';
|
|
19
19
|
import './internal/InternalCouponFormRulesControl/index';
|
|
20
20
|
import { CouponForm } from './CouponForm';
|
|
21
21
|
export { CouponForm };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "../../internal/InternalAsyncResourceLinkListControl/index.js";
|
|
2
2
|
import "../../internal/InternalCheckboxGroupControl/index.js";
|
|
3
|
+
import "../../internal/InternalBulkAddActionControl/index.js";
|
|
3
4
|
import "../../internal/InternalEditableListControl/index.js";
|
|
4
5
|
import "../../internal/InternalQueryBuilderControl/index.js";
|
|
5
6
|
import "../../internal/InternalIntegerControl/index.js";
|
|
@@ -15,7 +16,6 @@ import "../CouponCodeForm/index.js";
|
|
|
15
16
|
import "../NucleonElement/index.js";
|
|
16
17
|
import "../AttributeForm/index.js";
|
|
17
18
|
import "../AttributeCard/index.js";
|
|
18
|
-
import "./internal/InternalCouponFormBulkAddControl/index.js";
|
|
19
19
|
import "./internal/InternalCouponFormRulesControl/index.js";
|
|
20
20
|
import { CouponForm } from "./CouponForm.js";
|
|
21
21
|
customElements.define('foxy-coupon-form', CouponForm);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,6DAA0D;AAC1D,6DAA0D;AAC1D,wDAAqD;AACrD,uDAAoD;AACpD,qDAAkD;AAClD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,sCAAmC;AACnC,qCAAkC;AAClC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,8DAA2D;AAC3D,6DAA0D;AAC1D,6DAA0D;AAC1D,wDAAqD;AACrD,uDAAoD;AACpD,qDAAkD;AAClD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,sCAAmC;AACnC,qCAAkC;AAClC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,4DAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalCheckboxGroupControl/index';\nimport '../../internal/InternalBulkAddActionControl/index';\nimport '../../internal/InternalEditableListControl/index';\nimport '../../internal/InternalQueryBuilderControl/index';\nimport '../../internal/InternalIntegerControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalDateControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../GenerateCodesForm/index';\nimport '../ItemCategoryCard/index';\nimport '../CouponCodesForm/index';\nimport '../CouponCodeCard/index';\nimport '../CouponCodeForm/index';\nimport '../NucleonElement/index';\nimport '../AttributeForm/index';\nimport '../AttributeCard/index';\n\nimport './internal/InternalCouponFormRulesControl/index';\n\nimport { CouponForm } from './CouponForm';\n\ncustomElements.define('foxy-coupon-form', CouponForm);\n\nexport { CouponForm };\n"]}
|
|
@@ -3,13 +3,4 @@ import type { Rels } from '@foxy.io/sdk/backend';
|
|
|
3
3
|
export declare type TransactionPageHrefGetter = (transactionHref: string, transaction: Resource<Rels.Transaction, {
|
|
4
4
|
zoom: 'items';
|
|
5
5
|
}>) => string | null;
|
|
6
|
-
export declare type Data = Resource<Rels.Coupon
|
|
7
|
-
item_option_restrictions: null | Record<string, string[]>;
|
|
8
|
-
shared_codes_allowed: boolean;
|
|
9
|
-
inclusive_tax_rate: number;
|
|
10
|
-
_links: {
|
|
11
|
-
'fx:attributes': {
|
|
12
|
-
href: string;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
};
|
|
6
|
+
export declare type Data = Resource<Rels.Coupon>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type TransactionPageHrefGetter = (\n transactionHref: string,\n transaction: Resource<Rels.Transaction, { zoom: 'items' }>\n) => string | null;\n\nexport type Data = Resource<Rels.Coupon
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type TransactionPageHrefGetter = (\n transactionHref: string,\n transaction: Resource<Rels.Transaction, { zoom: 'items' }>\n) => string | null;\n\nexport type Data = Resource<Rels.Coupon>;\n"]}
|
|
@@ -54,6 +54,11 @@ export declare class Customer extends Base<Data> {
|
|
|
54
54
|
static get properties(): PropertyDeclarations;
|
|
55
55
|
static get styles(): CSSResultArray;
|
|
56
56
|
templates: Templates;
|
|
57
|
+
/**
|
|
58
|
+
* Configuration URL for the Payment Card Embed. If provided, this element will allow
|
|
59
|
+
* the customer to update their default payment method using the Payment Card Embed.
|
|
60
|
+
*/
|
|
61
|
+
embedUrl: string | null;
|
|
57
62
|
/** Customer Portal settings for use in Customer mode. */
|
|
58
63
|
settings: Settings | null;
|
|
59
64
|
private readonly __renderHeaderActionsEdit;
|