@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
@@ -0,0 +1,176 @@
1
+ 'use strict';
2
+
3
+ var _tslib = require('../../_virtual/_tslib.cjs');
4
+ var faker = require('@faker-js/faker');
5
+ var reactApi = require('@shipengine/react-api');
6
+ var fishery = require('fishery');
7
+ var utils = require('../utils.cjs');
8
+ var address = require('./address.cjs');
9
+ var money = require('./money.cjs');
10
+ var orderSource = require('./order-source.cjs');
11
+ var _package = require('./package.cjs');
12
+ var resource = require('./resource.cjs');
13
+ var weight = require('./weight.cjs');
14
+
15
+ const randomDeliveryConfirmation = () => faker.faker.helpers.arrayElement(Object.values(reactApi.SE.ConfirmationType));
16
+ const randomInsuranceProvider = (allowNone = true) => {
17
+ const availableProviders = Object.values(reactApi.SE.InsuranceProviderType).filter(p => allowNone ? p : p !== "none");
18
+ return faker.faker.helpers.arrayElement(availableProviders);
19
+ };
20
+ /**
21
+ * @category Factories
22
+ */
23
+ const productFactory = fishery.Factory.define(() => ({
24
+ countryOfOrigin: faker.faker.address.countryCode(),
25
+ description: faker.faker.commerce.productName(),
26
+ harmonizedTariffCode: faker.faker.datatype.string(),
27
+ quantity: faker.faker.datatype.number({
28
+ max: 10,
29
+ min: 1
30
+ }),
31
+ sku: faker.faker.random.numeric(10),
32
+ skuDescription: faker.faker.helpers.maybe(() => faker.faker.lorem.sentence()),
33
+ unitOfMeasure: faker.faker.helpers.maybe(() => faker.faker.word.noun()),
34
+ value: money.moneyFactory.build()
35
+ }));
36
+ /**
37
+ * @category Factories
38
+ */
39
+ const shipmentItemFactory = fishery.Factory.define(({
40
+ params
41
+ }) => ({
42
+ asin: faker.faker.helpers.maybe(() => faker.faker.random.alphaNumeric(10)),
43
+ externalOrderId: faker.faker.random.alphaNumeric(10),
44
+ externalOrderItemId: faker.faker.random.alphaNumeric(10),
45
+ name: faker.faker.commerce.productName(),
46
+ orderSourceCode: orderSource.randomOrderSourceCode(),
47
+ quantity: faker.faker.datatype.number({
48
+ max: 10,
49
+ min: 1
50
+ }),
51
+ salesOrderItemId: params.salesOrderId && faker.faker.random.alphaNumeric(6),
52
+ sku: faker.faker.random.numeric(10)
53
+ }));
54
+ /**
55
+ * @category Factories
56
+ */
57
+ const shipmentPackageFactory = fishery.Factory.define(({
58
+ associations,
59
+ params,
60
+ transientParams
61
+ }) => {
62
+ var _a, _b, _c, _d, _e;
63
+ const _f = _package.packageFactory.build(params),
64
+ pkg = _tslib.__rest(_f, ["name"]);
65
+ const isInsured = utils.tristateValue(true, false, faker.faker.datatype.boolean(), (_b = (_a = params.insuredValue) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : transientParams.isInsured);
66
+ return Object.assign(Object.assign({}, pkg), {
67
+ insuredValue: (_c = associations.insuredValue) !== null && _c !== void 0 ? _c : isInsured ? money.moneyFactory.build(params.insuredValue) : undefined,
68
+ labelDownload: (_d = associations.labelDownload) !== null && _d !== void 0 ? _d : transientParams.isShipped ? resource.downloadFactory.build(params.labelDownload) : undefined,
69
+ labelMessages: associations.labelMessages,
70
+ products: transientParams.isInternational ? productFactory.buildList(1) : [],
71
+ trackingNumber: transientParams.isShipped ? faker.faker.random.alphaNumeric(12, {
72
+ casing: "upper"
73
+ }) : undefined,
74
+ weight: (_e = associations.weight) !== null && _e !== void 0 ? _e : weight.weightWithUnitFactory.build(params.weight)
75
+ });
76
+ });
77
+ /**
78
+ * @category Factories
79
+ */
80
+ const shipmentFactory = fishery.Factory.define(({
81
+ associations,
82
+ params,
83
+ sequence,
84
+ transientParams
85
+ }) => {
86
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
87
+ const shipTo = (_a = associations.shipTo) !== null && _a !== void 0 ? _a : address.addressFactory.build(params.shipTo, {
88
+ transient: {
89
+ isInternational: transientParams.isInternational
90
+ }
91
+ });
92
+ let insuranceProvider = reactApi.SE.InsuranceProviderType.NONE;
93
+ if (transientParams.insuredValue || transientParams.isInsured) {
94
+ insuranceProvider = (_b = params.insuranceProvider) !== null && _b !== void 0 ? _b : randomInsuranceProvider(false);
95
+ } else if (transientParams.insuredValue === undefined && transientParams.isInsured === undefined) {
96
+ insuranceProvider = randomInsuranceProvider(true);
97
+ }
98
+ const shipDateObj = faker.faker.date.soon(7);
99
+ shipDateObj.setHours(0, 0, 0, 0);
100
+ const totalWeight = (_c = associations.totalWeight) !== null && _c !== void 0 ? _c : weight.weightWithUnitFactory.build(params.totalWeight);
101
+ return {
102
+ addressValidation: (_d = associations.addressValidation) !== null && _d !== void 0 ? _d : address.addressValidationFactory.build(params.addressValidation, {
103
+ associations: {
104
+ originalAddress: shipTo
105
+ }
106
+ }),
107
+ amountPaid: money.moneyFactory.build(),
108
+ carrierId: (_f = (_e = transientParams === null || transientParams === void 0 ? void 0 : transientParams.service) === null || _e === void 0 ? void 0 : _e.carrierId) !== null && _f !== void 0 ? _f : utils.randomShipengineId(),
109
+ confirmation: randomDeliveryConfirmation(),
110
+ createdAt: faker.faker.date.past().toISOString(),
111
+ customs: (_g = associations.customs) !== null && _g !== void 0 ? _g : transientParams.isInternational ? {
112
+ contents: faker.faker.helpers.arrayElement(["documents", "gift", "merchandise", "returned_goods", "sample"]),
113
+ nonDelivery: faker.faker.helpers.arrayElement(["return_to_sender", "treat_as_abandoned"])
114
+ } : undefined,
115
+ externalOrderId: faker.faker.random.alphaNumeric(10),
116
+ externalShipmentId: faker.faker.random.alphaNumeric(10),
117
+ insuranceProvider,
118
+ items: shipmentItemFactory.buildList(faker.faker.datatype.number({
119
+ max: 10,
120
+ min: 1
121
+ }), transientParams.salesOrder ? {
122
+ externalOrderId: transientParams.salesOrder.externalOrderId,
123
+ orderSourceCode: transientParams.salesOrder.orderSource.orderSourceCode,
124
+ salesOrderId: (_h = transientParams.salesOrder) === null || _h === void 0 ? void 0 : _h.salesOrderId
125
+ } : {}),
126
+ modifiedAt: faker.faker.date.recent().toISOString(),
127
+ orderSourceCode: (_k = (_j = transientParams.salesOrder) === null || _j === void 0 ? void 0 : _j.orderSource.orderSourceCode) !== null && _k !== void 0 ? _k : orderSource.randomOrderSourceCode(),
128
+ packages: (_l = associations.packages) !== null && _l !== void 0 ? _l : shipmentPackageFactory.buildList(1, (_m = params.packages) === null || _m === void 0 ? void 0 : _m[0], {
129
+ associations: {
130
+ weight: totalWeight
131
+ },
132
+ transient: {
133
+ isInsured: insuranceProvider !== "none",
134
+ isInternational: transientParams.isInternational,
135
+ isShipped: transientParams.isShipped
136
+ }
137
+ }),
138
+ returnTo: (_q = (_o = associations.returnTo) !== null && _o !== void 0 ? _o : (_p = transientParams.warehouse) === null || _p === void 0 ? void 0 : _p.returnAddress) !== null && _q !== void 0 ? _q : address.addressFactory.build(),
139
+ serviceCode: (_s = (_r = transientParams.service) === null || _r === void 0 ? void 0 : _r.serviceCode) !== null && _s !== void 0 ? _s : utils.randomShipengineSlug(),
140
+ shipDate: shipDateObj.toISOString(),
141
+ shipFrom: (_v = (_t = associations.shipFrom) !== null && _t !== void 0 ? _t : (_u = transientParams.warehouse) === null || _u === void 0 ? void 0 : _u.originAddress) !== null && _v !== void 0 ? _v : address.addressFactory.build(),
142
+ shipmentId: `se-${30000 + sequence}`,
143
+ shipmentStatus: transientParams.isShipped ? "label_purchased" : "pending",
144
+ shippingPaid: money.moneyFactory.build(),
145
+ shipTo,
146
+ tags: (_w = associations.tags) !== null && _w !== void 0 ? _w : [],
147
+ taxPaid: money.moneyFactory.build(),
148
+ totalWeight,
149
+ warehouseId: (_x = transientParams.warehouse) === null || _x === void 0 ? void 0 : _x.warehouseId
150
+ };
151
+ });
152
+ /**
153
+ * @category Factories
154
+ */
155
+ const salesOrderShipmentFactory = fishery.Factory.define(({
156
+ associations,
157
+ params,
158
+ transientParams
159
+ }) => {
160
+ var _a, _b, _c;
161
+ const shipment = shipmentFactory.build(params, {
162
+ associations,
163
+ transient: transientParams
164
+ });
165
+ return Object.assign(Object.assign({}, shipment), {
166
+ salesOrderIds: (_a = associations.salesOrderIds) !== null && _a !== void 0 ? _a : [(_c = (_b = transientParams.salesOrder) === null || _b === void 0 ? void 0 : _b.salesOrderId) !== null && _c !== void 0 ? _c : faker.faker.datatype.uuid()]
167
+ });
168
+ });
169
+
170
+ exports.productFactory = productFactory;
171
+ exports.randomDeliveryConfirmation = randomDeliveryConfirmation;
172
+ exports.randomInsuranceProvider = randomInsuranceProvider;
173
+ exports.salesOrderShipmentFactory = salesOrderShipmentFactory;
174
+ exports.shipmentFactory = shipmentFactory;
175
+ exports.shipmentItemFactory = shipmentItemFactory;
176
+ exports.shipmentPackageFactory = shipmentPackageFactory;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var faker = require('@faker-js/faker');
4
+ var fishery = require('fishery');
5
+
6
+ const randomWeightUnit = () => faker.faker.helpers.arrayElement(["pound", "ounce", "gram", "kilogram"]);
7
+ /**
8
+ * @category Factories
9
+ */
10
+ fishery.Factory.define(() => ({
11
+ fractional: faker.faker.datatype.number({
12
+ max: 16,
13
+ min: 0
14
+ }),
15
+ whole: faker.faker.datatype.number({
16
+ max: 20,
17
+ min: 0
18
+ })
19
+ }));
20
+ /**
21
+ * @category Factories
22
+ */
23
+ const weightFactory = fishery.Factory.define(() => ({
24
+ value: faker.faker.datatype.number({
25
+ max: 20,
26
+ min: 1,
27
+ precision: 0.1
28
+ })
29
+ }));
30
+ /**
31
+ * @category Factories
32
+ */
33
+ const weightWithUnitFactory = fishery.Factory.define(({
34
+ params
35
+ }) => {
36
+ const weight = weightFactory.build(params);
37
+ return Object.assign(Object.assign({}, weight), {
38
+ unit: randomWeightUnit()
39
+ });
40
+ });
41
+
42
+ exports.randomWeightUnit = randomWeightUnit;
43
+ exports.weightFactory = weightFactory;
44
+ exports.weightWithUnitFactory = weightWithUnitFactory;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var faker = require('@faker-js/faker');
4
+
5
+ const randomShipengineId = (length = 5) => `se-${faker.faker.random.numeric(length)}`;
6
+ const randomShipengineSlug = wordCount => faker.faker.lorem.slug(wordCount).replace("-", "_");
7
+ const tristateValue = (ifTrue, ifFalse, ifUndefined, value) => {
8
+ if (value === undefined) {
9
+ return ifUndefined;
10
+ }
11
+ if (value) {
12
+ return ifTrue;
13
+ }
14
+ return ifFalse;
15
+ };
16
+
17
+ exports.randomShipengineId = randomShipengineId;
18
+ exports.randomShipengineSlug = randomShipengineSlug;
19
+ exports.tristateValue = tristateValue;
@@ -38,12 +38,10 @@ const useListFundingSourceCarriers = () => {
38
38
  //TODO: Remove hardcoded carrierMetadata and insuranceProviderMetadata when the friendlyName is available in the funding source metadata response
39
39
  const carrierMetadata = useCarrierMetadata.useCarrierMetadata();
40
40
  const insuranceProviderProfiles = React.useMemo(() => {
41
- return optionalTerms.map(t => {
42
- return Object.assign({
43
- agreedToTerms: insurance.getIsInsuraceProviderAccepted(t.termType, insuranceProviderAcceptedTerms === null || insuranceProviderAcceptedTerms === void 0 ? void 0 : insuranceProviderAcceptedTerms.acceptedTerms),
44
- terms: Object.assign({}, t)
45
- }, insurance.getInsuranceProviderWithFriendlyName(t.termType));
46
- });
41
+ const groupedProfiles = insurance.groupTermsByProvider(optionalTerms);
42
+ return groupedProfiles.map(profile => Object.assign(Object.assign({}, profile), {
43
+ agreedToTerms: profile.terms.some(term => insurance.getIsInsuraceProviderAccepted(term.termType, insuranceProviderAcceptedTerms === null || insuranceProviderAcceptedTerms === void 0 ? void 0 : insuranceProviderAcceptedTerms.acceptedTerms))
44
+ }));
47
45
  }, [optionalTerms, insuranceProviderAcceptedTerms]);
48
46
  const normalizeCarrierCode = (carrierCode, nickname) => carrierCode === "usps" || (nickname === null || nickname === void 0 ? void 0 : nickname.includes("free")) ? "stamps_com" : carrierCode;
49
47
  const normalizeConnectedCarrierCodes = new Set(connectedCarriers === null || connectedCarriers === void 0 ? void 0 : connectedCarriers.map(c => normalizeCarrierCode(c.carrierCode, c.nickname)));
@@ -10,6 +10,7 @@ var React = require('react');
10
10
  var reactI18next = require('react-i18next');
11
11
  var manageCarriers_styles = require('./manage-carriers.styles.cjs');
12
12
  var useListFundingSourceCarriers = require('./hooks/use-list-funding-source-carriers.cjs');
13
+ var insurance = require('../../utilities/shipengine/insurance.cjs');
13
14
  var skeletonCarrierRow = require('../../components/skeleton/skeleton-carrier-row.cjs');
14
15
  var manageFunding = require('../manage-funding/manage-funding.cjs');
15
16
  var manageCarriersRow = require('./manage-carriers-row/manage-carriers-row.cjs');
@@ -43,6 +44,7 @@ const ShipEngineCarriers = ({
43
44
  refetch: refetchCarriers,
44
45
  refetchInsuranceProviderAcceptedTerms
45
46
  } = useListFundingSourceCarriers.useListFundingSourceCarriers();
47
+ const isInsuranceEnabled = insurance.getIsFundingSourceInsuranceProviderEnabledAndSupported(insuranceProviderProfiles, globalFeatures.enableXCover, globalFeatures.enableParcelGuard);
46
48
  const hasConnectedCarriers = React.useMemo(() => fundingSourceCarriers === null || fundingSourceCarriers === void 0 ? void 0 : fundingSourceCarriers.some(c => c.isConnected), [fundingSourceCarriers]);
47
49
  const {
48
50
  data: warehouses
@@ -103,10 +105,10 @@ const ShipEngineCarriers = ({
103
105
  const handleRegisterProvider = React.useCallback(p => _tslib.__awaiter(void 0, void 0, void 0, function* () {
104
106
  return yield handleRegistration({
105
107
  insuranceProviders: [{
106
- acceptedTerms: [{
107
- termType: p.terms.termType,
108
- version: p.terms.version
109
- }],
108
+ acceptedTerms: [...p.terms.map(term => ({
109
+ termType: term.termType,
110
+ version: term.version
111
+ }))],
110
112
  agreeToTerms: true,
111
113
  fundingSourceId: fundingSourceId !== null && fundingSourceId !== void 0 ? fundingSourceId : "",
112
114
  provider: p.provider
@@ -178,12 +180,12 @@ const ShipEngineCarriers = ({
178
180
  }),
179
181
  setCarrierToConnect: setCarrierToConnect
180
182
  })
181
- }, carrier.carrier.carrierProfile.carrierCode)), globalFeatures.enableParcelGuard && (insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.map(p => jsxRuntime.jsx("li", {
183
+ }, carrier.carrier.carrierProfile.carrierCode)), isInsuranceEnabled && (insuranceProviderProfiles === null || insuranceProviderProfiles === void 0 ? void 0 : insuranceProviderProfiles.map(p => jsxRuntime.jsx("li", {
182
184
  children: jsxRuntime.jsx(manageInsuranceProviderRow.ManageInsuranceProviderRow, {
183
185
  insuranceProviderProfile: p,
184
186
  registerProvider: handleRegisterProvider
185
187
  })
186
- }, p.terms.termType)))]
188
+ }, p.terms[0].termType)))]
187
189
  })
188
190
  })]
