@vtex/faststore 0.0.1
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 +18 -0
- package/LICENSE +21 -0
- package/README.md +95 -0
- package/dist/actions.json +334 -0
- package/dist/catalog.json +6615 -0
- package/dist/client.d.ts +17 -0
- package/dist/client.js +8 -0
- package/dist/components.d.ts +87 -0
- package/dist/components.js +87 -0
- package/dist/content-types.json +684 -0
- package/dist/core/dist/actions/mock-action.d.ts +24 -0
- package/dist/core/dist/actions/mock-action.js +28 -0
- package/dist/core/dist/actions/mock-action.js.map +1 -0
- package/dist/core/dist/actions/registry.d.ts +24 -0
- package/dist/core/dist/actions/registry.js +28 -0
- package/dist/core/dist/actions/registry.js.map +1 -0
- package/dist/core/dist/define-component.d.ts +100 -0
- package/dist/core/dist/define-component.js +8 -0
- package/dist/core/dist/define-component.js.map +1 -0
- package/dist/core/dist/define-content-type.d.ts +95 -0
- package/dist/core/dist/define-content-type.js +283 -0
- package/dist/core/dist/define-content-type.js.map +1 -0
- package/dist/core/dist/index.d.ts +7 -0
- package/dist/core/dist/index.js +5 -0
- package/dist/core/dist/schema/generated/schema.d.ts +28 -0
- package/dist/core/dist/types.d.ts +1 -0
- package/dist/docs/access-code-field.md +100 -0
- package/dist/docs/access-code-sign-in.md +174 -0
- package/dist/docs/account-entry-point.md +155 -0
- package/dist/docs/address-summary.md +50 -0
- package/dist/docs/buy-button.md +162 -0
- package/dist/docs/carousel.md +105 -0
- package/dist/docs/cart-item.md +162 -0
- package/dist/docs/cart-totalizer.md +197 -0
- package/dist/docs/cart.md +495 -0
- package/dist/docs/client-preferences.md +184 -0
- package/dist/docs/client-profile-form.md +192 -0
- package/dist/docs/client-profile.md +117 -0
- package/dist/docs/container.md +97 -0
- package/dist/docs/document-field.md +97 -0
- package/dist/docs/email-field.md +93 -0
- package/dist/docs/email-identification.md +102 -0
- package/dist/docs/footer-copyright.md +112 -0
- package/dist/docs/footer-link-group.md +162 -0
- package/dist/docs/footer-root.md +145 -0
- package/dist/docs/footer-social.md +151 -0
- package/dist/docs/free-shipping-progress.md +87 -0
- package/dist/docs/gallery.md +84 -0
- package/dist/docs/header-root.md +150 -0
- package/dist/docs/identity-edit.md +88 -0
- package/dist/docs/identity-summary.md +106 -0
- package/dist/docs/incentives.md +151 -0
- package/dist/docs/logo.md +135 -0
- package/dist/docs/meter.md +67 -0
- package/dist/docs/navigation-link-list.md +171 -0
- package/dist/docs/navigation-link.md +163 -0
- package/dist/docs/navigation-menu.md +264 -0
- package/dist/docs/payment-methods.md +139 -0
- package/dist/docs/phone-field.md +106 -0
- package/dist/docs/postal-code-field.md +126 -0
- package/dist/docs/pricing.md +499 -0
- package/dist/docs/product-gallery.md +409 -0
- package/dist/docs/product-information.md +295 -0
- package/dist/docs/product-list.md +170 -0
- package/dist/docs/product-quantity.md +88 -0
- package/dist/docs/product-shelf.md +141 -0
- package/dist/docs/promotion.md +109 -0
- package/dist/docs/region.md +225 -0
- package/dist/docs/session.md +123 -0
- package/dist/docs/shipping-address.md +390 -0
- package/dist/docs/shipping-simulator.md +147 -0
- package/dist/docs/sign-in-form.md +117 -0
- package/dist/docs/tabs.md +176 -0
- package/dist/docs/toast.md +124 -0
- package/dist/docs/variant-selector.md +450 -0
- package/dist/graphql/define-subgraph.d.ts +12 -0
- package/dist/graphql/define-subgraph.js +15 -0
- package/dist/graphql/define-subgraph.js.map +1 -0
- package/dist/graphql/gql.d.ts +10 -0
- package/dist/graphql/gql.js +16 -0
- package/dist/graphql/gql.js.map +1 -0
- package/dist/graphql/types.d.ts +88 -0
- package/dist/graphql.d.ts +4 -0
- package/dist/graphql.js +3 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +5 -0
- package/dist/internal/client.d.ts +24 -0
- package/dist/internal/client.js +23 -0
- package/dist/internal/content.d.ts +2 -0
- package/dist/internal/content.js +2 -0
- package/dist/internal/server.d.ts +7 -0
- package/dist/internal/server.js +6 -0
- package/dist/matter/access-code-sign-in/access-code-sign-in.d.ts +111 -0
- package/dist/matter/access-code-sign-in/access-code-sign-in.js +387 -0
- package/dist/matter/access-code-sign-in/access-code-sign-in.js.map +1 -0
- package/dist/matter/account-entry-point/account-entry-point.d.ts +64 -0
- package/dist/matter/account-entry-point/account-entry-point.js +151 -0
- package/dist/matter/account-entry-point/account-entry-point.js.map +1 -0
- package/dist/matter/breadcrumb/breadcrumb.d.ts +40 -0
- package/dist/matter/breadcrumb/breadcrumb.js +155 -0
- package/dist/matter/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/matter/buy-button/buy-button.d.ts +95 -0
- package/dist/matter/buy-button/buy-button.js +259 -0
- package/dist/matter/buy-button/buy-button.js.map +1 -0
- package/dist/matter/cart/cart-namespace.d.ts +48 -0
- package/dist/matter/cart/cart-namespace.js +50 -0
- package/dist/matter/cart/cart-namespace.js.map +1 -0
- package/dist/matter/cart/cart.d.ts +312 -0
- package/dist/matter/cart/cart.js +1034 -0
- package/dist/matter/cart/cart.js.map +1 -0
- package/dist/matter/cart-item/cart-item.d.ts +103 -0
- package/dist/matter/cart-item/cart-item.js +672 -0
- package/dist/matter/cart-item/cart-item.js.map +1 -0
- package/dist/matter/cart-item-compositions/cart-item-compositions.d.ts +49 -0
- package/dist/matter/cart-item-compositions/cart-item-compositions.js +165 -0
- package/dist/matter/cart-item-compositions/cart-item-compositions.js.map +1 -0
- package/dist/matter/cart-item-customizations/cart-item-customizations.d.ts +28 -0
- package/dist/matter/cart-item-customizations/cart-item-customizations.js +73 -0
- package/dist/matter/cart-item-customizations/cart-item-customizations.js.map +1 -0
- package/dist/matter/cart-item-discounts/cart-item-discounts.d.ts +33 -0
- package/dist/matter/cart-item-discounts/cart-item-discounts.js +70 -0
- package/dist/matter/cart-item-discounts/cart-item-discounts.js.map +1 -0
- package/dist/matter/cart-item-seller-info/cart-item-seller-info.d.ts +24 -0
- package/dist/matter/cart-item-seller-info/cart-item-seller-info.js +54 -0
- package/dist/matter/cart-item-seller-info/cart-item-seller-info.js.map +1 -0
- package/dist/matter/cart-item-variations/cart-item-variations.d.ts +27 -0
- package/dist/matter/cart-item-variations/cart-item-variations.js +69 -0
- package/dist/matter/cart-item-variations/cart-item-variations.js.map +1 -0
- package/dist/matter/cart-totalizer/cart-totalizer.d.ts +78 -0
- package/dist/matter/cart-totalizer/cart-totalizer.js +220 -0
- package/dist/matter/cart-totalizer/cart-totalizer.js.map +1 -0
- package/dist/matter/client-preferences/client-preferences.d.ts +50 -0
- package/dist/matter/client-preferences/client-preferences.js +206 -0
- package/dist/matter/client-preferences/client-preferences.js.map +1 -0
- package/dist/matter/client-profile/client-profile.d.ts +59 -0
- package/dist/matter/client-profile/client-profile.js +185 -0
- package/dist/matter/client-profile/client-profile.js.map +1 -0
- package/dist/matter/client-profile-form/client-profile-form.d.ts +126 -0
- package/dist/matter/client-profile-form/client-profile-form.js +660 -0
- package/dist/matter/client-profile-form/client-profile-form.js.map +1 -0
- package/dist/matter/delivery-options/delivery-options-accordion.d.ts +30 -0
- package/dist/matter/delivery-options/delivery-options-accordion.js +189 -0
- package/dist/matter/delivery-options/delivery-options-accordion.js.map +1 -0
- package/dist/matter/delivery-options/delivery-options-controller.d.ts +49 -0
- package/dist/matter/delivery-options/delivery-options-controller.js +203 -0
- package/dist/matter/delivery-options/delivery-options-controller.js.map +1 -0
- package/dist/matter/delivery-options/delivery-options.d.ts +31 -0
- package/dist/matter/delivery-options/delivery-options.js +103 -0
- package/dist/matter/delivery-options/delivery-options.js.map +1 -0
- package/dist/matter/delivery-options/use-delivery-option-selection.d.ts +9 -0
- package/dist/matter/delivery-options/use-delivery-option-selection.js +76 -0
- package/dist/matter/delivery-options/use-delivery-option-selection.js.map +1 -0
- package/dist/matter/email-identification/email-identification.d.ts +37 -0
- package/dist/matter/email-identification/email-identification.js +111 -0
- package/dist/matter/email-identification/email-identification.js.map +1 -0
- package/dist/matter/free-shipping-progress/free-shipping-progress.d.ts +44 -0
- package/dist/matter/free-shipping-progress/free-shipping-progress.js +170 -0
- package/dist/matter/free-shipping-progress/free-shipping-progress.js.map +1 -0
- package/dist/matter/identity-edit/identity-edit.d.ts +52 -0
- package/dist/matter/identity-edit/identity-edit.js +148 -0
- package/dist/matter/identity-edit/identity-edit.js.map +1 -0
- package/dist/matter/identity-summary/identity-summary.d.ts +128 -0
- package/dist/matter/identity-summary/identity-summary.js +344 -0
- package/dist/matter/identity-summary/identity-summary.js.map +1 -0
- package/dist/matter/pricing/pricing.d.ts +162 -0
- package/dist/matter/pricing/pricing.js +793 -0
- package/dist/matter/pricing/pricing.js.map +1 -0
- package/dist/matter/product-gallery/product-gallery.d.ts +23 -0
- package/dist/matter/product-gallery/product-gallery.js +188 -0
- package/dist/matter/product-gallery/product-gallery.js.map +1 -0
- package/dist/matter/product-information/product-information.d.ts +61 -0
- package/dist/matter/product-information/product-information.js +355 -0
- package/dist/matter/product-information/product-information.js.map +1 -0
- package/dist/matter/product-list/product-list.d.ts +86 -0
- package/dist/matter/product-list/product-list.js +342 -0
- package/dist/matter/product-list/product-list.js.map +1 -0
- package/dist/matter/product-quantity/product-quantity.d.ts +50 -0
- package/dist/matter/product-quantity/product-quantity.js +111 -0
- package/dist/matter/product-quantity/product-quantity.js.map +1 -0
- package/dist/matter/product-shelf/product-shelf.d.ts +125 -0
- package/dist/matter/product-shelf/product-shelf.js +376 -0
- package/dist/matter/product-shelf/product-shelf.js.map +1 -0
- package/dist/matter/region/region.d.ts +211 -0
- package/dist/matter/region/region.js +579 -0
- package/dist/matter/region/region.js.map +1 -0
- package/dist/matter/session/session.d.ts +58 -0
- package/dist/matter/session/session.js +112 -0
- package/dist/matter/session/session.js.map +1 -0
- package/dist/matter/shipping-address/country-descriptors.js +101 -0
- package/dist/matter/shipping-address/country-descriptors.js.map +1 -0
- package/dist/matter/shipping-address/shipping-address.d.ts +284 -0
- package/dist/matter/shipping-address/shipping-address.js +1036 -0
- package/dist/matter/shipping-address/shipping-address.js.map +1 -0
- package/dist/matter/shipping-simulator/shipping-simulator.d.ts +143 -0
- package/dist/matter/shipping-simulator/shipping-simulator.js +644 -0
- package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -0
- package/dist/matter/sign-in-form/sign-in-form.d.ts +79 -0
- package/dist/matter/sign-in-form/sign-in-form.js +226 -0
- package/dist/matter/sign-in-form/sign-in-form.js.map +1 -0
- package/dist/matter/variant-selector/variant-selector.d.ts +183 -0
- package/dist/matter/variant-selector/variant-selector.js +840 -0
- package/dist/matter/variant-selector/variant-selector.js.map +1 -0
- package/dist/message-locales.json +7 -0
- package/dist/particles/access-code-field/access-code-field.d.ts +33 -0
- package/dist/particles/access-code-field/access-code-field.js +95 -0
- package/dist/particles/access-code-field/access-code-field.js.map +1 -0
- package/dist/particles/accordion/accordion.d.ts +45 -0
- package/dist/particles/accordion/accordion.js +156 -0
- package/dist/particles/accordion/accordion.js.map +1 -0
- package/dist/particles/address-summary/address-summary.d.ts +50 -0
- package/dist/particles/address-summary/address-summary.js +129 -0
- package/dist/particles/address-summary/address-summary.js.map +1 -0
- package/dist/particles/badge/badge.d.ts +10 -0
- package/dist/particles/badge/badge.js +27 -0
- package/dist/particles/badge/badge.js.map +1 -0
- package/dist/particles/button/button.d.ts +18 -0
- package/dist/particles/button/button.js +37 -0
- package/dist/particles/button/button.js.map +1 -0
- package/dist/particles/carousel/carousel.d.ts +60 -0
- package/dist/particles/carousel/carousel.js +335 -0
- package/dist/particles/carousel/carousel.js.map +1 -0
- package/dist/particles/checkbox/checkbox.d.ts +40 -0
- package/dist/particles/checkbox/checkbox.js +82 -0
- package/dist/particles/checkbox/checkbox.js.map +1 -0
- package/dist/particles/container/container.d.ts +20 -0
- package/dist/particles/container/container.js +36 -0
- package/dist/particles/container/container.js.map +1 -0
- package/dist/particles/dialog/dialog.d.ts +54 -0
- package/dist/particles/dialog/dialog.js +192 -0
- package/dist/particles/dialog/dialog.js.map +1 -0
- package/dist/particles/document-field/document-field.d.ts +61 -0
- package/dist/particles/document-field/document-field.js +146 -0
- package/dist/particles/document-field/document-field.js.map +1 -0
- package/dist/particles/drawer/drawer.d.ts +52 -0
- package/dist/particles/drawer/drawer.js +183 -0
- package/dist/particles/drawer/drawer.js.map +1 -0
- package/dist/particles/email-field/email-field.d.ts +37 -0
- package/dist/particles/email-field/email-field.js +106 -0
- package/dist/particles/email-field/email-field.js.map +1 -0
- package/dist/particles/field/field.d.ts +50 -0
- package/dist/particles/field/field.js +133 -0
- package/dist/particles/field/field.js.map +1 -0
- package/dist/particles/fieldset/fieldset.d.ts +16 -0
- package/dist/particles/fieldset/fieldset.js +52 -0
- package/dist/particles/fieldset/fieldset.js.map +1 -0
- package/dist/particles/footer-copyright/footer-copyright.d.ts +32 -0
- package/dist/particles/footer-copyright/footer-copyright.js +50 -0
- package/dist/particles/footer-copyright/footer-copyright.js.map +1 -0
- package/dist/particles/footer-link-group/footer-link-group.d.ts +66 -0
- package/dist/particles/footer-link-group/footer-link-group.js +154 -0
- package/dist/particles/footer-link-group/footer-link-group.js.map +1 -0
- package/dist/particles/footer-root/footer-root.d.ts +21 -0
- package/dist/particles/footer-root/footer-root.js +38 -0
- package/dist/particles/footer-root/footer-root.js.map +1 -0
- package/dist/particles/footer-social/footer-social.d.ts +79 -0
- package/dist/particles/footer-social/footer-social.js +176 -0
- package/dist/particles/footer-social/footer-social.js.map +1 -0
- package/dist/particles/gallery/gallery.d.ts +181 -0
- package/dist/particles/gallery/gallery.js +920 -0
- package/dist/particles/gallery/gallery.js.map +1 -0
- package/dist/particles/header-root/header-root.d.ts +21 -0
- package/dist/particles/header-root/header-root.js +38 -0
- package/dist/particles/header-root/header-root.js.map +1 -0
- package/dist/particles/icon/icon.d.ts +22 -0
- package/dist/particles/icon/icon.js +48 -0
- package/dist/particles/icon/icon.js.map +1 -0
- package/dist/particles/image/image.d.ts +13 -0
- package/dist/particles/image/image.js +59 -0
- package/dist/particles/image/image.js.map +1 -0
- package/dist/particles/incentives/incentives.d.ts +85 -0
- package/dist/particles/incentives/incentives.js +200 -0
- package/dist/particles/incentives/incentives.js.map +1 -0
- package/dist/particles/input/input.d.ts +9 -0
- package/dist/particles/input/input.js +28 -0
- package/dist/particles/input/input.js.map +1 -0
- package/dist/particles/logo/logo.d.ts +55 -0
- package/dist/particles/logo/logo.js +96 -0
- package/dist/particles/logo/logo.js.map +1 -0
- package/dist/particles/menu/menu.d.ts +103 -0
- package/dist/particles/menu/menu.js +409 -0
- package/dist/particles/menu/menu.js.map +1 -0
- package/dist/particles/menubar/menubar.d.ts +18 -0
- package/dist/particles/menubar/menubar.js +42 -0
- package/dist/particles/menubar/menubar.js.map +1 -0
- package/dist/particles/meter/meter.d.ts +36 -0
- package/dist/particles/meter/meter.js +132 -0
- package/dist/particles/meter/meter.js.map +1 -0
- package/dist/particles/navigation-link/navigation-link.d.ts +43 -0
- package/dist/particles/navigation-link/navigation-link.js +82 -0
- package/dist/particles/navigation-link/navigation-link.js.map +1 -0
- package/dist/particles/navigation-link-list/navigation-link-list.d.ts +59 -0
- package/dist/particles/navigation-link-list/navigation-link-list.js +103 -0
- package/dist/particles/navigation-link-list/navigation-link-list.js.map +1 -0
- package/dist/particles/navigation-menu/navigation-menu.d.ts +78 -0
- package/dist/particles/navigation-menu/navigation-menu.js +295 -0
- package/dist/particles/navigation-menu/navigation-menu.js.map +1 -0
- package/dist/particles/number-field/number-field.d.ts +46 -0
- package/dist/particles/number-field/number-field.js +169 -0
- package/dist/particles/number-field/number-field.js.map +1 -0
- package/dist/particles/password-field/password-field.d.ts +31 -0
- package/dist/particles/password-field/password-field.js +109 -0
- package/dist/particles/password-field/password-field.js.map +1 -0
- package/dist/particles/payment-methods/payment-methods.d.ts +72 -0
- package/dist/particles/payment-methods/payment-methods.js +151 -0
- package/dist/particles/payment-methods/payment-methods.js.map +1 -0
- package/dist/particles/phone-field/phone-field.d.ts +67 -0
- package/dist/particles/phone-field/phone-field.js +250 -0
- package/dist/particles/phone-field/phone-field.js.map +1 -0
- package/dist/particles/popover/popover.d.ts +68 -0
- package/dist/particles/popover/popover.js +284 -0
- package/dist/particles/popover/popover.js.map +1 -0
- package/dist/particles/postal-code-field/postal-code-field.d.ts +75 -0
- package/dist/particles/postal-code-field/postal-code-field.js +169 -0
- package/dist/particles/postal-code-field/postal-code-field.js.map +1 -0
- package/dist/particles/promotion/promotion.d.ts +46 -0
- package/dist/particles/promotion/promotion.js +78 -0
- package/dist/particles/promotion/promotion.js.map +1 -0
- package/dist/particles/quantity-selector/quantity-selector.d.ts +30 -0
- package/dist/particles/quantity-selector/quantity-selector.js +116 -0
- package/dist/particles/quantity-selector/quantity-selector.js.map +1 -0
- package/dist/particles/radio/radio.d.ts +36 -0
- package/dist/particles/radio/radio.js +76 -0
- package/dist/particles/radio/radio.js.map +1 -0
- package/dist/particles/scroll-area/scroll-area.d.ts +36 -0
- package/dist/particles/scroll-area/scroll-area.js +145 -0
- package/dist/particles/scroll-area/scroll-area.js.map +1 -0
- package/dist/particles/select/select.d.ts +125 -0
- package/dist/particles/select/select.js +478 -0
- package/dist/particles/select/select.js.map +1 -0
- package/dist/particles/separator/separator.d.ts +12 -0
- package/dist/particles/separator/separator.js +33 -0
- package/dist/particles/separator/separator.js.map +1 -0
- package/dist/particles/shared/input-mask.d.ts +5 -0
- package/dist/particles/shared/input-mask.js +58 -0
- package/dist/particles/shared/input-mask.js.map +1 -0
- package/dist/particles/spinner/spinner.d.ts +13 -0
- package/dist/particles/spinner/spinner.js +31 -0
- package/dist/particles/spinner/spinner.js.map +1 -0
- package/dist/particles/switch/switch.d.ts +27 -0
- package/dist/particles/switch/switch.js +59 -0
- package/dist/particles/switch/switch.js.map +1 -0
- package/dist/particles/tabs/tabs.d.ts +45 -0
- package/dist/particles/tabs/tabs.js +164 -0
- package/dist/particles/tabs/tabs.js.map +1 -0
- package/dist/particles/text/text.d.ts +24 -0
- package/dist/particles/text/text.js +40 -0
- package/dist/particles/text/text.js.map +1 -0
- package/dist/particles/toast/toast.d.ts +83 -0
- package/dist/particles/toast/toast.js +194 -0
- package/dist/particles/toast/toast.js.map +1 -0
- package/dist/particles/toggle/toggle.d.ts +26 -0
- package/dist/particles/toggle/toggle.js +61 -0
- package/dist/particles/toggle/toggle.js.map +1 -0
- package/dist/particles/tooltip/tooltip.d.ts +61 -0
- package/dist/particles/tooltip/tooltip.js +240 -0
- package/dist/particles/tooltip/tooltip.js.map +1 -0
- package/dist/schema.graphql +2953 -0
- package/dist/sdk/actions/cart-action-provider.d.ts +19 -0
- package/dist/sdk/actions/cart-action-provider.js +23 -0
- package/dist/sdk/actions/cart-action-provider.js.map +1 -0
- package/dist/sdk/actions/identity-action-provider.d.ts +15 -0
- package/dist/sdk/actions/identity-action-provider.js +19 -0
- package/dist/sdk/actions/identity-action-provider.js.map +1 -0
- package/dist/sdk/actions/index.d.ts +7 -0
- package/dist/sdk/actions/index.js +6 -0
- package/dist/sdk/actions/inject-actions.d.ts +14 -0
- package/dist/sdk/actions/inject-actions.js +36 -0
- package/dist/sdk/actions/inject-actions.js.map +1 -0
- package/dist/sdk/actions/region-action-provider.d.ts +15 -0
- package/dist/sdk/actions/region-action-provider.js +19 -0
- package/dist/sdk/actions/region-action-provider.js.map +1 -0
- package/dist/sdk/actions/session-action-provider.d.ts +15 -0
- package/dist/sdk/actions/session-action-provider.js +19 -0
- package/dist/sdk/actions/session-action-provider.js.map +1 -0
- package/dist/sdk/actions/shipping-action-provider.d.ts +15 -0
- package/dist/sdk/actions/shipping-action-provider.js +19 -0
- package/dist/sdk/actions/shipping-action-provider.js.map +1 -0
- package/dist/sdk/actions/types.d.ts +21 -0
- package/dist/sdk/cache/storefront-cache.js +35 -0
- package/dist/sdk/cache/storefront-cache.js.map +1 -0
- package/dist/sdk/cart/operations.d.ts +31 -0
- package/dist/sdk/cart/operations.js +215 -0
- package/dist/sdk/cart/operations.js.map +1 -0
- package/dist/sdk/cart/optimistic.d.ts +24 -0
- package/dist/sdk/cart/optimistic.js +164 -0
- package/dist/sdk/cart/optimistic.js.map +1 -0
- package/dist/sdk/cart/use-cart-actions.d.ts +56 -0
- package/dist/sdk/cart/use-cart-actions.js +348 -0
- package/dist/sdk/cart/use-cart-actions.js.map +1 -0
- package/dist/sdk/cart/use-cart-validate-on-open.js +50 -0
- package/dist/sdk/cart/use-cart-validate-on-open.js.map +1 -0
- package/dist/sdk/cart/write-gate.js +54 -0
- package/dist/sdk/cart/write-gate.js.map +1 -0
- package/dist/sdk/client/assert-api-url.js +20 -0
- package/dist/sdk/client/assert-api-url.js.map +1 -0
- package/dist/sdk/client/create-client.d.ts +23 -0
- package/dist/sdk/client/create-client.js +46 -0
- package/dist/sdk/client/create-client.js.map +1 -0
- package/dist/sdk/client/fetch-page-data.d.ts +39 -0
- package/dist/sdk/client/fetch-page-data.js +33 -0
- package/dist/sdk/client/fetch-page-data.js.map +1 -0
- package/dist/sdk/client/register-preload-query.d.ts +24 -0
- package/dist/sdk/client/register-preload-query.js +33 -0
- package/dist/sdk/client/register-preload-query.js.map +1 -0
- package/dist/sdk/content/create-content-runtime.d.ts +68 -0
- package/dist/sdk/content/create-content-runtime.js +503 -0
- package/dist/sdk/content/create-content-runtime.js.map +1 -0
- package/dist/sdk/context/headers.d.ts +15 -0
- package/dist/sdk/context/headers.js +21 -0
- package/dist/sdk/context/headers.js.map +1 -0
- package/dist/sdk/context/storefront-context.d.ts +11 -0
- package/dist/sdk/context/storefront-context.js +29 -0
- package/dist/sdk/context/storefront-context.js.map +1 -0
- package/dist/sdk/data/data-override-context.d.ts +12 -0
- package/dist/sdk/data/data-override-context.js +19 -0
- package/dist/sdk/data/data-override-context.js.map +1 -0
- package/dist/sdk/data/entity-subscriber.js +28 -0
- package/dist/sdk/data/entity-subscriber.js.map +1 -0
- package/dist/sdk/data/hot-data-provider.d.ts +19 -0
- package/dist/sdk/data/hot-data-provider.js +33 -0
- package/dist/sdk/data/hot-data-provider.js.map +1 -0
- package/dist/sdk/data/index.d.ts +8 -0
- package/dist/sdk/data/index.js +8 -0
- package/dist/sdk/data/list-item-ref-context.d.ts +20 -0
- package/dist/sdk/data/list-item-ref-context.js +11 -0
- package/dist/sdk/data/list-item-ref-context.js.map +1 -0
- package/dist/sdk/data/multiple-reactive-data-provider.d.ts +32 -0
- package/dist/sdk/data/multiple-reactive-data-provider.js +20 -0
- package/dist/sdk/data/multiple-reactive-data-provider.js.map +1 -0
- package/dist/sdk/data/page-reactive-data-root.d.ts +53 -0
- package/dist/sdk/data/page-reactive-data-root.js +153 -0
- package/dist/sdk/data/page-reactive-data-root.js.map +1 -0
- package/dist/sdk/data/reactive-data-provider.d.ts +25 -0
- package/dist/sdk/data/reactive-data-provider.js +24 -0
- package/dist/sdk/data/reactive-data-provider.js.map +1 -0
- package/dist/sdk/data/reactive-list-item-data-provider.d.ts +26 -0
- package/dist/sdk/data/reactive-list-item-data-provider.js +42 -0
- package/dist/sdk/data/reactive-list-item-data-provider.js.map +1 -0
- package/dist/sdk/data/use-reactive-entity.js +40 -0
- package/dist/sdk/data/use-reactive-entity.js.map +1 -0
- package/dist/sdk/format/client.d.ts +12 -0
- package/dist/sdk/format/client.js +20 -0
- package/dist/sdk/format/client.js.map +1 -0
- package/dist/sdk/format/formatters.d.ts +32 -0
- package/dist/sdk/format/formatters.js +45 -0
- package/dist/sdk/format/formatters.js.map +1 -0
- package/dist/sdk/generated/fragment-types.js +23 -0
- package/dist/sdk/generated/fragment-types.js.map +1 -0
- package/dist/sdk/generated/gql.js +51 -0
- package/dist/sdk/generated/gql.js.map +1 -0
- package/dist/sdk/generated/graphql.d.ts +622 -0
- package/dist/sdk/generated/graphql.js +11917 -0
- package/dist/sdk/generated/graphql.js.map +1 -0
- package/dist/sdk/graphql-tag.d.ts +10 -0
- package/dist/sdk/graphql-tag.js +21 -0
- package/dist/sdk/graphql-tag.js.map +1 -0
- package/dist/sdk/i18n/client.d.ts +4 -0
- package/dist/sdk/i18n/client.js +4 -0
- package/dist/sdk/i18n/locales.d.ts +8 -0
- package/dist/sdk/i18n/locales.js +57 -0
- package/dist/sdk/i18n/locales.js.map +1 -0
- package/dist/sdk/i18n/messages/en-US.js +24 -0
- package/dist/sdk/i18n/messages/en-US.js.map +1 -0
- package/dist/sdk/i18n/messages/en-US.json +19 -0
- package/dist/sdk/i18n/messages/en-US.json.d.ts +23 -0
- package/dist/sdk/i18n/messages/es-ES.js +24 -0
- package/dist/sdk/i18n/messages/es-ES.js.map +1 -0
- package/dist/sdk/i18n/messages/es-ES.json +19 -0
- package/dist/sdk/i18n/messages/pt-BR.js +24 -0
- package/dist/sdk/i18n/messages/pt-BR.js.map +1 -0
- package/dist/sdk/i18n/messages/pt-BR.json +19 -0
- package/dist/sdk/i18n/provider.d.ts +1 -0
- package/dist/sdk/i18n/provider.js +30 -0
- package/dist/sdk/i18n/provider.js.map +1 -0
- package/dist/sdk/i18n/server.d.ts +28 -0
- package/dist/sdk/i18n/server.js +59 -0
- package/dist/sdk/i18n/server.js.map +1 -0
- package/dist/sdk/identity/operations.d.ts +34 -0
- package/dist/sdk/identity/operations.js +78 -0
- package/dist/sdk/identity/operations.js.map +1 -0
- package/dist/sdk/identity/use-identity-actions.d.ts +62 -0
- package/dist/sdk/identity/use-identity-actions.js +180 -0
- package/dist/sdk/identity/use-identity-actions.js.map +1 -0
- package/dist/sdk/provider/index.d.ts +2 -0
- package/dist/sdk/provider/index.js +2 -0
- package/dist/sdk/provider/storefront-provider.d.ts +32 -0
- package/dist/sdk/provider/storefront-provider.js +111 -0
- package/dist/sdk/provider/storefront-provider.js.map +1 -0
- package/dist/sdk/region/operations.d.ts +6 -0
- package/dist/sdk/region/region-operations.d.ts +30 -0
- package/dist/sdk/region/region-operations.js +23 -0
- package/dist/sdk/region/region-operations.js.map +1 -0
- package/dist/sdk/region/use-region-actions.d.ts +23 -0
- package/dist/sdk/region/use-region-actions.js +66 -0
- package/dist/sdk/region/use-region-actions.js.map +1 -0
- package/dist/sdk/seller.js +11 -0
- package/dist/sdk/seller.js.map +1 -0
- package/dist/sdk/session/auth-operations.d.ts +47 -0
- package/dist/sdk/session/auth-operations.js +79 -0
- package/dist/sdk/session/auth-operations.js.map +1 -0
- package/dist/sdk/session/operations.d.ts +6 -0
- package/dist/sdk/session/use-session-actions.d.ts +27 -0
- package/dist/sdk/session/use-session-actions.js +126 -0
- package/dist/sdk/session/use-session-actions.js.map +1 -0
- package/dist/sdk/shipping/cart-operations.d.ts +3 -0
- package/dist/sdk/shipping/cart-operations.js +33 -0
- package/dist/sdk/shipping/cart-operations.js.map +1 -0
- package/dist/sdk/shipping/operations.d.ts +3 -0
- package/dist/sdk/shipping/operations.js +33 -0
- package/dist/sdk/shipping/operations.js.map +1 -0
- package/dist/sdk/shipping/option-select-operations.d.ts +24 -0
- package/dist/sdk/shipping/option-select-operations.js +45 -0
- package/dist/sdk/shipping/option-select-operations.js.map +1 -0
- package/dist/sdk/shipping/request-timeout.js +41 -0
- package/dist/sdk/shipping/request-timeout.js.map +1 -0
- package/dist/sdk/shipping/shipping-operations.d.ts +38 -0
- package/dist/sdk/shipping/shipping-operations.js +77 -0
- package/dist/sdk/shipping/shipping-operations.js.map +1 -0
- package/dist/sdk/shipping/use-cart-shipping-simulation.d.ts +7 -0
- package/dist/sdk/shipping/use-cart-shipping-simulation.js +72 -0
- package/dist/sdk/shipping/use-cart-shipping-simulation.js.map +1 -0
- package/dist/sdk/shipping/use-shipping-actions.d.ts +27 -0
- package/dist/sdk/shipping/use-shipping-actions.js +113 -0
- package/dist/sdk/shipping/use-shipping-actions.js.map +1 -0
- package/dist/sdk/shipping/use-shipping-simulation.d.ts +7 -0
- package/dist/sdk/shipping/use-shipping-simulation.js +72 -0
- package/dist/sdk/shipping/use-shipping-simulation.js.map +1 -0
- package/dist/sdk/state/cart.d.ts +42 -0
- package/dist/sdk/state/cart.js +64 -0
- package/dist/sdk/state/cart.js.map +1 -0
- package/dist/sdk/state/index.js +3 -0
- package/dist/sdk/state/variant-selector.d.ts +17 -0
- package/dist/sdk/state/variant-selector.js +14 -0
- package/dist/sdk/state/variant-selector.js.map +1 -0
- package/dist/utils/safe-href.js +63 -0
- package/dist/utils/safe-href.js.map +1 -0
- package/package.json +84 -0
- package/src/styles/tailwind.css +32 -0
|
@@ -0,0 +1,660 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { defineComponent } from "../../core/dist/define-component.js";
|
|
3
|
+
import "../../core/dist/index.js";
|
|
4
|
+
import { Field } from "../../particles/field/field.js";
|
|
5
|
+
import { useDataOverride } from "../../sdk/data/data-override-context.js";
|
|
6
|
+
import { useSession } from "../session/session.js";
|
|
7
|
+
import { Icon } from "../../particles/icon/icon.js";
|
|
8
|
+
import { Checkbox } from "../../particles/checkbox/checkbox.js";
|
|
9
|
+
import { PhoneField, toE164, validatePhoneNumber } from "../../particles/phone-field/phone-field.js";
|
|
10
|
+
import { DocumentField, isSupportedDocumentType, isValidDocument } from "../../particles/document-field/document-field.js";
|
|
11
|
+
import { Fieldset } from "../../particles/fieldset/fieldset.js";
|
|
12
|
+
import { createContext, useContext, useRef, useState } from "react";
|
|
13
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
//#region src/matter/client-profile-form/client-profile-form.tsx
|
|
15
|
+
/**
|
|
16
|
+
* The `client-profile-form` compound (specs/fspg-863-client-profile-form.md) — the batched,
|
|
17
|
+
* explicit-save customer-information form, decomposed into freely-composable parts. `Root` owns the
|
|
18
|
+
* mechanics (a local draft across BOTH sibling identity entities, dirty tracking, format validation,
|
|
19
|
+
* a single batched Save that dispatches at most one `clientProfileUpdate` and one
|
|
20
|
+
* `clientPreferencesUpdate` per press carrying only touched fields, and the confirmation on a clean
|
|
21
|
+
* save); it publishes no signal, so nothing outside it reacts to a completed press. The
|
|
22
|
+
* field/fieldset/feedback leaves are thin, context-bound, and placed by the
|
|
23
|
+
* schema author in any order/subset.
|
|
24
|
+
*
|
|
25
|
+
* Composability is the point: a merchant whose platform config drops a field, reorders them, or adds
|
|
26
|
+
* a derived one just composes accordingly — nothing is hard-coded into a closed template. A part that
|
|
27
|
+
* needs extra data declares its own `requiresContext`.
|
|
28
|
+
*
|
|
29
|
+
* Email is read-only (identification, not profile data — `EmailIdentificationControl`'s job). The
|
|
30
|
+
* document field self-gates on `isSupportedDocumentType(documentType)`.
|
|
31
|
+
*/
|
|
32
|
+
const fragment = `
|
|
33
|
+
fragment ClientProfileFormData on Query {
|
|
34
|
+
clientProfile {
|
|
35
|
+
__typename
|
|
36
|
+
id
|
|
37
|
+
email
|
|
38
|
+
firstName
|
|
39
|
+
lastName
|
|
40
|
+
phone
|
|
41
|
+
document
|
|
42
|
+
}
|
|
43
|
+
clientPreferences {
|
|
44
|
+
__typename
|
|
45
|
+
id
|
|
46
|
+
optinNewsLetter
|
|
47
|
+
savePersonalData
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
const VALIDATION_ORDER = ["phone", "document"];
|
|
52
|
+
/** Shown when a write throws instead of resolving `userErrors`; the resolved case carries its own message. */
|
|
53
|
+
const SAVE_FAILED_MESSAGE = "Unable to save your information. Please try again.";
|
|
54
|
+
function stripNonDigits(value) {
|
|
55
|
+
return value.replace(/\D/g, "");
|
|
56
|
+
}
|
|
57
|
+
const CLIENT_PROFILE_FORM_UNSET = Symbol("ClientProfileFormContextUnset");
|
|
58
|
+
const ClientProfileFormContext = createContext(CLIENT_PROFILE_FORM_UNSET);
|
|
59
|
+
function useClientProfileFormContext() {
|
|
60
|
+
const ctx = useContext(ClientProfileFormContext);
|
|
61
|
+
if (ctx === CLIENT_PROFILE_FORM_UNSET) throw new Error("ClientProfileForm parts must be used inside ClientProfileForm.Root.");
|
|
62
|
+
return ctx;
|
|
63
|
+
}
|
|
64
|
+
const ClientProfileFormRootDefinition = defineComponent({
|
|
65
|
+
name: "ClientProfileFormRoot",
|
|
66
|
+
importPath: "@vtex/faststore/components",
|
|
67
|
+
component: ClientProfileFormRoot,
|
|
68
|
+
fragment,
|
|
69
|
+
fetchStrategy: "reactive",
|
|
70
|
+
requiresContext: "session",
|
|
71
|
+
providesContext: "client-profile-form",
|
|
72
|
+
actions: { identity: ["clientProfileUpdate", "clientPreferencesUpdate"] },
|
|
73
|
+
editor: {
|
|
74
|
+
label: "Client Profile Form Root",
|
|
75
|
+
category: "action"
|
|
76
|
+
},
|
|
77
|
+
schema: {
|
|
78
|
+
country: {
|
|
79
|
+
type: "string",
|
|
80
|
+
default: "US",
|
|
81
|
+
label: "Phone country (US or BR)"
|
|
82
|
+
},
|
|
83
|
+
documentType: {
|
|
84
|
+
type: "string",
|
|
85
|
+
label: "Document type (e.g. CPF)"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
guideline: "Data root + form mechanics for the batched customer-information form: owns the draft across clientProfile + clientPreferences, dirty tracking, format-only validation (never requiredness), one batched Save (dispatches only touched fields), and the confirmation on a clean save. It reports nothing to anything outside itself. Requires a SessionRoot ancestor. Compose the field/fieldset/feedback parts as children in any order/subset. See client-profile-form.md."
|
|
89
|
+
});
|
|
90
|
+
const ClientProfileFormFieldsetDefinition = defineComponent({
|
|
91
|
+
name: "ClientProfileFormFieldset",
|
|
92
|
+
importPath: "@vtex/faststore/components",
|
|
93
|
+
component: ClientProfileFormFieldset,
|
|
94
|
+
requiresContext: "client-profile-form",
|
|
95
|
+
editor: {
|
|
96
|
+
label: "Client Profile Form Fieldset",
|
|
97
|
+
category: "layout"
|
|
98
|
+
},
|
|
99
|
+
schema: {
|
|
100
|
+
legend: {
|
|
101
|
+
type: "string",
|
|
102
|
+
label: "Legend"
|
|
103
|
+
},
|
|
104
|
+
section: {
|
|
105
|
+
type: "string",
|
|
106
|
+
label: "Section name (data-fs hook)"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
guideline: "Optional grouping wrapper: a Fieldset whose disabled state follows the form, with an optional legend and a `section` name emitted on data-fs-client-profile-form-section for scoped styling. Compose any subset of the field parts as children. Must be inside ClientProfileForm.Root."
|
|
110
|
+
});
|
|
111
|
+
const ClientProfileFormEmailFieldDefinition = defineComponent({
|
|
112
|
+
name: "ClientProfileFormEmailField",
|
|
113
|
+
importPath: "@vtex/faststore/components",
|
|
114
|
+
component: ClientProfileFormEmailField,
|
|
115
|
+
requiresContext: "client-profile-form",
|
|
116
|
+
editor: {
|
|
117
|
+
label: "Client Profile Email Field",
|
|
118
|
+
category: "action"
|
|
119
|
+
},
|
|
120
|
+
schema: { label: {
|
|
121
|
+
type: "string",
|
|
122
|
+
default: "Email",
|
|
123
|
+
label: "Label"
|
|
124
|
+
} },
|
|
125
|
+
guideline: "Read-only email display, seeded from the profile. Must be inside ClientProfileForm.Root."
|
|
126
|
+
});
|
|
127
|
+
const ClientProfileFormFirstNameFieldDefinition = defineComponent({
|
|
128
|
+
name: "ClientProfileFormFirstNameField",
|
|
129
|
+
importPath: "@vtex/faststore/components",
|
|
130
|
+
component: ClientProfileFormFirstNameField,
|
|
131
|
+
requiresContext: "client-profile-form",
|
|
132
|
+
editor: {
|
|
133
|
+
label: "Client Profile First Name Field",
|
|
134
|
+
category: "action"
|
|
135
|
+
},
|
|
136
|
+
schema: { label: {
|
|
137
|
+
type: "string",
|
|
138
|
+
default: "First name",
|
|
139
|
+
label: "Label"
|
|
140
|
+
} },
|
|
141
|
+
guideline: "First-name text field bound to the form draft. Must be inside ClientProfileForm.Root."
|
|
142
|
+
});
|
|
143
|
+
const ClientProfileFormLastNameFieldDefinition = defineComponent({
|
|
144
|
+
name: "ClientProfileFormLastNameField",
|
|
145
|
+
importPath: "@vtex/faststore/components",
|
|
146
|
+
component: ClientProfileFormLastNameField,
|
|
147
|
+
requiresContext: "client-profile-form",
|
|
148
|
+
editor: {
|
|
149
|
+
label: "Client Profile Last Name Field",
|
|
150
|
+
category: "action"
|
|
151
|
+
},
|
|
152
|
+
schema: { label: {
|
|
153
|
+
type: "string",
|
|
154
|
+
default: "Last name",
|
|
155
|
+
label: "Label"
|
|
156
|
+
} },
|
|
157
|
+
guideline: "Last-name text field bound to the form draft. Must be inside ClientProfileForm.Root."
|
|
158
|
+
});
|
|
159
|
+
const ClientProfileFormPhoneFieldDefinition = defineComponent({
|
|
160
|
+
name: "ClientProfileFormPhoneField",
|
|
161
|
+
importPath: "@vtex/faststore/components",
|
|
162
|
+
component: ClientProfileFormPhoneField,
|
|
163
|
+
requiresContext: "client-profile-form",
|
|
164
|
+
editor: {
|
|
165
|
+
label: "Client Profile Phone Field",
|
|
166
|
+
category: "action"
|
|
167
|
+
},
|
|
168
|
+
schema: { label: {
|
|
169
|
+
type: "string",
|
|
170
|
+
default: "Phone number",
|
|
171
|
+
label: "Label"
|
|
172
|
+
} },
|
|
173
|
+
guideline: "Country-masked phone field (country from Root); format-validated on Save. Must be inside ClientProfileForm.Root."
|
|
174
|
+
});
|
|
175
|
+
const ClientProfileFormDocumentFieldDefinition = defineComponent({
|
|
176
|
+
name: "ClientProfileFormDocumentField",
|
|
177
|
+
importPath: "@vtex/faststore/components",
|
|
178
|
+
component: ClientProfileFormDocumentField,
|
|
179
|
+
requiresContext: "client-profile-form",
|
|
180
|
+
editor: {
|
|
181
|
+
label: "Client Profile Document Field",
|
|
182
|
+
category: "action"
|
|
183
|
+
},
|
|
184
|
+
schema: { label: {
|
|
185
|
+
type: "string",
|
|
186
|
+
default: "CPF",
|
|
187
|
+
label: "Label"
|
|
188
|
+
} },
|
|
189
|
+
guideline: "Tax-document field; self-gates on Root.documentType and check-digit-validates on Save. Must be inside ClientProfileForm.Root."
|
|
190
|
+
});
|
|
191
|
+
const ClientProfileFormNewsletterCheckboxDefinition = defineComponent({
|
|
192
|
+
name: "ClientProfileFormNewsletterCheckbox",
|
|
193
|
+
importPath: "@vtex/faststore/components",
|
|
194
|
+
component: ClientProfileFormNewsletterCheckbox,
|
|
195
|
+
requiresContext: "client-profile-form",
|
|
196
|
+
editor: {
|
|
197
|
+
label: "Client Profile Newsletter Checkbox",
|
|
198
|
+
category: "action"
|
|
199
|
+
},
|
|
200
|
+
schema: { label: {
|
|
201
|
+
type: "string",
|
|
202
|
+
default: "Email me with news and offers",
|
|
203
|
+
label: "Label"
|
|
204
|
+
} },
|
|
205
|
+
guideline: "Newsletter opt-in checkbox bound to the form draft. Must be inside ClientProfileForm.Root."
|
|
206
|
+
});
|
|
207
|
+
const ClientProfileFormSavePersonalDataCheckboxDefinition = defineComponent({
|
|
208
|
+
name: "ClientProfileFormSavePersonalDataCheckbox",
|
|
209
|
+
importPath: "@vtex/faststore/components",
|
|
210
|
+
component: ClientProfileFormSavePersonalDataCheckbox,
|
|
211
|
+
requiresContext: "client-profile-form",
|
|
212
|
+
editor: {
|
|
213
|
+
label: "Client Profile Save-Personal-Data Checkbox",
|
|
214
|
+
category: "action"
|
|
215
|
+
},
|
|
216
|
+
schema: { label: {
|
|
217
|
+
type: "string",
|
|
218
|
+
default: "Save my information for next time",
|
|
219
|
+
label: "Label"
|
|
220
|
+
} },
|
|
221
|
+
guideline: "Save-personal-data opt-in checkbox bound to the form draft. Must be inside ClientProfileForm.Root."
|
|
222
|
+
});
|
|
223
|
+
const ClientProfileFormErrorDefinition = defineComponent({
|
|
224
|
+
name: "ClientProfileFormError",
|
|
225
|
+
importPath: "@vtex/faststore/components",
|
|
226
|
+
component: ClientProfileFormError,
|
|
227
|
+
requiresContext: "client-profile-form",
|
|
228
|
+
editor: {
|
|
229
|
+
label: "Client Profile Form Error",
|
|
230
|
+
category: "content"
|
|
231
|
+
},
|
|
232
|
+
schema: {},
|
|
233
|
+
guideline: "Renders the inline server error (role=\"alert\") from the last Save, or nothing. Must be inside ClientProfileForm.Root."
|
|
234
|
+
});
|
|
235
|
+
const ClientProfileFormConfirmationDefinition = defineComponent({
|
|
236
|
+
name: "ClientProfileFormConfirmation",
|
|
237
|
+
importPath: "@vtex/faststore/components",
|
|
238
|
+
component: ClientProfileFormConfirmation,
|
|
239
|
+
requiresContext: "client-profile-form",
|
|
240
|
+
editor: {
|
|
241
|
+
label: "Client Profile Form Confirmation",
|
|
242
|
+
category: "content"
|
|
243
|
+
},
|
|
244
|
+
schema: { message: {
|
|
245
|
+
type: "string",
|
|
246
|
+
default: "Your information has been saved.",
|
|
247
|
+
label: "Confirmation message"
|
|
248
|
+
} },
|
|
249
|
+
guideline: "Renders the success confirmation (an <output>) after a Save with no errors, cleared on the next edit. Must be inside ClientProfileForm.Root."
|
|
250
|
+
});
|
|
251
|
+
const ClientProfileFormSubmitButtonDefinition = defineComponent({
|
|
252
|
+
name: "ClientProfileFormSubmitButton",
|
|
253
|
+
importPath: "@vtex/faststore/components",
|
|
254
|
+
component: ClientProfileFormSubmitButton,
|
|
255
|
+
requiresContext: "client-profile-form",
|
|
256
|
+
editor: {
|
|
257
|
+
label: "Client Profile Form Submit Button",
|
|
258
|
+
category: "action"
|
|
259
|
+
},
|
|
260
|
+
schema: { label: {
|
|
261
|
+
type: "string",
|
|
262
|
+
default: "Save and continue",
|
|
263
|
+
label: "Button label"
|
|
264
|
+
} },
|
|
265
|
+
guideline: "The batched-Save submit button (type=submit). Disabled while a write is in flight; renders nothing when the session is read-only. Compose an Icon + text as children, or rely on `label`. Must be inside ClientProfileForm.Root."
|
|
266
|
+
});
|
|
267
|
+
function validateDraft(draft, country, documentType) {
|
|
268
|
+
const errors = {};
|
|
269
|
+
const phoneRaw = draft.phone.trim();
|
|
270
|
+
if (phoneRaw && !validatePhoneNumber(phoneRaw, country)) errors.phone = "Invalid phone number";
|
|
271
|
+
if (isSupportedDocumentType(documentType)) {
|
|
272
|
+
const digits = stripNonDigits(draft.document);
|
|
273
|
+
if (digits && !isValidDocument(digits, documentType)) errors.document = "Invalid document number";
|
|
274
|
+
}
|
|
275
|
+
return errors;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Data root + form shell. Seeds a local draft from `$data`, tracks dirty fields (background `$data`
|
|
279
|
+
* refreshes only re-seed untouched fields), runs format-only validation, and on Save dispatches the
|
|
280
|
+
* batched `clientProfileUpdate` / `clientPreferencesUpdate` (touched fields only), showing the
|
|
281
|
+
* confirmation on success. Provides everything the field leaves need via context; renders a `<form>`
|
|
282
|
+
* around its children.
|
|
283
|
+
*
|
|
284
|
+
* It publishes nothing. A finished press is not announced, so no section collapses as a result and
|
|
285
|
+
* nothing outside this form can react to it. Whether a checkout sequences on a completed form is left to
|
|
286
|
+
* the flow-of-steps RFC (#611).
|
|
287
|
+
*/
|
|
288
|
+
function ClientProfileFormRoot({ country = "US", documentType, className, children, $data: $dataProp, $actions }) {
|
|
289
|
+
const $data = useDataOverride($dataProp);
|
|
290
|
+
const { canEditData } = useSession();
|
|
291
|
+
const readOnly = !canEditData;
|
|
292
|
+
const savedEmail = $data?.clientProfile?.email ?? "";
|
|
293
|
+
const savedFirstName = $data?.clientProfile?.firstName ?? "";
|
|
294
|
+
const savedLastName = $data?.clientProfile?.lastName ?? "";
|
|
295
|
+
const savedPhone = $data?.clientProfile?.phone ?? "";
|
|
296
|
+
const savedDocument = $data?.clientProfile?.document ?? "";
|
|
297
|
+
const savedOptinNewsLetter = Boolean($data?.clientPreferences?.optinNewsLetter ?? false);
|
|
298
|
+
const savedSavePersonalData = Boolean($data?.clientPreferences?.savePersonalData ?? false);
|
|
299
|
+
const [draft, setDraft] = useState(() => ({
|
|
300
|
+
firstName: savedFirstName,
|
|
301
|
+
lastName: savedLastName,
|
|
302
|
+
phone: savedPhone,
|
|
303
|
+
document: savedDocument,
|
|
304
|
+
optinNewsLetter: savedOptinNewsLetter,
|
|
305
|
+
savePersonalData: savedSavePersonalData
|
|
306
|
+
}));
|
|
307
|
+
const [dirtyFields, setDirtyFields] = useState(/* @__PURE__ */ new Set());
|
|
308
|
+
const [fieldErrors, setFieldErrors] = useState({});
|
|
309
|
+
const [pending, setPending] = useState(false);
|
|
310
|
+
const [serverError, setServerError] = useState(null);
|
|
311
|
+
const [saved, setSaved] = useState(false);
|
|
312
|
+
const formRef = useRef(null);
|
|
313
|
+
const prevSavedRef = useRef({
|
|
314
|
+
firstName: savedFirstName,
|
|
315
|
+
lastName: savedLastName,
|
|
316
|
+
phone: savedPhone,
|
|
317
|
+
document: savedDocument,
|
|
318
|
+
optinNewsLetter: savedOptinNewsLetter,
|
|
319
|
+
savePersonalData: savedSavePersonalData
|
|
320
|
+
});
|
|
321
|
+
const prevSaved = prevSavedRef.current;
|
|
322
|
+
const changedKeys = [];
|
|
323
|
+
if (prevSaved.firstName !== savedFirstName) changedKeys.push("firstName");
|
|
324
|
+
if (prevSaved.lastName !== savedLastName) changedKeys.push("lastName");
|
|
325
|
+
if (prevSaved.phone !== savedPhone) changedKeys.push("phone");
|
|
326
|
+
if (prevSaved.document !== savedDocument) changedKeys.push("document");
|
|
327
|
+
if (prevSaved.optinNewsLetter !== savedOptinNewsLetter) changedKeys.push("optinNewsLetter");
|
|
328
|
+
if (prevSaved.savePersonalData !== savedSavePersonalData) changedKeys.push("savePersonalData");
|
|
329
|
+
if (changedKeys.length > 0) {
|
|
330
|
+
const nextSaved = {
|
|
331
|
+
firstName: savedFirstName,
|
|
332
|
+
lastName: savedLastName,
|
|
333
|
+
phone: savedPhone,
|
|
334
|
+
document: savedDocument,
|
|
335
|
+
optinNewsLetter: savedOptinNewsLetter,
|
|
336
|
+
savePersonalData: savedSavePersonalData
|
|
337
|
+
};
|
|
338
|
+
prevSavedRef.current = nextSaved;
|
|
339
|
+
setDraft((prevDraft) => {
|
|
340
|
+
let next = prevDraft;
|
|
341
|
+
for (const key of changedKeys) {
|
|
342
|
+
if (dirtyFields.has(key)) continue;
|
|
343
|
+
if (next === prevDraft) next = { ...prevDraft };
|
|
344
|
+
next[key] = nextSaved[key];
|
|
345
|
+
}
|
|
346
|
+
return next;
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
const disabled = pending || readOnly;
|
|
350
|
+
function markDirty(key) {
|
|
351
|
+
setDirtyFields((prev) => {
|
|
352
|
+
if (prev.has(key)) return prev;
|
|
353
|
+
const next = new Set(prev);
|
|
354
|
+
next.add(key);
|
|
355
|
+
return next;
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
function clearFeedback() {
|
|
359
|
+
if (saved) setSaved(false);
|
|
360
|
+
if (serverError) setServerError(null);
|
|
361
|
+
}
|
|
362
|
+
function clearFieldError(key) {
|
|
363
|
+
if (fieldErrors[key]) setFieldErrors((prev) => {
|
|
364
|
+
const next = { ...prev };
|
|
365
|
+
delete next[key];
|
|
366
|
+
return next;
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
function setText(key, value) {
|
|
370
|
+
setDraft((prev) => ({
|
|
371
|
+
...prev,
|
|
372
|
+
[key]: value
|
|
373
|
+
}));
|
|
374
|
+
markDirty(key);
|
|
375
|
+
clearFeedback();
|
|
376
|
+
}
|
|
377
|
+
function setPhone(value) {
|
|
378
|
+
setDraft((prev) => ({
|
|
379
|
+
...prev,
|
|
380
|
+
phone: value
|
|
381
|
+
}));
|
|
382
|
+
markDirty("phone");
|
|
383
|
+
clearFeedback();
|
|
384
|
+
clearFieldError("phone");
|
|
385
|
+
}
|
|
386
|
+
function setDocument(value) {
|
|
387
|
+
setDraft((prev) => ({
|
|
388
|
+
...prev,
|
|
389
|
+
document: value
|
|
390
|
+
}));
|
|
391
|
+
markDirty("document");
|
|
392
|
+
clearFeedback();
|
|
393
|
+
clearFieldError("document");
|
|
394
|
+
}
|
|
395
|
+
function setCheckbox(key, checked) {
|
|
396
|
+
setDraft((prev) => ({
|
|
397
|
+
...prev,
|
|
398
|
+
[key]: checked
|
|
399
|
+
}));
|
|
400
|
+
markDirty(key);
|
|
401
|
+
clearFeedback();
|
|
402
|
+
}
|
|
403
|
+
function focusField(key) {
|
|
404
|
+
(formRef.current?.querySelector(`[data-fs-client-profile-form-field="${key}"] input`))?.focus();
|
|
405
|
+
}
|
|
406
|
+
async function handleSubmit(event) {
|
|
407
|
+
event.preventDefault();
|
|
408
|
+
if (readOnly || pending) return;
|
|
409
|
+
const errors = validateDraft(draft, country, documentType);
|
|
410
|
+
if (Object.keys(errors).length > 0) {
|
|
411
|
+
setFieldErrors(errors);
|
|
412
|
+
const firstInvalid = VALIDATION_ORDER.find((key) => errors[key]);
|
|
413
|
+
if (firstInvalid) focusField(firstInvalid);
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
setFieldErrors({});
|
|
417
|
+
if (dirtyFields.size === 0) {
|
|
418
|
+
setServerError(null);
|
|
419
|
+
setSaved(true);
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
const identity = $actions?.identity;
|
|
423
|
+
if (!identity) return;
|
|
424
|
+
const profilePayload = {};
|
|
425
|
+
if (dirtyFields.has("firstName")) profilePayload.firstName = draft.firstName.trim();
|
|
426
|
+
if (dirtyFields.has("lastName")) profilePayload.lastName = draft.lastName.trim();
|
|
427
|
+
if (dirtyFields.has("phone")) profilePayload.phone = draft.phone.trim() ? toE164(draft.phone, country) : "";
|
|
428
|
+
if (dirtyFields.has("document")) profilePayload.document = stripNonDigits(draft.document);
|
|
429
|
+
const preferencesPayload = {};
|
|
430
|
+
if (dirtyFields.has("optinNewsLetter")) preferencesPayload.optinNewsLetter = draft.optinNewsLetter;
|
|
431
|
+
if (dirtyFields.has("savePersonalData")) preferencesPayload.savePersonalData = draft.savePersonalData;
|
|
432
|
+
const writes = [];
|
|
433
|
+
if (Object.keys(profilePayload).length > 0 && identity.clientProfileUpdate) writes.push(identity.clientProfileUpdate(profilePayload));
|
|
434
|
+
if (Object.keys(preferencesPayload).length > 0 && identity.clientPreferencesUpdate) writes.push(identity.clientPreferencesUpdate(preferencesPayload));
|
|
435
|
+
if (writes.length === 0) return;
|
|
436
|
+
setPending(true);
|
|
437
|
+
setServerError(null);
|
|
438
|
+
setSaved(false);
|
|
439
|
+
try {
|
|
440
|
+
const allErrors = (await Promise.all(writes)).flat();
|
|
441
|
+
if (allErrors.length > 0) {
|
|
442
|
+
setServerError(allErrors[0]?.message ?? null);
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
setDirtyFields(/* @__PURE__ */ new Set());
|
|
446
|
+
setSaved(true);
|
|
447
|
+
} catch (error) {
|
|
448
|
+
console.error("[ClientProfileForm] profile write failed:", error);
|
|
449
|
+
setServerError(SAVE_FAILED_MESSAGE);
|
|
450
|
+
} finally {
|
|
451
|
+
setPending(false);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
const contextValue = {
|
|
455
|
+
savedEmail,
|
|
456
|
+
draft,
|
|
457
|
+
fieldErrors,
|
|
458
|
+
disabled,
|
|
459
|
+
readOnly,
|
|
460
|
+
pending,
|
|
461
|
+
serverError,
|
|
462
|
+
saved,
|
|
463
|
+
country,
|
|
464
|
+
documentType,
|
|
465
|
+
setText,
|
|
466
|
+
setPhone,
|
|
467
|
+
setDocument,
|
|
468
|
+
setCheckbox
|
|
469
|
+
};
|
|
470
|
+
return /* @__PURE__ */ jsx(ClientProfileFormContext.Provider, {
|
|
471
|
+
value: contextValue,
|
|
472
|
+
children: /* @__PURE__ */ jsx("form", {
|
|
473
|
+
ref: formRef,
|
|
474
|
+
onSubmit: handleSubmit,
|
|
475
|
+
className,
|
|
476
|
+
"data-fs-client-profile-form": "",
|
|
477
|
+
...pending ? { "data-fs-client-profile-form-pending": "" } : {},
|
|
478
|
+
...readOnly ? { "data-fs-client-profile-form-readonly": "" } : {},
|
|
479
|
+
...saved ? { "data-fs-client-profile-form-saved": "" } : {},
|
|
480
|
+
children
|
|
481
|
+
})
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
function ClientProfileFormFieldset({ legend, section, className, children }) {
|
|
485
|
+
const { disabled } = useClientProfileFormContext();
|
|
486
|
+
return /* @__PURE__ */ jsxs(Fieldset.Root, {
|
|
487
|
+
disabled,
|
|
488
|
+
className,
|
|
489
|
+
...section ? { "data-fs-client-profile-form-section": section } : {},
|
|
490
|
+
children: [legend ? /* @__PURE__ */ jsx(Fieldset.Legend, { children: legend }) : null, children]
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
function ClientProfileFormEmailField({ label = "Email", className }) {
|
|
494
|
+
const { savedEmail, disabled } = useClientProfileFormContext();
|
|
495
|
+
return /* @__PURE__ */ jsxs(Field.Root, {
|
|
496
|
+
className,
|
|
497
|
+
"data-fs-client-profile-form-field": "email",
|
|
498
|
+
disabled,
|
|
499
|
+
children: [/* @__PURE__ */ jsx(Field.Label, { children: label }), /* @__PURE__ */ jsx(Field.Control, {
|
|
500
|
+
readOnly: true,
|
|
501
|
+
value: savedEmail,
|
|
502
|
+
disabled
|
|
503
|
+
})]
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
function TextField({ fieldKey, label, className }) {
|
|
507
|
+
const { draft, disabled, setText } = useClientProfileFormContext();
|
|
508
|
+
const attr = fieldKey === "firstName" ? "first-name" : "last-name";
|
|
509
|
+
const autoComplete = fieldKey === "firstName" ? "given-name" : "family-name";
|
|
510
|
+
return /* @__PURE__ */ jsxs(Field.Root, {
|
|
511
|
+
className,
|
|
512
|
+
"data-fs-client-profile-form-field": attr,
|
|
513
|
+
disabled,
|
|
514
|
+
children: [/* @__PURE__ */ jsx(Field.Label, { children: label }), /* @__PURE__ */ jsx(Field.Control, {
|
|
515
|
+
name: fieldKey,
|
|
516
|
+
autoComplete,
|
|
517
|
+
value: draft[fieldKey],
|
|
518
|
+
onChange: (event) => setText(fieldKey, event.target.value),
|
|
519
|
+
disabled
|
|
520
|
+
})]
|
|
521
|
+
});
|
|
522
|
+
}
|
|
523
|
+
function ClientProfileFormFirstNameField({ label = "First name", className }) {
|
|
524
|
+
return /* @__PURE__ */ jsx(TextField, {
|
|
525
|
+
fieldKey: "firstName",
|
|
526
|
+
label,
|
|
527
|
+
className
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
function ClientProfileFormLastNameField({ label = "Last name", className }) {
|
|
531
|
+
return /* @__PURE__ */ jsx(TextField, {
|
|
532
|
+
fieldKey: "lastName",
|
|
533
|
+
label,
|
|
534
|
+
className
|
|
535
|
+
});
|
|
536
|
+
}
|
|
537
|
+
function ClientProfileFormPhoneField({ label = "Phone number", className }) {
|
|
538
|
+
const { draft, fieldErrors, disabled, country, setPhone } = useClientProfileFormContext();
|
|
539
|
+
return /* @__PURE__ */ jsx("div", {
|
|
540
|
+
className,
|
|
541
|
+
"data-fs-client-profile-form-field": "phone",
|
|
542
|
+
children: /* @__PURE__ */ jsx(PhoneField, {
|
|
543
|
+
label,
|
|
544
|
+
country,
|
|
545
|
+
value: draft.phone,
|
|
546
|
+
onValueChange: setPhone,
|
|
547
|
+
isDisabled: disabled,
|
|
548
|
+
invalid: fieldErrors.phone ? true : void 0,
|
|
549
|
+
error: fieldErrors.phone
|
|
550
|
+
})
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
function ClientProfileFormDocumentField({ label = "CPF", className }) {
|
|
554
|
+
const { draft, fieldErrors, disabled, documentType, setDocument } = useClientProfileFormContext();
|
|
555
|
+
if (!isSupportedDocumentType(documentType)) return null;
|
|
556
|
+
return /* @__PURE__ */ jsx("div", {
|
|
557
|
+
className,
|
|
558
|
+
"data-fs-client-profile-form-field": "document",
|
|
559
|
+
children: /* @__PURE__ */ jsx(DocumentField, {
|
|
560
|
+
label,
|
|
561
|
+
documentType,
|
|
562
|
+
value: draft.document,
|
|
563
|
+
onValueChange: setDocument,
|
|
564
|
+
disabled,
|
|
565
|
+
invalid: Boolean(fieldErrors.document),
|
|
566
|
+
errorMessage: fieldErrors.document ?? "Invalid document number"
|
|
567
|
+
})
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
function CheckboxField({ fieldKey, attr, label, className }) {
|
|
571
|
+
const { draft, disabled, setCheckbox } = useClientProfileFormContext();
|
|
572
|
+
return /* @__PURE__ */ jsx(Field.Root, {
|
|
573
|
+
className,
|
|
574
|
+
"data-fs-client-profile-form-field": attr,
|
|
575
|
+
disabled,
|
|
576
|
+
children: /* @__PURE__ */ jsxs(Field.Label, { children: [/* @__PURE__ */ jsx(Checkbox.Root, {
|
|
577
|
+
checked: draft[fieldKey],
|
|
578
|
+
onCheckedChange: (checked) => setCheckbox(fieldKey, checked),
|
|
579
|
+
disabled,
|
|
580
|
+
children: /* @__PURE__ */ jsx(Checkbox.Indicator, { children: /* @__PURE__ */ jsx(Icon, { name: "checked" }) })
|
|
581
|
+
}), label] })
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
function ClientProfileFormNewsletterCheckbox({ label = "Email me with news and offers", className }) {
|
|
585
|
+
return /* @__PURE__ */ jsx(CheckboxField, {
|
|
586
|
+
fieldKey: "optinNewsLetter",
|
|
587
|
+
attr: "newsletter",
|
|
588
|
+
label,
|
|
589
|
+
className
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
function ClientProfileFormSavePersonalDataCheckbox({ label = "Save my information for next time", className }) {
|
|
593
|
+
return /* @__PURE__ */ jsx(CheckboxField, {
|
|
594
|
+
fieldKey: "savePersonalData",
|
|
595
|
+
attr: "save-personal-data",
|
|
596
|
+
label,
|
|
597
|
+
className
|
|
598
|
+
});
|
|
599
|
+
}
|
|
600
|
+
function ClientProfileFormError({ className }) {
|
|
601
|
+
const { serverError } = useClientProfileFormContext();
|
|
602
|
+
if (!serverError) return null;
|
|
603
|
+
return /* @__PURE__ */ jsx("div", {
|
|
604
|
+
role: "alert",
|
|
605
|
+
className,
|
|
606
|
+
"data-fs-client-profile-form-error": "",
|
|
607
|
+
children: serverError
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
function ClientProfileFormConfirmation({ message = "Your information has been saved.", className }) {
|
|
611
|
+
const { saved } = useClientProfileFormContext();
|
|
612
|
+
if (!saved) return null;
|
|
613
|
+
return /* @__PURE__ */ jsx("output", {
|
|
614
|
+
className,
|
|
615
|
+
"data-fs-client-profile-form-confirmation": "",
|
|
616
|
+
children: message
|
|
617
|
+
});
|
|
618
|
+
}
|
|
619
|
+
function ClientProfileFormSubmitButton({ label = "Save and continue", className, children }) {
|
|
620
|
+
const { pending, readOnly } = useClientProfileFormContext();
|
|
621
|
+
if (readOnly) return null;
|
|
622
|
+
return /* @__PURE__ */ jsx("button", {
|
|
623
|
+
type: "submit",
|
|
624
|
+
disabled: pending,
|
|
625
|
+
className,
|
|
626
|
+
"data-fs-button": "",
|
|
627
|
+
"data-fs-client-profile-form-save": "",
|
|
628
|
+
children: children ?? label
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
const ClientProfileForm = {
|
|
632
|
+
Root: ClientProfileFormRoot,
|
|
633
|
+
RootDefinition: ClientProfileFormRootDefinition,
|
|
634
|
+
Fieldset: ClientProfileFormFieldset,
|
|
635
|
+
FieldsetDefinition: ClientProfileFormFieldsetDefinition,
|
|
636
|
+
EmailField: ClientProfileFormEmailField,
|
|
637
|
+
EmailFieldDefinition: ClientProfileFormEmailFieldDefinition,
|
|
638
|
+
FirstNameField: ClientProfileFormFirstNameField,
|
|
639
|
+
FirstNameFieldDefinition: ClientProfileFormFirstNameFieldDefinition,
|
|
640
|
+
LastNameField: ClientProfileFormLastNameField,
|
|
641
|
+
LastNameFieldDefinition: ClientProfileFormLastNameFieldDefinition,
|
|
642
|
+
PhoneField: ClientProfileFormPhoneField,
|
|
643
|
+
PhoneFieldDefinition: ClientProfileFormPhoneFieldDefinition,
|
|
644
|
+
DocumentField: ClientProfileFormDocumentField,
|
|
645
|
+
DocumentFieldDefinition: ClientProfileFormDocumentFieldDefinition,
|
|
646
|
+
NewsletterCheckbox: ClientProfileFormNewsletterCheckbox,
|
|
647
|
+
NewsletterCheckboxDefinition: ClientProfileFormNewsletterCheckboxDefinition,
|
|
648
|
+
SavePersonalDataCheckbox: ClientProfileFormSavePersonalDataCheckbox,
|
|
649
|
+
SavePersonalDataCheckboxDefinition: ClientProfileFormSavePersonalDataCheckboxDefinition,
|
|
650
|
+
Error: ClientProfileFormError,
|
|
651
|
+
ErrorDefinition: ClientProfileFormErrorDefinition,
|
|
652
|
+
Confirmation: ClientProfileFormConfirmation,
|
|
653
|
+
ConfirmationDefinition: ClientProfileFormConfirmationDefinition,
|
|
654
|
+
SubmitButton: ClientProfileFormSubmitButton,
|
|
655
|
+
SubmitButtonDefinition: ClientProfileFormSubmitButtonDefinition
|
|
656
|
+
};
|
|
657
|
+
//#endregion
|
|
658
|
+
export { ClientProfileForm, ClientProfileFormConfirmation, ClientProfileFormConfirmationDefinition, ClientProfileFormDocumentField, ClientProfileFormDocumentFieldDefinition, ClientProfileFormEmailField, ClientProfileFormEmailFieldDefinition, ClientProfileFormError, ClientProfileFormErrorDefinition, ClientProfileFormFieldset, ClientProfileFormFieldsetDefinition, ClientProfileFormFirstNameField, ClientProfileFormFirstNameFieldDefinition, ClientProfileFormLastNameField, ClientProfileFormLastNameFieldDefinition, ClientProfileFormNewsletterCheckbox, ClientProfileFormNewsletterCheckboxDefinition, ClientProfileFormPhoneField, ClientProfileFormPhoneFieldDefinition, ClientProfileFormRoot, ClientProfileFormRootDefinition, ClientProfileFormSavePersonalDataCheckbox, ClientProfileFormSavePersonalDataCheckboxDefinition, ClientProfileFormSubmitButton, ClientProfileFormSubmitButtonDefinition };
|
|
659
|
+
|
|
660
|
+
//# sourceMappingURL=client-profile-form.js.map
|