@foxy.io/elements 1.18.0-beta.8 → 1.19.0
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 +85 -3
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-api-browser.js +3 -3
- 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-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-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.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +15 -15
- package/dist/cdn/foxy-customer.js +86 -5
- 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-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-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-item-card.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-nucleon-element.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-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +5 -5
- package/dist/cdn/foxy-reports-table.js +6 -6
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +2 -2
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +4 -4
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-swipe-actions.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-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-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-99065f2a.js → shared-0eb966c5.js} +1 -1
- package/dist/cdn/{shared-75ec4e1a.js → shared-195fd5af.js} +1 -1
- package/dist/cdn/{shared-3ddbe8c9.js → shared-1bbd9b73.js} +1 -1
- package/dist/cdn/shared-2061be9a.js +1 -0
- package/dist/cdn/{shared-26502fca.js → shared-2188d5f7.js} +1 -1
- package/dist/cdn/{shared-f3b35364.js → shared-22ba9566.js} +1 -1
- package/dist/cdn/{shared-4ba52733.js → shared-26ce8d23.js} +1 -1
- package/dist/cdn/{shared-7c5cfe1e.js → shared-2bdd4f74.js} +22 -12
- package/dist/cdn/{shared-71762c29.js → shared-31c43743.js} +1 -1
- package/dist/cdn/{shared-de25e8f0.js → shared-322e7efb.js} +5 -5
- package/dist/cdn/shared-39f2c345.js +1 -0
- package/dist/cdn/{shared-97a3aa5b.js → shared-3b2dedf9.js} +1 -1
- package/dist/cdn/shared-45feee83.js +1 -0
- package/dist/cdn/{shared-02f2d418.js → shared-4e201e09.js} +1 -1
- package/dist/cdn/{shared-f4b47b4a.js → shared-5c3a88d2.js} +1 -1
- package/dist/cdn/shared-62169210.js +29 -0
- package/dist/cdn/shared-63685d2e.js +302 -0
- package/dist/cdn/{shared-ecdf2d11.js → shared-6d104622.js} +1 -1
- package/dist/cdn/shared-7474af47.js +1 -0
- package/dist/cdn/shared-7c612495.js +1 -0
- package/dist/cdn/{shared-bfca826a.js → shared-7c8bb60c.js} +1 -1
- package/dist/cdn/shared-8d4fef94.js +1 -0
- package/dist/cdn/{shared-ad040ad4.js → shared-8d937ae4.js} +3 -3
- package/dist/cdn/{shared-eb344bd5.js → shared-8e9a3bbb.js} +1 -1
- package/dist/cdn/shared-92327224.js +15 -0
- package/dist/cdn/{shared-d3bf9ac0.js → shared-9803aa7c.js} +2 -2
- package/dist/cdn/{shared-84b5d8f0.js → shared-98497473.js} +1 -1
- package/dist/cdn/{shared-11c2efc8.js → shared-99940888.js} +1 -1
- package/dist/cdn/{shared-5fd9d45d.js → shared-a052131e.js} +1 -1
- package/dist/cdn/{shared-d37049e9.js → shared-a0836fa5.js} +1 -1
- package/dist/cdn/{shared-d519a301.js → shared-a0c6a159.js} +2 -2
- package/dist/cdn/shared-a5e52b8f.js +64 -0
- package/dist/cdn/shared-ac44429d.js +1 -0
- package/dist/cdn/{shared-cf2b9cc3.js → shared-ae415a98.js} +1 -1
- package/dist/cdn/{shared-8403766d.js → shared-b3df4f38.js} +1 -1
- package/dist/cdn/{shared-16aade17.js → shared-baf79b0b.js} +1 -1
- package/dist/cdn/{shared-7976580a.js → shared-bb686fc6.js} +1 -1
- package/dist/cdn/{shared-db118e3e.js → shared-bf6fb415.js} +1 -1
- package/dist/cdn/shared-c309e0ef.js +1 -0
- package/dist/cdn/{shared-90119584.js → shared-c5c60417.js} +1 -1
- package/dist/cdn/shared-c8677ba3.js +1 -0
- package/dist/cdn/{shared-94f3042a.js → shared-c89ba319.js} +1 -1
- package/dist/cdn/{shared-76daf1fb.js → shared-d28ac9dc.js} +1 -1
- package/dist/cdn/{shared-df26adf5.js → shared-d699348f.js} +2 -2
- package/dist/cdn/shared-dc1c6edd.js +1 -0
- package/dist/cdn/{shared-403db7b9.js → shared-dc23b751.js} +1 -1
- package/dist/cdn/shared-dc3ffd38.js +1 -0
- package/dist/cdn/{shared-7f33a83a.js → shared-dc73b9a5.js} +1 -1
- package/dist/cdn/{shared-24fdefca.js → shared-dd6d3c18.js} +1 -1
- package/dist/cdn/shared-dda2a74d.js +1 -0
- package/dist/cdn/{shared-0479553e.js → shared-e1c1e8e2.js} +1 -1
- package/dist/cdn/{shared-fe555bf4.js → shared-e9a4a204.js} +1 -1
- package/dist/cdn/{shared-2c0e6413.js → shared-f1317609.js} +1 -1
- package/dist/cdn/{shared-7b72ee7e.js → shared-f84686a8.js} +1 -1
- package/dist/cdn/{shared-e6f3e9f0.js → shared-f9f9ed5b.js} +1 -1
- package/dist/cdn/{shared-e34d2ef1.js → shared-fadcb2e1.js} +1 -1
- package/dist/cdn/translations/customer-portal/de.json +2 -2
- package/dist/cdn/translations/customer-portal/en.json +2 -2
- package/dist/cdn/translations/customer-portal/es.json +2 -2
- package/dist/cdn/translations/customer-portal/nl.json +223 -0
- package/dist/cdn/translations/customer-portal/pl.json +2 -2
- package/dist/cdn/translations/customer-portal/se.json +2 -2
- package/dist/cdn/translations/customer-portal/zh-hk.json +2 -2
- package/dist/cdn/translations/email-template-form/en.json +0 -5
- package/dist/cdn/translations/gift-card-code-form/en.json +0 -32
- package/dist/cdn/translations/gift-card-form/en.json +1 -58
- package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.d.ts +0 -3
- package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js +0 -23
- package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js.map +1 -1
- package/dist/elements/internal/InternalControl/InternalControl.js +2 -3
- package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
- package/dist/elements/internal/InternalEditableControl/InternalEditableControl.d.ts +0 -2
- package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js +4 -6
- package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js.map +1 -1
- package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +1 -1
- package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -1
- package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +1 -1
- package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -1
- package/dist/elements/internal/InternalTextControl/InternalTextControl.js +0 -1
- package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -1
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js +23 -10
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.d.ts +0 -3
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +0 -17
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/index.d.ts +0 -1
- package/dist/elements/public/EmailTemplateForm/index.js +0 -1
- package/dist/elements/public/EmailTemplateForm/index.js.map +1 -1
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +0 -4
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +0 -32
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
- package/dist/elements/public/GiftCardCodeForm/index.d.ts +4 -7
- package/dist/elements/public/GiftCardCodeForm/index.js +4 -7
- package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -1
- package/dist/elements/public/GiftCardForm/GiftCardForm.js +0 -25
- package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
- package/dist/elements/public/GiftCardForm/index.d.ts +2 -1
- package/dist/elements/public/GiftCardForm/index.js +2 -1
- package/dist/elements/public/GiftCardForm/index.js.map +1 -1
- package/dist/elements/public/ItemCard/ItemCard.js +6 -8
- package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
- package/dist/elements/public/NucleonElement/API.js +1 -1
- package/dist/elements/public/NucleonElement/API.js.map +1 -1
- package/dist/elements/public/NucleonElement/NucleonElement.d.ts +1 -2
- package/dist/elements/public/NucleonElement/NucleonElement.js +8 -11
- package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/Input.js +8 -10
- package/dist/elements/public/QueryBuilder/components/Input.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/RangeValue.js +5 -7
- package/dist/elements/public/QueryBuilder/components/RangeValue.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/Select.js +1 -3
- package/dist/elements/public/QueryBuilder/components/Select.js.map +1 -1
- package/dist/elements/public/ShipmentCard/ShipmentCard.js +1 -1
- package/dist/elements/public/ShipmentCard/ShipmentCard.js.map +1 -1
- package/dist/elements/public/ShipmentCard/types.d.ts +16 -2
- package/dist/elements/public/ShipmentCard/types.js.map +1 -1
- package/dist/elements/public/index.d.ts +0 -5
- package/dist/elements/public/index.defined.d.ts +0 -5
- package/dist/elements/public/index.defined.js +0 -5
- package/dist/elements/public/index.defined.js.map +1 -1
- package/dist/elements/public/index.js +0 -5
- package/dist/elements/public/index.js.map +1 -1
- package/dist/mixins/configurable.js +8 -16
- package/dist/mixins/configurable.js.map +1 -1
- package/dist/mixins/inferrable.js +23 -25
- package/dist/mixins/inferrable.js.map +1 -1
- package/dist/mixins/themeable.js +0 -48
- package/dist/mixins/themeable.js.map +1 -1
- package/dist/utils/serialize-date.d.ts +0 -1
- package/dist/utils/serialize-date.js +0 -7
- package/dist/utils/serialize-date.js.map +1 -1
- package/package.json +2 -2
- package/dist/cdn/foxy-email-template-card.js +0 -1
- package/dist/cdn/foxy-gift-card-code-log-card.js +0 -1
- package/dist/cdn/foxy-item-category-card.js +0 -1
- package/dist/cdn/foxy-item-category-form.js +0 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +0 -1
- package/dist/cdn/shared-04c51428.js +0 -1
- package/dist/cdn/shared-1b38c44f.js +0 -29
- package/dist/cdn/shared-1ed709ca.js +0 -82
- package/dist/cdn/shared-2788214c.js +0 -1
- package/dist/cdn/shared-351b4f85.js +0 -150
- package/dist/cdn/shared-39265f55.js +0 -11
- package/dist/cdn/shared-5155696f.js +0 -1
- package/dist/cdn/shared-565feb2f.js +0 -1
- package/dist/cdn/shared-589c6a83.js +0 -1
- package/dist/cdn/shared-61199be1.js +0 -1
- package/dist/cdn/shared-710b5e7f.js +0 -1
- package/dist/cdn/shared-77f4c0b0.js +0 -64
- package/dist/cdn/shared-7a078e85.js +0 -1
- package/dist/cdn/shared-85cd6cfb.js +0 -1
- package/dist/cdn/shared-86d0d927.js +0 -15
- package/dist/cdn/shared-8d7ef22f.js +0 -1
- package/dist/cdn/shared-94a4ab55.js +0 -82
- package/dist/cdn/shared-974bec9a.js +0 -1
- package/dist/cdn/shared-9c176693.js +0 -1
- package/dist/cdn/shared-a7429258.js +0 -169
- package/dist/cdn/shared-b95332ec.js +0 -134
- package/dist/cdn/shared-bc7f58ef.js +0 -1
- package/dist/cdn/shared-be6ec4b3.js +0 -1
- package/dist/cdn/shared-c15f0523.js +0 -1
- package/dist/cdn/shared-c9d1a2cd.js +0 -1
- package/dist/cdn/shared-d97ce3d5.js +0 -1
- package/dist/cdn/shared-ec8a003f.js +0 -1
- package/dist/cdn/shared-ff7a10de.js +0 -1
- package/dist/cdn/translations/email-template-card/en.json +0 -8
- package/dist/cdn/translations/gift-card-code-log-card/en.json +0 -10
- package/dist/cdn/translations/item-category-form/en.json +0 -196
- package/dist/cdn/translations/store-shipping-method-form/en.json +0 -90
- package/dist/elements/internal/InternalCheckboxGroupControl/InternalCheckboxGroupControl.d.ts +0 -17
- package/dist/elements/internal/InternalCheckboxGroupControl/InternalCheckboxGroupControl.js +0 -51
- package/dist/elements/internal/InternalCheckboxGroupControl/InternalCheckboxGroupControl.js.map +0 -1
- package/dist/elements/internal/InternalCheckboxGroupControl/index.d.ts +0 -6
- package/dist/elements/internal/InternalCheckboxGroupControl/index.js +0 -8
- package/dist/elements/internal/InternalCheckboxGroupControl/index.js.map +0 -1
- package/dist/elements/internal/InternalCheckboxGroupControl/types.d.ts +0 -6
- package/dist/elements/internal/InternalCheckboxGroupControl/types.js +0 -2
- package/dist/elements/internal/InternalCheckboxGroupControl/types.js.map +0 -1
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +0 -17
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +0 -57
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +0 -1
- package/dist/elements/internal/InternalSelectControl/index.d.ts +0 -5
- package/dist/elements/internal/InternalSelectControl/index.js +0 -7
- package/dist/elements/internal/InternalSelectControl/index.js.map +0 -1
- package/dist/elements/internal/InternalSelectControl/types.d.ts +0 -6
- package/dist/elements/internal/InternalSelectControl/types.js +0 -2
- package/dist/elements/internal/InternalSelectControl/types.js.map +0 -1
- package/dist/elements/internal/InternalTextAreaControl/InternalTextAreaControl.d.ts +0 -13
- package/dist/elements/internal/InternalTextAreaControl/InternalTextAreaControl.js +0 -40
- package/dist/elements/internal/InternalTextAreaControl/InternalTextAreaControl.js.map +0 -1
- package/dist/elements/internal/InternalTextAreaControl/index.d.ts +0 -4
- package/dist/elements/internal/InternalTextAreaControl/index.js +0 -6
- package/dist/elements/internal/InternalTextAreaControl/index.js.map +0 -1
- package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.d.ts +0 -10
- package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.js +0 -34
- package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.js.map +0 -1
- package/dist/elements/public/EmailTemplateCard/index.d.ts +0 -6
- package/dist/elements/public/EmailTemplateCard/index.js +0 -8
- package/dist/elements/public/EmailTemplateCard/index.js.map +0 -1
- package/dist/elements/public/EmailTemplateCard/types.d.ts +0 -3
- package/dist/elements/public/EmailTemplateCard/types.js +0 -2
- package/dist/elements/public/EmailTemplateCard/types.js.map +0 -1
- package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/InternalGiftCardCodeFormItemControl.d.ts +0 -5
- package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/InternalGiftCardCodeFormItemControl.js +0 -23
- package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/InternalGiftCardCodeFormItemControl.js.map +0 -1
- package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/index.d.ts +0 -6
- package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/index.js +0 -8
- package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/index.js.map +0 -1
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.d.ts +0 -12
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js +0 -108
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js.map +0 -1
- package/dist/elements/public/GiftCardCodeLogCard/index.d.ts +0 -6
- package/dist/elements/public/GiftCardCodeLogCard/index.js +0 -8
- package/dist/elements/public/GiftCardCodeLogCard/index.js.map +0 -1
- package/dist/elements/public/GiftCardCodeLogCard/types.d.ts +0 -3
- package/dist/elements/public/GiftCardCodeLogCard/types.js +0 -2
- package/dist/elements/public/GiftCardCodeLogCard/types.js.map +0 -1
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.d.ts +0 -14
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.js +0 -93
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.js.map +0 -1
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.d.ts +0 -6
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.js +0 -8
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.js.map +0 -1
- package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.d.ts +0 -6
- package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js +0 -11
- package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js.map +0 -1
- package/dist/elements/public/ItemCategoryCard/index.d.ts +0 -2
- package/dist/elements/public/ItemCategoryCard/index.js +0 -4
- package/dist/elements/public/ItemCategoryCard/index.js.map +0 -1
- package/dist/elements/public/ItemCategoryCard/types.d.ts +0 -3
- package/dist/elements/public/ItemCategoryCard/types.js +0 -2
- package/dist/elements/public/ItemCategoryCard/types.js.map +0 -1
- package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.d.ts +0 -31
- package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +0 -309
- package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +0 -1
- package/dist/elements/public/ItemCategoryForm/index.d.ts +0 -10
- package/dist/elements/public/ItemCategoryForm/index.js +0 -12
- package/dist/elements/public/ItemCategoryForm/index.js.map +0 -1
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/InternalItemCategoryFormTaxesControl.d.ts +0 -8
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/InternalItemCategoryFormTaxesControl.js +0 -52
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/InternalItemCategoryFormTaxesControl.js.map +0 -1
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/index.d.ts +0 -6
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/index.js +0 -8
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/index.js.map +0 -1
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/InternalItemCategoryFormTaxesControlItem.d.ts +0 -11
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/InternalItemCategoryFormTaxesControlItem.js +0 -85
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/InternalItemCategoryFormTaxesControlItem.js.map +0 -1
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/index.d.ts +0 -5
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/index.js +0 -7
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/index.js.map +0 -1
- package/dist/elements/public/ItemCategoryForm/types.d.ts +0 -3
- package/dist/elements/public/ItemCategoryForm/types.js +0 -2
- package/dist/elements/public/ItemCategoryForm/types.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.d.ts +0 -25
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +0 -197
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/index.d.ts +0 -11
- package/dist/elements/public/StoreShippingMethodForm/index.js +0 -13
- package/dist/elements/public/StoreShippingMethodForm/index.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.d.ts +0 -5
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.js +0 -33
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/index.d.ts +0 -6
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/index.js +0 -8
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/index.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.d.ts +0 -19
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.js +0 -96
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/index.d.ts +0 -5
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/index.js +0 -7
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/index.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.d.ts +0 -17
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.js +0 -45
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/index.d.ts +0 -3
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/index.js +0 -5
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/index.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.d.ts +0 -16
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.js +0 -49
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/index.d.ts +0 -3
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/index.js +0 -5
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/index.js.map +0 -1
- package/dist/elements/public/StoreShippingMethodForm/types.d.ts +0 -5
- package/dist/elements/public/StoreShippingMethodForm/types.js +0 -2
- package/dist/elements/public/StoreShippingMethodForm/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"API.js","sourceRoot":"","sources":["../../../../src/elements/public/NucleonElement/API.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C;;;;;GAKG;AACH,MAAM,OAAO,GAAI,SAAQ,OAAY;IAInC,0FAA0F;IAC1F,YAAY,MAAmB;QAC7B,KAAK,CAAC;YACJ,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B,KAAK,EAAE,CAAC,GAAG,IAAiC,EAAqB,EAAE,CACjE,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACxC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEvF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBACxD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;gBAE7C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE;oBACpC,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI;oBACb,OAAO;oBACP,OAAO;oBACP,MAAM;iBACP,CAAC,CAAC;gBAEH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB;oBAAE,
|
|
1
|
+
{"version":3,"file":"API.js","sourceRoot":"","sources":["../../../../src/elements/public/NucleonElement/API.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C;;;;;GAKG;AACH,MAAM,OAAO,GAAI,SAAQ,OAAY;IAInC,0FAA0F;IAC1F,YAAY,MAAmB;QAC7B,KAAK,CAAC;YACJ,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B,KAAK,EAAE,CAAC,GAAG,IAAiC,EAAqB,EAAE,CACjE,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACxC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEvF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBACxD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;gBAE7C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE;oBACpC,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI;oBACb,OAAO;oBACP,OAAO;oBACP,MAAM;iBACP,CAAC,CAAC;gBAEH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB;oBAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1E,CAAC,CAAC;SACL,CAAC,CAAC;IACL,CAAC;;AA3BD,gFAAgF;AAChE,cAAU,GAAG,UAAU,CAAC","sourcesContent":["import { API as CoreAPI } from '@foxy.io/sdk/core';\nimport { FetchEvent } from './FetchEvent';\n\n/**\n * Universal [API](https://sdk.foxy.dev/classes/_core_index_.api.html) client\n * that dispatches the `fetch` event on an element before each request. It bubbles, crosses\n * shadow DOM boundaries, and if cancelled, the target element will not make the request\n * and instead will wait for a response from `event.respondWith()`.\n */\nexport class API extends CoreAPI<any> {\n /** Instances of this event are dispatched on an element before each request. */\n static readonly FetchEvent = FetchEvent;\n\n /** @param target `EventTarget` to dispatch `fetch` events on (e.g. element or window). */\n constructor(target: EventTarget) {\n super({\n base: new URL(document.baseURI),\n fetch: (...args: Parameters<Window['fetch']>): Promise<Response> =>\n new Promise<Response>((resolve, reject) => {\n const request = typeof args[0] === 'string' ? new API.WHATWGRequest(...args) : args[0];\n\n request.headers.set('Content-Type', 'application/json');\n request.headers.set('FOXY-API-VERSION', '1');\n\n const event = new FetchEvent('fetch', {\n cancelable: true,\n composed: true,\n bubbles: true,\n request,\n resolve,\n reject,\n });\n\n target.dispatchEvent(event);\n if (!event.defaultPrevented) fetch(request).then(resolve).catch(reject);\n }),\n });\n }\n}\n"]}
|
|
@@ -67,7 +67,6 @@ export declare class NucleonElement<TData extends HALJSONResource> extends Nucle
|
|
|
67
67
|
private __fetchEventHandler;
|
|
68
68
|
private __fetchEventQueue;
|
|
69
69
|
private readonly __service;
|
|
70
|
-
constructor();
|
|
71
70
|
/**
|
|
72
71
|
* If network request returns non-2XX code, the entire error response
|
|
73
72
|
* will be available via this getter.
|
|
@@ -161,8 +160,8 @@ export declare class NucleonElement<TData extends HALJSONResource> extends Nucle
|
|
|
161
160
|
protected _sendPatch(edits: Partial<TData>): Promise<TData>;
|
|
162
161
|
/** DELETEs `element.href`, shares response with the Rumour group and returns parsed JSON. */
|
|
163
162
|
protected _sendDelete(): Promise<TData>;
|
|
164
|
-
private get __state();
|
|
165
163
|
private __createService;
|
|
164
|
+
private __destroyService;
|
|
166
165
|
private __createRumour;
|
|
167
166
|
private __destroyRumour;
|
|
168
167
|
private __createServer;
|
|
@@ -18,7 +18,7 @@ import { InferrableMixin } from "../../../mixins/inferrable.js";
|
|
|
18
18
|
*/
|
|
19
19
|
export class NucleonElement extends InferrableMixin(LitElement) {
|
|
20
20
|
constructor() {
|
|
21
|
-
super();
|
|
21
|
+
super(...arguments);
|
|
22
22
|
/**
|
|
23
23
|
* Optional ISO 639-1 code describing the language element content is written in.
|
|
24
24
|
* Changing the `lang` attribute will update the value of this property.
|
|
@@ -57,7 +57,6 @@ export class NucleonElement extends InferrableMixin(LitElement) {
|
|
|
57
57
|
}),
|
|
58
58
|
},
|
|
59
59
|
}));
|
|
60
|
-
this.__createService();
|
|
61
60
|
}
|
|
62
61
|
static get inferredProperties() {
|
|
63
62
|
return [...super.inferredProperties, 'group', 'lang'];
|
|
@@ -65,7 +64,6 @@ export class NucleonElement extends InferrableMixin(LitElement) {
|
|
|
65
64
|
/** @readonly */
|
|
66
65
|
static get properties() {
|
|
67
66
|
return {
|
|
68
|
-
__state: { type: String, reflect: true, attribute: 'state' },
|
|
69
67
|
related: { type: Array },
|
|
70
68
|
parent: { type: String },
|
|
71
69
|
group: { type: String, noAccessor: true },
|
|
@@ -203,8 +201,7 @@ export class NucleonElement extends InferrableMixin(LitElement) {
|
|
|
203
201
|
/** @readonly */
|
|
204
202
|
connectedCallback() {
|
|
205
203
|
super.connectedCallback();
|
|
206
|
-
|
|
207
|
-
this.refresh();
|
|
204
|
+
this.__createService();
|
|
208
205
|
this.__createRumour();
|
|
209
206
|
this.__createServer();
|
|
210
207
|
this.__processFetchEventQueue();
|
|
@@ -212,6 +209,7 @@ export class NucleonElement extends InferrableMixin(LitElement) {
|
|
|
212
209
|
/** @readonly */
|
|
213
210
|
disconnectedCallback() {
|
|
214
211
|
super.disconnectedCallback();
|
|
212
|
+
this.__destroyService();
|
|
215
213
|
this.__destroyRumour();
|
|
216
214
|
this.__destroyServer();
|
|
217
215
|
this.__flushFetchEventQueue('parent element was disconnected');
|
|
@@ -271,16 +269,12 @@ export class NucleonElement extends InferrableMixin(LitElement) {
|
|
|
271
269
|
this.__createRumour();
|
|
272
270
|
return data;
|
|
273
271
|
}
|
|
274
|
-
// this getter is used by LitElement to set the "state" attribute
|
|
275
|
-
get __state() {
|
|
276
|
-
const state = this.__service.state;
|
|
277
|
-
const flags = state.toStrings().reduce((p, c) => [...p, ...c.split('.')], []);
|
|
278
|
-
return [...new Set(flags)].join(' ');
|
|
279
|
-
}
|
|
280
272
|
__createService() {
|
|
281
273
|
this.__service.onTransition(state => {
|
|
282
274
|
if (!state.changed)
|
|
283
275
|
return;
|
|
276
|
+
const flags = state.toStrings().reduce((p, c) => [...p, ...c.split('.')], []);
|
|
277
|
+
this.setAttribute('state', [...new Set(flags)].join(' '));
|
|
284
278
|
this.requestUpdate();
|
|
285
279
|
this.dispatchEvent(new UpdateEvent());
|
|
286
280
|
if (!state.matches('busy'))
|
|
@@ -292,6 +286,9 @@ export class NucleonElement extends InferrableMixin(LitElement) {
|
|
|
292
286
|
});
|
|
293
287
|
this.__service.start();
|
|
294
288
|
}
|
|
289
|
+
__destroyService() {
|
|
290
|
+
this.__service.stop();
|
|
291
|
+
}
|
|
295
292
|
__createRumour() {
|
|
296
293
|
const rumour = NucleonElement.Rumour(this.group);
|
|
297
294
|
this.__unsubscribeFromRumour = rumour.track(update => this.__handleRumourUpdate(update));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NucleonElement.js","sourceRoot":"","sources":["../../../../src/elements/public/NucleonElement/NucleonElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputedElementProperties, HALJSONResource, NucleonMachine, NucleonV8N } from './types';\nimport { LitElement, PropertyDeclarations } from 'lit-element';\nimport { Nucleon, Rumour } from '@foxy.io/sdk/core';\nimport { assign, interpret } from 'xstate';\n\nimport { API } from './API';\nimport { FetchEvent } from './FetchEvent';\nimport { UpdateEvent } from './UpdateEvent';\nimport memoize from 'lodash-es/memoize';\nimport { serveFromCache } from './serveFromCache';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\n/**\n * Base class for custom elements working with remote HAL+JSON resources.\n *\n * @fires NucleonElement#update - Instance of `NucleonElement.UpdateEvent`. Dispatched on an element whenever it changes its state.\n * @fires NucleonElement#fetch - Instance of `NucleonElement.API.FetchEvent`. Emitted before each API request.\n *\n * @element foxy-nucleon\n * @since 1.1.0\n */\nexport class NucleonElement<TData extends HALJSONResource> extends InferrableMixin(LitElement) {\n /**\n * Instances of this event are dispatched on an element whenever it changes its\n * state (e.g. when going from `busy` to `idle` or on `form` data change).\n * This event isn't cancelable, and it does not bubble.\n * @readonly\n */\n static readonly UpdateEvent = UpdateEvent;\n\n /**\n * Creates a tagged [Rumour](https://sdk.foxy.dev/classes/_core_index_.rumour.html)\n * instance if it doesn't exist or returns cached one otherwise. NucleonElements\n * use empty Rumour group by default.\n * @readonly\n */\n static readonly Rumour = memoize<(group: string) => Rumour>(() => new Rumour());\n\n /**\n * Universal [API](https://sdk.foxy.dev/classes/_core_index_.api.html) client\n * that dispatches cancellable `FetchEvent` on an element before each request.\n * @readonly\n */\n static readonly API = API;\n\n static get inferredProperties(): string[] {\n return [...super.inferredProperties, 'group', 'lang'];\n }\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n __state: { type: String, reflect: true, attribute: 'state' },\n related: { type: Array },\n parent: { type: String },\n group: { type: String, noAccessor: true },\n href: { type: String, noAccessor: true },\n lang: { type: String },\n };\n }\n\n /**\n * Array of validation functions. Each function accepts `element.form` and must return\n * either an error code string if form data fails the check or `true` otherwise.\n * Error codes are collected in `element.errors`. Empty by default.\n */\n static get v8n(): NucleonV8N<any> {\n return [];\n }\n\n /**\n * Optional ISO 639-1 code describing the language element content is written in.\n * Changing the `lang` attribute will update the value of this property.\n */\n lang = '';\n\n /**\n * Optional URL of the collection this element's resource belongs to.\n * Changing the `parent` attribute will update the value of this property.\n */\n parent = '';\n\n /**\n * Optional URI list of the related resources. If Rumour encounters a related\n * resource on creation or deletion, it will be reloaded from source.\n */\n related: string[] = [];\n\n private __href = '';\n\n private __group = '';\n\n private __unsubscribeFromRumour!: () => void;\n\n private __fetchEventHandler!: (evt: Event) => void;\n\n private __fetchEventQueue: FetchEvent[] = [];\n\n private readonly __service = interpret(\n (Nucleon.machine as NucleonMachine<TData>).withConfig({\n services: {\n sendDelete: () => this._sendDelete(),\n sendPatch: ({ edits }) => this._sendPatch(edits!),\n sendPost: ({ edits }) => this._sendPost(edits!),\n sendGet: () => this._sendGet(),\n },\n\n actions: {\n validate: assign<Nucleon.Context<TData, string>, Nucleon.Event<TData>>({\n errors: context => {\n const rules = (this.constructor as typeof NucleonElement).v8n;\n const form = { ...context.data, ...context.edits };\n\n return rules\n .map(validate => validate(form))\n .filter(v8nResult => typeof v8nResult === 'string')\n .filter((err, errIndex, errs) => errs.indexOf(err) === errIndex) as string[];\n },\n }),\n },\n })\n );\n\n constructor() {\n super();\n this.__createService();\n }\n\n /**\n * If network request returns non-2XX code, the entire error response\n * will be available via this getter.\n *\n * This property is readonly. Changing failure records via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override error status.\n *\n * @since 1.4.0\n */\n get failure(): Response | null {\n return this.__service.state.context.failure;\n }\n\n /**\n * Array of validation errors returned from `NucleonElement.v8n` checks.\n *\n * This property is readonly. Adding or removing error codes via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override validity status.\n */\n get errors(): string[] {\n return this.__service.state.context.errors;\n }\n\n /**\n * Resource snapshot with edits applied. Empty object if unavailable.\n *\n * This property and its value are readonly. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please use `element.edit({ foo: 'bar' })` instead.\n * If you need to replace the entire data object, consider using `element.data`.\n */\n get form(): Partial<TData> {\n const { data, edits } = this.__service.state.context;\n return { ...data, ...edits } as Partial<TData>;\n }\n\n /**\n * Resource snapshot as-is, no edits applied. Null if unavailable.\n *\n * Returned value is not reactive. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please set the property instead: `element.data = { ...element.data, foo: 'bar' }`.\n * If you're processing user input, consider using `element.form` and `element.edit()` instead.\n */\n get data(): TData | null {\n return this.__service.state.context.data;\n }\n\n set data(data: TData | null) {\n this.__service.send({ type: 'SET_DATA', data });\n this.__href = data?._links.self.href ?? '';\n }\n\n /**\n * Rumour group. Elements in different groups will not share updates. Empty by default.\n * @example element.group = 'my-group'\n */\n get group(): string {\n return this.__group;\n }\n\n set group(value: string) {\n this.__group = value;\n this.__destroyRumour();\n this.__createRumour();\n }\n\n /**\n * Optional URL of the resource to load. Switches element to `idle.template` state if empty (default).\n * @example element.href = 'https://demo.foxycart.com/s/customer/attributes/0'\n */\n get href(): string {\n return this.__href;\n }\n\n set href(value: string) {\n this.__href = value;\n\n if (value) {\n this.__service.send({ type: 'FETCH' });\n } else {\n this.__service.send({ type: 'SET_DATA', data: null });\n }\n }\n\n /**\n * Checks if this element is in the given state.\n * @example element.in({ idle: 'snapshot' })\n */\n in<TStateValue extends Nucleon.State<TData, string>['value']>(\n stateValue: TStateValue\n ): this is this & ComputedElementProperties<TData, TStateValue> {\n return this.__service.state.matches(stateValue);\n }\n\n /**\n * Clears all edits and emits the `update` event.\n * @example element.undo()\n */\n undo(): void {\n this.__service.send({ type: 'UNDO' });\n }\n\n /**\n * Applies an edit to the local resource snapshot or its template and emits the `update` event.\n * @example element.edit({ first_name: 'Alex' })\n */\n edit(data: Partial<TData>): void {\n this.__service.send({ type: 'EDIT', data });\n }\n\n /**\n * Submits the form, updating the resource if href isn't empty or creating it otherwise.\n * Emits multiple `update` events as element state changes. Has no effect on invalid forms.\n * @example element.submit()\n */\n submit(): void {\n this.__service.send({ type: 'SUBMIT' });\n }\n\n /**\n * Sends a DELETE request to `element.href` and clears local data on success.\n * Emits multiple update events as element state changes.\n * @example element.delete()\n */\n delete(): void {\n this.__service.send({ type: 'DELETE' });\n }\n\n /**\n * Fetches data from `element.href` in background, keeping the edits and v8n errors.\n * @example element.refresh()\n */\n refresh(): void {\n this.__service.send({ type: 'REFRESH' });\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n if (this.href) this.refresh();\n\n this.__createRumour();\n this.__createServer();\n this.__processFetchEventQueue();\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.__destroyRumour();\n this.__destroyServer();\n this.__flushFetchEventQueue('parent element was disconnected');\n }\n\n applyInferredProperties(context: Map<string, unknown>): void {\n super.applyInferredProperties(context);\n\n if (this.infer === null) return;\n\n this.group = (context.get('group') as string | undefined) ?? '';\n this.lang = (context.get('lang') as string | undefined) ?? '';\n }\n\n /** Sends API request. Throws an error on non-2XX response. */\n protected async _fetch<TResult = TData>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const response = await new API(this).fetch(...args);\n if (!response.ok) throw response;\n return response.json();\n }\n\n /** POSTs to `element.parent`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPost(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n\n const body = JSON.stringify(edits);\n const data = await this._fetch(this.parent, { body, method: 'POST' });\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n\n rumour.share({ data, related, source: data._links.self.href });\n this.__createRumour();\n\n return data;\n }\n\n /** GETs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendGet(): Promise<TData> {\n this.__destroyRumour();\n\n const data = await this._fetch(this.href);\n const rumour = NucleonElement.Rumour(this.group);\n\n rumour.share({ data, source: this.href });\n this.__createRumour();\n\n return data;\n }\n\n /** PATCHes `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPatch(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n\n const body = JSON.stringify(edits);\n const data = await this._fetch(this.href, { body, method: 'PATCH' });\n const rumour = NucleonElement.Rumour(this.group);\n\n rumour.share({ data, source: this.href, related: this.related });\n this.__createRumour();\n\n return data;\n }\n\n /** DELETEs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendDelete(): Promise<TData> {\n this.__destroyRumour();\n\n const data = await this._fetch(this.href, { method: 'DELETE' });\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n\n rumour.share({ data: null, source: this.href, related });\n this.__createRumour();\n\n return data;\n }\n\n // this getter is used by LitElement to set the \"state\" attribute\n private get __state(): string {\n const state = this.__service.state;\n const flags = state.toStrings().reduce((p, c) => [...p, ...c.split('.')], [] as string[]);\n return [...new Set(flags)].join(' ');\n }\n\n private __createService() {\n this.__service.onTransition(state => {\n if (!state.changed) return;\n\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent());\n\n if (!state.matches('busy')) this.__processFetchEventQueue();\n });\n\n this.__service.onChange(() => {\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent());\n });\n\n this.__service.start();\n }\n\n private __createRumour() {\n const rumour = NucleonElement.Rumour(this.group);\n this.__unsubscribeFromRumour = rumour.track(update => this.__handleRumourUpdate(update));\n }\n\n private __destroyRumour() {\n this.__unsubscribeFromRumour?.();\n }\n\n private __createServer() {\n this.__fetchEventHandler = this.__handleFetchEvent.bind(this);\n this.addEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __destroyServer() {\n this.removeEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __handleRumourUpdate(update: (oldData: TData) => TData | null) {\n try {\n const oldData = this.__service.state?.context.data;\n if (!oldData) return;\n\n const newData = update(oldData);\n if (newData !== oldData) this.__service.send({ data: newData, type: 'SET_DATA' });\n } catch (err) {\n if (err instanceof Rumour.UpdateError) {\n this.__service.send({ type: 'REFRESH' });\n } else {\n throw err;\n }\n }\n }\n\n private __processFetchEventQueue() {\n const api = new NucleonElement.API(this);\n\n this.__fetchEventQueue.forEach(event => {\n const request = event.request;\n const cacheResponse = serveFromCache(request.url, this.data);\n const whenResponseReady = cacheResponse.ok ? cacheResponse : api.fetch(request);\n\n event.respondWith(Promise.resolve(whenResponseReady));\n\n if (cacheResponse.ok) {\n console.debug(\n `%c@foxy.io/elements::${this.localName}\\n%c200%c GET ${request.url}`,\n 'color: gray',\n `background: gray; padding: 0 .2em; border-radius: .2em; color: white;`,\n ''\n );\n }\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __flushFetchEventQueue(errorMessage: string) {\n this.__fetchEventQueue.forEach(event => {\n event.respondWith(Promise.reject(new Error(errorMessage)));\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n if (event.request.method !== 'GET') return;\n if (event.request.url.startsWith('foxy://')) return;\n if (event.composedPath()[0] === this) return;\n\n event.preventDefault();\n this.__fetchEventQueue.push(event);\n\n if (!this.in('busy')) this.__processFetchEventQueue();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NucleonElement.js","sourceRoot":"","sources":["../../../../src/elements/public/NucleonElement/NucleonElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputedElementProperties, HALJSONResource, NucleonMachine, NucleonV8N } from './types';\nimport { LitElement, PropertyDeclarations } from 'lit-element';\nimport { Nucleon, Rumour } from '@foxy.io/sdk/core';\nimport { assign, interpret } from 'xstate';\n\nimport { API } from './API';\nimport { FetchEvent } from './FetchEvent';\nimport { UpdateEvent } from './UpdateEvent';\nimport memoize from 'lodash-es/memoize';\nimport { serveFromCache } from './serveFromCache';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\n/**\n * Base class for custom elements working with remote HAL+JSON resources.\n *\n * @fires NucleonElement#update - Instance of `NucleonElement.UpdateEvent`. Dispatched on an element whenever it changes its state.\n * @fires NucleonElement#fetch - Instance of `NucleonElement.API.FetchEvent`. Emitted before each API request.\n *\n * @element foxy-nucleon\n * @since 1.1.0\n */\nexport class NucleonElement<TData extends HALJSONResource> extends InferrableMixin(LitElement) {\n /**\n * Instances of this event are dispatched on an element whenever it changes its\n * state (e.g. when going from `busy` to `idle` or on `form` data change).\n * This event isn't cancelable, and it does not bubble.\n * @readonly\n */\n static readonly UpdateEvent = UpdateEvent;\n\n /**\n * Creates a tagged [Rumour](https://sdk.foxy.dev/classes/_core_index_.rumour.html)\n * instance if it doesn't exist or returns cached one otherwise. NucleonElements\n * use empty Rumour group by default.\n * @readonly\n */\n static readonly Rumour = memoize<(group: string) => Rumour>(() => new Rumour());\n\n /**\n * Universal [API](https://sdk.foxy.dev/classes/_core_index_.api.html) client\n * that dispatches cancellable `FetchEvent` on an element before each request.\n * @readonly\n */\n static readonly API = API;\n\n static get inferredProperties(): string[] {\n return [...super.inferredProperties, 'group', 'lang'];\n }\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n related: { type: Array },\n parent: { type: String },\n group: { type: String, noAccessor: true },\n href: { type: String, noAccessor: true },\n lang: { type: String },\n };\n }\n\n /**\n * Array of validation functions. Each function accepts `element.form` and must return\n * either an error code string if form data fails the check or `true` otherwise.\n * Error codes are collected in `element.errors`. Empty by default.\n */\n static get v8n(): NucleonV8N<any> {\n return [];\n }\n\n /**\n * Optional ISO 639-1 code describing the language element content is written in.\n * Changing the `lang` attribute will update the value of this property.\n */\n lang = '';\n\n /**\n * Optional URL of the collection this element's resource belongs to.\n * Changing the `parent` attribute will update the value of this property.\n */\n parent = '';\n\n /**\n * Optional URI list of the related resources. If Rumour encounters a related\n * resource on creation or deletion, it will be reloaded from source.\n */\n related: string[] = [];\n\n private __href = '';\n\n private __group = '';\n\n private __unsubscribeFromRumour!: () => void;\n\n private __fetchEventHandler!: (evt: Event) => void;\n\n private __fetchEventQueue: FetchEvent[] = [];\n\n private readonly __service = interpret(\n (Nucleon.machine as NucleonMachine<TData>).withConfig({\n services: {\n sendDelete: () => this._sendDelete(),\n sendPatch: ({ edits }) => this._sendPatch(edits!),\n sendPost: ({ edits }) => this._sendPost(edits!),\n sendGet: () => this._sendGet(),\n },\n\n actions: {\n validate: assign<Nucleon.Context<TData, string>, Nucleon.Event<TData>>({\n errors: context => {\n const rules = (this.constructor as typeof NucleonElement).v8n;\n const form = { ...context.data, ...context.edits };\n\n return rules\n .map(validate => validate(form))\n .filter(v8nResult => typeof v8nResult === 'string')\n .filter((err, errIndex, errs) => errs.indexOf(err) === errIndex) as string[];\n },\n }),\n },\n })\n );\n\n /**\n * If network request returns non-2XX code, the entire error response\n * will be available via this getter.\n *\n * This property is readonly. Changing failure records via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override error status.\n *\n * @since 1.4.0\n */\n get failure(): Response | null {\n return this.__service.state.context.failure;\n }\n\n /**\n * Array of validation errors returned from `NucleonElement.v8n` checks.\n *\n * This property is readonly. Adding or removing error codes via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override validity status.\n */\n get errors(): string[] {\n return this.__service.state.context.errors;\n }\n\n /**\n * Resource snapshot with edits applied. Empty object if unavailable.\n *\n * This property and its value are readonly. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please use `element.edit({ foo: 'bar' })` instead.\n * If you need to replace the entire data object, consider using `element.data`.\n */\n get form(): Partial<TData> {\n const { data, edits } = this.__service.state.context;\n return { ...data, ...edits } as Partial<TData>;\n }\n\n /**\n * Resource snapshot as-is, no edits applied. Null if unavailable.\n *\n * Returned value is not reactive. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please set the property instead: `element.data = { ...element.data, foo: 'bar' }`.\n * If you're processing user input, consider using `element.form` and `element.edit()` instead.\n */\n get data(): TData | null {\n return this.__service.state.context.data;\n }\n\n set data(data: TData | null) {\n this.__service.send({ type: 'SET_DATA', data });\n this.__href = data?._links.self.href ?? '';\n }\n\n /**\n * Rumour group. Elements in different groups will not share updates. Empty by default.\n * @example element.group = 'my-group'\n */\n get group(): string {\n return this.__group;\n }\n\n set group(value: string) {\n this.__group = value;\n this.__destroyRumour();\n this.__createRumour();\n }\n\n /**\n * Optional URL of the resource to load. Switches element to `idle.template` state if empty (default).\n * @example element.href = 'https://demo.foxycart.com/s/customer/attributes/0'\n */\n get href(): string {\n return this.__href;\n }\n\n set href(value: string) {\n this.__href = value;\n\n if (value) {\n this.__service.send({ type: 'FETCH' });\n } else {\n this.__service.send({ type: 'SET_DATA', data: null });\n }\n }\n\n /**\n * Checks if this element is in the given state.\n * @example element.in({ idle: 'snapshot' })\n */\n in<TStateValue extends Nucleon.State<TData, string>['value']>(\n stateValue: TStateValue\n ): this is this & ComputedElementProperties<TData, TStateValue> {\n return this.__service.state.matches(stateValue);\n }\n\n /**\n * Clears all edits and emits the `update` event.\n * @example element.undo()\n */\n undo(): void {\n this.__service.send({ type: 'UNDO' });\n }\n\n /**\n * Applies an edit to the local resource snapshot or its template and emits the `update` event.\n * @example element.edit({ first_name: 'Alex' })\n */\n edit(data: Partial<TData>): void {\n this.__service.send({ type: 'EDIT', data });\n }\n\n /**\n * Submits the form, updating the resource if href isn't empty or creating it otherwise.\n * Emits multiple `update` events as element state changes. Has no effect on invalid forms.\n * @example element.submit()\n */\n submit(): void {\n this.__service.send({ type: 'SUBMIT' });\n }\n\n /**\n * Sends a DELETE request to `element.href` and clears local data on success.\n * Emits multiple update events as element state changes.\n * @example element.delete()\n */\n delete(): void {\n this.__service.send({ type: 'DELETE' });\n }\n\n /**\n * Fetches data from `element.href` in background, keeping the edits and v8n errors.\n * @example element.refresh()\n */\n refresh(): void {\n this.__service.send({ type: 'REFRESH' });\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n\n this.__createService();\n this.__createRumour();\n this.__createServer();\n this.__processFetchEventQueue();\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.__destroyService();\n this.__destroyRumour();\n this.__destroyServer();\n this.__flushFetchEventQueue('parent element was disconnected');\n }\n\n applyInferredProperties(context: Map<string, unknown>): void {\n super.applyInferredProperties(context);\n\n if (this.infer === null) return;\n\n this.group = (context.get('group') as string | undefined) ?? '';\n this.lang = (context.get('lang') as string | undefined) ?? '';\n }\n\n /** Sends API request. Throws an error on non-2XX response. */\n protected async _fetch<TResult = TData>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const response = await new API(this).fetch(...args);\n if (!response.ok) throw response;\n return response.json();\n }\n\n /** POSTs to `element.parent`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPost(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n\n const body = JSON.stringify(edits);\n const data = await this._fetch(this.parent, { body, method: 'POST' });\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n\n rumour.share({ data, related, source: data._links.self.href });\n this.__createRumour();\n\n return data;\n }\n\n /** GETs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendGet(): Promise<TData> {\n this.__destroyRumour();\n\n const data = await this._fetch(this.href);\n const rumour = NucleonElement.Rumour(this.group);\n\n rumour.share({ data, source: this.href });\n this.__createRumour();\n\n return data;\n }\n\n /** PATCHes `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPatch(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n\n const body = JSON.stringify(edits);\n const data = await this._fetch(this.href, { body, method: 'PATCH' });\n const rumour = NucleonElement.Rumour(this.group);\n\n rumour.share({ data, source: this.href, related: this.related });\n this.__createRumour();\n\n return data;\n }\n\n /** DELETEs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendDelete(): Promise<TData> {\n this.__destroyRumour();\n\n const data = await this._fetch(this.href, { method: 'DELETE' });\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n\n rumour.share({ data: null, source: this.href, related });\n this.__createRumour();\n\n return data;\n }\n\n private __createService() {\n this.__service.onTransition(state => {\n if (!state.changed) return;\n\n const flags = state.toStrings().reduce((p, c) => [...p, ...c.split('.')], [] as string[]);\n this.setAttribute('state', [...new Set(flags)].join(' '));\n\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent());\n\n if (!state.matches('busy')) this.__processFetchEventQueue();\n });\n\n this.__service.onChange(() => {\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent());\n });\n\n this.__service.start();\n }\n\n private __destroyService() {\n this.__service.stop();\n }\n\n private __createRumour() {\n const rumour = NucleonElement.Rumour(this.group);\n this.__unsubscribeFromRumour = rumour.track(update => this.__handleRumourUpdate(update));\n }\n\n private __destroyRumour() {\n this.__unsubscribeFromRumour?.();\n }\n\n private __createServer() {\n this.__fetchEventHandler = this.__handleFetchEvent.bind(this);\n this.addEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __destroyServer() {\n this.removeEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __handleRumourUpdate(update: (oldData: TData) => TData | null) {\n try {\n const oldData = this.__service.state?.context.data;\n if (!oldData) return;\n\n const newData = update(oldData);\n if (newData !== oldData) this.__service.send({ data: newData, type: 'SET_DATA' });\n } catch (err) {\n if (err instanceof Rumour.UpdateError) {\n this.__service.send({ type: 'REFRESH' });\n } else {\n throw err;\n }\n }\n }\n\n private __processFetchEventQueue() {\n const api = new NucleonElement.API(this);\n\n this.__fetchEventQueue.forEach(event => {\n const request = event.request;\n const cacheResponse = serveFromCache(request.url, this.data);\n const whenResponseReady = cacheResponse.ok ? cacheResponse : api.fetch(request);\n\n event.respondWith(Promise.resolve(whenResponseReady));\n\n if (cacheResponse.ok) {\n console.debug(\n `%c@foxy.io/elements::${this.localName}\\n%c200%c GET ${request.url}`,\n 'color: gray',\n `background: gray; padding: 0 .2em; border-radius: .2em; color: white;`,\n ''\n );\n }\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __flushFetchEventQueue(errorMessage: string) {\n this.__fetchEventQueue.forEach(event => {\n event.respondWith(Promise.reject(new Error(errorMessage)));\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n if (event.request.method !== 'GET') return;\n if (event.request.url.startsWith('foxy://')) return;\n if (event.composedPath()[0] === this) return;\n\n event.preventDefault();\n this.__fetchEventQueue.push(event);\n\n if (!this.in('busy')) this.__processFetchEventQueue();\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { html } from 'lit-html';
|
|
2
2
|
import { classMap } from "../../../../utils/class-map.js";
|
|
3
3
|
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
4
|
-
import {
|
|
4
|
+
import { serializeDate } from "../../../../utils/serialize-date.js";
|
|
5
5
|
export function Input(params) {
|
|
6
6
|
var _a;
|
|
7
7
|
const id = (_a = params.id) !== null && _a !== void 0 ? _a : String(Math.floor(Math.random() * Math.pow(10, 8)));
|
|
@@ -10,7 +10,8 @@ export function Input(params) {
|
|
|
10
10
|
let normalizedValue = params.value;
|
|
11
11
|
if (params.type === 'date') {
|
|
12
12
|
const date = new Date(params.value);
|
|
13
|
-
|
|
13
|
+
if (!isNaN(date.getTime()))
|
|
14
|
+
normalizedValue = serializeDate(date);
|
|
14
15
|
}
|
|
15
16
|
return html `
|
|
16
17
|
<label class="relative flex items-center cursor-text group text-tertiary">
|
|
@@ -29,25 +30,22 @@ export function Input(params) {
|
|
|
29
30
|
<input
|
|
30
31
|
placeholder=${normalizedValue || params.type === 'date' ? '' : params.t(params.label)}
|
|
31
32
|
class=${classMap({
|
|
32
|
-
'bg-base text-body relative flex h-m px-s font-medium w-full': true,
|
|
33
|
+
'bg-base text-body relative appearance-none flex h-m px-s font-medium w-full': true,
|
|
33
34
|
'flex max-w-full whitespace-nowrap': true,
|
|
34
35
|
'focus-outline-none': true,
|
|
35
36
|
'opacity-0 focus-opacity-100': hasDisplayValue,
|
|
36
37
|
})}
|
|
37
38
|
list=${ifDefined(params.list ? listId : undefined)}
|
|
38
39
|
type=${params.type}
|
|
39
|
-
max=${ifDefined(params.type === 'date' ? '9999-12-31' : '')}
|
|
40
40
|
.value=${normalizedValue}
|
|
41
41
|
?disabled=${params.disabled}
|
|
42
42
|
@input=${(evt) => {
|
|
43
|
+
var _a, _b;
|
|
43
44
|
const input = evt.currentTarget;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (valueAsDate.getFullYear() > 9999)
|
|
47
|
-
valueAsDate.setFullYear(9999);
|
|
48
|
-
params.onChange(valueAsDate.toISOString());
|
|
45
|
+
if (params.type === 'date') {
|
|
46
|
+
params.onChange((_b = (_a = input.valueAsDate) === null || _a === void 0 ? void 0 : _a.toISOString()) !== null && _b !== void 0 ? _b : input.value);
|
|
49
47
|
}
|
|
50
|
-
|
|
48
|
+
else {
|
|
51
49
|
params.onChange(input.value);
|
|
52
50
|
}
|
|
53
51
|
}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,uCAAoC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,uCAAoC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,4CAAyC;AAcjE,MAAM,UAAU,KAAK,CAAC,MAAmB;;IACvC,MAAM,EAAE,SAAG,MAAM,CAAC,EAAE,mCAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC;IAC5B,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAE9C,IAAI,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;IAEnC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;QAC1B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;KACnE;IAED,OAAO,IAAI,CAAA;;;UAGH,eAAe;QACf,CAAC,CAAC,IAAI,CAAA;;;;;wCAKwB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAa,CAAC;;aAEzD;QACH,CAAC,CAAC,EAAE;;;wBAGU,eAAe,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;kBAC7E,QAAQ,CAAC;QACf,6EAA6E,EAAE,IAAI;QACnF,mCAAmC,EAAE,IAAI;QACzC,oBAAoB,EAAE,IAAI;QAC1B,6BAA6B,EAAE,eAAe;KAC/C,CAAC;iBACK,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;iBAC3C,MAAM,CAAC,IAAI;mBACT,eAAe;sBACZ,MAAM,CAAC,QAAQ;mBAClB,CAAC,GAAU,EAAE,EAAE;;QACtB,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;QAEpD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAC1B,MAAM,CAAC,QAAQ,aAAC,KAAK,CAAC,WAAW,0CAAE,WAAW,qCAAM,KAAK,CAAC,KAAK,CAAC,CAAC;SAClE;aAAM;YACL,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;;;;;gBAKK,QAAQ,CAAC;QACf,0EAA0E,EAAE,IAAI;QAChF,cAAc,EAAE,CAAC,CAAC,eAAe,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAC3D,SAAS,EAAE,CAAC,eAAe,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;KACtD,CAAC;;UAEA,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;;;QAGxB,MAAM,CAAC,IAAI;QACX,CAAC,CAAC,IAAI,CAAA;2BACa,MAAM;gBACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CACf,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAA,iBAAiB,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAC/E;;WAEJ;QACH,CAAC,CAAC,EAAE;QACJ,MAAM,CAAC,QAAQ;QACf,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAA;;;;WAIH;;GAER,CAAC;AACJ,CAAC","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { classMap } from '../../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { serializeDate } from '../../../../utils/serialize-date';\n\nexport type InputParams = {\n t: I18n['t'];\n id?: string;\n list?: { label: string; value: string }[];\n type: string;\n label: string;\n value: string;\n disabled?: boolean;\n displayValue?: string;\n onChange: (newValue: string) => void;\n};\n\nexport function Input(params: InputParams): TemplateResult {\n const id = params.id ?? String(Math.floor(Math.random() * Math.pow(10, 8)));\n const listId = `${id}-list`;\n const hasDisplayValue = !!params.displayValue;\n\n let normalizedValue = params.value;\n\n if (params.type === 'date') {\n const date = new Date(params.value);\n if (!isNaN(date.getTime())) normalizedValue = serializeDate(date);\n }\n\n return html`\n <label class=\"relative flex items-center cursor-text group text-tertiary\">\n <div class=\"relative flex-1 min-w-0 overflow-hidden\">\n ${hasDisplayValue\n ? html`\n <div\n aria-hidden=\"true\"\n class=\"absolute inset-0 h-m px-s font-medium text-body flex items-center\"\n >\n <div class=\"truncate\">${params.t(params.displayValue!)}</div>\n </div>\n `\n : ''}\n\n <input\n placeholder=${normalizedValue || params.type === 'date' ? '' : params.t(params.label)}\n class=${classMap({\n 'bg-base text-body relative appearance-none flex h-m px-s font-medium w-full': true,\n 'flex max-w-full whitespace-nowrap': true, // ugh safari\n 'focus-outline-none': true,\n 'opacity-0 focus-opacity-100': hasDisplayValue,\n })}\n list=${ifDefined(params.list ? listId : undefined)}\n type=${params.type}\n .value=${normalizedValue}\n ?disabled=${params.disabled}\n @input=${(evt: Event) => {\n const input = evt.currentTarget as HTMLInputElement;\n\n if (params.type === 'date') {\n params.onChange(input.valueAsDate?.toISOString() ?? input.value);\n } else {\n params.onChange(input.value);\n }\n }}\n />\n </div>\n\n <span\n class=${classMap({\n 'font-tnum text-xs font-medium border border-current mr-s px-xs rounded-s': true,\n 'inline-block': !!normalizedValue || params.type === 'date',\n 'sr-only': !normalizedValue && params.type !== 'date',\n })}\n >\n ${params.t(params.label)}\n </span>\n\n ${params.list\n ? html`\n <datalist id=${listId}>\n ${params.list.map(\n ({ label, value }) => html`<option value=${value}>${params.t(label)}</option>`\n )}\n </datalist>\n `\n : ''}\n ${params.disabled\n ? ''\n : html`\n <div\n class=\"absolute inset-0 transition-colors bg-transparent group-hover-bg-contrast-5 pointer-events-none\"\n ></div>\n `}\n </label>\n `;\n}\n"]}
|
|
@@ -3,20 +3,18 @@ import { html } from 'lit-html';
|
|
|
3
3
|
import { Input } from "./Input.js";
|
|
4
4
|
import { Select } from "./Select.js";
|
|
5
5
|
export function RangeValue(params) {
|
|
6
|
-
var _a, _b, _c
|
|
6
|
+
var _a, _b, _c;
|
|
7
7
|
const { t, parsedValue, option, onChange } = params;
|
|
8
|
-
const
|
|
9
|
-
const from = splitValue.length >= 2 ? splitValue[0] : '';
|
|
10
|
-
const to = splitValue.length >= 2 ? splitValue[1] : (_a = splitValue[0]) !== null && _a !== void 0 ? _a : '';
|
|
8
|
+
const [from, to] = parsedValue.value.split('..');
|
|
11
9
|
const Field = (option === null || option === void 0 ? void 0 : option.list) ? Select : Input;
|
|
12
|
-
const optionType = (
|
|
10
|
+
const optionType = (_a = option === null || option === void 0 ? void 0 : option.type) !== null && _a !== void 0 ? _a : Type.Any;
|
|
13
11
|
const type = optionType === Type.Number ? 'number' : optionType === Type.Date ? 'date' : 'text';
|
|
14
12
|
const list = option === null || option === void 0 ? void 0 : option.list;
|
|
15
13
|
return html `
|
|
16
14
|
<div class="grid bg-contrast-10 gap-1px grid-cols-1 grid-rows-2 sm-grid-cols-2 sm-grid-rows-1">
|
|
17
15
|
<div class="bg-base">
|
|
18
16
|
${Field({
|
|
19
|
-
displayValue: (
|
|
17
|
+
displayValue: (_b = list === null || list === void 0 ? void 0 : list.find(v => v.value === from)) === null || _b === void 0 ? void 0 : _b.label,
|
|
20
18
|
value: from,
|
|
21
19
|
label: 'range_from',
|
|
22
20
|
type: type,
|
|
@@ -28,7 +26,7 @@ export function RangeValue(params) {
|
|
|
28
26
|
|
|
29
27
|
<div class="bg-base">
|
|
30
28
|
${Field({
|
|
31
|
-
displayValue: (
|
|
29
|
+
displayValue: (_c = list === null || list === void 0 ? void 0 : list.find(v => v.value === to)) === null || _c === void 0 ? void 0 : _c.label,
|
|
32
30
|
label: 'range_to',
|
|
33
31
|
value: to,
|
|
34
32
|
type: type,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeValue.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/RangeValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,oBAAiB;AACrD,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,MAAM,EAAE,oBAAiB;AASlC,MAAM,UAAU,UAAU,CAAC,MAAwB;;IACjD,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACpD,MAAM,
|
|
1
|
+
{"version":3,"file":"RangeValue.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/RangeValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,oBAAiB;AACrD,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,MAAM,EAAE,oBAAiB;AASlC,MAAM,UAAU,UAAU,CAAC,MAAwB;;IACjD,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,KAAK,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,MAAM,UAAU,SAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC,GAAG,CAAC;IAC5C,MAAM,IAAI,GAAG,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAChG,MAAM,IAAI,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;IAE1B,OAAO,IAAI,CAAA;;;UAGH,KAAK,CAAC;QACN,YAAY,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,2CAAG,KAAK;QACtD,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,EAAE,EAAE,EAAE,CAAC;KAChF,CAAC;;;;UAIA,KAAK,CAAC;QACN,YAAY,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,2CAAG,KAAK;QACpD,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,KAAK,QAAQ,EAAE,EAAE,CAAC;KAClF,CAAC;;;GAGP,CAAC;AACJ,CAAC","sourcesContent":["import { Option, ParsedValue, Type } from '../types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { Select } from './Select';\n\nexport type RangeValueParams = {\n parsedValue: ParsedValue;\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function RangeValue(params: RangeValueParams): TemplateResult {\n const { t, parsedValue, option, onChange } = params;\n const [from, to] = parsedValue.value.split('..');\n\n const Field = option?.list ? Select : Input;\n const optionType = option?.type ?? Type.Any;\n const type = optionType === Type.Number ? 'number' : optionType === Type.Date ? 'date' : 'text';\n const list = option?.list;\n\n return html`\n <div class=\"grid bg-contrast-10 gap-1px grid-cols-1 grid-rows-2 sm-grid-cols-2 sm-grid-rows-1\">\n <div class=\"bg-base\">\n ${Field({\n displayValue: list?.find(v => v.value === from)?.label,\n value: from,\n label: 'range_from',\n type: type,\n list: list,\n t: t,\n onChange: newValue => onChange({ ...parsedValue, value: `${newValue}..${to}` }),\n })}\n </div>\n\n <div class=\"bg-base\">\n ${Field({\n displayValue: list?.find(v => v.value === to)?.label,\n label: 'range_to',\n value: to,\n type: type,\n list: list,\n t: t,\n onChange: newValue => onChange({ ...parsedValue, value: `${from}..${newValue}` }),\n })}\n </div>\n </div>\n `;\n}\n"]}
|
|
@@ -22,9 +22,7 @@ export function Select(params) {
|
|
|
22
22
|
}}
|
|
23
23
|
>
|
|
24
24
|
${isEmpty
|
|
25
|
-
? html
|
|
26
|
-
<option value="" disabled ?selected=${isEmpty}>${params.t(params.label)}</option>
|
|
27
|
-
`
|
|
25
|
+
? html `<option value disabled ?selected=${isEmpty}>${params.t(params.label)}</option>`
|
|
28
26
|
: ''}
|
|
29
27
|
${(_c = params.list) === null || _c === void 0 ? void 0 : _c.map(({ label, value }) => html `
|
|
30
28
|
<option value=${value} ?selected=${value === params.value}>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,uCAAoC;AAWvD,MAAM,UAAU,MAAM,CAAC,MAAoB;;IACzC,MAAM,OAAO,eAAG,MAAM,CAAC,IAAI,0CAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,oCAAK,IAAI,CAAC;IAE1E,OAAO,IAAI,CAAA;;;;;;kBAMK,QAAQ,CAAC;QACf,sEAAsE,EAAE,IAAI;QAC5E,oEAAoE,EAAE,IAAI;QAC1E,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,CAAC,OAAO;KACtB,CAAC;oBACQ,CAAC,GAAU,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAkC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;;YAEC,OAAO;QACP,CAAC,CAAC,IAAI,CAAA
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,uCAAoC;AAWvD,MAAM,UAAU,MAAM,CAAC,MAAoB;;IACzC,MAAM,OAAO,eAAG,MAAM,CAAC,IAAI,0CAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,oCAAK,IAAI,CAAC;IAE1E,OAAO,IAAI,CAAA;;;;;;kBAMK,QAAQ,CAAC;QACf,sEAAsE,EAAE,IAAI;QAC5E,oEAAoE,EAAE,IAAI;QAC1E,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,CAAC,OAAO;KACtB,CAAC;oBACQ,CAAC,GAAU,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAkC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;;YAEC,OAAO;QACP,CAAC,CAAC,IAAI,CAAA,oCAAoC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW;QACtF,CAAC,CAAC,EAAE;YACJ,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAChB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CACnB,IAAI,CAAA;gCACc,KAAK,cAAc,KAAK,KAAK,MAAM,CAAC,KAAK;oBACrD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;;eAEpB,CACJ;;;;QAIH,OAAO;QACP,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAA;;;;gBAIE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;;;cAGxB,MAAM,CAAC,SAAS;YAChB,CAAC,CAAC,IAAI,CAAA;;iCAEa,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;;6BAEtB,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;;;;;;;;;iBASrC;YACH,CAAC,CAAC,EAAE;WACP;;GAER,CAAC;AACJ,CAAC","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { classMap } from '../../../../utils/class-map';\n\nexport type SelectParams = {\n clearable?: boolean;\n label: string;\n value: string;\n list?: { label: string; value: string }[];\n t: I18n['t'];\n onChange: (newValue: string) => void;\n};\n\nexport function Select(params: SelectParams): TemplateResult {\n const isEmpty = params.list?.every(v => v.value !== params.value) ?? true;\n\n return html`\n <label\n class=\"flex items-center cursor-pointer transition-colors group text-tertiary hover-bg-contrast-5\"\n >\n <div class=\"relative flex-1 min-w-0 overflow-hidden\">\n <select\n class=${classMap({\n 'cursor-pointer bg-transparent relative appearance-none flex h-m px-s': true,\n 'font-medium w-full max-w-full whitespace-nowrap focus-outline-none': true,\n 'text-tertiary': isEmpty,\n 'text-body': !isEmpty,\n })}\n @change=${(evt: Event) => {\n const select = evt.currentTarget as HTMLSelectElement;\n const value = select.options[select.options.selectedIndex].value;\n params.onChange(value);\n }}\n >\n ${isEmpty\n ? html`<option value disabled ?selected=${isEmpty}>${params.t(params.label)}</option>`\n : ''}\n ${params.list?.map(\n ({ label, value }) =>\n html`\n <option value=${value} ?selected=${value === params.value}>\n ${params.t(label)}\n </option>\n `\n )}\n </select>\n </div>\n\n ${isEmpty\n ? ''\n : html`\n <span\n class=\"font-tnum text-xs font-medium border mr-s px-xs rounded-s border-current inline-block\"\n >\n ${params.t(params.label)}\n </span>\n\n ${params.clearable\n ? html`\n <button\n aria-label=${params.t('delete')}\n class=\"w-s h-s mr-xs text-body flex items-center justify-center transition-colors rounded-full focus-outline-none focus-ring-2 focus-ring-primary-50 hover-bg-contrast-5 hover-text-error\"\n @click=${() => params.onChange('')}\n >\n <iron-icon\n aria-hidden=\"true\"\n class=\"icon-inline text-l\"\n icon=\"icons:remove-circle-outline\"\n >\n </iron-icon>\n </button>\n `\n : ''}\n `}\n </label>\n `;\n}\n"]}
|
|
@@ -34,7 +34,7 @@ export class ShipmentCard extends Base {
|
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
get hiddenSelector() {
|
|
37
|
-
return new BooleanSelector(
|
|
37
|
+
return new BooleanSelector(`${super.hiddenSelector.toString()} address:not=full-address`);
|
|
38
38
|
}
|
|
39
39
|
get readonlySelector() {
|
|
40
40
|
return this.__editable ? super.readonlySelector : BooleanSelector.True;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShipmentCard.js","sourceRoot":"","sources":["../../../../src/elements/public/ShipmentCard/ShipmentCard.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAY,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,oDAAiD;AAExE,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AAEjE,MAAM,EAAE,GAAG,eAAe,CAAC;AAC3B,MAAM,IAAI,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAU;IAA5C;;QAaE,wBAAmB,GAAG,EAAE,CAAC;QAEzB,sBAAiB,GAAG,EAAE,CAAC;QAEvB,qBAAgB,GAAG,EAAE,CAAC;QAEtB,eAAU,GAAG,KAAK,CAAC;QAEnB,eAAU,GAAG,EAAE,CAAC;QAEhB,cAAS,GAAG,EAAE,CAAC;IA8FjB,CAAC;IApHC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YACzC,iBAAiB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YACvC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YACtC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAChC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAChC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAChC,CAAC;IACJ,CAAC;IAcD,IAAI,cAAc;QAChB,OAAO,IAAI,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"ShipmentCard.js","sourceRoot":"","sources":["../../../../src/elements/public/ShipmentCard/ShipmentCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { html } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector, Resource } from '@foxy.io/sdk/core';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { PropertyDeclarations } from 'lit-element';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { FormRenderer } from '../FormDialog/types';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\n\nconst NS = 'shipment-card';\nconst Base = ConfigurableMixin(TranslatableMixin(InternalCard, NS));\n\n/**\n * Basic card displaying a shipment.\n *\n * @element foxy-shipment-card\n * @since 1.17.0\n */\nexport class ShipmentCard extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __customerAddresses: { attribute: false },\n __currencyDisplay: { attribute: false },\n __itemCategories: { attribute: false },\n __editable: { attribute: false },\n __currency: { attribute: false },\n __coupons: { attribute: false },\n };\n }\n\n __customerAddresses = '';\n\n __currencyDisplay = '';\n\n __itemCategories = '';\n\n __editable = false;\n\n __currency = '';\n\n __coupons = '';\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`${super.hiddenSelector.toString()} address:not=full-address`);\n }\n\n get readonlySelector(): BooleanSelector {\n return this.__editable ? super.readonlySelector : BooleanSelector.True;\n }\n\n renderBody(): TemplateResult {\n let itemsLink: string | undefined = undefined;\n\n if (this.data) {\n try {\n const url = new URL(this.data._links['fx:items'].href);\n url.searchParams.set('zoom', 'item_options');\n itemsLink = url.toString();\n } catch {\n //\n }\n }\n\n const itemFormRenderer: FormRenderer = ({ html, dialog, handleFetch, handleUpdate }) => html`\n <foxy-item-form\n customer-addresses=${this.__customerAddresses}\n item-categories=${this.__itemCategories}\n coupons=${this.__coupons}\n parent=${dialog.parent}\n href=${dialog.href}\n infer=\"\"\n @fetch=${handleFetch}\n @update=${handleUpdate}\n >\n </foxy-item-form>\n `;\n\n return html`\n <div class=\"space-y-m\">\n <foxy-address-card\n infer=\"address\"\n href=${ifDefined(this.data?._links['fx:customer_address'].href)}\n >\n <div slot=\"full-address:after\" class=\"flex items-center text-m space-x-s text-secondary\">\n <iron-icon icon=\"maps:local-shipping\" class=\"icon-inline flex-shrink-0\"></iron-icon>\n <span class=\"truncate\">\n ${this.data?.shipping_service_description} •\n <foxy-i18n\n options=${JSON.stringify({\n amount: `${this.data?.total_shipping} ${this.__currency}`,\n currencyDisplay: this.__currencyDisplay,\n })}\n key=\"price\"\n infer=\"\"\n >\n </foxy-i18n>\n </span>\n </div>\n </foxy-address-card>\n\n <foxy-internal-async-details-control\n infer=\"items\"\n first=${ifDefined(itemsLink)}\n limit=\"5\"\n item=\"foxy-item-card\"\n open\n .form=${itemFormRenderer as any}\n >\n </foxy-internal-async-details-control>\n </div>\n `;\n }\n\n protected async _sendGet(): Promise<Data> {\n type Transaction = Resource<Rels.Transaction>;\n type Customer = Resource<Rels.Customer>;\n type Store = Resource<Rels.Store>;\n\n const shipment = await super._sendGet();\n const [transaction, customer, store] = await Promise.all([\n super._fetch<Transaction>(shipment._links['fx:transaction'].href),\n super._fetch<Customer>(shipment._links['fx:customer'].href),\n super._fetch<Store>(shipment._links['fx:store'].href),\n ]);\n\n this.__customerAddresses = customer._links['fx:customer_addresses'].href;\n this.__currencyDisplay = store.use_international_currency_symbol ? 'code' : 'symbol';\n this.__itemCategories = store._links['fx:item_categories'].href;\n this.__currency = transaction.currency_code;\n this.__editable = !!transaction._links['fx:void'] || !!transaction._links['fx:refund'];\n this.__coupons = store._links['fx:coupons'].href;\n\n return shipment;\n }\n}\n"]}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import type { Rels } from '@foxy.io/sdk/backend';
|
|
2
2
|
import type { Resource } from '@foxy.io/sdk/core';
|
|
3
|
-
export declare type Rel = Rels.Shipment
|
|
4
|
-
|
|
3
|
+
export declare type Rel = Rels.Shipment & {
|
|
4
|
+
links: {
|
|
5
|
+
'fx:custom_fields': Rels.CustomFields;
|
|
6
|
+
'fx:attributes': Rels.Attributes;
|
|
7
|
+
};
|
|
8
|
+
zooms: {
|
|
9
|
+
custom_fields?: Rels.CustomFields;
|
|
10
|
+
attributes?: Rels.Attributes;
|
|
11
|
+
items?: Rels.Items;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare type Data = Resource<Rel, {
|
|
15
|
+
zoom: {
|
|
16
|
+
items: 'item_options';
|
|
17
|
+
};
|
|
18
|
+
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/ShipmentCard/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Rels } from '@foxy.io/sdk/backend';\nimport type { Resource } from '@foxy.io/sdk/core';\n\nexport type Rel = Rels.Shipment;\nexport type Data = Resource<Rel>;\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/ShipmentCard/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Rels } from '@foxy.io/sdk/backend';\nimport type { Resource } from '@foxy.io/sdk/core';\n\n// TODO update when SDK types are corrected\nexport type Rel = Rels.Shipment & {\n links: {\n 'fx:custom_fields': Rels.CustomFields;\n 'fx:attributes': Rels.Attributes;\n };\n\n zooms: {\n custom_fields?: Rels.CustomFields;\n attributes?: Rels.Attributes;\n items?: Rels.Items;\n };\n};\n\nexport type Data = Resource<Rel, { zoom: { items: 'item_options' } }>;\n"]}
|
|
@@ -29,18 +29,14 @@ export { DiscountDetailCard } from './DiscountDetailCard/DiscountDetailCard';
|
|
|
29
29
|
export { ReportForm } from './ReportForm/ReportForm';
|
|
30
30
|
export { ReportsTable } from './ReportsTable/ReportsTable';
|
|
31
31
|
export { Donation } from './Donation/Donation';
|
|
32
|
-
export { EmailTemplateCard } from './EmailTemplateCard/EmailTemplateCard';
|
|
33
32
|
export { EmailTemplateForm } from './EmailTemplateForm/EmailTemplateForm';
|
|
34
33
|
export { ErrorEntryCard } from './ErrorEntryCard/ErrorEntryCard';
|
|
35
34
|
export { FormDialog } from './FormDialog/FormDialog';
|
|
36
35
|
export { GenerateCodesForm } from './GenerateCodesForm/GenerateCodesForm';
|
|
37
36
|
export { GiftCardCard } from './GiftCardCard/GiftCardCard';
|
|
38
37
|
export { GiftCardCodeForm } from './GiftCardCodeForm/GiftCardCodeForm';
|
|
39
|
-
export { GiftCardCodeLogCard } from './GiftCardCodeLogCard/GiftCardCodeLogCard';
|
|
40
38
|
export { GiftCardCodesForm } from './GiftCardCodesForm/GiftCardCodesForm';
|
|
41
39
|
export { GiftCardForm } from './GiftCardForm/GiftCardForm';
|
|
42
|
-
export { ItemCategoryCard } from './ItemCategoryCard/ItemCategoryCard';
|
|
43
|
-
export { ItemCategoryForm } from './ItemCategoryForm/ItemCategoryForm';
|
|
44
40
|
export { I18n } from './I18n/I18n';
|
|
45
41
|
export { ItemCard } from './ItemCard/ItemCard';
|
|
46
42
|
export { ItemForm } from './ItemForm/ItemForm';
|
|
@@ -55,7 +51,6 @@ export { PaymentMethodCard } from './PaymentMethodCard/PaymentMethodCard';
|
|
|
55
51
|
export { QueryBuilder } from './QueryBuilder/QueryBuilder';
|
|
56
52
|
export { SignInForm } from './SignInForm/SignInForm';
|
|
57
53
|
export { Spinner } from './Spinner/Spinner';
|
|
58
|
-
export { StoreShippingMethodForm } from './StoreShippingMethodForm/StoreShippingMethodForm';
|
|
59
54
|
export { SubscriptionCard } from './SubscriptionCard/SubscriptionCard';
|
|
60
55
|
export { SubscriptionForm } from './SubscriptionForm/SubscriptionForm';
|
|
61
56
|
export { SubscriptionsTable } from './SubscriptionsTable/SubscriptionsTable';
|
|
@@ -29,18 +29,14 @@ export { DiscountDetailCard } from './DiscountDetailCard/index';
|
|
|
29
29
|
export { ReportForm } from './ReportForm/index';
|
|
30
30
|
export { ReportsTable } from './ReportsTable/index';
|
|
31
31
|
export { Donation } from './Donation/index';
|
|
32
|
-
export { EmailTemplateCard } from './EmailTemplateCard/index';
|
|
33
32
|
export { EmailTemplateForm } from './EmailTemplateForm/index';
|
|
34
33
|
export { ErrorEntryCard } from './ErrorEntryCard/index';
|
|
35
34
|
export { FormDialog } from './FormDialog/index';
|
|
36
35
|
export { GenerateCodesForm } from './GenerateCodesForm/index';
|
|
37
36
|
export { GiftCardCard } from './GiftCardCard/index';
|
|
38
37
|
export { GiftCardCodeForm } from './GiftCardCodeForm/index';
|
|
39
|
-
export { GiftCardCodeLogCard } from './GiftCardCodeLogCard/index';
|
|
40
38
|
export { GiftCardCodesForm } from './GiftCardCodesForm/index';
|
|
41
39
|
export { GiftCardForm } from './GiftCardForm/index';
|
|
42
|
-
export { ItemCategoryCard } from './ItemCategoryCard/index';
|
|
43
|
-
export { ItemCategoryForm } from './ItemCategoryForm/index';
|
|
44
40
|
export { I18n } from './I18n/index';
|
|
45
41
|
export { ItemCard } from './ItemCard/index';
|
|
46
42
|
export { ItemForm } from './ItemForm/index';
|
|
@@ -55,7 +51,6 @@ export { PaymentMethodCard } from './PaymentMethodCard/index';
|
|
|
55
51
|
export { QueryBuilder } from './QueryBuilder/index';
|
|
56
52
|
export { SignInForm } from './SignInForm/index';
|
|
57
53
|
export { Spinner } from './Spinner/index';
|
|
58
|
-
export { StoreShippingMethodForm } from './StoreShippingMethodForm/index';
|
|
59
54
|
export { SubscriptionCard } from './SubscriptionCard/index';
|
|
60
55
|
export { SubscriptionForm } from './SubscriptionForm/index';
|
|
61
56
|
export { SubscriptionsTable } from './SubscriptionsTable/index';
|
|
@@ -29,18 +29,14 @@ export { DiscountDetailCard } from "./DiscountDetailCard/index.js";
|
|
|
29
29
|
export { ReportForm } from "./ReportForm/index.js";
|
|
30
30
|
export { ReportsTable } from "./ReportsTable/index.js";
|
|
31
31
|
export { Donation } from "./Donation/index.js";
|
|
32
|
-
export { EmailTemplateCard } from "./EmailTemplateCard/index.js";
|
|
33
32
|
export { EmailTemplateForm } from "./EmailTemplateForm/index.js";
|
|
34
33
|
export { ErrorEntryCard } from "./ErrorEntryCard/index.js";
|
|
35
34
|
export { FormDialog } from "./FormDialog/index.js";
|
|
36
35
|
export { GenerateCodesForm } from "./GenerateCodesForm/index.js";
|
|
37
36
|
export { GiftCardCard } from "./GiftCardCard/index.js";
|
|
38
37
|
export { GiftCardCodeForm } from "./GiftCardCodeForm/index.js";
|
|
39
|
-
export { GiftCardCodeLogCard } from "./GiftCardCodeLogCard/index.js";
|
|
40
38
|
export { GiftCardCodesForm } from "./GiftCardCodesForm/index.js";
|
|
41
39
|
export { GiftCardForm } from "./GiftCardForm/index.js";
|
|
42
|
-
export { ItemCategoryCard } from "./ItemCategoryCard/index.js";
|
|
43
|
-
export { ItemCategoryForm } from "./ItemCategoryForm/index.js";
|
|
44
40
|
export { I18n } from "./I18n/index.js";
|
|
45
41
|
export { ItemCard } from "./ItemCard/index.js";
|
|
46
42
|
export { ItemForm } from "./ItemForm/index.js";
|
|
@@ -55,7 +51,6 @@ export { PaymentMethodCard } from "./PaymentMethodCard/index.js";
|
|
|
55
51
|
export { QueryBuilder } from "./QueryBuilder/index.js";
|
|
56
52
|
export { SignInForm } from "./SignInForm/index.js";
|
|
57
53
|
export { Spinner } from "./Spinner/index.js";
|
|
58
|
-
export { StoreShippingMethodForm } from "./StoreShippingMethodForm/index.js";
|
|
59
54
|
export { SubscriptionCard } from "./SubscriptionCard/index.js";
|
|
60
55
|
export { SubscriptionForm } from "./SubscriptionForm/index.js";
|
|
61
56
|
export { SubscriptionsTable } from "./SubscriptionsTable/index.js";
|