189
191
  });
@@ -107,6 +107,7 @@ const ManageWarehouses = ({
107
107
  yield handleSubmitAddNewWarehouse(payload);
108
108
  toggleShowAddNewWarehouseForm(false);
109
109
  }),
110
+ shouldForceDefault: !(warehouses === null || warehouses === void 0 ? void 0 : warehouses.length),
110
111
  submitButtonTitle: t("actions.save")
111
112
  })
112
113
  }) : jsxRuntime.jsx(buttonGroup.ButtonGroup, {
@@ -141,17 +142,20 @@ const ManageWarehouses = ({
141
142
  yield handleSubmitEditWarehouse(Object.assign(Object.assign({}, rest), warehouseData), warehouse.warehouseId);
142
143
  setEditWarehouseId(undefined);
143
144
  }),
144
- children: jsxRuntime.jsx(warehouseForm.WarehouseForm, {
145
- onCancel: () => setEditWarehouseId(undefined),
146
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
147
- onDelete: warehouse.isDefault ? undefined : () => handleDeleteWarehouse(warehouse.warehouseId),
145
+ children: jsxRuntime.jsx(warehouseForm.WarehouseForm
146
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
147
+ , {
148
148
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
149
149
  onSubmit: payload => _tslib.__awaiter(void 0, void 0, void 0, function* () {
150
150
  yield handleSubmitEditWarehouse(payload, warehouse.warehouseId);
151
151
  setEditWarehouseId(undefined);
152
152
  }),
153
+ shouldForceDefault: warehouse.isDefault,
153
154
  submitButtonTitle: t("actions.save"),
154
- warehouse: warehouse
155
+ warehouse: warehouse,
156
+ onCancel: () => setEditWarehouseId(undefined),
157
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
158
+ onDelete: warehouse.isDefault ? undefined : () => handleDeleteWarehouse(warehouse.warehouseId)
155
159
  })
156
160
  }, warehouse.warehouseId);
157
161
  } else {
@@ -22,8 +22,8 @@ const useConfigureShipment = ({
22
22
  warehouseId,
23
23
  useWarehouses = true
24
24
  }) => {
25
- // Track when we've created a replacement shipment for a "not found" case
26
- const [replacementShipmentId, setReplacementShipmentId] = React.useState();
25
+ // Track when user manually created a shipment for a "not found" case
26
+ const [manuallyCreatedShipmentId, setManuallyCreatedShipmentId] = React.useState();
27
27
  // Queue of incomplete requirement keys (i.e., Ship From addresses, Warehouses, Carriers)
28
28
  const incompleteRequirementsKeys = React.useMemo(() => [], []);
29
29
  const {
@@ -47,6 +47,7 @@ const useConfigureShipment = ({
47
47
  // Dont run Sales Order Import unless the Sales order info is present
48
48
  enabled: !!externalOrderNumber || !!orderSourceCode || !!salesOrderId || !!externalOrderId,
49
49
  externalOrderId,
50
+ externalOrderNumber,
50
51
  orderSourceCode,
51
52
  salesOrderId
52
53
  });
@@ -63,24 +64,49 @@ const useConfigureShipment = ({
63
64
  isInitialLoading: isExternalShipmentInitialLoading,
64
65
  isFetching: isExternalShipmentFetching
65
66
  } = reactApi.useGetShipmentByExternalId({
66
- enabled: !!externalShipmentId && !shipmentId,
67
+ enabled: !!externalShipmentId && !shipmentId && !manuallyCreatedShipmentId,
67
68
  queryFnParams: {
68
69
  externalId: externalShipmentId !== null && externalShipmentId !== void 0 ? externalShipmentId : ""
69
70
  }
71
+ // TODO: weird refetch on focus behavior
70
72
  });
73
+ // #region List Sales Order Shipments
74
+ const externalOrderIds = React.useMemo(() => {
75
+ return externalOrderId ? [externalOrderId] : undefined;
76
+ }, [externalOrderId]);
77
+ const salesOrderIds = React.useMemo(() => {
78
+ return salesOrderId ? [salesOrderId] : salesOrder$1 ? [salesOrder$1.salesOrderId] :
79
+ // TODO: current workaround - revert to being undefined rather than empty list
80
+ [];
81
+ }, [salesOrderId, salesOrder$1]);
82
+ const shipmentIds = React.useMemo(() => {
83
+ return manuallyCreatedShipmentId ? [manuallyCreatedShipmentId] : shipmentId ? [shipmentId] : externalShipment ? [externalShipment.shipmentId] : newV1Shipment ? [newV1Shipment.shipments[0].shipmentId] : undefined;
84
+ }, [manuallyCreatedShipmentId, shipmentId, externalShipment, newV1Shipment]);
85
+ const listSalesOrderShipmentsParams = React.useMemo(() => {
86
+ // TODO: useListSalesOrderShipments needs to be able to use the enabled prop, this is a workaround
87
+ // Prevent query with stale params during shipment creation or when V1 shipment exists but manuallyCreatedShipmentId not set
88
+ if (creatingV1Shipment && !manuallyCreatedShipmentId || newV1Shipment && !manuallyCreatedShipmentId) {
89
+ return {};
90
+ }
91
+ if (manuallyCreatedShipmentId) {
92
+ return {
93
+ shipmentIds
94
+ };
95
+ }
96
+ return {
97
+ externalOrderIds,
98
+ salesOrderIds,
99
+ shipmentIds
100
+ };
101
+ }, [manuallyCreatedShipmentId, externalOrderIds, salesOrderIds, shipmentIds, creatingV1Shipment, newV1Shipment]);
71
102
  const {
72
103
  data: salesOrderShipments,
73
104
  error: listSalesOrderShipmentsErrors,
74
105
  refetch: refetchSalesOrderShipments,
75
106
  isInitialLoading: listSalesOrderShipmentsInitiallyLoading,
76
107
  isFetching: listSalesOrderShipmentsIsFetching
77
- } = reactApi.useListSalesOrderShipments({
78
- externalOrderIds: externalOrderId ? [externalOrderId] : undefined,
79
- salesOrderIds: salesOrderId ? [salesOrderId] : salesOrder$1 ? [salesOrder$1.salesOrderId] :
80
- // TODO: current workaround - revert to being undefined rather than empty list
81
- [],
82
- shipmentIds: replacementShipmentId ? [replacementShipmentId] : shipmentId ? [shipmentId] : externalShipment ? [externalShipment.shipmentId] : newV1Shipment ? [newV1Shipment.shipments[0].shipmentId] : undefined
83
- });
108
+ } = reactApi.useListSalesOrderShipments(listSalesOrderShipmentsParams);
109
+ // #endregion
84
110
  const {
85
111
  error: createSalesOrderShipmentErrors,
86
112
  mutateAsync: createSalesOrderShipment,
@@ -88,6 +114,14 @@ const useConfigureShipment = ({
88
114
  isSuccess: salesOrderShipmentCreated
89
115
  } = reactApi.useCreateSalesOrderShipment();
90
116
  const pendingSalesOrderShipment = shipment.getShipmentByStatus("pending", salesOrderShipments);
117
+ if (pendingSalesOrderShipment) {
118
+ // ensure state code is uppercase for form hydration. SE API may return mixed case state codes.
119
+ pendingSalesOrderShipment.shipFrom.stateProvince = pendingSalesOrderShipment.shipFrom.stateProvince.toUpperCase();
120
+ pendingSalesOrderShipment.shipTo.stateProvince = pendingSalesOrderShipment.shipTo.stateProvince.toUpperCase();
121
+ if (pendingSalesOrderShipment.returnTo) {
122
+ pendingSalesOrderShipment.returnTo.stateProvince = pendingSalesOrderShipment.returnTo.stateProvince.toUpperCase();
123
+ }
124
+ }
91
125
  const labelPurchasedSalesOrderShipment = shipment.getShipmentByStatus("label_purchased", salesOrderShipments);
92
126
  const cancelledShipment = shipment.getShipmentByStatus("cancelled", salesOrderShipments);
93
127
  const defaultWarehouse = warehouses.getDefaultWarehouse(warehouses$1);
@@ -105,6 +139,7 @@ const useConfigureShipment = ({
105
139
  }
106
140
  return null;
107
141
  }), [createV1Shipment, defaultShipFromAddress, defaultWarehouse, warehouseId, refetchSalesOrderShipments]);
142
+ // #region Create Sales Order Shipment
108
143
  // Handles the creation of new shipments for the sales order flow and one-off flow
109
144
  const handleShipmentCreation = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
110
145
  var _a, _b, _c;
@@ -154,17 +189,23 @@ const useConfigureShipment = ({
154
189
  }
155
190
  // Create a Shipment for one-off flow
156
191
  if (!salesOrderId && !externalOrderId && !externalOrderNumber && !orderSourceCode && !shipmentId && !externalShipmentId) {
157
- yield createV1ShipmentWithDefaults();
192
+ const v1Shipment = yield createV1ShipmentWithDefaults();
193
+ // Set manuallyCreatedShipmentId to ensure proper query parameter handling
194
+ if (v1Shipment) {
195
+ setManuallyCreatedShipmentId(v1Shipment.shipments[0].shipmentId);
196
+ }
158
197
  }
159
198
  }), [createSalesOrderShipment, createV1ShipmentWithDefaults, creatingSalesOrderShipment, creatingV1Shipment, defaultShipFromAddress, defaultWarehouse, externalOrderId, externalOrderNumber, externalShipmentId, incompleteRequirementsKeys, isExternalShipmentFetching, isExternalShipmentInitialLoading, isFetchingWarehouses, isInitialLoadingWarehouses, labelPurchasedSalesOrderShipment, listSalesOrderShipmentsInitiallyLoading, listSalesOrderShipmentsIsFetching, orderSourceCode, pendingSalesOrderShipment, salesOrder$1, salesOrderId, salesOrderShipmentCreated, shipFromAddresses === null || shipFromAddresses === void 0 ? void 0 : shipFromAddresses.length, shipmentId, useWarehouses, v1shipmentCreated, warehouseId, warehouses$1]);
199
+ // #endregion
160
200
  const createNewShipmentForNotFound = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
161
201
  // Force create a new shipment even if shipmentId exists (for shipment_not_found case)
162
202
  const v1Shipment = yield createV1ShipmentWithDefaults();
163
203
  if (v1Shipment) {
164
- // Store the new shipment ID to override the stale one
165
- setReplacementShipmentId(v1Shipment.shipments[0].shipmentId);
204
+ setManuallyCreatedShipmentId(v1Shipment.shipments[0].shipmentId);
205
+ // Refetch to ensure we have the latest shipment data
206
+ yield refetchSalesOrderShipments();
166
207
  }
167
- }), [createV1ShipmentWithDefaults]);
208
+ }), [createV1ShipmentWithDefaults, refetchSalesOrderShipments]);
168
209
  const refetchPendingSalesOrderShipments = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
