@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.
Files changed (241) hide show
  1. package/dist/cjs/assets/xcover/logo.svg.cjs +44 -0
  2. package/dist/cjs/components/field/rate-select/rate-card/rate-attribute-item/index.cjs +7 -0
  3. package/dist/cjs/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.cjs +56 -0
  4. package/dist/cjs/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.styles.cjs +27 -0
  5. package/dist/cjs/components/field/rate-select/rate-card/rate-card.cjs +53 -42
  6. package/dist/cjs/components/field/rate-select/rate-card/rate-card.styles.cjs +4 -0
  7. package/dist/cjs/components/field/rate-select/rate-select.cjs +80 -49
  8. package/dist/cjs/components/forms/register-funding-source-insurance-form/register-funding-source-insurance-form.cjs +1 -1
  9. package/dist/cjs/components/forms/warehouse-form/warehouse-form.cjs +10 -1
  10. package/dist/cjs/components/service-card/service-card.cjs +3 -2
  11. package/dist/cjs/components/service-card/service-card.styles.cjs +4 -2
  12. package/dist/cjs/data/insurance-provider-metadatas.json.cjs +10 -4
  13. package/dist/cjs/elements/customs-form/customs-form-element.cjs +294 -0
  14. package/dist/cjs/elements/customs-form/customs-form-element.stories.cjs +243 -0
  15. package/dist/cjs/elements/customs-form/customs-form-schema.cjs +59 -0
  16. package/dist/cjs/elements/customs-form/customs-form-types.cjs +63 -0
  17. package/dist/cjs/elements/customs-form/index.cjs +10 -0
  18. package/dist/cjs/elements/index.cjs +5 -0
  19. package/dist/cjs/elements/labels-grid/hooks/use-labels-grid.cjs +2 -2
  20. package/dist/cjs/elements/labels-grid/labels-grid.cjs +29 -9
  21. package/dist/cjs/elements/labels-grid/labels-grid.styles.cjs +5 -0
  22. package/dist/cjs/elements/manage-carriers/manage-carriers.cjs +1 -1
  23. package/dist/cjs/elements/purchase-label/components/customs-forms/tax-ids/tax-ids.cjs +1 -1
  24. package/dist/cjs/elements/purchase-label/components/index.cjs +2 -0
  25. package/dist/cjs/elements/purchase-label/components/rate-form/rate-view.cjs +3 -5
  26. package/dist/cjs/elements/purchase-label/components/shipment-form/shipment-form.cjs +7 -4
  27. package/dist/cjs/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.cjs +35 -11
  28. package/dist/cjs/elements/purchase-label/hooks/use-insurance-provider-options.cjs +2 -2
  29. package/dist/cjs/elements/shipments-grid/hooks/use-shipments-grid.cjs +2 -2
  30. package/dist/cjs/elements/shipments-grid/shipments-grid.cjs +20 -6
  31. package/dist/cjs/elements/shipments-grid/shipments-grid.styles.cjs +5 -0
  32. package/dist/cjs/factories/shipengine/address.cjs +114 -0
  33. package/dist/cjs/factories/shipengine/money.cjs +21 -0
  34. package/dist/cjs/factories/shipengine/order-source.cjs +37 -0
  35. package/dist/cjs/factories/shipengine/package.cjs +41 -0
  36. package/dist/cjs/factories/shipengine/resource.cjs +23 -0
  37. package/dist/cjs/factories/shipengine/shipment.cjs +176 -0
  38. package/dist/cjs/factories/shipengine/weight.cjs +44 -0
  39. package/dist/cjs/factories/utils.cjs +19 -0
  40. package/dist/cjs/features/manage-carriers/hooks/use-list-funding-source-carriers.cjs +4 -6
  41. package/dist/cjs/features/manage-carriers/manage-carriers.cjs +8 -6
  42. package/dist/cjs/features/manage-warehouses/manage-warehouses.cjs +9 -5
  43. package/dist/cjs/hooks/use-configure-shipment.cjs +55 -14
  44. package/dist/cjs/hooks/use-get-funding-source-insurance-provider.cjs +7 -7
  45. package/dist/cjs/hooks/use-get-service-data.cjs +60 -0
  46. package/dist/cjs/hooks/use-import-sales-order.cjs +45 -20
  47. package/dist/cjs/hooks/use-manage-funding-source-insurance.cjs +15 -23
  48. package/dist/cjs/index.cjs +5 -0
  49. package/dist/cjs/locales/en/common.json.cjs +1 -1
  50. package/dist/cjs/locales/en/list-labels.json.cjs +2 -1
  51. package/dist/cjs/locales/en/list-shipments.json.cjs +1 -1
  52. package/dist/cjs/locales/en/manage-warehouses.json.cjs +2 -0
  53. package/dist/cjs/locales/en/purchase-label.json.cjs +9 -1
  54. package/dist/cjs/package.json.cjs +1 -1
  55. package/dist/cjs/utilities/feature-flags/feature-flags.cjs +3 -1
  56. package/dist/cjs/utilities/shipengine/carrier.cjs +4 -0
  57. package/dist/cjs/utilities/shipengine/index.cjs +3 -0
  58. package/dist/cjs/utilities/shipengine/insurance.cjs +63 -0
  59. package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.cjs +9 -9
  60. package/dist/cjs/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.cjs +1 -1
  61. package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.cjs +3 -2
  62. package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.cjs +8 -6
  63. package/dist/cjs/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.cjs +4 -19
  64. package/dist/esm/assets/xcover/logo.svg.js +23 -0
  65. package/dist/esm/components/field/rate-select/rate-card/rate-attribute-item/index.js +1 -0
  66. package/dist/esm/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.js +54 -0
  67. package/dist/esm/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.styles.js +25 -0
  68. package/dist/esm/components/field/rate-select/rate-card/rate-card.js +53 -42
  69. package/dist/esm/components/field/rate-select/rate-card/rate-card.styles.js +4 -0
  70. package/dist/esm/components/field/rate-select/rate-select.js +80 -49
  71. package/dist/esm/components/forms/register-funding-source-insurance-form/register-funding-source-insurance-form.js +1 -1
  72. package/dist/esm/components/forms/warehouse-form/warehouse-form.js +10 -1
  73. package/dist/esm/components/service-card/service-card.js +3 -2
  74. package/dist/esm/components/service-card/service-card.styles.js +4 -2
  75. package/dist/esm/data/insurance-provider-metadatas.json.js +9 -4
  76. package/dist/esm/elements/customs-form/customs-form-element.js +291 -0
  77. package/dist/esm/elements/customs-form/customs-form-element.stories.js +232 -0
  78. package/dist/esm/elements/customs-form/customs-form-schema.js +56 -0
  79. package/dist/esm/elements/customs-form/customs-form-types.js +60 -0
  80. package/dist/esm/elements/customs-form/index.js +3 -0
  81. package/dist/esm/elements/index.js +3 -0
  82. package/dist/esm/elements/labels-grid/hooks/use-labels-grid.js +2 -2
  83. package/dist/esm/elements/labels-grid/labels-grid.js +30 -10
  84. package/dist/esm/elements/labels-grid/labels-grid.styles.js +5 -0
  85. package/dist/esm/elements/manage-carriers/manage-carriers.js +1 -1
  86. package/dist/esm/elements/purchase-label/components/customs-forms/tax-ids/tax-ids.js +1 -1
  87. package/dist/esm/elements/purchase-label/components/index.js +1 -0
  88. package/dist/esm/elements/purchase-label/components/rate-form/rate-view.js +3 -5
  89. package/dist/esm/elements/purchase-label/components/shipment-form/shipment-form.js +7 -4
  90. package/dist/esm/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.js +35 -11
  91. package/dist/esm/elements/purchase-label/hooks/use-insurance-provider-options.js +2 -2
  92. package/dist/esm/elements/shipments-grid/hooks/use-shipments-grid.js +2 -2
  93. package/dist/esm/elements/shipments-grid/shipments-grid.js +21 -7
  94. package/dist/esm/elements/shipments-grid/shipments-grid.styles.js +5 -0
  95. package/dist/esm/elements-provider/elements-context-provider.js +1 -1
  96. package/dist/esm/factories/shipengine/address.js +111 -0
  97. package/dist/esm/factories/shipengine/money.js +19 -0
  98. package/dist/esm/factories/shipengine/order-source.js +34 -0
  99. package/dist/esm/factories/shipengine/package.js +39 -0
  100. package/dist/esm/factories/shipengine/resource.js +21 -0
  101. package/dist/esm/factories/shipengine/shipment.js +168 -0
  102. package/dist/esm/factories/shipengine/weight.js +40 -0
  103. package/dist/esm/factories/utils.js +15 -0
  104. package/dist/esm/features/manage-carriers/hooks/use-list-funding-source-carriers.js +5 -7
  105. package/dist/esm/features/manage-carriers/manage-carriers.js +8 -6
  106. package/dist/esm/features/manage-warehouses/manage-warehouses.js +9 -5
  107. package/dist/esm/hooks/use-configure-shipment.js +55 -14
  108. package/dist/esm/hooks/use-get-funding-source-insurance-provider.js +7 -7
  109. package/dist/esm/hooks/use-get-service-data.js +58 -0
  110. package/dist/esm/hooks/use-import-sales-order.js +47 -22
  111. package/dist/esm/hooks/use-manage-funding-source-insurance.js +15 -23
  112. package/dist/esm/index.js +3 -0
  113. package/dist/esm/locales/en/common.json.js +1 -1
  114. package/dist/esm/locales/en/list-labels.json.js +2 -1
  115. package/dist/esm/locales/en/list-shipments.json.js +1 -1
  116. package/dist/esm/locales/en/manage-warehouses.json.js +2 -0
  117. package/dist/esm/locales/en/purchase-label.json.js +9 -1
  118. package/dist/esm/package.json.js +1 -1
  119. package/dist/esm/utilities/feature-flags/feature-flags.js +3 -1
  120. package/dist/esm/utilities/shipengine/carrier.js +4 -0
  121. package/dist/esm/utilities/shipengine/index.js +1 -1
  122. package/dist/esm/utilities/shipengine/insurance.js +61 -1
  123. package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.js +9 -9
  124. package/dist/esm/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.js +1 -1
  125. package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.js +3 -2
  126. package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.js +8 -6
  127. package/dist/esm/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.js +5 -20
  128. package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/index.d.ts +2 -0
  129. package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/index.d.ts.map +1 -0
  130. package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.d.ts +8 -0
  131. package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.d.ts.map +1 -0
  132. package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.styles.d.ts +22 -0
  133. package/dist/types/components/field/rate-select/rate-card/rate-attribute-item/rate-attribute-item.styles.d.ts.map +1 -0
  134. package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts +3 -2
  135. package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts.map +1 -1
  136. package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts +4 -0
  137. package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts.map +1 -1
  138. package/dist/types/components/field/rate-select/rate-select.d.ts.map +1 -1
  139. package/dist/types/components/forms/register-funding-source-insurance-form/register-funding-source-insurance-form.d.ts.map +1 -1
  140. package/dist/types/components/forms/warehouse-form/warehouse-form.d.ts.map +1 -1
  141. package/dist/types/components/service-card/service-card.d.ts +2 -1
  142. package/dist/types/components/service-card/service-card.d.ts.map +1 -1
  143. package/dist/types/components/service-card/service-card.styles.d.ts +2 -1
  144. package/dist/types/components/service-card/service-card.styles.d.ts.map +1 -1
  145. package/dist/types/elements/customs-form/customs-form-element.d.ts +1222 -0
  146. package/dist/types/elements/customs-form/customs-form-element.d.ts.map +1 -0
  147. package/dist/types/elements/customs-form/customs-form-element.stories.d.ts +12 -0
  148. package/dist/types/elements/customs-form/customs-form-element.stories.d.ts.map +1 -0
  149. package/dist/types/elements/customs-form/customs-form-schema.d.ts +398 -0
  150. package/dist/types/elements/customs-form/customs-form-schema.d.ts.map +1 -0
  151. package/dist/types/elements/customs-form/customs-form-types.d.ts +139 -0
  152. package/dist/types/elements/customs-form/customs-form-types.d.ts.map +1 -0
  153. package/dist/types/elements/customs-form/index.d.ts +4 -0
  154. package/dist/types/elements/customs-form/index.d.ts.map +1 -0
  155. package/dist/types/elements/index.d.ts +1 -0
  156. package/dist/types/elements/index.d.ts.map +1 -1
  157. package/dist/types/elements/labels-grid/labels-grid.d.ts +14 -3
  158. package/dist/types/elements/labels-grid/labels-grid.d.ts.map +1 -1
  159. package/dist/types/elements/labels-grid/labels-grid.styles.d.ts +5 -0
  160. package/dist/types/elements/labels-grid/labels-grid.styles.d.ts.map +1 -1
  161. package/dist/types/elements/manage-carriers/manage-carriers.d.ts +14 -3
  162. package/dist/types/elements/manage-carriers/manage-carriers.d.ts.map +1 -1
  163. package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts +14 -3
  164. package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts.map +1 -1
  165. package/dist/types/elements/manage-funding/manage-funding-element.d.ts +14 -3
  166. package/dist/types/elements/manage-funding/manage-funding-element.d.ts.map +1 -1
  167. package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts +14 -3
  168. package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts.map +1 -1
  169. package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts +14 -3
  170. package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts.map +1 -1
  171. package/dist/types/elements/purchase-label/components/index.d.ts +1 -0
  172. package/dist/types/elements/purchase-label/components/index.d.ts.map +1 -1
  173. package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts +1 -1
  174. package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts.map +1 -1
  175. package/dist/types/elements/purchase-label/components/shipment-form/shipment-form.d.ts.map +1 -1
  176. package/dist/types/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.d.ts +6 -1
  177. package/dist/types/elements/purchase-label/hooks/use-filter-visible-rate-options/use-filter-visible-rate-options.d.ts.map +1 -1
  178. package/dist/types/elements/purchase-label/hooks/use-insurance-provider-options.d.ts.map +1 -1
  179. package/dist/types/elements/purchase-label/purchase-label.d.ts +14 -3
  180. package/dist/types/elements/purchase-label/purchase-label.d.ts.map +1 -1
  181. package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts +14 -3
  182. package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts.map +1 -1
  183. package/dist/types/elements/shipment-summary/shipment-summary.d.ts +14 -3
  184. package/dist/types/elements/shipment-summary/shipment-summary.d.ts.map +1 -1
  185. package/dist/types/elements/shipments-grid/shipments-grid.d.ts +14 -3
  186. package/dist/types/elements/shipments-grid/shipments-grid.d.ts.map +1 -1
  187. package/dist/types/elements/shipments-grid/shipments-grid.styles.d.ts +5 -0
  188. package/dist/types/elements/shipments-grid/shipments-grid.styles.d.ts.map +1 -1
  189. package/dist/types/elements/theme-creator/theme-creator.d.ts +14 -3
  190. package/dist/types/elements/theme-creator/theme-creator.d.ts.map +1 -1
  191. package/dist/types/elements/transaction-history/transaction-history-element.d.ts +14 -3
  192. package/dist/types/elements/transaction-history/transaction-history-element.d.ts.map +1 -1
  193. package/dist/types/elements/unit-settings/unit-settings-element.d.ts +14 -3
  194. package/dist/types/elements/unit-settings/unit-settings-element.d.ts.map +1 -1
  195. package/dist/types/elements/vat-settings/vat-settings-element.d.ts +14 -3
  196. package/dist/types/elements/vat-settings/vat-settings-element.d.ts.map +1 -1
  197. package/dist/types/elements/void-label/void-label.d.ts +14 -3
  198. package/dist/types/elements/void-label/void-label.d.ts.map +1 -1
  199. package/dist/types/features/manage-carriers/hooks/use-list-funding-source-carriers.d.ts.map +1 -1
  200. package/dist/types/features/manage-carriers/manage-carriers.d.ts.map +1 -1
  201. package/dist/types/features/manage-warehouses/manage-warehouses.d.ts.map +1 -1
  202. package/dist/types/hooks/use-configure-shipment.d.ts.map +1 -1
  203. package/dist/types/hooks/use-get-funding-source-insurance-provider.d.ts.map +1 -1
  204. package/dist/types/hooks/use-get-service-data.d.ts +14 -0
  205. package/dist/types/hooks/use-get-service-data.d.ts.map +1 -0
  206. package/dist/types/hooks/use-import-sales-order.d.ts +20 -1
  207. package/dist/types/hooks/use-import-sales-order.d.ts.map +1 -1
  208. package/dist/types/hooks/use-manage-funding-source-insurance.d.ts +3 -4
  209. package/dist/types/hooks/use-manage-funding-source-insurance.d.ts.map +1 -1
  210. package/dist/types/locales/en/index.d.ts +14 -3
  211. package/dist/types/locales/en/index.d.ts.map +1 -1
  212. package/dist/types/types/insurance-metadata.d.ts +1 -1
  213. package/dist/types/types/insurance-metadata.d.ts.map +1 -1
  214. package/dist/types/types/rates.d.ts +1 -0
  215. package/dist/types/types/rates.d.ts.map +1 -1
  216. package/dist/types/utilities/feature-flags/feature-flags.d.ts.map +1 -1
  217. package/dist/types/utilities/feature-flags/types.d.ts +8 -0
  218. package/dist/types/utilities/feature-flags/types.d.ts.map +1 -1
  219. package/dist/types/utilities/shipengine/carrier.d.ts.map +1 -1
  220. package/dist/types/utilities/shipengine/insurance.d.ts +31 -0
  221. package/dist/types/utilities/shipengine/insurance.d.ts.map +1 -1
  222. package/dist/types/workflows/account-settings/account-settings.d.ts +14 -3
  223. package/dist/types/workflows/account-settings/account-settings.d.ts.map +1 -1
  224. package/dist/types/workflows/carrier-services/carrier-services.d.ts +14 -3
  225. package/dist/types/workflows/carrier-services/carrier-services.d.ts.map +1 -1
  226. package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts +14 -3
  227. package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts.map +1 -1
  228. package/dist/types/workflows/label-workflow/label-workflow.d.ts +14 -3
  229. package/dist/types/workflows/label-workflow/label-workflow.d.ts.map +1 -1
  230. package/dist/types/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.d.ts.map +1 -1
  231. package/dist/types/workflows/onboarding/components/ship-from-address-step/ship-from-address-step.d.ts.map +1 -1
  232. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts.map +1 -1
  233. package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts +1 -5
  234. package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts.map +1 -1
  235. package/dist/types/workflows/onboarding/onboarding.d.ts +14 -3
  236. package/dist/types/workflows/onboarding/onboarding.d.ts.map +1 -1
  237. package/package.json +3 -3
  238. package/dist/cjs/hooks/use-get-service-name.cjs +0 -22
  239. package/dist/esm/hooks/use-get-service-name.js +0 -20
  240. package/dist/types/hooks/use-get-service-name.d.ts +0 -5
  241. package/dist/types/hooks/use-get-service-name.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var react = require('@emotion/react');
