@shipengine/elements 2.26.5 → 2.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/xcover/logo.svg.cjs +44 -0
- package/dist/cjs/components/field/rate-select/rate-card/rate-attribute-item/index.cjs +7 -0
- package/dist/cjs/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.cjs +56 -0
- package/dist/cjs/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.styles.cjs +27 -0
- package/dist/cjs/components/field/rate-select/rate-card/rate-card.cjs +53 -42
- package/dist/cjs/components/field/rate-select/rate-card/rate-card.styles.cjs +4 -0
- package/dist/cjs/components/field/rate-select/rate-select.cjs +80 -49
- package/dist/cjs/components/forms/register-funding-source-insurance-form/register-funding-source-insurance-form.cjs +1 -1
- package/dist/cjs/components/forms/warehouse-form/warehouse-form.cjs +10 -1
- package/dist/cjs/components/service-card/service-card.cjs +3 -2
- package/dist/cjs/components/service-card/service-card.styles.cjs +4 -2
- package/dist/cjs/data/insurance-provider-metadatas.json.cjs +10 -4
- package/dist/cjs/elements/customs-form/customs-form-element.cjs +294 -0
- package/dist/cjs/elements/customs-form/customs-form-element.stories.cjs +243 -0
- package/dist/cjs/elements/customs-form/customs-form-schema.cjs +59 -0
- package/dist/cjs/elements/customs-form/customs-form-types.cjs +63 -0
- package/dist/cjs/elements/customs-form/index.cjs +10 -0
- package/dist/cjs/elements/index.cjs +5 -0
- package/dist/cjs/elements/labels-grid/hooks/use-labels-grid.cjs +2 -2
- package/dist/cjs/elements/labels-grid/labels-grid.cjs +29 -9
- package/dist/cjs/elements/labels-grid/labels-grid.styles.cjs +5 -0
- package/dist/cjs/elements/manage-carriers/manage-carriers.cjs +1 -1
- package/dist/cjs/elements/purchase-label/components/customs-forms/tax-ids/tax-ids.cjs +1 -1
- package/dist/cjs/elements/purchase-label/components/index.cjs +2 -0
- package/dist/cjs/elements/purchase-label/components/rate-form/rate-view.cjs +3 -5
- package/dist/cjs/elements/purchase-label/components/shipment-form/shipment-form.cjs +7 -4
- package/dist/cjs/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.cjs +35 -11
- package/dist/cjs/elements/purchase-label/hooks/use-insurance-provider-options.cjs +2 -2
- package/dist/cjs/elements/shipments-grid/hooks/use-shipments-grid.cjs +2 -2
- package/dist/cjs/elements/shipments-grid/shipments-grid.cjs +20 -6
- package/dist/cjs/elements/shipments-grid/shipments-grid.styles.cjs +5 -0
- package/dist/cjs/factories/shipengine/address.cjs +114 -0
- package/dist/cjs/factories/shipengine/money.cjs +21 -0
- package/dist/cjs/factories/shipengine/order-source.cjs +37 -0
- package/dist/cjs/factories/shipengine/package.cjs +41 -0
- package/dist/cjs/factories/shipengine/resource.cjs +23 -0
- package/dist/cjs/factories/shipengine/shipment.cjs +176 -0
- package/dist/cjs/factories/shipengine/weight.cjs +44 -0
- package/dist/cjs/factories/utils.cjs +19 -0
- package/dist/cjs/features/manage-carriers/hooks/use-list-funding-source-carriers.cjs +4 -6
- package/dist/cjs/features/manage-carriers/manage-carriers.cjs +8 -6
- package/dist/cjs/features/manage-warehouses/manage-warehouses.cjs +9 -5
- package/dist/cjs/hooks/use-configure-shipment.cjs +55 -14
- package/dist/cjs/hooks/use-get-funding-source-insurance-provider.cjs +7 -7
- package/dist/cjs/hooks/use-get-service-data.cjs +60 -0
- package/dist/cjs/hooks/use-import-sales-order.cjs +45 -20
- package/dist/cjs/hooks/use-manage-funding-source-insurance.cjs +15 -23
- package/dist/cjs/index.cjs +5 -0
- package/dist/cjs/locales/en/common.json.cjs +1 -1
- package/dist/cjs/locales/en/list-labels.json.cjs +2 -1
- package/dist/cjs/locales/en/list-shipments.json.cjs +1 -1
- package/dist/cjs/locales/en/manage-warehouses.json.cjs +2 -0
- package/dist/cjs/locales/en/purchase-label.json.cjs +9 -1
- package/dist/cjs/package.json.cjs +1 -1
- package/dist/cjs/utilities/feature-flags/feature-flags.cjs +3 -1
- package/dist/cjs/utilities/shipengine/carrier.cjs +4 -0
- package/dist/cjs/utilities/shipengine/index.cjs +3 -0
- package/dist/cjs/utilities/shipengine/insurance.cjs +63 -0
- package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.cjs +9 -9
- package/dist/cjs/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.cjs +1 -1
- package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.cjs +3 -2
- package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.cjs +8 -6
- package/dist/cjs/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.cjs +4 -19
- package/dist/esm/assets/xcover/logo.svg.js +23 -0
- package/dist/esm/components/field/rate-select/rate-card/rate-attribute-item/index.js +1 -0
- package/dist/esm/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.js +54 -0
- package/dist/esm/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.styles.js +25 -0
- package/dist/esm/components/field/rate-select/rate-card/rate-card.js +53 -42
- package/dist/esm/components/field/rate-select/rate-card/rate-card.styles.js +4 -0
- package/dist/esm/components/field/rate-select/rate-select.js +80 -49
- package/dist/esm/components/forms/register-funding-source-insurance-form/register-funding-source-insurance-form.js +1 -1
- package/dist/esm/components/forms/warehouse-form/warehouse-form.js +10 -1
- package/dist/esm/components/service-card/service-card.js +3 -2
- package/dist/esm/components/service-card/service-card.styles.js +4 -2
- package/dist/esm/data/insurance-provider-metadatas.json.js +9 -4
- package/dist/esm/elements/customs-form/customs-form-element.js +291 -0
- package/dist/esm/elements/customs-form/customs-form-element.stories.js +232 -0
- package/dist/esm/elements/customs-form/customs-form-schema.js +56 -0
- package/dist/esm/elements/customs-form/customs-form-types.js +60 -0
- package/dist/esm/elements/customs-form/index.js +3 -0
- package/dist/esm/elements/index.js +3 -0
- package/dist/esm/elements/labels-grid/hooks/use-labels-grid.js +2 -2
- package/dist/esm/elements/labels-grid/labels-grid.js +30 -10
- package/dist/esm/elements/labels-grid/labels-grid.styles.js +5 -0
- package/dist/esm/elements/manage-carriers/manage-carriers.js +1 -1
- package/dist/esm/elements/purchase-label/components/customs-forms/tax-ids/tax-ids.js +1 -1
- package/dist/esm/elements/purchase-label/components/index.js +1 -0
- package/dist/esm/elements/purchase-label/components/rate-form/rate-view.js +3 -5
- package/dist/esm/elements/purchase-label/components/shipment-form/shipment-form.js +7 -4
- package/dist/esm/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.js +35 -11
- package/dist/esm/elements/purchase-label/hooks/use-insurance-provider-options.js +2 -2
- package/dist/esm/elements/shipments-grid/hooks/use-shipments-grid.js +2 -2
- package/dist/esm/elements/shipments-grid/shipments-grid.js +21 -7
- package/dist/esm/elements/shipments-grid/shipments-grid.styles.js +5 -0
- package/dist/esm/elements-provider/elements-context-provider.js +1 -1
- package/dist/esm/factories/shipengine/address.js +111 -0
- package/dist/esm/factories/shipengine/money.js +19 -0
- package/dist/esm/factories/shipengine/order-source.js +34 -0
- package/dist/esm/factories/shipengine/package.js +39 -0
- package/dist/esm/factories/shipengine/resource.js +21 -0
- package/dist/esm/factories/shipengine/shipment.js +168 -0
- package/dist/esm/factories/shipengine/weight.js +40 -0
- package/dist/esm/factories/utils.js +15 -0
- package/dist/esm/features/manage-carriers/hooks/use-list-funding-source-carriers.js +5 -7
- package/dist/esm/features/manage-carriers/manage-carriers.js +8 -6
- package/dist/esm/features/manage-warehouses/manage-warehouses.js +9 -5
- package/dist/esm/hooks/use-configure-shipment.js +55 -14
- package/dist/esm/hooks/use-get-funding-source-insurance-provider.js +7 -7
- package/dist/esm/hooks/use-get-service-data.js +58 -0
- package/dist/esm/hooks/use-import-sales-order.js +47 -22
- package/dist/esm/hooks/use-manage-funding-source-insurance.js +15 -23
- package/dist/esm/index.js +3 -0
- package/dist/esm/locales/en/common.json.js +1 -1
- package/dist/esm/locales/en/list-labels.json.js +2 -1
- package/dist/esm/locales/en/list-shipments.json.js +1 -1
- package/dist/esm/locales/en/manage-warehouses.json.js +2 -0
- package/dist/esm/locales/en/purchase-label.json.js +9 -1
- package/dist/esm/package.json.js +1 -1
- package/dist/esm/utilities/feature-flags/feature-flags.js +3 -1
- package/dist/esm/utilities/shipengine/carrier.js +4 -0
- package/dist/esm/utilities/shipengine/index.js +1 -1
- package/dist/esm/utilities/shipengine/insurance.js +61 -1
- package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.js +9 -9
- package/dist/esm/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.js +1 -1
- package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.js +3 -2
- package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.js +8 -6
- package/dist/esm/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.js +5 -20
- package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/index.d.ts +2 -0
- package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/index.d.ts.map +1 -0
- package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.d.ts +8 -0
- package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.d.ts.map +1 -0
- package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.styles.d.ts +22 -0
- package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.styles.d.ts.map +1 -0
- package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts +3 -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 +4 -0
- 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.map +1 -1
- package/dist/types/components/forms/register-funding-source-insurance-form/register-funding-source-insurance-form.d.ts.map +1 -1
- package/dist/types/components/forms/warehouse-form/warehouse-form.d.ts.map +1 -1
- package/dist/types/components/service-card/service-card.d.ts +2 -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 +2 -1
- package/dist/types/components/service-card/service-card.styles.d.ts.map +1 -1
- package/dist/types/elements/customs-form/customs-form-element.d.ts +1222 -0
- package/dist/types/elements/customs-form/customs-form-element.d.ts.map +1 -0
- package/dist/types/elements/customs-form/customs-form-element.stories.d.ts +12 -0
- package/dist/types/elements/customs-form/customs-form-element.stories.d.ts.map +1 -0
- package/dist/types/elements/customs-form/customs-form-schema.d.ts +398 -0
- package/dist/types/elements/customs-form/customs-form-schema.d.ts.map +1 -0
- package/dist/types/elements/customs-form/customs-form-types.d.ts +139 -0
- package/dist/types/elements/customs-form/customs-form-types.d.ts.map +1 -0
- package/dist/types/elements/customs-form/index.d.ts +4 -0
- package/dist/types/elements/customs-form/index.d.ts.map +1 -0
- package/dist/types/elements/index.d.ts +1 -0
- package/dist/types/elements/index.d.ts.map +1 -1
- package/dist/types/elements/labels-grid/labels-grid.d.ts +14 -3
- package/dist/types/elements/labels-grid/labels-grid.d.ts.map +1 -1
- package/dist/types/elements/labels-grid/labels-grid.styles.d.ts +5 -0
- package/dist/types/elements/labels-grid/labels-grid.styles.d.ts.map +1 -1
- package/dist/types/elements/manage-carriers/manage-carriers.d.ts +14 -3
- 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 +14 -3
- 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 +14 -3
- package/dist/types/elements/manage-funding/manage-funding-element.d.ts.map +1 -1
- package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts +14 -3
- 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 +14 -3
- package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/index.d.ts +1 -0
- package/dist/types/elements/purchase-label/components/index.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/shipment-form/shipment-form.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.d.ts +6 -1
- package/dist/types/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/hooks/use-insurance-provider-options.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/purchase-label.d.ts +14 -3
- 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 +14 -3
- package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts.map +1 -1
- package/dist/types/elements/shipment-summary/shipment-summary.d.ts +14 -3
- package/dist/types/elements/shipment-summary/shipment-summary.d.ts.map +1 -1
- package/dist/types/elements/shipments-grid/shipments-grid.d.ts +14 -3
- package/dist/types/elements/shipments-grid/shipments-grid.d.ts.map +1 -1
- package/dist/types/elements/shipments-grid/shipments-grid.styles.d.ts +5 -0
- package/dist/types/elements/shipments-grid/shipments-grid.styles.d.ts.map +1 -1
- package/dist/types/elements/theme-creator/theme-creator.d.ts +14 -3
- package/dist/types/elements/theme-creator/theme-creator.d.ts.map +1 -1
- package/dist/types/elements/transaction-history/transaction-history-element.d.ts +14 -3
- 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 +14 -3
- 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 +14 -3
- package/dist/types/elements/vat-settings/vat-settings-element.d.ts.map +1 -1
- package/dist/types/elements/void-label/void-label.d.ts +14 -3
- 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.d.ts.map +1 -1
- package/dist/types/features/manage-warehouses/manage-warehouses.d.ts.map +1 -1
- package/dist/types/hooks/use-configure-shipment.d.ts.map +1 -1
- package/dist/types/hooks/use-get-funding-source-insurance-provider.d.ts.map +1 -1
- package/dist/types/hooks/use-get-service-data.d.ts +14 -0
- package/dist/types/hooks/use-get-service-data.d.ts.map +1 -0
- package/dist/types/hooks/use-import-sales-order.d.ts +20 -1
- package/dist/types/hooks/use-import-sales-order.d.ts.map +1 -1
- package/dist/types/hooks/use-manage-funding-source-insurance.d.ts +3 -4
- package/dist/types/hooks/use-manage-funding-source-insurance.d.ts.map +1 -1
- package/dist/types/locales/en/index.d.ts +14 -3
- package/dist/types/locales/en/index.d.ts.map +1 -1
- package/dist/types/types/insurance-metadata.d.ts +1 -1
- package/dist/types/types/insurance-metadata.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/utilities/feature-flags/feature-flags.d.ts.map +1 -1
- package/dist/types/utilities/feature-flags/types.d.ts +8 -0
- package/dist/types/utilities/feature-flags/types.d.ts.map +1 -1
- package/dist/types/utilities/shipengine/carrier.d.ts.map +1 -1
- package/dist/types/utilities/shipengine/insurance.d.ts +31 -0
- package/dist/types/utilities/shipengine/insurance.d.ts.map +1 -1
- package/dist/types/workflows/account-settings/account-settings.d.ts +14 -3
- package/dist/types/workflows/account-settings/account-settings.d.ts.map +1 -1
- package/dist/types/workflows/carrier-services/carrier-services.d.ts +14 -3
- 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 +14 -3
- 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 +14 -3
- 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/ship-from-address-step/ship-from-address-step.d.ts.map +1 -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/use-terms-agreement-step.d.ts +1 -5
- 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 +14 -3
- package/dist/types/workflows/onboarding/onboarding.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/hooks/use-get-service-name.cjs +0 -22
- package/dist/esm/hooks/use-get-service-name.js +0 -20
- package/dist/types/hooks/use-get-service-name.d.ts +0 -5
- package/dist/types/hooks/use-get-service-name.d.ts.map +0 -1
|
@@ -5,26 +5,49 @@ var reactApi = require('@shipengine/react-api');
|
|
|
5
5
|
var reactQuery = require('@tanstack/react-query');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Imports and retrieves sales orders by either:
|
|
10
|
+
* - Sales order ID lookup
|
|
11
|
+
* - External order ID/number search
|
|
12
|
+
*
|
|
13
|
+
* 1. First attempts to find the sales order using provided identifiers
|
|
14
|
+
* 2. If no order is found and initial fetches have run, automatically refreshes order sources
|
|
15
|
+
* 3. Invalidates relevant queries after successful refresh to refetch updated data
|
|
16
|
+
*
|
|
17
|
+
* @returns Object:
|
|
18
|
+
* - `salesOrder`: The found sales order, or undefined
|
|
19
|
+
* - `isLoading`: Boolean indicating if the hook is currently loading data
|
|
20
|
+
* - `errors`: Array of errors from failed queries, or undefined
|
|
21
|
+
*/
|
|
8
22
|
const useImportSalesOrder = ({
|
|
9
23
|
enabled,
|
|
10
24
|
externalOrderId,
|
|
25
|
+
externalOrderNumber,
|
|
11
26
|
orderSourceCode,
|
|
12
27
|
salesOrderId
|
|
13
28
|
}) => {
|
|
14
29
|
var _a, _b, _c;
|
|
15
30
|
const queryClient = reactQuery.useQueryClient();
|
|
16
31
|
const [refreshAttempted, setRefreshAttempted] = React.useState(false);
|
|
17
|
-
//
|
|
18
|
-
const
|
|
19
|
-
|
|
32
|
+
// Fetch sales order by External Order ID or External Order Number
|
|
33
|
+
const salesOrderByExternalIdQuery = reactApi.useListSalesOrders({
|
|
34
|
+
externalOrderId,
|
|
35
|
+
externalOrderNumber
|
|
20
36
|
});
|
|
21
37
|
// if an order was found through external search disable this query
|
|
22
|
-
const
|
|
38
|
+
const salesOrderByIdQuery = reactApi.useGetSalesOrder(salesOrderId, {
|
|
23
39
|
enabled: enabled && !!salesOrderId
|
|
24
40
|
});
|
|
25
|
-
const salesOrder = React.useMemo(() =>
|
|
41
|
+
const salesOrder = React.useMemo(() => {
|
|
42
|
+
if (salesOrderId) {
|
|
43
|
+
return salesOrderByIdQuery.data;
|
|
44
|
+
} else if (salesOrderByExternalIdQuery.data && salesOrderByExternalIdQuery.data.length > 0) {
|
|
45
|
+
return salesOrderByExternalIdQuery.data[0];
|
|
46
|
+
}
|
|
47
|
+
return undefined;
|
|
48
|
+
}, [salesOrderId, salesOrderByIdQuery.data, salesOrderByExternalIdQuery.data]);
|
|
26
49
|
// Determine if the initial fetch attempts (if applicable) have settled without finding data
|
|
27
|
-
const initialFetchSettled = (salesOrderId ? !
|
|
50
|
+
const initialFetchSettled = (salesOrderId ? !salesOrderByIdQuery.isInitialLoading && !salesOrderByIdQuery.isFetching : true) && ((externalOrderNumber || externalOrderId) && !salesOrderId ? !salesOrderByExternalIdQuery.isLoading && !salesOrderByExternalIdQuery.isFetching : true);
|
|
28
51
|
const shouldAttemptRefresh = enabled && initialFetchSettled && !salesOrder && !refreshAttempted;
|
|
29
52
|
const listOrderSourcesQuery = reactApi.useListOrderSources({
|
|
30
53
|
enabled: shouldAttemptRefresh
|
|
@@ -34,6 +57,17 @@ const useImportSalesOrder = ({
|
|
|
34
57
|
isLoading: isRefreshingOrderSource,
|
|
35
58
|
mutateAsync: refreshOrderSource
|
|
36
59
|
} = reactApi.useRefreshOrderSource();
|
|
60
|
+
const invalidateSalesOrderQueries = React.useCallback(() => {
|
|
61
|
+
if (salesOrderId) {
|
|
62
|
+
void queryClient.invalidateQueries({
|
|
63
|
+
queryKey: ["useGetSalesOrder", salesOrderId]
|
|
64
|
+
});
|
|
65
|
+
} else if (externalOrderId || externalOrderNumber) {
|
|
66
|
+
void queryClient.invalidateQueries({
|
|
67
|
+
queryKey: ["useListSalesOrders", externalOrderId, externalOrderNumber]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}, [queryClient, salesOrderId, externalOrderId, externalOrderNumber]);
|
|
37
71
|
React.useEffect(() => {
|
|
38
72
|
if (listOrderSourcesQuery.isSuccess && listOrderSourcesQuery.data && shouldAttemptRefresh && !isRefreshingOrderSource) {
|
|
39
73
|
const orderSourcesToRefresh = orderSourceCode ? listOrderSourcesQuery.data.filter(o => o.orderSourceCode.includes(orderSourceCode) && o.active) : listOrderSourcesQuery.data.filter(o => o.active);
|
|
@@ -41,29 +75,20 @@ const useImportSalesOrder = ({
|
|
|
41
75
|
setRefreshAttempted(true);
|
|
42
76
|
void (() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
43
77
|
yield Promise.all(orderSourcesToRefresh.map(o => refreshOrderSource(o.orderSourceId, {
|
|
44
|
-
// Invalidate relevant queries
|
|
78
|
+
// Invalidate relevant queries
|
|
45
79
|
onSuccess: () => {
|
|
46
|
-
|
|
47
|
-
void queryClient.invalidateQueries({
|
|
48
|
-
queryKey: ["useGetSalesOrder", salesOrderId]
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
if (externalOrderId && !salesOrderId) {
|
|
52
|
-
void queryClient.invalidateQueries({
|
|
53
|
-
queryKey: ["useGetSalesOrderByExternalOrderId", externalOrderId]
|
|
54
|
-
});
|
|
55
|
-
}
|
|
80
|
+
invalidateSalesOrderQueries();
|
|
56
81
|
}
|
|
57
82
|
})));
|
|
58
83
|
}))();
|
|
59
84
|
}
|
|
60
85
|
}
|
|
61
86
|
}, [externalOrderId, isRefreshingOrderSource, listOrderSourcesQuery.data, listOrderSourcesQuery.isSuccess, orderSourceCode, queryClient, refreshOrderSource, salesOrderId, shouldAttemptRefresh]);
|
|
62
|
-
const isLoading =
|
|
63
|
-
const errors = [...((_a =
|
|
87
|
+
const isLoading = salesOrderByIdQuery.isInitialLoading || salesOrderByExternalIdQuery.isInitialLoading || listOrderSourcesQuery.isInitialLoading || isRefreshingOrderSource;
|
|
88
|
+
const errors = [...((_a = salesOrderByIdQuery.error) !== null && _a !== void 0 ? _a : []), ...((_b = salesOrderByExternalIdQuery.error) !== null && _b !== void 0 ? _b : []), ...((_c = listOrderSourcesQuery.error) !== null && _c !== void 0 ? _c : []), ...(refreshOrderSourceErrors !== null && refreshOrderSourceErrors !== void 0 ? refreshOrderSourceErrors : [])];
|
|
64
89
|
return {
|
|
65
90
|
errors: errors.length > 0 ? errors : undefined,
|
|
66
|
-
isLoading,
|
|
91
|
+
isLoading: isLoading && errors.length === 0,
|
|
67
92
|
salesOrder
|
|
68
93
|
};
|
|
69
94
|
};
|
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var _tslib = require('../_virtual/_tslib.cjs');
|
|
4
4
|
var reactApi = require('@shipengine/react-api');
|
|
5
|
+
var insurance = require('../utilities/shipengine/insurance.cjs');
|
|
5
6
|
var React = require('react');
|
|
6
7
|
var elementsContextProvider = require('../elements-provider/elements-context-provider.cjs');
|
|
7
8
|
|
|
8
9
|
const useManageFundingSourceInsurance = () => {
|
|
9
|
-
var _a;
|
|
10
|
+
var _a, _b;
|
|
10
11
|
const {
|
|
11
12
|
globalFeatures: {
|
|
12
|
-
enableParcelGuard
|
|
13
|
+
enableParcelGuard,
|
|
14
|
+
enableXCover
|
|
13
15
|
}
|
|
14
16
|
} = elementsContextProvider.useElements();
|
|
15
17
|
const {
|
|
@@ -21,25 +23,12 @@ const useManageFundingSourceInsurance = () => {
|
|
|
21
23
|
data: insuranceAcceptedTerms,
|
|
22
24
|
isLoading: loadingInsuranceAcceptedTerms
|
|
23
25
|
} = reactApi.useGetInsuranceFundingSourceAcceptedTerms({
|
|
24
|
-
enabled: enableParcelGuard
|
|
26
|
+
enabled: enableParcelGuard || enableXCover
|
|
25
27
|
});
|
|
26
28
|
const insuranceProviderProfiles = React.useMemo(() => {
|
|
27
29
|
var _a;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
parcelguard_terms: "parcelguard"
|
|
31
|
-
};
|
|
32
|
-
const friendlyNameLookup = {
|
|
33
|
-
parcelguard_terms: "ParcelGuard"
|
|
34
|
-
};
|
|
35
|
-
const provider = providerLookup[terms.termType];
|
|
36
|
-
const friendlyName = friendlyNameLookup[terms.termType];
|
|
37
|
-
return {
|
|
38
|
-
friendlyName,
|
|
39
|
-
provider,
|
|
40
|
-
terms
|
|
41
|
-
};
|
|
42
|
-
});
|
|
30
|
+
const optionalTerms = (_a = fundingSourceMetadata === null || fundingSourceMetadata === void 0 ? void 0 : fundingSourceMetadata.data) === null || _a === void 0 ? void 0 : _a.defaultFundingSourceProfile.optionalTerms;
|
|
31
|
+
return insurance.groupTermsByProvider(optionalTerms);
|
|
43
32
|
}, [fundingSourceMetadata]);
|
|
44
33
|
const {
|
|
45
34
|
mutateAsync: registerCarrier
|
|
@@ -79,12 +68,15 @@ const useManageFundingSourceInsurance = () => {
|
|
|
79
68
|
}
|
|
80
69
|
}), [fundingSources, insuranceProviderProfiles, registerCarrier]);
|
|
81
70
|
const hasInsuranceToRegister = React.useMemo(() => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
71
|
+
var _a, _b;
|
|
72
|
+
const isProviderEnabled = insurance.getIsFundingSourceInsuranceProviderEnabledAndSupported(insuranceProviderProfiles, enableXCover, enableParcelGuard);
|
|
73
|
+
const hasProfiles = Boolean(insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.length);
|
|
74
|
+
const hasNoAcceptedTerms = ((_b = (_a = insuranceAcceptedTerms === null || insuranceAcceptedTerms === void 0 ? void 0 : insuranceAcceptedTerms.acceptedTerms) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) === 0;
|
|
75
|
+
const hasFundingSources = Boolean(fundingSources === null || fundingSources === void 0 ? void 0 : fundingSources.length);
|
|
76
|
+
return isProviderEnabled && hasProfiles && hasNoAcceptedTerms && hasFundingSources;
|
|
77
|
+
}, [insuranceProviderProfiles, enableXCover, enableParcelGuard, (_a = insuranceAcceptedTerms === null || insuranceAcceptedTerms === void 0 ? void 0 : insuranceAcceptedTerms.acceptedTerms) === null || _a === void 0 ? void 0 : _a.length, fundingSources === null || fundingSources === void 0 ? void 0 : fundingSources.length]);
|
|
86
78
|
return {
|
|
87
|
-
fundingSourceCountryCode: (
|
|
79
|
+
fundingSourceCountryCode: (_b = fundingSourceMetadata === null || fundingSourceMetadata === void 0 ? void 0 : fundingSourceMetadata.data) === null || _b === void 0 ? void 0 : _b.defaultFundingSourceProfile.countryCode,
|
|
88
80
|
hasInsuranceToRegister,
|
|
89
81
|
insuranceAcceptedTerms: insuranceAcceptedTerms === null || insuranceAcceptedTerms === void 0 ? void 0 : insuranceAcceptedTerms.acceptedTerms,
|
|
90
82
|
insuranceProviderProfiles,
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -22,6 +22,8 @@ var selectLabelLayoutElement = require('./elements/select-label-layout/select-la
|
|
|
22
22
|
var paymentMethodSettingsElement = require('./elements/payment-method-settings/payment-method-settings-element.cjs');
|
|
23
23
|
var carrierServices = require('./workflows/carrier-services/carrier-services.cjs');
|
|
24
24
|
var transactionHistoryElement = require('./elements/transaction-history/transaction-history-element.cjs');
|
|
25
|
+
var customsFormElement = require('./elements/customs-form/customs-form-element.cjs');
|
|
26
|
+
var customsFormTypes = require('./elements/customs-form/customs-form-types.cjs');
|
|
25
27
|
var useAddressValidation = require('./hooks/use-address-validation.cjs');
|
|
26
28
|
var useHelpers = require('./hooks/use-helpers.cjs');
|
|
27
29
|
var useConfigureShipment = require('./hooks/use-configure-shipment.cjs');
|
|
@@ -77,6 +79,9 @@ exports.SelectLabelLayout = selectLabelLayoutElement;
|
|
|
77
79
|
exports.PaymentMethodSettings = paymentMethodSettingsElement;
|
|
78
80
|
exports.CarrierServices = carrierServices;
|
|
79
81
|
exports.TransactionHistory = transactionHistoryElement;
|
|
82
|
+
exports.CustomsForm = customsFormElement;
|
|
83
|
+
exports.extractCustomsFormData = customsFormTypes.extractCustomsFormData;
|
|
84
|
+
exports.getDefaultCustomsFormValues = customsFormTypes.getDefaultCustomsFormValues;
|
|
80
85
|
exports.useAddressValidation = useAddressValidation.useAddressValidation;
|
|
81
86
|
exports.useHelpers = useHelpers.useHelpers;
|
|
82
87
|
exports.useConfigureShipment = useConfigureShipment.useConfigureShipment;
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
var listLabels = {
|
|
4
4
|
"list-labels": {
|
|
5
5
|
title: "List Labels",
|
|
6
|
+
none: "None",
|
|
6
7
|
headers: {
|
|
7
8
|
created: "Created Date",
|
|
8
9
|
shipmentId: "Shipment ID",
|
|
9
10
|
parcels: "Parcels",
|
|
10
11
|
recipient: "Recipient",
|
|
11
|
-
|
|
12
|
+
service: "Service",
|
|
12
13
|
shipDate: "Ship Date",
|
|
13
14
|
status: "Label Status",
|
|
14
15
|
trackingStatus: "Delivery Status",
|
|
@@ -7,6 +7,8 @@ var manageWarehouses = {
|
|
|
7
7
|
editWarehouse: "Edit Address",
|
|
8
8
|
contactName: "Contact Name",
|
|
9
9
|
"default": "Default",
|
|
10
|
+
forcedDefault: "This is your default Ship From Address",
|
|
11
|
+
forcedDefaultNew: "This will be your default Ship From Address",
|
|
10
12
|
isDefault: "Set as default Ship From address",
|
|
11
13
|
locationName: "Location Name",
|
|
12
14
|
residentialAddress: "Residential Address",
|
|
@@ -93,7 +93,15 @@ var purchaseLabel = {
|
|
|
93
93
|
rateSavings: "Save ${{amount}}",
|
|
94
94
|
upsGroundSaverTermsAcknowledgement: "To start shipping with UPS Ground Saver, you are confirming that you have agreed to the <1>terms and conditions</1>",
|
|
95
95
|
dhlExpressTermsAcknowledgement: "To start shipping with DHL, you are confirming that you have agreed to the <1>terms and conditions</1>",
|
|
96
|
-
noRateService: "Rate and services will be billed based on carrier."
|
|
96
|
+
noRateService: "Rate and services will be billed based on carrier.",
|
|
97
|
+
rateAttributes: {
|
|
98
|
+
bestValue: "Best Value",
|
|
99
|
+
cheapest: "Cheapest",
|
|
100
|
+
fastest: "Fastest",
|
|
101
|
+
bestValueTooltip: "Lowest cost option arriving on a specified date within 4 days, with free carrier coverage up to $100 and a free dropoff option.",
|
|
102
|
+
cheapestTooltip: "Lowest cost option.",
|
|
103
|
+
fastestTooltip: "Fastest delivery option."
|
|
104
|
+
}
|
|
97
105
|
},
|
|
98
106
|
windsorFramework: {
|
|
99
107
|
movementIndicator: "Movement Indicator",
|
|
@@ -28,6 +28,7 @@ const defaultFeatureFlags = {
|
|
|
28
28
|
globalFeatures: {
|
|
29
29
|
disableShadowDOM: false,
|
|
30
30
|
enableParcelGuard: true,
|
|
31
|
+
enableXCover: false,
|
|
31
32
|
isSandbox: false,
|
|
32
33
|
poweredByShipEngine: true,
|
|
33
34
|
showVatSettings: false,
|
|
@@ -50,7 +51,8 @@ const defaultFeatureFlags = {
|
|
|
50
51
|
labelLayout: false,
|
|
51
52
|
nicknameRate: true,
|
|
52
53
|
requireDhlTermsAcknowledgement: false,
|
|
53
|
-
saveRate: true
|
|
54
|
+
saveRate: true,
|
|
55
|
+
showMediaMail: false
|
|
54
56
|
},
|
|
55
57
|
shipmentForm: {
|
|
56
58
|
addOns: true,
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var icon = require('../../assets/parcelguard/icon.svg.cjs');
|
|
4
4
|
var logo = require('../../assets/parcelguard/logo.svg.cjs');
|
|
5
|
+
var logo$1 = require('../../assets/xcover/logo.svg.cjs');
|
|
5
6
|
|
|
6
7
|
const USPS_CARRIER_CODES = ["usps", "stamps_com"];
|
|
7
8
|
/**
|
|
@@ -59,6 +60,9 @@ const getLogoOrIconByCarrierCode = (carrierCode, type) => {
|
|
|
59
60
|
if (carrierCode === "parcelguard") {
|
|
60
61
|
return type === "logo" ? logo : icon;
|
|
61
62
|
}
|
|
63
|
+
if (carrierCode === "xcover") {
|
|
64
|
+
return logo$1;
|
|
65
|
+
}
|
|
62
66
|
const carrierCodeOverrides = {
|
|
63
67
|
stamps_com: "stamps_com_wl",
|
|
64
68
|
usps: "stamps_com_wl"
|
|
@@ -54,5 +54,8 @@ exports.isMetricWeightUnit = weight.isMetricWeightUnit;
|
|
|
54
54
|
exports.isFlatRatePackageCode = _package.isFlatRatePackageCode;
|
|
55
55
|
exports.getDefaultWarehouse = warehouses.getDefaultWarehouse;
|
|
56
56
|
exports.getWarehouseById = warehouses.getWarehouseById;
|
|
57
|
+
exports.filterProfilesByAcceptedTerms = insurance.filterProfilesByAcceptedTerms;
|
|
57
58
|
exports.getInsuranceProviderWithFriendlyName = insurance.getInsuranceProviderWithFriendlyName;
|
|
59
|
+
exports.getIsFundingSourceInsuranceProviderEnabledAndSupported = insurance.getIsFundingSourceInsuranceProviderEnabledAndSupported;
|
|
58
60
|
exports.getIsInsuraceProviderAccepted = insurance.getIsInsuraceProviderAccepted;
|
|
61
|
+
exports.groupTermsByProvider = insurance.groupTermsByProvider;
|
|
@@ -12,6 +12,22 @@ var insuranceProviderMetadatas = require('../../data/insurance-provider-metadata
|
|
|
12
12
|
const getInsuranceProviderWithFriendlyName = termType => {
|
|
13
13
|
return insuranceProviderMetadatas.default[termType];
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*
|
|
18
|
+
* # Insurance Utilities - getIsFundingSourceInsuranceProviderEnabledAndSupported
|
|
19
|
+
*
|
|
20
|
+
* Determines if any insurance providers are enabled and supported based on feature flags and funding source data.
|
|
21
|
+
*
|
|
22
|
+
* @category Utilities
|
|
23
|
+
*/
|
|
24
|
+
const getIsFundingSourceInsuranceProviderEnabledAndSupported = (insuranceProviders, xcoverEnabled, parcelguardEnabled) => {
|
|
25
|
+
if (!(insuranceProviders === null || insuranceProviders === void 0 ? void 0 : insuranceProviders.length)) return false;
|
|
26
|
+
const supportedProviders = insuranceProviders.map(p => p.provider);
|
|
27
|
+
if (xcoverEnabled && supportedProviders.includes("xcover")) return true;
|
|
28
|
+
if (parcelguardEnabled && supportedProviders.includes("parcelguard")) return true;
|
|
29
|
+
return false;
|
|
30
|
+
};
|
|
15
31
|
/**
|
|
16
32
|
* @internal
|
|
17
33
|
*
|
|
@@ -22,6 +38,53 @@ const getInsuranceProviderWithFriendlyName = termType => {
|
|
|
22
38
|
const getIsInsuraceProviderAccepted = (termType, acceptedTerms) => {
|
|
23
39
|
return !!(acceptedTerms === null || acceptedTerms === void 0 ? void 0 : acceptedTerms.map(t => t.termType).includes(termType));
|
|
24
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*
|
|
44
|
+
* # Insurance Utilities - groupTermsByProvider
|
|
45
|
+
*
|
|
46
|
+
* Groups optional terms by insurance provider, creating InsuranceProviderProfile objects.
|
|
47
|
+
*
|
|
48
|
+
* @category Utilities
|
|
49
|
+
*/
|
|
50
|
+
const groupTermsByProvider = optionalTerms => {
|
|
51
|
+
if (!optionalTerms) return [];
|
|
52
|
+
// Group terms by provider
|
|
53
|
+
const providerTermsMap = new Map();
|
|
54
|
+
optionalTerms.forEach(term => {
|
|
55
|
+
const providerInfo = getInsuranceProviderWithFriendlyName(term.termType);
|
|
56
|
+
if (providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.provider) {
|
|
57
|
+
const existingTerms = providerTermsMap.get(providerInfo.provider) || [];
|
|
58
|
+
providerTermsMap.set(providerInfo.provider, [...existingTerms, term]);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
// Convert Map to InsuranceProviderProfile array
|
|
62
|
+
return Array.from(providerTermsMap.entries()).map(([, terms]) => {
|
|
63
|
+
const providerInfo = getInsuranceProviderWithFriendlyName(terms[0].termType);
|
|
64
|
+
return Object.assign(Object.assign({}, providerInfo), {
|
|
65
|
+
terms
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @internal
|
|
71
|
+
*
|
|
72
|
+
* # Insurance Utilities - filterProfilesByAcceptedTerms
|
|
73
|
+
*
|
|
74
|
+
* Filters insurance provider profiles to exclude those that have already been accepted.
|
|
75
|
+
*
|
|
76
|
+
* @category Utilities
|
|
77
|
+
*/
|
|
78
|
+
const filterProfilesByAcceptedTerms = (profiles, acceptedTerms) => {
|
|
79
|
+
if (!(acceptedTerms === null || acceptedTerms === void 0 ? void 0 : acceptedTerms.length)) return profiles;
|
|
80
|
+
const connectedTermTypes = new Set(acceptedTerms.map(t => t.termType));
|
|
81
|
+
return profiles.filter(profile => {
|
|
82
|
+
return !profile.terms.some(term => connectedTermTypes.has(term.termType));
|
|
83
|
+
});
|
|
84
|
+
};
|
|
25
85
|
|
|
86
|
+
exports.filterProfilesByAcceptedTerms = filterProfilesByAcceptedTerms;
|
|
26
87
|
exports.getInsuranceProviderWithFriendlyName = getInsuranceProviderWithFriendlyName;
|
|
88
|
+
exports.getIsFundingSourceInsuranceProviderEnabledAndSupported = getIsFundingSourceInsuranceProviderEnabledAndSupported;
|
|
27
89
|
exports.getIsInsuraceProviderAccepted = getIsInsuraceProviderAccepted;
|
|
90
|
+
exports.groupTermsByProvider = groupTermsByProvider;
|
|
@@ -107,12 +107,12 @@ const useConfirmationAndSubmissionStep = ({
|
|
|
107
107
|
iovationBlackbox
|
|
108
108
|
}) {
|
|
109
109
|
const addressToRegister = address !== null && address !== void 0 ? address : defaultWarehouse.originAddress;
|
|
110
|
-
//
|
|
111
|
-
const insuranceProviders = globalFeatures.enableParcelGuard ? insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.map(p => ({
|
|
112
|
-
acceptedTerms:
|
|
113
|
-
termType:
|
|
114
|
-
version:
|
|
115
|
-
}
|
|
110
|
+
// funding source insurance check
|
|
111
|
+
const insuranceProviders = globalFeatures.enableParcelGuard || globalFeatures.enableXCover ? insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.map(p => ({
|
|
112
|
+
acceptedTerms: p.terms.map(term => ({
|
|
113
|
+
termType: term.termType,
|
|
114
|
+
version: term.version
|
|
115
|
+
})),
|
|
116
116
|
agreeToTerms: true,
|
|
117
117
|
fundingSourceId,
|
|
118
118
|
provider: p.provider
|
|
@@ -146,7 +146,7 @@ const useConfirmationAndSubmissionStep = ({
|
|
|
146
146
|
console.error(error);
|
|
147
147
|
throw error;
|
|
148
148
|
}
|
|
149
|
-
}), [
|
|
149
|
+
}), [globalFeatures.enableParcelGuard, globalFeatures.enableXCover, registerCarrier]);
|
|
150
150
|
const onboardSeller = React.useCallback(({
|
|
151
151
|
carrierProfiles,
|
|
152
152
|
fundingSourceRequiredTerms,
|
|
@@ -205,7 +205,7 @@ const useConfirmationAndSubmissionStep = ({
|
|
|
205
205
|
yield createHandleCarrierConnections({
|
|
206
206
|
carrierProfiles,
|
|
207
207
|
defaultWarehouse: warehouse,
|
|
208
|
-
insuranceProviderProfiles
|
|
208
|
+
insuranceProviderProfiles
|
|
209
209
|
})(fundingSource.fundingSource.fundingSourceId, {
|
|
210
210
|
iovationBlackbox
|
|
211
211
|
});
|
|
@@ -215,7 +215,7 @@ const useConfirmationAndSubmissionStep = ({
|
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
|
-
}), [addSandboxCarriers, createFundingSource, createHandleCarrierConnections, createOrUpdateWarehouse, getToken, globalFeatures.
|
|
218
|
+
}), [addSandboxCarriers, createFundingSource, createHandleCarrierConnections, createOrUpdateWarehouse, getToken, globalFeatures.isSandbox]);
|
|
219
219
|
const updateExistingFundingSource = React.useCallback(({
|
|
220
220
|
carrierProfiles,
|
|
221
221
|
fundingSource,
|
package/dist/cjs/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.cjs
CHANGED
|
@@ -45,7 +45,7 @@ const ShipFromAddressStep = ({
|
|
|
45
45
|
}), jsxRuntime.jsx(warehouseForm.WarehouseForm, {
|
|
46
46
|
onSubmit: onSubmit,
|
|
47
47
|
requireEmail: true,
|
|
48
|
-
shouldForceDefault:
|
|
48
|
+
shouldForceDefault: true,
|
|
49
49
|
submitButtonTitle: t("actions.continue"),
|
|
50
50
|
useStrictSchema: true,
|
|
51
51
|
warehouse: pendingWarehouse !== null && pendingWarehouse !== void 0 ? pendingWarehouse : pendingShipFrom
|
package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.cjs
CHANGED
|
@@ -30,7 +30,8 @@ const TermsAgreementForm = ({
|
|
|
30
30
|
} = reactI18next.useTranslation();
|
|
31
31
|
const {
|
|
32
32
|
globalFeatures: {
|
|
33
|
-
enableParcelGuard
|
|
33
|
+
enableParcelGuard,
|
|
34
|
+
enableXCover
|
|
34
35
|
}
|
|
35
36
|
} = elementsContextProvider.useElements();
|
|
36
37
|
const [showTerms, setShowTerms] = React.useState(false);
|
|
@@ -109,7 +110,7 @@ const TermsAgreementForm = ({
|
|
|
109
110
|
}), carrierTerms.map((term, idx) => jsxRuntime.jsx(displayTerm.DisplayTerm, {
|
|
110
111
|
terms: term
|
|
111
112
|
}, idx))]
|
|
112
|
-
}), enableParcelGuard && !!insuranceProviderTerms.length && jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
113
|
+
}), (enableParcelGuard || enableXCover) && !!insuranceProviderTerms.length && jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
113
114
|
children: [jsxRuntime.jsx(spacer.Spacer, {}), jsxRuntime.jsx(giger.Typography, {
|
|
114
115
|
bold: true,
|
|
115
116
|
variant: "body1",
|
package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.cjs
CHANGED
|
@@ -22,13 +22,14 @@ const TermsAgreementStep = ({
|
|
|
22
22
|
fundingSourceRequiredTerms,
|
|
23
23
|
showStampsLogo = false
|
|
24
24
|
}) => {
|
|
25
|
-
var _a, _b, _c, _d, _e;
|
|
25
|
+
var _a, _b, _c, _d, _e, _f;
|
|
26
26
|
const {
|
|
27
27
|
t
|
|
28
28
|
} = reactI18next.useTranslation("onboarding");
|
|
29
29
|
const {
|
|
30
30
|
globalFeatures: {
|
|
31
|
-
enableParcelGuard
|
|
31
|
+
enableParcelGuard,
|
|
32
|
+
enableXCover
|
|
32
33
|
}
|
|
33
34
|
} = elementsContextProvider.useElements();
|
|
34
35
|
const carrierFriendlyNames = useCarrierMetadata.useCarrierMetadata();
|
|
@@ -41,11 +42,12 @@ const TermsAgreementStep = ({
|
|
|
41
42
|
};
|
|
42
43
|
});
|
|
43
44
|
const insuranceProviderTerms = (_a = insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.flatMap(p => p.terms)) !== null && _a !== void 0 ? _a : [];
|
|
44
|
-
const showParcelGuard = enableParcelGuard && ((_b = insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles
|
|
45
|
-
const
|
|
45
|
+
const showParcelGuard = enableParcelGuard && ((_b = insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles[0]) === null || _b === void 0 ? void 0 : _b.friendlyName) === "ParcelGuard";
|
|
46
|
+
const showXCover = enableXCover && ((_c = insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles[0]) === null || _c === void 0 ? void 0 : _c.friendlyName) === "XCover";
|
|
47
|
+
const hasInsuranceToRegister = (showParcelGuard || showXCover) && ((_d = insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.length) !== null && _d !== void 0 ? _d : 0) > 0;
|
|
46
48
|
const hasEnabledCarriersConfigurationError = !showStampsLogo && (!enabledCarrierProfiles || (enabledCarrierProfiles === null || enabledCarrierProfiles === void 0 ? void 0 : enabledCarrierProfiles.length) === 0);
|
|
47
|
-
const hasAlreadyConnectedCarriers = ((
|
|
48
|
-
const hasCarriersToRegister = ((
|
|
49
|
+
const hasAlreadyConnectedCarriers = ((_e = enabledCarrierProfiles === null || enabledCarrierProfiles === void 0 ? void 0 : enabledCarrierProfiles.length) !== null && _e !== void 0 ? _e : 0) > 0 && carrierProfilesToRegister.length === 0 && (insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.length) === 0;
|
|
50
|
+
const hasCarriersToRegister = ((_f = enabledCarrierProfiles === null || enabledCarrierProfiles === void 0 ? void 0 : enabledCarrierProfiles.length) !== null && _f !== void 0 ? _f : 0) > 0 && carrierProfilesToRegister.length > 0;
|
|
49
51
|
// Handle case where partner has not correctly enabled carriers and there is no insurance to register
|
|
50
52
|
// Insurance does not get set in the same enabled carriers list and should bypass this check
|
|
51
53
|
if (hasEnabledCarriersConfigurationError && !hasInsuranceToRegister) {
|
package/dist/cjs/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.cjs
CHANGED
|
@@ -69,25 +69,10 @@ const useTermsAgreementStep = ({
|
|
|
69
69
|
});
|
|
70
70
|
}, [fundingSourceRequiredTerms, fundingSources, carriers, enabledCarrierProfiles]);
|
|
71
71
|
const insuranceProviderProfiles = React.useMemo(() => {
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
});
|
|
77
|
-
if (!insuranceProfiles) return [];
|
|
78
|
-
// filter out insurance profiles that are already connected from insurance accepted terms
|
|
79
|
-
const connectedInsuranceProfiles = insuranceAcceptedTerms === null || insuranceAcceptedTerms === void 0 ? void 0 : insuranceAcceptedTerms.acceptedTerms.map(terms => {
|
|
80
|
-
return Object.assign(Object.assign({}, insurance.getInsuranceProviderWithFriendlyName(terms.termType)), {
|
|
81
|
-
terms
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
return insuranceProfiles.filter(profile => {
|
|
85
|
-
const isConnected = connectedInsuranceProfiles === null || connectedInsuranceProfiles === void 0 ? void 0 : connectedInsuranceProfiles.some(c => c.terms.termType === profile.terms.termType);
|
|
86
|
-
if (isConnected) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
return true;
|
|
90
|
-
});
|
|
72
|
+
const optionalTerms = fundingSourceMetadata === null || fundingSourceMetadata === void 0 ? void 0 : fundingSourceMetadata.defaultFundingSourceProfile.optionalTerms;
|
|
73
|
+
const acceptedTerms = insuranceAcceptedTerms === null || insuranceAcceptedTerms === void 0 ? void 0 : insuranceAcceptedTerms.acceptedTerms;
|
|
74
|
+
const profiles = insurance.groupTermsByProvider(optionalTerms);
|
|
75
|
+
return insurance.filterProfilesByAcceptedTerms(profiles, acceptedTerms);
|
|
91
76
|
}, [fundingSourceMetadata, insuranceAcceptedTerms]);
|
|
92
77
|
const handleSubmitTermsAgreement = React.useCallback(() => {
|
|
93
78
|
onStepComplete();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
var _path, _path2, _path3;
|
|
4
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
5
|
+
var SvgLogo = function SvgLogo(props) {
|
|
6
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
7
|
+
width: 55,
|
|
8
|
+
height: 55,
|
|
9
|
+
fill: "none",
|
|
10
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
11
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
12
|
+
d: "m37.192 29.2-4.853-8.145 4.622-8.135a.65.65 0 0 0 0-.598.525.525 0 0 0-.195-.222.567.567 0 0 0-.29-.089H30.41a.593.593 0 0 0-.283.082.554.554 0 0 0-.202.206l-1.735 3.118 2.96 4.994a1.402 1.402 0 0 1 0 1.426l-2.766 4.89 1.868 3.118c.047.081.115.15.198.198a.58.58 0 0 0 .276.078h6.053a.617.617 0 0 0 .293-.092.575.575 0 0 0 .205-.218.64.64 0 0 0 0-.61",
|
|
13
|
+
fill: "#FFE600"
|
|
14
|
+
})), _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
|
|
15
|
+
d: "m29.622 20.825-2.706-4.545-2.341-4.004a.555.555 0 0 0-.204-.2.593.593 0 0 0-.281-.076h-5.981a.579.579 0 0 0-.29.09.538.538 0 0 0-.196.22.64.64 0 0 0 0 .61l4.853 8.216-4.634 8.053a.618.618 0 0 0 0 .599c.044.09.11.17.194.23a.48.48 0 0 1 .121 0 .951.951 0 0 0 .17 0h6.066a.567.567 0 0 0 .288-.084.527.527 0 0 0 .197-.215l2.196-3.832 2.548-4.406a.63.63 0 0 0 0-.633",
|
|
16
|
+
fill: "#FFE600"
|
|
17
|
+
})), _path3 || (_path3 = /*#__PURE__*/React.createElement("path", {
|
|
18
|
+
d: "M2.703 40.333.147 36.31a.232.232 0 0 1-.005-.248.225.225 0 0 1 .223-.106h1.849a.269.269 0 0 1 .202.118l1.453 2.362 1.476-2.362a.259.259 0 0 1 .202-.118h1.849c.217 0 .334.19.217.354l-2.571 4.023 2.657 4.244a.23.23 0 0 1-.077.337.224.224 0 0 1-.125.025h-1.74a.284.284 0 0 1-.218-.118l-1.655-2.59-1.647 2.59a.299.299 0 0 1-.217.118H.264c-.218 0-.335-.197-.218-.362l2.657-4.244ZM13.828 35.973a4.095 4.095 0 0 1 2.987 1.156.238.238 0 0 1 0 .352l-.963 1.01a.226.226 0 0 1-.31 0 2.495 2.495 0 0 0-1.668-.635c-.67 0-1.312.269-1.785.747a2.561 2.561 0 0 0-.739 1.802c0 .676.266 1.324.74 1.802a2.511 2.511 0 0 0 1.784.747 2.622 2.622 0 0 0 1.652-.597.233.233 0 0 1 .319 0l.97 1.033a.262.262 0 0 1 0 .337 4.238 4.238 0 0 1-3.032 1.21 4.41 4.41 0 0 1-1.758-.288 4.443 4.443 0 0 1-1.506-.96 4.53 4.53 0 0 1 0-6.484c.433-.42.945-.746 1.506-.96a4.409 4.409 0 0 1 1.758-.287l.045.015ZM23.211 35.954a4.635 4.635 0 0 1 2.546.75 4.512 4.512 0 0 1 1.691 2.011c.35.82.443 1.724.269 2.596a4.47 4.47 0 0 1-1.247 2.305 4.6 4.6 0 0 1-2.34 1.236 4.653 4.653 0 0 1-2.645-.25 4.56 4.56 0 0 1-2.057-1.652 4.436 4.436 0 0 1 .553-5.674c.424-.418.927-.75 1.481-.977a4.638 4.638 0 0 1 1.75-.345Zm0 6.98c.504.004.998-.14 1.418-.414.42-.273.748-.662.942-1.119.194-.456.246-.96.149-1.445a2.483 2.483 0 0 0-.697-1.281 2.556 2.556 0 0 0-1.304-.684 2.583 2.583 0 0 0-1.472.146 2.53 2.53 0 0 0-1.14.926 2.464 2.464 0 0 0 .323 3.14 2.564 2.564 0 0 0 1.781.732ZM29.234 36.281a.219.219 0 0 1 .015-.225.23.23 0 0 1 .09-.078.24.24 0 0 1 .12-.022h1.737a.245.245 0 0 1 .216.14l2.153 4.646h.08l2.154-4.646a.251.251 0 0 1 .092-.1.262.262 0 0 1 .132-.04h1.73a.23.23 0 0 1 .217.095.213.213 0 0 1 .006.23l-4.098 8.52a.227.227 0 0 1-.086.101.238.238 0 0 1-.13.038h-.129a.246.246 0 0 1-.134-.037.235.235 0 0 1-.09-.102l-4.075-8.52ZM39.415 36.199a.25.25 0 0 1 .076-.171.263.263 0 0 1 .176-.074h5.48c.066 0 .13.026.177.072a.241.241 0 0 1 .074.173v1.39a.241.241 0 0 1-.074.173.255.255 0 0 1-.178.071h-3.66v1.58h3.01a.263.263 0 0 1 .177.073.249.249 0 0 1 .076.171v1.406a.242.242 0 0 1-.074.173.256.256 0 0 1-.178.072h-3.012v1.737h3.661c.067 0 .131.026.178.072a.24.24 0 0 1 .074.173v1.405a.24.24 0 0 1-.074.173.255.255 0 0 1-.178.072h-5.479a.264.264 0 0 1-.176-.074.25.25 0 0 1-.076-.17v-8.497ZM47.862 36.199c0-.065.026-.127.073-.173a.253.253 0 0 1 .176-.071h3.923a2.843 2.843 0 0 1 1.848.626c.519.42.866 1.007.979 1.656a2.69 2.69 0 0 1-.367 1.878A2.793 2.793 0 0 1 52.96 41.3l1.796 3.26a.24.24 0 0 1-.091.35.254.254 0 0 1-.134.028h-1.748a.262.262 0 0 1-.21-.118l-1.74-3.401h-.91v3.252a.258.258 0 0 1-.077.168.269.269 0 0 1-.172.076H48.11a.253.253 0 0 1-.176-.072.242.242 0 0 1-.073-.172v-8.473Zm4.027 3.59c.268-.014.521-.127.707-.318.185-.19.29-.442.292-.705a.975.975 0 0 0-.295-.688 1.019 1.019 0 0 0-.704-.289h-1.966v2h1.966Z",
|
|
19
|
+
fill: "#000"
|
|
20
|
+
})));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { SvgLogo as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RateAttributeItem } from './rate-attribute-item.js';
|
package/dist/esm/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
2
|
+
import { useHoverableTooltip, Typography, Icon, IconSize, Tooltip } from '@shipengine/giger';
|
|
3
|
+
import { IconNames } from '@shipengine/giger-theme';
|
|
4
|
+
import { useRef } from 'react';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
6
|
+
import { styles } from './rate-attribute-item.styles.js';
|
|
7
|
+
|
|
8
|
+
const RateAttributeItem = ({
|
|
9
|
+
attribute,
|
|
10
|
+
tooltipId
|
|
11
|
+
}) => {
|
|
12
|
+
const {
|
|
13
|
+
t
|
|
14
|
+
} = useTranslation("purchase-label");
|
|
15
|
+
const tooltipRef = useRef(null);
|
|
16
|
+
const {
|
|
17
|
+
opened
|
|
18
|
+
} = useHoverableTooltip(tooltipRef);
|
|
19
|
+
const rateAttributeMap = {
|
|
20
|
+
best_value: {
|
|
21
|
+
name: t("rates.rateAttributes.bestValue"),
|
|
22
|
+
description: t("rates.rateAttributes.bestValueTooltip")
|
|
23
|
+
},
|
|
24
|
+
cheapest: {
|
|
25
|
+
name: t("rates.rateAttributes.cheapest"),
|
|
26
|
+
description: t("rates.rateAttributes.cheapestTooltip")
|
|
27
|
+
},
|
|
28
|
+
fastest: {
|
|
29
|
+
name: t("rates.rateAttributes.fastest"),
|
|
30
|
+
description: t("rates.rateAttributes.fastestTooltip")
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const rateAttribute = rateAttributeMap[attribute];
|
|
34
|
+
return jsxs("li", {
|
|
35
|
+
css: styles.attribute,
|
|
36
|
+
children: [jsx(Typography, {
|
|
37
|
+
component: "span",
|
|
38
|
+
variant: "small",
|
|
39
|
+
children: rateAttribute.name
|
|
40
|
+
}), jsx(Icon, {
|
|
41
|
+
css: styles.attributeIcon,
|
|
42
|
+
name: IconNames.INFO_FILLED,
|
|
43
|
+
ref: tooltipRef,
|
|
44
|
+
size: IconSize.SIZE_SMALL
|
|
45
|
+
}), tooltipRef.current && jsx(Tooltip, {
|
|
46
|
+
id: tooltipId,
|
|
47
|
+
isOpen: opened,
|
|
48
|
+
reference: tooltipRef.current,
|
|
49
|
+
children: rateAttribute.description
|
|
50
|
+
})]
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { RateAttributeItem };
|