169
210
  const {
170
211
  data: shipments
@@ -16,14 +16,15 @@ var elementsContextProvider = require('../elements-provider/elements-context-pro
16
16
  const useGetFundingSourceInsuranceProvider = () => {
17
17
  const {
18
18
  globalFeatures: {
19
- enableParcelGuard
19
+ enableParcelGuard,
20
+ enableXCover
20
21
  }
21
22
  } = elementsContextProvider.useElements();
22
23
  const {
23
24
  data,
24
25
  refetch: refetchInsuranceAcceptedTerms
25
26
  } = reactApi.useGetInsuranceFundingSourceAcceptedTerms({
26
- enabled: enableParcelGuard
27
+ enabled: enableParcelGuard || enableXCover
27
28
  });
28
29
  const fundingSourceInsuranceProvider = React.useMemo(() => {
29
30
  var _a;
@@ -32,13 +33,12 @@ const useGetFundingSourceInsuranceProvider = () => {
32
33
  if (enableParcelGuard && term.termType === "parcelguard_terms") {
33
34
  provider = "parcelguard";
34
35
  }
35
- // TODO: once x_cover is enabled, confirm the term type and uncomment
36
- // if (term.termType === "x_cover_terms") {
37
- // provider = "x_cover";
38
- // }
36
+ if (enableXCover && term.termType === "xcover_terms") {
37
+ provider = "x_cover";
38
+ }
39
39
  });
40
40
  return provider;
41
- }, [data, enableParcelGuard]);
41
+ }, [data === null || data === void 0 ? void 0 : data.acceptedTerms, enableParcelGuard, enableXCover]);
42
42
  return {
43
43
  fundingSourceInsuranceProvider,
44
44
  refetchInsuranceAcceptedTerms
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ var reactApi = require('@shipengine/react-api');
4
+ var React = require('react');
5
+
6
+ const formatServiceCode = serviceCode => {
7
+ return serviceCode.split("_").map((word, index) => {
8
+ if (index === 0) return word.toUpperCase();
9
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
10
+ }).join(" ");
11
+ };
12
+ const useGetServiceData = () => {
13
+ const {
14
+ data: carrierList,
15
+ isLoading,
16
+ isError
17
+ } = reactApi.useListCarriers();
18
+ const getServiceInfo = React.useCallback(item => {
19
+ const {
20
+ serviceCode,
21
+ carrierId
22
+ } = item;
23
+ const labelCarrierCode = item.carrierCode;
24
+ // Error fetching carriers
25
+ if (isError) {
26
+ return {
27
+ serviceName: serviceCode !== null && serviceCode !== void 0 ? serviceCode : undefined,
28
+ carrierCode: undefined,
29
+ hasCarrierIcon: false
30
+ };
31
+ }
32
+ const carrier = carrierList === null || carrierList === void 0 ? void 0 : carrierList.find(c => c.carrierId === carrierId || c.carrierCode === labelCarrierCode);
33
+ // No carrier found for the given carrierId or carrierCode
34
+ if (!carrier) {
35
+ const serviceName = serviceCode ? formatServiceCode(serviceCode) : undefined;
36
+ const carrierCode = labelCarrierCode || undefined;
37
+ return {
38
+ serviceName,
39
+ carrierCode,
40
+ hasCarrierIcon: !!carrierCode
41
+ };
42
+ }
43
+ const service = carrier.services.find(s => s.serviceCode === serviceCode);
44
+ const carrierCode = labelCarrierCode || carrier.carrierCode;
45
+ const serviceName = (service === null || service === void 0 ? void 0 : service.name) || serviceCode || undefined;
46
+ return {
47
+ serviceName,
48
+ carrierCode,
49
+ hasCarrierIcon: !!service && !!carrierCode
50
+ };
51
+ }, [carrierList, isError]);
52
+ const getServiceName = React.useCallback(item => getServiceInfo(item).serviceName, [getServiceInfo]);
53
+ return {
54
+ getServiceInfo,
55
+ getServiceName,
56
+ isLoadingCarriers: isLoading
57
+ };
58
+ };
59
+
60
+ exports.useGetServiceData = useGetServiceData;