@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
|
|
2
|
+
import { useGetServiceData } from '../../hooks/use-get-service-data.js';
|
|
2
3
|
import { useSortableQuery } from '../../hooks/use-sortable-query.js';
|
|
3
|
-
import { EmptyState, Button, Tag, TagColor, TagVariant, Typography, Next } from '@shipengine/giger';
|
|
4
|
+
import { EmptyState, Button, Tag, TagColor, TagVariant, Skeleton, IconSize, Typography, Next } from '@shipengine/giger';
|
|
4
5
|
import { toSnakeCase } from '../../utilities/formatString.js';
|
|
5
6
|
import { useRef, useMemo, useEffect, useCallback } from 'react';
|
|
6
7
|
import { useTranslation } from 'react-i18next';
|
|
@@ -19,6 +20,7 @@ import { useElements } from '../../elements-provider/elements-context-provider.j
|
|
|
19
20
|
import { Spacer } from '../../components/spacer/spacer.js';
|
|
20
21
|
import { PoweredByShipEngine } from '../../components/powered-by-shipengine/powered-by-shipengine.js';
|
|
21
22
|
import { ErrorFallback } from '../../components/error-fallback/error-fallback.js';
|
|
23
|
+
import { CarrierIcon } from '../../components/carrier-icon/carrier-icon.js';
|
|
22
24
|
|
|
23
25
|
const Component = ({
|
|
24
26
|
labelStatus,
|
|
@@ -104,6 +106,10 @@ const Component = ({
|
|
|
104
106
|
sortDir: sortState.dir,
|
|
105
107
|
columns: columnsArray
|
|
106
108
|
});
|
|
109
|
+
const {
|
|
110
|
+
getServiceInfo,
|
|
111
|
+
isLoadingCarriers
|
|
112
|
+
} = useGetServiceData();
|
|
107
113
|
useEffect(() => {
|
|
108
114
|
if (prevStatus.current !== labelStatus) {
|
|
109
115
|
pageConfig.pagerProps.resetCurrentPage();
|
|
@@ -290,14 +296,22 @@ const Component = ({
|
|
|
290
296
|
}
|
|
291
297
|
},
|
|
292
298
|
shippingService: {
|
|
293
|
-
headerContent: t("list-labels:headers.
|
|
299
|
+
headerContent: t("list-labels:headers.service"),
|
|
294
300
|
renderCellContent: label => {
|
|
301
|
+
const serviceInfo = getServiceInfo(label);
|
|
295
302
|
return jsxs(Fragment, {
|
|
296
|
-
children: [jsx(
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
303
|
+
children: [isLoadingCarriers ? jsx(Skeleton, {}) : jsxs("div", {
|
|
304
|
+
css: styles.serviceCell,
|
|
305
|
+
children: [serviceInfo.hasCarrierIcon && serviceInfo.carrierCode && jsx(CarrierIcon, {
|
|
306
|
+
carrierCode: serviceInfo.carrierCode,
|
|
307
|
+
carrierName: serviceInfo.serviceName || serviceInfo.carrierCode,
|
|
308
|
+
size: IconSize.SIZE_SMALL
|
|
309
|
+
}), jsx(Typography, {
|
|
310
|
+
component: "p",
|
|
311
|
+
css: styles.tableParagraph,
|
|
312
|
+
variant: "body2",
|
|
313
|
+
children: serviceInfo.serviceName || t("list-labels:none")
|
|
314
|
+
})]
|
|
301
315
|
}), label.trackable && jsx(Next.Link, {
|
|
302
316
|
bold: false,
|
|
303
317
|
href: label.trackingUrl,
|
|
@@ -350,17 +364,23 @@ const Component = ({
|
|
|
350
364
|
}
|
|
351
365
|
}
|
|
352
366
|
});
|
|
367
|
+
const labelExpired = label => {
|
|
368
|
+
const ninetyDaysAgo = new Date();
|
|
369
|
+
ninetyDaysAgo.setDate(ninetyDaysAgo.getDate() - 90);
|
|
370
|
+
return new Date(label.createdAt) < ninetyDaysAgo;
|
|
371
|
+
};
|
|
353
372
|
// Actual actions are only allowed for completed labels
|
|
354
373
|
if ((features === null || features === void 0 ? void 0 : features.showActions) && labels.some(label => label.status === "completed")) {
|
|
355
374
|
cols.push({
|
|
356
375
|
headerContent: "",
|
|
357
376
|
renderCellContent: label => {
|
|
358
377
|
var _a, _b;
|
|
378
|
+
const isLabelExpired = labelExpired(label);
|
|
359
379
|
const isLabelDelivered = label.trackingStatus === "delivered";
|
|
360
|
-
const isReprintAllowed = !!((_a = label.labelDownload) === null || _a === void 0 ? void 0 : _a.href) && label.status === "completed";
|
|
361
380
|
const isVoidAllowed = !!onClickVoidLabel && label.status === "completed";
|
|
362
|
-
const isPrintFormsAllowed = !!((_b = label.formDownload) === null || _b === void 0 ? void 0 : _b.href) && label.status === "completed";
|
|
363
381
|
const isViewDetailsAllowed = !!onClickViewDetails;
|
|
382
|
+
const isReprintAllowed = !!((_a = label.labelDownload) === null || _a === void 0 ? void 0 : _a.href) && label.status === "completed" && !isLabelExpired;
|
|
383
|
+
const isPrintFormsAllowed = !!((_b = label.formDownload) === null || _b === void 0 ? void 0 : _b.href) && label.status === "completed" && !isLabelExpired;
|
|
364
384
|
const allowActionsMenu = isReprintAllowed || isVoidAllowed || isPrintFormsAllowed || isViewDetailsAllowed;
|
|
365
385
|
if (isLabelDelivered || !allowActionsMenu) {
|
|
366
386
|
return null;
|
|
@@ -389,7 +409,7 @@ const Component = ({
|
|
|
389
409
|
});
|
|
390
410
|
}
|
|
391
411
|
return cols;
|
|
392
|
-
}, [t, toggleCreatedDateSort, sortState.createdAtDir, features === null || features === void 0 ? void 0 : features.columns, features === null || features === void 0 ? void 0 : features.showActions, labels, onClickExternalOrderId, onClickExternalShipmentId, onClickShipmentNumber, onClickTrackingNumber, onClickVoidLabel, onClickViewDetails, onClickPrintLabel, onClickPrintForms]);
|
|
412
|
+
}, [t, toggleCreatedDateSort, sortState.createdAtDir, features === null || features === void 0 ? void 0 : features.columns, features === null || features === void 0 ? void 0 : features.showActions, labels, onClickExternalOrderId, onClickExternalShipmentId, onClickShipmentNumber, getServiceInfo, isLoadingCarriers, onClickTrackingNumber, onClickVoidLabel, onClickViewDetails, onClickPrintLabel, onClickPrintForms]);
|
|
393
413
|
const emptyContentComponent = useMemo(() => {
|
|
394
414
|
if (isLoading) {
|
|
395
415
|
return undefined;
|
|
@@ -4,8 +4,8 @@ import { useFundingSourcesAddFunds } from '@shipengine/react-api';
|
|
|
4
4
|
import { useCallback } from 'react';
|
|
5
5
|
import { createElement } from '../../create-element/create-element.js';
|
|
6
6
|
import { ShipEngineCarriers } from '../../features/manage-carriers/manage-carriers.js';
|
|
7
|
-
import en from '../../locales/en/index.js';
|
|
8
7
|
import { ErrorFallback } from '../../components/error-fallback/error-fallback.js';
|
|
8
|
+
import en from '../../locales/en/index.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* # Manage-Carriers Element
|
|
@@ -127,7 +127,7 @@ const TaxIds = ({
|
|
|
127
127
|
})]
|
|
128
128
|
}), jsxs(Grid, {
|
|
129
129
|
noPadding: true,
|
|
130
|
-
children: [((_a = shipment.taxIdentifiers) === null || _a === void 0 ? void 0 : _a.length) && jsx(GridChild, {
|
|
130
|
+
children: [!!((_a = shipment.taxIdentifiers) === null || _a === void 0 ? void 0 : _a.length) && jsx(GridChild, {
|
|
131
131
|
colSpan: 12,
|
|
132
132
|
children: jsx(TaxIdList, {
|
|
133
133
|
handleActionsClick: handleActionsClick,
|
|
@@ -32,7 +32,6 @@ const RateView = ({
|
|
|
32
32
|
rateOptions,
|
|
33
33
|
rates,
|
|
34
34
|
salesOrder,
|
|
35
|
-
selectedRate,
|
|
36
35
|
shipment,
|
|
37
36
|
showVatFeatures
|
|
38
37
|
}) => {
|
|
@@ -76,9 +75,8 @@ const RateView = ({
|
|
|
76
75
|
}, [features === null || features === void 0 ? void 0 : features.enablePudoUI, pudoRateOptions, rateOptions]);
|
|
77
76
|
const {
|
|
78
77
|
collapsedRateOptionList,
|
|
79
|
-
COLLAPSED_RATE_VIEW_LIMIT,
|
|
80
78
|
filterVisibleRateOptions
|
|
81
|
-
} = useFilterVisibleRateOptions(expandedRateOptionList,
|
|
79
|
+
} = useFilterVisibleRateOptions(expandedRateOptionList, features);
|
|
82
80
|
const handleShowMoreRates = useCallback(() => {
|
|
83
81
|
var _a;
|
|
84
82
|
setShowHiddenRates === null || setShowHiddenRates === void 0 ? void 0 : setShowHiddenRates(!showHiddenRates);
|
|
@@ -197,8 +195,8 @@ const RateView = ({
|
|
|
197
195
|
onClick: onSelectRate,
|
|
198
196
|
onPaperlessAcknowledgementChange: onPaperlessAcknowledgementChange,
|
|
199
197
|
onSelectServicePoint: onSelectServicePoint,
|
|
200
|
-
options: showHiddenRates ? expandedRateOptionList : collapsedRateOptionList
|
|
201
|
-
}, rateSelectCommonProps)), expandedRateOptionList.length >
|
|
198
|
+
options: showHiddenRates || !collapsedRateOptionList.length ? expandedRateOptionList : collapsedRateOptionList
|
|
199
|
+
}, rateSelectCommonProps)), expandedRateOptionList.length > collapsedRateOptionList.length && !!collapsedRateOptionList.length && jsx(LinkAction, {
|
|
202
200
|
css: styles.showMoreOrLessRatesButton,
|
|
203
201
|
icon: showHiddenRates ? "chevronTop" : "chevronBottom",
|
|
204
202
|
iconPlacement: "right",
|
|
@@ -104,7 +104,8 @@ const ShipmentForm = ({
|
|
|
104
104
|
const {
|
|
105
105
|
locale: defaultLocale,
|
|
106
106
|
globalFeatures: {
|
|
107
|
-
enableParcelGuard
|
|
107
|
+
enableParcelGuard,
|
|
108
|
+
enableXCover
|
|
108
109
|
}
|
|
109
110
|
} = useElements();
|
|
110
111
|
const {
|
|
@@ -514,13 +515,15 @@ const ShipmentForm = ({
|
|
|
514
515
|
useEffect(() => {
|
|
515
516
|
hasShipFromAddressErrors && toggleIsEditShipFromAddressFormOpen();
|
|
516
517
|
}, [hasShipFromAddressErrors, toggleIsEditShipFromAddressFormOpen]);
|
|
518
|
+
const warehouseToEdit = useMemo(() => warehouses === null || warehouses === void 0 ? void 0 : warehouses.find(w => w.warehouseId === editShipFromAddressId), [editShipFromAddressId, warehouses]);
|
|
517
519
|
const [editWarehouseForm, isEditWarehouseFormOpen, toggleIsEditWarehouseFormOpen] = useNestedForm(WarehouseForm, {
|
|
518
520
|
formId: "edit-warehouse-form",
|
|
519
521
|
onSubmit: payload => __awaiter(void 0, void 0, void 0, function* () {
|
|
520
522
|
editShipFromAddressId && (yield handleSubmitEditWarehouse(payload, editShipFromAddressId));
|
|
521
523
|
}),
|
|
522
524
|
submitButtonTitle: t("actions.save"),
|
|
523
|
-
warehouse:
|
|
525
|
+
warehouse: warehouseToEdit,
|
|
526
|
+
shouldForceDefault: warehouseToEdit === null || warehouseToEdit === void 0 ? void 0 : warehouseToEdit.isDefault
|
|
524
527
|
});
|
|
525
528
|
const getFundingSourceInsuranceProviderKey = useCallback(provider => {
|
|
526
529
|
if (provider === "parcelguard") {
|
|
@@ -532,7 +535,7 @@ const ShipmentForm = ({
|
|
|
532
535
|
}, []);
|
|
533
536
|
const insuranceProviderKey = useMemo(() => {
|
|
534
537
|
var _a, _b, _c;
|
|
535
|
-
if (enableParcelGuard && !hasInsuranceToRegister) {
|
|
538
|
+
if ((enableParcelGuard || enableXCover) && !hasInsuranceToRegister) {
|
|
536
539
|
const provider = (_a = insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles[0]) === null || _a === void 0 ? void 0 : _a.provider;
|
|
537
540
|
const fundingSourceProviderKey = getFundingSourceInsuranceProviderKey(provider);
|
|
538
541
|
if (fundingSourceProviderKey) {
|
|
@@ -540,7 +543,7 @@ const ShipmentForm = ({
|
|
|
540
543
|
}
|
|
541
544
|
}
|
|
542
545
|
return (_c = (_b = insuranceProviderOptions[0]) === null || _b === void 0 ? void 0 : _b.value.toUpperCase()) !== null && _c !== void 0 ? _c : "NONE";
|
|
543
|
-
}, [enableParcelGuard, hasInsuranceToRegister, insuranceProviderOptions, insuranceProviderProfiles, getFundingSourceInsuranceProviderKey]);
|
|
546
|
+
}, [enableParcelGuard, enableXCover, hasInsuranceToRegister, insuranceProviderOptions, insuranceProviderProfiles, getFundingSourceInsuranceProviderKey]);
|
|
544
547
|
const [registerInsuranceForm, isRegisterInsuranceFormOpen, toggleisRegisterInsuranceFormOpen] = useNestedForm(RegisterFundingSourceInsuranceForm, {
|
|
545
548
|
formId: "register-funding-source-insurance-form",
|
|
546
549
|
insuranceProviderProfile: insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles[0],
|
|
@@ -1,24 +1,48 @@
|
|
|
1
1
|
import { useMemo, useCallback } from 'react';
|
|
2
2
|
|
|
3
3
|
const COLLAPSED_RATE_VIEW_LIMIT = 4;
|
|
4
|
-
const filterRateOptions = (rateOptions,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
4
|
+
const filterRateOptions = (rateOptions, showMediaMail) => {
|
|
5
|
+
const hasRateAttributes = option => {
|
|
6
|
+
var _a;
|
|
7
|
+
return !!((_a = option.rateAttributes) === null || _a === void 0 ? void 0 : _a.length);
|
|
8
|
+
};
|
|
9
|
+
const isMediaMail = option => option.serviceCode === "usps_media_mail";
|
|
10
|
+
const result = [];
|
|
11
|
+
const ratesWithAttributes = [];
|
|
12
|
+
const ratesWithoutAttributes = [];
|
|
13
|
+
// Classify rates (excluding Media Mail from both categories)
|
|
14
|
+
for (const option of rateOptions) {
|
|
15
|
+
if (!showMediaMail && isMediaMail(option)) {
|
|
16
|
+
continue; // Skip Media Mail entirely - it will only show in "Show more"
|
|
17
|
+
}
|
|
18
|
+
if (hasRateAttributes(option)) {
|
|
19
|
+
ratesWithAttributes.push(option);
|
|
20
|
+
} else {
|
|
21
|
+
ratesWithoutAttributes.push(option);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// Add up to 3 rates with attributes
|
|
25
|
+
const attributedRatesToShow = ratesWithAttributes.slice(0, 3);
|
|
26
|
+
result.push(...attributedRatesToShow);
|
|
27
|
+
// Fill remaining slots up to COLLAPSED_RATE_VIEW_LIMIT (4) with regular rates
|
|
28
|
+
const remainingSlots = COLLAPSED_RATE_VIEW_LIMIT - result.length;
|
|
29
|
+
const regularRatesToShow = ratesWithoutAttributes.slice(0, remainingSlots);
|
|
30
|
+
result.push(...regularRatesToShow);
|
|
31
|
+
return result;
|
|
12
32
|
};
|
|
13
33
|
/**
|
|
14
34
|
* @internal
|
|
15
35
|
*
|
|
16
36
|
* # Filter Visible Rate Options Hook
|
|
17
37
|
*
|
|
38
|
+
* Filters rate options for the collapsed view, showing up to 4 rates:
|
|
39
|
+
* - Up to 3 rates with attributes (best_value, cheapest, fastest)
|
|
40
|
+
* - Fill remaining slots with regular rates
|
|
41
|
+
* - Media Mail is always excluded from the collapsed view
|
|
18
42
|
*/
|
|
19
|
-
const useFilterVisibleRateOptions = (rateOptions,
|
|
20
|
-
const collapsedRateOptionList = useMemo(() => filterRateOptions(rateOptions,
|
|
21
|
-
const filterVisibleRateOptions = useCallback(options => filterRateOptions(options,
|
|
43
|
+
const useFilterVisibleRateOptions = (rateOptions, features) => {
|
|
44
|
+
const collapsedRateOptionList = useMemo(() => filterRateOptions(rateOptions, features === null || features === void 0 ? void 0 : features.showMediaMail), [rateOptions, features]);
|
|
45
|
+
const filterVisibleRateOptions = useCallback(options => filterRateOptions(options, features === null || features === void 0 ? void 0 : features.showMediaMail), [features]);
|
|
22
46
|
return {
|
|
23
47
|
COLLAPSED_RATE_VIEW_LIMIT,
|
|
24
48
|
collapsedRateOptionList,
|
|
@@ -24,11 +24,11 @@ const useInsuranceProviderOptions = (insuranceAccount, features) => {
|
|
|
24
24
|
refetchInsuranceAcceptedTerms
|
|
25
25
|
} = useGetFundingSourceInsuranceProvider();
|
|
26
26
|
const insuranceProviderOptions = useMemo(() => Object.values(SE.InsuranceProviderType).flatMap(v => {
|
|
27
|
-
return v === "none" || v === "funding_source" || v === "parcelguard" && (v !== fundingSourceInsuranceProvider || !globalFeatures.enableParcelGuard) || v === "x_cover" && v !== fundingSourceInsuranceProvider || v === "carrier" && !(features === null || features === void 0 ? void 0 : features.includeCarrierInsurance) || v === "third_party" && !(features === null || features === void 0 ? void 0 : features.includeThirdPartyInsurance) || v === "shipsurance" && (!(insuranceAccount === null || insuranceAccount === void 0 ? void 0 : insuranceAccount.amount) || !(features === null || features === void 0 ? void 0 : features.includeShipsuranceInsurance)) ? [] : {
|
|
27
|
+
return v === "none" || v === "funding_source" || v === "parcelguard" && (v !== fundingSourceInsuranceProvider || !globalFeatures.enableParcelGuard) || v === "x_cover" && (v !== fundingSourceInsuranceProvider || !globalFeatures.enableXCover) || v === "carrier" && !(features === null || features === void 0 ? void 0 : features.includeCarrierInsurance) || v === "third_party" && !(features === null || features === void 0 ? void 0 : features.includeThirdPartyInsurance) || v === "shipsurance" && (!(insuranceAccount === null || insuranceAccount === void 0 ? void 0 : insuranceAccount.amount) || !(features === null || features === void 0 ? void 0 : features.includeShipsuranceInsurance)) ? [] : {
|
|
28
28
|
label: t(`insuranceProviders.${humps.camelize(v)}`),
|
|
29
29
|
value: v
|
|
30
30
|
};
|
|
31
|
-
}), [fundingSourceInsuranceProvider, globalFeatures.enableParcelGuard, features, insuranceAccount === null || insuranceAccount === void 0 ? void 0 : insuranceAccount.amount, t]);
|
|
31
|
+
}), [fundingSourceInsuranceProvider, globalFeatures.enableParcelGuard, globalFeatures.enableXCover, features, insuranceAccount === null || insuranceAccount === void 0 ? void 0 : insuranceAccount.amount, t]);
|
|
32
32
|
return {
|
|
33
33
|
fundingSourceInsuranceProvider,
|
|
34
34
|
insuranceProviderOptions,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useGetServiceData } from '../../../hooks/use-get-service-data.js';
|
|
2
2
|
import { useListShipments, useExportShipments, useGetShipment } from '@shipengine/react-api';
|
|
3
3
|
import { createLocalFileFromBlobResponse } from '../../../utilities/files.js';
|
|
4
4
|
import { useState, useEffect, useMemo } from 'react';
|
|
@@ -28,7 +28,7 @@ const useShipmentsGrid = ({
|
|
|
28
28
|
const initialFilters = getInitialFilters(showShipmentIdFilter, showCreatedDateFilter);
|
|
29
29
|
const {
|
|
30
30
|
getServiceName
|
|
31
|
-
} =
|
|
31
|
+
} = useGetServiceData();
|
|
32
32
|
const {
|
|
33
33
|
page,
|
|
34
34
|
pageSize,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
2
2
|
import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
|
|
3
|
+
import { useGetServiceData } from '../../hooks/use-get-service-data.js';
|
|
3
4
|
import { useSortableQuery } from '../../hooks/use-sortable-query.js';
|
|
4
|
-
import { EmptyState, Button, Typography, Tag, TagColor, TagVariant } from '@shipengine/giger';
|
|
5
|
+
import { EmptyState, Button, Typography, Skeleton, IconSize, Tag, TagColor, TagVariant } from '@shipengine/giger';
|
|
5
6
|
import { useMemo } from 'react';
|
|
6
7
|
import { useTranslation } from 'react-i18next';
|
|
7
8
|
import { useShipmentsGrid } from './hooks/use-shipments-grid.js';
|
|
@@ -12,6 +13,7 @@ import en from '../../locales/en/index.js';
|
|
|
12
13
|
import { createElement } from '../../create-element/create-element.js';
|
|
13
14
|
import { useElements } from '../../elements-provider/elements-context-provider.js';
|
|
14
15
|
import { ErrorState } from '../../components/error-state/error-state.js';
|
|
16
|
+
import { CarrierIcon } from '../../components/carrier-icon/carrier-icon.js';
|
|
15
17
|
import { CellFormattedDate } from '../../components/grid-controller/cell-formatted-date.js';
|
|
16
18
|
import { SortableHeader } from '../../components/grid-controller/sortable-header/sortable-header.js';
|
|
17
19
|
import { GridController } from '../../components/grid-controller/grid-controller.js';
|
|
@@ -85,6 +87,10 @@ const Component = ({
|
|
|
85
87
|
sortBy: sortState.by,
|
|
86
88
|
sortDir: sortState.dir
|
|
87
89
|
});
|
|
90
|
+
const {
|
|
91
|
+
getServiceInfo,
|
|
92
|
+
isLoadingCarriers
|
|
93
|
+
} = useGetServiceData();
|
|
88
94
|
const onRowClick = shipment => __awaiter(void 0, void 0, void 0, function* () {
|
|
89
95
|
setActiveShipmentId(shipment.shipmentId);
|
|
90
96
|
yield onRowClickProp === null || onRowClickProp === void 0 ? void 0 : onRowClickProp(shipment);
|
|
@@ -188,13 +194,21 @@ const Component = ({
|
|
|
188
194
|
}) : "--";
|
|
189
195
|
}
|
|
190
196
|
}, {
|
|
191
|
-
headerContent: t("list-shipments:headers.
|
|
197
|
+
headerContent: t("list-shipments:headers.service"),
|
|
192
198
|
renderCellContent: shipment => {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
css: styles.
|
|
196
|
-
|
|
197
|
-
|
|
199
|
+
const serviceInfo = getServiceInfo(shipment);
|
|
200
|
+
return isLoadingCarriers ? jsx(Skeleton, {}) : jsxs("div", {
|
|
201
|
+
css: styles.serviceCell,
|
|
202
|
+
children: [serviceInfo.hasCarrierIcon && serviceInfo.carrierCode && jsx(CarrierIcon, {
|
|
203
|
+
carrierCode: serviceInfo.carrierCode,
|
|
204
|
+
carrierName: serviceInfo.serviceName || serviceInfo.carrierCode,
|
|
205
|
+
size: IconSize.SIZE_SMALL
|
|
206
|
+
}), jsx(Typography, {
|
|
207
|
+
component: "p",
|
|
208
|
+
css: styles.tableParagraph,
|
|
209
|
+
variant: "body2",
|
|
210
|
+
children: serviceInfo.serviceName || t("list-shipments:none")
|
|
211
|
+
})]
|
|
198
212
|
});
|
|
199
213
|
}
|
|
200
214
|
}, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { useContext, createContext } from 'react';
|
|
3
3
|
import { getDefaultFeatures, deepMergeFeatures } from '../utilities/feature-flags/feature-flags.js';
|
|
4
4
|
|
|
5
5
|
const DEFAULT_LOCALE = "en-US";
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { faker } from '@faker-js/faker';
|
|
2
|
+
import { Factory } from 'fishery';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @category Factories
|
|
6
|
+
*/
|
|
7
|
+
const addressFactory = Factory.define(({
|
|
8
|
+
params,
|
|
9
|
+
transientParams
|
|
10
|
+
}) => {
|
|
11
|
+
var _a, _b, _c, _d;
|
|
12
|
+
const addressLine2 = (_a = params.addressLine2) !== null && _a !== void 0 ? _a : faker.helpers.maybe(() => faker.address.secondaryAddress(), {
|
|
13
|
+
probability: 0.25
|
|
14
|
+
});
|
|
15
|
+
const addressLine3 = (_b = params.addressLine3) !== null && _b !== void 0 ? _b : addressLine2 && faker.helpers.maybe(() => faker.address.secondaryAddress());
|
|
16
|
+
let countryCode = (_c = params.countryCode) !== null && _c !== void 0 ? _c : "US";
|
|
17
|
+
// Random country code could still be US
|
|
18
|
+
while (transientParams.isInternational && countryCode === "US") {
|
|
19
|
+
countryCode = faker.address.countryCode();
|
|
20
|
+
}
|
|
21
|
+
const stateProvince = (_d = params.stateProvince) !== null && _d !== void 0 ? _d : faker.address.stateAbbr();
|
|
22
|
+
return {
|
|
23
|
+
addressLine1: faker.address.streetAddress(),
|
|
24
|
+
addressLine2,
|
|
25
|
+
addressLine3,
|
|
26
|
+
addressResidentialIndicator: faker.helpers.maybe(() => faker.helpers.arrayElement(["yes", "no"])),
|
|
27
|
+
cityLocality: faker.address.city(),
|
|
28
|
+
companyName: faker.helpers.maybe(() => faker.company.name()),
|
|
29
|
+
countryCode,
|
|
30
|
+
name: faker.name.fullName(),
|
|
31
|
+
phone: faker.phone.number(),
|
|
32
|
+
postalCode: faker.address.zipCodeByState(stateProvince),
|
|
33
|
+
stateProvince
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* @category Factories
|
|
38
|
+
*/
|
|
39
|
+
const addressValidationFactory = Factory.define(({
|
|
40
|
+
associations,
|
|
41
|
+
params
|
|
42
|
+
}) => {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
const status = params.status || faker.helpers.arrayElement(["unverified", "verified", "warning", "error"]);
|
|
45
|
+
return {
|
|
46
|
+
matchedAddress: (_a = associations.matchedAddress) !== null && _a !== void 0 ? _a : faker.helpers.maybe(() => addressFactory.build(), {
|
|
47
|
+
probability: ["verified", "error"].includes(status) ? 0 : 0.8
|
|
48
|
+
}),
|
|
49
|
+
messages: [],
|
|
50
|
+
originalAddress: (_b = associations.originalAddress) !== null && _b !== void 0 ? _b : addressFactory.build(),
|
|
51
|
+
status
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* Mock the addressValidation object used to hyrdate address valiation feature
|
|
56
|
+
* on the shipment form.
|
|
57
|
+
* @category Factory
|
|
58
|
+
*/
|
|
59
|
+
Factory.define(({
|
|
60
|
+
params
|
|
61
|
+
}) => {
|
|
62
|
+
const addressValidation = addressValidationFactory.build({
|
|
63
|
+
status: params.status
|
|
64
|
+
}, {
|
|
65
|
+
associations: {
|
|
66
|
+
matchedAddress: addressFactory.build()
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
if (!addressValidation.matchedAddress) throw new Error("addressPreferenceFactory did not generate a matchedAddress");
|
|
70
|
+
return Object.assign(Object.assign({}, addressValidation), {
|
|
71
|
+
alternative: addressValidation.originalAddress,
|
|
72
|
+
alternativeSource: "originalAddress",
|
|
73
|
+
isModified: true,
|
|
74
|
+
selection: addressValidation.matchedAddress,
|
|
75
|
+
selectionSource: "matchedAddress",
|
|
76
|
+
toggle: () => addressFactory.build()
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* Mock the addressValidationPreference object used to hyrdate the address valiation feature
|
|
81
|
+
* used for warehouse management and onboarding.
|
|
82
|
+
* @category Factory
|
|
83
|
+
*/
|
|
84
|
+
Factory.define(() => {
|
|
85
|
+
const addressValidation = addressValidationFactory.build();
|
|
86
|
+
const address = addressFactory.build();
|
|
87
|
+
const validationType = faker.helpers.arrayElement(["EXACT", "SOFT", "SUGGESTED", "ERROR"]);
|
|
88
|
+
switch (validationType) {
|
|
89
|
+
case "EXACT":
|
|
90
|
+
case "SOFT":
|
|
91
|
+
return {
|
|
92
|
+
address: address,
|
|
93
|
+
validationType: faker.helpers.arrayElement(["EXACT", "SOFT"])
|
|
94
|
+
};
|
|
95
|
+
case "SUGGESTED":
|
|
96
|
+
case "ERROR":
|
|
97
|
+
return {
|
|
98
|
+
validation: addressValidation,
|
|
99
|
+
validationType: faker.helpers.arrayElement(["SUGGESTED", "ERROR"])
|
|
100
|
+
};
|
|
101
|
+
default:
|
|
102
|
+
{
|
|
103
|
+
return {
|
|
104
|
+
validation: addressValidation,
|
|
105
|
+
validationType: "ERROR"
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
export { addressFactory, addressValidationFactory };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { faker } from '@faker-js/faker';
|
|
2
|
+
import { SE } from '@shipengine/react-api';
|
|
3
|
+
import { Factory } from 'fishery';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @category Factories
|
|
7
|
+
*/
|
|
8
|
+
const moneyFactory = Factory.define(({
|
|
9
|
+
transientParams
|
|
10
|
+
}) => ({
|
|
11
|
+
amount: faker.datatype.number({
|
|
12
|
+
max: 1000,
|
|
13
|
+
min: 5,
|
|
14
|
+
precision: 0.01
|
|
15
|
+
}),
|
|
16
|
+
currency: (transientParams === null || transientParams === void 0 ? void 0 : transientParams.isInternational) ? faker.helpers.arrayElement(Object.values(SE.Currency)) : SE.Currency.USD
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
export { moneyFactory };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { faker } from '@faker-js/faker';
|
|
2
|
+
import { Factory } from 'fishery';
|
|
3
|
+
|
|
4
|
+
const randomOrderSourceCode = () => faker.helpers.arrayElement(["3dcart", "abantecart", "acumatica", "acumatica_v2", "alibaba", "amazon", "amazon_au", "amazon_ca", "amazon_de", "amazon_es", "amazon_fr", "amazon_it", "amazon_jp", "amazon_mx", "amazon_uk", "americommerce", "auctane-orders", "back-market", "bandcamp", "big_cartel", "bigcommerce", "bigcommerce_v3", "bigcommerce_v2", "bizelo", "bluepark", "bonanza", "brightpearl", "cdiscount", "celery", "channeladvisor", "channelsale", "choxi", "cin7", "commerceinterface", "corecommerce", "coupang", "cratejoy", "cs-cart", "custom_store", "dear_systems", "dummy-marketplace", "ebay", "ebay_au", "ebay_ca", "ebay_uk", "ebay_fr", "ebay_v2", "ecwid", "ecwid_v1", "edesk", "ekm", "etsy", "facebook", "fnac", "foxycart", "freestyle", "fullscreen_direct", "geekseller", "goodsie", "google", "google_checkout", "gorgias", "groopdealz", "groupon_goods", "handshake", "hatch", "highwire", "homeroots", "houzz", "idealo_de", "inksoft", "jane", "jet", "kaufland", "labelapi", "lemonstand", "lengow", "liftoff", "linnworks", "listingmirror", "magento", "zoey", "magento_go", "memberly", "mercado_libre", "mijoshop", "best_buy_ca", "catch", "darty", "fanatics", "kohls", "kroger", "urbn", "miva_merchant", "morecommerce", "mozu", "neto", "newegg", "newegg_business", "newegg_ca", "notonthehighstreet", "oauth_dummy", "odbc", "onbuy", "opencart", "order_time", "ordersource_api", "oscommerce", "overstock", "oxatis", "paypal", "paypal_v2", "payvment", "penny", "prestashop", "rakuten", "best_buy", "rakuten-fr", "rate_browser", "redditgifts", "reverb", "revolutionparts", "salesforce_commerce_cloud", "salesforce_core", "sap_anywhere", "scout_topshelf", "sears", "securestore", "sellbrite", "selleractive", "shipengine_api", "shipengine_merchant", "shipstation", "shop_premium_outlets", "shopify", "shoppingfeed", "shopware_de", "simplepart", "skuvault", "soldsie", "sophio", "spark_shipping", "spree", "spreesy", "square", "squarespace", "stitch_labs", "storenvy", "stripe", "suredone", "tanga", "tophatter", "trade_me", "tradegecko", "ultracart", "unbranded_ecommerce_store", "unleashed", "vault", "visualsoft", "volo", "volusion", "vtex", "walmart", "walmart_ca", "wayfair", "webflow", "weebly", "wish", "wix", "woocommerce", "woocommerce_v2", "woot", "x-cart", "yahoo", "sec_yumbles", "zen_cart", "zonos"]);
|
|
5
|
+
/**
|
|
6
|
+
* @category Factories
|
|
7
|
+
*/
|
|
8
|
+
const orderSourceRefreshInfoFactory = Factory.define(() => {
|
|
9
|
+
const lastRefreshAttempt = faker.date.recent();
|
|
10
|
+
return {
|
|
11
|
+
lastRefreshAttempt: lastRefreshAttempt.toISOString(),
|
|
12
|
+
refreshDate: faker.date.recent(1, lastRefreshAttempt).toISOString(),
|
|
13
|
+
status: faker.helpers.arrayElement(["idle", "preparing_update", "updating", "error", "unknown"])
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* @category Factories
|
|
18
|
+
*/
|
|
19
|
+
Factory.define(({
|
|
20
|
+
associations,
|
|
21
|
+
params
|
|
22
|
+
}) => {
|
|
23
|
+
var _a;
|
|
24
|
+
return {
|
|
25
|
+
active: faker.datatype.boolean(),
|
|
26
|
+
orderSourceCode: randomOrderSourceCode(),
|
|
27
|
+
orderSourceFriendlyName: faker.company.name(),
|
|
28
|
+
orderSourceId: faker.datatype.uuid(),
|
|
29
|
+
orderSourceNickname: faker.random.words(),
|
|
30
|
+
refreshInfo: (_a = associations.refreshInfo) !== null && _a !== void 0 ? _a : orderSourceRefreshInfoFactory.build(params.refreshInfo)
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
export { orderSourceRefreshInfoFactory, randomOrderSourceCode };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { faker } from '@faker-js/faker';
|
|
2
|
+
import { Factory } from 'fishery';
|
|
3
|
+
import { randomShipengineSlug } from '../utils.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*
|
|
8
|
+
* # Package Factory
|
|
9
|
+
*
|
|
10
|
+
* @category Factories
|
|
11
|
+
*/
|
|
12
|
+
const packageFactory = Factory.define(({
|
|
13
|
+
transientParams
|
|
14
|
+
}) => ({
|
|
15
|
+
description: faker.lorem.sentence(),
|
|
16
|
+
dimensions: (transientParams === null || transientParams === void 0 ? void 0 : transientParams.noDimensions) ? undefined : {
|
|
17
|
+
height: faker.datatype.number({
|
|
18
|
+
max: 50,
|
|
19
|
+
min: 1,
|
|
20
|
+
precision: 0.1
|
|
21
|
+
}),
|
|
22
|
+
length: faker.datatype.number({
|
|
23
|
+
max: 50,
|
|
24
|
+
min: 1,
|
|
25
|
+
precision: 0.1
|
|
26
|
+
}),
|
|
27
|
+
unit: faker.helpers.arrayElement(["inch", "centimeter"]),
|
|
28
|
+
width: faker.datatype.number({
|
|
29
|
+
max: 50,
|
|
30
|
+
min: 1,
|
|
31
|
+
precision: 0.1
|
|
32
|
+
})
|
|
33
|
+
},
|
|
34
|
+
name: faker.random.words(),
|
|
35
|
+
packageCode: randomShipengineSlug(2),
|
|
36
|
+
packageId: randomShipengineSlug(3)
|
|
37
|
+
}));
|
|
38
|
+
|
|
39
|
+
export { packageFactory };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { faker } from '@faker-js/faker';
|
|
2
|
+
import { Factory } from 'fishery';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @category Factories
|
|
6
|
+
*/
|
|
7
|
+
const downloadFactory = Factory.define(() => ({
|
|
8
|
+
href: faker.internet.url(),
|
|
9
|
+
pdf: faker.internet.url(),
|
|
10
|
+
png: faker.internet.url(),
|
|
11
|
+
zpl: faker.internet.url()
|
|
12
|
+
}));
|
|
13
|
+
/**
|
|
14
|
+
* @category Factories
|
|
15
|
+
*/
|
|
16
|
+
Factory.define(() => ({
|
|
17
|
+
href: faker.internet.url(),
|
|
18
|
+
type: faker.word.noun()
|
|
19
|
+
}));
|
|
20
|
+
|
|
21
|
+
export { downloadFactory };
|