@shipengine/elements 2.26.5 → 2.27.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 +52 -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/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/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 +1 -1
- package/dist/cjs/elements/purchase-label/components/shipment-form/shipment-form.cjs +4 -3
- 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/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/hooks/use-configure-shipment.cjs +47 -14
- package/dist/cjs/hooks/use-get-funding-source-insurance-provider.cjs +7 -7
- 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/purchase-label.json.cjs +9 -1
- package/dist/cjs/package.json.cjs +1 -1
- package/dist/cjs/utilities/feature-flags/feature-flags.cjs +1 -0
- 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/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 +52 -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/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/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 +1 -1
- package/dist/esm/elements/purchase-label/components/shipment-form/shipment-form.js +4 -3
- 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-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/hooks/use-configure-shipment.js +47 -14
- package/dist/esm/hooks/use-get-funding-source-insurance-provider.js +7 -7
- 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/purchase-label.json.js +9 -1
- package/dist/esm/package.json.js +1 -1
- package/dist/esm/utilities/feature-flags/feature-flags.js +1 -0
- 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/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/elements/customs-form/customs-form-element.d.ts +1219 -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 +9 -1
- package/dist/types/elements/labels-grid/labels-grid.d.ts.map +1 -1
- package/dist/types/elements/manage-carriers/manage-carriers.d.ts +9 -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 +9 -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 +9 -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 +9 -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 +9 -1
- 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/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 +5 -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 +9 -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 +9 -1
- 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 +9 -1
- package/dist/types/elements/shipment-summary/shipment-summary.d.ts.map +1 -1
- package/dist/types/elements/shipments-grid/shipments-grid.d.ts +9 -1
- package/dist/types/elements/shipments-grid/shipments-grid.d.ts.map +1 -1
- package/dist/types/elements/theme-creator/theme-creator.d.ts +9 -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 +9 -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 +9 -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 +9 -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 +9 -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.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-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 +9 -1
- 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 +4 -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 +9 -1
- package/dist/types/workflows/account-settings/account-settings.d.ts.map +1 -1
- package/dist/types/workflows/carrier-services/carrier-services.d.ts +9 -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 +9 -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 +9 -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/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 +9 -1
- package/dist/types/workflows/onboarding/onboarding.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -10,6 +10,7 @@ var React = require('react');
|
|
|
10
10
|
var reactI18next = require('react-i18next');
|
|
11
11
|
var manageCarriers_styles = require('./manage-carriers.styles.cjs');
|
|
12
12
|
var useListFundingSourceCarriers = require('./hooks/use-list-funding-source-carriers.cjs');
|
|
13
|
+
var insurance = require('../../utilities/shipengine/insurance.cjs');
|
|
13
14
|
var skeletonCarrierRow = require('../../components/skeleton/skeleton-carrier-row.cjs');
|
|
14
15
|
var manageFunding = require('../manage-funding/manage-funding.cjs');
|
|
15
16
|
var manageCarriersRow = require('./manage-carriers-row/manage-carriers-row.cjs');
|
|
@@ -43,6 +44,7 @@ const ShipEngineCarriers = ({
|
|
|
43
44
|
refetch: refetchCarriers,
|
|
44
45
|
refetchInsuranceProviderAcceptedTerms
|
|
45
46
|
} = useListFundingSourceCarriers.useListFundingSourceCarriers();
|
|
47
|
+
const isInsuranceEnabled = insurance.getIsFundingSourceInsuranceProviderEnabledAndSupported(insuranceProviderProfiles, globalFeatures.enableXCover, globalFeatures.enableParcelGuard);
|
|
46
48
|
const hasConnectedCarriers = React.useMemo(() => fundingSourceCarriers === null || fundingSourceCarriers === void 0 ? void 0 : fundingSourceCarriers.some(c => c.isConnected), [fundingSourceCarriers]);
|
|
47
49
|
const {
|
|
48
50
|
data: warehouses
|
|
@@ -103,10 +105,10 @@ const ShipEngineCarriers = ({
|
|
|
103
105
|
const handleRegisterProvider = React.useCallback(p => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
104
106
|
return yield handleRegistration({
|
|
105
107
|
insuranceProviders: [{
|
|
106
|
-
acceptedTerms: [{
|
|
107
|
-
termType:
|
|
108
|
-
version:
|
|
109
|
-
}],
|
|
108
|
+
acceptedTerms: [...p.terms.map(term => ({
|
|
109
|
+
termType: term.termType,
|
|
110
|
+
version: term.version
|
|
111
|
+
}))],
|
|
110
112
|
agreeToTerms: true,
|
|
111
113
|
fundingSourceId: fundingSourceId !== null && fundingSourceId !== void 0 ? fundingSourceId : "",
|
|
112
114
|
provider: p.provider
|
|
@@ -178,12 +180,12 @@ const ShipEngineCarriers = ({
|
|
|
178
180
|
}),
|
|
179
181
|
setCarrierToConnect: setCarrierToConnect
|
|
180
182
|
})
|
|
181
|
-
}, carrier.carrier.carrierProfile.carrierCode)),
|
|
183
|
+
}, carrier.carrier.carrierProfile.carrierCode)), isInsuranceEnabled && (insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.map(p => jsxRuntime.jsx("li", {
|
|
182
184
|
children: jsxRuntime.jsx(manageInsuranceProviderRow.ManageInsuranceProviderRow, {
|
|
183
185
|
insuranceProviderProfile: p,
|
|
184
186
|
registerProvider: handleRegisterProvider
|
|
185
187
|
})
|
|
186
|
-
}, p.terms.termType)))]
|
|
188
|
+
}, p.terms[0].termType)))]
|
|
187
189
|
})
|
|
188
190
|
})]
|
|
189
191
|
});
|
|
@@ -22,8 +22,8 @@ const useConfigureShipment = ({
|
|
|
22
22
|
warehouseId,
|
|
23
23
|
useWarehouses = true
|
|
24
24
|
}) => {
|
|
25
|
-
// Track when
|
|
26
|
-
const [
|
|
25
|
+
// Track when user manually created a shipment for a "not found" case
|
|
26
|
+
const [manuallyCreatedShipmentId, setManuallyCreatedShipmentId] = React.useState();
|
|
27
27
|
// Queue of incomplete requirement keys (i.e., Ship From addresses, Warehouses, Carriers)
|
|
28
28
|
const incompleteRequirementsKeys = React.useMemo(() => [], []);
|
|
29
29
|
const {
|
|
@@ -47,6 +47,7 @@ const useConfigureShipment = ({
|
|
|
47
47
|
// Dont run Sales Order Import unless the Sales order info is present
|
|
48
48
|
enabled: !!externalOrderNumber || !!orderSourceCode || !!salesOrderId || !!externalOrderId,
|
|
49
49
|
externalOrderId,
|
|
50
|
+
externalOrderNumber,
|
|
50
51
|
orderSourceCode,
|
|
51
52
|
salesOrderId
|
|
52
53
|
});
|
|
@@ -63,24 +64,49 @@ const useConfigureShipment = ({
|
|
|
63
64
|
isInitialLoading: isExternalShipmentInitialLoading,
|
|
64
65
|
isFetching: isExternalShipmentFetching
|
|
65
66
|
} = reactApi.useGetShipmentByExternalId({
|
|
66
|
-
enabled: !!externalShipmentId && !shipmentId,
|
|
67
|
+
enabled: !!externalShipmentId && !shipmentId && !manuallyCreatedShipmentId,
|
|
67
68
|
queryFnParams: {
|
|
68
69
|
externalId: externalShipmentId !== null && externalShipmentId !== void 0 ? externalShipmentId : ""
|
|
69
70
|
}
|
|
71
|
+
// TODO: weird refetch on focus behavior
|
|
70
72
|
});
|
|
73
|
+
// #region List Sales Order Shipments
|
|
74
|
+
const externalOrderIds = React.useMemo(() => {
|
|
75
|
+
return externalOrderId ? [externalOrderId] : undefined;
|
|
76
|
+
}, [externalOrderId]);
|
|
77
|
+
const salesOrderIds = React.useMemo(() => {
|
|
78
|
+
return salesOrderId ? [salesOrderId] : salesOrder$1 ? [salesOrder$1.salesOrderId] :
|
|
79
|
+
// TODO: current workaround - revert to being undefined rather than empty list
|
|
80
|
+
[];
|
|
81
|
+
}, [salesOrderId, salesOrder$1]);
|
|
82
|
+
const shipmentIds = React.useMemo(() => {
|
|
83
|
+
return manuallyCreatedShipmentId ? [manuallyCreatedShipmentId] : shipmentId ? [shipmentId] : externalShipment ? [externalShipment.shipmentId] : newV1Shipment ? [newV1Shipment.shipments[0].shipmentId] : undefined;
|
|
84
|
+
}, [manuallyCreatedShipmentId, shipmentId, externalShipment, newV1Shipment]);
|
|
85
|
+
const listSalesOrderShipmentsParams = React.useMemo(() => {
|
|
86
|
+
// TODO: useListSalesOrderShipments needs to be able to use the enabled prop, this is a workaround
|
|
87
|
+
// Prevent query with stale params during shipment creation or when V1 shipment exists but manuallyCreatedShipmentId not set
|
|
88
|
+
if (creatingV1Shipment && !manuallyCreatedShipmentId || newV1Shipment && !manuallyCreatedShipmentId) {
|
|
89
|
+
return {};
|
|
90
|
+
}
|
|
91
|
+
if (manuallyCreatedShipmentId) {
|
|
92
|
+
return {
|
|
93
|
+
shipmentIds
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
externalOrderIds,
|
|
98
|
+
salesOrderIds,
|
|
99
|
+
shipmentIds
|
|
100
|
+
};
|
|
101
|
+
}, [manuallyCreatedShipmentId, externalOrderIds, salesOrderIds, shipmentIds, creatingV1Shipment, newV1Shipment]);
|
|
71
102
|
const {
|
|
72
103
|
data: salesOrderShipments,
|
|
73
104
|
error: listSalesOrderShipmentsErrors,
|
|
74
105
|
refetch: refetchSalesOrderShipments,
|
|
75
106
|
isInitialLoading: listSalesOrderShipmentsInitiallyLoading,
|
|
76
107
|
isFetching: listSalesOrderShipmentsIsFetching
|
|
77
|
-
} = reactApi.useListSalesOrderShipments(
|
|
78
|
-
|
|
79
|
-
salesOrderIds: salesOrderId ? [salesOrderId] : salesOrder$1 ? [salesOrder$1.salesOrderId] :
|
|
80
|
-
// TODO: current workaround - revert to being undefined rather than empty list
|
|
81
|
-
[],
|
|
82
|
-
shipmentIds: replacementShipmentId ? [replacementShipmentId] : shipmentId ? [shipmentId] : externalShipment ? [externalShipment.shipmentId] : newV1Shipment ? [newV1Shipment.shipments[0].shipmentId] : undefined
|
|
83
|
-
});
|
|
108
|
+
} = reactApi.useListSalesOrderShipments(listSalesOrderShipmentsParams);
|
|
109
|
+
// #endregion
|
|
84
110
|
const {
|
|
85
111
|
error: createSalesOrderShipmentErrors,
|
|
86
112
|
mutateAsync: createSalesOrderShipment,
|
|
@@ -105,6 +131,7 @@ const useConfigureShipment = ({
|
|
|
105
131
|
}
|
|
106
132
|
return null;
|
|
107
133
|
}), [createV1Shipment, defaultShipFromAddress, defaultWarehouse, warehouseId, refetchSalesOrderShipments]);
|
|
134
|
+
// #region Create Sales Order Shipment
|
|
108
135
|
// Handles the creation of new shipments for the sales order flow and one-off flow
|
|
109
136
|
const handleShipmentCreation = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
110
137
|
var _a, _b, _c;
|
|
@@ -154,17 +181,23 @@ const useConfigureShipment = ({
|
|
|
154
181
|
}
|
|
155
182
|
// Create a Shipment for one-off flow
|
|
156
183
|
if (!salesOrderId && !externalOrderId && !externalOrderNumber && !orderSourceCode && !shipmentId && !externalShipmentId) {
|
|
157
|
-
yield createV1ShipmentWithDefaults();
|
|
184
|
+
const v1Shipment = yield createV1ShipmentWithDefaults();
|
|
185
|
+
// Set manuallyCreatedShipmentId to ensure proper query parameter handling
|
|
186
|
+
if (v1Shipment) {
|
|
187
|
+
setManuallyCreatedShipmentId(v1Shipment.shipments[0].shipmentId);
|
|
188
|
+
}
|
|
158
189
|
}
|
|
159
190
|
}), [createSalesOrderShipment, createV1ShipmentWithDefaults, creatingSalesOrderShipment, creatingV1Shipment, defaultShipFromAddress, defaultWarehouse, externalOrderId, externalOrderNumber, externalShipmentId, incompleteRequirementsKeys, isExternalShipmentFetching, isExternalShipmentInitialLoading, isFetchingWarehouses, isInitialLoadingWarehouses, labelPurchasedSalesOrderShipment, listSalesOrderShipmentsInitiallyLoading, listSalesOrderShipmentsIsFetching, orderSourceCode, pendingSalesOrderShipment, salesOrder$1, salesOrderId, salesOrderShipmentCreated, shipFromAddresses === null || shipFromAddresses === void 0 ? void 0 : shipFromAddresses.length, shipmentId, useWarehouses, v1shipmentCreated, warehouseId, warehouses$1]);
|
|
191
|
+
// #endregion
|
|
160
192
|
const createNewShipmentForNotFound = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
161
193
|
// Force create a new shipment even if shipmentId exists (for shipment_not_found case)
|
|
162
194
|
const v1Shipment = yield createV1ShipmentWithDefaults();
|
|
163
195
|
if (v1Shipment) {
|
|
164
|
-
|
|
165
|
-
|
|
196
|
+
setManuallyCreatedShipmentId(v1Shipment.shipments[0].shipmentId);
|
|
197
|
+
// Refetch to ensure we have the latest shipment data
|
|
198
|
+
yield refetchSalesOrderShipments();
|
|
166
199
|
}
|
|
167
|
-
}), [createV1ShipmentWithDefaults]);
|
|
200
|
+
}), [createV1ShipmentWithDefaults, refetchSalesOrderShipments]);
|
|
168
201
|
const refetchPendingSalesOrderShipments = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
169
202
|
const {
|
|
170
203
|
data: shipments
|
|
@@ -16,14 +16,15 @@ var elementsContextProvider = require('../elements-provider/elements-context-pro
|
|
|
16
16
|
const useGetFundingSourceInsuranceProvider = () => {
|
|
17
17
|
const {
|
|
18
18
|
globalFeatures: {
|
|
19
|
-
enableParcelGuard
|
|
19
|
+
enableParcelGuard,
|
|
20
|
+
enableXCover
|
|
20
21
|
}
|
|
21
22
|
} = elementsContextProvider.useElements();
|
|
22
23
|
const {
|
|
23
24
|
data,
|
|
24
25
|
refetch: refetchInsuranceAcceptedTerms
|
|
25
26
|
} = reactApi.useGetInsuranceFundingSourceAcceptedTerms({
|
|
26
|
-
enabled: enableParcelGuard
|
|
27
|
+
enabled: enableParcelGuard || enableXCover
|
|
27
28
|
});
|
|
28
29
|
const fundingSourceInsuranceProvider = React.useMemo(() => {
|
|
29
30
|
var _a;
|
|
@@ -32,13 +33,12 @@ const useGetFundingSourceInsuranceProvider = () => {
|
|
|
32
33
|
if (enableParcelGuard && term.termType === "parcelguard_terms") {
|
|
33
34
|
provider = "parcelguard";
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// }
|
|
36
|
+
if (enableXCover && term.termType === "xcover_terms") {
|
|
37
|
+
provider = "x_cover";
|
|
38
|
+
}
|
|
39
39
|
});
|
|
40
40
|
return provider;
|
|
41
|
-
}, [data, enableParcelGuard]);
|
|
41
|
+
}, [data === null || data === void 0 ? void 0 : data.acceptedTerms, enableParcelGuard, enableXCover]);
|
|
42
42
|
return {
|
|
43
43
|
fundingSourceInsuranceProvider,
|
|
44
44
|
refetchInsuranceAcceptedTerms
|
|
@@ -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;
|
|
@@ -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",
|
|
@@ -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/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",
|