@shipengine/elements 2.24.1 → 2.26.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 (300) hide show
  1. package/README.md +187 -6
  2. package/dist/cjs/components/display-term/display-term.cjs +13 -4
  3. package/dist/cjs/components/field/credit-card-input/credit-card-input.cjs +46 -29
  4. package/dist/cjs/components/field/rate-select/rate-card/rate-card.cjs +29 -5
  5. package/dist/cjs/components/field/rate-select/rate-card/rate-card.styles.cjs +8 -3
  6. package/dist/cjs/components/field/rate-select/rate-select.cjs +26 -5
  7. package/dist/cjs/components/forms/address-form/address-form-schema.cjs +3 -3
  8. package/dist/cjs/components/forms/edit-billing-form/edit-billing-form.cjs +57 -4
  9. package/dist/cjs/components/grid-controller/error-banner/error-banner.cjs +74 -0
  10. package/dist/cjs/components/{error-display/error-display.styles.cjs → grid-controller/error-banner/error-banner.styles.cjs} +8 -4
  11. package/dist/cjs/components/grid-controller/error-banner/index.cjs +7 -0
  12. package/dist/cjs/components/grid-controller/grid-controller.cjs +49 -3
  13. package/dist/cjs/components/grid-controller/grid-controller.styles.cjs +11 -1
  14. package/dist/cjs/components/history/history-card/history-card.cjs +1 -1
  15. package/dist/cjs/components/history/history-card-extension/history-card-extension.cjs +0 -1
  16. package/dist/cjs/components/service-card/service-card.cjs +4 -4
  17. package/dist/cjs/components/service-card/service-card.styles.cjs +5 -2
  18. package/dist/cjs/components/service-point-display/service-point-display.cjs +1 -36
  19. package/dist/cjs/components/service-point-display/service-point-display.styles.cjs +0 -12
  20. package/dist/cjs/components/shipment-not-found-error/index.cjs +7 -0
  21. package/dist/cjs/components/shipment-not-found-error/shipment-not-found-error.cjs +40 -0
  22. package/dist/cjs/components/shipment-not-found-error/shipment-not-found-error.styles.cjs +24 -0
  23. package/dist/cjs/components/suspend-purchase/suspend-purchase.cjs +11 -3
  24. package/dist/cjs/components/ups-terms-disclosure/index.cjs +7 -0
  25. package/dist/cjs/components/ups-terms-disclosure/ups-terms-disclosure.cjs +35 -0
  26. package/dist/cjs/elements/labels-grid/hooks/use-labels-grid.cjs +45 -5
  27. package/dist/cjs/elements/labels-grid/labels-grid.cjs +24 -6
  28. package/dist/cjs/elements/purchase-label/components/rate-form/rate-form.cjs +13 -3
  29. package/dist/cjs/elements/purchase-label/components/rate-form/rate-schema.cjs +7 -2
  30. package/dist/cjs/elements/purchase-label/components/rate-form/rate-view.cjs +2 -0
  31. package/dist/cjs/elements/purchase-label/hooks/use-rate-options.cjs +31 -2
  32. package/dist/cjs/elements/purchase-label/hooks/use-rates-form.cjs +14 -18
  33. package/dist/cjs/elements/purchase-label/hooks/use-request-rates.cjs +20 -20
  34. package/dist/cjs/elements/purchase-label/purchase-label.cjs +4 -1
  35. package/dist/cjs/elements/shipment-summary/components/label-display/label-card.cjs +16 -31
  36. package/dist/cjs/elements/shipment-summary/components/label-display/label-card.styles.cjs +0 -19
  37. package/dist/cjs/elements/shipment-summary/components/label-display/paperless-label-display.cjs +54 -0
  38. package/dist/cjs/elements/shipment-summary/components/label-display/paperless-label-display.styles.cjs +27 -0
  39. package/dist/cjs/elements/shipments-grid/hooks/use-shipments-grid.cjs +41 -3
  40. package/dist/cjs/elements/shipments-grid/shipments-grid.cjs +18 -3
  41. package/dist/cjs/features/manage-carriers/hooks/use-list-funding-source-carriers.cjs +9 -10
  42. package/dist/cjs/features/manage-carriers/manage-carriers-row/manage-carriers-row.cjs +6 -1
  43. package/dist/cjs/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.cjs +3 -3
  44. package/dist/cjs/features/payment-method-settings/payment-method-settings.cjs +56 -18
  45. package/dist/cjs/hooks/use-configure-shipment.cjs +32 -11
  46. package/dist/cjs/hooks/use-helpers.cjs +4 -1
  47. package/dist/cjs/index.cjs +15 -12
  48. package/dist/cjs/locales/en/account-settings.json.cjs +6 -0
  49. package/dist/cjs/locales/en/common.json.cjs +2 -0
  50. package/dist/cjs/locales/en/grid-controller.json.cjs +13 -0
  51. package/dist/cjs/locales/en/index.cjs +2 -1
  52. package/dist/cjs/locales/en/onboarding.json.cjs +5 -0
  53. package/dist/cjs/locales/en/purchase-label.json.cjs +5 -3
  54. package/dist/cjs/package.json.cjs +1 -1
  55. package/dist/cjs/utilities/address.cjs +29 -0
  56. package/dist/cjs/utilities/files.cjs +35 -0
  57. package/dist/cjs/utilities/formatString.cjs +9 -0
  58. package/dist/cjs/utilities/index.cjs +5 -0
  59. package/dist/cjs/utilities/money.cjs +14 -0
  60. package/dist/cjs/utilities/rate-warning-messages.cjs +25 -0
  61. package/dist/cjs/utilities/shipengine/warehouses.cjs +2 -1
  62. package/dist/cjs/workflows/connect-external-carrier/connect-external-carrier.cjs +7 -3
  63. package/dist/cjs/workflows/label-workflow/label-workflow.cjs +11 -3
  64. package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.cjs +1 -1
  65. package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.cjs +17 -1
  66. package/dist/cjs/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.cjs +4 -1
  67. package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.cjs +18 -11
  68. package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.cjs +0 -3
  69. package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.cjs +36 -12
  70. package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.cjs +10 -4
  71. package/dist/cjs/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.cjs +12 -12
  72. package/dist/esm/components/display-term/display-term.js +14 -5
  73. package/dist/esm/components/field/credit-card-input/credit-card-input.js +47 -30
  74. package/dist/esm/components/field/rate-select/rate-card/rate-card.js +30 -6
  75. package/dist/esm/components/field/rate-select/rate-card/rate-card.styles.js +8 -3
  76. package/dist/esm/components/field/rate-select/rate-select.js +26 -5
  77. package/dist/esm/components/forms/address-form/address-form-schema.js +3 -3
  78. package/dist/esm/components/forms/edit-billing-form/edit-billing-form.js +58 -5
  79. package/dist/esm/components/grid-controller/error-banner/error-banner.js +72 -0
  80. package/dist/esm/components/{error-display/error-display.styles.js → grid-controller/error-banner/error-banner.styles.js} +8 -4
  81. package/dist/esm/components/grid-controller/error-banner/index.js +1 -0
  82. package/dist/esm/components/grid-controller/grid-controller.js +51 -5
  83. package/dist/esm/components/grid-controller/grid-controller.styles.js +11 -1
  84. package/dist/esm/components/history/history-card/history-card.js +1 -1
  85. package/dist/esm/components/history/history-card-extension/history-card-extension.js +0 -1
  86. package/dist/esm/components/service-card/service-card.js +4 -4
  87. package/dist/esm/components/service-card/service-card.styles.js +5 -2
  88. package/dist/esm/components/service-point-display/service-point-display.js +2 -37
  89. package/dist/esm/components/service-point-display/service-point-display.styles.js +0 -12
  90. package/dist/esm/components/shipment-not-found-error/index.js +1 -0
  91. package/dist/esm/components/shipment-not-found-error/shipment-not-found-error.js +38 -0
  92. package/dist/esm/components/shipment-not-found-error/shipment-not-found-error.styles.js +22 -0
  93. package/dist/esm/components/suspend-purchase/suspend-purchase.js +11 -3
  94. package/dist/esm/components/ups-terms-disclosure/index.js +1 -0
  95. package/dist/esm/components/ups-terms-disclosure/ups-terms-disclosure.js +33 -0
  96. package/dist/esm/elements/labels-grid/hooks/use-labels-grid.js +46 -6
  97. package/dist/esm/elements/labels-grid/labels-grid.js +24 -6
  98. package/dist/esm/elements/purchase-label/components/rate-form/rate-form.js +14 -4
  99. package/dist/esm/elements/purchase-label/components/rate-form/rate-schema.js +7 -2
  100. package/dist/esm/elements/purchase-label/components/rate-form/rate-view.js +2 -0
  101. package/dist/esm/elements/purchase-label/hooks/use-rate-options.js +31 -2
  102. package/dist/esm/elements/purchase-label/hooks/use-rates-form.js +14 -18
  103. package/dist/esm/elements/purchase-label/hooks/use-request-rates.js +20 -20
  104. package/dist/esm/elements/purchase-label/purchase-label.js +4 -1
  105. package/dist/esm/elements/shipment-summary/components/label-display/label-card.js +18 -33
  106. package/dist/esm/elements/shipment-summary/components/label-display/label-card.styles.js +0 -19
  107. package/dist/esm/elements/shipment-summary/components/label-display/paperless-label-display.js +52 -0
  108. package/dist/esm/elements/shipment-summary/components/label-display/paperless-label-display.styles.js +25 -0
  109. package/dist/esm/elements/shipments-grid/hooks/use-shipments-grid.js +42 -4
  110. package/dist/esm/elements/shipments-grid/shipments-grid.js +18 -3
  111. package/dist/esm/features/manage-carriers/hooks/use-list-funding-source-carriers.js +9 -10
  112. package/dist/esm/features/manage-carriers/manage-carriers-row/manage-carriers-row.js +7 -2
  113. package/dist/esm/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.js +3 -3
  114. package/dist/esm/features/payment-method-settings/payment-method-settings.js +57 -19
  115. package/dist/esm/hooks/use-configure-shipment.js +33 -12
  116. package/dist/esm/hooks/use-helpers.js +4 -1
  117. package/dist/esm/index.js +1 -0
  118. package/dist/esm/locales/en/account-settings.json.js +6 -0
  119. package/dist/esm/locales/en/common.json.js +2 -0
  120. package/dist/esm/locales/en/grid-controller.json.js +11 -0
  121. package/dist/esm/locales/en/index.js +2 -1
  122. package/dist/esm/locales/en/onboarding.json.js +5 -0
  123. package/dist/esm/locales/en/purchase-label.json.js +5 -3
  124. package/dist/esm/package.json.js +1 -1
  125. package/dist/esm/utilities/address.js +26 -0
  126. package/dist/esm/utilities/files.js +32 -0
  127. package/dist/esm/utilities/formatString.js +9 -1
  128. package/dist/esm/utilities/index.js +2 -0
  129. package/dist/esm/utilities/money.js +14 -1
  130. package/dist/esm/utilities/rate-warning-messages.js +23 -0
  131. package/dist/esm/utilities/shipengine/warehouses.js +2 -1
  132. package/dist/esm/workflows/connect-external-carrier/connect-external-carrier.js +7 -3
  133. package/dist/esm/workflows/label-workflow/label-workflow.js +11 -3
  134. package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.js +1 -1
  135. package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.js +17 -1
  136. package/dist/esm/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.js +4 -1
  137. package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.js +18 -11
  138. package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.js +0 -3
  139. package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.js +37 -13
  140. package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.js +10 -4
  141. package/dist/esm/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.js +12 -12
  142. package/dist/types/components/display-term/display-term.d.ts +3 -3
  143. package/dist/types/components/display-term/display-term.d.ts.map +1 -1
  144. package/dist/types/components/field/credit-card-input/credit-card-input.d.ts.map +1 -1
  145. package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts +4 -2
  146. package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts.map +1 -1
  147. package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts +7 -2
  148. package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts.map +1 -1
  149. package/dist/types/components/field/rate-select/rate-select.d.ts +1 -0
  150. package/dist/types/components/field/rate-select/rate-select.d.ts.map +1 -1
  151. package/dist/types/components/forms/address-form/address-form-schema.d.ts.map +1 -1
  152. package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts +2 -1
  153. package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts.map +1 -1
  154. package/dist/types/components/grid-controller/error-banner/error-banner.d.ts +10 -0
  155. package/dist/types/components/grid-controller/error-banner/error-banner.d.ts.map +1 -0
  156. package/dist/types/components/grid-controller/error-banner/error-banner.styles.d.ts +24 -0
  157. package/dist/types/components/grid-controller/error-banner/error-banner.styles.d.ts.map +1 -0
  158. package/dist/types/components/grid-controller/error-banner/index.d.ts +2 -0
  159. package/dist/types/components/grid-controller/error-banner/index.d.ts.map +1 -0
  160. package/dist/types/components/grid-controller/grid-controller.d.ts +8 -1
  161. package/dist/types/components/grid-controller/grid-controller.d.ts.map +1 -1
  162. package/dist/types/components/grid-controller/grid-controller.styles.d.ts +10 -0
  163. package/dist/types/components/grid-controller/grid-controller.styles.d.ts.map +1 -1
  164. package/dist/types/components/history/history-card-extension/history-card-extension.d.ts.map +1 -1
  165. package/dist/types/components/service-card/service-card.d.ts +1 -1
  166. package/dist/types/components/service-card/service-card.d.ts.map +1 -1
  167. package/dist/types/components/service-card/service-card.styles.d.ts +4 -1
  168. package/dist/types/components/service-card/service-card.styles.d.ts.map +1 -1
  169. package/dist/types/components/service-point-display/service-point-display.d.ts.map +1 -1
  170. package/dist/types/components/service-point-display/service-point-display.styles.d.ts +0 -12
  171. package/dist/types/components/service-point-display/service-point-display.styles.d.ts.map +1 -1
  172. package/dist/types/components/shipment-not-found-error/index.d.ts +2 -0
  173. package/dist/types/components/shipment-not-found-error/index.d.ts.map +1 -0
  174. package/dist/types/components/shipment-not-found-error/shipment-not-found-error.d.ts +6 -0
  175. package/dist/types/components/shipment-not-found-error/shipment-not-found-error.d.ts.map +1 -0
  176. package/dist/types/components/shipment-not-found-error/shipment-not-found-error.styles.d.ts +19 -0
  177. package/dist/types/components/shipment-not-found-error/shipment-not-found-error.styles.d.ts.map +1 -0
  178. package/dist/types/components/suspend-purchase/suspend-purchase.d.ts +4 -2
  179. package/dist/types/components/suspend-purchase/suspend-purchase.d.ts.map +1 -1
  180. package/dist/types/components/ups-terms-disclosure/index.d.ts +2 -0
  181. package/dist/types/components/ups-terms-disclosure/index.d.ts.map +1 -0
  182. package/dist/types/components/ups-terms-disclosure/ups-terms-disclosure.d.ts +2 -0
  183. package/dist/types/components/ups-terms-disclosure/ups-terms-disclosure.d.ts.map +1 -0
  184. package/dist/types/elements/labels-grid/hooks/use-labels-grid.d.ts +7 -2
  185. package/dist/types/elements/labels-grid/hooks/use-labels-grid.d.ts.map +1 -1
  186. package/dist/types/elements/labels-grid/labels-grid.d.ts +29 -3
  187. package/dist/types/elements/labels-grid/labels-grid.d.ts.map +1 -1
  188. package/dist/types/elements/manage-carriers/manage-carriers.d.ts +23 -1
  189. package/dist/types/elements/manage-carriers/manage-carriers.d.ts.map +1 -1
  190. package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts +23 -1
  191. package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts.map +1 -1
  192. package/dist/types/elements/manage-funding/manage-funding-element.d.ts +23 -1
  193. package/dist/types/elements/manage-funding/manage-funding-element.d.ts.map +1 -1
  194. package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts +23 -1
  195. package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts.map +1 -1
  196. package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts +23 -1
  197. package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts.map +1 -1
  198. package/dist/types/elements/purchase-label/components/rate-form/rate-form.d.ts +1 -1
  199. package/dist/types/elements/purchase-label/components/rate-form/rate-form.d.ts.map +1 -1
  200. package/dist/types/elements/purchase-label/components/rate-form/rate-schema.d.ts +10 -1
  201. package/dist/types/elements/purchase-label/components/rate-form/rate-schema.d.ts.map +1 -1
  202. package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts +2 -1
  203. package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts.map +1 -1
  204. package/dist/types/elements/purchase-label/hooks/use-rate-options.d.ts.map +1 -1
  205. package/dist/types/elements/purchase-label/hooks/use-rates-form.d.ts +2 -2
  206. package/dist/types/elements/purchase-label/hooks/use-rates-form.d.ts.map +1 -1
  207. package/dist/types/elements/purchase-label/hooks/use-request-rates.d.ts.map +1 -1
  208. package/dist/types/elements/purchase-label/purchase-label.d.ts +23 -1
  209. package/dist/types/elements/purchase-label/purchase-label.d.ts.map +1 -1
  210. package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts +23 -1
  211. package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts.map +1 -1
  212. package/dist/types/elements/shipment-summary/components/label-display/label-card.d.ts.map +1 -1
  213. package/dist/types/elements/shipment-summary/components/label-display/label-card.styles.d.ts +0 -19
  214. package/dist/types/elements/shipment-summary/components/label-display/label-card.styles.d.ts.map +1 -1
  215. package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.d.ts +8 -0
  216. package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.d.ts.map +1 -0
  217. package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.styles.d.ts +22 -0
  218. package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.styles.d.ts.map +1 -0
  219. package/dist/types/elements/shipment-summary/shipment-summary.d.ts +23 -1
  220. package/dist/types/elements/shipment-summary/shipment-summary.d.ts.map +1 -1
  221. package/dist/types/elements/shipments-grid/hooks/use-shipments-grid.d.ts +6 -1
  222. package/dist/types/elements/shipments-grid/hooks/use-shipments-grid.d.ts.map +1 -1
  223. package/dist/types/elements/shipments-grid/shipments-grid.d.ts +32 -2
  224. package/dist/types/elements/shipments-grid/shipments-grid.d.ts.map +1 -1
  225. package/dist/types/elements/theme-creator/theme-creator.d.ts +23 -1
  226. package/dist/types/elements/theme-creator/theme-creator.d.ts.map +1 -1
  227. package/dist/types/elements/transaction-history/transaction-history-element.d.ts +23 -1
  228. package/dist/types/elements/transaction-history/transaction-history-element.d.ts.map +1 -1
  229. package/dist/types/elements/unit-settings/unit-settings-element.d.ts +23 -1
  230. package/dist/types/elements/unit-settings/unit-settings-element.d.ts.map +1 -1
  231. package/dist/types/elements/vat-settings/vat-settings-element.d.ts +23 -1
  232. package/dist/types/elements/vat-settings/vat-settings-element.d.ts.map +1 -1
  233. package/dist/types/elements/void-label/void-label.d.ts +23 -1
  234. package/dist/types/elements/void-label/void-label.d.ts.map +1 -1
  235. package/dist/types/features/manage-carriers/hooks/use-list-funding-source-carriers.d.ts.map +1 -1
  236. package/dist/types/features/manage-carriers/manage-carriers-row/manage-carriers-row.d.ts.map +1 -1
  237. package/dist/types/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.d.ts +3 -2
  238. package/dist/types/features/manage-carriers/register-funding-source-carrier-form/register-funding-source-carrier-form.d.ts.map +1 -1
  239. package/dist/types/features/payment-method-settings/payment-method-settings.d.ts.map +1 -1
  240. package/dist/types/hooks/use-configure-shipment.d.ts +1 -0
  241. package/dist/types/hooks/use-configure-shipment.d.ts.map +1 -1
  242. package/dist/types/hooks/use-helpers.d.ts +2 -0
  243. package/dist/types/hooks/use-helpers.d.ts.map +1 -1
  244. package/dist/types/index.d.ts +1 -1
  245. package/dist/types/index.d.ts.map +1 -1
  246. package/dist/types/locales/en/index.d.ts +23 -1
  247. package/dist/types/locales/en/index.d.ts.map +1 -1
  248. package/dist/types/types/index.d.ts +5 -4
  249. package/dist/types/types/index.d.ts.map +1 -1
  250. package/dist/types/types/rates.d.ts +1 -0
  251. package/dist/types/types/rates.d.ts.map +1 -1
  252. package/dist/types/types/terms-with-disclosure.d.ts +7 -0
  253. package/dist/types/types/terms-with-disclosure.d.ts.map +1 -0
  254. package/dist/types/utilities/address.d.ts +21 -0
  255. package/dist/types/utilities/address.d.ts.map +1 -0
  256. package/dist/types/utilities/feature-flags/types.d.ts +5 -1
  257. package/dist/types/utilities/feature-flags/types.d.ts.map +1 -1
  258. package/dist/types/utilities/files.d.ts +12 -0
  259. package/dist/types/utilities/files.d.ts.map +1 -0
  260. package/dist/types/utilities/formatString.d.ts +8 -0
  261. package/dist/types/utilities/formatString.d.ts.map +1 -1
  262. package/dist/types/utilities/index.d.ts +2 -0
  263. package/dist/types/utilities/index.d.ts.map +1 -1
  264. package/dist/types/utilities/money.d.ts +6 -0
  265. package/dist/types/utilities/money.d.ts.map +1 -1
  266. package/dist/types/utilities/rate-warning-messages.d.ts +15 -0
  267. package/dist/types/utilities/rate-warning-messages.d.ts.map +1 -0
  268. package/dist/types/workflows/account-settings/account-settings.d.ts +23 -1
  269. package/dist/types/workflows/account-settings/account-settings.d.ts.map +1 -1
  270. package/dist/types/workflows/carrier-services/carrier-services.d.ts +23 -1
  271. package/dist/types/workflows/carrier-services/carrier-services.d.ts.map +1 -1
  272. package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts +23 -1
  273. package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts.map +1 -1
  274. package/dist/types/workflows/label-workflow/label-workflow.d.ts +23 -1
  275. package/dist/types/workflows/label-workflow/label-workflow.d.ts.map +1 -1
  276. package/dist/types/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.d.ts.map +1 -1
  277. package/dist/types/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.d.ts.map +1 -1
  278. package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.d.ts +4 -2
  279. package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.d.ts.map +1 -1
  280. package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.d.ts +0 -3
  281. package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.styles.d.ts.map +1 -1
  282. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts +3 -1
  283. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts.map +1 -1
  284. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.d.ts +8 -2
  285. package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.styles.d.ts.map +1 -1
  286. package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts +1 -0
  287. package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts.map +1 -1
  288. package/dist/types/workflows/onboarding/onboarding.d.ts +23 -1
  289. package/dist/types/workflows/onboarding/onboarding.d.ts.map +1 -1
  290. package/package.json +3 -3
  291. package/dist/cjs/components/error-display/error-display.cjs +0 -34
  292. package/dist/cjs/components/error-display/index.cjs +0 -7
  293. package/dist/esm/components/error-display/error-display.js +0 -32
  294. package/dist/esm/components/error-display/index.js +0 -1
  295. package/dist/types/components/error-display/error-display.d.ts +0 -7
  296. package/dist/types/components/error-display/error-display.d.ts.map +0 -1
  297. package/dist/types/components/error-display/error-display.styles.d.ts +0 -20
  298. package/dist/types/components/error-display/error-display.styles.d.ts.map +0 -1
  299. package/dist/types/components/error-display/index.d.ts +0 -2
  300. package/dist/types/components/error-display/index.d.ts.map +0 -1
