@vtex/faststore 0.0.8 → 0.0.11
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/CHANGELOG.md +101 -0
- package/README.md +0 -1
- package/dist/actions.json +48 -1
- package/dist/catalog.json +1397 -1594
- package/dist/cli/index.d.ts +66 -28
- package/dist/cli/index.js +7371 -512
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/server-runtime.js +41 -60
- package/dist/cli/server-runtime.js.map +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.js +2 -2
- package/dist/components.d.ts +67 -56
- package/dist/components.js +64 -53
- package/dist/content-types.json +5886 -555
- package/dist/core/dist/define-component.d.ts +7 -2
- package/dist/core/dist/define-content-type.d.ts +50 -2
- package/dist/core/dist/define-content-type.js +107 -3
- package/dist/core/dist/define-content-type.js.map +1 -1
- package/dist/core/dist/index.d.ts +2 -2
- package/dist/docs/access-code-field.md +1 -1
- package/dist/docs/access-code-sign-in.md +126 -77
- package/dist/docs/account-address-book.md +210 -95
- package/dist/docs/account-entry-point.md +4 -4
- package/dist/docs/account-menu.md +16 -17
- package/dist/docs/account-saved-cards.md +306 -0
- package/dist/docs/alert-dialog.md +3 -1
- package/dist/docs/avatar.md +4 -2
- package/dist/docs/billing-address.md +99 -30
- package/dist/docs/binding-switcher.md +157 -0
- package/dist/docs/buy-button.md +7 -8
- package/dist/docs/card-entry.md +42 -29
- package/dist/docs/card-summary.md +185 -0
- package/dist/docs/cardholder-document.md +5 -3
- package/dist/docs/carousel.md +5 -4
- package/dist/docs/cart-destination.md +251 -0
- package/dist/docs/cart-item.md +48 -15
- package/dist/docs/cart-totalizer.md +8 -6
- package/dist/docs/cart.md +240 -39
- package/dist/docs/challenge-return.md +135 -0
- package/dist/docs/client-preferences-fieldset.md +10 -5
- package/dist/docs/client-preferences.md +31 -8
- package/dist/docs/client-profile-fieldset.md +20 -6
- package/dist/docs/client-profile.md +12 -3
- package/dist/docs/copy-text.md +9 -7
- package/dist/docs/document-field.md +1 -1
- package/dist/docs/email-field.md +2 -1
- package/dist/docs/email-identification.md +12 -2
- package/dist/docs/footer-copyright.md +4 -2
- package/dist/docs/footer-social.md +1 -1
- package/dist/docs/form.md +54 -18
- package/dist/docs/free-shipping-progress.md +18 -13
- package/dist/docs/identity-edit.md +8 -2
- package/dist/docs/identity-summary.md +18 -5
- package/dist/docs/incentives.md +2 -2
- package/dist/docs/installments.md +46 -32
- package/dist/docs/logo.md +1 -1
- package/dist/docs/my-account-profile.md +16 -11
- package/dist/docs/navigation-link.md +5 -3
- package/dist/docs/order-cancel.md +3 -1
- package/dist/docs/order-delivery-address.md +7 -5
- package/dist/docs/order-delivery-group.md +1 -3
- package/dist/docs/order-details-back.md +1 -1
- package/dist/docs/order-details-header.md +1 -4
- package/dist/docs/order-invoice-download.md +60 -0
- package/dist/docs/order-list-row.md +1 -1
- package/dist/docs/order-list-search.md +13 -20
- package/dist/docs/order-list-views.md +11 -17
- package/dist/docs/order-list.md +12 -5
- package/dist/docs/order-payment.md +9 -7
- package/dist/docs/order-placed-date.md +1 -1
- package/dist/docs/order-placed-payment-summary.md +28 -15
- package/dist/docs/order-placed.md +49 -14
- package/dist/docs/order-progress.md +1 -1
- package/dist/docs/order-status-badge.md +20 -9
- package/dist/docs/order-summary.md +2 -2
- package/dist/docs/order-tracking-link.md +58 -0
- package/dist/docs/payment-method-badges.md +32 -6
- package/dist/docs/payment-methods.md +2 -2
- package/dist/docs/payment.md +36 -17
- package/dist/docs/phone-field.md +4 -4
- package/dist/docs/place-order.md +84 -36
- package/dist/docs/postal-code-field.md +3 -1
- package/dist/docs/pricing.md +21 -23
- package/dist/docs/product-gallery.md +19 -20
- package/dist/docs/product-information.md +14 -10
- package/dist/docs/product-list.md +7 -6
- package/dist/docs/product-shelf.md +7 -1
- package/dist/docs/promotion.md +4 -2
- package/dist/docs/region.md +23 -15
- package/dist/docs/save-card.md +7 -6
- package/dist/docs/saved-cards.md +65 -36
- package/dist/docs/select.md +3 -4
- package/dist/docs/shipping-address.md +57 -21
- package/dist/docs/shipping-simulator.md +53 -15
- package/dist/docs/sign-in-disclosure.md +176 -0
- package/dist/docs/sign-in-form.md +78 -47
- package/dist/docs/sign-in-redirect.md +5 -3
- package/dist/docs/sign-in.md +173 -0
- package/dist/docs/toast.md +45 -16
- package/dist/docs/variant-selector.md +15 -11
- package/dist/graphql/types.d.ts +4 -14
- package/dist/index.d.ts +3 -2
- package/dist/internal/client.d.ts +4 -3
- package/dist/internal/client.js +5 -2
- package/dist/internal/server.d.ts +10 -5
- package/dist/internal/server.js +9 -4
- package/dist/matter/access-code-sign-in/access-code-sign-in.d.ts +250 -66
- package/dist/matter/access-code-sign-in/access-code-sign-in.js +459 -188
- package/dist/matter/access-code-sign-in/access-code-sign-in.js.map +1 -1
- package/dist/matter/account-address-book/account-address-book-delete.d.ts +78 -40
- package/dist/matter/account-address-book/account-address-book-delete.js +86 -50
- package/dist/matter/account-address-book/account-address-book-delete.js.map +1 -1
- package/dist/matter/account-address-book/account-address-book-deliverability.d.ts +21 -4
- package/dist/matter/account-address-book/account-address-book-deliverability.js +45 -17
- package/dist/matter/account-address-book/account-address-book-deliverability.js.map +1 -1
- package/dist/matter/account-address-book/account-address-book-form-parts.d.ts +74 -19
- package/dist/matter/account-address-book/account-address-book-form-parts.js +77 -26
- package/dist/matter/account-address-book/account-address-book-form-parts.js.map +1 -1
- package/dist/matter/account-address-book/account-address-book-profile-notice.d.ts +27 -6
- package/dist/matter/account-address-book/account-address-book-profile-notice.js +55 -28
- package/dist/matter/account-address-book/account-address-book-profile-notice.js.map +1 -1
- package/dist/matter/account-address-book/account-address-book.d.ts +67 -14
- package/dist/matter/account-address-book/account-address-book.js +74 -33
- package/dist/matter/account-address-book/account-address-book.js.map +1 -1
- package/dist/matter/account-address-book/account-address-country-switch.js +3 -3
- package/dist/matter/account-address-book/account-address-country-switch.js.map +1 -1
- package/dist/matter/account-address-book/account-address-country.d.ts +66 -20
- package/dist/matter/account-address-book/account-address-country.js +83 -49
- package/dist/matter/account-address-book/account-address-country.js.map +1 -1
- package/dist/matter/account-address-book/account-address-form-context.d.ts +8 -4
- package/dist/matter/account-address-book/account-address-form-context.js.map +1 -1
- package/dist/matter/account-address-book/account-address-form.d.ts +468 -45
- package/dist/matter/account-address-book/account-address-form.js +518 -155
- package/dist/matter/account-address-book/account-address-form.js.map +1 -1
- package/dist/matter/account-address-book/account-address-record.d.ts +27 -6
- package/dist/matter/account-address-book/account-address-record.js +32 -17
- package/dist/matter/account-address-book/account-address-record.js.map +1 -1
- package/dist/matter/account-menu/account-menu.d.ts +34 -17
- package/dist/matter/account-menu/account-menu.js +46 -54
- package/dist/matter/account-menu/account-menu.js.map +1 -1
- package/dist/matter/account-menu-identity/account-menu-identity.js +1 -1
- package/dist/matter/account-saved-cards/account-saved-cards.d.ts +463 -0
- package/dist/matter/account-saved-cards/account-saved-cards.js +1011 -0
- package/dist/matter/account-saved-cards/account-saved-cards.js.map +1 -0
- package/dist/matter/billing-address/billing-address.d.ts +156 -74
- package/dist/matter/billing-address/billing-address.js +227 -156
- package/dist/matter/billing-address/billing-address.js.map +1 -1
- package/dist/matter/breadcrumb/breadcrumb.d.ts +21 -3
- package/dist/matter/breadcrumb/breadcrumb.js +24 -9
- package/dist/matter/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/matter/buy-button/buy-button.d.ts +8 -11
- package/dist/matter/buy-button/buy-button.js +10 -19
- package/dist/matter/buy-button/buy-button.js.map +1 -1
- package/dist/matter/card-entry/card-capture.js +12 -4
- package/dist/matter/card-entry/card-capture.js.map +1 -1
- package/dist/matter/card-entry/card-entry.d.ts +123 -32
- package/dist/matter/card-entry/card-entry.js +348 -221
- package/dist/matter/card-entry/card-entry.js.map +1 -1
- package/dist/matter/cart/cart-namespace.d.ts +11 -1
- package/dist/matter/cart/cart-namespace.js +11 -1
- package/dist/matter/cart/cart-namespace.js.map +1 -1
- package/dist/matter/cart/cart.d.ts +416 -45
- package/dist/matter/cart/cart.js +782 -101
- package/dist/matter/cart/cart.js.map +1 -1
- package/dist/matter/cart-destination/cart-destination.d.ts +233 -0
- package/dist/matter/cart-destination/cart-destination.js +703 -0
- package/dist/matter/cart-destination/cart-destination.js.map +1 -0
- package/dist/matter/cart-item/cart-item.d.ts +145 -16
- package/dist/matter/cart-item/cart-item.js +230 -54
- package/dist/matter/cart-item/cart-item.js.map +1 -1
- package/dist/matter/cart-item-compositions/cart-item-compositions.js +1 -1
- package/dist/matter/cart-item-compositions/cart-item-compositions.js.map +1 -1
- package/dist/matter/cart-item-customizations/cart-item-customizations.js +1 -1
- package/dist/matter/cart-item-customizations/cart-item-customizations.js.map +1 -1
- package/dist/matter/cart-item-discounts/cart-item-discounts.js +1 -1
- package/dist/matter/cart-item-discounts/cart-item-discounts.js.map +1 -1
- package/dist/matter/cart-item-seller-info/cart-item-seller-info.js +1 -1
- package/dist/matter/cart-item-seller-info/cart-item-seller-info.js.map +1 -1
- package/dist/matter/cart-item-variations/cart-item-variations.js +1 -1
- package/dist/matter/cart-item-variations/cart-item-variations.js.map +1 -1
- package/dist/matter/cart-totalizer/cart-totalizer.d.ts +43 -9
- package/dist/matter/cart-totalizer/cart-totalizer.js +49 -19
- package/dist/matter/cart-totalizer/cart-totalizer.js.map +1 -1
- package/dist/matter/challenge-return/challenge-return.d.ts +62 -0
- package/dist/matter/challenge-return/challenge-return.js +241 -0
- package/dist/matter/challenge-return/challenge-return.js.map +1 -0
- package/dist/matter/client-preferences/client-preferences-fieldset.d.ts +86 -17
- package/dist/matter/client-preferences/client-preferences-fieldset.js +126 -54
- package/dist/matter/client-preferences/client-preferences-fieldset.js.map +1 -1
- package/dist/matter/client-preferences/client-preferences.d.ts +50 -7
- package/dist/matter/client-preferences/client-preferences.js +84 -15
- package/dist/matter/client-preferences/client-preferences.js.map +1 -1
- package/dist/matter/client-profile/client-profile.d.ts +44 -9
- package/dist/matter/client-profile/client-profile.js +64 -24
- package/dist/matter/client-profile/client-profile.js.map +1 -1
- package/dist/matter/client-profile-form/client-profile-fieldset.d.ts +119 -22
- package/dist/matter/client-profile-form/client-profile-fieldset.js +161 -73
- package/dist/matter/client-profile-form/client-profile-fieldset.js.map +1 -1
- package/dist/matter/delivery-options/delivery-options-accordion.d.ts +49 -4
- package/dist/matter/delivery-options/delivery-options-accordion.js +67 -14
- package/dist/matter/delivery-options/delivery-options-accordion.js.map +1 -1
- package/dist/matter/delivery-options/delivery-options-controller.d.ts +69 -9
- package/dist/matter/delivery-options/delivery-options-controller.js +80 -14
- package/dist/matter/delivery-options/delivery-options-controller.js.map +1 -1
- package/dist/matter/delivery-options/delivery-options.d.ts +37 -2
- package/dist/matter/delivery-options/delivery-options.js +75 -12
- package/dist/matter/delivery-options/delivery-options.js.map +1 -1
- package/dist/matter/delivery-options/use-delivery-option-selection.d.ts +1 -0
- package/dist/matter/delivery-options/use-delivery-option-selection.js +1 -1
- package/dist/matter/delivery-options/use-delivery-option-selection.js.map +1 -1
- package/dist/matter/email-identification/email-identification.d.ts +25 -3
- package/dist/matter/email-identification/email-identification.js +49 -12
- package/dist/matter/email-identification/email-identification.js.map +1 -1
- package/dist/matter/free-shipping-progress/free-shipping-progress.d.ts +85 -10
- package/dist/matter/free-shipping-progress/free-shipping-progress.js +153 -53
- package/dist/matter/free-shipping-progress/free-shipping-progress.js.map +1 -1
- package/dist/matter/identity-edit/identity-edit.d.ts +52 -10
- package/dist/matter/identity-edit/identity-edit.js +47 -19
- package/dist/matter/identity-edit/identity-edit.js.map +1 -1
- package/dist/matter/identity-summary/identity-summary.d.ts +76 -22
- package/dist/matter/identity-summary/identity-summary.js +95 -45
- package/dist/matter/identity-summary/identity-summary.js.map +1 -1
- package/dist/matter/installments/installments-select.d.ts +98 -16
- package/dist/matter/installments/installments-select.js +156 -48
- package/dist/matter/installments/installments-select.js.map +1 -1
- package/dist/matter/installments/installments.d.ts +96 -16
- package/dist/matter/installments/installments.js +115 -40
- package/dist/matter/installments/installments.js.map +1 -1
- package/dist/matter/installments/use-installments-selection.d.ts +1 -0
- package/dist/matter/installments/use-installments-selection.js +8 -3
- package/dist/matter/installments/use-installments-selection.js.map +1 -1
- package/dist/matter/my-account-profile/my-account-profile.d.ts +358 -103
- package/dist/matter/my-account-profile/my-account-profile.js +370 -174
- package/dist/matter/my-account-profile/my-account-profile.js.map +1 -1
- package/dist/matter/order-cancel/order-cancel.d.ts +65 -19
- package/dist/matter/order-cancel/order-cancel.js +118 -51
- package/dist/matter/order-cancel/order-cancel.js.map +1 -1
- package/dist/matter/order-delivery-address/order-delivery-address.d.ts +8 -18
- package/dist/matter/order-delivery-address/order-delivery-address.js +14 -23
- package/dist/matter/order-delivery-address/order-delivery-address.js.map +1 -1
- package/dist/matter/order-delivery-group/order-delivery-group.d.ts +40 -24
- package/dist/matter/order-delivery-group/order-delivery-group.js +64 -74
- package/dist/matter/order-delivery-group/order-delivery-group.js.map +1 -1
- package/dist/matter/order-details-header/order-details-header.d.ts +32 -15
- package/dist/matter/order-details-header/order-details-header.js +66 -58
- package/dist/matter/order-details-header/order-details-header.js.map +1 -1
- package/dist/matter/order-invoice-download/order-invoice-download.d.ts +78 -0
- package/dist/matter/order-invoice-download/order-invoice-download.js +173 -0
- package/dist/matter/order-invoice-download/order-invoice-download.js.map +1 -0
- package/dist/matter/order-list/order-list.d.ts +164 -19
- package/dist/matter/order-list/order-list.js +229 -87
- package/dist/matter/order-list/order-list.js.map +1 -1
- package/dist/matter/order-list-row/order-list-row.d.ts +6 -1
- package/dist/matter/order-list-row/order-list-row.js +3 -2
- package/dist/matter/order-list-row/order-list-row.js.map +1 -1
- package/dist/matter/order-list-search/order-list-search.d.ts +18 -26
- package/dist/matter/order-list-search/order-list-search.js +30 -69
- package/dist/matter/order-list-search/order-list-search.js.map +1 -1
- package/dist/matter/order-list-views/order-list-views.d.ts +15 -22
- package/dist/matter/order-list-views/order-list-views.js +22 -68
- package/dist/matter/order-list-views/order-list-views.js.map +1 -1
- package/dist/matter/order-payment/order-payment.d.ts +33 -10
- package/dist/matter/order-payment/order-payment.js +44 -39
- package/dist/matter/order-payment/order-payment.js.map +1 -1
- package/dist/matter/order-placed/order-placed-deliveries.d.ts +144 -12
- package/dist/matter/order-placed/order-placed-deliveries.js +115 -40
- package/dist/matter/order-placed/order-placed-deliveries.js.map +1 -1
- package/dist/matter/order-placed/order-placed.d.ts +198 -31
- package/dist/matter/order-placed/order-placed.js +230 -139
- package/dist/matter/order-placed/order-placed.js.map +1 -1
- package/dist/matter/order-placed-date/order-placed-date.d.ts +5 -8
- package/dist/matter/order-placed-date/order-placed-date.js +7 -8
- package/dist/matter/order-placed-date/order-placed-date.js.map +1 -1
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.d.ts +90 -17
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js +93 -117
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js.map +1 -1
- package/dist/matter/order-progress/order-progress.d.ts +19 -8
- package/dist/matter/order-progress/order-progress.js +37 -45
- package/dist/matter/order-progress/order-progress.js.map +1 -1
- package/dist/matter/order-summary/order-summary.d.ts +19 -9
- package/dist/matter/order-summary/order-summary.js +38 -44
- package/dist/matter/order-summary/order-summary.js.map +1 -1
- package/dist/matter/order-tracking-link/order-tracking-link.d.ts +43 -0
- package/dist/matter/order-tracking-link/order-tracking-link.js +107 -0
- package/dist/matter/order-tracking-link/order-tracking-link.js.map +1 -0
- package/dist/matter/payment/payment-card-capture.js +17 -10
- package/dist/matter/payment/payment-card-capture.js.map +1 -1
- package/dist/matter/payment/payment-controller.d.ts +4 -2
- package/dist/matter/payment/payment-controller.js +30 -9
- package/dist/matter/payment/payment-controller.js.map +1 -1
- package/dist/matter/payment/payment-method-badges.js +1 -1
- package/dist/matter/payment/payment.d.ts +69 -19
- package/dist/matter/payment/payment.js +101 -35
- package/dist/matter/payment/payment.js.map +1 -1
- package/dist/matter/payment/use-payment-method-selection.d.ts +25 -4
- package/dist/matter/payment/use-payment-method-selection.js +94 -32
- package/dist/matter/payment/use-payment-method-selection.js.map +1 -1
- package/dist/matter/payment/use-payment-submit-gate.d.ts +14 -3
- package/dist/matter/payment/use-payment-submit-gate.js +47 -8
- package/dist/matter/payment/use-payment-submit-gate.js.map +1 -1
- package/dist/matter/place-order/place-order.d.ts +171 -57
- package/dist/matter/place-order/place-order.js +376 -185
- package/dist/matter/place-order/place-order.js.map +1 -1
- package/dist/matter/pricing/pricing.d.ts +152 -13
- package/dist/matter/pricing/pricing.js +153 -52
- package/dist/matter/pricing/pricing.js.map +1 -1
- package/dist/matter/product-information/product-information.d.ts +27 -4
- package/dist/matter/product-information/product-information.js +32 -15
- package/dist/matter/product-information/product-information.js.map +1 -1
- package/dist/matter/product-list/product-list.d.ts +24 -6
- package/dist/matter/product-list/product-list.js +32 -26
- package/dist/matter/product-list/product-list.js.map +1 -1
- package/dist/matter/product-shelf/product-shelf.d.ts +8 -3
- package/dist/matter/product-shelf/product-shelf.js +111 -10
- package/dist/matter/product-shelf/product-shelf.js.map +1 -1
- package/dist/matter/region/region.d.ts +33 -16
- package/dist/matter/region/region.js +59 -52
- package/dist/matter/region/region.js.map +1 -1
- package/dist/matter/save-card/save-card.d.ts +43 -8
- package/dist/matter/save-card/save-card.js +61 -23
- package/dist/matter/save-card/save-card.js.map +1 -1
- package/dist/matter/saved-cards/saved-cards.d.ts +113 -21
- package/dist/matter/saved-cards/saved-cards.js +349 -77
- package/dist/matter/saved-cards/saved-cards.js.map +1 -1
- package/dist/matter/shipping-address/address-payload.js +25 -0
- package/dist/matter/shipping-address/address-payload.js.map +1 -0
- package/dist/matter/shipping-address/country-descriptors.js +71 -71
- package/dist/matter/shipping-address/country-descriptors.js.map +1 -1
- package/dist/matter/shipping-address/library-country-descriptors.js +136 -0
- package/dist/matter/shipping-address/library-country-descriptors.js.map +1 -0
- package/dist/matter/shipping-address/shipping-address.d.ts +312 -45
- package/dist/matter/shipping-address/shipping-address.js +443 -188
- package/dist/matter/shipping-address/shipping-address.js.map +1 -1
- package/dist/matter/shipping-simulator/shipping-simulator.d.ts +251 -25
- package/dist/matter/shipping-simulator/shipping-simulator.js +261 -51
- package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -1
- package/dist/matter/sign-in/sign-in.d.ts +108 -0
- package/dist/matter/sign-in/sign-in.js +285 -0
- package/dist/matter/sign-in/sign-in.js.map +1 -0
- package/dist/matter/sign-in-disclosure/sign-in-disclosure.d.ts +81 -0
- package/dist/matter/sign-in-disclosure/sign-in-disclosure.js +232 -0
- package/dist/matter/sign-in-disclosure/sign-in-disclosure.js.map +1 -0
- package/dist/matter/sign-in-form/sign-in-form.d.ts +93 -62
- package/dist/matter/sign-in-form/sign-in-form.js +134 -144
- package/dist/matter/sign-in-form/sign-in-form.js.map +1 -1
- package/dist/particles/binding-switcher/binding-switcher.d.ts +59 -0
- package/dist/particles/binding-switcher/binding-switcher.js +194 -0
- package/dist/particles/binding-switcher/binding-switcher.js.map +1 -0
- package/dist/particles/card-summary/card-network.d.ts +17 -0
- package/dist/particles/card-summary/card-network.js +25 -0
- package/dist/particles/card-summary/card-network.js.map +1 -0
- package/dist/particles/card-summary/card-summary.d.ts +113 -0
- package/dist/particles/card-summary/card-summary.js +221 -0
- package/dist/particles/card-summary/card-summary.js.map +1 -0
- package/dist/particles/carousel/carousel.d.ts +99 -11
- package/dist/particles/carousel/carousel.js +103 -35
- package/dist/particles/carousel/carousel.js.map +1 -1
- package/dist/particles/copy-text/copy-text.js +5 -15
- package/dist/particles/copy-text/copy-text.js.map +1 -1
- package/dist/particles/dialog/dialog.d.ts +14 -6
- package/dist/particles/dialog/dialog.js +6 -3
- package/dist/particles/dialog/dialog.js.map +1 -1
- package/dist/particles/drawer/drawer.js +1 -1
- package/dist/particles/drawer/drawer.js.map +1 -1
- package/dist/particles/email-field/email-field.d.ts +2 -1
- package/dist/particles/email-field/email-field.js +2 -1
- package/dist/particles/email-field/email-field.js.map +1 -1
- package/dist/particles/footer-link-group/footer-link-group.js +1 -0
- package/dist/particles/footer-link-group/footer-link-group.js.map +1 -1
- package/dist/particles/footer-social/footer-social.d.ts +1 -1
- package/dist/particles/footer-social/footer-social.js +1 -1
- package/dist/particles/footer-social/footer-social.js.map +1 -1
- package/dist/particles/form/form.d.ts +85 -13
- package/dist/particles/form/form.js +91 -42
- package/dist/particles/form/form.js.map +1 -1
- package/dist/particles/gallery/gallery.d.ts +129 -12
- package/dist/particles/gallery/gallery.js +121 -34
- package/dist/particles/gallery/gallery.js.map +1 -1
- package/dist/particles/incentives/incentives.d.ts +1 -1
- package/dist/particles/incentives/incentives.js +1 -1
- package/dist/particles/incentives/incentives.js.map +1 -1
- package/dist/particles/order-details-back/order-details-back.d.ts +5 -3
- package/dist/particles/order-details-back/order-details-back.js +8 -10
- package/dist/particles/order-details-back/order-details-back.js.map +1 -1
- package/dist/particles/order-status-badge/order-status-badge.d.ts +3 -3
- package/dist/particles/order-status-badge/order-status-badge.js +4 -20
- package/dist/particles/order-status-badge/order-status-badge.js.map +1 -1
- package/dist/particles/password-field/password-field.d.ts +1 -1
- package/dist/particles/password-field/password-field.js +2 -4
- package/dist/particles/password-field/password-field.js.map +1 -1
- package/dist/particles/payment-methods/payment-methods.d.ts +1 -1
- package/dist/particles/payment-methods/payment-methods.js +1 -1
- package/dist/particles/payment-methods/payment-methods.js.map +1 -1
- package/dist/particles/phone-field/phone-field.d.ts +4 -4
- package/dist/particles/phone-field/phone-field.js +8 -11
- package/dist/particles/phone-field/phone-field.js.map +1 -1
- package/dist/particles/spinner/spinner.d.ts +24 -4
- package/dist/particles/spinner/spinner.js +25 -9
- package/dist/particles/spinner/spinner.js.map +1 -1
- package/dist/particles/switch/switch.d.ts +4 -1
- package/dist/particles/switch/switch.js +3 -1
- package/dist/particles/switch/switch.js.map +1 -1
- package/dist/particles/toast/toast.d.ts +49 -9
- package/dist/particles/toast/toast.js +81 -15
- package/dist/particles/toast/toast.js.map +1 -1
- package/dist/schema.graphql +461 -89
- package/dist/sdk/actions/index.d.ts +3 -1
- package/dist/sdk/actions/index.js +3 -1
- package/dist/sdk/actions/locale-action-provider.d.ts +16 -0
- package/dist/sdk/actions/locale-action-provider.js +20 -0
- package/dist/sdk/actions/locale-action-provider.js.map +1 -0
- package/dist/sdk/actions/saved-card-action-provider.d.ts +12 -0
- package/dist/sdk/actions/saved-card-action-provider.js +16 -0
- package/dist/sdk/actions/saved-card-action-provider.js.map +1 -0
- package/dist/sdk/actions/types.d.ts +6 -2
- package/dist/sdk/address/address-fields.js +4 -4
- package/dist/sdk/address/address-fields.js.map +1 -1
- package/dist/sdk/address/constants.js +1 -6
- package/dist/sdk/address/constants.js.map +1 -1
- package/dist/sdk/address/messages.js +44 -44
- package/dist/sdk/address/messages.js.map +1 -1
- package/dist/sdk/address/postal-code.js +15 -2
- package/dist/sdk/address/postal-code.js.map +1 -1
- package/dist/sdk/address/types.d.ts +5 -3
- package/dist/sdk/address/validate-address.js +3 -3
- package/dist/sdk/address/validate-address.js.map +1 -1
- package/dist/sdk/analytics/use-analytics-actions.d.ts +1 -1
- package/dist/sdk/analytics/use-analytics-actions.js.map +1 -1
- package/dist/sdk/cache/storefront-cache.js +2 -1
- package/dist/sdk/cache/storefront-cache.js.map +1 -1
- package/dist/sdk/cart/operations.d.ts +2 -1
- package/dist/sdk/cart/operations.js +55 -1
- package/dist/sdk/cart/operations.js.map +1 -1
- package/dist/sdk/cart/optimistic.d.ts +30 -7
- package/dist/sdk/cart/optimistic.js +78 -41
- package/dist/sdk/cart/optimistic.js.map +1 -1
- package/dist/sdk/cart/use-cart-actions.d.ts +7 -0
- package/dist/sdk/cart/use-cart-actions.js +61 -15
- package/dist/sdk/cart/use-cart-actions.js.map +1 -1
- package/dist/sdk/cart/use-cart-sync-sales-channel.js +70 -0
- package/dist/sdk/cart/use-cart-sync-sales-channel.js.map +1 -0
- package/dist/sdk/data/index.js +2 -2
- package/dist/sdk/data/reactive-list-item-data-provider.js +2 -2
- package/dist/sdk/generated/gql.js +16 -12
- package/dist/sdk/generated/gql.js.map +1 -1
- package/dist/sdk/generated/graphql.d.ts +197 -51
- package/dist/sdk/generated/graphql.js +2318 -91
- package/dist/sdk/generated/graphql.js.map +1 -1
- package/dist/sdk/i18n/format-error-code.js +23 -0
- package/dist/sdk/i18n/format-error-code.js.map +1 -0
- package/dist/sdk/i18n/message-formatter.d.ts +22 -0
- package/dist/sdk/i18n/message-formatter.js +140 -0
- package/dist/sdk/i18n/message-formatter.js.map +1 -0
- package/dist/sdk/i18n/use-message-formatter.d.ts +8 -0
- package/dist/sdk/i18n/use-message-formatter.js +18 -0
- package/dist/sdk/i18n/use-message-formatter.js.map +1 -0
- package/dist/sdk/identity/use-identity-actions.js.map +1 -1
- package/dist/sdk/locale/binding-switch-provider.d.ts +13 -0
- package/dist/sdk/locale/binding-switch-provider.js +20 -0
- package/dist/sdk/locale/binding-switch-provider.js.map +1 -0
- package/dist/sdk/locale/use-locale-actions.d.ts +16 -0
- package/dist/sdk/locale/use-locale-actions.js +70 -0
- package/dist/sdk/locale/use-locale-actions.js.map +1 -0
- package/dist/sdk/navigation/binding-switch.d.ts +39 -0
- package/dist/sdk/navigation/binding-switch.js +129 -0
- package/dist/sdk/navigation/binding-switch.js.map +1 -0
- package/dist/sdk/navigation/decode-route-params.d.ts +11 -0
- package/dist/sdk/navigation/decode-route-params.js +32 -0
- package/dist/sdk/navigation/decode-route-params.js.map +1 -0
- package/dist/sdk/navigation/redirect.d.ts +2 -0
- package/dist/sdk/navigation/redirect.js +19 -1
- package/dist/sdk/navigation/redirect.js.map +1 -1
- package/dist/sdk/navigation/types.d.ts +13 -0
- package/dist/sdk/payment/bin-format.js +20 -0
- package/dist/sdk/payment/bin-format.js.map +1 -0
- package/dist/sdk/payment/challenge-return.js +37 -0
- package/dist/sdk/payment/challenge-return.js.map +1 -0
- package/dist/sdk/payment/confirmation-last-four.js +39 -0
- package/dist/sdk/payment/confirmation-last-four.js.map +1 -0
- package/dist/sdk/payment/gateway.d.ts +1 -1
- package/dist/sdk/payment/gateway.js +8 -2
- package/dist/sdk/payment/gateway.js.map +1 -1
- package/dist/sdk/payment/operations.d.ts +1 -0
- package/dist/sdk/payment/operations.js +28 -6
- package/dist/sdk/payment/operations.js.map +1 -1
- package/dist/sdk/payment/resumed-purchase.d.ts +1 -0
- package/dist/sdk/payment/resumed-purchase.js +119 -0
- package/dist/sdk/payment/resumed-purchase.js.map +1 -0
- package/dist/sdk/payment/security-code-mask.js +16 -23
- package/dist/sdk/payment/security-code-mask.js.map +1 -1
- package/dist/sdk/payment/submission-registry.js +6 -2
- package/dist/sdk/payment/submission-registry.js.map +1 -1
- package/dist/sdk/payment/use-payment-actions.d.ts +18 -3
- package/dist/sdk/payment/use-payment-actions.js +23 -3
- package/dist/sdk/payment/use-payment-actions.js.map +1 -1
- package/dist/sdk/payment/use-place-order.d.ts +10 -2
- package/dist/sdk/payment/use-place-order.js +138 -76
- package/dist/sdk/payment/use-place-order.js.map +1 -1
- package/dist/sdk/provider/storefront-provider.d.ts +1 -7
- package/dist/sdk/provider/storefront-provider.js +4 -11
- package/dist/sdk/provider/storefront-provider.js.map +1 -1
- package/dist/sdk/saved-cards/operations.d.ts +16 -0
- package/dist/sdk/saved-cards/operations.js +41 -0
- package/dist/sdk/saved-cards/operations.js.map +1 -0
- package/dist/sdk/saved-cards/use-saved-card-actions.d.ts +26 -0
- package/dist/sdk/saved-cards/use-saved-card-actions.js +86 -0
- package/dist/sdk/saved-cards/use-saved-card-actions.js.map +1 -0
- package/dist/sdk/seo/entity-landing.d.ts +24 -0
- package/dist/sdk/seo/entity-landing.js +30 -0
- package/dist/sdk/seo/entity-landing.js.map +1 -0
- package/dist/sdk/seo/page-alternates.d.ts +8 -5
- package/dist/sdk/seo/page-alternates.js +11 -14
- package/dist/sdk/seo/page-alternates.js.map +1 -1
- package/dist/sdk/seo/search-landing.d.ts +42 -0
- package/dist/sdk/seo/search-landing.js +85 -0
- package/dist/sdk/seo/search-landing.js.map +1 -0
- package/dist/sdk/session/mock-session.d.ts +9 -0
- package/dist/sdk/session/mock-session.js +31 -0
- package/dist/sdk/session/mock-session.js.map +1 -0
- package/dist/sdk/session/read-server-session.d.ts +3 -0
- package/dist/sdk/session/read-server-session.js +5 -0
- package/dist/sdk/session/read-server-session.js.map +1 -1
- package/dist/sdk/session/return-path-segment.d.ts +10 -0
- package/dist/sdk/session/return-path-segment.js +15 -0
- package/dist/sdk/session/return-path-segment.js.map +1 -0
- package/dist/sdk/session/use-session-actions.js.map +1 -1
- package/dist/sdk/shipping/shipping-operations.d.ts +1 -1
- package/dist/sdk/shipping/shipping-operations.js +13 -0
- package/dist/sdk/shipping/shipping-operations.js.map +1 -1
- package/dist/sdk/shipping/use-cart-shipping-simulation.js.map +1 -1
- package/dist/sdk/shipping/use-shipping-actions.js.map +1 -1
- package/dist/sdk/shipping/use-shipping-simulation.js.map +1 -1
- package/dist/sdk/state/cart.d.ts +9 -2
- package/dist/sdk/state/cart.js +9 -2
- package/dist/sdk/state/cart.js.map +1 -1
- package/dist/utils/safe-href.d.ts +2 -0
- package/package.json +4 -3
- package/skills/storefront-asset/SKILL.md +2 -2
- package/skills/storefront-asset/references/api-side.md +27 -14
- package/skills/storefront-asset/references/findings.md +5 -2
- package/src/styles/tailwind.css +9 -2
- package/dist/matter/shipping-address/country-descriptors.d.ts +0 -1
- package/dist/message-locales.json +0 -7
- package/dist/sdk/i18n/client.d.ts +0 -4
- package/dist/sdk/i18n/client.js +0 -4
- package/dist/sdk/i18n/locales.d.ts +0 -8
- package/dist/sdk/i18n/locales.js +0 -57
- package/dist/sdk/i18n/locales.js.map +0 -1
- package/dist/sdk/i18n/messages/en-US.js +0 -164
- package/dist/sdk/i18n/messages/en-US.js.map +0 -1
- package/dist/sdk/i18n/messages/en-US.json +0 -159
- package/dist/sdk/i18n/messages/en-US.json.d.ts +0 -163
- package/dist/sdk/i18n/messages/es-ES.js +0 -164
- package/dist/sdk/i18n/messages/es-ES.js.map +0 -1
- package/dist/sdk/i18n/messages/es-ES.json +0 -159
- package/dist/sdk/i18n/messages/pt-BR.js +0 -164
- package/dist/sdk/i18n/messages/pt-BR.js.map +0 -1
- package/dist/sdk/i18n/messages/pt-BR.json +0 -159
- package/dist/sdk/i18n/provider.d.ts +0 -1
- package/dist/sdk/i18n/provider.js +0 -30
- package/dist/sdk/i18n/provider.js.map +0 -1
- package/dist/sdk/i18n/server.d.ts +0 -28
- package/dist/sdk/i18n/server.js +0 -59
- package/dist/sdk/i18n/server.js.map +0 -1
- package/dist/utils/resolve-authored-copy.js +0 -18
- package/dist/utils/resolve-authored-copy.js.map +0 -1
- package/dist/utils/substitute-template.js +0 -33
- package/dist/utils/substitute-template.js.map +0 -1
|
@@ -77,7 +77,7 @@ function orderTarget(href, orderId) {
|
|
|
77
77
|
const tail = cut === -1 ? "" : href.slice(cut);
|
|
78
78
|
return `${path.replace(/\/+$/, "")}/${encodeURIComponent(orderId)}${tail}`;
|
|
79
79
|
}
|
|
80
|
-
function OrderListRow({ $data, href = ORDER_PAGE, className, ref }) {
|
|
80
|
+
function OrderListRow({ $data, href = ORDER_PAGE, statusMessages, className, ref }) {
|
|
81
81
|
const { formatMoney, formatDate } = useStorefrontFormatters();
|
|
82
82
|
const badge = completionBadgeModel($data.completion);
|
|
83
83
|
const placed = instant($data.placedAt);
|
|
@@ -111,7 +111,8 @@ function OrderListRow({ $data, href = ORDER_PAGE, className, ref }) {
|
|
|
111
111
|
badge ? /* @__PURE__ */ jsx(OrderStatusBadge, {
|
|
112
112
|
state: badge.state,
|
|
113
113
|
tone: badge.tone,
|
|
114
|
-
label: badge.label
|
|
114
|
+
label: badge.label,
|
|
115
|
+
messages: statusMessages
|
|
115
116
|
}) : null,
|
|
116
117
|
estimate ? /* @__PURE__ */ jsx("time", {
|
|
117
118
|
dateTime: estimateValue($data) ?? void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-list-row.js","names":[],"sources":["../../../src/matter/order-list-row/order-list-row.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef, Ref } from 'react';\nimport { OrderStatusBadge } from '../../particles/order-status-badge/order-status-badge.js';\nimport { useStorefrontFormatters } from '../../sdk/format/client.js';\nimport { StorefrontLink } from '../../sdk/navigation/storefront-link.js';\nimport type { PageRef } from '../../sdk/navigation/types.js';\nimport { completionBadgeModel } from '../../sdk/orders/completion-badge.js';\n\nconst fragment = /* GraphQL */ `\n fragment OrderListRowData on CustomerOrderListItem {\n id\n placedAt\n total {\n amount\n currencyCode\n }\n itemCount\n completion {\n view\n label\n }\n shippingEstimatedDateMin\n shippingEstimatedDateMax\n }\n`;\n\nexport type OrderListItemData = {\n id: string;\n placedAt: string | null;\n total: { amount: string | number; currencyCode: string } | null;\n itemCount: number | null;\n completion: { view: string; label: string };\n shippingEstimatedDateMin: string | null;\n shippingEstimatedDateMax: string | null;\n};\n\nexport type OrderListRowProps = Readonly<{\n $data: OrderListItemData;\n /**\n * The order page; the row fills `orderId`. A string is the path the orders live under, and the row\n * appends its id. `OrderList` passes its `orderHref`.\n */\n href?: PageRef | string;\n className?: string;\n ref?: Ref<HTMLAnchorElement>;\n}>;\n\nexport const OrderListRowDefinition = defineComponent<OrderListRowProps>({\n name: 'OrderListRow',\n importPath: '@vtex/faststore/components',\n component: OrderListRow,\n fragment,\n skeleton: OrderListRowSkeleton,\n editor: { label: 'Order List Row', category: 'content' },\n schema: {},\n guideline:\n 'One order as a link to that order, showing its number, placed date, total, item count, and status badge, plus a delivery estimate while it is ongoing. The list renders it; do not place it on a page alone.',\n});\n\nfunction instant(value: string | null): Date | null {\n if (!value) {\n return null;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\nfunction moneyAmount(amount: string | number): number | null {\n const value = typeof amount === 'number' ? amount : Number(amount);\n return Number.isFinite(value) ? value : null;\n}\n\nfunction estimateValue(item: OrderListItemData): string | null {\n if (item.completion.view !== 'ONGOING') {\n return null;\n }\n const max = item.shippingEstimatedDateMax?.trim();\n if (max) {\n return max;\n }\n const min = item.shippingEstimatedDateMin?.trim();\n return min || null;\n}\n\nexport function OrderListRowSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>) {\n return (\n <div {...props} className={className} data-fs-order-list-row-skeleton=\"\" aria-hidden=\"true\">\n <span data-fs-order-list-row-skeleton-fact=\"\" />\n <span data-fs-order-list-row-skeleton-fact=\"\" />\n </div>\n );\n}\n\nconst ORDER_PAGE: PageRef = { standard: 'order' };\n\n/**\n * The row's own order: a reference gets `orderId` as a param, and a string is the path the orders\n * live under, which gets the encoded id as its last segment (before any query or hash).\n */\nfunction orderTarget(href: PageRef | string, orderId: string): PageRef | string {\n if (typeof href !== 'string') return { ...href, params: { ...href.params, orderId } };\n const cut = href.search(/[?#]/);\n const path = cut === -1 ? href : href.slice(0, cut);\n const tail = cut === -1 ? '' : href.slice(cut);\n return `${path.replace(/\\/+$/, '')}/${encodeURIComponent(orderId)}${tail}`;\n}\n\nexport function OrderListRow({ $data, href = ORDER_PAGE, className, ref }: OrderListRowProps) {\n const { formatMoney, formatDate } = useStorefrontFormatters();\n const badge = completionBadgeModel($data.completion);\n const placed = instant($data.placedAt);\n const amount = $data.total ? moneyAmount($data.total.amount) : null;\n const estimate = instant(estimateValue($data));\n\n return (\n <StorefrontLink\n ref={ref}\n href={orderTarget(href, $data.id)}\n aria-label={$data.id}\n className={className}\n data-fs-order-list-row=\"\"\n data-fs-order-list-row-state={badge?.state}\n >\n <span data-fs-order-list-row-id=\"\">{$data.id}</span>\n {placed ? (\n <time dateTime={$data.placedAt ?? undefined} data-fs-order-list-row-placed=\"\">\n {formatDate(placed)}\n </time>\n ) : null}\n {amount != null && $data.total ? (\n <span data-fs-order-list-row-total=\"\">{formatMoney(amount, { currency: $data.total.currencyCode })}</span>\n ) : null}\n {$data.itemCount == null ? null : <span data-fs-order-list-row-count=\"\">{$data.itemCount}</span>}\n {badge ? <OrderStatusBadge state={badge.state} tone={badge.tone} label={badge.label}
|
|
1
|
+
{"version":3,"file":"order-list-row.js","names":[],"sources":["../../../src/matter/order-list-row/order-list-row.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef, Ref } from 'react';\nimport { OrderStatusBadge, type OrderStatusMessages } from '../../particles/order-status-badge/order-status-badge.js';\nimport { useStorefrontFormatters } from '../../sdk/format/client.js';\nimport { StorefrontLink } from '../../sdk/navigation/storefront-link.js';\nimport type { PageRef } from '../../sdk/navigation/types.js';\nimport { completionBadgeModel } from '../../sdk/orders/completion-badge.js';\n\nconst fragment = /* GraphQL */ `\n fragment OrderListRowData on CustomerOrderListItem {\n id\n placedAt\n total {\n amount\n currencyCode\n }\n itemCount\n completion {\n view\n label\n }\n shippingEstimatedDateMin\n shippingEstimatedDateMax\n }\n`;\n\nexport type OrderListItemData = {\n id: string;\n placedAt: string | null;\n total: { amount: string | number; currencyCode: string } | null;\n itemCount: number | null;\n completion: { view: string; label: string };\n shippingEstimatedDateMin: string | null;\n shippingEstimatedDateMax: string | null;\n};\n\nexport type OrderListRowProps = Readonly<{\n $data: OrderListItemData;\n /**\n * The order page; the row fills `orderId`. A string is the path the orders live under, and the row\n * appends its id. `OrderList` passes its `orderHref`.\n */\n href?: PageRef | string;\n /** The formatted status sentences. `OrderList` passes its own `status*` messages. */\n statusMessages: OrderStatusMessages;\n className?: string;\n ref?: Ref<HTMLAnchorElement>;\n}>;\n\nexport const OrderListRowDefinition = defineComponent<OrderListRowProps>({\n name: 'OrderListRow',\n importPath: '@vtex/faststore/components',\n component: OrderListRow,\n fragment,\n skeleton: OrderListRowSkeleton,\n editor: { label: 'Order List Row', category: 'content' },\n schema: {},\n guideline:\n 'One order as a link to that order, showing its number, placed date, total, item count, and status badge, plus a delivery estimate while it is ongoing. The list renders it; do not place it on a page alone.',\n});\n\nfunction instant(value: string | null): Date | null {\n if (!value) {\n return null;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\nfunction moneyAmount(amount: string | number): number | null {\n const value = typeof amount === 'number' ? amount : Number(amount);\n return Number.isFinite(value) ? value : null;\n}\n\nfunction estimateValue(item: OrderListItemData): string | null {\n if (item.completion.view !== 'ONGOING') {\n return null;\n }\n const max = item.shippingEstimatedDateMax?.trim();\n if (max) {\n return max;\n }\n const min = item.shippingEstimatedDateMin?.trim();\n return min || null;\n}\n\nexport function OrderListRowSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>) {\n return (\n <div {...props} className={className} data-fs-order-list-row-skeleton=\"\" aria-hidden=\"true\">\n <span data-fs-order-list-row-skeleton-fact=\"\" />\n <span data-fs-order-list-row-skeleton-fact=\"\" />\n </div>\n );\n}\n\nconst ORDER_PAGE: PageRef = { standard: 'order' };\n\n/**\n * The row's own order: a reference gets `orderId` as a param, and a string is the path the orders\n * live under, which gets the encoded id as its last segment (before any query or hash).\n */\nfunction orderTarget(href: PageRef | string, orderId: string): PageRef | string {\n if (typeof href !== 'string') return { ...href, params: { ...href.params, orderId } };\n const cut = href.search(/[?#]/);\n const path = cut === -1 ? href : href.slice(0, cut);\n const tail = cut === -1 ? '' : href.slice(cut);\n return `${path.replace(/\\/+$/, '')}/${encodeURIComponent(orderId)}${tail}`;\n}\n\nexport function OrderListRow({ $data, href = ORDER_PAGE, statusMessages, className, ref }: OrderListRowProps) {\n const { formatMoney, formatDate } = useStorefrontFormatters();\n const badge = completionBadgeModel($data.completion);\n const placed = instant($data.placedAt);\n const amount = $data.total ? moneyAmount($data.total.amount) : null;\n const estimate = instant(estimateValue($data));\n\n return (\n <StorefrontLink\n ref={ref}\n href={orderTarget(href, $data.id)}\n aria-label={$data.id}\n className={className}\n data-fs-order-list-row=\"\"\n data-fs-order-list-row-state={badge?.state}\n >\n <span data-fs-order-list-row-id=\"\">{$data.id}</span>\n {placed ? (\n <time dateTime={$data.placedAt ?? undefined} data-fs-order-list-row-placed=\"\">\n {formatDate(placed)}\n </time>\n ) : null}\n {amount != null && $data.total ? (\n <span data-fs-order-list-row-total=\"\">{formatMoney(amount, { currency: $data.total.currencyCode })}</span>\n ) : null}\n {$data.itemCount == null ? null : <span data-fs-order-list-row-count=\"\">{$data.itemCount}</span>}\n {badge ? (\n <OrderStatusBadge state={badge.state} tone={badge.tone} label={badge.label} messages={statusMessages} />\n ) : null}\n {estimate ? (\n <time dateTime={estimateValue($data) ?? undefined} data-fs-order-list-row-estimate=\"\">\n {formatDate(estimate)}\n </time>\n ) : null}\n </StorefrontLink>\n );\n}\n"],"mappings":";;;;;;;;AAmDA,MAAa,yBAAyB,gBAAmC;CACvE,MAAM;CACN,YAAY;CACZ,WAAW;CACX;;;;;;;;;;;;;;;;;CACA,UAAU;CACV,QAAQ;EAAE,OAAO;EAAkB,UAAU;CAAU;CACvD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,SAAS,QAAQ,OAAmC;CAClD,IAAI,CAAC,OACH,OAAO;CAET,MAAM,OAAO,IAAI,KAAK,KAAK;CAC3B,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO;AAC/C;AAEA,SAAS,YAAY,QAAwC;CAC3D,MAAM,QAAQ,OAAO,WAAW,WAAW,SAAS,OAAO,MAAM;CACjE,OAAO,OAAO,SAAS,KAAK,IAAI,QAAQ;AAC1C;AAEA,SAAS,cAAc,MAAwC;CAC7D,IAAI,KAAK,WAAW,SAAS,WAC3B,OAAO;CAET,MAAM,MAAM,KAAK,0BAA0B,KAAK;CAChD,IAAI,KACF,OAAO;CAGT,OADY,KAAK,0BAA0B,KAAK,KAClC;AAChB;AAEA,SAAgB,qBAAqB,EAAE,WAAW,GAAG,SAAuC;CAC1F,OACE,qBAAC,OAAD;EAAK,GAAI;EAAkB;EAAW,mCAAgC;EAAG,eAAY;EAArF,UAAA,CACE,oBAAC,QAAD,EAAM,wCAAqC,GAAI,CAAA,GAC/C,oBAAC,QAAD,EAAM,wCAAqC,GAAI,CAAA,CAC5C;;AAET;AAEA,MAAM,aAAsB,EAAE,UAAU,QAAQ;;;;;AAMhD,SAAS,YAAY,MAAwB,SAAmC;CAC9E,IAAI,OAAO,SAAS,UAAU,OAAO;EAAE,GAAG;EAAM,QAAQ;GAAE,GAAG,KAAK;GAAQ;EAAQ;CAAE;CACpF,MAAM,MAAM,KAAK,OAAO,MAAM;CAC9B,MAAM,OAAO,QAAQ,KAAK,OAAO,KAAK,MAAM,GAAG,GAAG;CAClD,MAAM,OAAO,QAAQ,KAAK,KAAK,KAAK,MAAM,GAAG;CAC7C,OAAO,GAAG,KAAK,QAAQ,QAAQ,EAAE,EAAE,GAAG,mBAAmB,OAAO,IAAI;AACtE;AAEA,SAAgB,aAAa,EAAE,OAAO,OAAO,YAAY,gBAAgB,WAAW,OAA0B;CAC5G,MAAM,EAAE,aAAa,eAAe,wBAAwB;CAC5D,MAAM,QAAQ,qBAAqB,MAAM,UAAU;CACnD,MAAM,SAAS,QAAQ,MAAM,QAAQ;CACrC,MAAM,SAAS,MAAM,QAAQ,YAAY,MAAM,MAAM,MAAM,IAAI;CAC/D,MAAM,WAAW,QAAQ,cAAc,KAAK,CAAC;CAE7C,OACE,qBAAC,gBAAD;EACO;EACL,MAAM,YAAY,MAAM,MAAM,EAAE;EAChC,cAAY,MAAM;EACP;EACX,0BAAuB;EACvB,gCAA8B,OAAO;EANvC,UAAA;GAQE,oBAAC,QAAD;IAAM,6BAA0B;IAAI,UAAA,MAAM;GAAS,CAAA;GAClD,SACC,oBAAC,QAAD;IAAM,UAAU,MAAM,YAAY,KAAA;IAAW,iCAA8B;IACxE,UAAA,WAAW,MAAM;GACd,CAAA,IACJ;GACH,UAAU,QAAQ,MAAM,QACvB,oBAAC,QAAD;IAAM,gCAA6B;IAAI,UAAA,YAAY,QAAQ,EAAE,UAAU,MAAM,MAAM,aAAa,CAAC;GAAQ,CAAA,IACvG;GACH,MAAM,aAAa,OAAO,OAAO,oBAAC,QAAD;IAAM,gCAA6B;IAAI,UAAA,MAAM;GAAgB,CAAA;GAC9F,QACC,oBAAC,kBAAD;IAAkB,OAAO,MAAM;IAAO,MAAM,MAAM;IAAM,OAAO,MAAM;IAAO,UAAU;GAAiB,CAAA,IACrG;GACH,WACC,oBAAC,QAAD;IAAM,UAAU,cAAc,KAAK,KAAK,KAAA;IAAW,mCAAgC;IAChF,UAAA,WAAW,QAAQ;GAChB,CAAA,IACJ;EACU;;AAEpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContentValue } from "../../core/dist/define-content-type.js";
|
|
1
|
+
import { ContentValue, MessageLocaleProp } from "../../core/dist/define-content-type.js";
|
|
2
2
|
import { ComponentDefinition } from "../../core/dist/define-component.js";
|
|
3
3
|
import "../../core/dist/index.js";
|
|
4
4
|
import { Ref } from "react";
|
|
@@ -14,59 +14,51 @@ export declare const OrderListSearchContent: {
|
|
|
14
14
|
readonly label: {
|
|
15
15
|
readonly type: "string";
|
|
16
16
|
readonly title: "Order number";
|
|
17
|
+
readonly format: "icu-message";
|
|
18
|
+
readonly messageSource: "Order number";
|
|
17
19
|
};
|
|
18
20
|
readonly from: {
|
|
19
21
|
readonly type: "string";
|
|
20
22
|
readonly title: "Placed from";
|
|
23
|
+
readonly format: "icu-message";
|
|
24
|
+
readonly messageSource: "Placed from";
|
|
21
25
|
};
|
|
22
26
|
readonly to: {
|
|
23
27
|
readonly type: "string";
|
|
24
28
|
readonly title: "Placed to";
|
|
29
|
+
readonly format: "icu-message";
|
|
30
|
+
readonly messageSource: "Placed to";
|
|
25
31
|
};
|
|
26
32
|
readonly submit: {
|
|
27
33
|
readonly type: "string";
|
|
28
34
|
readonly title: "Search";
|
|
35
|
+
readonly format: "icu-message";
|
|
36
|
+
readonly messageSource: "Search";
|
|
29
37
|
};
|
|
30
38
|
readonly clear: {
|
|
31
39
|
readonly type: "string";
|
|
32
40
|
readonly title: "Clear search";
|
|
41
|
+
readonly format: "icu-message";
|
|
42
|
+
readonly messageSource: "Clear search";
|
|
33
43
|
};
|
|
34
44
|
readonly invalidRange: {
|
|
35
45
|
readonly type: "string";
|
|
36
46
|
readonly title: "Invalid range";
|
|
47
|
+
readonly description: "Shown when the from day is after the to day.";
|
|
48
|
+
readonly format: "icu-message";
|
|
49
|
+
readonly messageSource: "The start date is after the end date.";
|
|
37
50
|
};
|
|
38
51
|
};
|
|
39
52
|
};
|
|
40
53
|
};
|
|
41
54
|
export type OrderListSearchContentValue = ContentValue<typeof OrderListSearchContent>;
|
|
42
|
-
export type OrderListSearchProps = Readonly<{
|
|
43
|
-
/**
|
|
44
|
-
label?: string;
|
|
45
|
-
fromLabel?: string;
|
|
46
|
-
toLabel?: string;
|
|
47
|
-
submitLabel?: string;
|
|
48
|
-
clearLabel?: string;
|
|
49
|
-
/** Shown when the from day is after the to day. */
|
|
50
|
-
invalidRangeMessage?: string;
|
|
51
|
-
/** Injected by the compiler from the page content entry. */
|
|
55
|
+
export type OrderListSearchProps = MessageLocaleProp & Readonly<{
|
|
56
|
+
/** The field labels, the button labels and the invalid-range message. */
|
|
52
57
|
$content?: OrderListSearchContentValue;
|
|
53
58
|
className?: string;
|
|
54
59
|
ref?: Ref<HTMLFormElement>;
|
|
55
60
|
}>;
|
|
56
|
-
export declare const OrderListSearchDefinition: ComponentDefinition<
|
|
57
|
-
|
|
58
|
-
label?: string;
|
|
59
|
-
fromLabel?: string;
|
|
60
|
-
toLabel?: string;
|
|
61
|
-
submitLabel?: string;
|
|
62
|
-
clearLabel?: string;
|
|
63
|
-
/** Shown when the from day is after the to day. */
|
|
64
|
-
invalidRangeMessage?: string;
|
|
65
|
-
/** Injected by the compiler from the page content entry. */
|
|
66
|
-
$content?: OrderListSearchContentValue;
|
|
67
|
-
className?: string;
|
|
68
|
-
ref?: Ref<HTMLFormElement>;
|
|
69
|
-
}>>;
|
|
70
|
-
export declare function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, invalidRangeMessage, $content, className, ref }: OrderListSearchProps): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
export declare const OrderListSearchDefinition: ComponentDefinition<OrderListSearchProps>;
|
|
62
|
+
export declare function OrderListSearch({ $content, $locale, className, ref }: OrderListSearchProps): import("react/jsx-runtime").JSX.Element;
|
|
71
63
|
//#endregion
|
|
72
64
|
//# sourceMappingURL=order-list-search.d.ts.map
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { defineComponent } from "../../core/dist/define-component.js";
|
|
3
3
|
import { defineContentType } from "../../core/dist/define-content-type.js";
|
|
4
4
|
import "../../core/dist/index.js";
|
|
5
|
+
import { useMessageFormatter } from "../../sdk/i18n/use-message-formatter.js";
|
|
5
6
|
import { useStorefrontNavigation } from "../../sdk/navigation/use-storefront-navigation.js";
|
|
6
7
|
import { StorefrontLink } from "../../sdk/navigation/storefront-link.js";
|
|
7
8
|
import { useStorefrontRoute } from "../../sdk/navigation/use-storefront-route.js";
|
|
@@ -23,41 +24,46 @@ const OrderListSearchContent = defineContentType({
|
|
|
23
24
|
properties: {
|
|
24
25
|
label: {
|
|
25
26
|
type: "string",
|
|
26
|
-
title: "Order number"
|
|
27
|
+
title: "Order number",
|
|
28
|
+
format: "icu-message",
|
|
29
|
+
messageSource: "Order number"
|
|
27
30
|
},
|
|
28
31
|
from: {
|
|
29
32
|
type: "string",
|
|
30
|
-
title: "Placed from"
|
|
33
|
+
title: "Placed from",
|
|
34
|
+
format: "icu-message",
|
|
35
|
+
messageSource: "Placed from"
|
|
31
36
|
},
|
|
32
37
|
to: {
|
|
33
38
|
type: "string",
|
|
34
|
-
title: "Placed to"
|
|
39
|
+
title: "Placed to",
|
|
40
|
+
format: "icu-message",
|
|
41
|
+
messageSource: "Placed to"
|
|
35
42
|
},
|
|
36
43
|
submit: {
|
|
37
44
|
type: "string",
|
|
38
|
-
title: "Search"
|
|
45
|
+
title: "Search",
|
|
46
|
+
format: "icu-message",
|
|
47
|
+
messageSource: "Search"
|
|
39
48
|
},
|
|
40
49
|
clear: {
|
|
41
50
|
type: "string",
|
|
42
|
-
title: "Clear search"
|
|
51
|
+
title: "Clear search",
|
|
52
|
+
format: "icu-message",
|
|
53
|
+
messageSource: "Clear search"
|
|
43
54
|
},
|
|
44
55
|
invalidRange: {
|
|
45
56
|
type: "string",
|
|
46
|
-
title: "Invalid range"
|
|
57
|
+
title: "Invalid range",
|
|
58
|
+
description: "Shown when the from day is after the to day.",
|
|
59
|
+
format: "icu-message",
|
|
60
|
+
messageSource: "The start date is after the end date."
|
|
47
61
|
}
|
|
48
62
|
}
|
|
49
63
|
}
|
|
50
64
|
});
|
|
51
65
|
const DAY = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
52
66
|
const INSTANT = /^(\d{4})-(\d{2})-(\d{2})T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
|
|
53
|
-
const DEFAULTS = {
|
|
54
|
-
label: "Order number",
|
|
55
|
-
from: "Placed from",
|
|
56
|
-
to: "Placed to",
|
|
57
|
-
submit: "Search",
|
|
58
|
-
clear: "Clear search",
|
|
59
|
-
invalidRange: "The start date is after the end date."
|
|
60
|
-
};
|
|
61
67
|
const OrderListSearchDefinition = defineComponent({
|
|
62
68
|
name: "OrderListSearch",
|
|
63
69
|
importPath: "@vtex/faststore/components",
|
|
@@ -67,47 +73,9 @@ const OrderListSearchDefinition = defineComponent({
|
|
|
67
73
|
label: "Order List Search",
|
|
68
74
|
category: "action"
|
|
69
75
|
},
|
|
70
|
-
schema: {
|
|
71
|
-
|
|
72
|
-
type: "string",
|
|
73
|
-
default: "Order number",
|
|
74
|
-
label: "Order number"
|
|
75
|
-
},
|
|
76
|
-
fromLabel: {
|
|
77
|
-
type: "string",
|
|
78
|
-
default: "Placed from",
|
|
79
|
-
label: "Placed from"
|
|
80
|
-
},
|
|
81
|
-
toLabel: {
|
|
82
|
-
type: "string",
|
|
83
|
-
default: "Placed to",
|
|
84
|
-
label: "Placed to"
|
|
85
|
-
},
|
|
86
|
-
submitLabel: {
|
|
87
|
-
type: "string",
|
|
88
|
-
default: "Search",
|
|
89
|
-
label: "Search"
|
|
90
|
-
},
|
|
91
|
-
clearLabel: {
|
|
92
|
-
type: "string",
|
|
93
|
-
default: "Clear search",
|
|
94
|
-
label: "Clear search"
|
|
95
|
-
},
|
|
96
|
-
invalidRangeMessage: {
|
|
97
|
-
type: "string",
|
|
98
|
-
default: "The start date is after the end date.",
|
|
99
|
-
label: "Invalid range"
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
guideline: "A text field and a placed-date range that write search, placedFrom, and placedTo, keep the current view, and drop the cursor. An inverted range is not written."
|
|
76
|
+
schema: {},
|
|
77
|
+
guideline: "A text field and a placed-date range that write search, placedFrom, and placedTo, keep the current view, and drop the cursor. An inverted range is not written. Its copy is the $content fields label, from, to, submit, clear and invalidRange."
|
|
103
78
|
});
|
|
104
|
-
function resolveText(content, prop, fallback) {
|
|
105
|
-
const fromContent = content?.trim();
|
|
106
|
-
if (fromContent) return fromContent;
|
|
107
|
-
const fromProp = prop?.trim();
|
|
108
|
-
if (fromProp) return fromProp;
|
|
109
|
-
return fallback;
|
|
110
|
-
}
|
|
111
79
|
function calendarDay(value) {
|
|
112
80
|
if (value == null) return "";
|
|
113
81
|
const trimmed = value.trim();
|
|
@@ -193,7 +161,7 @@ function readFields(params) {
|
|
|
193
161
|
to: calendarDay(params.get("placedTo"))
|
|
194
162
|
};
|
|
195
163
|
}
|
|
196
|
-
function OrderListSearch({
|
|
164
|
+
function OrderListSearch({ $content, $locale, className, ref }) {
|
|
197
165
|
const route = useStorefrontRoute();
|
|
198
166
|
const searchParams = useStorefrontSearchParams();
|
|
199
167
|
const { push } = useStorefrontNavigation();
|
|
@@ -205,14 +173,7 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
|
|
|
205
173
|
setSeenCriteria(criteria);
|
|
206
174
|
setFields(readFields(searchParams));
|
|
207
175
|
}
|
|
208
|
-
const
|
|
209
|
-
label: resolveText($content?.label, label, DEFAULTS.label),
|
|
210
|
-
from: resolveText($content?.from, fromLabel, DEFAULTS.from),
|
|
211
|
-
to: resolveText($content?.to, toLabel, DEFAULTS.to),
|
|
212
|
-
submit: resolveText($content?.submit, submitLabel, DEFAULTS.submit),
|
|
213
|
-
clear: resolveText($content?.clear, clearLabel, DEFAULTS.clear),
|
|
214
|
-
invalidRange: resolveText($content?.invalidRange, invalidRangeMessage, DEFAULTS.invalidRange)
|
|
215
|
-
};
|
|
176
|
+
const { format } = useMessageFormatter(OrderListSearchContent, $content);
|
|
216
177
|
const rangeInvalid = inverted(fields.from, fields.to);
|
|
217
178
|
const showClear = applied(searchParams);
|
|
218
179
|
function onSubmit(event) {
|
|
@@ -228,7 +189,7 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
|
|
|
228
189
|
"data-fs-order-list-search-invalid": rangeInvalid ? "" : void 0,
|
|
229
190
|
onSubmit,
|
|
230
191
|
children: [
|
|
231
|
-
/* @__PURE__ */ jsxs(Field.Root, { children: [/* @__PURE__ */ jsx(Field.Label, { children:
|
|
192
|
+
/* @__PURE__ */ jsxs(Field.Root, { children: [/* @__PURE__ */ jsx(Field.Label, { children: format("label") }), /* @__PURE__ */ jsx(Input, {
|
|
232
193
|
type: "text",
|
|
233
194
|
value: fields.term,
|
|
234
195
|
"data-fs-order-list-search-term": "",
|
|
@@ -242,7 +203,7 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
|
|
|
242
203
|
})] }),
|
|
243
204
|
/* @__PURE__ */ jsxs(Field.Root, {
|
|
244
205
|
invalid: rangeInvalid,
|
|
245
|
-
children: [/* @__PURE__ */ jsx(Field.Label, { children:
|
|
206
|
+
children: [/* @__PURE__ */ jsx(Field.Label, { children: format("from") }), /* @__PURE__ */ jsx(Input, {
|
|
246
207
|
type: "date",
|
|
247
208
|
value: fields.from,
|
|
248
209
|
"aria-invalid": rangeInvalid || void 0,
|
|
@@ -259,7 +220,7 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
|
|
|
259
220
|
}),
|
|
260
221
|
/* @__PURE__ */ jsxs(Field.Root, {
|
|
261
222
|
invalid: rangeInvalid,
|
|
262
|
-
children: [/* @__PURE__ */ jsx(Field.Label, { children:
|
|
223
|
+
children: [/* @__PURE__ */ jsx(Field.Label, { children: format("to") }), /* @__PURE__ */ jsx(Input, {
|
|
263
224
|
type: "date",
|
|
264
225
|
value: fields.to,
|
|
265
226
|
"aria-invalid": rangeInvalid || void 0,
|
|
@@ -276,16 +237,16 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
|
|
|
276
237
|
}),
|
|
277
238
|
rangeInvalid ? /* @__PURE__ */ jsx("p", {
|
|
278
239
|
id: messageId,
|
|
279
|
-
children:
|
|
240
|
+
children: format("invalidRange")
|
|
280
241
|
}) : null,
|
|
281
242
|
/* @__PURE__ */ jsx(Button, {
|
|
282
243
|
type: "submit",
|
|
283
|
-
children:
|
|
244
|
+
children: format("submit")
|
|
284
245
|
}),
|
|
285
246
|
showClear ? /* @__PURE__ */ jsx(StorefrontLink, {
|
|
286
247
|
href: clearHref(route, searchParams),
|
|
287
248
|
"data-fs-order-list-search-clear": "",
|
|
288
|
-
children:
|
|
249
|
+
children: format("clear")
|
|
289
250
|
}) : null
|
|
290
251
|
]
|
|
291
252
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-list-search.js","names":[],"sources":["../../../src/matter/order-list-search/order-list-search.tsx"],"sourcesContent":["'use client';\n\nimport { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport { type Ref, type SubmitEvent, useId, useState } from 'react';\nimport { Button } from '../../particles/button/button.js';\nimport { Field } from '../../particles/field/field.js';\nimport { Input } from '../../particles/input/input.js';\nimport { type CurrentRoute, currentPageWith } from '../../sdk/navigation/current-page.js';\nimport { StorefrontLink } from '../../sdk/navigation/storefront-link.js';\nimport type { PageRef } from '../../sdk/navigation/types.js';\nimport { useStorefrontNavigation } from '../../sdk/navigation/use-storefront-navigation.js';\nimport { useStorefrontRoute } from '../../sdk/navigation/use-storefront-route.js';\nimport { useStorefrontSearchParams } from '../../sdk/navigation/use-storefront-search-params.js';\n\nexport const OrderListSearchContent = defineContentType({\n id: 'order-list-search',\n title: 'Order List Search',\n description: 'The order-number label, the placed-date labels, and the invalid-range message.',\n schema: {\n type: 'object',\n additionalProperties: false,\n properties: {\n label: { type: 'string', title: 'Order number' },\n from: { type: 'string', title: 'Placed from' },\n to: { type: 'string', title: 'Placed to' },\n submit: { type: 'string', title: 'Search' },\n clear: { type: 'string', title: 'Clear search' },\n invalidRange: { type: 'string', title: 'Invalid range' },\n },\n },\n});\n\nexport type OrderListSearchContentValue = ContentValue<typeof OrderListSearchContent>;\n\nexport type OrderListSearchProps = Readonly<{\n /** Visible label of the text field. */\n label?: string;\n fromLabel?: string;\n toLabel?: string;\n submitLabel?: string;\n clearLabel?: string;\n /** Shown when the from day is after the to day. */\n invalidRangeMessage?: string;\n /** Injected by the compiler from the page content entry. */\n $content?: OrderListSearchContentValue;\n className?: string;\n ref?: Ref<HTMLFormElement>;\n}>;\n\ntype Fields = {\n term: string;\n from: string;\n to: string;\n};\n\nconst DAY = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst INSTANT = /^(\\d{4})-(\\d{2})-(\\d{2})T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/;\n\nconst DEFAULTS = {\n label: 'Order number',\n from: 'Placed from',\n to: 'Placed to',\n submit: 'Search',\n clear: 'Clear search',\n invalidRange: 'The start date is after the end date.',\n} as const;\n\nexport const OrderListSearchDefinition = defineComponent<OrderListSearchProps>({\n name: 'OrderListSearch',\n importPath: '@vtex/faststore/components',\n component: OrderListSearch,\n content: OrderListSearchContent,\n editor: { label: 'Order List Search', category: 'action' },\n schema: {\n label: { type: 'string', default: 'Order number', label: 'Order number' },\n fromLabel: { type: 'string', default: 'Placed from', label: 'Placed from' },\n toLabel: { type: 'string', default: 'Placed to', label: 'Placed to' },\n submitLabel: { type: 'string', default: 'Search', label: 'Search' },\n clearLabel: { type: 'string', default: 'Clear search', label: 'Clear search' },\n invalidRangeMessage: {\n type: 'string',\n default: 'The start date is after the end date.',\n label: 'Invalid range',\n },\n },\n guideline:\n 'A text field and a placed-date range that write search, placedFrom, and placedTo, keep the current view, and drop the cursor. An inverted range is not written.',\n});\n\nfunction resolveText(content: string | undefined, prop: string | undefined, fallback: string): string {\n const fromContent = content?.trim();\n if (fromContent) {\n return fromContent;\n }\n const fromProp = prop?.trim();\n if (fromProp) {\n return fromProp;\n }\n return fallback;\n}\n\nfunction calendarDay(value: string | null): string {\n if (value == null) {\n return '';\n }\n const trimmed = value.trim();\n const match = INSTANT.exec(trimmed);\n if (!match) {\n return '';\n }\n const year = Number(match[1]);\n const monthIndex = Number(match[2]) - 1;\n const utcDay = Number(match[3]);\n const probe = new Date(Date.UTC(year, monthIndex, utcDay));\n if (probe.getUTCFullYear() !== year || probe.getUTCMonth() !== monthIndex || probe.getUTCDate() !== utcDay) {\n return '';\n }\n const date = new Date(trimmed);\n if (Number.isNaN(date.getTime())) {\n return '';\n }\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${date.getFullYear()}-${month}-${day}`;\n}\n\nfunction dayParts(day: string): { year: number; month: number; date: number } | null {\n const match = DAY.exec(day);\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]);\n const date = Number(match[3]);\n const probe = new Date(year, month - 1, date);\n if (probe.getFullYear() !== year || probe.getMonth() !== month - 1 || probe.getDate() !== date) {\n return null;\n }\n return { year, month, date };\n}\n\nfunction instant(day: string, end: boolean): string | null {\n const parts = dayParts(day);\n if (!parts) {\n return null;\n }\n const date = end\n ? new Date(parts.year, parts.month - 1, parts.date, 23, 59, 59, 0)\n : new Date(parts.year, parts.month - 1, parts.date, 0, 0, 0, 0);\n return date.toISOString();\n}\n\nfunction inverted(from: string, to: string): boolean {\n if (!dayParts(from) || !dayParts(to)) {\n return false;\n }\n return from > to;\n}\n\nfunction submitHref(route: CurrentRoute, current: URLSearchParams, fields: Fields): PageRef | string | null {\n if (inverted(fields.from, fields.to)) {\n return null;\n }\n const next = new URLSearchParams(current);\n next.delete('search');\n next.delete('placedFrom');\n next.delete('placedTo');\n next.delete('after');\n const term = fields.term.trim();\n if (term.length > 0) {\n next.set('search', term);\n }\n const from = instant(fields.from, false);\n const to = instant(fields.to, true);\n if (from) {\n next.set('placedFrom', from);\n }\n if (to) {\n next.set('placedTo', to);\n }\n return currentPageWith(route, next);\n}\n\nfunction clearHref(route: CurrentRoute, current: URLSearchParams): PageRef | string {\n const next = new URLSearchParams(current);\n next.delete('search');\n next.delete('placedFrom');\n next.delete('placedTo');\n next.delete('after');\n return currentPageWith(route, next);\n}\n\nconst CRITERIA = ['search', 'placedFrom', 'placedTo'] as const;\n\nfunction applied(params: URLSearchParams): boolean {\n return CRITERIA.some((key) => (params.get(key) ?? '').trim().length > 0);\n}\n\nfunction criteriaKey(params: URLSearchParams): string {\n const next = new URLSearchParams();\n for (const key of CRITERIA) {\n const value = params.get(key);\n if (value != null) {\n next.set(key, value);\n }\n }\n return next.toString();\n}\n\nfunction readFields(params: URLSearchParams): Fields {\n return {\n term: params.get('search') ?? '',\n from: calendarDay(params.get('placedFrom')),\n to: calendarDay(params.get('placedTo')),\n };\n}\n\nexport function OrderListSearch({\n label,\n fromLabel,\n toLabel,\n submitLabel,\n clearLabel,\n invalidRangeMessage,\n $content,\n className,\n ref,\n}: OrderListSearchProps) {\n const route = useStorefrontRoute();\n const searchParams = useStorefrontSearchParams();\n const { push } = useStorefrontNavigation();\n const messageId = useId();\n const criteria = criteriaKey(searchParams);\n const [fields, setFields] = useState(() => readFields(searchParams));\n const [seenCriteria, setSeenCriteria] = useState(criteria);\n if (criteria !== seenCriteria) {\n setSeenCriteria(criteria);\n setFields(readFields(searchParams));\n }\n\n const texts = {\n label: resolveText($content?.label, label, DEFAULTS.label),\n from: resolveText($content?.from, fromLabel, DEFAULTS.from),\n to: resolveText($content?.to, toLabel, DEFAULTS.to),\n submit: resolveText($content?.submit, submitLabel, DEFAULTS.submit),\n clear: resolveText($content?.clear, clearLabel, DEFAULTS.clear),\n invalidRange: resolveText($content?.invalidRange, invalidRangeMessage, DEFAULTS.invalidRange),\n };\n const rangeInvalid = inverted(fields.from, fields.to);\n const showClear = applied(searchParams);\n\n function onSubmit(event: SubmitEvent<HTMLFormElement>) {\n event.preventDefault();\n const href = submitHref(route, searchParams, fields);\n if (!href) {\n return;\n }\n push(href);\n }\n\n return (\n <form\n ref={ref}\n className={className}\n data-fs-order-list-search=\"\"\n data-fs-order-list-search-invalid={rangeInvalid ? '' : undefined}\n onSubmit={onSubmit}\n >\n <Field.Root>\n <Field.Label>{texts.label}</Field.Label>\n <Input\n type=\"text\"\n value={fields.term}\n data-fs-order-list-search-term=\"\"\n onChange={(event) => {\n const term = event.target.value;\n setFields((current) => ({ ...current, term }));\n }}\n />\n </Field.Root>\n <Field.Root invalid={rangeInvalid}>\n <Field.Label>{texts.from}</Field.Label>\n <Input\n type=\"date\"\n value={fields.from}\n aria-invalid={rangeInvalid || undefined}\n aria-describedby={rangeInvalid ? messageId : undefined}\n data-fs-order-list-search-from=\"\"\n onChange={(event) => {\n const from = event.target.value;\n setFields((current) => ({ ...current, from }));\n }}\n />\n </Field.Root>\n <Field.Root invalid={rangeInvalid}>\n <Field.Label>{texts.to}</Field.Label>\n <Input\n type=\"date\"\n value={fields.to}\n aria-invalid={rangeInvalid || undefined}\n aria-describedby={rangeInvalid ? messageId : undefined}\n data-fs-order-list-search-to=\"\"\n onChange={(event) => {\n const to = event.target.value;\n setFields((current) => ({ ...current, to }));\n }}\n />\n </Field.Root>\n {rangeInvalid ? <p id={messageId}>{texts.invalidRange}</p> : null}\n <Button type=\"submit\">{texts.submit}</Button>\n {showClear ? (\n <StorefrontLink href={clearHref(route, searchParams)} data-fs-order-list-search-clear=\"\">\n {texts.clear}\n </StorefrontLink>\n ) : null}\n </form>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"order-list-search.js","names":[],"sources":["../../../src/matter/order-list-search/order-list-search.tsx"],"sourcesContent":["'use client';\n\nimport { type ContentValue, defineComponent, defineContentType, type MessageLocaleProp } from '@vtex/fs-core';\nimport { type Ref, type SubmitEvent, useId, useState } from 'react';\nimport { Button } from '../../particles/button/button.js';\nimport { Field } from '../../particles/field/field.js';\nimport { Input } from '../../particles/input/input.js';\nimport { useMessageFormatter } from '../../sdk/i18n/use-message-formatter.js';\nimport { type CurrentRoute, currentPageWith } from '../../sdk/navigation/current-page.js';\nimport { StorefrontLink } from '../../sdk/navigation/storefront-link.js';\nimport type { PageRef } from '../../sdk/navigation/types.js';\nimport { useStorefrontNavigation } from '../../sdk/navigation/use-storefront-navigation.js';\nimport { useStorefrontRoute } from '../../sdk/navigation/use-storefront-route.js';\nimport { useStorefrontSearchParams } from '../../sdk/navigation/use-storefront-search-params.js';\n\nexport const OrderListSearchContent = defineContentType({\n id: 'order-list-search',\n title: 'Order List Search',\n description: 'The order-number label, the placed-date labels, and the invalid-range message.',\n schema: {\n type: 'object',\n additionalProperties: false,\n properties: {\n label: { type: 'string', title: 'Order number', format: 'icu-message', messageSource: 'Order number' },\n from: { type: 'string', title: 'Placed from', format: 'icu-message', messageSource: 'Placed from' },\n to: { type: 'string', title: 'Placed to', format: 'icu-message', messageSource: 'Placed to' },\n submit: { type: 'string', title: 'Search', format: 'icu-message', messageSource: 'Search' },\n clear: { type: 'string', title: 'Clear search', format: 'icu-message', messageSource: 'Clear search' },\n invalidRange: {\n type: 'string',\n title: 'Invalid range',\n description: 'Shown when the from day is after the to day.',\n format: 'icu-message',\n messageSource: 'The start date is after the end date.',\n },\n },\n },\n});\n\nexport type OrderListSearchContentValue = ContentValue<typeof OrderListSearchContent>;\n\nexport type OrderListSearchProps = MessageLocaleProp &\n Readonly<{\n /** The field labels, the button labels and the invalid-range message. */\n $content?: OrderListSearchContentValue;\n className?: string;\n ref?: Ref<HTMLFormElement>;\n }>;\n\ntype Fields = {\n term: string;\n from: string;\n to: string;\n};\n\nconst DAY = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst INSTANT = /^(\\d{4})-(\\d{2})-(\\d{2})T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/;\n\nexport const OrderListSearchDefinition = defineComponent<OrderListSearchProps>({\n name: 'OrderListSearch',\n importPath: '@vtex/faststore/components',\n component: OrderListSearch,\n content: OrderListSearchContent,\n editor: { label: 'Order List Search', category: 'action' },\n schema: {},\n guideline:\n 'A text field and a placed-date range that write search, placedFrom, and placedTo, keep the current view, and drop the cursor. An inverted range is not written. Its copy is the $content fields label, from, to, submit, clear and invalidRange.',\n});\n\nfunction calendarDay(value: string | null): string {\n if (value == null) {\n return '';\n }\n const trimmed = value.trim();\n const match = INSTANT.exec(trimmed);\n if (!match) {\n return '';\n }\n const year = Number(match[1]);\n const monthIndex = Number(match[2]) - 1;\n const utcDay = Number(match[3]);\n const probe = new Date(Date.UTC(year, monthIndex, utcDay));\n if (probe.getUTCFullYear() !== year || probe.getUTCMonth() !== monthIndex || probe.getUTCDate() !== utcDay) {\n return '';\n }\n const date = new Date(trimmed);\n if (Number.isNaN(date.getTime())) {\n return '';\n }\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${date.getFullYear()}-${month}-${day}`;\n}\n\nfunction dayParts(day: string): { year: number; month: number; date: number } | null {\n const match = DAY.exec(day);\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]);\n const date = Number(match[3]);\n const probe = new Date(year, month - 1, date);\n if (probe.getFullYear() !== year || probe.getMonth() !== month - 1 || probe.getDate() !== date) {\n return null;\n }\n return { year, month, date };\n}\n\nfunction instant(day: string, end: boolean): string | null {\n const parts = dayParts(day);\n if (!parts) {\n return null;\n }\n const date = end\n ? new Date(parts.year, parts.month - 1, parts.date, 23, 59, 59, 0)\n : new Date(parts.year, parts.month - 1, parts.date, 0, 0, 0, 0);\n return date.toISOString();\n}\n\nfunction inverted(from: string, to: string): boolean {\n if (!dayParts(from) || !dayParts(to)) {\n return false;\n }\n return from > to;\n}\n\nfunction submitHref(route: CurrentRoute, current: URLSearchParams, fields: Fields): PageRef | string | null {\n if (inverted(fields.from, fields.to)) {\n return null;\n }\n const next = new URLSearchParams(current);\n next.delete('search');\n next.delete('placedFrom');\n next.delete('placedTo');\n next.delete('after');\n const term = fields.term.trim();\n if (term.length > 0) {\n next.set('search', term);\n }\n const from = instant(fields.from, false);\n const to = instant(fields.to, true);\n if (from) {\n next.set('placedFrom', from);\n }\n if (to) {\n next.set('placedTo', to);\n }\n return currentPageWith(route, next);\n}\n\nfunction clearHref(route: CurrentRoute, current: URLSearchParams): PageRef | string {\n const next = new URLSearchParams(current);\n next.delete('search');\n next.delete('placedFrom');\n next.delete('placedTo');\n next.delete('after');\n return currentPageWith(route, next);\n}\n\nconst CRITERIA = ['search', 'placedFrom', 'placedTo'] as const;\n\nfunction applied(params: URLSearchParams): boolean {\n return CRITERIA.some((key) => (params.get(key) ?? '').trim().length > 0);\n}\n\nfunction criteriaKey(params: URLSearchParams): string {\n const next = new URLSearchParams();\n for (const key of CRITERIA) {\n const value = params.get(key);\n if (value != null) {\n next.set(key, value);\n }\n }\n return next.toString();\n}\n\nfunction readFields(params: URLSearchParams): Fields {\n return {\n term: params.get('search') ?? '',\n from: calendarDay(params.get('placedFrom')),\n to: calendarDay(params.get('placedTo')),\n };\n}\n\nexport function OrderListSearch({ $content, $locale, className, ref }: OrderListSearchProps) {\n const route = useStorefrontRoute();\n const searchParams = useStorefrontSearchParams();\n const { push } = useStorefrontNavigation();\n const messageId = useId();\n const criteria = criteriaKey(searchParams);\n const [fields, setFields] = useState(() => readFields(searchParams));\n const [seenCriteria, setSeenCriteria] = useState(criteria);\n if (criteria !== seenCriteria) {\n setSeenCriteria(criteria);\n setFields(readFields(searchParams));\n }\n\n const { format } = useMessageFormatter(OrderListSearchContent, $content);\n const rangeInvalid = inverted(fields.from, fields.to);\n const showClear = applied(searchParams);\n\n function onSubmit(event: SubmitEvent<HTMLFormElement>) {\n event.preventDefault();\n const href = submitHref(route, searchParams, fields);\n if (!href) {\n return;\n }\n push(href);\n }\n\n return (\n <form\n ref={ref}\n className={className}\n data-fs-order-list-search=\"\"\n data-fs-order-list-search-invalid={rangeInvalid ? '' : undefined}\n onSubmit={onSubmit}\n >\n <Field.Root>\n <Field.Label>{format('label')}</Field.Label>\n <Input\n type=\"text\"\n value={fields.term}\n data-fs-order-list-search-term=\"\"\n onChange={(event) => {\n const term = event.target.value;\n setFields((current) => ({ ...current, term }));\n }}\n />\n </Field.Root>\n <Field.Root invalid={rangeInvalid}>\n <Field.Label>{format('from')}</Field.Label>\n <Input\n type=\"date\"\n value={fields.from}\n aria-invalid={rangeInvalid || undefined}\n aria-describedby={rangeInvalid ? messageId : undefined}\n data-fs-order-list-search-from=\"\"\n onChange={(event) => {\n const from = event.target.value;\n setFields((current) => ({ ...current, from }));\n }}\n />\n </Field.Root>\n <Field.Root invalid={rangeInvalid}>\n <Field.Label>{format('to')}</Field.Label>\n <Input\n type=\"date\"\n value={fields.to}\n aria-invalid={rangeInvalid || undefined}\n aria-describedby={rangeInvalid ? messageId : undefined}\n data-fs-order-list-search-to=\"\"\n onChange={(event) => {\n const to = event.target.value;\n setFields((current) => ({ ...current, to }));\n }}\n />\n </Field.Root>\n {rangeInvalid ? <p id={messageId}>{format('invalidRange')}</p> : null}\n <Button type=\"submit\">{format('submit')}</Button>\n {showClear ? (\n <StorefrontLink href={clearHref(route, searchParams)} data-fs-order-list-search-clear=\"\">\n {format('clear')}\n </StorefrontLink>\n ) : null}\n </form>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContentValue } from "../../core/dist/define-content-type.js";
|
|
1
|
+
import { ContentValue, MessageLocaleProp } from "../../core/dist/define-content-type.js";
|
|
2
2
|
import { ComponentDefinition } from "../../core/dist/define-component.js";
|
|
3
3
|
import "../../core/dist/index.js";
|
|
4
4
|
import { Ref } from "react";
|
|
@@ -14,52 +14,45 @@ export declare const OrderListViewsContent: {
|
|
|
14
14
|
readonly label: {
|
|
15
15
|
readonly type: "string";
|
|
16
16
|
readonly title: "Accessible name";
|
|
17
|
+
readonly format: "icu-message";
|
|
18
|
+
readonly messageSource: "Order views";
|
|
17
19
|
};
|
|
18
20
|
readonly all: {
|
|
19
21
|
readonly type: "string";
|
|
20
22
|
readonly title: "All orders";
|
|
23
|
+
readonly format: "icu-message";
|
|
24
|
+
readonly messageSource: "All orders";
|
|
21
25
|
};
|
|
22
26
|
readonly ongoing: {
|
|
23
27
|
readonly type: "string";
|
|
24
28
|
readonly title: "Ongoing";
|
|
29
|
+
readonly format: "icu-message";
|
|
30
|
+
readonly messageSource: "Ongoing";
|
|
25
31
|
};
|
|
26
32
|
readonly completed: {
|
|
27
33
|
readonly type: "string";
|
|
28
34
|
readonly title: "Completed";
|
|
35
|
+
readonly format: "icu-message";
|
|
36
|
+
readonly messageSource: "Completed";
|
|
29
37
|
};
|
|
30
38
|
readonly cancelled: {
|
|
31
39
|
readonly type: "string";
|
|
32
40
|
readonly title: "Cancelled";
|
|
41
|
+
readonly format: "icu-message";
|
|
42
|
+
readonly messageSource: "Cancelled";
|
|
33
43
|
};
|
|
34
44
|
};
|
|
35
45
|
};
|
|
36
46
|
};
|
|
37
47
|
export type OrderListView = 'all' | 'ongoing' | 'completed' | 'cancelled';
|
|
38
48
|
export type OrderListViewsContentValue = ContentValue<typeof OrderListViewsContent>;
|
|
39
|
-
export type OrderListViewsProps = Readonly<{
|
|
40
|
-
/**
|
|
41
|
-
label?: string;
|
|
42
|
-
allLabel?: string;
|
|
43
|
-
ongoingLabel?: string;
|
|
44
|
-
completedLabel?: string;
|
|
45
|
-
cancelledLabel?: string;
|
|
46
|
-
/** Injected by the compiler from the page content entry. */
|
|
49
|
+
export type OrderListViewsProps = MessageLocaleProp & Readonly<{
|
|
50
|
+
/** The accessible name of the landmark and the four view names. */
|
|
47
51
|
$content?: OrderListViewsContentValue;
|
|
48
52
|
className?: string;
|
|
49
53
|
ref?: Ref<HTMLElement>;
|
|
50
54
|
}>;
|
|
51
|
-
export declare const OrderListViewsDefinition: ComponentDefinition<
|
|
52
|
-
|
|
53
|
-
label?: string;
|
|
54
|
-
allLabel?: string;
|
|
55
|
-
ongoingLabel?: string;
|
|
56
|
-
completedLabel?: string;
|
|
57
|
-
cancelledLabel?: string;
|
|
58
|
-
/** Injected by the compiler from the page content entry. */
|
|
59
|
-
$content?: OrderListViewsContentValue;
|
|
60
|
-
className?: string;
|
|
61
|
-
ref?: Ref<HTMLElement>;
|
|
62
|
-
}>>;
|
|
63
|
-
export declare function OrderListViews({ label, allLabel, ongoingLabel, completedLabel, cancelledLabel, $content, className, ref }: OrderListViewsProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
export declare const OrderListViewsDefinition: ComponentDefinition<OrderListViewsProps>;
|
|
56
|
+
export declare function OrderListViews({ $content, $locale, className, ref }: OrderListViewsProps): import("react/jsx-runtime").JSX.Element;
|
|
64
57
|
//#endregion
|
|
65
58
|
//# sourceMappingURL=order-list-views.d.ts.map
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { defineComponent } from "../../core/dist/define-component.js";
|
|
3
3
|
import { defineContentType } from "../../core/dist/define-content-type.js";
|
|
4
4
|
import "../../core/dist/index.js";
|
|
5
|
+
import { useMessageFormatter } from "../../sdk/i18n/use-message-formatter.js";
|
|
5
6
|
import { StorefrontLink } from "../../sdk/navigation/storefront-link.js";
|
|
6
7
|
import { useStorefrontRoute } from "../../sdk/navigation/use-storefront-route.js";
|
|
7
8
|
import { useStorefrontSearchParams } from "../../sdk/navigation/use-storefront-search-params.js";
|
|
@@ -18,23 +19,33 @@ const OrderListViewsContent = defineContentType({
|
|
|
18
19
|
properties: {
|
|
19
20
|
label: {
|
|
20
21
|
type: "string",
|
|
21
|
-
title: "Accessible name"
|
|
22
|
+
title: "Accessible name",
|
|
23
|
+
format: "icu-message",
|
|
24
|
+
messageSource: "Order views"
|
|
22
25
|
},
|
|
23
26
|
all: {
|
|
24
27
|
type: "string",
|
|
25
|
-
title: "All orders"
|
|
28
|
+
title: "All orders",
|
|
29
|
+
format: "icu-message",
|
|
30
|
+
messageSource: "All orders"
|
|
26
31
|
},
|
|
27
32
|
ongoing: {
|
|
28
33
|
type: "string",
|
|
29
|
-
title: "Ongoing"
|
|
34
|
+
title: "Ongoing",
|
|
35
|
+
format: "icu-message",
|
|
36
|
+
messageSource: "Ongoing"
|
|
30
37
|
},
|
|
31
38
|
completed: {
|
|
32
39
|
type: "string",
|
|
33
|
-
title: "Completed"
|
|
40
|
+
title: "Completed",
|
|
41
|
+
format: "icu-message",
|
|
42
|
+
messageSource: "Completed"
|
|
34
43
|
},
|
|
35
44
|
cancelled: {
|
|
36
45
|
type: "string",
|
|
37
|
-
title: "Cancelled"
|
|
46
|
+
title: "Cancelled",
|
|
47
|
+
format: "icu-message",
|
|
48
|
+
messageSource: "Cancelled"
|
|
38
49
|
}
|
|
39
50
|
}
|
|
40
51
|
}
|
|
@@ -45,13 +56,6 @@ const CHOICES = [
|
|
|
45
56
|
"completed",
|
|
46
57
|
"cancelled"
|
|
47
58
|
];
|
|
48
|
-
const DEFAULT_GROUP_LABEL = "Order views";
|
|
49
|
-
const DEFAULT_LABELS = {
|
|
50
|
-
all: "All orders",
|
|
51
|
-
ongoing: "Ongoing",
|
|
52
|
-
completed: "Completed",
|
|
53
|
-
cancelled: "Cancelled"
|
|
54
|
-
};
|
|
55
59
|
const OrderListViewsDefinition = defineComponent({
|
|
56
60
|
name: "OrderListViews",
|
|
57
61
|
importPath: "@vtex/faststore/components",
|
|
@@ -61,50 +65,9 @@ const OrderListViewsDefinition = defineComponent({
|
|
|
61
65
|
label: "Order List Views",
|
|
62
66
|
category: "navigation"
|
|
63
67
|
},
|
|
64
|
-
schema: {
|
|
65
|
-
|
|
66
|
-
type: "string",
|
|
67
|
-
default: "Order views",
|
|
68
|
-
label: "Accessible name"
|
|
69
|
-
},
|
|
70
|
-
allLabel: {
|
|
71
|
-
type: "string",
|
|
72
|
-
default: "All orders",
|
|
73
|
-
label: "All orders"
|
|
74
|
-
},
|
|
75
|
-
ongoingLabel: {
|
|
76
|
-
type: "string",
|
|
77
|
-
default: "Ongoing",
|
|
78
|
-
label: "Ongoing"
|
|
79
|
-
},
|
|
80
|
-
completedLabel: {
|
|
81
|
-
type: "string",
|
|
82
|
-
default: "Completed",
|
|
83
|
-
label: "Completed"
|
|
84
|
-
},
|
|
85
|
-
cancelledLabel: {
|
|
86
|
-
type: "string",
|
|
87
|
-
default: "Cancelled",
|
|
88
|
-
label: "Cancelled"
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
guideline: "Four links that switch the orders page among all orders, ongoing, completed, and cancelled. Choosing one writes the view search param and keeps an existing search and placed-date range. It does not filter the orders already on the page."
|
|
68
|
+
schema: {},
|
|
69
|
+
guideline: "Four links that switch the orders page among all orders, ongoing, completed, and cancelled. Their names are the $content fields all, ongoing, completed and cancelled; label is the landmark name. Choosing one writes the view search param and keeps an existing search and placed-date range. It does not filter the orders already on the page."
|
|
92
70
|
});
|
|
93
|
-
function resolveText(content, prop, fallback) {
|
|
94
|
-
const fromContent = content?.trim();
|
|
95
|
-
if (fromContent) return fromContent;
|
|
96
|
-
const fromProp = prop?.trim();
|
|
97
|
-
if (fromProp) return fromProp;
|
|
98
|
-
return fallback;
|
|
99
|
-
}
|
|
100
|
-
function authoredLabel(view, props) {
|
|
101
|
-
switch (view) {
|
|
102
|
-
case "all": return props.allLabel;
|
|
103
|
-
case "ongoing": return props.ongoingLabel;
|
|
104
|
-
case "completed": return props.completedLabel;
|
|
105
|
-
case "cancelled": return props.cancelledLabel;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
71
|
function currentView(value) {
|
|
109
72
|
if (value === "ongoing" || value === "completed" || value === "cancelled") return value;
|
|
110
73
|
return "all";
|
|
@@ -116,34 +79,25 @@ function choiceHref(route, searchParams, view) {
|
|
|
116
79
|
if (view !== "all") next.set("view", view);
|
|
117
80
|
return currentPageWith(route, next);
|
|
118
81
|
}
|
|
119
|
-
function OrderListViews({
|
|
82
|
+
function OrderListViews({ $content, $locale, className, ref }) {
|
|
120
83
|
const route = useStorefrontRoute();
|
|
121
84
|
const searchParams = useStorefrontSearchParams();
|
|
85
|
+
const { format } = useMessageFormatter(OrderListViewsContent, $content);
|
|
122
86
|
const current = currentView(searchParams.get("view"));
|
|
123
|
-
const props = {
|
|
124
|
-
label,
|
|
125
|
-
allLabel,
|
|
126
|
-
ongoingLabel,
|
|
127
|
-
completedLabel,
|
|
128
|
-
cancelledLabel,
|
|
129
|
-
$content
|
|
130
|
-
};
|
|
131
|
-
const groupLabel = resolveText($content?.label, label, DEFAULT_GROUP_LABEL);
|
|
132
87
|
return /* @__PURE__ */ jsx("nav", {
|
|
133
88
|
ref,
|
|
134
|
-
"aria-label":
|
|
89
|
+
"aria-label": format("label"),
|
|
135
90
|
className,
|
|
136
91
|
"data-fs-order-list-views": "",
|
|
137
92
|
"data-fs-order-list-views-current": current,
|
|
138
93
|
children: CHOICES.map((view) => {
|
|
139
|
-
const text = resolveText($content?.[view], authoredLabel(view, props), DEFAULT_LABELS[view]);
|
|
140
94
|
const selected = view === current;
|
|
141
95
|
return /* @__PURE__ */ jsx(StorefrontLink, {
|
|
142
96
|
href: choiceHref(route, searchParams, view),
|
|
143
97
|
"aria-current": selected ? "page" : void 0,
|
|
144
98
|
"data-fs-order-list-views-choice": view,
|
|
145
99
|
"data-fs-order-list-views-choice-current": selected ? "" : void 0,
|
|
146
|
-
children:
|
|
100
|
+
children: format(view)
|
|
147
101
|
}, view);
|
|
148
102
|
})
|
|
149
103
|
});
|