@shipengine/elements 2.24.1 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +187 -6
- package/dist/cjs/components/display-term/display-term.cjs +13 -4
- package/dist/cjs/components/field/credit-card-input/credit-card-input.cjs +46 -29
- package/dist/cjs/components/field/rate-select/rate-card/rate-card.cjs +29 -5
- package/dist/cjs/components/field/rate-select/rate-card/rate-card.styles.cjs +8 -3
- package/dist/cjs/components/field/rate-select/rate-select.cjs +26 -5
- package/dist/cjs/components/forms/address-form/address-form-schema.cjs +3 -3
- package/dist/cjs/components/forms/edit-billing-form/edit-billing-form.cjs +57 -4
- package/dist/cjs/components/grid-controller/error-banner/error-banner.cjs +74 -0
- package/dist/cjs/components/{error-display/error-display.styles.cjs → grid-controller/error-banner/error-banner.styles.cjs} +8 -4
- package/dist/cjs/components/grid-controller/error-banner/index.cjs +7 -0
- package/dist/cjs/components/grid-controller/grid-controller.cjs +49 -3
- package/dist/cjs/components/grid-controller/grid-controller.styles.cjs +11 -1
- package/dist/cjs/components/history/history-card/history-card.cjs +1 -1
- package/dist/cjs/components/history/history-card-extension/history-card-extension.cjs +0 -1
- package/dist/cjs/components/service-card/service-card.cjs +4 -4
- package/dist/cjs/components/service-card/service-card.styles.cjs +5 -2
- package/dist/cjs/components/service-point-display/service-point-display.cjs +1 -36
- package/dist/cjs/components/service-point-display/service-point-display.styles.cjs +0 -12
- package/dist/cjs/components/shipment-not-found-error/index.cjs +7 -0
- package/dist/cjs/components/shipment-not-found-error/shipment-not-found-error.cjs +40 -0
- package/dist/cjs/components/shipment-not-found-error/shipment-not-found-error.styles.cjs +24 -0
- package/dist/cjs/components/suspend-purchase/suspend-purchase.cjs +11 -3
- package/dist/cjs/components/ups-terms-disclosure/index.cjs +7 -0
- package/dist/cjs/components/ups-terms-disclosure/ups-terms-disclosure.cjs +35 -0
- package/dist/cjs/elements/labels-grid/hooks/use-labels-grid.cjs +45 -5
- package/dist/cjs/elements/labels-grid/labels-grid.cjs +24 -6
- package/dist/cjs/elements/purchase-label/components/rate-form/rate-form.cjs +13 -3
- package/dist/cjs/elements/purchase-label/components/rate-form/rate-schema.cjs +7 -2
- package/dist/cjs/elements/purchase-label/components/rate-form/rate-view.cjs +2 -0
- package/dist/cjs/elements/purchase-label/hooks/use-rate-options.cjs +31 -2
- package/dist/cjs/elements/purchase-label/hooks/use-rates-form.cjs +14 -18
- package/dist/cjs/elements/purchase-label/hooks/use-request-rates.cjs +20 -20
- package/dist/cjs/elements/purchase-label/purchase-label.cjs +4 -1
- package/dist/cjs/elements/shipment-summary/components/label-display/label-card.cjs +16 -31
- package/dist/cjs/elements/shipment-summary/components/label-display/label-card.styles.cjs +0 -19
- package/dist/cjs/elements/shipment-summary/components/label-display/paperless-label-display.cjs +54 -0
- package/dist/cjs/elements/shipment-summary/components/label-display/paperless-label-display.styles.cjs +27 -0
- package/dist/cjs/elements/shipments-grid/hooks/use-shipments-grid.cjs +41 -3
- package/dist/cjs/elements/shipments-grid/shipments-grid.cjs +18 -3
- package/dist/cjs/features/manage-carriers/hooks/use-list-funding-source-carriers.cjs +9 -10
- package/dist/cjs/features/manage-carriers/manage-carriers-row/manage-carriers-row.cjs +6 -1
- package/dist/cjs/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.cjs +3 -3
- package/dist/cjs/features/payment-method-settings/payment-method-settings.cjs +56 -18
- package/dist/cjs/hooks/use-configure-shipment.cjs +32 -11
- package/dist/cjs/hooks/use-helpers.cjs +4 -1
- package/dist/cjs/index.cjs +15 -12
- package/dist/cjs/locales/en/account-settings.json.cjs +6 -0
- package/dist/cjs/locales/en/common.json.cjs +2 -0
- package/dist/cjs/locales/en/grid-controller.json.cjs +13 -0
- package/dist/cjs/locales/en/index.cjs +2 -1
- package/dist/cjs/locales/en/onboarding.json.cjs +5 -0
- package/dist/cjs/locales/en/purchase-label.json.cjs +5 -3
- package/dist/cjs/package.json.cjs +1 -1
- package/dist/cjs/utilities/address.cjs +29 -0
- package/dist/cjs/utilities/files.cjs +35 -0
- package/dist/cjs/utilities/formatString.cjs +9 -0
- package/dist/cjs/utilities/index.cjs +5 -0
- package/dist/cjs/utilities/money.cjs +14 -0
- package/dist/cjs/utilities/rate-warning-messages.cjs +25 -0
- package/dist/cjs/utilities/shipengine/warehouses.cjs +2 -1
- package/dist/cjs/workflows/connect-external-carrier/connect-external-carrier.cjs +7 -3
- package/dist/cjs/workflows/label-workflow/label-workflow.cjs +11 -3
- package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.cjs +1 -1
- package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.cjs +17 -1
- package/dist/cjs/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.cjs +4 -1
- package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.cjs +18 -11
- package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.cjs +0 -3
- package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.cjs +36 -12
- package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.cjs +10 -4
- package/dist/cjs/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.cjs +12 -12
- package/dist/esm/components/display-term/display-term.js +14 -5
- package/dist/esm/components/field/credit-card-input/credit-card-input.js +47 -30
- package/dist/esm/components/field/rate-select/rate-card/rate-card.js +30 -6
- package/dist/esm/components/field/rate-select/rate-card/rate-card.styles.js +8 -3
- package/dist/esm/components/field/rate-select/rate-select.js +26 -5
- package/dist/esm/components/forms/address-form/address-form-schema.js +3 -3
- package/dist/esm/components/forms/edit-billing-form/edit-billing-form.js +58 -5
- package/dist/esm/components/grid-controller/error-banner/error-banner.js +72 -0
- package/dist/esm/components/{error-display/error-display.styles.js → grid-controller/error-banner/error-banner.styles.js} +8 -4
- package/dist/esm/components/grid-controller/error-banner/index.js +1 -0
- package/dist/esm/components/grid-controller/grid-controller.js +51 -5
- package/dist/esm/components/grid-controller/grid-controller.styles.js +11 -1
- package/dist/esm/components/history/history-card/history-card.js +1 -1
- package/dist/esm/components/history/history-card-extension/history-card-extension.js +0 -1
- package/dist/esm/components/service-card/service-card.js +4 -4
- package/dist/esm/components/service-card/service-card.styles.js +5 -2
- package/dist/esm/components/service-point-display/service-point-display.js +2 -37
- package/dist/esm/components/service-point-display/service-point-display.styles.js +0 -12
- package/dist/esm/components/shipment-not-found-error/index.js +1 -0
- package/dist/esm/components/shipment-not-found-error/shipment-not-found-error.js +38 -0
- package/dist/esm/components/shipment-not-found-error/shipment-not-found-error.styles.js +22 -0
- package/dist/esm/components/suspend-purchase/suspend-purchase.js +11 -3
- package/dist/esm/components/ups-terms-disclosure/index.js +1 -0
- package/dist/esm/components/ups-terms-disclosure/ups-terms-disclosure.js +33 -0
- package/dist/esm/elements/labels-grid/hooks/use-labels-grid.js +46 -6
- package/dist/esm/elements/labels-grid/labels-grid.js +24 -6
- package/dist/esm/elements/purchase-label/components/rate-form/rate-form.js +14 -4
- package/dist/esm/elements/purchase-label/components/rate-form/rate-schema.js +7 -2
- package/dist/esm/elements/purchase-label/components/rate-form/rate-view.js +2 -0
- package/dist/esm/elements/purchase-label/hooks/use-rate-options.js +31 -2
- package/dist/esm/elements/purchase-label/hooks/use-rates-form.js +14 -18
- package/dist/esm/elements/purchase-label/hooks/use-request-rates.js +20 -20
- package/dist/esm/elements/purchase-label/purchase-label.js +4 -1
- package/dist/esm/elements/shipment-summary/components/label-display/label-card.js +18 -33
- package/dist/esm/elements/shipment-summary/components/label-display/label-card.styles.js +0 -19
- package/dist/esm/elements/shipment-summary/components/label-display/paperless-label-display.js +52 -0
- package/dist/esm/elements/shipment-summary/components/label-display/paperless-label-display.styles.js +25 -0
- package/dist/esm/elements/shipments-grid/hooks/use-shipments-grid.js +42 -4
- package/dist/esm/elements/shipments-grid/shipments-grid.js +18 -3
- package/dist/esm/features/manage-carriers/hooks/use-list-funding-source-carriers.js +9 -10
- package/dist/esm/features/manage-carriers/manage-carriers-row/manage-carriers-row.js +7 -2
- package/dist/esm/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.js +3 -3
- package/dist/esm/features/payment-method-settings/payment-method-settings.js +57 -19
- package/dist/esm/hooks/use-configure-shipment.js +33 -12
- package/dist/esm/hooks/use-helpers.js +4 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/locales/en/account-settings.json.js +6 -0
- package/dist/esm/locales/en/common.json.js +2 -0
- package/dist/esm/locales/en/grid-controller.json.js +11 -0
- package/dist/esm/locales/en/index.js +2 -1
- package/dist/esm/locales/en/onboarding.json.js +5 -0
- package/dist/esm/locales/en/purchase-label.json.js +5 -3
- package/dist/esm/package.json.js +1 -1
- package/dist/esm/utilities/address.js +26 -0
- package/dist/esm/utilities/files.js +32 -0
- package/dist/esm/utilities/formatString.js +9 -1
- package/dist/esm/utilities/index.js +2 -0
- package/dist/esm/utilities/money.js +14 -1
- package/dist/esm/utilities/rate-warning-messages.js +23 -0
- package/dist/esm/utilities/shipengine/warehouses.js +2 -1
- package/dist/esm/workflows/connect-external-carrier/connect-external-carrier.js +7 -3
- package/dist/esm/workflows/label-workflow/label-workflow.js +11 -3
- package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.js +1 -1
- package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.js +17 -1
- package/dist/esm/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.js +4 -1
- package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.js +18 -11
- package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.js +0 -3
- package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.js +37 -13
- package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.js +10 -4
- package/dist/esm/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.js +12 -12
- package/dist/types/components/display-term/display-term.d.ts +3 -3
- package/dist/types/components/display-term/display-term.d.ts.map +1 -1
- package/dist/types/components/field/credit-card-input/credit-card-input.d.ts.map +1 -1
- package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts +4 -2
- package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts.map +1 -1
- package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts +7 -2
- package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts.map +1 -1
- package/dist/types/components/field/rate-select/rate-select.d.ts +1 -0
- package/dist/types/components/field/rate-select/rate-select.d.ts.map +1 -1
- package/dist/types/components/forms/address-form/address-form-schema.d.ts.map +1 -1
- package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts +2 -1
- package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts.map +1 -1
- package/dist/types/components/grid-controller/error-banner/error-banner.d.ts +10 -0
- package/dist/types/components/grid-controller/error-banner/error-banner.d.ts.map +1 -0
- package/dist/types/components/grid-controller/error-banner/error-banner.styles.d.ts +24 -0
- package/dist/types/components/grid-controller/error-banner/error-banner.styles.d.ts.map +1 -0
- package/dist/types/components/grid-controller/error-banner/index.d.ts +2 -0
- package/dist/types/components/grid-controller/error-banner/index.d.ts.map +1 -0
- package/dist/types/components/grid-controller/grid-controller.d.ts +8 -1
- package/dist/types/components/grid-controller/grid-controller.d.ts.map +1 -1
- package/dist/types/components/grid-controller/grid-controller.styles.d.ts +10 -0
- package/dist/types/components/grid-controller/grid-controller.styles.d.ts.map +1 -1
- package/dist/types/components/history/history-card-extension/history-card-extension.d.ts.map +1 -1
- package/dist/types/components/service-card/service-card.d.ts +1 -1
- package/dist/types/components/service-card/service-card.d.ts.map +1 -1
- package/dist/types/components/service-card/service-card.styles.d.ts +4 -1
- package/dist/types/components/service-card/service-card.styles.d.ts.map +1 -1
- package/dist/types/components/service-point-display/service-point-display.d.ts.map +1 -1
- package/dist/types/components/service-point-display/service-point-display.styles.d.ts +0 -12
- package/dist/types/components/service-point-display/service-point-display.styles.d.ts.map +1 -1
- package/dist/types/components/shipment-not-found-error/index.d.ts +2 -0
- package/dist/types/components/shipment-not-found-error/index.d.ts.map +1 -0
- package/dist/types/components/shipment-not-found-error/shipment-not-found-error.d.ts +6 -0
- package/dist/types/components/shipment-not-found-error/shipment-not-found-error.d.ts.map +1 -0
- package/dist/types/components/shipment-not-found-error/shipment-not-found-error.styles.d.ts +19 -0
- package/dist/types/components/shipment-not-found-error/shipment-not-found-error.styles.d.ts.map +1 -0
- package/dist/types/components/suspend-purchase/suspend-purchase.d.ts +4 -2
- package/dist/types/components/suspend-purchase/suspend-purchase.d.ts.map +1 -1
- package/dist/types/components/ups-terms-disclosure/index.d.ts +2 -0
- package/dist/types/components/ups-terms-disclosure/index.d.ts.map +1 -0
- package/dist/types/components/ups-terms-disclosure/ups-terms-disclosure.d.ts +2 -0
- package/dist/types/components/ups-terms-disclosure/ups-terms-disclosure.d.ts.map +1 -0
- package/dist/types/elements/labels-grid/hooks/use-labels-grid.d.ts +7 -2
- package/dist/types/elements/labels-grid/hooks/use-labels-grid.d.ts.map +1 -1
- package/dist/types/elements/labels-grid/labels-grid.d.ts +29 -3
- package/dist/types/elements/labels-grid/labels-grid.d.ts.map +1 -1
- package/dist/types/elements/manage-carriers/manage-carriers.d.ts +23 -1
- package/dist/types/elements/manage-carriers/manage-carriers.d.ts.map +1 -1
- package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts +23 -1
- package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts.map +1 -1
- package/dist/types/elements/manage-funding/manage-funding-element.d.ts +23 -1
- package/dist/types/elements/manage-funding/manage-funding-element.d.ts.map +1 -1
- package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts +23 -1
- package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts.map +1 -1
- package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts +23 -1
- package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-form.d.ts +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-form.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-schema.d.ts +10 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-schema.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts +2 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/hooks/use-rate-options.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/hooks/use-rates-form.d.ts +2 -2
- package/dist/types/elements/purchase-label/hooks/use-rates-form.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/hooks/use-request-rates.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/purchase-label.d.ts +23 -1
- package/dist/types/elements/purchase-label/purchase-label.d.ts.map +1 -1
- package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts +23 -1
- package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts.map +1 -1
- package/dist/types/elements/shipment-summary/components/label-display/label-card.d.ts.map +1 -1
- package/dist/types/elements/shipment-summary/components/label-display/label-card.styles.d.ts +0 -19
- package/dist/types/elements/shipment-summary/components/label-display/label-card.styles.d.ts.map +1 -1
- package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.d.ts +8 -0
- package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.d.ts.map +1 -0
- package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.styles.d.ts +22 -0
- package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.styles.d.ts.map +1 -0
- package/dist/types/elements/shipment-summary/shipment-summary.d.ts +23 -1
- package/dist/types/elements/shipment-summary/shipment-summary.d.ts.map +1 -1
- package/dist/types/elements/shipments-grid/hooks/use-shipments-grid.d.ts +6 -1
- package/dist/types/elements/shipments-grid/hooks/use-shipments-grid.d.ts.map +1 -1
- package/dist/types/elements/shipments-grid/shipments-grid.d.ts +32 -2
- package/dist/types/elements/shipments-grid/shipments-grid.d.ts.map +1 -1
- package/dist/types/elements/theme-creator/theme-creator.d.ts +23 -1
- package/dist/types/elements/theme-creator/theme-creator.d.ts.map +1 -1
- package/dist/types/elements/transaction-history/transaction-history-element.d.ts +23 -1
- package/dist/types/elements/transaction-history/transaction-history-element.d.ts.map +1 -1
- package/dist/types/elements/unit-settings/unit-settings-element.d.ts +23 -1
- package/dist/types/elements/unit-settings/unit-settings-element.d.ts.map +1 -1
- package/dist/types/elements/vat-settings/vat-settings-element.d.ts +23 -1
- package/dist/types/elements/vat-settings/vat-settings-element.d.ts.map +1 -1
- package/dist/types/elements/void-label/void-label.d.ts +23 -1
- package/dist/types/elements/void-label/void-label.d.ts.map +1 -1
- package/dist/types/features/manage-carriers/hooks/use-list-funding-source-carriers.d.ts.map +1 -1
- package/dist/types/features/manage-carriers/manage-carriers-row/manage-carriers-row.d.ts.map +1 -1
- package/dist/types/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.d.ts +3 -2
- package/dist/types/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.d.ts.map +1 -1
- package/dist/types/features/payment-method-settings/payment-method-settings.d.ts.map +1 -1
- package/dist/types/hooks/use-configure-shipment.d.ts +1 -0
- package/dist/types/hooks/use-configure-shipment.d.ts.map +1 -1
- package/dist/types/hooks/use-helpers.d.ts +2 -0
- package/dist/types/hooks/use-helpers.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/locales/en/index.d.ts +23 -1
- package/dist/types/locales/en/index.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +5 -4
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/rates.d.ts +1 -0
- package/dist/types/types/rates.d.ts.map +1 -1
- package/dist/types/types/terms-with-disclosure.d.ts +7 -0
- package/dist/types/types/terms-with-disclosure.d.ts.map +1 -0
- package/dist/types/utilities/address.d.ts +21 -0
- package/dist/types/utilities/address.d.ts.map +1 -0
- package/dist/types/utilities/feature-flags/types.d.ts +5 -1
- package/dist/types/utilities/feature-flags/types.d.ts.map +1 -1
- package/dist/types/utilities/files.d.ts +12 -0
- package/dist/types/utilities/files.d.ts.map +1 -0
- package/dist/types/utilities/formatString.d.ts +8 -0
- package/dist/types/utilities/formatString.d.ts.map +1 -1
- package/dist/types/utilities/index.d.ts +2 -0
- package/dist/types/utilities/index.d.ts.map +1 -1
- package/dist/types/utilities/money.d.ts +6 -0
- package/dist/types/utilities/money.d.ts.map +1 -1
- package/dist/types/utilities/rate-warning-messages.d.ts +15 -0
- package/dist/types/utilities/rate-warning-messages.d.ts.map +1 -0
- package/dist/types/workflows/account-settings/account-settings.d.ts +23 -1
- package/dist/types/workflows/account-settings/account-settings.d.ts.map +1 -1
- package/dist/types/workflows/carrier-services/carrier-services.d.ts +23 -1
- package/dist/types/workflows/carrier-services/carrier-services.d.ts.map +1 -1
- package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts +23 -1
- package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts.map +1 -1
- package/dist/types/workflows/label-workflow/label-workflow.d.ts +23 -1
- package/dist/types/workflows/label-workflow/label-workflow.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.d.ts +4 -2
- package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.d.ts +0 -3
- package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts +3 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.d.ts +8 -2
- package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts +1 -0
- package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/onboarding.d.ts +23 -1
- package/dist/types/workflows/onboarding/onboarding.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/components/error-display/error-display.cjs +0 -34
- package/dist/cjs/components/error-display/index.cjs +0 -7
- package/dist/esm/components/error-display/error-display.js +0 -32
- package/dist/esm/components/error-display/index.js +0 -1
- package/dist/types/components/error-display/error-display.d.ts +0 -7
- package/dist/types/components/error-display/error-display.d.ts.map +0 -1
- package/dist/types/components/error-display/error-display.styles.d.ts +0 -20
- package/dist/types/components/error-display/error-display.styles.d.ts.map +0 -1
- package/dist/types/components/error-display/index.d.ts +0 -2
- package/dist/types/components/error-display/index.d.ts.map +0 -1
|
@@ -20,12 +20,13 @@ const RateSelect = _a => {
|
|
|
20
20
|
nicknameFeature,
|
|
21
21
|
preferredServiceCodes,
|
|
22
22
|
onClick,
|
|
23
|
+
onPaperlessAcknowledgementChange,
|
|
23
24
|
onSelectServicePoint,
|
|
24
25
|
isLoading,
|
|
25
26
|
mapViewEnabled,
|
|
26
27
|
showVatFeatures
|
|
27
28
|
} = _a,
|
|
28
|
-
fieldProps = __rest(_a, ["nicknameFeature", "preferredServiceCodes", "onClick", "onSelectServicePoint", "isLoading", "mapViewEnabled", "showVatFeatures"]);
|
|
29
|
+
fieldProps = __rest(_a, ["nicknameFeature", "preferredServiceCodes", "onClick", "onPaperlessAcknowledgementChange", "onSelectServicePoint", "isLoading", "mapViewEnabled", "showVatFeatures"]);
|
|
29
30
|
// The calculated cost of the selected rate
|
|
30
31
|
const [selectedRateCost, setSelectedRateCost] = useState();
|
|
31
32
|
return jsx(RateSelectController, Object.assign({}, fieldProps, {
|
|
@@ -48,17 +49,37 @@ const RateSelect = _a => {
|
|
|
48
49
|
isPreferredRate: preferredServiceCodes && preferredServiceCodes.includes(option.serviceCode),
|
|
49
50
|
key: option.rateId,
|
|
50
51
|
onClick: rateId => {
|
|
52
|
+
var _a;
|
|
51
53
|
onClick === null || onClick === void 0 ? void 0 : onClick(rateId);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
// if the rate supports "label_and_paperless" display scheme, use it by default
|
|
55
|
+
if ((_a = option.paperlessDisplaySchemes) === null || _a === void 0 ? void 0 : _a.includes("label_and_paperless")) {
|
|
56
|
+
field.onChange({
|
|
57
|
+
usePaperlessLabel: true,
|
|
58
|
+
labelDisplayScheme: "label_and_paperless",
|
|
59
|
+
isAcknowledged: !option.requiresAcknowledgement,
|
|
60
|
+
rateId
|
|
61
|
+
});
|
|
62
|
+
} else {
|
|
63
|
+
field.onChange({
|
|
64
|
+
isAcknowledged: !option.requiresAcknowledgement,
|
|
65
|
+
rateId
|
|
66
|
+
});
|
|
67
|
+
}
|
|
56
68
|
setSelectedRateCost(getTotalRateAmount(option));
|
|
57
69
|
},
|
|
58
70
|
onClickAcknowledgement: isAcknowledged => field.onChange(Object.assign(Object.assign({}, field.value), {
|
|
59
71
|
isAcknowledged
|
|
60
72
|
})),
|
|
73
|
+
onPaperlessAcknowledgementChange: (usePaperless, labelDisplayScheme) => {
|
|
74
|
+
field.onChange(Object.assign(Object.assign({}, field.value), {
|
|
75
|
+
usePaperlessLabel: usePaperless,
|
|
76
|
+
labelDisplayScheme
|
|
77
|
+
}));
|
|
78
|
+
onPaperlessAcknowledgementChange === null || onPaperlessAcknowledgementChange === void 0 ? void 0 : onPaperlessAcknowledgementChange(usePaperless, labelDisplayScheme);
|
|
79
|
+
},
|
|
61
80
|
onSelectServicePoint: onSelectServicePoint,
|
|
81
|
+
paperlessDisplaySchemes: option.paperlessDisplaySchemes,
|
|
82
|
+
paperlessLabelChecked: field.value.usePaperlessLabel,
|
|
62
83
|
rateDetails: option.rateDetails,
|
|
63
84
|
selected: option.rateId === field.value.rateId,
|
|
64
85
|
selectedRateCost: selectedRateCost,
|
|
@@ -4,12 +4,12 @@ import { usStateCodes, postalCodeRegex, addressNameRegex } from '../../../consta
|
|
|
4
4
|
import { extendZod } from '../../../extensions/zod.js';
|
|
5
5
|
|
|
6
6
|
extendZod();
|
|
7
|
-
const refineName = n => n.match(/^[a-zA-Z']/);
|
|
8
7
|
const refineNameStrict = n => n.match(addressNameRegex);
|
|
9
8
|
const shipToAddressSchema = addressSchema.refine(schema => {
|
|
10
|
-
|
|
9
|
+
// KEEP THIS STRICT, USPS REQUIRES 2 CHARACTERS FOR FIRST AND LAST NAME
|
|
10
|
+
return refineNameStrict(schema.name);
|
|
11
11
|
}, {
|
|
12
|
-
message: "schemaErrors.
|
|
12
|
+
message: "schemaErrors.invalidAddressNameStrict",
|
|
13
13
|
path: ["name"]
|
|
14
14
|
}).refine(schema => !schema.phone || isValidPhoneNumber(schema.phone, schema.countryCode), {
|
|
15
15
|
message: "schemaErrors.notAValidPhoneNumber",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { jsx, jsxs } from '@emotion/react/jsx-runtime';
|
|
1
|
+
import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
|
|
2
|
+
import { useToggle } from '../../../hooks/use-toggle.js';
|
|
2
3
|
import { Grid, GridChild, Typography, Button, ButtonVariant, ButtonColor } from '@shipengine/giger';
|
|
3
4
|
import { formLogger } from '../../../utilities/form-logger.js';
|
|
4
5
|
import { validationResolver } from '../../../utilities/validation.js';
|
|
@@ -8,19 +9,38 @@ import { BillingFields } from '../wallet-form/billing-fields.js';
|
|
|
8
9
|
import { styles } from './edit-billing-form.styles.js';
|
|
9
10
|
import { getWalletSchema } from '../wallet-form/wallet-schema.js';
|
|
10
11
|
import { AddressFields } from '../address-form/address-fields.js';
|
|
12
|
+
import { AddressDisplay } from '../../address-display/address-display.js';
|
|
13
|
+
import { LinkAction } from '../../link-action/link-action.js';
|
|
11
14
|
import { ButtonGroup } from '../../button-group/button-group.js';
|
|
12
15
|
import { SubmitButton } from '../../field/submit-button/submit-button.js';
|
|
13
16
|
|
|
14
17
|
const EditBillingForm = ({
|
|
15
18
|
onCancel,
|
|
16
19
|
onSubmit,
|
|
17
|
-
isLoading
|
|
20
|
+
isLoading,
|
|
21
|
+
billingInfo
|
|
18
22
|
}) => {
|
|
23
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
19
24
|
const {
|
|
20
25
|
t
|
|
21
26
|
} = useTranslation();
|
|
27
|
+
const [editBillingInfo, toggleEditBillingInfo] = useToggle(false);
|
|
22
28
|
const form = useForm({
|
|
23
|
-
resolver: validationResolver(getWalletSchema("emailRequired", "blackboxOptional"), ["creditCard"])
|
|
29
|
+
resolver: validationResolver(getWalletSchema("emailRequired", "blackboxOptional"), ["creditCard"]),
|
|
30
|
+
defaultValues: {
|
|
31
|
+
address: {
|
|
32
|
+
name: (_a = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.fullName) !== null && _a !== void 0 ? _a : "",
|
|
33
|
+
companyName: (_b = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.company) !== null && _b !== void 0 ? _b : "",
|
|
34
|
+
addressLine1: (_c = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.addressLine1) !== null && _c !== void 0 ? _c : "",
|
|
35
|
+
addressLine2: (_d = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.addressLine2) !== null && _d !== void 0 ? _d : "",
|
|
36
|
+
cityLocality: (_e = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.cityLocality) !== null && _e !== void 0 ? _e : "",
|
|
37
|
+
stateProvince: (_f = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.stateProvince) !== null && _f !== void 0 ? _f : "",
|
|
38
|
+
postalCode: (_g = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.postalCode) !== null && _g !== void 0 ? _g : "",
|
|
39
|
+
countryCode: billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.countryCode,
|
|
40
|
+
email: (_h = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.email) !== null && _h !== void 0 ? _h : "",
|
|
41
|
+
phone: (_j = billingInfo === null || billingInfo === void 0 ? void 0 : billingInfo.phone) !== null && _j !== void 0 ? _j : ""
|
|
42
|
+
}
|
|
43
|
+
}
|
|
24
44
|
});
|
|
25
45
|
const handleSubmit = form.handleSubmit(values => {
|
|
26
46
|
const {
|
|
@@ -57,14 +77,47 @@ const EditBillingForm = ({
|
|
|
57
77
|
variant: "subtitle1",
|
|
58
78
|
children: t("register-wallet:settings.billing.subtitleBilling")
|
|
59
79
|
})
|
|
60
|
-
}),
|
|
80
|
+
}), billingInfo && !editBillingInfo && jsxs(Fragment, {
|
|
81
|
+
children: [jsx(GridChild, {
|
|
82
|
+
colSpan: 9,
|
|
83
|
+
children: jsx(AddressDisplay, {
|
|
84
|
+
address: Object.assign(Object.assign({}, billingInfo), {
|
|
85
|
+
name: billingInfo.fullName,
|
|
86
|
+
companyName: billingInfo.company
|
|
87
|
+
})
|
|
88
|
+
})
|
|
89
|
+
}), jsx(GridChild, {
|
|
90
|
+
colSpan: 3,
|
|
91
|
+
css: {
|
|
92
|
+
textAlign: "right"
|
|
93
|
+
},
|
|
94
|
+
children: jsx(LinkAction, {
|
|
95
|
+
css: {
|
|
96
|
+
alignSelf: "end"
|
|
97
|
+
},
|
|
98
|
+
onClick: () => {
|
|
99
|
+
toggleEditBillingInfo(true);
|
|
100
|
+
form.reset({
|
|
101
|
+
address: Object.assign(Object.assign({}, billingInfo), {
|
|
102
|
+
name: billingInfo.fullName,
|
|
103
|
+
companyName: billingInfo.company,
|
|
104
|
+
countryCode: billingInfo.countryCode
|
|
105
|
+
})
|
|
106
|
+
}, {
|
|
107
|
+
keepDirtyValues: true
|
|
108
|
+
});
|
|
109
|
+
},
|
|
110
|
+
title: t("actions.edit")
|
|
111
|
+
})
|
|
112
|
+
})]
|
|
113
|
+
}), !billingInfo || editBillingInfo ? jsx(GridChild, {
|
|
61
114
|
colSpan: 12,
|
|
62
115
|
children: jsx(AddressFields, {
|
|
63
116
|
form: form,
|
|
64
117
|
formatFieldName: fieldName => `address.${fieldName}`,
|
|
65
118
|
optionalFields: ["addressLine2"]
|
|
66
119
|
})
|
|
67
|
-
}), jsx(GridChild, {
|
|
120
|
+
}) : null, jsx(GridChild, {
|
|
68
121
|
colSpan: 12,
|
|
69
122
|
children: jsxs(ButtonGroup, {
|
|
70
123
|
justify: "end",
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
2
|
+
import { Icon, Typography } from '@shipengine/giger';
|
|
3
|
+
import { IconNames } from '@shipengine/giger-theme';
|
|
4
|
+
import { useState, useRef, useEffect } from 'react';
|
|
5
|
+
import SvgReload from '../../../assets/reload.svg.js';
|
|
6
|
+
import { styles } from './error-banner.styles.js';
|
|
7
|
+
import { Label } from '../../history/history-card/label/label.js';
|
|
8
|
+
import { LinkAction } from '../../link-action/link-action.js';
|
|
9
|
+
|
|
10
|
+
// This component is a temporary solution to handle error display, design is working to improve more error patterns to display
|
|
11
|
+
const ErrorBanner = ({
|
|
12
|
+
labelText,
|
|
13
|
+
linkTitle,
|
|
14
|
+
onClick,
|
|
15
|
+
showReloadIcon,
|
|
16
|
+
duration,
|
|
17
|
+
onDurationEnd
|
|
18
|
+
}) => {
|
|
19
|
+
const [isVisible, setIsVisible] = useState(true);
|
|
20
|
+
const timerRef = useRef(null);
|
|
21
|
+
// Set up the timer when the component mounts or duration changes
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (duration && duration > 0) {
|
|
24
|
+
// Clear any existing timer
|
|
25
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
26
|
+
// Set up a new timer to hide the component after the specified duration
|
|
27
|
+
timerRef.current = setTimeout(() => {
|
|
28
|
+
setIsVisible(false);
|
|
29
|
+
// Call the onDurationEnd callback if provided
|
|
30
|
+
if (onDurationEnd) {
|
|
31
|
+
onDurationEnd();
|
|
32
|
+
}
|
|
33
|
+
}, duration);
|
|
34
|
+
}
|
|
35
|
+
// Clean up the timer when the component unmounts or duration changes
|
|
36
|
+
return () => {
|
|
37
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
38
|
+
};
|
|
39
|
+
}, [duration, onDurationEnd]);
|
|
40
|
+
if (!isVisible) return null;
|
|
41
|
+
return jsxs("div", {
|
|
42
|
+
css: styles.errorContainer,
|
|
43
|
+
children: [showReloadIcon && jsx(SvgReload, {
|
|
44
|
+
height: 24,
|
|
45
|
+
width: 24
|
|
46
|
+
}), linkTitle && !labelText && !onClick && jsxs("div", {
|
|
47
|
+
css: styles.errorContent,
|
|
48
|
+
children: [jsx(Icon, {
|
|
49
|
+
name: IconNames.ALERT
|
|
50
|
+
}), jsx(Typography, {
|
|
51
|
+
component: "p",
|
|
52
|
+
variant: "body2",
|
|
53
|
+
children: linkTitle
|
|
54
|
+
})]
|
|
55
|
+
}), linkTitle && labelText && onClick && jsx(Label, {
|
|
56
|
+
spacing: 0,
|
|
57
|
+
text: labelText !== null && labelText !== void 0 ? labelText : "",
|
|
58
|
+
textProps: {
|
|
59
|
+
css: styles.errorHeading
|
|
60
|
+
},
|
|
61
|
+
variant: "subtitle",
|
|
62
|
+
children: jsx(LinkAction, {
|
|
63
|
+
css: styles.errorCTA,
|
|
64
|
+
isBold: false,
|
|
65
|
+
onClick: onClick,
|
|
66
|
+
title: linkTitle
|
|
67
|
+
})
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export { ErrorBanner };
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { createStyles, scopeTheme } from '
|
|
1
|
+
import { createStyles, scopeTheme } from '../../../utilities/styles.js';
|
|
2
2
|
|
|
3
3
|
const styles = createStyles({
|
|
4
4
|
errorContainer: theme => ({
|
|
5
5
|
alignItems: "center",
|
|
6
|
-
backgroundColor: scopeTheme(theme).palette.
|
|
6
|
+
backgroundColor: scopeTheme(theme).palette.error.light,
|
|
7
7
|
display: "flex",
|
|
8
8
|
flexDirection: "column",
|
|
9
|
-
paddingBottom: scopeTheme(theme).spacing(2),
|
|
10
|
-
paddingTop: scopeTheme(theme).spacing(2),
|
|
11
9
|
rowGap: scopeTheme(theme).spacing(1)
|
|
12
10
|
}),
|
|
13
11
|
errorCTA: theme => ({
|
|
@@ -17,6 +15,12 @@ const styles = createStyles({
|
|
|
17
15
|
}),
|
|
18
16
|
errorHeading: theme => ({
|
|
19
17
|
fontSize: scopeTheme(theme).typography.fontSize.S
|
|
18
|
+
}),
|
|
19
|
+
errorContent: theme => ({
|
|
20
|
+
display: "flex",
|
|
21
|
+
alignItems: "center",
|
|
22
|
+
gap: scopeTheme(theme).spacing(),
|
|
23
|
+
color: scopeTheme(theme).palette.error.main
|
|
20
24
|
})
|
|
21
25
|
});
|
|
22
26
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ErrorBanner } from './error-banner.js';
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { jsx, jsxs } from '@emotion/react/jsx-runtime';
|
|
2
|
-
import { TableRow, TableBodyCell, Skeleton, SkeletonVariant, SkeletonAnimation, Table, TableBody, Checkbox, TableHeader, TableHeaderRow, TableHeaderCell, TableFooter } from '@shipengine/giger';
|
|
1
|
+
import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
|
|
2
|
+
import { TableRow, TableBodyCell, Skeleton, SkeletonVariant, SkeletonAnimation, Button, ButtonVariant, IconTooltip, IconSize, Icon, Table, TableBody, Checkbox, TableHeader, TableHeaderRow, TableHeaderCell, TableFooter } from '@shipengine/giger';
|
|
3
|
+
import { IconNames } from '@shipengine/giger-theme';
|
|
3
4
|
import { useState, useMemo, useCallback } from 'react';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
4
6
|
import { styles } from './grid-controller.styles.js';
|
|
7
|
+
import { ErrorBanner } from './error-banner/error-banner.js';
|
|
5
8
|
|
|
9
|
+
const LIMIT_GRID_ITEMS_EXPORT = 10000;
|
|
10
|
+
const ERROR_DISPLAY_DURATION = 7000;
|
|
6
11
|
/**
|
|
7
12
|
* @internal
|
|
8
13
|
*
|
|
@@ -20,10 +25,23 @@ const GridController = ({
|
|
|
20
25
|
isLoading = false,
|
|
21
26
|
useCheckboxes = false,
|
|
22
27
|
filters,
|
|
23
|
-
emptyContent
|
|
28
|
+
emptyContent,
|
|
29
|
+
showExportCSV = false,
|
|
30
|
+
onClickExportCSV,
|
|
31
|
+
totalAmountGridItems,
|
|
32
|
+
hasTrackingStatusFilter,
|
|
33
|
+
hasExportCSVError = false,
|
|
34
|
+
isExportCSVLoading = false,
|
|
35
|
+
onExportErrorDurationEnd
|
|
24
36
|
}) => {
|
|
25
37
|
var _a, _b, _c;
|
|
26
38
|
const [isChecked, setIsChecked] = useState((_a = data === null || data === void 0 ? void 0 : data.map(() => false)) !== null && _a !== void 0 ? _a : []);
|
|
39
|
+
const {
|
|
40
|
+
t
|
|
41
|
+
} = useTranslation(["common", "grid-controller"]);
|
|
42
|
+
const dataAvailable = !!data.length;
|
|
43
|
+
const isItemsOverExportLimit = !!((totalAmountGridItems !== null && totalAmountGridItems !== void 0 ? totalAmountGridItems : 0) > LIMIT_GRID_ITEMS_EXPORT);
|
|
44
|
+
const isDisableExportButton = isItemsOverExportLimit || !dataAvailable;
|
|
27
45
|
const columnHeaderContents = useMemo(() => columns.map(column => column.headerContent), [columns]);
|
|
28
46
|
const loadingRows = useMemo(() => {
|
|
29
47
|
const items = [];
|
|
@@ -63,8 +81,36 @@ const GridController = ({
|
|
|
63
81
|
css: styles.wrapper,
|
|
64
82
|
children: [filters && jsx("div", {
|
|
65
83
|
css: styles.filters,
|
|
66
|
-
children:
|
|
67
|
-
|
|
84
|
+
children: jsxs(Fragment, {
|
|
85
|
+
children: [filters, showExportCSV && !hasTrackingStatusFilter && jsxs(Button, {
|
|
86
|
+
bold: false,
|
|
87
|
+
css: styles.button,
|
|
88
|
+
disabled: isItemsOverExportLimit || !dataAvailable || hasExportCSVError,
|
|
89
|
+
isLoading: isExportCSVLoading && !isDisableExportButton,
|
|
90
|
+
onClick: onClickExportCSV,
|
|
91
|
+
type: "button",
|
|
92
|
+
variant: ButtonVariant.FILLED,
|
|
93
|
+
children: [isItemsOverExportLimit ? jsx(IconTooltip, {
|
|
94
|
+
css: styles.iconTooltip,
|
|
95
|
+
icon: IconNames.DOWNLOAD,
|
|
96
|
+
size: IconSize.SIZE_MEDIUM,
|
|
97
|
+
children: jsx("div", {
|
|
98
|
+
children: t("grid-controller:showExportCSV.limit-error", {
|
|
99
|
+
LIMIT_GRID_ITEMS_EXPORT: new Intl.NumberFormat().format(LIMIT_GRID_ITEMS_EXPORT)
|
|
100
|
+
})
|
|
101
|
+
})
|
|
102
|
+
}) : jsx(Icon, {
|
|
103
|
+
css: styles.iconTooltip,
|
|
104
|
+
name: IconNames.UPLOAD,
|
|
105
|
+
size: IconSize.SIZE_MEDIUM
|
|
106
|
+
}), t("grid-controller:showExportCSV.button")]
|
|
107
|
+
})]
|
|
108
|
+
})
|
|
109
|
+
}), hasExportCSVError && !isDisableExportButton && jsx(ErrorBanner, {
|
|
110
|
+
duration: ERROR_DISPLAY_DURATION,
|
|
111
|
+
linkTitle: t("grid-controller:showExportCSV.generic-error-message"),
|
|
112
|
+
onDurationEnd: onExportErrorDurationEnd
|
|
113
|
+
}), !dataAvailable && emptyContent ? emptyContent : jsx(Table, {
|
|
68
114
|
"data-testid": "grid",
|
|
69
115
|
footer: footerContent && !isLoading && jsx(TableFooter, {
|
|
70
116
|
css: styles.tableFooter,
|
|
@@ -5,10 +5,17 @@ const styles = createStyles({
|
|
|
5
5
|
width: scopeTheme(theme).spacing(6)
|
|
6
6
|
}),
|
|
7
7
|
filters: theme => ({
|
|
8
|
+
display: "flex",
|
|
8
9
|
backgroundColor: scopeTheme(theme).palette.white,
|
|
9
10
|
borderBottom: `1px solid ${scopeTheme(theme).palette.gray[200]}`,
|
|
10
11
|
padding: scopeTheme(theme).spacing()
|
|
11
12
|
}),
|
|
13
|
+
button: () => ({
|
|
14
|
+
marginLeft: "auto"
|
|
15
|
+
}),
|
|
16
|
+
iconTooltip: theme => ({
|
|
17
|
+
marginRight: scopeTheme(theme).spacing()
|
|
18
|
+
}),
|
|
12
19
|
skeletonTableRow: () => ({
|
|
13
20
|
height: "68px"
|
|
14
21
|
}),
|
|
@@ -28,7 +35,10 @@ const styles = createStyles({
|
|
|
28
35
|
wrapper: theme => Object.assign({
|
|
29
36
|
height: "auto",
|
|
30
37
|
overflow: "hidden"
|
|
31
|
-
}, scopeTheme(theme).getComponentOverride("Table"))
|
|
38
|
+
}, scopeTheme(theme).getComponentOverride("Table")),
|
|
39
|
+
filtersWrapper: () => ({
|
|
40
|
+
display: "flex"
|
|
41
|
+
})
|
|
32
42
|
});
|
|
33
43
|
|
|
34
44
|
export { styles };
|
|
@@ -6,8 +6,8 @@ import { useMemo } from 'react';
|
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
7
7
|
import SvgFunding from '../../../assets/funding.svg.js';
|
|
8
8
|
import { styles } from './history-card.styles.js';
|
|
9
|
-
import { Label } from './label/label.js';
|
|
10
9
|
import { useElements } from '../../../elements-provider/elements-context-provider.js';
|
|
10
|
+
import { Label } from './label/label.js';
|
|
11
11
|
|
|
12
12
|
const HistoryCard = ({
|
|
13
13
|
transaction,
|
|
@@ -29,7 +29,6 @@ import { Spacer } from '../../spacer/spacer.js';
|
|
|
29
29
|
// </div>
|
|
30
30
|
// );
|
|
31
31
|
//
|
|
32
|
-
// const ErrorState = () => <ErrorDisplay />;
|
|
33
32
|
//
|
|
34
33
|
// // replace type call with its se version - lmnt-936
|
|
35
34
|
// const SuccessState = ({ adjustment }: { adjustment: WalletAdjustment }) => {
|
|
@@ -64,7 +64,7 @@ const ServiceCardHeader = ({
|
|
|
64
64
|
children: line1
|
|
65
65
|
}), line2 && jsx(Typography, {
|
|
66
66
|
children: line2
|
|
67
|
-
}), line3 && jsx(
|
|
67
|
+
}), line3 && jsx("div", {
|
|
68
68
|
children: line3
|
|
69
69
|
})]
|
|
70
70
|
}), jsx("div", {
|
|
@@ -79,15 +79,15 @@ const ServiceCardHeader = ({
|
|
|
79
79
|
};
|
|
80
80
|
const ServiceCardFooter = ({
|
|
81
81
|
children,
|
|
82
|
-
messages
|
|
82
|
+
messages = []
|
|
83
83
|
}) => {
|
|
84
84
|
return jsxs("div", {
|
|
85
85
|
"data-testid": "service-card-footer",
|
|
86
86
|
children: [jsx(Divider, {
|
|
87
87
|
css: styles.divider
|
|
88
88
|
}), jsxs("section", {
|
|
89
|
-
css: styles.
|
|
90
|
-
children: [messages && jsx("ul", {
|
|
89
|
+
css: styles.footerStyles,
|
|
90
|
+
children: [messages.length > 0 && jsx("ul", {
|
|
91
91
|
css: [styles.footerList, messages.length > 1 && styles.footerListWithMultipleMessages],
|
|
92
92
|
children: messages.map((m, index) => jsxs("li", {
|
|
93
93
|
css: styles.footerListItem,
|
|
@@ -14,8 +14,11 @@ const styles = createStyles({
|
|
|
14
14
|
opacity: 0.3,
|
|
15
15
|
width: `calc(100% - ${scopeTheme(theme).spacing(4)}px)`
|
|
16
16
|
}),
|
|
17
|
-
|
|
18
|
-
padding: scopeTheme(theme).spacing(2)
|
|
17
|
+
footerStyles: theme => ({
|
|
18
|
+
padding: scopeTheme(theme).spacing(2),
|
|
19
|
+
display: "flex",
|
|
20
|
+
flexDirection: "column",
|
|
21
|
+
gap: scopeTheme(theme).spacing(2)
|
|
19
22
|
}),
|
|
20
23
|
footerList: {
|
|
21
24
|
listStyle: "none"
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from '@emotion/react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
-
import { IconNames } from '@shipengine/giger-theme';
|
|
4
|
-
import { useState, useEffect } from 'react';
|
|
2
|
+
import { Typography, Link } from '@shipengine/giger';
|
|
5
3
|
import { useTranslation } from 'react-i18next';
|
|
6
4
|
import { OperatingHoursDisplay } from './operating-hours.js';
|
|
7
5
|
import { styles } from './service-point-display.styles.js';
|
|
8
6
|
|
|
9
|
-
/* https://auctane.atlassian.net/browse/ENGINE-7329
|
|
10
|
-
* For iteration one we would hardcode services for which it will be available (in the future this data will be in the registry. We will change hardcoding then)
|
|
11
|
-
* carriersWithPaperless and servicesWithPaperless are hardcoded for iteration one
|
|
12
|
-
*/
|
|
13
|
-
const carriersWithPaperless = "hermes";
|
|
14
|
-
const servicesWithPaperless = ["hermes_domestic_parcelshop_dropoff", "hermes_domestic_parcelshop_dropoff_next_day", "hermes_postable", "hermes_postable_next_day"];
|
|
15
7
|
const formatDistance = meters => {
|
|
16
8
|
return meters < 1000 ? "< 1 km" : `${parseFloat((meters / 1000).toFixed(1))} km`;
|
|
17
9
|
};
|
|
@@ -25,36 +17,9 @@ const ServicePointDisplay = ({
|
|
|
25
17
|
const {
|
|
26
18
|
t
|
|
27
19
|
} = useTranslation("purchase-label");
|
|
28
|
-
const [isFilteredServicesWithPaperless, setIsFilteredServicesWithPaperless] = useState(false);
|
|
29
|
-
/* https://auctane.atlassian.net/browse/ENGINE-7329
|
|
30
|
-
* For iteration one we would hardcode services for which it will be available (in the future this data will be in the registry. We will change hardcoding then)
|
|
31
|
-
*/
|
|
32
|
-
useEffect(() => {
|
|
33
|
-
if (carriersWithPaperless === servicePoint.carrierCode) {
|
|
34
|
-
const filteredServicesWithPaperless = servicePoint.serviceCodes.map(serviceCode => {
|
|
35
|
-
return servicesWithPaperless.filter(service => service === serviceCode);
|
|
36
|
-
}).length > 0;
|
|
37
|
-
setIsFilteredServicesWithPaperless(filteredServicesWithPaperless);
|
|
38
|
-
}
|
|
39
|
-
}, [servicePoint.carrierCode, servicePoint.serviceCodes]);
|
|
40
20
|
return jsxs("div", {
|
|
41
21
|
css: styles.container,
|
|
42
|
-
children: [
|
|
43
|
-
css: styles.paperlessWrapper,
|
|
44
|
-
children: [jsx(Icon, {
|
|
45
|
-
css: styles.paperlessIcon,
|
|
46
|
-
name: IconNames.PRINTER,
|
|
47
|
-
size: IconSize.SIZE_MEDIUM
|
|
48
|
-
}), jsx(Icon, {
|
|
49
|
-
css: styles.paperlessIcon,
|
|
50
|
-
name: IconNames.SCAN_QR,
|
|
51
|
-
size: IconSize.SIZE_MEDIUM
|
|
52
|
-
}), jsx(Typography, {
|
|
53
|
-
css: styles.paperlessText,
|
|
54
|
-
variant: "small",
|
|
55
|
-
children: t("servicePoints.paperless")
|
|
56
|
-
})]
|
|
57
|
-
}), jsx("div", {
|
|
22
|
+
children: [jsx("div", {
|
|
58
23
|
css: styles.getSelectedStyles(),
|
|
59
24
|
children: jsx(Typography, {
|
|
60
25
|
bold: true,
|
|
@@ -17,18 +17,6 @@ const styles = createStyles({
|
|
|
17
17
|
gap: scopeTheme(theme).spacing(1),
|
|
18
18
|
justifyContent: "space-between"
|
|
19
19
|
}),
|
|
20
|
-
paperlessIcon: theme => ({
|
|
21
|
-
color: scopeTheme(theme).palette.gray[600],
|
|
22
|
-
paddingRight: "4px"
|
|
23
|
-
}),
|
|
24
|
-
paperlessText: theme => ({
|
|
25
|
-
color: scopeTheme(theme).palette.gray[600],
|
|
26
|
-
paddingLeft: scopeTheme(theme).spacing(0.5)
|
|
27
|
-
}),
|
|
28
|
-
paperlessWrapper: () => ({
|
|
29
|
-
display: "flex",
|
|
30
|
-
marginBottom: "12px"
|
|
31
|
-
}),
|
|
32
20
|
selectButton: theme => ({
|
|
33
21
|
backgroundColor: scopeTheme(theme).palette.primary.main,
|
|
34
22
|
borderRadius: scopeTheme(theme).borderRadius.S,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ShipmentNotFoundError } from './shipment-not-found-error.js';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
2
|
+
import { Icon, IconSize, Button } from '@shipengine/giger';
|
|
3
|
+
import { IconNames } from '@shipengine/giger-theme';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
|
+
import { styles } from './shipment-not-found-error.styles.js';
|
|
6
|
+
|
|
7
|
+
const ShipmentNotFoundError = ({
|
|
8
|
+
shipmentId,
|
|
9
|
+
onCreateNewShipment
|
|
10
|
+
}) => {
|
|
11
|
+
const {
|
|
12
|
+
t
|
|
13
|
+
} = useTranslation(["common", "purchase-label"]);
|
|
14
|
+
return jsxs("div", {
|
|
15
|
+
css: styles.container,
|
|
16
|
+
children: [jsx("div", {
|
|
17
|
+
css: styles.iconContainer,
|
|
18
|
+
children: jsx(Icon, {
|
|
19
|
+
name: IconNames.CANCEL,
|
|
20
|
+
size: IconSize.SIZE_LARGE
|
|
21
|
+
})
|
|
22
|
+
}), jsx("div", {
|
|
23
|
+
css: styles.message,
|
|
24
|
+
children: t("common:errorMessages.shipmentNotFound", {
|
|
25
|
+
id: shipmentId
|
|
26
|
+
})
|
|
27
|
+
}), jsx(Button, {
|
|
28
|
+
"data-testid": "create-new-shipment",
|
|
29
|
+
onClick: () => {
|
|
30
|
+
void (onCreateNewShipment === null || onCreateNewShipment === void 0 ? void 0 : onCreateNewShipment());
|
|
31
|
+
},
|
|
32
|
+
type: "button",
|
|
33
|
+
children: t("purchase-label:actions.createNewShipment")
|
|
34
|
+
})]
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { ShipmentNotFoundError };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createStyles, scopeTheme } from '../../utilities/styles.js';
|
|
2
|
+
|
|
3
|
+
const styles = createStyles({
|
|
4
|
+
container: {
|
|
5
|
+
alignItems: "center",
|
|
6
|
+
display: "flex",
|
|
7
|
+
flexDirection: "column",
|
|
8
|
+
height: "100%",
|
|
9
|
+
justifyContent: "center",
|
|
10
|
+
textAlign: "center",
|
|
11
|
+
width: "100%"
|
|
12
|
+
},
|
|
13
|
+
iconContainer: theme => ({
|
|
14
|
+
color: scopeTheme(theme).palette.error.main,
|
|
15
|
+
marginBottom: scopeTheme(theme).spacing(2)
|
|
16
|
+
}),
|
|
17
|
+
message: theme => ({
|
|
18
|
+
marginBottom: scopeTheme(theme).spacing(2)
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export { styles };
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react/jsx-runtime';
|
|
2
2
|
import { useTranslation } from 'react-i18next';
|
|
3
|
+
import { ShipmentNotFoundError } from '../shipment-not-found-error/shipment-not-found-error.js';
|
|
3
4
|
import { Loader } from '../loader/loader.js';
|
|
4
5
|
|
|
5
6
|
const SuspendPurchase = ({
|
|
6
7
|
children,
|
|
7
8
|
errors,
|
|
8
9
|
isLoading,
|
|
9
|
-
data
|
|
10
|
+
data,
|
|
11
|
+
onCreateNewShipment,
|
|
12
|
+
shipmentId
|
|
10
13
|
}) => {
|
|
11
14
|
const {
|
|
12
15
|
t
|
|
@@ -15,7 +18,7 @@ const SuspendPurchase = ({
|
|
|
15
18
|
message: t("loading.shipment")
|
|
16
19
|
});
|
|
17
20
|
if (errors) {
|
|
18
|
-
|
|
21
|
+
for (const error of errors) {
|
|
19
22
|
switch (error.message) {
|
|
20
23
|
case "no_carriers":
|
|
21
24
|
throw new Error(t("common:errorMessages.incompleteLabelPurchaseRequirements", {
|
|
@@ -31,8 +34,13 @@ const SuspendPurchase = ({
|
|
|
31
34
|
}));
|
|
32
35
|
case "label_purchased":
|
|
33
36
|
throw new Error(t("common:errorMessages.labelHasBeenPurchased"));
|
|
37
|
+
case "shipment_not_found":
|
|
38
|
+
return jsx(ShipmentNotFoundError, {
|
|
39
|
+
onCreateNewShipment: onCreateNewShipment,
|
|
40
|
+
shipmentId: shipmentId
|
|
41
|
+
});
|
|
34
42
|
}
|
|
35
|
-
}
|
|
43
|
+
}
|
|
36
44
|
throw new Error(errors.map(e => e.message).join(", "));
|
|
37
45
|
}
|
|
38
46
|
if (!data) throw new Error("errorMessages.unableToLoad.shipment");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { UPSTermsDisclosure } from './ups-terms-disclosure.js';
|