@foxy.io/elements 1.18.0-beta.21 → 1.18.0-beta.22
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/README.md +6 -1
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +1 -1
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-api-browser.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-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-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-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-detail-card.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-card.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +2 -2
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-builder.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-discount-detail-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-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-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-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-pagination.js +1 -1
- package/dist/cdn/foxy-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +2 -2
- package/dist/cdn/foxy-reports-table.js +5 -5
- 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-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 +7 -7
- 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-f69afa4b.js → shared-08156595.js} +1 -1
- package/dist/cdn/{shared-fedeb7b2.js → shared-0821cfdc.js} +1 -1
- package/dist/cdn/{shared-6ac71f60.js → shared-08e27fe9.js} +3 -3
- package/dist/cdn/{shared-13e6fe8a.js → shared-0ce006b9.js} +1 -1
- package/dist/cdn/shared-1000b848.js +1 -0
- package/dist/cdn/{shared-d7dfd3d8.js → shared-101d1234.js} +2 -2
- package/dist/cdn/{shared-9643b6c8.js → shared-1c94a156.js} +1 -1
- package/dist/cdn/{shared-e39be772.js → shared-2092d86f.js} +1 -1
- package/dist/cdn/shared-21679ebd.js +1 -0
- package/dist/cdn/{shared-8e6a8a88.js → shared-2add595d.js} +1 -1
- package/dist/cdn/{shared-459a5ec4.js → shared-2cc638ad.js} +1 -1
- package/dist/cdn/{shared-4817dcd1.js → shared-39c10b22.js} +1 -1
- package/dist/cdn/{shared-d0c5c38f.js → shared-404aa9cc.js} +1 -1
- package/dist/cdn/{shared-307382e5.js → shared-4849ef5b.js} +1 -1
- package/dist/cdn/shared-486d7bb5.js +1 -0
- package/dist/cdn/{shared-715ee51e.js → shared-4f9d2417.js} +1 -1
- package/dist/cdn/{shared-daab7e76.js → shared-5378bd8c.js} +1 -1
- package/dist/cdn/{shared-780ead03.js → shared-5a4829e3.js} +1 -1
- package/dist/cdn/{shared-d6a78c23.js → shared-5b177708.js} +1 -1
- package/dist/cdn/{shared-7788977c.js → shared-5ea18e60.js} +1 -1
- package/dist/cdn/{shared-674c1c04.js → shared-62a54a6c.js} +1 -1
- package/dist/cdn/{shared-d7c271d2.js → shared-62c088b7.js} +1 -1
- package/dist/cdn/{shared-71beb422.js → shared-639c666f.js} +1 -1
- package/dist/cdn/{shared-9862ca28.js → shared-6581241a.js} +1 -1
- package/dist/cdn/{shared-206b4ae2.js → shared-6cb1015f.js} +1 -1
- package/dist/cdn/{shared-2bd47510.js → shared-71d8d167.js} +3 -3
- package/dist/cdn/{shared-45db2087.js → shared-71f2ef1f.js} +1 -1
- package/dist/cdn/{shared-25ecdf66.js → shared-744cf66b.js} +1 -1
- package/dist/cdn/{shared-80378a15.js → shared-7d4fb1a2.js} +1 -1
- package/dist/cdn/{shared-a4165acb.js → shared-80fc2b6a.js} +1 -1
- package/dist/cdn/{shared-ef98812b.js → shared-83596b46.js} +1 -1
- package/dist/cdn/shared-868065de.js +1 -0
- package/dist/cdn/{shared-02d4bc14.js → shared-88c4cfec.js} +1 -1
- package/dist/cdn/{shared-e7e0ee80.js → shared-8dd0af4d.js} +1 -1
- package/dist/cdn/{shared-46e22714.js → shared-988ec916.js} +1 -1
- package/dist/cdn/{shared-915e8780.js → shared-9bdacf65.js} +1 -1
- package/dist/cdn/{shared-72279946.js → shared-9f436277.js} +1 -1
- package/dist/cdn/shared-a0c8faf2.js +1 -0
- package/dist/cdn/{shared-0f29fba2.js → shared-a37abe4c.js} +2 -2
- package/dist/cdn/{shared-a6de944b.js → shared-a41234b4.js} +1 -1
- package/dist/cdn/{shared-0a40a749.js → shared-af226a9a.js} +1 -1
- package/dist/cdn/{shared-3b249b20.js → shared-b40cf0dd.js} +1 -1
- package/dist/cdn/{shared-7a739f89.js → shared-bb0e33c3.js} +1 -1
- package/dist/cdn/{shared-18d42566.js → shared-bc814810.js} +1 -1
- package/dist/cdn/{shared-1392183b.js → shared-bd252323.js} +1 -1
- package/dist/cdn/{shared-0d3bec9f.js → shared-be66c2e7.js} +1 -1
- package/dist/cdn/{shared-f821859e.js → shared-c774d080.js} +1 -1
- package/dist/cdn/{shared-78f6e15f.js → shared-c95c17e6.js} +1 -1
- package/dist/cdn/shared-cba08e1c.js +1 -0
- package/dist/cdn/{shared-33912f50.js → shared-d518bd55.js} +1 -1
- package/dist/cdn/shared-d61b3e4f.js +1 -0
- package/dist/cdn/{shared-3e8cd935.js → shared-d8dc97f0.js} +1 -1
- package/dist/cdn/{shared-2d2ce3b1.js → shared-de036570.js} +1 -1
- package/dist/cdn/{shared-7992035c.js → shared-ed0dee03.js} +3 -3
- package/dist/cdn/shared-f7e4cd67.js +1 -0
- package/dist/cdn/{shared-e0615601.js → shared-f80f402a.js} +1 -1
- package/dist/cdn/translations/payments-api-payment-preset-form/en.json +2 -2
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +10 -5
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
- package/dist/elements/internal/InternalControl/InternalControl.js +2 -2
- package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
- package/dist/elements/internal/InternalDetails/InternalDetails.js +3 -3
- package/dist/elements/internal/InternalDetails/InternalDetails.js.map +1 -1
- package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js +1 -1
- package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js.map +1 -1
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +2 -1
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
- package/dist/elements/private/Group/Group.js +1 -1
- package/dist/elements/private/Group/Group.js.map +1 -1
- package/dist/elements/private/Warning/Warning.js +1 -3
- package/dist/elements/private/Warning/Warning.js.map +1 -1
- package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.d.ts +2 -2
- package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.js +7 -8
- package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.js.map +1 -1
- package/dist/elements/public/AppliedTaxCard/AppliedTaxCard.d.ts +1 -1
- package/dist/elements/public/AppliedTaxCard/AppliedTaxCard.js +2 -2
- package/dist/elements/public/AppliedTaxCard/AppliedTaxCard.js.map +1 -1
- package/dist/elements/public/AttributeCard/AttributeCard.js +28 -14
- package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
- package/dist/elements/public/CartForm/CartForm.d.ts +106 -1
- package/dist/elements/public/CartForm/CartForm.js +167 -37
- package/dist/elements/public/CartForm/CartForm.js.map +1 -1
- package/dist/elements/public/CartForm/index.d.ts +2 -0
- package/dist/elements/public/CartForm/index.js +2 -0
- package/dist/elements/public/CartForm/index.js.map +1 -1
- package/dist/elements/public/CartForm/types.d.ts +64 -0
- package/dist/elements/public/CartForm/types.js.map +1 -1
- package/dist/elements/public/CouponDetailCard/CouponDetailCard.d.ts +1 -1
- package/dist/elements/public/CouponDetailCard/CouponDetailCard.js +2 -2
- package/dist/elements/public/CouponDetailCard/CouponDetailCard.js.map +1 -1
- package/dist/elements/public/CouponForm/CouponForm.js +13 -9
- package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
- package/dist/elements/public/CustomFieldCard/CustomFieldCard.d.ts +1 -1
- package/dist/elements/public/CustomFieldCard/CustomFieldCard.js +2 -2
- package/dist/elements/public/CustomFieldCard/CustomFieldCard.js.map +1 -1
- package/dist/elements/public/CustomFieldCard/TwoLineCard.d.ts +6 -12
- package/dist/elements/public/CustomFieldCard/TwoLineCard.js +5 -35
- package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
- package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +4 -4
- package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -1
- package/dist/elements/public/DiscountCard/DiscountCard.d.ts +1 -1
- package/dist/elements/public/DiscountCard/DiscountCard.js +2 -2
- package/dist/elements/public/DiscountCard/DiscountCard.js.map +1 -1
- package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.d.ts +1 -1
- package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js +2 -2
- package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js.map +1 -1
- package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.d.ts +1 -1
- package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.js +2 -2
- package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +10 -2
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
- package/dist/elements/public/GiftCardForm/GiftCardForm.js +3 -3
- package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
- package/dist/elements/public/I18nEditor/I18nEditor.d.ts +9 -0
- package/dist/elements/public/I18nEditor/I18nEditor.js +13 -4
- package/dist/elements/public/I18nEditor/I18nEditor.js.map +1 -1
- package/dist/elements/public/ItemCard/ItemCard.js +14 -15
- package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
- package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.d.ts +1 -1
- package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js +2 -2
- package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js.map +1 -1
- package/dist/elements/public/ItemOptionCard/ItemOptionCard.d.ts +1 -1
- package/dist/elements/public/ItemOptionCard/ItemOptionCard.js +2 -2
- package/dist/elements/public/ItemOptionCard/ItemOptionCard.js.map +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.d.ts +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js +6 -3
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js.map +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.d.ts +41 -3
- package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.js +142 -84
- package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.js.map +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionForm/index.d.ts +2 -3
- package/dist/elements/public/PaymentsApiFraudProtectionForm/index.js +2 -3
- package/dist/elements/public/PaymentsApiFraudProtectionForm/index.js.map +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionForm/types.d.ts +15 -0
- package/dist/elements/public/PaymentsApiFraudProtectionForm/types.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.d.ts +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js +6 -3
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.d.ts +70 -3
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +314 -263
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodForm/index.d.ts +2 -0
- package/dist/elements/public/PaymentsApiPaymentMethodForm/index.js +2 -0
- package/dist/elements/public/PaymentsApiPaymentMethodForm/index.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodForm/types.d.ts +29 -0
- package/dist/elements/public/PaymentsApiPaymentMethodForm/types.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentPresetCard/PaymentsApiPaymentPresetCard.d.ts +1 -1
- package/dist/elements/public/PaymentsApiPaymentPresetCard/PaymentsApiPaymentPresetCard.js +2 -2
- package/dist/elements/public/PaymentsApiPaymentPresetCard/PaymentsApiPaymentPresetCard.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.d.ts +40 -1
- package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js +93 -74
- package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentPresetForm/types.d.ts +14 -0
- package/dist/elements/public/PaymentsApiPaymentPresetForm/types.js.map +1 -1
- package/dist/elements/public/ReportForm/ReportForm.js +4 -1
- package/dist/elements/public/ReportForm/ReportForm.js.map +1 -1
- package/dist/elements/public/StoreForm/StoreForm.d.ts +153 -1
- package/dist/elements/public/StoreForm/StoreForm.js +191 -27
- package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
- package/dist/elements/public/StoreForm/index.d.ts +1 -0
- package/dist/elements/public/StoreForm/index.js +1 -0
- package/dist/elements/public/StoreForm/index.js.map +1 -1
- package/dist/elements/public/StoreForm/types.d.ts +94 -0
- package/dist/elements/public/StoreForm/types.js.map +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.d.ts +50 -1
- package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js +49 -0
- package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js.map +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js.map +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.d.ts +1 -0
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.js +1 -0
- package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.js.map +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/types.d.ts +33 -1
- package/dist/elements/public/SubscriptionSettingsForm/types.js.map +1 -1
- package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js +4 -1
- package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js.map +1 -1
- package/dist/elements/public/TemplateForm/TemplateForm.js +10 -2
- package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
- package/dist/elements/public/TemplateSetCard/TemplateSetCard.d.ts +1 -1
- package/dist/elements/public/TemplateSetCard/TemplateSetCard.js +2 -2
- package/dist/elements/public/TemplateSetCard/TemplateSetCard.js.map +1 -1
- package/dist/mixins/themeable.js +19 -8
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +2 -1
- package/dist/cdn/shared-0301f5c5.js +0 -1
- package/dist/cdn/shared-324f9551.js +0 -1
- package/dist/cdn/shared-4cbd9a4f.js +0 -1
- package/dist/cdn/shared-7304a1ab.js +0 -1
- package/dist/cdn/shared-9291d900.js +0 -1
- package/dist/cdn/shared-ad3c1ddc.js +0 -1
- package/dist/cdn/shared-c6567654.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ReportForm/ReportForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Choice, Group, PropertyTable } from '../../private/index';\nimport { Data, Templates } from './types';\nimport { PropertyDeclarations, TemplateResult, html } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {\n getCurrentMonth,\n getCurrentQuarter,\n getCurrentYear,\n getLast30Days,\n getLast365Days,\n getPreviousMonth,\n getPreviousQuarter,\n getPreviousYear,\n toAPIDateTime,\n toDatePickerValue,\n toDateTimePickerValue,\n} from './utils';\n\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { CheckboxElement } from '@vaadin/vaadin-checkbox';\nimport { ChoiceChangeEvent } from '../../private/Choice/ChoiceChangeEvent';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DateTimePicker } from '@vaadin/vaadin-date-time-picker';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { SelectElement } from '@vaadin/vaadin-select';\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 { live } from 'lit-html/directives/live';\nimport { render } from 'lit-html';\n\nconst Base = ScopedElementsMixin(\n ResponsiveMixin(\n ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, 'report-form')))\n )\n);\n\n/**\n * Form element for creating or editing reports (`fx:report`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot range:before\n * @slot range:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @element foxy-report-form\n * @since 1.16.0\n */\nexport class ReportForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-date-time-picker': customElements.get('vaadin-date-time-picker'),\n 'vaadin-date-picker': customElements.get('vaadin-date-picker'),\n 'vaadin-checkbox': customElements.get('vaadin-checkbox'),\n 'vaadin-select': customElements.get('vaadin-select'),\n 'vaadin-button': customElements.get('vaadin-button'),\n\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n\n 'x-property-table': PropertyTable,\n 'x-choice': Choice,\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __showRangeTime: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name_required',\n ({ datetime_start: v }) => !!v || 'datetime_start_required',\n ({ datetime_end: v }) => !!v || 'datetime_end_required',\n ];\n }\n\n templates: Templates = {};\n\n private __showRangeTime = false;\n\n render(): TemplateResult {\n const hidden = this.hiddenSelector;\n\n return html`\n <div\n data-testid=\"wrapper\"\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n class=\"space-y-l relative\"\n >\n <div class=\"space-y-m\">\n ${hidden.matches('name', true) ? '' : this.__renderName()}\n ${hidden.matches('range', true) ? '' : this.__renderRange()}\n ${hidden.matches('timestamps', true) || !this.data ? '' : this.__renderTimestamps()}\n ${hidden.matches('create', true) || this.data ? '' : this.__renderCreate()}\n ${hidden.matches('delete', true) || !this.data ? '' : this.__renderDelete()}\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': this.in('idle'),\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' : this.in('busy') ? 'busy' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n private __renderName() {\n const scope = 'name';\n const items = ['complete', 'customers', 'customers_ltv'];\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope);\n const isReadonly = this.readonlySelector.matches(scope);\n\n return html`\n <div data-testid=${scope}>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <x-group frame>\n <foxy-i18n lang=${this.lang} slot=\"header\" key=\"name\" ns=${this.ns}></foxy-i18n>\n\n <x-choice\n data-testid=\"name-choice\"\n .value=${this.form.name}\n .items=${items}\n ?readonly=${isReadonly}\n ?disabled=${isDisabled}\n @change=${(evt: Event) => {\n if (evt instanceof ChoiceChangeEvent) {\n this.edit({ name: evt.detail as Data['name'] });\n }\n }}\n >\n ${items.map(value => {\n return html`\n <div slot=\"${value}-label\" class=\"py-s leading-s\">\n <foxy-i18n class=\"block\" lang=${this.lang} key=\"name_${value}\" ns=${this.ns}>\n </foxy-i18n>\n\n <foxy-i18n\n class=\"block text-s opacity-70\"\n lang=${this.lang}\n key=\"name_${value}_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n `;\n })}\n </x-choice>\n </x-group>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n }\n\n private __renderRangePreset() {\n const options = [\n [\n { value: '0', label: 'preset_previous_quarter', ...getPreviousQuarter() },\n { value: '1', label: 'preset_previous_month', ...getPreviousMonth() },\n { value: '2', label: 'preset_previous_year', ...getPreviousYear() },\n ],\n [\n { value: '3', label: 'preset_this_quarter', ...getCurrentQuarter() },\n { value: '4', label: 'preset_this_month', ...getCurrentMonth() },\n { value: '5', label: 'preset_this_year', ...getCurrentYear() },\n ],\n [\n { value: '6', label: 'preset_last_365_days', ...getLast365Days() },\n { value: '7', label: 'preset_last_30_days', ...getLast30Days() },\n ],\n ];\n\n const currentOption = options.flat(1).find(option => {\n const { datetime_end: end, datetime_start: start } = this.form;\n return (\n start && end && toAPIDateTime(option.start) === start && toAPIDateTime(option.end) === end\n );\n });\n\n const renderer = (root: Element) => {\n const custom = html`<vaadin-item value=\"custom\">${this.t('preset_custom')}</vaadin-item>`;\n const separator = html`<hr />`;\n const predefined = options.map(group => {\n const items = group.map(({ value, label }) => {\n return html`<vaadin-item value=${value}>${this.t(label)}</vaadin-item>`;\n });\n\n return html`${items}${separator}`;\n });\n\n if (!root.firstElementChild) root.appendChild(document.createElement('vaadin-list-box'));\n render(html`${predefined}${custom}`, root.firstElementChild as Element);\n };\n\n return html`\n <div>\n <vaadin-select\n data-testid=\"range:preset\"\n label=${this.t('preset')}\n class=\"w-full -mt-m -mb-xs\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}\n ?readonly=${this.readonlySelector.matches('range', true)}\n .value=${live(currentOption?.value ?? 'custom')}\n .renderer=${renderer}\n @change=${(evt: CustomEvent) => {\n const select = evt.currentTarget as SelectElement;\n const option = options.flat(1).find(option => option.value === select.value);\n\n if (option) {\n this.edit({\n datetime_start: toAPIDateTime(option.start),\n datetime_end: toAPIDateTime(option.end),\n });\n }\n }}\n >\n </vaadin-select>\n </div>\n `;\n }\n\n private __renderRangeDateTimePicker(type: 'start' | 'end') {\n const field = type === 'end' ? 'datetime_end' : 'datetime_start';\n const error = this.errors.find(error => error.startsWith(`${field}_`));\n const value = this.form[field as keyof Data] as string;\n\n return html`\n <vaadin-date-time-picker\n date-placeholder=${this.t('select_date')}\n time-placeholder=${this.t('select_time')}\n error-message=${ifDefined(error ? this.t(error) : undefined)}\n data-testid=\"range:${type}\"\n class=\"w-full\"\n label=${this.t(type)}\n step=\"1\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}\n ?readonly=${this.readonlySelector.matches('range', true)}\n .checkValidity=${() => !error}\n .value=${value ? toDateTimePickerValue(value) : ''}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.submit()}\n @change=${(evt: CustomEvent) => {\n const picker = evt.currentTarget as DateTimePicker;\n this.edit({ [field]: picker.value });\n }}\n >\n </vaadin-date-time-picker>\n `;\n }\n\n private __renderRangeDatePicker(type: 'start' | 'end') {\n const field = type === 'end' ? 'datetime_end' : 'datetime_start';\n const error = this.errors.find(error => error.startsWith(`${field}_`));\n const value = this.form[field as keyof Data] as string;\n\n return html`\n <vaadin-date-picker\n error-message=${ifDefined(error ? this.t(error) : undefined)}\n placeholder=${this.t('select_date')}\n data-testid=\"range:${type}\"\n class=\"w-full\"\n label=${this.t(type)}\n step=\"1\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}\n ?readonly=${this.readonlySelector.matches('range', true)}\n .checkValidity=${() => !error}\n .value=${value ? toDatePickerValue(value) : ''}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.submit()}\n @change=${(evt: CustomEvent) => {\n const picker = evt.currentTarget as DateTimePicker;\n const time = type === 'end' ? '23:59:59' : '00:00:00';\n\n this.edit({ [field]: `${picker.value}T${time}` });\n }}\n >\n </vaadin-date-picker>\n `;\n }\n\n private __renderRange() {\n const renderer = this.__showRangeTime\n ? this.__renderRangeDateTimePicker\n : this.__renderRangeDatePicker;\n\n return html`\n <div data-testid=\"range\">\n ${this.renderTemplateOrSlot('range:before')}\n\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"range\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"p-m grid gap-m ${this.__showRangeTime ? 'grid-cols-1' : 'sm-grid-cols-2'}\">\n <div class=${this.__showRangeTime ? 'col-span-1' : 'sm-col-span-2'}>\n ${this.__renderRangePreset()}\n </div>\n\n ${renderer.call(this, 'start')} ${renderer.call(this, 'end')}\n\n <vaadin-checkbox\n data-testid=\"range:toggle\"\n class=\"-my-xs w-full ${this.__showRangeTime ? 'col-span-1' : 'sm-col-span-2'}\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}\n ?checked=${this.__showRangeTime}\n @change=${(evt: CustomEvent) => {\n const checkbox = evt.currentTarget as CheckboxElement;\n this.__showRangeTime = checkbox.checked;\n }}\n >\n <foxy-i18n lang=${this.lang} key=\"use_precise_time\" ns=${this.ns}></foxy-i18n>\n </vaadin-checkbox>\n </div>\n </x-group>\n\n ${this.renderTemplateOrSlot('range:after')}\n </div>\n `;\n }\n\n private __renderTimestamps() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n\n <x-property-table\n data-testid=\"timestamps\"\n .items=${(['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }))}\n >\n </x-property-table>\n\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n }\n\n private __renderCreate() {\n const isCleanTemplateInvalid = this.in({ idle: { template: { clean: 'invalid' } } });\n const isDirtyTemplateInvalid = this.in({ idle: { template: { dirty: 'invalid' } } });\n const isCleanSnapshotInvalid = this.in({ idle: { snapshot: { clean: 'invalid' } } });\n const isDirtySnapshotInvalid = this.in({ idle: { snapshot: { dirty: 'invalid' } } });\n const isTemplateInvalid = isCleanTemplateInvalid || isDirtyTemplateInvalid;\n const isSnaphotInvalid = isCleanSnapshotInvalid || isDirtySnapshotInvalid;\n const isInvalid = isTemplateInvalid || isSnaphotInvalid;\n const isIdle = this.in('idle');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('create:before')}\n\n <vaadin-button\n data-testid=\"create\"\n class=\"w-full\"\n theme=\"primary success\"\n ?disabled=${!isIdle || isInvalid || this.disabledSelector.matches('create', true)}\n @click=${this.submit}\n >\n <foxy-i18n ns=${this.ns} key=\"create\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('create:after')}\n </div>\n `;\n }\n\n private __renderDelete() {\n return html`\n <div>\n <foxy-internal-confirm-dialog\n data-testid=\"confirm\"\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.delete()}\n >\n </foxy-internal-confirm-dialog>\n\n ${this.renderTemplateOrSlot('delete:before')}\n\n <vaadin-button\n data-testid=\"delete\"\n theme=\"error\"\n class=\"w-full\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('delete', true)}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n ns=${this.ns} key=\"delete\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('delete:after')}\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ReportForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ReportForm/ReportForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Choice, Group, PropertyTable } from '../../private/index';\nimport { Data, Templates } from './types';\nimport { PropertyDeclarations, TemplateResult, html } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {\n getCurrentMonth,\n getCurrentQuarter,\n getCurrentYear,\n getLast30Days,\n getLast365Days,\n getPreviousMonth,\n getPreviousQuarter,\n getPreviousYear,\n toAPIDateTime,\n toDatePickerValue,\n toDateTimePickerValue,\n} from './utils';\n\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { CheckboxElement } from '@vaadin/vaadin-checkbox';\nimport { ChoiceChangeEvent } from '../../private/Choice/ChoiceChangeEvent';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DateTimePicker } from '@vaadin/vaadin-date-time-picker';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { SelectElement } from '@vaadin/vaadin-select';\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 { live } from 'lit-html/directives/live';\nimport { render } from 'lit-html';\n\nconst Base = ScopedElementsMixin(\n ResponsiveMixin(\n ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, 'report-form')))\n )\n);\n\n/**\n * Form element for creating or editing reports (`fx:report`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot range:before\n * @slot range:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @element foxy-report-form\n * @since 1.16.0\n */\nexport class ReportForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-date-time-picker': customElements.get('vaadin-date-time-picker'),\n 'vaadin-date-picker': customElements.get('vaadin-date-picker'),\n 'vaadin-checkbox': customElements.get('vaadin-checkbox'),\n 'vaadin-select': customElements.get('vaadin-select'),\n 'vaadin-button': customElements.get('vaadin-button'),\n\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n\n 'x-property-table': PropertyTable,\n 'x-choice': Choice,\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __showRangeTime: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name_required',\n ({ datetime_start: v }) => !!v || 'datetime_start_required',\n ({ datetime_end: v }) => !!v || 'datetime_end_required',\n ];\n }\n\n templates: Templates = {};\n\n private __showRangeTime = false;\n\n render(): TemplateResult {\n const hidden = this.hiddenSelector;\n\n return html`\n <div\n data-testid=\"wrapper\"\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n class=\"space-y-l relative\"\n >\n <div class=\"space-y-m\">\n ${hidden.matches('name', true) ? '' : this.__renderName()}\n ${hidden.matches('range', true) ? '' : this.__renderRange()}\n ${hidden.matches('timestamps', true) || !this.data ? '' : this.__renderTimestamps()}\n ${hidden.matches('create', true) || this.data ? '' : this.__renderCreate()}\n ${hidden.matches('delete', true) || !this.data ? '' : this.__renderDelete()}\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': this.in('idle'),\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' : this.in('busy') ? 'busy' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n private __renderName() {\n const scope = 'name';\n const items = ['complete', 'customers', 'customers_ltv'];\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope);\n const isReadonly = this.readonlySelector.matches(scope);\n\n return html`\n <div data-testid=${scope}>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <x-group frame>\n <foxy-i18n lang=${this.lang} slot=\"header\" key=\"name\" ns=${this.ns}></foxy-i18n>\n\n <x-choice\n data-testid=\"name-choice\"\n .value=${this.form.name}\n .items=${items}\n ?readonly=${isReadonly}\n ?disabled=${isDisabled}\n @change=${(evt: Event) => {\n if (evt instanceof ChoiceChangeEvent) {\n this.edit({ name: evt.detail as Data['name'] });\n }\n }}\n >\n ${items.map(value => {\n return html`\n <div slot=\"${value}-label\" class=\"py-s leading-s\">\n <foxy-i18n class=\"block\" lang=${this.lang} key=\"name_${value}\" ns=${this.ns}>\n </foxy-i18n>\n\n <foxy-i18n\n class=\"block text-s opacity-70\"\n lang=${this.lang}\n key=\"name_${value}_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n `;\n })}\n </x-choice>\n </x-group>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n }\n\n private __renderRangePreset() {\n const options = [\n [\n { value: '0', label: 'preset_previous_quarter', ...getPreviousQuarter() },\n { value: '1', label: 'preset_previous_month', ...getPreviousMonth() },\n { value: '2', label: 'preset_previous_year', ...getPreviousYear() },\n ],\n [\n { value: '3', label: 'preset_this_quarter', ...getCurrentQuarter() },\n { value: '4', label: 'preset_this_month', ...getCurrentMonth() },\n { value: '5', label: 'preset_this_year', ...getCurrentYear() },\n ],\n [\n { value: '6', label: 'preset_last_365_days', ...getLast365Days() },\n { value: '7', label: 'preset_last_30_days', ...getLast30Days() },\n ],\n ];\n\n const currentOption = options.flat(1).find(option => {\n const { datetime_end: end, datetime_start: start } = this.form;\n return (\n start && end && toAPIDateTime(option.start) === start && toAPIDateTime(option.end) === end\n );\n });\n\n const renderer = (root: Element) => {\n const custom = html`<vaadin-item value=\"custom\">${this.t('preset_custom')}</vaadin-item>`;\n const separator = html`<hr />`;\n const predefined = options.map(group => {\n const items = group.map(({ value, label }) => {\n return html`<vaadin-item value=${value}>${this.t(label)}</vaadin-item>`;\n });\n\n return html`${items}${separator}`;\n });\n\n if (!root.firstElementChild) root.appendChild(document.createElement('vaadin-list-box'));\n render(html`${predefined}${custom}`, root.firstElementChild as Element);\n };\n\n return html`\n <div>\n <vaadin-select\n data-testid=\"range:preset\"\n label=${this.t('preset')}\n class=\"w-full -mt-m -mb-xs\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}\n ?readonly=${this.readonlySelector.matches('range', true)}\n .value=${live(currentOption?.value ?? 'custom')}\n .renderer=${renderer}\n @change=${(evt: CustomEvent) => {\n const select = evt.currentTarget as SelectElement;\n const option = options.flat(1).find(option => option.value === select.value);\n\n if (option) {\n this.edit({\n datetime_start: toAPIDateTime(option.start),\n datetime_end: toAPIDateTime(option.end),\n });\n }\n }}\n >\n </vaadin-select>\n </div>\n `;\n }\n\n private __renderRangeDateTimePicker(type: 'start' | 'end') {\n const field = type === 'end' ? 'datetime_end' : 'datetime_start';\n const error = this.errors.find(error => error.startsWith(`${field}_`));\n const value = this.form[field as keyof Data] as string;\n\n return html`\n <vaadin-date-time-picker\n date-placeholder=${this.t('select_date')}\n time-placeholder=${this.t('select_time')}\n error-message=${ifDefined(error ? this.t(error) : undefined)}\n data-testid=\"range:${type}\"\n class=\"w-full\"\n label=${this.t(type)}\n step=\"1\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}\n ?readonly=${this.readonlySelector.matches('range', true)}\n .checkValidity=${() => !error}\n .value=${value ? toDateTimePickerValue(value) : ''}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.submit()}\n @change=${(evt: CustomEvent) => {\n const picker = evt.currentTarget as DateTimePicker;\n this.edit({ [field]: picker.value });\n }}\n >\n </vaadin-date-time-picker>\n `;\n }\n\n private __renderRangeDatePicker(type: 'start' | 'end') {\n const field = type === 'end' ? 'datetime_end' : 'datetime_start';\n const error = this.errors.find(error => error.startsWith(`${field}_`));\n const value = this.form[field as keyof Data] as string;\n\n return html`\n <vaadin-date-picker\n error-message=${ifDefined(error ? this.t(error) : undefined)}\n placeholder=${this.t('select_date')}\n data-testid=\"range:${type}\"\n class=\"w-full\"\n label=${this.t(type)}\n step=\"1\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}\n ?readonly=${this.readonlySelector.matches('range', true)}\n .checkValidity=${() => !error}\n .value=${value ? toDatePickerValue(value) : ''}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.submit()}\n @change=${(evt: CustomEvent) => {\n const picker = evt.currentTarget as DateTimePicker;\n const time = type === 'end' ? '23:59:59' : '00:00:00';\n\n this.edit({ [field]: `${picker.value}T${time}` });\n }}\n >\n </vaadin-date-picker>\n `;\n }\n\n private __renderRange() {\n const renderer = this.__showRangeTime\n ? this.__renderRangeDateTimePicker\n : this.__renderRangeDatePicker;\n\n return html`\n <div data-testid=\"range\">\n ${this.renderTemplateOrSlot('range:before')}\n\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"range\" ns=${this.ns}></foxy-i18n>\n\n <div\n style=\"--lumo-border-radius: var(--lumo-border-radius-s)\"\n class=\"p-m grid gap-m ${this.__showRangeTime ? 'grid-cols-1' : 'sm-grid-cols-2'}\"\n >\n <div class=${this.__showRangeTime ? 'col-span-1' : 'sm-col-span-2'}>\n ${this.__renderRangePreset()}\n </div>\n\n ${renderer.call(this, 'start')} ${renderer.call(this, 'end')}\n\n <vaadin-checkbox\n data-testid=\"range:toggle\"\n class=\"-my-xs w-full ${this.__showRangeTime ? 'col-span-1' : 'sm-col-span-2'}\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}\n ?checked=${this.__showRangeTime}\n @change=${(evt: CustomEvent) => {\n const checkbox = evt.currentTarget as CheckboxElement;\n this.__showRangeTime = checkbox.checked;\n }}\n >\n <foxy-i18n lang=${this.lang} key=\"use_precise_time\" ns=${this.ns}></foxy-i18n>\n </vaadin-checkbox>\n </div>\n </x-group>\n\n ${this.renderTemplateOrSlot('range:after')}\n </div>\n `;\n }\n\n private __renderTimestamps() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n\n <x-property-table\n data-testid=\"timestamps\"\n .items=${(['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }))}\n >\n </x-property-table>\n\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n }\n\n private __renderCreate() {\n const isCleanTemplateInvalid = this.in({ idle: { template: { clean: 'invalid' } } });\n const isDirtyTemplateInvalid = this.in({ idle: { template: { dirty: 'invalid' } } });\n const isCleanSnapshotInvalid = this.in({ idle: { snapshot: { clean: 'invalid' } } });\n const isDirtySnapshotInvalid = this.in({ idle: { snapshot: { dirty: 'invalid' } } });\n const isTemplateInvalid = isCleanTemplateInvalid || isDirtyTemplateInvalid;\n const isSnaphotInvalid = isCleanSnapshotInvalid || isDirtySnapshotInvalid;\n const isInvalid = isTemplateInvalid || isSnaphotInvalid;\n const isIdle = this.in('idle');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('create:before')}\n\n <vaadin-button\n data-testid=\"create\"\n class=\"w-full\"\n theme=\"primary success\"\n ?disabled=${!isIdle || isInvalid || this.disabledSelector.matches('create', true)}\n @click=${this.submit}\n >\n <foxy-i18n ns=${this.ns} key=\"create\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('create:after')}\n </div>\n `;\n }\n\n private __renderDelete() {\n return html`\n <div>\n <foxy-internal-confirm-dialog\n data-testid=\"confirm\"\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.delete()}\n >\n </foxy-internal-confirm-dialog>\n\n ${this.renderTemplateOrSlot('delete:before')}\n\n <vaadin-button\n data-testid=\"delete\"\n theme=\"error\"\n class=\"w-full\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('delete', true)}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n ns=${this.ns} key=\"delete\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('delete:after')}\n </div>\n `;\n }\n}\n"]}
|
|
@@ -1,23 +1,175 @@
|
|
|
1
1
|
import type { PropertyDeclarations } from 'lit-element';
|
|
2
|
+
import type { Data, Templates } from './types';
|
|
2
3
|
import type { TemplateResult } from 'lit-html';
|
|
3
4
|
import type { NucleonV8N } from '../NucleonElement/types';
|
|
4
|
-
import type { Data } from './types';
|
|
5
5
|
import { InternalForm } from '../../internal/InternalForm/InternalForm';
|
|
6
6
|
declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
7
7
|
defaultNS: string;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Form element for store settings (`fx:store`).
|
|
11
|
+
*
|
|
12
|
+
* @slot store-name:before
|
|
13
|
+
* @slot store-name:after
|
|
14
|
+
*
|
|
15
|
+
* @slot logo-url:before
|
|
16
|
+
* @slot logo-url:after
|
|
17
|
+
*
|
|
18
|
+
* @slot store-domain:before
|
|
19
|
+
* @slot store-domain:after
|
|
20
|
+
*
|
|
21
|
+
* @slot store-url:before
|
|
22
|
+
* @slot store-url:after
|
|
23
|
+
*
|
|
24
|
+
* @slot store-email:before
|
|
25
|
+
* @slot store-email:after
|
|
26
|
+
*
|
|
27
|
+
* @slot timezone:before
|
|
28
|
+
* @slot timezone:after
|
|
29
|
+
*
|
|
30
|
+
* @slot store-version-uri:before
|
|
31
|
+
* @slot store-version-uri:after
|
|
32
|
+
*
|
|
33
|
+
* @slot from-email:before
|
|
34
|
+
* @slot from-email:after
|
|
35
|
+
*
|
|
36
|
+
* @slot bcc-on-receipt-email:before
|
|
37
|
+
* @slot bcc-on-receipt-email:after
|
|
38
|
+
*
|
|
39
|
+
* @slot use-email-dns:before
|
|
40
|
+
* @slot use-email-dns:after
|
|
41
|
+
*
|
|
42
|
+
* @slot use-smtp-config:before
|
|
43
|
+
* @slot use-smtp-config:after
|
|
44
|
+
*
|
|
45
|
+
* @slot smtp-config:before
|
|
46
|
+
* @slot smtp-config:after
|
|
47
|
+
*
|
|
48
|
+
* @slot smtp-config-host:before
|
|
49
|
+
* @slot smtp-config-host:after
|
|
50
|
+
*
|
|
51
|
+
* @slot smtp-config-port:before
|
|
52
|
+
* @slot smtp-config-port:after
|
|
53
|
+
*
|
|
54
|
+
* @slot smtp-config-username:before
|
|
55
|
+
* @slot smtp-config-username:after
|
|
56
|
+
*
|
|
57
|
+
* @slot smtp-config-password:before
|
|
58
|
+
* @slot smtp-config-password:after
|
|
59
|
+
*
|
|
60
|
+
* @slot smtp-config-security:before
|
|
61
|
+
* @slot smtp-config-security:after
|
|
62
|
+
*
|
|
63
|
+
* @slot country:before
|
|
64
|
+
* @slot country:after
|
|
65
|
+
*
|
|
66
|
+
* @slot region:before
|
|
67
|
+
* @slot region:after
|
|
68
|
+
*
|
|
69
|
+
* @slot postal-code:before
|
|
70
|
+
* @slot postal-code:after
|
|
71
|
+
*
|
|
72
|
+
* @slot shipping-address-type:before
|
|
73
|
+
* @slot shipping-address-type:after
|
|
74
|
+
*
|
|
75
|
+
* @slot features-multiship:before
|
|
76
|
+
* @slot features-multiship:after
|
|
77
|
+
*
|
|
78
|
+
* @slot require-signed-shipping-rates:before
|
|
79
|
+
* @slot require-signed-shipping-rates:after
|
|
80
|
+
*
|
|
81
|
+
* @slot language:before
|
|
82
|
+
* @slot language:after
|
|
83
|
+
*
|
|
84
|
+
* @slot locale-code:before
|
|
85
|
+
* @slot locale-code:after
|
|
86
|
+
*
|
|
87
|
+
* @slot currency-style:before
|
|
88
|
+
* @slot currency-style:after
|
|
89
|
+
*
|
|
90
|
+
* @slot custom-display-id-config:before
|
|
91
|
+
* @slot custom-display-id-config:after
|
|
92
|
+
*
|
|
93
|
+
* @slot receipt-continue-url:before
|
|
94
|
+
* @slot receipt-continue-url:after
|
|
95
|
+
*
|
|
96
|
+
* @slot app-session-time:before
|
|
97
|
+
* @slot app-session-time:after
|
|
98
|
+
*
|
|
99
|
+
* @slot products-require-expires-property:before
|
|
100
|
+
* @slot products-require-expires-property:after
|
|
101
|
+
*
|
|
102
|
+
* @slot use-cart-validation:before
|
|
103
|
+
* @slot use-cart-validation:after
|
|
104
|
+
*
|
|
105
|
+
* @slot checkout-type:before
|
|
106
|
+
* @slot checkout-type:after
|
|
107
|
+
*
|
|
108
|
+
* @slot customer-password-hash-type:before
|
|
109
|
+
* @slot customer-password-hash-type:after
|
|
110
|
+
*
|
|
111
|
+
* @slot customer-password-hash-config:before
|
|
112
|
+
* @slot customer-password-hash-config:after
|
|
113
|
+
*
|
|
114
|
+
* @slot unified-order-entry-password:before
|
|
115
|
+
* @slot unified-order-entry-password:after
|
|
116
|
+
*
|
|
117
|
+
* @slot single-sign-on-url:before
|
|
118
|
+
* @slot single-sign-on-url:after
|
|
119
|
+
*
|
|
120
|
+
* @slot webhook-url:before
|
|
121
|
+
* @slot webhook-url:after
|
|
122
|
+
*
|
|
123
|
+
* @slot webhook-key-cart-signing:before
|
|
124
|
+
* @slot webhook-key-cart-signing:after
|
|
125
|
+
*
|
|
126
|
+
* @slot webhook-key-xml-datafeed:before
|
|
127
|
+
* @slot webhook-key-xml-datafeed:after
|
|
128
|
+
*
|
|
129
|
+
* @slot webhook-key-api-legacy:before
|
|
130
|
+
* @slot webhook-key-api-legacy:after
|
|
131
|
+
*
|
|
132
|
+
* @slot webhook-key-sso:before
|
|
133
|
+
* @slot webhook-key-sso:after
|
|
134
|
+
*
|
|
135
|
+
* @slot is-maintenance-mode:before
|
|
136
|
+
* @slot is-maintenance-mode:after
|
|
137
|
+
*
|
|
138
|
+
* @slot timestamps:before
|
|
139
|
+
* @slot timestamps:after
|
|
140
|
+
*
|
|
141
|
+
* @slot create:before
|
|
142
|
+
* @slot create:after
|
|
143
|
+
*
|
|
144
|
+
* @slot delete:before
|
|
145
|
+
* @slot delete:after
|
|
146
|
+
*
|
|
147
|
+
* @element foxy-store-form
|
|
148
|
+
* @since 1.21.0
|
|
149
|
+
*/
|
|
9
150
|
export declare class StoreForm extends Base<Data> {
|
|
10
151
|
static get properties(): PropertyDeclarations;
|
|
11
152
|
static get v8n(): NucleonV8N<Data>;
|
|
153
|
+
/** URL of the `fx:customer_password_hash_types` property helper resource. */
|
|
12
154
|
customerPasswordHashTypes: string | null;
|
|
155
|
+
/** URL of the `fx:shipping_address_types` property helper resource. */
|
|
13
156
|
shippingAddressTypes: string | null;
|
|
157
|
+
/** URL of the `fx:store_versions` property helper resource. */
|
|
14
158
|
storeVersions: string | null;
|
|
159
|
+
/** URL of the `fx:checkout_types` property helper resource. */
|
|
15
160
|
checkoutTypes: string | null;
|
|
161
|
+
/** URL of the `fx:locale_codes` property helper resource. */
|
|
16
162
|
localeCodes: string | null;
|
|
163
|
+
/** URL of the `fx:languages` property helper resource. */
|
|
17
164
|
languages: string | null;
|
|
165
|
+
/** URL of the `fx:timezones` property helper resource. */
|
|
18
166
|
timezones: string | null;
|
|
167
|
+
/** URL of the `fx:countries` property helper resource. */
|
|
19
168
|
countries: string | null;
|
|
169
|
+
/** URL of the `fx:regions` property helper resource. */
|
|
20
170
|
regions: string | null;
|
|
171
|
+
/** Template render functions mapped to their name. */
|
|
172
|
+
templates: Templates;
|
|
21
173
|
private __singleCheckboxGroupOptions;
|
|
22
174
|
private __appSessionTimeOptions;
|
|
23
175
|
private __getStoreEmailValue;
|
|
@@ -7,18 +7,170 @@ import { html } from 'lit-html';
|
|
|
7
7
|
import cloneDeep from 'lodash-es/cloneDeep';
|
|
8
8
|
const NS = 'store-form';
|
|
9
9
|
const Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));
|
|
10
|
+
/**
|
|
11
|
+
* Form element for store settings (`fx:store`).
|
|
12
|
+
*
|
|
13
|
+
* @slot store-name:before
|
|
14
|
+
* @slot store-name:after
|
|
15
|
+
*
|
|
16
|
+
* @slot logo-url:before
|
|
17
|
+
* @slot logo-url:after
|
|
18
|
+
*
|
|
19
|
+
* @slot store-domain:before
|
|
20
|
+
* @slot store-domain:after
|
|
21
|
+
*
|
|
22
|
+
* @slot store-url:before
|
|
23
|
+
* @slot store-url:after
|
|
24
|
+
*
|
|
25
|
+
* @slot store-email:before
|
|
26
|
+
* @slot store-email:after
|
|
27
|
+
*
|
|
28
|
+
* @slot timezone:before
|
|
29
|
+
* @slot timezone:after
|
|
30
|
+
*
|
|
31
|
+
* @slot store-version-uri:before
|
|
32
|
+
* @slot store-version-uri:after
|
|
33
|
+
*
|
|
34
|
+
* @slot from-email:before
|
|
35
|
+
* @slot from-email:after
|
|
36
|
+
*
|
|
37
|
+
* @slot bcc-on-receipt-email:before
|
|
38
|
+
* @slot bcc-on-receipt-email:after
|
|
39
|
+
*
|
|
40
|
+
* @slot use-email-dns:before
|
|
41
|
+
* @slot use-email-dns:after
|
|
42
|
+
*
|
|
43
|
+
* @slot use-smtp-config:before
|
|
44
|
+
* @slot use-smtp-config:after
|
|
45
|
+
*
|
|
46
|
+
* @slot smtp-config:before
|
|
47
|
+
* @slot smtp-config:after
|
|
48
|
+
*
|
|
49
|
+
* @slot smtp-config-host:before
|
|
50
|
+
* @slot smtp-config-host:after
|
|
51
|
+
*
|
|
52
|
+
* @slot smtp-config-port:before
|
|
53
|
+
* @slot smtp-config-port:after
|
|
54
|
+
*
|
|
55
|
+
* @slot smtp-config-username:before
|
|
56
|
+
* @slot smtp-config-username:after
|
|
57
|
+
*
|
|
58
|
+
* @slot smtp-config-password:before
|
|
59
|
+
* @slot smtp-config-password:after
|
|
60
|
+
*
|
|
61
|
+
* @slot smtp-config-security:before
|
|
62
|
+
* @slot smtp-config-security:after
|
|
63
|
+
*
|
|
64
|
+
* @slot country:before
|
|
65
|
+
* @slot country:after
|
|
66
|
+
*
|
|
67
|
+
* @slot region:before
|
|
68
|
+
* @slot region:after
|
|
69
|
+
*
|
|
70
|
+
* @slot postal-code:before
|
|
71
|
+
* @slot postal-code:after
|
|
72
|
+
*
|
|
73
|
+
* @slot shipping-address-type:before
|
|
74
|
+
* @slot shipping-address-type:after
|
|
75
|
+
*
|
|
76
|
+
* @slot features-multiship:before
|
|
77
|
+
* @slot features-multiship:after
|
|
78
|
+
*
|
|
79
|
+
* @slot require-signed-shipping-rates:before
|
|
80
|
+
* @slot require-signed-shipping-rates:after
|
|
81
|
+
*
|
|
82
|
+
* @slot language:before
|
|
83
|
+
* @slot language:after
|
|
84
|
+
*
|
|
85
|
+
* @slot locale-code:before
|
|
86
|
+
* @slot locale-code:after
|
|
87
|
+
*
|
|
88
|
+
* @slot currency-style:before
|
|
89
|
+
* @slot currency-style:after
|
|
90
|
+
*
|
|
91
|
+
* @slot custom-display-id-config:before
|
|
92
|
+
* @slot custom-display-id-config:after
|
|
93
|
+
*
|
|
94
|
+
* @slot receipt-continue-url:before
|
|
95
|
+
* @slot receipt-continue-url:after
|
|
96
|
+
*
|
|
97
|
+
* @slot app-session-time:before
|
|
98
|
+
* @slot app-session-time:after
|
|
99
|
+
*
|
|
100
|
+
* @slot products-require-expires-property:before
|
|
101
|
+
* @slot products-require-expires-property:after
|
|
102
|
+
*
|
|
103
|
+
* @slot use-cart-validation:before
|
|
104
|
+
* @slot use-cart-validation:after
|
|
105
|
+
*
|
|
106
|
+
* @slot checkout-type:before
|
|
107
|
+
* @slot checkout-type:after
|
|
108
|
+
*
|
|
109
|
+
* @slot customer-password-hash-type:before
|
|
110
|
+
* @slot customer-password-hash-type:after
|
|
111
|
+
*
|
|
112
|
+
* @slot customer-password-hash-config:before
|
|
113
|
+
* @slot customer-password-hash-config:after
|
|
114
|
+
*
|
|
115
|
+
* @slot unified-order-entry-password:before
|
|
116
|
+
* @slot unified-order-entry-password:after
|
|
117
|
+
*
|
|
118
|
+
* @slot single-sign-on-url:before
|
|
119
|
+
* @slot single-sign-on-url:after
|
|
120
|
+
*
|
|
121
|
+
* @slot webhook-url:before
|
|
122
|
+
* @slot webhook-url:after
|
|
123
|
+
*
|
|
124
|
+
* @slot webhook-key-cart-signing:before
|
|
125
|
+
* @slot webhook-key-cart-signing:after
|
|
126
|
+
*
|
|
127
|
+
* @slot webhook-key-xml-datafeed:before
|
|
128
|
+
* @slot webhook-key-xml-datafeed:after
|
|
129
|
+
*
|
|
130
|
+
* @slot webhook-key-api-legacy:before
|
|
131
|
+
* @slot webhook-key-api-legacy:after
|
|
132
|
+
*
|
|
133
|
+
* @slot webhook-key-sso:before
|
|
134
|
+
* @slot webhook-key-sso:after
|
|
135
|
+
*
|
|
136
|
+
* @slot is-maintenance-mode:before
|
|
137
|
+
* @slot is-maintenance-mode:after
|
|
138
|
+
*
|
|
139
|
+
* @slot timestamps:before
|
|
140
|
+
* @slot timestamps:after
|
|
141
|
+
*
|
|
142
|
+
* @slot create:before
|
|
143
|
+
* @slot create:after
|
|
144
|
+
*
|
|
145
|
+
* @slot delete:before
|
|
146
|
+
* @slot delete:after
|
|
147
|
+
*
|
|
148
|
+
* @element foxy-store-form
|
|
149
|
+
* @since 1.21.0
|
|
150
|
+
*/
|
|
10
151
|
export class StoreForm extends Base {
|
|
11
152
|
constructor() {
|
|
12
153
|
super(...arguments);
|
|
154
|
+
/** URL of the `fx:customer_password_hash_types` property helper resource. */
|
|
13
155
|
this.customerPasswordHashTypes = null;
|
|
156
|
+
/** URL of the `fx:shipping_address_types` property helper resource. */
|
|
14
157
|
this.shippingAddressTypes = null;
|
|
158
|
+
/** URL of the `fx:store_versions` property helper resource. */
|
|
15
159
|
this.storeVersions = null;
|
|
160
|
+
/** URL of the `fx:checkout_types` property helper resource. */
|
|
16
161
|
this.checkoutTypes = null;
|
|
162
|
+
/** URL of the `fx:locale_codes` property helper resource. */
|
|
17
163
|
this.localeCodes = null;
|
|
164
|
+
/** URL of the `fx:languages` property helper resource. */
|
|
18
165
|
this.languages = null;
|
|
166
|
+
/** URL of the `fx:timezones` property helper resource. */
|
|
19
167
|
this.timezones = null;
|
|
168
|
+
/** URL of the `fx:countries` property helper resource. */
|
|
20
169
|
this.countries = null;
|
|
170
|
+
/** URL of the `fx:regions` property helper resource. */
|
|
21
171
|
this.regions = null;
|
|
172
|
+
/** Template render functions mapped to their name. */
|
|
173
|
+
this.templates = {};
|
|
22
174
|
this.__singleCheckboxGroupOptions = [{ label: 'option_checked', value: 'checked' }];
|
|
23
175
|
this.__appSessionTimeOptions = [
|
|
24
176
|
{ value: 's', label: 'second' },
|
|
@@ -167,19 +319,19 @@ export class StoreForm extends Base {
|
|
|
167
319
|
({ logo_url: v }) => !v || v.length <= 100 || 'logo-url:v8n_too_long',
|
|
168
320
|
({ webhook_url: v, use_webhook }) => !use_webhook || !!v || 'webhook-url:v8n_required',
|
|
169
321
|
({ webhook_url: v, use_webhook }) => {
|
|
170
|
-
return !use_webhook ||
|
|
322
|
+
return !use_webhook || !v || v.length <= 300 || 'webhook-url:v8n_too_long';
|
|
171
323
|
},
|
|
172
324
|
({ webhook_key: v, use_webhook: on, use_cart_validation: hmac }) => {
|
|
173
325
|
return (!on && !hmac) || !!v || 'webhook-key:v8n_required';
|
|
174
326
|
},
|
|
175
|
-
({
|
|
176
|
-
return (!on && !hmac) ||
|
|
327
|
+
({ webhook_key: v, use_webhook: on, use_cart_validation: hmac }) => {
|
|
328
|
+
return (!on && !hmac) || !v || v.length <= 200 || 'webhook-key:v8n_too_long';
|
|
177
329
|
},
|
|
178
330
|
({ single_sign_on_url: v, use_single_sign_on: on }) => {
|
|
179
331
|
return !on || !!v || 'single-sign-on-url:v8n_required';
|
|
180
332
|
},
|
|
181
333
|
({ single_sign_on_url: v, use_single_sign_on: on }) => {
|
|
182
|
-
return !on ||
|
|
334
|
+
return !on || !v || v.length <= 300 || 'single-sign-on-url:v8n_too_long';
|
|
183
335
|
},
|
|
184
336
|
({ customer_password_hash_config: v }) => {
|
|
185
337
|
return !v || String(v).length <= 100 || 'customer-password-hash-config:v8n_too_long';
|
|
@@ -535,8 +687,9 @@ export class StoreForm extends Base {
|
|
|
535
687
|
const explainerKey = `maintenance_mode_${isActive ? 'on' : 'off'}_explainer`;
|
|
536
688
|
return html `
|
|
537
689
|
<div
|
|
690
|
+
data-testid="is-maintenance-mode"
|
|
538
691
|
class=${classMap({
|
|
539
|
-
'rounded
|
|
692
|
+
'rounded leading-s text-s sm-col-span-2': true,
|
|
540
693
|
'text-tertiary': !isActive,
|
|
541
694
|
'text-error': isActive,
|
|
542
695
|
})}
|
|
@@ -546,6 +699,7 @@ export class StoreForm extends Base {
|
|
|
546
699
|
<vaadin-button
|
|
547
700
|
theme="tertiary small ${isActive ? 'contrast' : ''}"
|
|
548
701
|
class="p-0"
|
|
702
|
+
?disabled=${this.disabledSelector.matches('is-maintenance-mode', true)}
|
|
549
703
|
@click=${() => {
|
|
550
704
|
this.edit({ is_maintenance_mode: !this.form.is_maintenance_mode });
|
|
551
705
|
this.submit();
|
|
@@ -575,20 +729,23 @@ export class StoreForm extends Base {
|
|
|
575
729
|
.map(v => Number(Boolean(v)))
|
|
576
730
|
.join('');
|
|
577
731
|
const selectionIndex = map[selectionCode];
|
|
732
|
+
const isDisabled = this.disabledSelector.matches('currency-style', true);
|
|
733
|
+
const isReadonly = this.readonlySelector.matches('currency-style', true);
|
|
578
734
|
return html `
|
|
579
|
-
<div
|
|
580
|
-
|
|
581
|
-
>
|
|
582
|
-
<foxy-i18n infer="" class="font-medium text-s" key="currency_style_label"> </foxy-i18n>
|
|
735
|
+
<div data-testid="currency-style">
|
|
736
|
+
${this.renderTemplateOrSlot('currency-style:before')}
|
|
583
737
|
|
|
584
738
|
<div
|
|
585
|
-
class="grid grid-cols-
|
|
586
|
-
style="gap: 1px; padding: 1px; border-radius: calc(var(--lumo-border-radius-m) + 1px)"
|
|
739
|
+
class="grid grid-cols-1 gap-xs transition-colors text-secondary hover-text-body sm-col-span-2"
|
|
587
740
|
>
|
|
588
|
-
|
|
741
|
+
<foxy-i18n infer="" class="font-medium text-s" key="currency_style_label"></foxy-i18n>
|
|
742
|
+
|
|
743
|
+
<div class="grid grid-cols-3 bg-contrast-10 rounded" style="gap: 1px; padding: 1px">
|
|
744
|
+
${['12.34', 'USD 12.34', '$12.34', '12', 'USD 12', '$12'].map((example, index) => {
|
|
589
745
|
return html `
|
|
590
|
-
|
|
591
|
-
|
|
746
|
+
<label
|
|
747
|
+
style="--lumo-border-radius: calc(var(--lumo-border-radius-m) - 1px)"
|
|
748
|
+
class=${classMap({
|
|
592
749
|
'relative z-0 px-s h-m flex items-center transition-colors': true,
|
|
593
750
|
'hover-cursor-pointer': true,
|
|
594
751
|
'focus-within-z-10 focus-within-ring-2 focus-within-ring-primary-50': true,
|
|
@@ -599,15 +756,17 @@ export class StoreForm extends Base {
|
|
|
599
756
|
'rounded-bl': index === 3,
|
|
600
757
|
'rounded-br': index === 5,
|
|
601
758
|
})}
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
759
|
+
>
|
|
760
|
+
<span class="font-medium font-tnum">${example}</span>
|
|
761
|
+
<input
|
|
762
|
+
class="sr-only"
|
|
763
|
+
value=${index}
|
|
764
|
+
type="radio"
|
|
765
|
+
name="currency-style"
|
|
766
|
+
?checked=${index === selectionIndex}
|
|
767
|
+
?disabled=${isDisabled}
|
|
768
|
+
?readonly=${isReadonly}
|
|
769
|
+
@change=${() => {
|
|
611
770
|
const set = Object.entries(map).find(v => v[1] === index)[0];
|
|
612
771
|
this.edit({
|
|
613
772
|
hide_currency_symbol: Boolean(Number(set[0])),
|
|
@@ -615,13 +774,16 @@ export class StoreForm extends Base {
|
|
|
615
774
|
use_international_currency_symbol: Boolean(Number(set[2])),
|
|
616
775
|
});
|
|
617
776
|
}}
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
777
|
+
/>
|
|
778
|
+
</label>
|
|
779
|
+
`;
|
|
621
780
|
})}
|
|
781
|
+
</div>
|
|
782
|
+
|
|
783
|
+
<foxy-i18n infer="" class="text-xs" key="currency_style_helper_text"></foxy-i18n>
|
|
622
784
|
</div>
|
|
623
785
|
|
|
624
|
-
|
|
786
|
+
${this.renderTemplateOrSlot('currency-style:after')}
|
|
625
787
|
</div>
|
|
626
788
|
`;
|
|
627
789
|
}
|
|
@@ -723,6 +885,7 @@ export class StoreForm extends Base {
|
|
|
723
885
|
${config.start && config.length && startAsInt / 10 <= numericLength
|
|
724
886
|
? html `
|
|
725
887
|
<table
|
|
888
|
+
data-testid="custom-display-id-config-examples"
|
|
726
889
|
style="font-family: monospace"
|
|
727
890
|
class="col-span-2 text-xs text-secondary whitespace-nowrap"
|
|
728
891
|
>
|
|
@@ -830,6 +993,7 @@ export class StoreForm extends Base {
|
|
|
830
993
|
${config.start && config.length && startAsInt / 10 <= numericLength
|
|
831
994
|
? html `
|
|
832
995
|
<table
|
|
996
|
+
data-testid="custom-display-id-config-transaction-journal-entries-examples"
|
|
833
997
|
style="font-family: monospace"
|
|
834
998
|
class="col-span-2 text-xs text-secondary whitespace-nowrap"
|
|
835
999
|
>
|