4
- var useGetServiceName = require('../../../hooks/use-get-service-name.cjs');
4
+ var useGetServiceData = require('../../../hooks/use-get-service-data.cjs');
5
5
  var reactApi = require('@shipengine/react-api');
6
6
  var files = require('../../../utilities/files.cjs');
7
7
  var styles = require('../../../utilities/styles.cjs');
@@ -42,7 +42,7 @@ const useLabelsGrid = ({
42
42
  const theme = react.useTheme();
43
43
  const {
44
44
  getServiceName
45
- } = useGetServiceName.useGetServiceName();
45
+ } = useGetServiceData.useGetServiceData();
46
46
  const {
47
47
  page,
48
48
  pageSize,
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('@emotion/react/jsx-runtime');
4
+ var useGetServiceData = require('../../hooks/use-get-service-data.cjs');
4
5
  var useSortableQuery = require('../../hooks/use-sortable-query.cjs');
5
6
  var giger = require('@shipengine/giger');
6
7
  var formatString = require('../../utilities/formatString.cjs');
@@ -21,6 +22,7 @@ var elementsContextProvider = require('../../elements-provider/elements-context-
21
22
  var spacer = require('../../components/spacer/spacer.cjs');
22
23
  var poweredByShipengine = require('../../components/powered-by-shipengine/powered-by-shipengine.cjs');
23
24
  var errorFallback = require('../../components/error-fallback/error-fallback.cjs');
25
+ var carrierIcon = require('../../components/carrier-icon/carrier-icon.cjs');
24
26
 
25
27
  const Component = ({
26
28
  labelStatus,
@@ -106,6 +108,10 @@ const Component = ({
106
108
  sortDir: sortState.dir,
107
109
  columns: columnsArray
108
110
  });
111
+ const {
112
+ getServiceInfo,
113
+ isLoadingCarriers
114
+ } = useGetServiceData.useGetServiceData();
109
115
  React.useEffect(() => {
110
116
  if (prevStatus.current !== labelStatus) {
111
117
  pageConfig.pagerProps.resetCurrentPage();
@@ -292,14 +298,22 @@ const Component = ({
292
298
  }
293
299
  },
294
300
  shippingService: {
295
- headerContent: t("list-labels:headers.shipping"),
301
+ headerContent: t("list-labels:headers.service"),
296
302
  renderCellContent: label => {
303
+ const serviceInfo = getServiceInfo(label);
297
304
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
298
- children: [jsxRuntime.jsx(giger.Typography, {
299
- component: "p",
300
- css: labelsGrid_styles.styles.tableParagraph,
301
- variant: "body2",
302
- children: label.serviceName || label.serviceCode
305
+ children: [isLoadingCarriers ? jsxRuntime.jsx(giger.Skeleton, {}) : jsxRuntime.jsxs("div", {
306
+ css: labelsGrid_styles.styles.serviceCell,
307
+ children: [serviceInfo.hasCarrierIcon && serviceInfo.carrierCode && jsxRuntime.jsx(carrierIcon.CarrierIcon, {
308
+ carrierCode: serviceInfo.carrierCode,
309
+ carrierName: serviceInfo.serviceName || serviceInfo.carrierCode,
310
+ size: giger.IconSize.SIZE_SMALL
311
+ }), jsxRuntime.jsx(giger.Typography, {
312
+ component: "p",
313
+ css: labelsGrid_styles.styles.tableParagraph,
314
+ variant: "body2",
315
+ children: serviceInfo.serviceName || t("list-labels:none")
316
+ })]
303
317
  }), label.trackable && jsxRuntime.jsx(giger.Next.Link, {
304
318
  bold: false,
305
319
  href: label.trackingUrl,
@@ -352,17 +366,23 @@ const Component = ({
352
366
  }
353
367
  }
354
368
  });
369
+ const labelExpired = label => {
370
+ const ninetyDaysAgo = new Date();
371
+ ninetyDaysAgo.setDate(ninetyDaysAgo.getDate() - 90);
372
+ return new Date(label.createdAt) < ninetyDaysAgo;
373
+ };
355
374
  // Actual actions are only allowed for completed labels
356
375
  if ((features === null || features === void 0 ? void 0 : features.showActions) && labels.some(label => label.status === "completed")) {
357
376
  cols.push({
358
377
  headerContent: "",
359
378
  renderCellContent: label => {
360
379
  var _a, _b;
380
+ const isLabelExpired = labelExpired(label);
361
381
  const isLabelDelivered = label.trackingStatus === "delivered";
362
- const isReprintAllowed = !!((_a = label.labelDownload) === null || _a === void 0 ? void 0 : _a.href) && label.status === "completed";
363
382
  const isVoidAllowed = !!onClickVoidLabel && label.status === "completed";
364
- const isPrintFormsAllowed = !!((_b = label.formDownload) === null || _b === void 0 ? void 0 : _b.href) && label.status === "completed";
365
383
  const isViewDetailsAllowed = !!onClickViewDetails;
384
+ const isReprintAllowed = !!((_a = label.labelDownload) === null || _a === void 0 ? void 0 : _a.href) && label.status === "completed" && !isLabelExpired;
385
+ const isPrintFormsAllowed = !!((_b = label.formDownload) === null || _b === void 0 ? void 0 : _b.href) && label.status === "completed" && !isLabelExpired;
366
386
  const allowActionsMenu = isReprintAllowed || isVoidAllowed || isPrintFormsAllowed || isViewDetailsAllowed;
367
387
  if (isLabelDelivered || !allowActionsMenu) {
368
388
  return null;
@@ -391,7 +411,7 @@ const Component = ({
391
411
  });
392
412
  }
393
413
  return cols;
394
- }, [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]);
414
+ }, [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]);
395
415
  const emptyContentComponent = React.useMemo(() => {
396
416
  if (isLoading) {
397
417
  return undefined;
@@ -8,6 +8,11 @@ const styles = styles$1.createStyles({
8
8
  }, styles$1.scopeTheme(theme).getComponentOverride("Table")),
9
9
  tableParagraph: {
10
10
  margin: 0
11
+ },
12
+ serviceCell: {
13
+ display: "flex",
14
+ alignItems: "center",
15
+ gap: "8px"
11
16
  }
12
17
  });
13
18
 
@@ -6,8 +6,8 @@ var reactApi = require('@shipengine/react-api');
6
6
  var React = require('react');
7
7
  var createElement = require('../../create-element/create-element.cjs');
8
8
  var manageCarriers = require('../../features/manage-carriers/manage-carriers.cjs');
9
- var index = require('../../locales/en/index.cjs');
10
9
  var errorFallback = require('../../components/error-fallback/error-fallback.cjs');
10
+ var index = require('../../locales/en/index.cjs');
11
11
 
12
12
  /**
13
13
  * # Manage-Carriers Element
@@ -129,7 +129,7 @@ const TaxIds = ({
129
129
  })]
130
130
  }), jsxRuntime.jsxs(giger.Grid, {
131
131
  noPadding: true,
132
- children: [((_a = shipment.taxIdentifiers) === null || _a === void 0 ? void 0 : _a.length) && jsxRuntime.jsx(giger.GridChild, {
132
+ children: [!!((_a = shipment.taxIdentifiers) === null || _a === void 0 ? void 0 : _a.length) && jsxRuntime.jsx(giger.GridChild, {
133
133
  colSpan: 12,
134
134
  children: jsxRuntime.jsx(taxIdList.TaxIdList, {
135
135
  handleActionsClick: handleActionsClick,
@@ -2,8 +2,10 @@
2
2
 
3
3
  var rateForm = require('./rate-form/rate-form.cjs');
4
4
  var shipmentForm = require('./shipment-form/shipment-form.cjs');
5
+ var customsForms = require('./customs-forms/customs-forms.cjs');
5
6
 
6
7
 
7
8
 
8
9
  exports.RateForm = rateForm.RateForm;
9
10
  exports.ShipmentForm = shipmentForm.ShipmentForm;
11
+ exports.CustomsForms = customsForms.CustomsForms;
@@ -34,7 +34,6 @@ const RateView = ({
34
34
  rateOptions,
35
35
  rates,
36
36
  salesOrder: salesOrder$1,
37
- selectedRate,
38
37
  shipment,
39
38
  showVatFeatures
40
39
  }) => {
@@ -78,9 +77,8 @@ const RateView = ({
78
77
  }, [features === null || features === void 0 ? void 0 : features.enablePudoUI, pudoRateOptions, rateOptions]);
79
78
  const {
80
79
  collapsedRateOptionList,
81
- COLLAPSED_RATE_VIEW_LIMIT,
82
80
  filterVisibleRateOptions
83
- } = useFilterVisibleRateOptions.useFilterVisibleRateOptions(expandedRateOptionList, selectedRate, preferredServiceCodes);
81
+ } = useFilterVisibleRateOptions.useFilterVisibleRateOptions(expandedRateOptionList, features);
84
82
  const handleShowMoreRates = React.useCallback(() => {
85
83
  var _a;
86
84
  setShowHiddenRates === null || setShowHiddenRates === void 0 ? void 0 : setShowHiddenRates(!showHiddenRates);
@@ -199,8 +197,8 @@ const RateView = ({
199
197
  onClick: onSelectRate,
200
198
  onPaperlessAcknowledgementChange: onPaperlessAcknowledgementChange,
201
199
  onSelectServicePoint: onSelectServicePoint,
202
- options: showHiddenRates ? expandedRateOptionList : collapsedRateOptionList
203
- }, rateSelectCommonProps)), expandedRateOptionList.length > COLLAPSED_RATE_VIEW_LIMIT && jsxRuntime.jsx(linkAction.LinkAction, {
200
+ options: showHiddenRates || !collapsedRateOptionList.length ? expandedRateOptionList : collapsedRateOptionList
201
+ }, rateSelectCommonProps)), expandedRateOptionList.length > collapsedRateOptionList.length && !!collapsedRateOptionList.length && jsxRuntime.jsx(linkAction.LinkAction, {
204
202
  css: rateForm_styles.styles.showMoreOrLessRatesButton,
205
203
  icon: showHiddenRates ? "chevronTop" : "chevronBottom",
206
204
  iconPlacement: "right",
@@ -106,7 +106,8 @@ const ShipmentForm = ({
106
106
  const {
107
107
  locale: defaultLocale,
108
108
  globalFeatures: {
109
- enableParcelGuard
109
+ enableParcelGuard,
110
+ enableXCover
110
111
  }
111
112
  } = elementsContextProvider.useElements();
112
113
  const {
@@ -516,13 +517,15 @@ const ShipmentForm = ({
516
517
  React.useEffect(() => {
517
518
  hasShipFromAddressErrors && toggleIsEditShipFromAddressFormOpen();
518
519
  }, [hasShipFromAddressErrors, toggleIsEditShipFromAddressFormOpen]);
520
+ const warehouseToEdit = React.useMemo(() => warehouses$1 === null || warehouses$1 === void 0 ? void 0 : warehouses$1.find(w => w.warehouseId === editShipFromAddressId), [editShipFromAddressId, warehouses$1]);
519
521
  const [editWarehouseForm, isEditWarehouseFormOpen, toggleIsEditWarehouseFormOpen] = useNestedForm.useNestedForm(warehouseForm.WarehouseForm, {
520
522
  formId: "edit-warehouse-form",
521
523
  onSubmit: payload => _tslib.__awaiter(void 0, void 0, void 0, function* () {
522
524
  editShipFromAddressId && (yield handleSubmitEditWarehouse(payload, editShipFromAddressId));
523
525
  }),
524
526
  submitButtonTitle: t("actions.save"),
525
- warehouse: warehouses$1 === null || warehouses$1 === void 0 ? void 0 : warehouses$1.find(w => w.warehouseId === editShipFromAddressId)
527
+ warehouse: warehouseToEdit,
528
+ shouldForceDefault: warehouseToEdit === null || warehouseToEdit === void 0 ? void 0 : warehouseToEdit.isDefault
526
529
  });
527
530
  const getFundingSourceInsuranceProviderKey = React.useCallback(provider => {
528
531
  if (provider === "parcelguard") {
@@ -534,7 +537,7 @@ const ShipmentForm = ({
534
537
  }, []);
535
538
  const insuranceProviderKey = React.useMemo(() => {
536
539
  var _a, _b, _c;
537
- if (enableParcelGuard && !hasInsuranceToRegister) {
540
+ if ((enableParcelGuard || enableXCover) && !hasInsuranceToRegister) {
538
541
  const provider = (_a = insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles[0]) === null || _a === void 0 ? void 0 : _a.provider;
539
542
  const fundingSourceProviderKey = getFundingSourceInsuranceProviderKey(provider);
540
543
  if (fundingSourceProviderKey) {
@@ -542,7 +545,7 @@ const ShipmentForm = ({
542
545
  }
543
546
  }
544
547
  return (_c = (_b = insuranceProviderOptions[0]) === null || _b === void 0 ? void 0 : _b.value.toUpperCase()) !== null && _c !== void 0 ? _c : "NONE";
545
- }, [enableParcelGuard, hasInsuranceToRegister, insuranceProviderOptions, insuranceProviderProfiles, getFundingSourceInsuranceProviderKey]);
548
+ }, [enableParcelGuard, enableXCover, hasInsuranceToRegister, insuranceProviderOptions, insuranceProviderProfiles, getFundingSourceInsuranceProviderKey]);
546
549
  const [registerInsuranceForm, isRegisterInsuranceFormOpen, toggleisRegisterInsuranceFormOpen] = useNestedForm.useNestedForm(registerFundingSourceInsuranceForm.RegisterFundingSourceInsuranceForm, {
547
550
  formId: "register-funding-source-insurance-form",
548
551
  insuranceProviderProfile: insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles[0],
@@ -3,24 +3,48 @@
3
3
  var React = require('react');
4
4
 
5
5
  const COLLAPSED_RATE_VIEW_LIMIT = 4;
6
- const filterRateOptions = (rateOptions, selectedRate, preferredServiceCodes) => {
7
- // Show the selected rate
8
- const isSelectedRate = option => !!(selectedRate === null || selectedRate === void 0 ? void 0 : selectedRate.rateId) && option.rateId === selectedRate.rateId;
9
- // Show the rate if it is a preferred service
10
- const isPreferredService = option => !!option.serviceCode && !!(preferredServiceCodes === null || preferredServiceCodes === void 0 ? void 0 : preferredServiceCodes.includes(option.serviceCode));
11
- // Show the first 5 rates in the list
12
- const isWithinRateViewLimit = index => index < COLLAPSED_RATE_VIEW_LIMIT;
13
- return rateOptions.filter((option, index) => isSelectedRate(option) || isPreferredService(option) || isWithinRateViewLimit(index));
6
+ const filterRateOptions = (rateOptions, showMediaMail) => {
7
+ const hasRateAttributes = option => {
8
+ var _a;
9
+ return !!((_a = option.rateAttributes) === null || _a === void 0 ? void 0 : _a.length);
10
+ };
11
+ const isMediaMail = option => option.serviceCode === "usps_media_mail";
12
+ const result = [];
13
+ const ratesWithAttributes = [];
14
+ const ratesWithoutAttributes = [];
15
+ // Classify rates (excluding Media Mail from both categories)
16
+ for (const option of rateOptions) {
17
+ if (!showMediaMail && isMediaMail(option)) {
18
+ continue; // Skip Media Mail entirely - it will only show in "Show more"
19
+ }
20
+ if (hasRateAttributes(option)) {
21
+ ratesWithAttributes.push(option);
22
+ } else {
23
+ ratesWithoutAttributes.push(option);
24
+ }
25
+ }
26
+ // Add up to 3 rates with attributes
27
+ const attributedRatesToShow = ratesWithAttributes.slice(0, 3);
28
+ result.push(...attributedRatesToShow);
29
+ // Fill remaining slots up to COLLAPSED_RATE_VIEW_LIMIT (4) with regular rates
30
+ const remainingSlots = COLLAPSED_RATE_VIEW_LIMIT - result.length;
31
+ const regularRatesToShow = ratesWithoutAttributes.slice(0, remainingSlots);
32
+ result.push(...regularRatesToShow);
33
+ return result;
14
34
  };
15
35
  /**
16
36
  * @internal
17
37
  *
18
38
  * # Filter Visible Rate Options Hook
19
39
  *
40
+ * Filters rate options for the collapsed view, showing up to 4 rates:
41
+ * - Up to 3 rates with attributes (best_value, cheapest, fastest)
42
+ * - Fill remaining slots with regular rates
43
+ * - Media Mail is always excluded from the collapsed view
20
44
  */
21
- const useFilterVisibleRateOptions = (rateOptions, selectedRate, preferredServiceCodes) => {
22
- const collapsedRateOptionList = React.useMemo(() => filterRateOptions(rateOptions, selectedRate, preferredServiceCodes), [rateOptions, selectedRate, preferredServiceCodes]);
23
- const filterVisibleRateOptions = React.useCallback(options => filterRateOptions(options, selectedRate, preferredServiceCodes), [selectedRate, preferredServiceCodes]);
45
+ const useFilterVisibleRateOptions = (rateOptions, features) => {
46
+ const collapsedRateOptionList = React.useMemo(() => filterRateOptions(rateOptions, features === null || features === void 0 ? void 0 : features.showMediaMail), [rateOptions, features]);
47
+ const filterVisibleRateOptions = React.useCallback(options => filterRateOptions(options, features === null || features === void 0 ? void 0 : features.showMediaMail), [features]);
24
48
  return {
25
49
  COLLAPSED_RATE_VIEW_LIMIT,
26
50
  collapsedRateOptionList,
@@ -45,11 +45,11 @@ const useInsuranceProviderOptions = (insuranceAccount, features) => {
45
45
  refetchInsuranceAcceptedTerms
46
46
  } = useGetFundingSourceInsuranceProvider.useGetFundingSourceInsuranceProvider();
47
47
  const insuranceProviderOptions = React.useMemo(() => Object.values(reactApi.SE.InsuranceProviderType).flatMap(v => {
48
- 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)) ? [] : {
48
+ 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)) ? [] : {
49
49
  label: t(`insuranceProviders.${humps__namespace.camelize(v)}`),
50
50
  value: v
51
51
  };
52
- }), [fundingSourceInsuranceProvider, globalFeatures.enableParcelGuard, features, insuranceAccount === null || insuranceAccount === void 0 ? void 0 : insuranceAccount.amount, t]);
52
+ }), [fundingSourceInsuranceProvider, globalFeatures.enableParcelGuard, globalFeatures.enableXCover, features, insuranceAccount === null || insuranceAccount === void 0 ? void 0 : insuranceAccount.amount, t]);
53
53
  return {
54
54
  fundingSourceInsuranceProvider,
55
55
  insuranceProviderOptions,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var useGetServiceName = require('../../../hooks/use-get-service-name.cjs');
3
+ var useGetServiceData = require('../../../hooks/use-get-service-data.cjs');
4
4
  var reactApi = require('@shipengine/react-api');
5
5
  var files = require('../../../utilities/files.cjs');
6
6
  var React = require('react');
@@ -30,7 +30,7 @@ const useShipmentsGrid = ({
30
30
  const initialFilters = getInitialFilters(showShipmentIdFilter, showCreatedDateFilter);
31
31
  const {
32
32
  getServiceName
33
- } = useGetServiceName.useGetServiceName();
33
+ } = useGetServiceData.useGetServiceData();
34
34
  const {
35
35
  page,
36
36
  pageSize,
@@ -2,6 +2,7 @@
2
2
 
3
3
  var _tslib = require('../../_virtual/_tslib.cjs');
4
4
  var jsxRuntime = require('@emotion/react/jsx-runtime');
5
+ var useGetServiceData = require('../../hooks/use-get-service-data.cjs');
5
6
  var useSortableQuery = require('../../hooks/use-sortable-query.cjs');
6
7
  var giger = require('@shipengine/giger');
7
8
  var React = require('react');
@@ -14,6 +15,7 @@ var index = require('../../locales/en/index.cjs');
14
15
  var createElement = require('../../create-element/create-element.cjs');
15
16
  var elementsContextProvider = require('../../elements-provider/elements-context-provider.cjs');
16
17
  var errorState = require('../../components/error-state/error-state.cjs');
18
+ var carrierIcon = require('../../components/carrier-icon/carrier-icon.cjs');
17
19
  var cellFormattedDate = require('../../components/grid-controller/cell-formatted-date.cjs');
18
20
  var sortableHeader = require('../../components/grid-controller/sortable-header/sortable-header.cjs');
19
21
  var gridController = require('../../components/grid-controller/grid-controller.cjs');
@@ -87,6 +89,10 @@ const Component = ({
87
89
  sortBy: sortState.by,
88
90
  sortDir: sortState.dir
89
91
  });
92
+ const {
93
+ getServiceInfo,
94
+ isLoadingCarriers
95
+ } = useGetServiceData.useGetServiceData();
90
96
  const onRowClick = shipment => _tslib.__awaiter(void 0, void 0, void 0, function* () {
91
97
  setActiveShipmentId(shipment.shipmentId);
92
98
  yield onRowClickProp === null || onRowClickProp === void 0 ? void 0 : onRowClickProp(shipment);
@@ -190,13 +196,21 @@ const Component = ({
190
196
  }) : "--";
191
197
  }
192
198
  }, {
193
- headerContent: t("list-shipments:headers.shipping"),
199
+ headerContent: t("list-shipments:headers.service"),
194
200
  renderCellContent: shipment => {
195
- return jsxRuntime.jsx(giger.Typography, {
196
- component: "p",
197
- css: shipmentsGrid_styles.styles.tableParagraph,
198
- variant: "body2",
199
- children: shipment.serviceName || t("list-shipments:none")
201
+ const serviceInfo = getServiceInfo(shipment);
202
+ return isLoadingCarriers ? jsxRuntime.jsx(giger.Skeleton, {}) : jsxRuntime.jsxs("div", {
203
+ css: shipmentsGrid_styles.styles.serviceCell,
204
+ children: [serviceInfo.hasCarrierIcon && serviceInfo.carrierCode && jsxRuntime.jsx(carrierIcon.CarrierIcon, {
205
+ carrierCode: serviceInfo.carrierCode,
206
+ carrierName: serviceInfo.serviceName || serviceInfo.carrierCode,
207
+ size: giger.IconSize.SIZE_SMALL
208
+ }), jsxRuntime.jsx(giger.Typography, {
209
+ component: "p",
210
+ css: shipmentsGrid_styles.styles.tableParagraph,
211
+ variant: "body2",
212
+ children: serviceInfo.serviceName || t("list-shipments:none")
213
+ })]
200
214
  });
201
215
  }
202
216
  }, {
@@ -8,6 +8,11 @@ const styles = styles$1.createStyles({
8
8
  }, styles$1.scopeTheme(theme).getComponentOverride("Table")),
9
9
  tableParagraph: {
10
10
  margin: 0
11
+ },
12
+ serviceCell: {
13
+ display: "flex",
14
+ alignItems: "center",
15
+ gap: "8px"
11
16
  }
12
17
  });
13
18
 
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+
3
+ var faker = require('@faker-js/faker');
4
+ var fishery = require('fishery');
5
+
6
+ /**
7
+ * @category Factories
8
+ */
9
+ const addressFactory = fishery.Factory.define(({
10
+ params,
11
+ transientParams
12
+ }) => {
13
+ var _a, _b, _c, _d;
14
+ const addressLine2 = (_a = params.addressLine2) !== null && _a !== void 0 ? _a : faker.faker.helpers.maybe(() => faker.faker.address.secondaryAddress(), {
15
+ probability: 0.25
16
+ });
17
+ const addressLine3 = (_b = params.addressLine3) !== null && _b !== void 0 ? _b : addressLine2 && faker.faker.helpers.maybe(() => faker.faker.address.secondaryAddress());
18
+ let countryCode = (_c = params.countryCode) !== null && _c !== void 0 ? _c : "US";
19
+ // Random country code could still be US
20
+ while (transientParams.isInternational && countryCode === "US") {
21
+ countryCode = faker.faker.address.countryCode();
22
+ }
23
+ const stateProvince = (_d = params.stateProvince) !== null && _d !== void 0 ? _d : faker.faker.address.stateAbbr();
24
+ return {
25
+ addressLine1: faker.faker.address.streetAddress(),
26
+ addressLine2,
27
+ addressLine3,
28
+ addressResidentialIndicator: faker.faker.helpers.maybe(() => faker.faker.helpers.arrayElement(["yes", "no"])),
29
+ cityLocality: faker.faker.address.city(),
30
+ companyName: faker.faker.helpers.maybe(() => faker.faker.company.name()),
31
+ countryCode,
32
+ name: faker.faker.name.fullName(),
33
+ phone: faker.faker.phone.number(),
34
+ postalCode: faker.faker.address.zipCodeByState(stateProvince),
35
+ stateProvince
36
+ };
37
+ });
38
+ /**
39
+ * @category Factories
40
+ */
41
+ const addressValidationFactory = fishery.Factory.define(({
42
+ associations,
43
+ params
44
+ }) => {
45
+ var _a, _b;
46
+ const status = params.status || faker.faker.helpers.arrayElement(["unverified", "verified", "warning", "error"]);
47
+ return {
48
+ matchedAddress: (_a = associations.matchedAddress) !== null && _a !== void 0 ? _a : faker.faker.helpers.maybe(() => addressFactory.build(), {
49
+ probability: ["verified", "error"].includes(status) ? 0 : 0.8
50
+ }),
51
+ messages: [],
52
+ originalAddress: (_b = associations.originalAddress) !== null && _b !== void 0 ? _b : addressFactory.build(),
53
+ status
54
+ };
55
+ });
56
+ /**
57
+ * Mock the addressValidation object used to hyrdate address valiation feature
58
+ * on the shipment form.
59
+ * @category Factory
60
+ */
61
+ fishery.Factory.define(({
62
+ params
63
+ }) => {
64
+ const addressValidation = addressValidationFactory.build({
65
+ status: params.status
66
+ }, {
67
+ associations: {
68
+ matchedAddress: addressFactory.build()
69
+ }
70
+ });
71
+ if (!addressValidation.matchedAddress) throw new Error("addressPreferenceFactory did not generate a matchedAddress");
72
+ return Object.assign(Object.assign({}, addressValidation), {
73
+ alternative: addressValidation.originalAddress,
74
+ alternativeSource: "originalAddress",
75
+ isModified: true,
76
+ selection: addressValidation.matchedAddress,
77
+ selectionSource: "matchedAddress",
78
+ toggle: () => addressFactory.build()
79
+ });
80
+ });
81
+ /**
82
+ * Mock the addressValidationPreference object used to hyrdate the address valiation feature
83
+ * used for warehouse management and onboarding.
84
+ * @category Factory
85
+ */
86
+ fishery.Factory.define(() => {
87
+ const addressValidation = addressValidationFactory.build();
88
+ const address = addressFactory.build();
89
+ const validationType = faker.faker.helpers.arrayElement(["EXACT", "SOFT", "SUGGESTED", "ERROR"]);
90
+ switch (validationType) {
91
+ case "EXACT":
92
+ case "SOFT":
93
+ return {
94
+ address: address,
95
+ validationType: faker.faker.helpers.arrayElement(["EXACT", "SOFT"])
96
+ };
97
+ case "SUGGESTED":
98
+ case "ERROR":
99
+ return {
100
+ validation: addressValidation,
101
+ validationType: faker.faker.helpers.arrayElement(["SUGGESTED", "ERROR"])
102
+ };
103
+ default:
104
+ {
105
+ return {
106
+ validation: addressValidation,
107
+ validationType: "ERROR"
108
+ };
109
+ }
110
+ }
111
+ });
112
+
113
+ exports.addressFactory = addressFactory;
114
+ exports.addressValidationFactory = addressValidationFactory;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var faker = require('@faker-js/faker');
4
+ var reactApi = require('@shipengine/react-api');
5
+ var fishery = require('fishery');
6
+
7
+ /**
8
+ * @category Factories
9
+ */
10
+ const moneyFactory = fishery.Factory.define(({
11
+ transientParams
12
+ }) => ({
13
+ amount: faker.faker.datatype.number({
14
+ max: 1000,
15
+ min: 5,
16
+ precision: 0.01
17
+ }),
18
+ currency: (transientParams === null || transientParams === void 0 ? void 0 : transientParams.isInternational) ? faker.faker.helpers.arrayElement(Object.values(reactApi.SE.Currency)) : reactApi.SE.Currency.USD
19
+ }));
20
+
21
+ exports.moneyFactory = moneyFactory;
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ var faker = require('@faker-js/faker');
4
+ var fishery = require('fishery');
5
+
6
+ const randomOrderSourceCode = () => faker.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"]);
7
+ /**
8
+ * @category Factories
9
+ */
10
+ const orderSourceRefreshInfoFactory = fishery.Factory.define(() => {
11
+ const lastRefreshAttempt = faker.faker.date.recent();
12
+ return {
13
+ lastRefreshAttempt: lastRefreshAttempt.toISOString(),
14
+ refreshDate: faker.faker.date.recent(1, lastRefreshAttempt).toISOString(),
15
+ status: faker.faker.helpers.arrayElement(["idle", "preparing_update", "updating", "error", "unknown"])
16
+ };
17
+ });
18
+ /**
19
+ * @category Factories
20
+ */
21
+ fishery.Factory.define(({
22
+ associations,
23
+ params
24
+ }) => {
25
+ var _a;
26
+ return {
27
+ active: faker.faker.datatype.boolean(),
28
+ orderSourceCode: randomOrderSourceCode(),
29
+ orderSourceFriendlyName: faker.faker.company.name(),
30
+ orderSourceId: faker.faker.datatype.uuid(),
31
+ orderSourceNickname: faker.faker.random.words(),
32
+ refreshInfo: (_a = associations.refreshInfo) !== null && _a !== void 0 ? _a : orderSourceRefreshInfoFactory.build(params.refreshInfo)
33
+ };
34
+ });
35
+
36
+ exports.orderSourceRefreshInfoFactory = orderSourceRefreshInfoFactory;
37
+ exports.randomOrderSourceCode = randomOrderSourceCode;
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ var faker = require('@faker-js/faker');
4
+ var fishery = require('fishery');
5
+ var utils = require('../utils.cjs');
6
+
7
+ /**
8
+ * @internal
9
+ *
10
+ * # Package Factory
11
+ *
12
+ * @category Factories
13
+ */
14
+ const packageFactory = fishery.Factory.define(({
15
+ transientParams
16
+ }) => ({
17
+ description: faker.faker.lorem.sentence(),
18
+ dimensions: (transientParams === null || transientParams === void 0 ? void 0 : transientParams.noDimensions) ? undefined : {
19
+ height: faker.faker.datatype.number({
20
+ max: 50,
21
+ min: 1,
22
+ precision: 0.1
23
+ }),
24
+ length: faker.faker.datatype.number({
25
+ max: 50,
26
+ min: 1,
27
+ precision: 0.1
28
+ }),
29
+ unit: faker.faker.helpers.arrayElement(["inch", "centimeter"]),
30
+ width: faker.faker.datatype.number({
31
+ max: 50,
32
+ min: 1,
33
+ precision: 0.1
34
+ })
35
+ },
36
+ name: faker.faker.random.words(),
37
+ packageCode: utils.randomShipengineSlug(2),
38
+ packageId: utils.randomShipengineSlug(3)
39
+ }));
40
+
41
+ exports.packageFactory = packageFactory;
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var faker = require('@faker-js/faker');
4
+ var fishery = require('fishery');
5
+
6
+ /**
7
+ * @category Factories
8
+ */
9
+ const downloadFactory = fishery.Factory.define(() => ({
10
+ href: faker.faker.internet.url(),
11
+ pdf: faker.faker.internet.url(),
12
+ png: faker.faker.internet.url(),
13
+ zpl: faker.faker.internet.url()
14
+ }));
15
+ /**
16
+ * @category Factories
17
+ */
18
+ fishery.Factory.define(() => ({
19
+ href: faker.faker.internet.url(),
20
+ type: faker.faker.word.noun()
21
+ }));
22
+
23
+ exports.downloadFactory = downloadFactory;