@@ -64,19 +64,28 @@ const RateForm = ({
64
64
  defaultValues: {
65
65
  rate: {
66
66
  isAcknowledged: true,
67
- rateId: undefined
67
+ rateId: undefined,
68
+ labelDisplayScheme: undefined
68
69
  }
69
70
  },
70
71
  mode: "onChange",
71
72
  resolver: validation.validationResolver(rateSchema.rateSchema)
72
73
  });
74
+ const handlePaperlessAcknowledgementChange = React.useCallback((_usePaperlessLabel, labelDisplayScheme) => {
75
+ form.setValue("rate.labelDisplayScheme", labelDisplayScheme, {
76
+ shouldDirty: true
77
+ });
78
+ }, [form]);
73
79
  const {
74
80
  rateId: selectedRateId
75
81
  } = form.watch("rate");
76
82
  const handleSubmit = formLogger.formLogger.capture(form.handleSubmit(values => _tslib.__awaiter(void 0, void 0, void 0, function* () {
77
- const rateId = values;
83
+ const {
84
+ rateId,
85
+ labelDisplayScheme
86
+ } = values;
78
87
  try {
79
- yield onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(rateId, selectedServicePoint);
88
+ yield onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(rateId, selectedServicePoint, labelDisplayScheme);
80
89
  } finally {
81
90
  // Invalidate carrier queries after the rate form is submitted, regardless of success.
82
91
  // This allows the carrier balance to refresh if the purchase failed but funding succeeded.
@@ -179,6 +188,7 @@ const RateForm = ({
179
188
  form: form,
180
189
  isCalculatingRates: isCalculatingRates,
181
190
  isSavingRate: isSavingRate,
191
+ onPaperlessAcknowledgementChange: handlePaperlessAcknowledgementChange,
182
192
  onSelectRate: rateId => {
183
193
  const selectedRate = rateOptions.find(r => r.rateId === rateId);
184
194
  if (selectedRate) {
@@ -2,11 +2,16 @@
2
2
 
3
3
  var zod = require('zod');
4
4
 
5
+ const labelDisplaySchemeEnum = zod.z.enum(["label", "paperless", "qr_code", "label_and_paperless"]);
5
6
  const rateSchema = zod.z.object({
6
7
  rate: zod.z.object({
7
8
  isAcknowledged: zod.z.boolean().refine(v => v === true, "purchase-label:schemaErrors.needToAcknowledge"),
8
- rateId: zod.z.string()
9
+ rateId: zod.z.string(),
10
+ labelDisplayScheme: labelDisplaySchemeEnum.optional()
9
11
  })
10
- }).transform(schema => schema.rate.rateId);
12
+ }).transform(schema => ({
13
+ rateId: schema.rate.rateId,
14
+ labelDisplayScheme: schema.rate.labelDisplayScheme
15
+ }));
11
16
 
12
17
  exports.rateSchema = rateSchema;
@@ -23,6 +23,7 @@ const RateView = ({
23
23
  form,
24
24
  isCalculatingRates,
25
25
  isSavingRate,
26
+ onPaperlessAcknowledgementChange,
26
27
  onSelectRate,
27
28
  preferredServiceCodes,
28
29
  pudoServicePointDetails = {
@@ -196,6 +197,7 @@ const RateView = ({
196
197
  label: "Rate",
197
198
  name: "rate",
198
199
  onClick: onSelectRate,
200
+ onPaperlessAcknowledgementChange: onPaperlessAcknowledgementChange,
199
201
  onSelectServicePoint: onSelectServicePoint,
200
202
  options: showHiddenRates ? expandedRateOptionList : collapsedRateOptionList
201
203
  }, rateSelectCommonProps)), expandedRateOptionList.length > COLLAPSED_RATE_VIEW_LIMIT && jsxRuntime.jsx(linkAction.LinkAction, {
@@ -11,6 +11,22 @@ var useWindsorFramework = require('./use-windsor-framework.cjs');
11
11
  var pudo$1 = require('../../../types/pudo.cjs');
12
12
  var canadaDdp = require('../../../types/canada-ddp.cjs');
13
13
 
14
+ /* https://auctane.atlassian.net/browse/ENGINE-7329
15
+ * For iteration one we would hardcode services for which it will be available (in the future this data will be in the registry. We will change hardcoding then)
16
+ * carriersWithPaperless and servicesWithPaperless are hardcoded for iteration one
17
+ */
18
+ const hermesPaperlessSupportedServices = ["hermes_domestic_parcelshop_dropoff", "hermes_domestic_parcelshop_dropoff_next_day", "hermes_postable", "hermes_postable_next_day"];
19
+ const paperlessSupportedCarriers = [{
20
+ carrier: "hermes",
21
+ services: hermesPaperlessSupportedServices,
22
+ displaySchemes: ["label_and_paperless"]
23
+ }, {
24
+ carrier: "usps",
25
+ displaySchemes: ["qr_code"]
26
+ }, {
27
+ carrier: "stamps_com",
28
+ displaySchemes: ["qr_code"]
29
+ }];
14
30
  /**
15
31
  * @internal
16
32
  *
@@ -37,6 +53,17 @@ const useRateOptions = (rates$1, fundingOrigin, preferredRates, carriers, shipme
37
53
  var _a;
38
54
  return ((_a = shipment === null || shipment === void 0 ? void 0 : shipment.advancedOptions) === null || _a === void 0 ? void 0 : _a.canadaDeliveredDuty) === canadaDdp.CanadaDeliveredDutyOptions.SENDER_PREPAY;
39
55
  }, [(_a = shipment === null || shipment === void 0 ? void 0 : shipment.advancedOptions) === null || _a === void 0 ? void 0 : _a.canadaDeliveredDuty]);
56
+ const buildSupportedLabelDisplaySchemes = (carrierCode, serviceCode) => {
57
+ const carrier = paperlessSupportedCarriers.find(c => c.carrier === carrierCode);
58
+ if (!carrier || carrier.services && !carrier.services.includes(serviceCode)) {
59
+ return [];
60
+ }
61
+ // Only return USPS/stamps_com display schemes for domestic shipments
62
+ if ((carrierCode === 'usps' || carrierCode === 'stamps_com') && isInternational) {
63
+ return [];
64
+ }
65
+ return [...carrier.displaySchemes];
66
+ };
40
67
  const rateOptionsFilters = React.useCallback(carrierCode => {
41
68
  return (
42
69
  // Filter out non-USPS carriers for Canada Delivered Duty prepaid shipments
@@ -59,7 +86,8 @@ const useRateOptions = (rates$1, fundingOrigin, preferredRates, carriers, shipme
59
86
  messages: r.rate.warningMessages,
60
87
  rateAcknowledgementMessage: r.rateAcknowledgementMessage,
61
88
  requiresAcknowledgement: !!r.rateAcknowledgementMessage,
62
- requiresFundedAmount: false
89
+ requiresFundedAmount: false,
90
+ paperlessDisplaySchemes: buildSupportedLabelDisplaySchemes(r.rate.carrierCode, r.rate.serviceCode)
63
91
  }));
64
92
  }, [preferredRates, rateOptionsFilters]);
65
93
  const noRatesForServiceMessage = t("purchase-label:rates.noRateService");
@@ -75,7 +103,8 @@ const useRateOptions = (rates$1, fundingOrigin, preferredRates, carriers, shipme
75
103
  balance: fundingOrigin === null || fundingOrigin === void 0 ? void 0 : fundingOrigin.balance,
76
104
  messages: r.warningMessages,
77
105
  requiresAcknowledgement: rates.getRateRequiresAcknowledgement(r.serviceCode, r.packageType, !!requireDhlTermsAcknowledgement),
78
- requiresFundedAmount
106
+ requiresFundedAmount,
107
+ paperlessDisplaySchemes: buildSupportedLabelDisplaySchemes(r.carrierCode, r.serviceCode)
79
108
  });
80
109
  if (r.shippingAmount.amount === 0 && !r.warningMessages.includes(noRatesForServiceMessage)) {
81
110
  baseRateOption.messages.push(noRatesForServiceMessage);
@@ -14,11 +14,6 @@ var useRatesWithCache = require('./use-rates-with-cache.cjs');
14
14
  var useServicePoints = require('./use-service-points.cjs');
15
15
  var elementsContextProvider = require('../../../elements-provider/elements-context-provider.cjs');
16
16
 
17
- /* https://auctane.atlassian.net/browse/ENGINE-7329
18
- * For iteration one we would hardcode services for which it will be available (in the future this data will be in the registry. We will change hardcoding then)
19
- * carriersWithPaperless and servicesWithPaperless are hardcoded for iteration one
20
- */
21
- const servicesWithPaperless = ["hermes_domestic_parcelshop_dropoff", "hermes_domestic_parcelshop_dropoff_next_day", "hermes_postable", "hermes_postable_next_day"];
22
17
  const useRatesForm = ({
23
18
  getPreferredRates,
24
19
  disabledShippingServices,
@@ -91,17 +86,11 @@ const useRatesForm = ({
91
86
  listServicePointsErrors,
92
87
  servicePointSearchQuery
93
88
  } = useServicePoints.useServicePoints(ratesResponse === null || ratesResponse === void 0 ? void 0 : ratesResponse.rates, shipment);
94
- const isDisplaySchemePaperless = rate => {
95
- if ("hermes" === rate.carrierCode) {
96
- return !!servicesWithPaperless.find(service => service === rate.serviceCode);
97
- }
98
- return false;
99
- };
100
- const purchaseLabel = React.useCallback((rateId, shipment, rate, servicePoint) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
89
+ const purchaseLabel = React.useCallback((rateId, shipment, rate, servicePoint, displayScheme) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
101
90
  var _a;
102
91
  try {
103
92
  const label = yield createLabel({
104
- displayScheme: isDisplaySchemePaperless(rate) ? "label_and_paperless" : "label",
93
+ displayScheme: displayScheme !== null && displayScheme !== void 0 ? displayScheme : "label",
105
94
  labelDownloadType: "url",
106
95
  labelFormat: "pdf",
107
96
  labelLayout: (_a = printLabelLayout === null || printLabelLayout === void 0 ? void 0 : printLabelLayout.toLowerCase()) !== null && _a !== void 0 ? _a : "4x6",
@@ -114,8 +103,15 @@ const useRatesForm = ({
114
103
  } else {
115
104
  yield onLabelCreateFailure === null || onLabelCreateFailure === void 0 ? void 0 : onLabelCreateFailure(rate, shipment);
116
105
  }
117
- } catch (_b) {
118
- yield onLabelCreateFailure === null || onLabelCreateFailure === void 0 ? void 0 : onLabelCreateFailure(rate, shipment);
106
+ } catch (error) {
107
+ // Only return errors from the createLabel mutation in the callback
108
+ let callbackErrors;
109
+ if (Array.isArray(error)) {
110
+ if (error[0] instanceof reactApi.SE.CodedError) {
111
+ callbackErrors = error;
112
+ }
113
+ }
114
+ yield onLabelCreateFailure === null || onLabelCreateFailure === void 0 ? void 0 : onLabelCreateFailure(rate, shipment, callbackErrors);
119
115
  }
120
116
  }), [createLabel, onLabelCreateFailure, onLabelCreateSuccess, printLabelLayout]);
121
117
  const onUpdatedShipment = React.useCallback(shipment => _tslib.__awaiter(void 0, void 0, void 0, function* () {
@@ -189,7 +185,7 @@ const useRatesForm = ({
189
185
  return;
190
186
  }
191
187
  }), [onBeforeRateSaved, onUpdatedShipment, resetRates, shipment, updateShipment]);
192
- const handleSubmit = React.useCallback((rateId, servicePoint) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
188
+ const handleSubmit = React.useCallback((rateId, servicePoint, displayScheme) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
193
189
  var _a, _b, _c, _d;
194
190
  setBeforeCreateError(undefined);
195
191
  if (!shipment) return;
@@ -237,12 +233,12 @@ const useRatesForm = ({
237
233
  });
238
234
  throw new Error("Insufficient funds. Please add funds before purchasing and try again.");
239
235
  } else {
240
- yield purchaseLabel(rate.rateId, updatedShipment !== null && updatedShipment !== void 0 ? updatedShipment : shipment, rate, servicePoint);
236
+ yield purchaseLabel(rate.rateId, updatedShipment !== null && updatedShipment !== void 0 ? updatedShipment : shipment, rate, servicePoint, displayScheme);
241
237
  return;
242
238
  }
243
239
  }
244
240
  // The user has selected a standard rate and no further action is required before purchase
245
- yield purchaseLabel(rateId, shipment, rate, servicePoint);
241
+ yield purchaseLabel(rateId, shipment, rate, servicePoint, displayScheme);
246
242
  return;
247
243
  } catch (e) {
248
244
  if (Array.isArray(e)) {
@@ -4,7 +4,7 @@ var _tslib = require('../../../_virtual/_tslib.cjs');
4
4
  var reactApi = require('@shipengine/react-api');
5
5
  var date = require('../../../utilities/date.cjs');
6
6
  var React = require('react');
7
- var rateMessages = require('../../../data/rate-messages.json.cjs');
7
+ var rateWarningMessages = require('../../../utilities/rate-warning-messages.cjs');
8
8
  var useRequestPreferredRates = require('./use-request-preferred-rates.cjs');
9
9
  var utils = require('../../../utilities/feature-flags/utils.cjs');
10
10
 
@@ -91,26 +91,26 @@ const useRequestRates = ({
91
91
  }, [ratedShipment]);
92
92
  const ratesCalculating = getPreferredRates ? preferredRatesCalculating || standardRatesCalculating : standardRatesCalculating;
93
93
  ratesResponse = React.useMemo(() => ratesResponse && Object.assign(Object.assign({}, ratesResponse), {
94
- rates: ratesResponse.rates.map(rate => {
95
- var _a, _b, _c;
96
- return Object.assign(Object.assign({}, rate), {
97
- warningMessages: [
98
- // add additional rateMessages based on combinations of serviceCode, packageType and shipDay
99
- ...((_a = rateMessages.default[`${rate.serviceCode}:${shipDay}`]) !== null && _a !== void 0 ? _a : []), ...((_b = rateMessages.default[`${rate.serviceCode}:${rate.packageType}`]) !== null && _b !== void 0 ? _b : []), ...((_c = rateMessages.default[rate.serviceCode]) !== null && _c !== void 0 ? _c : []), ...rate.warningMessages]
100
- });
101
- })
94
+ rates: ratesResponse.rates.map(rate => Object.assign(Object.assign({}, rate), {
95
+ warningMessages: rateWarningMessages.buildRateWarningMessages({
96
+ serviceCode: rate.serviceCode,
97
+ packageType: rate.packageType,
98
+ shipDay,
99
+ existingWarningMessages: rate.warningMessages
100
+ })
101
+ }))
102
102
  }), [ratesResponse, shipDay]);
103
- const preferredRatesResponse = React.useMemo(() => preferredResponse && preferredResponse.map(r => {
104
- var _a, _b, _c;
105
- return {
106
- rate: Object.assign(Object.assign({}, r.rate), {
107
- warningMessages: [
108
- // add additional rateMessages based on combinations of serviceCode, packageType and shipDay
109
- ...((_a = rateMessages.default[`${r.rate.serviceCode}:${shipDay}`]) !== null && _a !== void 0 ? _a : []), ...((_b = rateMessages.default[`${r.rate.serviceCode}:${r.rate.packageType}`]) !== null && _b !== void 0 ? _b : []), ...((_c = rateMessages.default[r.rate.serviceCode]) !== null && _c !== void 0 ? _c : []), ...r.rate.warningMessages]
110
- }),
111
- rateAcknowledgementMessage: r.rateAcknowledgementMessage
112
- };
113
- }), [preferredResponse, shipDay]);
103
+ const preferredRatesResponse = React.useMemo(() => preferredResponse && preferredResponse.map(r => ({
104
+ rate: Object.assign(Object.assign({}, r.rate), {
105
+ warningMessages: rateWarningMessages.buildRateWarningMessages({
106
+ serviceCode: r.rate.serviceCode,
107
+ packageType: r.rate.packageType,
108
+ shipDay,
109
+ existingWarningMessages: r.rate.warningMessages
110
+ })
111
+ }),
112
+ rateAcknowledgementMessage: r.rateAcknowledgementMessage
113
+ })), [preferredResponse, shipDay]);
114
114
  return {
115
115
  isCalculating: ratesCalculating,
116
116
  preferredRatesResponse,
@@ -65,7 +65,8 @@ const Component = _a => {
65
65
  salesOrder,
66
66
  refetchPendingSalesOrderShipments,
67
67
  isLoading,
68
- errors
68
+ errors,
69
+ createNewShipmentForNotFound
69
70
  } = useConfigureShipment.useConfigureShipment({
70
71
  errorWhenShipmentCancelled: features === null || features === void 0 ? void 0 : features.enableErrorWhenShipmentCancelled,
71
72
  externalOrderId,
@@ -92,6 +93,8 @@ const Component = _a => {
92
93
  data: shipment || salesOrder,
93
94
  errors: errors,
94
95
  isLoading: isLoading || insuranceIsLoading,
96
+ onCreateNewShipment: createNewShipmentForNotFound,
97
+ shipmentId: shipmentId,
95
98
  children: jsxRuntime.jsx(configureShipment.ConfigureShipment, Object.assign({
96
99
  currency: currency,
97
100
  features: features,
@@ -9,6 +9,7 @@ var trackingFormatter = require('../../../../utilities/tracking-formatter.cjs');
9
9
  var React = require('react');
10
10
  var reactI18next = require('react-i18next');
11
11
  var labelCard_styles = require('./label-card.styles.cjs');
12
+ var paperlessLabelDisplay = require('./paperless-label-display.cjs');
12
13
  var serviceCard = require('../../../../components/service-card/service-card.cjs');
13
14
  var insurancePopover = require('../../../../components/insurance-popover/insurance-popover.cjs');
14
15
  var elementsContextProvider = require('../../../../elements-provider/elements-context-provider.cjs');
@@ -46,7 +47,8 @@ const LabelCard = ({
46
47
  trackable = undefined,
47
48
  trackingNumber = undefined,
48
49
  trackingStatus = undefined,
49
- trackingUrl = undefined
50
+ trackingUrl = undefined,
51
+ qrCodeDownload = undefined
50
52
  } = !displayAsVoided ? label : {};
51
53
  const carrierCode = carrier === null || carrier === void 0 ? void 0 : carrier.carrierCode;
52
54
  const carrierFriendlyName = carrier === null || carrier === void 0 ? void 0 : carrier.friendlyName;
@@ -144,6 +146,18 @@ const LabelCard = ({
144
146
  shippingAmount,
145
147
  showExtendedData: selected
146
148
  };
149
+ const paperlessDownloadProps = React.useMemo(() => {
150
+ // USPS paperless labels populate the qrCodeDownload property instead of paperlessDownload, use qrCodeDownload href if available and paperlessDownload is empty
151
+ if (!paperlessDownload || Object.keys(paperlessDownload).length === 0) {
152
+ if (qrCodeDownload && qrCodeDownload.href) {
153
+ return {
154
+ href: qrCodeDownload.href
155
+ };
156
+ }
157
+ return undefined;
158
+ }
159
+ return paperlessDownload;
160
+ }, [paperlessDownload, qrCodeDownload]);
147
161
  return jsxRuntime.jsxs(serviceCard.ServiceCardContainer, {
148
162
  selected: selected,
149
163
  voided: displayAsVoided,
@@ -160,36 +174,7 @@ const LabelCard = ({
160
174
  },
161
175
  voided: displayAsVoided,
162
176
  children: trackable && jsxRuntime.jsx(TrackingNumberDisplay, {})
163
- }), paperlessDownload && jsxRuntime.jsxs("div", {
164
- css: labelCard_styles.styles.paperlessDownloadwrapper,
165
- children: [jsxRuntime.jsxs("div", {
166
- css: labelCard_styles.styles.codewrapper,
167
- children: [jsxRuntime.jsx("img", {
168
- alt: "paperless code",
169
- css: labelCard_styles.styles.codeImage,
170
- src: paperlessDownload === null || paperlessDownload === void 0 ? void 0 : paperlessDownload.href
171
- }), jsxRuntime.jsx("div", {
172
- css: labelCard_styles.styles.handoffCode,
173
- children: paperlessDownload === null || paperlessDownload === void 0 ? void 0 : paperlessDownload.handoffCode.toString()
174
- }), jsxRuntime.jsxs(giger.Next.Link, {
175
- buttonProps: {
176
- variant: giger.ButtonVariant.OUTLINED
177
- },
178
- css: labelCard_styles.styles.button,
179
- download: true,
180
- href: paperlessDownload === null || paperlessDownload === void 0 ? void 0 : paperlessDownload.href,
181
- isButton: true,
182
- children: [jsxRuntime.jsx(giger.Icon, {
183
- name: gigerTheme.IconNames.PRINTER,
184
- size: giger.IconSize.SIZE_SMALL
185
- }), jsxRuntime.jsx("span", {
186
- children: t("view-shipment:actions.download")
187
- })]
188
- })]
189
- }), jsxRuntime.jsx(giger.Typography, {
190
- children: paperlessDownload === null || paperlessDownload === void 0 ? void 0 : paperlessDownload.instructions
191
- })]
192
- }), showFooter && jsxRuntime.jsx(serviceCard.ServiceCardFooter, {
177
+ }), paperlessDownloadProps && "href" in paperlessDownloadProps && jsxRuntime.jsx(paperlessLabelDisplay.PaperlessLabelDisplay, Object.assign({}, paperlessDownloadProps)), showFooter && jsxRuntime.jsx(serviceCard.ServiceCardFooter, {
193
178
  messages: labelMessages
194
179
  })]
195
180
  });
@@ -3,31 +3,12 @@
3
3
  var styles$1 = require('../../../../utilities/styles.cjs');
4
4
 
5
5
  const styles = styles$1.createStyles({
6
- button: () => ({
7
- cursor: "pointer"
8
- }),
9
- codeImage: () => ({
10
- height: "120px",
11
- maxWidth: "200px",
12
- width: "auto"
13
- }),
14
- codewrapper: () => ({
15
- alignItems: "center",
16
- display: "flex",
17
- flexDirection: "column"
18
- }),
19
- handoffCode: theme => ({
20
- margin: `${styles$1.scopeTheme(theme).spacing(2)}px 0`
21
- }),
22
6
  insuranceInfoIcon: theme => ({
23
7
  ":hover": {
24
8
  cursor: "pointer"
25
9
  },
26
10
  marginLeft: styles$1.scopeTheme(theme).spacing(0.5)
27
11
  }),
28
- paperlessDownloadwrapper: theme => ({
29
- padding: styles$1.scopeTheme(theme).spacing(2)
30
- }),
31
12
  trackingNumber: () => ({
32
13
  maxWidth: "100%",
33
14
  overflow: "hidden",
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
4
+ var giger = require('@shipengine/giger');
5
+ var gigerTheme = require('@shipengine/giger-theme');
6
+ var reactI18next = require('react-i18next');
7
+ var paperlessLabelDisplay_styles = require('./paperless-label-display.styles.cjs');
8
+ var spacer = require('../../../../components/spacer/spacer.cjs');
9
+
10
+ const PaperlessLabelDisplay = ({
11
+ handoffCode,
12
+ href,
13
+ instructions
14
+ }) => {
15
+ const {
16
+ t
17
+ } = reactI18next.useTranslation();
18
+ return jsxRuntime.jsxs("div", {
19
+ css: paperlessLabelDisplay_styles.styles.paperlessDownloadwrapper,
20
+ children: [jsxRuntime.jsxs("div", {
21
+ css: paperlessLabelDisplay_styles.styles.codewrapper,
22
+ children: [jsxRuntime.jsx("img", {
23
+ alt: "paperless code",
24
+ css: paperlessLabelDisplay_styles.styles.codeImage,
25
+ src: href
26
+ }), handoffCode && jsxRuntime.jsx("div", {
27
+ css: paperlessLabelDisplay_styles.styles.handoffCode,
28
+ children: handoffCode
29
+ }), jsxRuntime.jsxs(giger.Next.Link, {
30
+ buttonProps: {
31
+ variant: giger.ButtonVariant.OUTLINED
32
+ },
33
+ css: paperlessLabelDisplay_styles.styles.button,
34
+ download: true,
35
+ href: href,
36
+ isButton: true,
37
+ children: [jsxRuntime.jsx(giger.Icon, {
38
+ name: gigerTheme.IconNames.PRINTER,
39
+ size: giger.IconSize.SIZE_SMALL
40
+ }), jsxRuntime.jsx("span", {
41
+ children: t("view-shipment:actions.download")
42
+ })]
43
+ })]
44
+ }), instructions && jsxRuntime.jsxs(jsxRuntime.Fragment, {
45
+ children: [jsxRuntime.jsx(spacer.Spacer, {
46
+ multiplier: 2
47
+ }), " ", jsxRuntime.jsx(giger.Typography, {
48
+ children: instructions
49
+ })]
50
+ })]
51
+ });
52
+ };
53
+
54
+ exports.PaperlessLabelDisplay = PaperlessLabelDisplay;
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var styles$1 = require('../../../../utilities/styles.cjs');
4
+
5
+ const styles = styles$1.createStyles({
6
+ button: () => ({
7
+ cursor: "pointer"
8
+ }),
9
+ codeImage: () => ({
10
+ height: "120px",
11
+ maxWidth: "200px",
12
+ width: "auto"
13
+ }),
14
+ codewrapper: () => ({
15
+ alignItems: "center",
16
+ display: "flex",
17
+ flexDirection: "column"
18
+ }),
19
+ handoffCode: theme => ({
20
+ margin: `${styles$1.scopeTheme(theme).spacing(2)}px 0`
21
+ }),
22
+ paperlessDownloadwrapper: theme => ({
23
+ padding: styles$1.scopeTheme(theme).spacing(2)
24
+ })
25
+ });
26
+
27
+ exports.styles = styles;
@@ -2,6 +2,7 @@
2
2
 
3
3
  var useGetServiceName = require('../../../hooks/use-get-service-name.cjs');
4
4
  var reactApi = require('@shipengine/react-api');
5
+ var files = require('../../../utilities/files.cjs');
5
6
  var React = require('react');
6
7
  var createdDateValue = require('../utils/created-date-value.cjs');
7
8
  var usePager = require('../../../components/pager/usePager.cjs');
@@ -22,9 +23,10 @@ const useShipmentsGrid = ({
22
23
  showShipmentIdFilter = true,
23
24
  showCreatedDateFilter = true,
24
25
  sortBy,
25
- sortDir
26
+ sortDir,
27
+ columns
26
28
  }) => {
27
- var _a, _b, _c, _d;
29
+ var _a, _b, _c, _d, _e, _f, _g, _h;
28
30
  const initialFilters = getInitialFilters(showShipmentIdFilter, showCreatedDateFilter);
29
31
  const {
30
32
  getServiceName
@@ -35,6 +37,7 @@ const useShipmentsGrid = ({
35
37
  pagerProps
36
38
  } = usePager.usePager(PAGE_SIZE);
37
39
  const [activeShipmentId, setActiveShipmentId] = React.useState();
40
+ const [enabled, setEnabled] = React.useState(false);
38
41
  const [filters, setFilters] = React.useState(initialFilters);
39
42
  const clearAllFilters = () => {
40
43
  setFilters(initialFilters);
@@ -66,6 +69,37 @@ const useShipmentsGrid = ({
66
69
  sortBy: sortBy,
67
70
  sortDir: sortDir
68
71
  }, createdDateValue.getCreatedDateFilterValue((_b = (_a = filters.createdDate) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.start, (_d = (_c = filters.createdDate) === null || _c === void 0 ? void 0 : _c.value) === null || _d === void 0 ? void 0 : _d.end)));
72
+ const {
73
+ data: exportShipmentsData,
74
+ isInitialLoading: isExportShipmentsinitialLoading,
75
+ isRefetching,
76
+ isError: isExportShipmentsError
77
+ } = reactApi.useExportShipments({
78
+ enabled,
79
+ queryFnParams: Object.assign({
80
+ shipmentId: filters.shipmentId.value || undefined,
81
+ sortDir: sortDir !== null && sortDir !== void 0 ? sortDir : "desc",
82
+ columns
83
+ }, createdDateValue.getCreatedDateFilterValue((_f = (_e = filters.createdDate) === null || _e === void 0 ? void 0 : _e.value) === null || _f === void 0 ? void 0 : _f.start, (_h = (_g = filters.createdDate) === null || _g === void 0 ? void 0 : _g.value) === null || _h === void 0 ? void 0 : _h.end))
84
+ });
85
+ React.useEffect(() => {
86
+ if (exportShipmentsData && !isExportShipmentsinitialLoading && !isRefetching) {
87
+ files.createLocalFileFromBlobResponse("shipment", exportShipmentsData);
88
+ setEnabled(false);
89
+ }
90
+ }, [isExportShipmentsinitialLoading, isRefetching, exportShipmentsData]);
91
+ // This function will be called when the error display duration ends
92
+ const onExportErrorDurationEnd = () => {
93
+ setEnabled(false);
94
+ };
95
+ const onClickDownloadShipmentsCSV = () => {
96
+ if (exportShipmentsData) {
97
+ files.createLocalFileFromBlobResponse("shipment", exportShipmentsData);
98
+ setEnabled(false);
99
+ } else {
100
+ setEnabled(true);
101
+ }
102
+ };
69
103
  const shipments = React.useMemo(() => data === null || data === void 0 ? void 0 : data.shipments.map(shipment => Object.assign(Object.assign({}, shipment), {
70
104
  disableOnRowClick: shipment.shipmentStatus === "cancelled",
71
105
  isLoading: activeShipmentId === shipment.shipmentId,
@@ -122,12 +156,15 @@ const useShipmentsGrid = ({
122
156
  return [];
123
157
  };
124
158
  return {
159
+ onClickDownloadShipmentsCSV,
125
160
  clearAllFilters,
126
161
  filters,
127
162
  getGridData,
128
163
  isAnyFilterActive,
164
+ isExportShipmentsError,
129
165
  isError,
130
166
  isLoading: isLoadingShipments || isLoadingShipment,
167
+ onExportErrorDurationEnd,
131
168
  pageConfig: {
132
169
  currentPage: shipmentFilteredById ? 1 : (data === null || data === void 0 ? void 0 : data.page) || 0,
133
170
  pagerProps,
@@ -139,7 +176,8 @@ const useShipmentsGrid = ({
139
176
  setActiveShipmentId,
140
177
  setFilters: onSetFilters,
141
178
  shipments,
142
- shouldShowFilters: isAnyFilterEnabled
179
+ shouldShowFilters: isAnyFilterEnabled,
180
+ isExportShipmentsLoading: isExportShipmentsinitialLoading || isRefetching
143
181
  };
144
182
  };
145
183
 
@@ -48,7 +48,9 @@ const Component = ({
48
48
  onClickCancelShipment,
49
49
  shipmentStatus,
50
50
  showShipmentIdFilter = true,
51
- showCreatedDateFilter = true
51
+ showCreatedDateFilter = true,
52
+ onShipmentsCSVExportClick,
53
+ showExportCSVButton = false
52
54
  }) => {
53
55
  const {
54
56
  globalFeatures
@@ -73,7 +75,11 @@ const Component = ({
73
75
  isAnyFilterActive,
74
76
  shouldShowFilters,
75
77
  clearAllFilters,
76
- setActiveShipmentId
78
+ setActiveShipmentId,
79
+ onClickDownloadShipmentsCSV,
80
+ isExportShipmentsError,
81
+ isExportShipmentsLoading,
82
+ onExportErrorDurationEnd
77
83
  } = useShipmentsGrid.useShipmentsGrid({
78
84
  shipmentStatus,
79
85
  showCreatedDateFilter,
@@ -256,8 +262,17 @@ const Component = ({
256
262
  showPagination: pageConfig.showPagination,
257
263
  total: pageConfig.totalElements
258
264
  }),
265
+ hasExportCSVError: isExportShipmentsError,
266
+ isExportCSVLoading: isExportShipmentsLoading,
259
267
  isLoading: isLoading,
260
- onRowClick: onRowClick
268
+ onClickExportCSV: () => {
269
+ onClickDownloadShipmentsCSV();
270
+ onShipmentsCSVExportClick === null || onShipmentsCSVExportClick === void 0 ? void 0 : onShipmentsCSVExportClick();
271
+ },
272
+ onExportErrorDurationEnd: onExportErrorDurationEnd,
273
+ onRowClick: onRowClick,
274
+ showExportCSV: showExportCSVButton,
275
+ totalAmountGridItems: pageConfig.totalElements
261
276
  }), globalFeatures.poweredByShipEngine && jsxRuntime.jsxs(jsxRuntime.Fragment, {
262
277
  children: [jsxRuntime.jsx(spacer.Spacer, {}), jsxRuntime.jsx(poweredByShipengine.PoweredByShipEngine, {})]
263
278
  })]
@@ -45,22 +45,21 @@ const useListFundingSourceCarriers = () => {
45
45
  }, insurance.getInsuranceProviderWithFriendlyName(t.termType));
46
46
  });
47
47
  }, [optionalTerms, insuranceProviderAcceptedTerms]);
48
- const normalizeConnectedCarrierCodes = new Set(connectedCarriers === null || connectedCarriers === void 0 ? void 0 : connectedCarriers.map(c => {
49
- var _a;
50
- return c.carrierCode === "usps" || ((_a = c.nickname) === null || _a === void 0 ? void 0 : _a.includes("free")) ? "stamps_com" : c.carrierCode;
51
- }));
52
- const fundingSourceCarrierMetadata = carrierProfiles === null || carrierProfiles === void 0 ? void 0 : carrierProfiles.map(cp => {
48
+ const normalizeCarrierCode = (carrierCode, nickname) => carrierCode === "usps" || (nickname === null || nickname === void 0 ? void 0 : nickname.includes("free")) ? "stamps_com" : carrierCode;
49
+ const normalizeConnectedCarrierCodes = new Set(connectedCarriers === null || connectedCarriers === void 0 ? void 0 : connectedCarriers.map(c => normalizeCarrierCode(c.carrierCode, c.nickname)));
50
+ const fundingSourceCarriersData = carrierProfiles === null || carrierProfiles === void 0 ? void 0 : carrierProfiles.map(cp => {
53
51
  var _a, _b;
54
- return {
52
+ const carrier = {
55
53
  carrierProfile: cp,
56
54
  friendlyName: (_b = (_a = carrierMetadata[cp.carrierCode]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : cp.carrierCode
57
55
  };
56
+ return {
57
+ carrier,
58
+ isConnected: normalizeConnectedCarrierCodes.has(cp.carrierCode)
59
+ };
58
60
  });
59
61
  return {
60
- data: fundingSourceCarrierMetadata === null || fundingSourceCarrierMetadata === void 0 ? void 0 : fundingSourceCarrierMetadata.map(m => ({
61
- carrier: m,
62
- isConnected: normalizeConnectedCarrierCodes.has(m.carrierProfile.carrierCode)
63
- })),
62
+ data: fundingSourceCarriersData,
64
63
  error: error,
65
64
  insuranceProviderProfiles,
66
65
  isLoading: isInitialLoading || isFundingSourceMetadataLoading || isInsuranceProviderAcceptedTermsLoading,